sbuild (Debian sbuild) 0.78.1 (09 February 2019) on gcc131.bak.milne.osuosl.org +==============================================================================+ | hepmc3 3.1.2-2 (mipsel) Sat, 10 Oct 2020 03:02:54 +0000 | +==============================================================================+ Package: hepmc3 Version: 3.1.2-2 Source Version: 3.1.2-2 Distribution: unstable Machine Architecture: amd64 Host Architecture: mipsel Build Architecture: amd64 Build Profiles: cross nocheck Build Type: any I: NOTICE: Log filtering will replace 'var/run/schroot/mount/unstable-amd64-sbuild-31c0cdc5-e91a-4649-ba05-e01909687165' with '<>' I: NOTICE: Log filtering will replace 'build/hepmc3-lV1d4J/resolver-7oEHAD' with '<>' +------------------------------------------------------------------------------+ | Update chroot | +------------------------------------------------------------------------------+ Get:1 http://debian.oregonstate.edu/debian unstable InRelease [146 kB] Get:2 http://debian.oregonstate.edu/debian unstable/main Sources.diff/Index [27.9 kB] Get:3 http://debian.oregonstate.edu/debian unstable/main amd64 Packages.diff/Index [27.9 kB] Get:4 http://debian.oregonstate.edu/debian unstable/main Sources 2020-10-09-0812.39.pdiff [3962 B] Get:5 http://debian.oregonstate.edu/debian unstable/main Sources 2020-10-09-1413.41.pdiff [7974 B] Get:6 http://debian.oregonstate.edu/debian unstable/main Sources 2020-10-09-2015.32.pdiff [10.5 kB] Get:7 http://debian.oregonstate.edu/debian unstable/main Sources 2020-10-10-0214.57.pdiff [6271 B] Get:7 http://debian.oregonstate.edu/debian unstable/main Sources 2020-10-10-0214.57.pdiff [6271 B] Get:8 http://debian.oregonstate.edu/debian unstable/main amd64 Packages 2020-10-09-0812.39.pdiff [1628 B] Get:9 http://debian.oregonstate.edu/debian unstable/main amd64 Packages 2020-10-09-1413.41.pdiff [8272 B] Get:10 http://debian.oregonstate.edu/debian unstable/main amd64 Packages 2020-10-09-2015.32.pdiff [17.1 kB] Get:11 http://debian.oregonstate.edu/debian unstable/main amd64 Packages 2020-10-10-0214.57.pdiff [9238 B] Get:11 http://debian.oregonstate.edu/debian unstable/main amd64 Packages 2020-10-10-0214.57.pdiff [9238 B] Get:12 http://debian.oregonstate.edu/debian unstable/main mipsel Packages [8101 kB] Fetched 8368 kB in 5s (1699 kB/s) Reading package lists... Reading package lists... Building dependency tree... Reading state information... Calculating upgrade... The following packages will be upgraded: binutils binutils-common binutils-x86-64-linux-gnu libbinutils libctf-nobfd0 libctf0 6 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 4520 kB of archives. After this operation, 6144 B of additional disk space will be used. Get:1 http://debian.oregonstate.edu/debian unstable/main amd64 libctf0 amd64 2.35.1-2 [46.4 kB] Get:2 http://debian.oregonstate.edu/debian unstable/main amd64 libctf-nobfd0 amd64 2.35.1-2 [103 kB] Get:3 http://debian.oregonstate.edu/debian unstable/main amd64 binutils-x86-64-linux-gnu amd64 2.35.1-2 [1621 kB] Get:4 http://debian.oregonstate.edu/debian unstable/main amd64 libbinutils amd64 2.35.1-2 [474 kB] Get:5 http://debian.oregonstate.edu/debian unstable/main amd64 binutils amd64 2.35.1-2 [59.9 kB] Get:6 http://debian.oregonstate.edu/debian unstable/main amd64 binutils-common amd64 2.35.1-2 [2216 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 4520 kB in 0s (97.5 MB/s) (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 ... 10451 files and directories currently installed.) Preparing to unpack .../0-libctf0_2.35.1-2_amd64.deb ... Unpacking libctf0:amd64 (2.35.1-2) over (2.35.1-1) ... Preparing to unpack .../1-libctf-nobfd0_2.35.1-2_amd64.deb ... Unpacking libctf-nobfd0:amd64 (2.35.1-2) over (2.35.1-1) ... Preparing to unpack .../2-binutils-x86-64-linux-gnu_2.35.1-2_amd64.deb ... Unpacking binutils-x86-64-linux-gnu (2.35.1-2) over (2.35.1-1) ... Preparing to unpack .../3-libbinutils_2.35.1-2_amd64.deb ... Unpacking libbinutils:amd64 (2.35.1-2) over (2.35.1-1) ... Preparing to unpack .../4-binutils_2.35.1-2_amd64.deb ... Unpacking binutils (2.35.1-2) over (2.35.1-1) ... Preparing to unpack .../5-binutils-common_2.35.1-2_amd64.deb ... Unpacking binutils-common:amd64 (2.35.1-2) over (2.35.1-1) ... Setting up binutils-common:amd64 (2.35.1-2) ... Setting up libctf-nobfd0:amd64 (2.35.1-2) ... Setting up libbinutils:amd64 (2.35.1-2) ... Setting up libctf0:amd64 (2.35.1-2) ... Setting up binutils-x86-64-linux-gnu (2.35.1-2) ... Setting up binutils (2.35.1-2) ... Processing triggers for libc-bin (2.31-3) ... +------------------------------------------------------------------------------+ | Fetch source files | +------------------------------------------------------------------------------+ Check APT --------- Checking available source versions... Download source files with APT ------------------------------ Reading package lists... NOTICE: 'hepmc3' packaging is maintained in the 'Git' version control system at: https://salsa.debian.org/science-team/hepmc3.git Please use: git clone https://salsa.debian.org/science-team/hepmc3.git to retrieve the latest (possibly unreleased) updates to the package. Need to get 4856 kB of source archives. Get:1 http://debian.oregonstate.edu/debian unstable/main hepmc3 3.1.2-2 (dsc) [2243 B] Get:2 http://debian.oregonstate.edu/debian unstable/main hepmc3 3.1.2-2 (tar) [4849 kB] Get:3 http://debian.oregonstate.edu/debian unstable/main hepmc3 3.1.2-2 (diff) [4028 B] Fetched 4856 kB in 0s (41.1 MB/s) Download complete and in download only mode I: NOTICE: Log filtering will replace 'build/hepmc3-lV1d4J/hepmc3-3.1.2' with '<>' I: NOTICE: Log filtering will replace 'build/hepmc3-lV1d4J' with '<>' +------------------------------------------------------------------------------+ | Install package build dependencies | +------------------------------------------------------------------------------+ Setup apt archive ----------------- Merged Build-Depends: debhelper (>= 9~), cmake, doxygen, libc-dev, libstdc++-dev, build-essential:amd64, fakeroot:amd64, crossbuild-essential-mipsel:amd64, libc-dev:mipsel, libstdc++-dev:mipsel Filtered Build-Depends: debhelper (>= 9~), cmake, doxygen, libc-dev, libstdc++-dev, build-essential:amd64, fakeroot:amd64, crossbuild-essential-mipsel:amd64, libc-dev:mipsel, libstdc++-dev:mipsel dpkg-deb: building package 'sbuild-build-depends-main-dummy' in '/<>/apt_archive/sbuild-build-depends-main-dummy.deb'. Ign:1 copy:/<>/apt_archive ./ InRelease Get:2 copy:/<>/apt_archive ./ Release [957 B] Ign:3 copy:/<>/apt_archive ./ Release.gpg Get:4 copy:/<>/apt_archive ./ Sources [413 B] Get:5 copy:/<>/apt_archive ./ Packages [502 B] Fetched 1872 B in 0s (72.8 kB/s) Reading package lists... Reading package lists... Install main build dependencies (apt-based resolver) ---------------------------------------------------- Installing build dependencies Reading package lists... Building dependency tree... Reading state information... The following additional packages will be installed: autoconf automake autopoint autotools-dev binutils-mipsel-linux-gnu bsdextrautils build-essential cmake cmake-data cpp-9-mipsel-linux-gnu cpp-mipsel-linux-gnu cross-config crossbuild-essential-mipsel debhelper dh-autoreconf dh-strip-nondeterminism doxygen dpkg-cross dpkg-dev dwz file g++ g++-10 g++-9-mipsel-linux-gnu g++-mipsel-linux-gnu gcc-10-base:mipsel gcc-10-cross-base-mipsen gcc-9-base:mipsel gcc-9-cross-base-mipsen gcc-9-mipsel-linux-gnu gcc-9-mipsel-linux-gnu-base gcc-mipsel-linux-gnu gettext gettext-base groff-base intltool-debian libarchive-zip-perl libarchive13 libatomic1:mipsel libatomic1-mipsel-cross libbrotli1 libbsd0 libc6:mipsel libc6-dev libc6-dev:mipsel libc6-dev-mipsel-cross libc6-mipsel-cross libclang-cpp9 libclang1-9 libconfig-auto-perl libconfig-inifiles-perl libcroco3 libcrypt-dev libcrypt-dev:mipsel libcrypt1:mipsel libcurl4 libdebhelper-perl libdebian-dpkgcross-perl libdpkg-perl libedit2 libelf1 libexpat1 libfile-homedir-perl libfile-stripnondeterminism-perl libfile-which-perl libgcc-9-dev:mipsel libgcc-9-dev-mipsel-cross libgcc-s1:mipsel libgcc-s1-mipsel-cross libglib2.0-0 libgomp1:mipsel libgomp1-mipsel-cross libgssapi-krb5-2 libicu67 libio-string-perl libjsoncpp1 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libldap-2.4-2 libllvm9 liblocale-gettext-perl libmagic-mgc libmagic1 libncurses6 libnghttp2-14 libperl5.30 libpipeline1 libprocps8 libpsl5 librhash0 librtmp1 libsasl2-2 libsasl2-modules-db libsigsegv2 libssh2-1 libssl1.1 libstdc++-10-dev libstdc++-9-dev:mipsel libstdc++-9-dev-mipsel-cross libstdc++6:mipsel libstdc++6-mipsel-cross libsub-override-perl libtool libuchardet0 libuv1 libxapian30 libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-perl libxml-simple-perl libxml2 libyaml-perl libz3-4 linux-libc-dev:mipsel linux-libc-dev-mipsel-cross m4 man-db perl perl-modules-5.30 po-debconf procps sensible-utils ucf Suggested packages: autoconf-archive gnu-standards autoconf-doc binutils-doc cmake-doc ninja-build gcc-9-locales cpp-doc dh-make doxygen-latex doxygen-doc doxygen-gui graphviz binutils-multiarch debian-keyring g++-multilib g++-10-multilib gcc-10-doc g++-9-multilib-mipsel-linux-gnu gcc-9-doc gcc-9-multilib-mipsel-linux-gnu manpages-dev flex bison gdb-mipsel-linux-gnu gcc-doc gettext-doc libasprintf-dev libgettextpo-dev groff lrzip glibc-doc:mipsel libc-l10n:mipsel locales:mipsel glibc-doc manpages-dev:mipsel gnupg git bzr krb5-doc krb5-user libstdc++-10-doc libstdc++-9-doc:mipsel libtool-doc gfortran | fortran95-compiler gcj-jdk xapian-tools libyaml-shell-perl m4-doc apparmor less www-browser perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl libtap-harness-archive-perl libmail-box-perl Recommended packages: gnupg libalgorithm-merge-perl curl | wget | lynx libidn2-0:mipsel ca-certificates libfile-fcntllock-perl libarchive-cpio-perl libglib2.0-data shared-mime-info xdg-user-dirs krb5-locales libldap-common libgpm2 publicsuffix libsasl2-modules libltdl-dev libwww-perl libxml-sax-expat-perl libyaml-libyaml-perl | libyaml-syck-perl netbase libmail-sendmail-perl psmisc The following NEW packages will be installed: autoconf automake autopoint autotools-dev binutils-mipsel-linux-gnu bsdextrautils build-essential cmake cmake-data cpp-9-mipsel-linux-gnu cpp-mipsel-linux-gnu cross-config crossbuild-essential-mipsel debhelper dh-autoreconf dh-strip-nondeterminism doxygen dpkg-cross dpkg-dev dwz file g++ g++-10 g++-9-mipsel-linux-gnu g++-mipsel-linux-gnu gcc-10-base:mipsel gcc-10-cross-base-mipsen gcc-9-base:mipsel gcc-9-cross-base-mipsen gcc-9-mipsel-linux-gnu gcc-9-mipsel-linux-gnu-base gcc-mipsel-linux-gnu gettext gettext-base groff-base intltool-debian libarchive-zip-perl libarchive13 libatomic1:mipsel libatomic1-mipsel-cross libbrotli1 libbsd0 libc6:mipsel libc6-dev libc6-dev:mipsel libc6-dev-mipsel-cross libc6-mipsel-cross libclang-cpp9 libclang1-9 libconfig-auto-perl libconfig-inifiles-perl libcroco3 libcrypt-dev libcrypt-dev:mipsel libcrypt1:mipsel libcurl4 libdebhelper-perl libdebian-dpkgcross-perl libdpkg-perl libedit2 libelf1 libexpat1 libfile-homedir-perl libfile-stripnondeterminism-perl libfile-which-perl libgcc-9-dev:mipsel libgcc-9-dev-mipsel-cross libgcc-s1:mipsel libgcc-s1-mipsel-cross libglib2.0-0 libgomp1:mipsel libgomp1-mipsel-cross libgssapi-krb5-2 libicu67 libio-string-perl libjsoncpp1 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libldap-2.4-2 libllvm9 liblocale-gettext-perl libmagic-mgc libmagic1 libncurses6 libnghttp2-14 libperl5.30 libpipeline1 libprocps8 libpsl5 librhash0 librtmp1 libsasl2-2 libsasl2-modules-db libsigsegv2 libssh2-1 libssl1.1 libstdc++-10-dev libstdc++-9-dev:mipsel libstdc++-9-dev-mipsel-cross libstdc++6:mipsel libstdc++6-mipsel-cross libsub-override-perl libtool libuchardet0 libuv1 libxapian30 libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-perl libxml-simple-perl libxml2 libyaml-perl libz3-4 linux-libc-dev:mipsel linux-libc-dev-mipsel-cross m4 man-db perl perl-modules-5.30 po-debconf procps sbuild-build-depends-main-dummy:mipsel sensible-utils ucf 0 upgraded, 127 newly installed, 0 to remove and 0 not upgraded. Need to get 138 MB of archives. After this operation, 575 MB of additional disk space will be used. Get:1 copy:/<>/apt_archive ./ sbuild-build-depends-main-dummy 0.invalid.0 [928 B] Get:2 http://debian.oregonstate.edu/debian unstable/main amd64 bsdextrautils amd64 2.36-3+b1 [140 kB] Get:3 http://debian.oregonstate.edu/debian unstable/main amd64 libuchardet0 amd64 0.0.7-1 [67.8 kB] Get:4 http://debian.oregonstate.edu/debian unstable/main amd64 groff-base amd64 1.22.4-5 [920 kB] Get:5 http://debian.oregonstate.edu/debian unstable/main amd64 libpipeline1 amd64 1.5.3-1 [34.3 kB] Get:6 http://debian.oregonstate.edu/debian unstable/main amd64 man-db amd64 2.9.3-2 [1314 kB] Get:7 http://debian.oregonstate.edu/debian unstable/main amd64 perl-modules-5.30 all 5.30.3-4 [2806 kB] Get:8 http://debian.oregonstate.edu/debian unstable/main amd64 libperl5.30 amd64 5.30.3-4 [4019 kB] Get:9 http://debian.oregonstate.edu/debian unstable/main amd64 perl amd64 5.30.3-4 [290 kB] Get:10 http://debian.oregonstate.edu/debian unstable/main amd64 liblocale-gettext-perl amd64 1.07-4 [18.8 kB] Get:11 http://debian.oregonstate.edu/debian unstable/main mipsel gcc-10-base mipsel 10.2.0-13 [199 kB] Get:12 http://debian.oregonstate.edu/debian unstable/main mipsel gcc-9-base mipsel 9.3.0-18 [197 kB] Get:13 http://debian.oregonstate.edu/debian unstable/main amd64 libncurses6 amd64 6.2+20200918-1 [102 kB] Get:14 http://debian.oregonstate.edu/debian unstable/main amd64 libprocps8 amd64 2:3.3.16-5 [62.7 kB] Get:15 http://debian.oregonstate.edu/debian unstable/main amd64 procps amd64 2:3.3.16-5 [262 kB] Get:16 http://debian.oregonstate.edu/debian unstable/main amd64 sensible-utils all 0.0.12+nmu1 [16.0 kB] Get:17 http://debian.oregonstate.edu/debian unstable/main amd64 libmagic-mgc amd64 1:5.38-5 [262 kB] Get:18 http://debian.oregonstate.edu/debian unstable/main amd64 libmagic1 amd64 1:5.38-5 [120 kB] Get:19 http://debian.oregonstate.edu/debian unstable/main amd64 file amd64 1:5.38-5 [67.9 kB] Get:20 http://debian.oregonstate.edu/debian unstable/main amd64 gettext-base amd64 0.19.8.1-10 [123 kB] Get:21 http://debian.oregonstate.edu/debian unstable/main amd64 ucf all 3.0043 [74.0 kB] Get:22 http://debian.oregonstate.edu/debian unstable/main amd64 libsigsegv2 amd64 2.12-2 [32.8 kB] Get:23 http://debian.oregonstate.edu/debian unstable/main amd64 m4 amd64 1.4.18-4 [203 kB] Get:24 http://debian.oregonstate.edu/debian unstable/main amd64 autoconf all 2.69-11.1 [341 kB] Get:25 http://debian.oregonstate.edu/debian unstable/main amd64 autotools-dev all 20180224.1 [77.0 kB] Get:26 http://debian.oregonstate.edu/debian unstable/main amd64 automake all 1:1.16.2-4 [801 kB] Get:27 http://debian.oregonstate.edu/debian unstable/main amd64 autopoint all 0.19.8.1-10 [435 kB] Get:28 http://debian.oregonstate.edu/debian unstable/main amd64 binutils-mipsel-linux-gnu amd64 2.35-1cross1 [2352 kB] Get:29 http://debian.oregonstate.edu/debian unstable/main amd64 libcrypt-dev amd64 1:4.4.17-1 [104 kB] Get:30 http://debian.oregonstate.edu/debian unstable/main amd64 libc6-dev amd64 2.31-3 [2395 kB] Get:31 http://debian.oregonstate.edu/debian unstable/main amd64 libstdc++-10-dev amd64 10.2.0-13 [1738 kB] Get:32 http://debian.oregonstate.edu/debian unstable/main amd64 g++-10 amd64 10.2.0-13 [8670 kB] Get:33 http://debian.oregonstate.edu/debian unstable/main amd64 g++ amd64 4:10.2.0-1 [1644 B] Get:34 http://debian.oregonstate.edu/debian unstable/main amd64 libdpkg-perl all 1.20.5 [1473 kB] Get:35 http://debian.oregonstate.edu/debian unstable/main amd64 dpkg-dev all 1.20.5 [1909 kB] Get:36 http://debian.oregonstate.edu/debian unstable/main amd64 build-essential amd64 12.8 [7640 B] Get:37 http://debian.oregonstate.edu/debian unstable/main amd64 cmake-data all 3.18.2-1 [1725 kB] Get:38 http://debian.oregonstate.edu/debian unstable/main amd64 libicu67 amd64 67.1-4 [8624 kB] Get:39 http://debian.oregonstate.edu/debian unstable/main amd64 libxml2 amd64 2.9.10+dfsg-6 [692 kB] Get:40 http://debian.oregonstate.edu/debian unstable/main amd64 libarchive13 amd64 3.4.3-2 [342 kB] Get:41 http://debian.oregonstate.edu/debian unstable/main amd64 libbrotli1 amd64 1.0.9-2 [287 kB] Get:42 http://debian.oregonstate.edu/debian unstable/main amd64 libkrb5support0 amd64 1.17-10 [64.6 kB] Get:43 http://debian.oregonstate.edu/debian unstable/main amd64 libk5crypto3 amd64 1.17-10 [115 kB] Get:44 http://debian.oregonstate.edu/debian unstable/main amd64 libkeyutils1 amd64 1.6.1-2 [15.4 kB] Get:45 http://debian.oregonstate.edu/debian unstable/main amd64 libssl1.1 amd64 1.1.1g-1 [1543 kB] Get:46 http://debian.oregonstate.edu/debian unstable/main amd64 libkrb5-3 amd64 1.17-10 [366 kB] Get:47 http://debian.oregonstate.edu/debian unstable/main amd64 libgssapi-krb5-2 amd64 1.17-10 [156 kB] Get:48 http://debian.oregonstate.edu/debian unstable/main amd64 libsasl2-modules-db amd64 2.1.27+dfsg-2 [69.0 kB] Get:49 http://debian.oregonstate.edu/debian unstable/main amd64 libsasl2-2 amd64 2.1.27+dfsg-2 [106 kB] Get:50 http://debian.oregonstate.edu/debian unstable/main amd64 libldap-2.4-2 amd64 2.4.53+dfsg-1 [231 kB] Get:51 http://debian.oregonstate.edu/debian unstable/main amd64 libnghttp2-14 amd64 1.41.0-3 [74.0 kB] Get:52 http://debian.oregonstate.edu/debian unstable/main amd64 libpsl5 amd64 0.21.0-1.1 [55.3 kB] Get:53 http://debian.oregonstate.edu/debian unstable/main amd64 librtmp1 amd64 2.4+20151223.gitfa8646d.1-2+b2 [60.8 kB] Get:54 http://debian.oregonstate.edu/debian unstable/main amd64 libssh2-1 amd64 1.8.0-2.1 [140 kB] Get:55 http://debian.oregonstate.edu/debian unstable/main amd64 libcurl4 amd64 7.72.0-1 [336 kB] Get:56 http://debian.oregonstate.edu/debian unstable/main amd64 libexpat1 amd64 2.2.10-1 [96.9 kB] Get:57 http://debian.oregonstate.edu/debian unstable/main amd64 libjsoncpp1 amd64 1.7.4-3.1 [77.6 kB] Get:58 http://debian.oregonstate.edu/debian unstable/main amd64 librhash0 amd64 1.4.0-1 [124 kB] Get:59 http://debian.oregonstate.edu/debian unstable/main amd64 libuv1 amd64 1.39.0-1 [131 kB] Get:60 http://debian.oregonstate.edu/debian unstable/main amd64 cmake amd64 3.18.2-1 [5596 kB] Get:61 http://debian.oregonstate.edu/debian unstable/main amd64 gcc-9-mipsel-linux-gnu-base amd64 9.3.0-8cross1 [196 kB] Get:62 http://debian.oregonstate.edu/debian unstable/main amd64 cpp-9-mipsel-linux-gnu amd64 9.3.0-8cross1 [6465 kB] Get:63 http://debian.oregonstate.edu/debian unstable/main amd64 cpp-mipsel-linux-gnu amd64 4:9.2.1-4.1 [16.7 kB] Get:64 http://debian.oregonstate.edu/debian unstable/main amd64 cross-config all 2.6.15-3.1 [39.9 kB] Get:65 http://debian.oregonstate.edu/debian unstable/main amd64 gcc-9-cross-base-mipsen all 9.3.0-8cross1 [192 kB] Get:66 http://debian.oregonstate.edu/debian unstable/main amd64 gcc-10-cross-base-mipsen all 10.2.0-5cross1 [195 kB] Get:67 http://debian.oregonstate.edu/debian unstable/main amd64 libc6-mipsel-cross all 2.31-2cross1 [1212 kB] Get:68 http://debian.oregonstate.edu/debian unstable/main amd64 libgcc-s1-mipsel-cross all 10.2.0-5cross1 [46.6 kB] Get:69 http://debian.oregonstate.edu/debian unstable/main amd64 libgomp1-mipsel-cross all 10.2.0-5cross1 [91.1 kB] Get:70 http://debian.oregonstate.edu/debian unstable/main amd64 libatomic1-mipsel-cross all 10.2.0-5cross1 [6640 B] Get:71 http://debian.oregonstate.edu/debian unstable/main amd64 libgcc-9-dev-mipsel-cross all 9.3.0-8cross1 [223 kB] Get:72 http://debian.oregonstate.edu/debian unstable/main amd64 gcc-9-mipsel-linux-gnu amd64 9.3.0-8cross1 [6819 kB] Get:73 http://debian.oregonstate.edu/debian unstable/main amd64 gcc-mipsel-linux-gnu amd64 4:9.2.1-4.1 [1460 B] Get:74 http://debian.oregonstate.edu/debian unstable/main amd64 libstdc++6-mipsel-cross all 10.2.0-5cross1 [395 kB] Get:75 http://debian.oregonstate.edu/debian unstable/main amd64 linux-libc-dev-mipsel-cross all 5.7.10-1cross1 [1237 kB] Get:76 http://debian.oregonstate.edu/debian unstable/main amd64 libc6-dev-mipsel-cross all 2.31-2cross1 [2074 kB] Get:77 http://debian.oregonstate.edu/debian unstable/main amd64 libstdc++-9-dev-mipsel-cross all 9.3.0-8cross1 [1708 kB] Get:78 http://debian.oregonstate.edu/debian unstable/main amd64 g++-9-mipsel-linux-gnu amd64 9.3.0-8cross1 [7051 kB] Get:79 http://debian.oregonstate.edu/debian unstable/main amd64 g++-mipsel-linux-gnu amd64 4:9.2.1-4.1 [1176 B] Get:80 http://debian.oregonstate.edu/debian unstable/main amd64 libconfig-inifiles-perl all 3.000003-1 [52.1 kB] Get:81 http://debian.oregonstate.edu/debian unstable/main amd64 libio-string-perl all 1.08-3 [12.3 kB] Get:82 http://debian.oregonstate.edu/debian unstable/main amd64 libxml-namespacesupport-perl all 1.12-1 [14.8 kB] Get:83 http://debian.oregonstate.edu/debian unstable/main amd64 libxml-sax-base-perl all 1.09-1 [20.4 kB] Get:84 http://debian.oregonstate.edu/debian unstable/main amd64 libxml-sax-perl all 1.02+dfsg-1 [59.0 kB] Get:85 http://debian.oregonstate.edu/debian unstable/main amd64 libxml-libxml-perl amd64 2.0134+dfsg-2 [343 kB] Get:86 http://debian.oregonstate.edu/debian unstable/main amd64 libxml-simple-perl all 2.25-1 [72.0 kB] Get:87 http://debian.oregonstate.edu/debian unstable/main amd64 libyaml-perl all 1.30-1 [67.7 kB] Get:88 http://debian.oregonstate.edu/debian unstable/main amd64 libconfig-auto-perl all 0.44-1 [19.5 kB] Get:89 http://debian.oregonstate.edu/debian unstable/main amd64 libfile-which-perl all 1.23-1 [16.6 kB] Get:90 http://debian.oregonstate.edu/debian unstable/main amd64 libfile-homedir-perl all 1.006-1 [43.8 kB] Get:91 http://debian.oregonstate.edu/debian unstable/main amd64 libdebian-dpkgcross-perl all 2.6.15-3.1 [38.9 kB] Get:92 http://debian.oregonstate.edu/debian unstable/main amd64 dpkg-cross all 2.6.15-3.1 [49.9 kB] Get:93 http://debian.oregonstate.edu/debian unstable/main amd64 crossbuild-essential-mipsel all 12.8 [6684 B] Get:94 http://debian.oregonstate.edu/debian unstable/main amd64 libtool all 2.4.6-14 [513 kB] Get:95 http://debian.oregonstate.edu/debian unstable/main amd64 dh-autoreconf all 19 [16.9 kB] Get:96 http://debian.oregonstate.edu/debian unstable/main amd64 libdebhelper-perl all 13.2.1 [188 kB] Get:97 http://debian.oregonstate.edu/debian unstable/main amd64 libarchive-zip-perl all 1.68-1 [104 kB] Get:98 http://debian.oregonstate.edu/debian unstable/main amd64 libsub-override-perl all 0.09-2 [10.2 kB] Get:99 http://debian.oregonstate.edu/debian unstable/main amd64 libfile-stripnondeterminism-perl all 1.9.0-1 [25.5 kB] Get:100 http://debian.oregonstate.edu/debian unstable/main amd64 dh-strip-nondeterminism all 1.9.0-1 [15.2 kB] Get:101 http://debian.oregonstate.edu/debian unstable/main amd64 libelf1 amd64 0.181-1 [164 kB] Get:102 http://debian.oregonstate.edu/debian unstable/main amd64 dwz amd64 0.13-5 [151 kB] Get:103 http://debian.oregonstate.edu/debian unstable/main amd64 libglib2.0-0 amd64 2.66.0-2 [1361 kB] Get:104 http://debian.oregonstate.edu/debian unstable/main amd64 libcroco3 amd64 0.6.13-1 [146 kB] Get:105 http://debian.oregonstate.edu/debian unstable/main amd64 gettext amd64 0.19.8.1-10 [1303 kB] Get:106 http://debian.oregonstate.edu/debian unstable/main amd64 intltool-debian all 0.35.0+20060710.5 [26.8 kB] Get:107 http://debian.oregonstate.edu/debian unstable/main amd64 po-debconf all 1.0.21 [248 kB] Get:108 http://debian.oregonstate.edu/debian unstable/main amd64 debhelper all 13.2.1 [1007 kB] Get:109 http://debian.oregonstate.edu/debian unstable/main amd64 libbsd0 amd64 0.10.0-1 [107 kB] Get:110 http://debian.oregonstate.edu/debian unstable/main amd64 libedit2 amd64 3.1-20191231-1 [95.4 kB] Get:111 http://debian.oregonstate.edu/debian unstable/main amd64 libz3-4 amd64 4.8.9-1 [6783 kB] Get:112 http://debian.oregonstate.edu/debian unstable/main amd64 libllvm9 amd64 1:9.0.1-14 [15.0 MB] Get:113 http://debian.oregonstate.edu/debian unstable/main amd64 libclang-cpp9 amd64 1:9.0.1-14 [8415 kB] Get:114 http://debian.oregonstate.edu/debian unstable/main amd64 libclang1-9 amd64 1:9.0.1-14 [6722 kB] Get:115 http://debian.oregonstate.edu/debian unstable/main amd64 libxapian30 amd64 1.4.17-1 [1089 kB] Get:116 http://debian.oregonstate.edu/debian unstable/main amd64 doxygen amd64 1.8.20-4 [4180 kB] Get:117 http://debian.oregonstate.edu/debian unstable/main mipsel libgcc-s1 mipsel 10.2.0-13 [46.3 kB] Get:118 http://debian.oregonstate.edu/debian unstable/main mipsel libcrypt1 mipsel 1:4.4.17-1 [111 kB] Get:119 http://debian.oregonstate.edu/debian unstable/main mipsel libc6 mipsel 2.31-3 [2442 kB] Get:120 http://debian.oregonstate.edu/debian unstable/main mipsel libatomic1 mipsel 10.2.0-13 [6704 B] Get:121 http://debian.oregonstate.edu/debian unstable/main mipsel linux-libc-dev mipsel 5.8.10-1 [1175 kB] Get:122 http://debian.oregonstate.edu/debian unstable/main mipsel libcrypt-dev mipsel 1:4.4.17-1 [132 kB] Get:123 http://debian.oregonstate.edu/debian unstable/main mipsel libc6-dev mipsel 2.31-3 [2065 kB] Get:124 http://debian.oregonstate.edu/debian unstable/main mipsel libgomp1 mipsel 10.2.0-13 [93.0 kB] Get:125 http://debian.oregonstate.edu/debian unstable/main mipsel libgcc-9-dev mipsel 9.3.0-18 [222 kB] Get:126 http://debian.oregonstate.edu/debian unstable/main mipsel libstdc++6 mipsel 10.2.0-13 [435 kB] Get:127 http://debian.oregonstate.edu/debian unstable/main mipsel libstdc++-9-dev mipsel 9.3.0-18 [1717 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 138 MB in 1s (124 MB/s) Selecting previously unselected package bsdextrautils. (Reading database ... 10451 files and directories currently installed.) Preparing to unpack .../000-bsdextrautils_2.36-3+b1_amd64.deb ... Unpacking bsdextrautils (2.36-3+b1) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../001-libuchardet0_0.0.7-1_amd64.deb ... Unpacking libuchardet0:amd64 (0.0.7-1) ... Selecting previously unselected package groff-base. Preparing to unpack .../002-groff-base_1.22.4-5_amd64.deb ... Unpacking groff-base (1.22.4-5) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../003-libpipeline1_1.5.3-1_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.3-1) ... Selecting previously unselected package man-db. Preparing to unpack .../004-man-db_2.9.3-2_amd64.deb ... Unpacking man-db (2.9.3-2) ... Selecting previously unselected package perl-modules-5.30. Preparing to unpack .../005-perl-modules-5.30_5.30.3-4_all.deb ... Unpacking perl-modules-5.30 (5.30.3-4) ... Selecting previously unselected package libperl5.30:amd64. Preparing to unpack .../006-libperl5.30_5.30.3-4_amd64.deb ... Unpacking libperl5.30:amd64 (5.30.3-4) ... Selecting previously unselected package perl. Preparing to unpack .../007-perl_5.30.3-4_amd64.deb ... Unpacking perl (5.30.3-4) ... Selecting previously unselected package liblocale-gettext-perl. Preparing to unpack .../008-liblocale-gettext-perl_1.07-4_amd64.deb ... Unpacking liblocale-gettext-perl (1.07-4) ... Selecting previously unselected package gcc-10-base:mipsel. Preparing to unpack .../009-gcc-10-base_10.2.0-13_mipsel.deb ... Unpacking gcc-10-base:mipsel (10.2.0-13) ... Selecting previously unselected package gcc-9-base:mipsel. Preparing to unpack .../010-gcc-9-base_9.3.0-18_mipsel.deb ... Unpacking gcc-9-base:mipsel (9.3.0-18) ... Selecting previously unselected package libncurses6:amd64. Preparing to unpack .../011-libncurses6_6.2+20200918-1_amd64.deb ... Unpacking libncurses6:amd64 (6.2+20200918-1) ... Selecting previously unselected package libprocps8:amd64. Preparing to unpack .../012-libprocps8_2%3a3.3.16-5_amd64.deb ... Unpacking libprocps8:amd64 (2:3.3.16-5) ... Selecting previously unselected package procps. Preparing to unpack .../013-procps_2%3a3.3.16-5_amd64.deb ... Unpacking procps (2:3.3.16-5) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../014-sensible-utils_0.0.12+nmu1_all.deb ... Unpacking sensible-utils (0.0.12+nmu1) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../015-libmagic-mgc_1%3a5.38-5_amd64.deb ... Unpacking libmagic-mgc (1:5.38-5) ... Selecting previously unselected package libmagic1:amd64. Preparing to unpack .../016-libmagic1_1%3a5.38-5_amd64.deb ... Unpacking libmagic1:amd64 (1:5.38-5) ... Selecting previously unselected package file. Preparing to unpack .../017-file_1%3a5.38-5_amd64.deb ... Unpacking file (1:5.38-5) ... Selecting previously unselected package gettext-base. Preparing to unpack .../018-gettext-base_0.19.8.1-10_amd64.deb ... Unpacking gettext-base (0.19.8.1-10) ... Selecting previously unselected package ucf. Preparing to unpack .../019-ucf_3.0043_all.deb ... Moving old data out of the way Unpacking ucf (3.0043) ... Selecting previously unselected package libsigsegv2:amd64. Preparing to unpack .../020-libsigsegv2_2.12-2_amd64.deb ... Unpacking libsigsegv2:amd64 (2.12-2) ... Selecting previously unselected package m4. Preparing to unpack .../021-m4_1.4.18-4_amd64.deb ... Unpacking m4 (1.4.18-4) ... Selecting previously unselected package autoconf. Preparing to unpack .../022-autoconf_2.69-11.1_all.deb ... Unpacking autoconf (2.69-11.1) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../023-autotools-dev_20180224.1_all.deb ... Unpacking autotools-dev (20180224.1) ... Selecting previously unselected package automake. Preparing to unpack .../024-automake_1%3a1.16.2-4_all.deb ... Unpacking automake (1:1.16.2-4) ... Selecting previously unselected package autopoint. Preparing to unpack .../025-autopoint_0.19.8.1-10_all.deb ... Unpacking autopoint (0.19.8.1-10) ... Selecting previously unselected package binutils-mipsel-linux-gnu. Preparing to unpack .../026-binutils-mipsel-linux-gnu_2.35-1cross1_amd64.deb ... Unpacking binutils-mipsel-linux-gnu (2.35-1cross1) ... Selecting previously unselected package libcrypt-dev:amd64. Preparing to unpack .../027-libcrypt-dev_1%3a4.4.17-1_amd64.deb ... Unpacking libcrypt-dev:amd64 (1:4.4.17-1) ... Selecting previously unselected package libc6-dev:amd64. Preparing to unpack .../028-libc6-dev_2.31-3_amd64.deb ... Unpacking libc6-dev:amd64 (2.31-3) ... Selecting previously unselected package libstdc++-10-dev:amd64. Preparing to unpack .../029-libstdc++-10-dev_10.2.0-13_amd64.deb ... Unpacking libstdc++-10-dev:amd64 (10.2.0-13) ... Selecting previously unselected package g++-10. Preparing to unpack .../030-g++-10_10.2.0-13_amd64.deb ... Unpacking g++-10 (10.2.0-13) ... Selecting previously unselected package g++. Preparing to unpack .../031-g++_4%3a10.2.0-1_amd64.deb ... Unpacking g++ (4:10.2.0-1) ... Selecting previously unselected package libdpkg-perl. Preparing to unpack .../032-libdpkg-perl_1.20.5_all.deb ... Unpacking libdpkg-perl (1.20.5) ... Selecting previously unselected package dpkg-dev. Preparing to unpack .../033-dpkg-dev_1.20.5_all.deb ... Unpacking dpkg-dev (1.20.5) ... Selecting previously unselected package build-essential. Preparing to unpack .../034-build-essential_12.8_amd64.deb ... Unpacking build-essential (12.8) ... Selecting previously unselected package cmake-data. Preparing to unpack .../035-cmake-data_3.18.2-1_all.deb ... Unpacking cmake-data (3.18.2-1) ... Selecting previously unselected package libicu67:amd64. Preparing to unpack .../036-libicu67_67.1-4_amd64.deb ... Unpacking libicu67:amd64 (67.1-4) ... Selecting previously unselected package libxml2:amd64. Preparing to unpack .../037-libxml2_2.9.10+dfsg-6_amd64.deb ... Unpacking libxml2:amd64 (2.9.10+dfsg-6) ... Selecting previously unselected package libarchive13:amd64. Preparing to unpack .../038-libarchive13_3.4.3-2_amd64.deb ... Unpacking libarchive13:amd64 (3.4.3-2) ... Selecting previously unselected package libbrotli1:amd64. Preparing to unpack .../039-libbrotli1_1.0.9-2_amd64.deb ... Unpacking libbrotli1:amd64 (1.0.9-2) ... Selecting previously unselected package libkrb5support0:amd64. Preparing to unpack .../040-libkrb5support0_1.17-10_amd64.deb ... Unpacking libkrb5support0:amd64 (1.17-10) ... Selecting previously unselected package libk5crypto3:amd64. Preparing to unpack .../041-libk5crypto3_1.17-10_amd64.deb ... Unpacking libk5crypto3:amd64 (1.17-10) ... Selecting previously unselected package libkeyutils1:amd64. Preparing to unpack .../042-libkeyutils1_1.6.1-2_amd64.deb ... Unpacking libkeyutils1:amd64 (1.6.1-2) ... Selecting previously unselected package libssl1.1:amd64. Preparing to unpack .../043-libssl1.1_1.1.1g-1_amd64.deb ... Unpacking libssl1.1:amd64 (1.1.1g-1) ... Selecting previously unselected package libkrb5-3:amd64. Preparing to unpack .../044-libkrb5-3_1.17-10_amd64.deb ... Unpacking libkrb5-3:amd64 (1.17-10) ... Selecting previously unselected package libgssapi-krb5-2:amd64. Preparing to unpack .../045-libgssapi-krb5-2_1.17-10_amd64.deb ... Unpacking libgssapi-krb5-2:amd64 (1.17-10) ... Selecting previously unselected package libsasl2-modules-db:amd64. Preparing to unpack .../046-libsasl2-modules-db_2.1.27+dfsg-2_amd64.deb ... Unpacking libsasl2-modules-db:amd64 (2.1.27+dfsg-2) ... Selecting previously unselected package libsasl2-2:amd64. Preparing to unpack .../047-libsasl2-2_2.1.27+dfsg-2_amd64.deb ... Unpacking libsasl2-2:amd64 (2.1.27+dfsg-2) ... Selecting previously unselected package libldap-2.4-2:amd64. Preparing to unpack .../048-libldap-2.4-2_2.4.53+dfsg-1_amd64.deb ... Unpacking libldap-2.4-2:amd64 (2.4.53+dfsg-1) ... Selecting previously unselected package libnghttp2-14:amd64. Preparing to unpack .../049-libnghttp2-14_1.41.0-3_amd64.deb ... Unpacking libnghttp2-14:amd64 (1.41.0-3) ... Selecting previously unselected package libpsl5:amd64. Preparing to unpack .../050-libpsl5_0.21.0-1.1_amd64.deb ... Unpacking libpsl5:amd64 (0.21.0-1.1) ... Selecting previously unselected package librtmp1:amd64. Preparing to unpack .../051-librtmp1_2.4+20151223.gitfa8646d.1-2+b2_amd64.deb ... Unpacking librtmp1:amd64 (2.4+20151223.gitfa8646d.1-2+b2) ... Selecting previously unselected package libssh2-1:amd64. Preparing to unpack .../052-libssh2-1_1.8.0-2.1_amd64.deb ... Unpacking libssh2-1:amd64 (1.8.0-2.1) ... Selecting previously unselected package libcurl4:amd64. Preparing to unpack .../053-libcurl4_7.72.0-1_amd64.deb ... Unpacking libcurl4:amd64 (7.72.0-1) ... Selecting previously unselected package libexpat1:amd64. Preparing to unpack .../054-libexpat1_2.2.10-1_amd64.deb ... Unpacking libexpat1:amd64 (2.2.10-1) ... Selecting previously unselected package libjsoncpp1:amd64. Preparing to unpack .../055-libjsoncpp1_1.7.4-3.1_amd64.deb ... Unpacking libjsoncpp1:amd64 (1.7.4-3.1) ... Selecting previously unselected package librhash0:amd64. Preparing to unpack .../056-librhash0_1.4.0-1_amd64.deb ... Unpacking librhash0:amd64 (1.4.0-1) ... Selecting previously unselected package libuv1:amd64. Preparing to unpack .../057-libuv1_1.39.0-1_amd64.deb ... Unpacking libuv1:amd64 (1.39.0-1) ... Selecting previously unselected package cmake. Preparing to unpack .../058-cmake_3.18.2-1_amd64.deb ... Unpacking cmake (3.18.2-1) ... Selecting previously unselected package gcc-9-mipsel-linux-gnu-base:amd64. Preparing to unpack .../059-gcc-9-mipsel-linux-gnu-base_9.3.0-8cross1_amd64.deb ... Unpacking gcc-9-mipsel-linux-gnu-base:amd64 (9.3.0-8cross1) ... Selecting previously unselected package cpp-9-mipsel-linux-gnu. Preparing to unpack .../060-cpp-9-mipsel-linux-gnu_9.3.0-8cross1_amd64.deb ... Unpacking cpp-9-mipsel-linux-gnu (9.3.0-8cross1) ... Selecting previously unselected package cpp-mipsel-linux-gnu. Preparing to unpack .../061-cpp-mipsel-linux-gnu_4%3a9.2.1-4.1_amd64.deb ... Unpacking cpp-mipsel-linux-gnu (4:9.2.1-4.1) ... Selecting previously unselected package cross-config. Preparing to unpack .../062-cross-config_2.6.15-3.1_all.deb ... Unpacking cross-config (2.6.15-3.1) ... Selecting previously unselected package gcc-9-cross-base-mipsen. Preparing to unpack .../063-gcc-9-cross-base-mipsen_9.3.0-8cross1_all.deb ... Unpacking gcc-9-cross-base-mipsen (9.3.0-8cross1) ... Selecting previously unselected package gcc-10-cross-base-mipsen. Preparing to unpack .../064-gcc-10-cross-base-mipsen_10.2.0-5cross1_all.deb ... Unpacking gcc-10-cross-base-mipsen (10.2.0-5cross1) ... Selecting previously unselected package libc6-mipsel-cross. Preparing to unpack .../065-libc6-mipsel-cross_2.31-2cross1_all.deb ... Unpacking libc6-mipsel-cross (2.31-2cross1) ... Selecting previously unselected package libgcc-s1-mipsel-cross. Preparing to unpack .../066-libgcc-s1-mipsel-cross_10.2.0-5cross1_all.deb ... Unpacking libgcc-s1-mipsel-cross (10.2.0-5cross1) ... Selecting previously unselected package libgomp1-mipsel-cross. Preparing to unpack .../067-libgomp1-mipsel-cross_10.2.0-5cross1_all.deb ... Unpacking libgomp1-mipsel-cross (10.2.0-5cross1) ... Selecting previously unselected package libatomic1-mipsel-cross. Preparing to unpack .../068-libatomic1-mipsel-cross_10.2.0-5cross1_all.deb ... Unpacking libatomic1-mipsel-cross (10.2.0-5cross1) ... Selecting previously unselected package libgcc-9-dev-mipsel-cross. Preparing to unpack .../069-libgcc-9-dev-mipsel-cross_9.3.0-8cross1_all.deb ... Unpacking libgcc-9-dev-mipsel-cross (9.3.0-8cross1) ... Selecting previously unselected package gcc-9-mipsel-linux-gnu. Preparing to unpack .../070-gcc-9-mipsel-linux-gnu_9.3.0-8cross1_amd64.deb ... Unpacking gcc-9-mipsel-linux-gnu (9.3.0-8cross1) ... Selecting previously unselected package gcc-mipsel-linux-gnu. Preparing to unpack .../071-gcc-mipsel-linux-gnu_4%3a9.2.1-4.1_amd64.deb ... Unpacking gcc-mipsel-linux-gnu (4:9.2.1-4.1) ... Selecting previously unselected package libstdc++6-mipsel-cross. Preparing to unpack .../072-libstdc++6-mipsel-cross_10.2.0-5cross1_all.deb ... Unpacking libstdc++6-mipsel-cross (10.2.0-5cross1) ... Selecting previously unselected package linux-libc-dev-mipsel-cross. Preparing to unpack .../073-linux-libc-dev-mipsel-cross_5.7.10-1cross1_all.deb ... Unpacking linux-libc-dev-mipsel-cross (5.7.10-1cross1) ... Selecting previously unselected package libc6-dev-mipsel-cross. Preparing to unpack .../074-libc6-dev-mipsel-cross_2.31-2cross1_all.deb ... Unpacking libc6-dev-mipsel-cross (2.31-2cross1) ... Selecting previously unselected package libstdc++-9-dev-mipsel-cross. Preparing to unpack .../075-libstdc++-9-dev-mipsel-cross_9.3.0-8cross1_all.deb ... Unpacking libstdc++-9-dev-mipsel-cross (9.3.0-8cross1) ... Selecting previously unselected package g++-9-mipsel-linux-gnu. Preparing to unpack .../076-g++-9-mipsel-linux-gnu_9.3.0-8cross1_amd64.deb ... Unpacking g++-9-mipsel-linux-gnu (9.3.0-8cross1) ... Selecting previously unselected package g++-mipsel-linux-gnu. Preparing to unpack .../077-g++-mipsel-linux-gnu_4%3a9.2.1-4.1_amd64.deb ... Unpacking g++-mipsel-linux-gnu (4:9.2.1-4.1) ... Selecting previously unselected package libconfig-inifiles-perl. Preparing to unpack .../078-libconfig-inifiles-perl_3.000003-1_all.deb ... Unpacking libconfig-inifiles-perl (3.000003-1) ... Selecting previously unselected package libio-string-perl. Preparing to unpack .../079-libio-string-perl_1.08-3_all.deb ... Unpacking libio-string-perl (1.08-3) ... Selecting previously unselected package libxml-namespacesupport-perl. Preparing to unpack .../080-libxml-namespacesupport-perl_1.12-1_all.deb ... Unpacking libxml-namespacesupport-perl (1.12-1) ... Selecting previously unselected package libxml-sax-base-perl. Preparing to unpack .../081-libxml-sax-base-perl_1.09-1_all.deb ... Unpacking libxml-sax-base-perl (1.09-1) ... Selecting previously unselected package libxml-sax-perl. Preparing to unpack .../082-libxml-sax-perl_1.02+dfsg-1_all.deb ... Unpacking libxml-sax-perl (1.02+dfsg-1) ... Selecting previously unselected package libxml-libxml-perl. Preparing to unpack .../083-libxml-libxml-perl_2.0134+dfsg-2_amd64.deb ... Unpacking libxml-libxml-perl (2.0134+dfsg-2) ... Selecting previously unselected package libxml-simple-perl. Preparing to unpack .../084-libxml-simple-perl_2.25-1_all.deb ... Unpacking libxml-simple-perl (2.25-1) ... Selecting previously unselected package libyaml-perl. Preparing to unpack .../085-libyaml-perl_1.30-1_all.deb ... Unpacking libyaml-perl (1.30-1) ... Selecting previously unselected package libconfig-auto-perl. Preparing to unpack .../086-libconfig-auto-perl_0.44-1_all.deb ... Unpacking libconfig-auto-perl (0.44-1) ... Selecting previously unselected package libfile-which-perl. Preparing to unpack .../087-libfile-which-perl_1.23-1_all.deb ... Unpacking libfile-which-perl (1.23-1) ... Selecting previously unselected package libfile-homedir-perl. Preparing to unpack .../088-libfile-homedir-perl_1.006-1_all.deb ... Unpacking libfile-homedir-perl (1.006-1) ... Selecting previously unselected package libdebian-dpkgcross-perl. Preparing to unpack .../089-libdebian-dpkgcross-perl_2.6.15-3.1_all.deb ... Unpacking libdebian-dpkgcross-perl (2.6.15-3.1) ... Selecting previously unselected package dpkg-cross. Preparing to unpack .../090-dpkg-cross_2.6.15-3.1_all.deb ... Unpacking dpkg-cross (2.6.15-3.1) ... Selecting previously unselected package crossbuild-essential-mipsel. Preparing to unpack .../091-crossbuild-essential-mipsel_12.8_all.deb ... Unpacking crossbuild-essential-mipsel (12.8) ... Selecting previously unselected package libtool. Preparing to unpack .../092-libtool_2.4.6-14_all.deb ... Unpacking libtool (2.4.6-14) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../093-dh-autoreconf_19_all.deb ... Unpacking dh-autoreconf (19) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../094-libdebhelper-perl_13.2.1_all.deb ... Unpacking libdebhelper-perl (13.2.1) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../095-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 .../096-libsub-override-perl_0.09-2_all.deb ... Unpacking libsub-override-perl (0.09-2) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../097-libfile-stripnondeterminism-perl_1.9.0-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.9.0-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../098-dh-strip-nondeterminism_1.9.0-1_all.deb ... Unpacking dh-strip-nondeterminism (1.9.0-1) ... Selecting previously unselected package libelf1:amd64. Preparing to unpack .../099-libelf1_0.181-1_amd64.deb ... Unpacking libelf1:amd64 (0.181-1) ... Selecting previously unselected package dwz. Preparing to unpack .../100-dwz_0.13-5_amd64.deb ... Unpacking dwz (0.13-5) ... Selecting previously unselected package libglib2.0-0:amd64. Preparing to unpack .../101-libglib2.0-0_2.66.0-2_amd64.deb ... Unpacking libglib2.0-0:amd64 (2.66.0-2) ... Selecting previously unselected package libcroco3:amd64. Preparing to unpack .../102-libcroco3_0.6.13-1_amd64.deb ... Unpacking libcroco3:amd64 (0.6.13-1) ... Selecting previously unselected package gettext. Preparing to unpack .../103-gettext_0.19.8.1-10_amd64.deb ... Unpacking gettext (0.19.8.1-10) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../104-intltool-debian_0.35.0+20060710.5_all.deb ... Unpacking intltool-debian (0.35.0+20060710.5) ... Selecting previously unselected package po-debconf. Preparing to unpack .../105-po-debconf_1.0.21_all.deb ... Unpacking po-debconf (1.0.21) ... Selecting previously unselected package debhelper. Preparing to unpack .../106-debhelper_13.2.1_all.deb ... Unpacking debhelper (13.2.1) ... Selecting previously unselected package libbsd0:amd64. Preparing to unpack .../107-libbsd0_0.10.0-1_amd64.deb ... Unpacking libbsd0:amd64 (0.10.0-1) ... Selecting previously unselected package libedit2:amd64. Preparing to unpack .../108-libedit2_3.1-20191231-1_amd64.deb ... Unpacking libedit2:amd64 (3.1-20191231-1) ... Selecting previously unselected package libz3-4:amd64. Preparing to unpack .../109-libz3-4_4.8.9-1_amd64.deb ... Unpacking libz3-4:amd64 (4.8.9-1) ... Selecting previously unselected package libllvm9:amd64. Preparing to unpack .../110-libllvm9_1%3a9.0.1-14_amd64.deb ... Unpacking libllvm9:amd64 (1:9.0.1-14) ... Selecting previously unselected package libclang-cpp9. Preparing to unpack .../111-libclang-cpp9_1%3a9.0.1-14_amd64.deb ... Unpacking libclang-cpp9 (1:9.0.1-14) ... Selecting previously unselected package libclang1-9. Preparing to unpack .../112-libclang1-9_1%3a9.0.1-14_amd64.deb ... Unpacking libclang1-9 (1:9.0.1-14) ... Selecting previously unselected package libxapian30:amd64. Preparing to unpack .../113-libxapian30_1.4.17-1_amd64.deb ... Unpacking libxapian30:amd64 (1.4.17-1) ... Selecting previously unselected package doxygen. Preparing to unpack .../114-doxygen_1.8.20-4_amd64.deb ... Unpacking doxygen (1.8.20-4) ... Selecting previously unselected package libgcc-s1:mipsel. Preparing to unpack .../115-libgcc-s1_10.2.0-13_mipsel.deb ... Unpacking libgcc-s1:mipsel (10.2.0-13) ... Selecting previously unselected package libcrypt1:mipsel. Preparing to unpack .../116-libcrypt1_1%3a4.4.17-1_mipsel.deb ... Unpacking libcrypt1:mipsel (1:4.4.17-1) ... Selecting previously unselected package libc6:mipsel. Preparing to unpack .../117-libc6_2.31-3_mipsel.deb ... Unpacking libc6:mipsel (2.31-3) ... Selecting previously unselected package libatomic1:mipsel. Preparing to unpack .../118-libatomic1_10.2.0-13_mipsel.deb ... Unpacking libatomic1:mipsel (10.2.0-13) ... Selecting previously unselected package linux-libc-dev:mipsel. Preparing to unpack .../119-linux-libc-dev_5.8.10-1_mipsel.deb ... Unpacking linux-libc-dev:mipsel (5.8.10-1) ... Selecting previously unselected package libcrypt-dev:mipsel. Preparing to unpack .../120-libcrypt-dev_1%3a4.4.17-1_mipsel.deb ... Unpacking libcrypt-dev:mipsel (1:4.4.17-1) ... Selecting previously unselected package libc6-dev:mipsel. Preparing to unpack .../121-libc6-dev_2.31-3_mipsel.deb ... Unpacking libc6-dev:mipsel (2.31-3) ... Selecting previously unselected package libgomp1:mipsel. Preparing to unpack .../122-libgomp1_10.2.0-13_mipsel.deb ... Unpacking libgomp1:mipsel (10.2.0-13) ... Selecting previously unselected package libgcc-9-dev:mipsel. Preparing to unpack .../123-libgcc-9-dev_9.3.0-18_mipsel.deb ... Unpacking libgcc-9-dev:mipsel (9.3.0-18) ... Selecting previously unselected package libstdc++6:mipsel. Preparing to unpack .../124-libstdc++6_10.2.0-13_mipsel.deb ... Unpacking libstdc++6:mipsel (10.2.0-13) ... Selecting previously unselected package libstdc++-9-dev:mipsel. Preparing to unpack .../125-libstdc++-9-dev_9.3.0-18_mipsel.deb ... Unpacking libstdc++-9-dev:mipsel (9.3.0-18) ... Selecting previously unselected package sbuild-build-depends-main-dummy:mipsel. Preparing to unpack .../126-sbuild-build-depends-main-dummy_0.invalid.0_mipsel.deb ... Unpacking sbuild-build-depends-main-dummy:mipsel (0.invalid.0) ... Setting up libconfig-inifiles-perl (3.000003-1) ... Setting up libexpat1:amd64 (2.2.10-1) ... Setting up libpipeline1:amd64 (1.5.3-1) ... Setting up libxapian30:amd64 (1.4.17-1) ... Setting up libkeyutils1:amd64 (1.6.1-2) ... Setting up libpsl5:amd64 (0.21.0-1.1) ... Setting up perl-modules-5.30 (5.30.3-4) ... Setting up bsdextrautils (2.36-3+b1) ... update-alternatives: using /usr/bin/write.ul to provide /usr/bin/write (write) in auto mode Setting up libicu67:amd64 (67.1-4) ... Setting up libmagic-mgc (1:5.38-5) ... Setting up libglib2.0-0:amd64 (2.66.0-2) ... No schema files found: doing nothing. Setting up libssl1.1:amd64 (1.1.1g-1) ... Setting up libbrotli1:amd64 (1.0.9-2) ... Setting up libnghttp2-14:amd64 (1.41.0-3) ... Setting up libmagic1:amd64 (1:5.38-5) ... Setting up linux-libc-dev:mipsel (5.8.10-1) ... Setting up libc6-mipsel-cross (2.31-2cross1) ... Setting up gettext-base (0.19.8.1-10) ... Setting up file (1:5.38-5) ... Setting up gcc-9-cross-base-mipsen (9.3.0-8cross1) ... Setting up gcc-9-mipsel-linux-gnu-base:amd64 (9.3.0-8cross1) ... Setting up libkrb5support0:amd64 (1.17-10) ... Setting up libsasl2-modules-db:amd64 (2.1.27+dfsg-2) ... Setting up gcc-10-base:mipsel (10.2.0-13) ... Setting up autotools-dev (20180224.1) ... Setting up libz3-4:amd64 (4.8.9-1) ... Setting up cross-config (2.6.15-3.1) ... Setting up libuv1:amd64 (1.39.0-1) ... Setting up gcc-10-cross-base-mipsen (10.2.0-5cross1) ... Setting up librtmp1:amd64 (2.4+20151223.gitfa8646d.1-2+b2) ... Setting up binutils-mipsel-linux-gnu (2.35-1cross1) ... Setting up libncurses6:amd64 (6.2+20200918-1) ... Setting up libsigsegv2:amd64 (2.12-2) ... Setting up libgomp1-mipsel-cross (10.2.0-5cross1) ... Setting up autopoint (0.19.8.1-10) ... Setting up libk5crypto3:amd64 (1.17-10) ... Setting up libsasl2-2:amd64 (2.1.27+dfsg-2) ... Setting up cpp-9-mipsel-linux-gnu (9.3.0-8cross1) ... Setting up linux-libc-dev-mipsel-cross (5.7.10-1cross1) ... Setting up sensible-utils (0.0.12+nmu1) ... Setting up librhash0:amd64 (1.4.0-1) ... Setting up libcrypt-dev:amd64 (1:4.4.17-1) ... Setting up libuchardet0:amd64 (0.0.7-1) ... Setting up libperl5.30:amd64 (5.30.3-4) ... Setting up libc6-dev:amd64 (2.31-3) ... Setting up libssh2-1:amd64 (1.8.0-2.1) ... Setting up cmake-data (3.18.2-1) ... Setting up libkrb5-3:amd64 (1.17-10) ... Setting up libbsd0:amd64 (0.10.0-1) ... Setting up libelf1:amd64 (0.181-1) ... Setting up libxml2:amd64 (2.9.10+dfsg-6) ... Setting up liblocale-gettext-perl (1.07-4) ... Setting up libprocps8:amd64 (2:3.3.16-5) ... Setting up libjsoncpp1:amd64 (1.7.4-3.1) ... Setting up gcc-9-base:mipsel (9.3.0-18) ... Setting up libstdc++-10-dev:amd64 (10.2.0-13) ... Setting up g++-10 (10.2.0-13) ... Setting up libc6-dev-mipsel-cross (2.31-2cross1) ... Setting up libtool (2.4.6-14) ... Setting up libarchive13:amd64 (3.4.3-2) ... Setting up libgcc-s1-mipsel-cross (10.2.0-5cross1) ... Setting up libedit2:amd64 (3.1-20191231-1) ... Setting up libldap-2.4-2:amd64 (2.4.53+dfsg-1) ... Setting up m4 (1.4.18-4) ... Setting up libatomic1-mipsel-cross (10.2.0-5cross1) ... Setting up perl (5.30.3-4) ... Setting up libgcc-9-dev-mipsel-cross (9.3.0-8cross1) ... Setting up cpp-mipsel-linux-gnu (4:9.2.1-4.1) ... Setting up libgssapi-krb5-2:amd64 (1.17-10) ... Setting up libcroco3:amd64 (0.6.13-1) ... Setting up ucf (3.0043) ... Setting up libdpkg-perl (1.20.5) ... Setting up autoconf (2.69-11.1) ... Setting up g++ (4:10.2.0-1) ... update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode Setting up dwz (0.13-5) ... Setting up groff-base (1.22.4-5) ... Setting up procps (2:3.3.16-5) ... update-alternatives: using /usr/bin/w.procps to provide /usr/bin/w (w) in auto mode Setting up libcurl4:amd64 (7.72.0-1) ... Setting up libsub-override-perl (0.09-2) ... Setting up libllvm9:amd64 (1:9.0.1-14) ... Setting up automake (1:1.16.2-4) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up gcc-9-mipsel-linux-gnu (9.3.0-8cross1) ... Setting up libfile-which-perl (1.23-1) ... Setting up gettext (0.19.8.1-10) ... Setting up libstdc++6-mipsel-cross (10.2.0-5cross1) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libclang1-9 (1:9.0.1-14) ... Setting up libclang-cpp9 (1:9.0.1-14) ... Setting up libdebhelper-perl (13.2.1) ... Setting up libxml-namespacesupport-perl (1.12-1) ... Setting up man-db (2.9.3-2) ... Not building database; man-db/auto-update is not 'true'. Setting up libyaml-perl (1.30-1) ... Setting up dpkg-dev (1.20.5) ... Setting up intltool-debian (0.35.0+20060710.5) ... Setting up libxml-sax-base-perl (1.09-1) ... Setting up libio-string-perl (1.08-3) ... Setting up gcc-mipsel-linux-gnu (4:9.2.1-4.1) ... Setting up doxygen (1.8.20-4) ... Setting up cmake (3.18.2-1) ... Setting up build-essential (12.8) ... Setting up libfile-homedir-perl (1.006-1) ... Setting up libstdc++-9-dev-mipsel-cross (9.3.0-8cross1) ... Setting up libfile-stripnondeterminism-perl (1.9.0-1) ... Setting up po-debconf (1.0.21) ... Setting up g++-9-mipsel-linux-gnu (9.3.0-8cross1) ... Setting up libxml-sax-perl (1.02+dfsg-1) ... update-perl-sax-parsers: Registering Perl SAX parser XML::SAX::PurePerl with priority 10... update-perl-sax-parsers: Updating overall Perl SAX parser modules info file... Creating config file /etc/perl/XML/SAX/ParserDetails.ini with new version Setting up g++-mipsel-linux-gnu (4:9.2.1-4.1) ... Setting up libxml-libxml-perl (2.0134+dfsg-2) ... update-perl-sax-parsers: Registering Perl SAX parser XML::LibXML::SAX::Parser with priority 50... update-perl-sax-parsers: Registering Perl SAX parser XML::LibXML::SAX with priority 50... update-perl-sax-parsers: Updating overall Perl SAX parser modules info file... Replacing config file /etc/perl/XML/SAX/ParserDetails.ini with new version Setting up dh-strip-nondeterminism (1.9.0-1) ... Setting up libxml-simple-perl (2.25-1) ... Setting up libconfig-auto-perl (0.44-1) ... Setting up libdebian-dpkgcross-perl (2.6.15-3.1) ... Setting up dpkg-cross (2.6.15-3.1) ... Setting up crossbuild-essential-mipsel (12.8) ... Setting up libcrypt1:mipsel (1:4.4.17-1) ... Setting up libgcc-s1:mipsel (10.2.0-13) ... Setting up libc6:mipsel (2.31-3) ... Setting up libcrypt-dev:mipsel (1:4.4.17-1) ... Setting up libc6-dev:mipsel (2.31-3) ... Setting up libstdc++6:mipsel (10.2.0-13) ... Setting up libgomp1:mipsel (10.2.0-13) ... Setting up dh-autoreconf (19) ... Setting up libatomic1:mipsel (10.2.0-13) ... Setting up debhelper (13.2.1) ... Setting up libgcc-9-dev:mipsel (9.3.0-18) ... Setting up libstdc++-9-dev:mipsel (9.3.0-18) ... Setting up sbuild-build-depends-main-dummy:mipsel (0.invalid.0) ... Processing triggers for libc-bin (2.31-3) ... +------------------------------------------------------------------------------+ | Check architectures | +------------------------------------------------------------------------------+ Arch check ok (mipsel included in any all) +------------------------------------------------------------------------------+ | Build environment | +------------------------------------------------------------------------------+ Kernel: Linux 4.19.0-11-amd64 #1 SMP Debian 4.19.146-1 (2020-09-17) amd64 (x86_64) Toolchain package versions: binutils_2.35.1-2 dpkg-dev_1.20.5 g++-10_10.2.0-13 gcc-10_10.2.0-13 libc6-dev_2.31-3 libstdc++-10-dev_10.2.0-13 libstdc++-9-dev_9.3.0-18 libstdc++-9-dev-mipsel-cross_9.3.0-8cross1 libstdc++6_10.2.0-13 libstdc++6-mipsel-cross_10.2.0-5cross1 linux-libc-dev_5.8.10-1 Package versions: adduser_3.118 apt_2.1.10 autoconf_2.69-11.1 automake_1:1.16.2-4 autopoint_0.19.8.1-10 autotools-dev_20180224.1 base-files_11 base-passwd_3.5.47 bash_5.0-7 binutils_2.35.1-2 binutils-common_2.35.1-2 binutils-mipsel-linux-gnu_2.35-1cross1 binutils-x86-64-linux-gnu_2.35.1-2 bsdextrautils_2.36-3+b1 bsdutils_1:2.36-3+b1 build-essential_12.8 bzip2_1.0.8-4 cmake_3.18.2-1 cmake-data_3.18.2-1 coreutils_8.32-4+b1 cpp_4:10.2.0-1 cpp-10_10.2.0-13 cpp-8_8.4.0-4 cpp-9-mipsel-linux-gnu_9.3.0-8cross1 cpp-mipsel-linux-gnu_4:9.2.1-4.1 cross-config_2.6.15-3.1 crossbuild-essential-mipsel_12.8 dash_0.5.10.2-7 debconf_1.5.74 debhelper_13.2.1 debian-archive-keyring_2019.1 debianutils_4.11.2 dh-autoreconf_19 dh-strip-nondeterminism_1.9.0-1 diffutils_1:3.7-3 doxygen_1.8.20-4 dpkg_1.20.5 dpkg-cross_2.6.15-3.1 dpkg-dev_1.20.5 dwz_0.13-5 e2fsprogs_1.45.6-1 fakeroot_1.25.3-1 fdisk_2.36-3+b1 file_1:5.38-5 findutils_4.7.0-1 g++_4:10.2.0-1 g++-10_10.2.0-13 g++-9-mipsel-linux-gnu_9.3.0-8cross1 g++-mipsel-linux-gnu_4:9.2.1-4.1 gcc_4:10.2.0-1 gcc-10_10.2.0-13 gcc-10-base_10.2.0-13 gcc-10-cross-base-mipsen_10.2.0-5cross1 gcc-8-base_8.4.0-4 gcc-9-base_9.3.0-18 gcc-9-cross-base-mipsen_9.3.0-8cross1 gcc-9-mipsel-linux-gnu_9.3.0-8cross1 gcc-9-mipsel-linux-gnu-base_9.3.0-8cross1 gcc-mipsel-linux-gnu_4:9.2.1-4.1 gettext_0.19.8.1-10 gettext-base_0.19.8.1-10 gpgv_2.2.20-1 grep_3.4-1 groff-base_1.22.4-5 gzip_1.10-2 hostname_3.23 init-system-helpers_1.58 intltool-debian_0.35.0+20060710.5 libacl1_2.2.53-8 libapt-pkg5.0_1.8.4 libapt-pkg6.0_2.1.10 libarchive-zip-perl_1.68-1 libarchive13_3.4.3-2 libasan5_9.3.0-18 libasan6_10.2.0-13 libatomic1_10.2.0-13 libatomic1-mipsel-cross_10.2.0-5cross1 libattr1_1:2.4.48-5 libaudit-common_1:2.8.5-3 libaudit1_1:2.8.5-3+b1 libbinutils_2.35.1-2 libblkid1_2.36-3+b1 libbrotli1_1.0.9-2 libbsd0_0.10.0-1 libbz2-1.0_1.0.8-4 libc-bin_2.31-3 libc-dev-bin_2.31-3 libc6_2.31-3 libc6-dev_2.31-3 libc6-dev-mipsel-cross_2.31-2cross1 libc6-mipsel-cross_2.31-2cross1 libcap-ng0_0.7.9-2.2 libcc1-0_10.2.0-13 libclang-cpp9_1:9.0.1-14 libclang1-9_1:9.0.1-14 libcom-err2_1.45.6-1 libconfig-auto-perl_0.44-1 libconfig-inifiles-perl_3.000003-1 libcroco3_0.6.13-1 libcrypt-dev_1:4.4.17-1 libcrypt1_1:4.4.17-1 libctf-nobfd0_2.35.1-2 libctf0_2.35.1-2 libcurl4_7.72.0-1 libdb5.3_5.3.28+dfsg1-0.6 libdebconfclient0_0.254 libdebhelper-perl_13.2.1 libdebian-dpkgcross-perl_2.6.15-3.1 libdpkg-perl_1.20.5 libedit2_3.1-20191231-1 libelf1_0.181-1 libexpat1_2.2.10-1 libext2fs2_1.45.6-1 libfakeroot_1.25.3-1 libfdisk1_2.36-3+b1 libffi6_3.2.1-9 libffi7_3.3-4 libfile-homedir-perl_1.006-1 libfile-stripnondeterminism-perl_1.9.0-1 libfile-which-perl_1.23-1 libgcc-10-dev_10.2.0-13 libgcc-9-dev_9.3.0-18 libgcc-9-dev-mipsel-cross_9.3.0-8cross1 libgcc-s1_10.2.0-13 libgcc-s1-mipsel-cross_10.2.0-5cross1 libgcrypt20_1.8.6-2 libgdbm-compat4_1.18.1-5.1 libgdbm6_1.18.1-5.1 libglib2.0-0_2.66.0-2 libgmp10_2:6.2.0+dfsg-6 libgnutls30_3.6.15-4 libgomp1_10.2.0-13 libgomp1-mipsel-cross_10.2.0-5cross1 libgpg-error0_1.38-2 libgssapi-krb5-2_1.17-10 libhogweed4_3.5.1+really3.4.1-1 libhogweed6_3.6-2 libicu67_67.1-4 libidn2-0_2.3.0-1 libio-string-perl_1.08-3 libisl19_0.20-2 libisl22_0.22.1-1 libitm1_10.2.0-13 libjsoncpp1_1.7.4-3.1 libk5crypto3_1.17-10 libkeyutils1_1.6.1-2 libkrb5-3_1.17-10 libkrb5support0_1.17-10 libldap-2.4-2_2.4.53+dfsg-1 libllvm9_1:9.0.1-14 liblocale-gettext-perl_1.07-4 liblsan0_10.2.0-13 liblz4-1_1.9.2-2 liblzma5_5.2.4-1+b1 libmagic-mgc_1:5.38-5 libmagic1_1:5.38-5 libmount1_2.36-3+b1 libmpc3_1.2.0-1 libmpfr6_4.1.0-3 libmpx2_8.4.0-4 libncurses6_6.2+20200918-1 libncursesw6_6.2+20200918-1 libnettle6_3.5.1+really3.4.1-1 libnettle8_3.6-2 libnghttp2-14_1.41.0-3 libp11-kit0_0.23.21-2 libpam-modules_1.3.1-5 libpam-modules-bin_1.3.1-5 libpam-runtime_1.3.1-5 libpam0g_1.3.1-5 libpcre2-8-0_10.34-7 libpcre3_2:8.39-13 libperl5.28_5.28.1-6 libperl5.30_5.30.3-4 libpipeline1_1.5.3-1 libprocps8_2:3.3.16-5 libpsl5_0.21.0-1.1 libquadmath0_10.2.0-13 librhash0_1.4.0-1 librtmp1_2.4+20151223.gitfa8646d.1-2+b2 libsasl2-2_2.1.27+dfsg-2 libsasl2-modules-db_2.1.27+dfsg-2 libseccomp2_2.4.4-1 libselinux1_3.1-2 libsemanage-common_3.1-1 libsemanage1_3.1-1 libsepol1_3.1-1 libsigsegv2_2.12-2 libsmartcols1_2.36-3+b1 libss2_1.45.6-1 libssh2-1_1.8.0-2.1 libssl1.1_1.1.1g-1 libstdc++-10-dev_10.2.0-13 libstdc++-9-dev_9.3.0-18 libstdc++-9-dev-mipsel-cross_9.3.0-8cross1 libstdc++6_10.2.0-13 libstdc++6-mipsel-cross_10.2.0-5cross1 libsub-override-perl_0.09-2 libsystemd0_246.6-1 libtasn1-6_4.16.0-2 libtinfo6_6.2+20200918-1 libtool_2.4.6-14 libtsan0_10.2.0-13 libubsan1_10.2.0-13 libuchardet0_0.0.7-1 libudev1_246.6-1 libunistring2_0.9.10-4 libuuid1_2.36-3+b1 libuv1_1.39.0-1 libxapian30_1.4.17-1 libxml-libxml-perl_2.0134+dfsg-2 libxml-namespacesupport-perl_1.12-1 libxml-sax-base-perl_1.09-1 libxml-sax-perl_1.02+dfsg-1 libxml-simple-perl_2.25-1 libxml2_2.9.10+dfsg-6 libyaml-perl_1.30-1 libz3-4_4.8.9-1 libzstd1_1.4.5+dfsg-4 linux-libc-dev_5.8.10-1 linux-libc-dev-mipsel-cross_5.7.10-1cross1 login_1:4.8.1-1 logsave_1.45.6-1 lsb-base_11.1.0 m4_1.4.18-4 make_4.3-4 man-db_2.9.3-2 mawk_1.3.4.20200120-2 mount_2.36-3+b1 ncurses-base_6.2+20200918-1 ncurses-bin_6.2+20200918-1 passwd_1:4.8.1-1 patch_2.7.6-6 perl_5.30.3-4 perl-base_5.30.3-4 perl-modules-5.28_5.28.1-6 perl-modules-5.30_5.30.3-4 po-debconf_1.0.21 procps_2:3.3.16-5 sbuild-build-depends-main-dummy_0.invalid.0 sed_4.7-1 sensible-utils_0.0.12+nmu1 sysvinit-utils_2.96-5 tar_1.30+dfsg-7 tzdata_2020a-1 ucf_3.0043 util-linux_2.36-3+b1 xz-utils_5.2.4-1+b1 zlib1g_1:1.2.11.dfsg-2 +------------------------------------------------------------------------------+ | Build | +------------------------------------------------------------------------------+ Unpack source ------------- -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Format: 3.0 (quilt) Source: hepmc3 Binary: libhepmc3, libhepmc3-dev, libhepmc3-search, libhepmc3-search-dev, hepmc3-doc Architecture: any all Version: 3.1.2-2 Maintainer: Debian Science Maintainers Uploaders: HepMC developers , Mo Zhou , Homepage: http://hepmc.web.cern.ch/hepmc/ Standards-Version: 4.3.0 Vcs-Browser: https://salsa.debian.org/science-team/hepmc3 Vcs-Git: https://salsa.debian.org/science-team/hepmc3.git Build-Depends: debhelper (>= 9~), cmake, doxygen Package-List: hepmc3-doc deb doc optional arch=all libhepmc3 deb libs optional arch=any libhepmc3-dev deb libdevel optional arch=any libhepmc3-search deb libs optional arch=any libhepmc3-search-dev deb libdevel optional arch=any Checksums-Sha1: 2df5479e20f5183644f186f3da338117ac7354bc 4849327 hepmc3_3.1.2.orig.tar.gz 844c6ae36c54cfd1506f6208c737141cae2bcaba 4028 hepmc3_3.1.2-2.debian.tar.xz Checksums-Sha256: 4133074b3928252877982f3d4b4c6c750bb7a324eb6c7bb2afc6fa256da3ecc7 4849327 hepmc3_3.1.2.orig.tar.gz 8bce957ef7bba7c4da990609cd9ddc500bf372f3d22c53134654913ab3fc3081 4028 hepmc3_3.1.2-2.debian.tar.xz Files: 9f0fcd6ca100ba667cf1f5ccfbd0d79c 4849327 hepmc3_3.1.2.orig.tar.gz e337f34dcdb2af82453845c89b0bb870 4028 hepmc3_3.1.2-2.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQJJBAEBCgAzFiEEY4vHXsHlxYkGfjXeYmRes19oaooFAl2DHSIVHGNkbHVtaW5h dGVAZ21haWwuY29tAAoJEGJkXrNfaGqKTRMP/RxSInnypTBBdUTBkx4ZujUNdEf2 Pd3PDVRjcZqQ+zcGD6o/gCg6Vtruu0E+4w+ayVY0Bhg6g0Pm1mZ+bpgfy7flXmxy 7VMGoaOBHo/6PhJrflxhKZy8m+JY96pYAWWkdIprV8fxOmEGC29Or67pr2Psa+R6 7tw8cNBThA9gYZ+7Rq8CI93r3OdAy1UuiZh2fDqLxqPeKPEmPuodN7owZEmI5wy1 YJbHzmR5aGgezIxKleF3rq1llgSwWxJhpHlyNUeiyEKsnb4AhCTlp6+yY4la5BJi 5nThtlrPyYEYCIClBI7WZUQZ0gQtMj4H1x1QRqtYRPDkg7E1WKxA+v+SYGia/cw4 7yVUrVkdFRAfW3+sgtTiTRd/gEctceyJtiGyUI9pWWSAzm1655xuAEyV94yLjsDS UvvsnRoKbD+1hzN/ZE5ubW7vfkYp8Wu9reRq1qXuu/BBbkMCTYlQirnOfKQ23+x3 4r140/wLf9DHpxe6xJjCbJoP/CGM23CdA7kZqK8jJZT8Hg/uAV3GBKbG8oI3RbUV Pn7k9pCmaGrlGsmu/SllSUi4YgW+0OKsFr91xzxW5T12Z4frlpP5jM3yLaVDjK28 kUJGokDaJVXe4dUYute+PkNUjQx6vgwsMz2mo1Gkdj9AKLwoDF/N8gdzR6FTkFHJ MPyo44iGFvNi4CkI =/AgI -----END PGP SIGNATURE----- gpgv: unknown type of key resource 'trustedkeys.kbx' gpgv: keyblock resource '/tmp/dpkg-verify-sig.vuaTEHPP/trustedkeys.kbx': General error gpgv: Signature made Thu Sep 19 06:16:02 2019 UTC gpgv: using RSA key 638BC75EC1E5C589067E35DE62645EB35F686A8A gpgv: issuer "cdluminate@gmail.com" gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./hepmc3_3.1.2-2.dsc dpkg-source: info: extracting hepmc3 in /<> dpkg-source: info: unpacking hepmc3_3.1.2.orig.tar.gz dpkg-source: info: unpacking hepmc3_3.1.2-2.debian.tar.xz Check disk space ---------------- Sufficient free space for build User Environment ---------------- APT_CONFIG=/var/lib/sbuild/apt.conf CONFIG_SITE=/etc/dpkg-cross/cross-config.mipsel DEB_BUILD_OPTIONS=nocheck HOME=/sbuild-nonexistent LANG=en_US.UTF-8 LC_ALL=C.UTF-8 LOGNAME=helmut PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games SCHROOT_ALIAS_NAME=unstable-amd64-sbuild SCHROOT_CHROOT_NAME=unstable-amd64-sbuild SCHROOT_COMMAND=env SCHROOT_GID=1003 SCHROOT_GROUP=helmut SCHROOT_SESSION_ID=unstable-amd64-sbuild-31c0cdc5-e91a-4649-ba05-e01909687165 SCHROOT_UID=1003 SCHROOT_USER=helmut SHELL=/bin/sh USER=helmut dpkg-buildpackage ----------------- Command: dpkg-buildpackage -amipsel -Pcross,nocheck -us -uc -B -rfakeroot --jobs-try=1 dpkg-buildpackage: info: source package hepmc3 dpkg-buildpackage: info: source version 3.1.2-2 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Mo Zhou dpkg-architecture: warning: specified GNU system type mipsel-linux-gnu does not match CC system type x86_64-linux-gnu, try setting a correct CC environment variable dpkg-source --before-build . dpkg-buildpackage: info: host architecture mipsel fakeroot debian/rules clean dh clean -Scmake dh: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_auto_clean -O-Scmake dh_auto_clean: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_clean -O-Scmake dh_clean: warning: Compatibility levels before 10 are deprecated (level 9 in use) debian/rules build-arch dh build-arch -Scmake dh: warning: Compatibility levels before 10 are deprecated (level 9 in use) dh_update_autotools_config -a -O-Scmake debian/rules override_dh_auto_configure make[1]: Entering directory '/<>' dh_auto_configure -- \ -DHEPMC3_ENABLE_ROOTIO=OFF \ -DHEPMC3_ENABLE_TEST=ON \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_SKIP_INSTALL_RPATH=ON \ -DCMAKE_INSTALL_LIBDIR=/usr/lib/mipsel-linux-gnu dh_auto_configure: warning: Compatibility levels before 10 are deprecated (level 9 in use) cd obj-mipsel-linux-gnu && cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON "-GUnix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_SYSTEM_PROCESSOR=mipsel -DCMAKE_C_COMPILER=mipsel-linux-gnu-gcc -DCMAKE_CXX_COMPILER=mipsel-linux-gnu-g\+\+ -DPKG_CONFIG_EXECUTABLE=/usr/bin/mipsel-linux-gnu-pkg-config -DPKGCONFIG_EXECUTABLE=/usr/bin/mipsel-linux-gnu-pkg-config -DQMAKE_EXECUTABLE=/usr/bin/mipsel-linux-gnu-qmake -DCMAKE_INSTALL_LIBDIR=lib/mipsel-linux-gnu -DHEPMC3_ENABLE_ROOTIO=OFF -DHEPMC3_ENABLE_TEST=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_SKIP_INSTALL_RPATH=ON -DCMAKE_INSTALL_LIBDIR=/usr/lib/mipsel-linux-gnu .. -- The C compiler identification is GNU 9.3.0 -- The CXX compiler identification is GNU 9.3.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/mipsel-linux-gnu-gcc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/mipsel-linux-gnu-g++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- HepMC3 Build type: None -- HepMC3: HEPMC3_ENABLE_SEARCH ON -- HepMC3: HEPMC3_ENABLE_ROOTIO OFF -- HepMC3: HEPMC3_BUILD_EXAMPLES OFF -- HepMC3: HEPMC3_ENABLE_TEST ON -- HepMC3: HEPMC3_INSTALL_INTERFACES OFF -- Performing Test COMPILER_SUPPORTS__CRT_SECURE_NO_WARNINGS -- Performing Test COMPILER_SUPPORTS__CRT_SECURE_NO_WARNINGS - Failed -- Performing Test COMPILER_SUPPORTS_ZCPLUSPLUS -- Performing Test COMPILER_SUPPORTS_ZCPLUSPLUS - Failed -- Performing Test COMPILER_SUPPORTS_CXX11 -- Performing Test COMPILER_SUPPORTS_CXX11 - Success -- The compiler /usr/bin/mipsel-linux-gnu-g++ has cxx_range_for support. -- HepMC3: CXX FLAGS -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- building testBoost for testBoost -- building testMass for testMass -- building testPrintBug for testPrintBug -- building testPolarization for testPolarization -- building testUnits for testUnits -- building testMultipleCopies for testMultipleCopies -- building testWeights for testWeights -- building testLoops for testLoops -- building testDelete for testDelete -- building testIO1 for testIO1 -- building testIO3 for testIO3 -- building testIO6 for testIO6 -- building testReaderFactory1 for testReaderFactory1 -- building testThreads1 for testThreads1 -- Could NOT find Pythia8 (missing: PYTHIA8_INCLUDE_DIR PYTHIA8_LIBRARIES PYTHIA8_XMLDOC_DIR) -- Validation: Pythia8 package not found. Please check if PYTHIA8_ROOT_DIR is set properly. CMake Warning (dev) at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:273 (message): The package name passed to `find_package_handle_standard_args` (PHOTOSPP) does not match the name of the calling package (Photospp). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/Modules/FindPhotospp.cmake:51 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) test/CMakeLists.txt:142 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- Could NOT find PHOTOSPP (missing: PHOTOSPP_INCLUDE_DIR PHOTOSPP_LIBRARIES) -- Validation: Photospp package not found. Please check if PHOTOSPP_ROOT_DIR is set properly. CMake Warning (dev) at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:273 (message): The package name passed to `find_package_handle_standard_args` (TAUOLAPP) does not match the name of the calling package (Tauolapp). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/Modules/FindTauolapp.cmake:34 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) test/CMakeLists.txt:161 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- Could NOT find TAUOLAPP (missing: TAUOLAPP_INCLUDE_DIR TAUOLAPP_LIBRARIES) -- Validation: Tauolapp package not found. Please check if TAUOLA_ROOT_DIR is set properly. -- HEPMC2 package not found. Please check if HEPMC2_ROOT_DIR is set properly. CMake Warning (dev) at /usr/share/cmake-3.18/Modules/CPack.cmake:601 (option): Policy CMP0077 is not set: option() honors normal variables. Run "cmake --help-policy CMP0077" for policy details. Use the cmake_policy command to set the policy and suppress this warning. For compatibility with older versions of CMake, option is clearing the normal variable 'CPACK_BINARY_DEB'. Call Stack (most recent call first): CMakeLists.txt:340 (INCLUDE) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.18/Modules/CPack.cmake:604 (option): Policy CMP0077 is not set: option() honors normal variables. Run "cmake --help-policy CMP0077" for policy details. Use the cmake_policy command to set the policy and suppress this warning. For compatibility with older versions of CMake, option is clearing the normal variable 'CPACK_BINARY_RPM'. Call Stack (most recent call first): CMakeLists.txt:340 (INCLUDE) This warning is for project developers. Use -Wno-dev to suppress it. -- Configuring done -- Generating done CMake Warning: Manually-specified variables were not used by the project: CMAKE_EXPORT_NO_PACKAGE_REGISTRY PKGCONFIG_EXECUTABLE PKG_CONFIG_EXECUTABLE QMAKE_EXECUTABLE -- Build files have been written to: /<>/obj-mipsel-linux-gnu make[1]: Leaving directory '/<>' debian/rules override_dh_auto_build-arch make[1]: Entering directory '/<>' dh_auto_build dh_auto_build: warning: Compatibility levels before 10 are deprecated (level 9 in use) cd obj-mipsel-linux-gnu && make -j1 make[2]: Entering directory '/<>/obj-mipsel-linux-gnu' /usr/bin/cmake -S/<> -B/<>/obj-mipsel-linux-gnu --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /<>/obj-mipsel-linux-gnu/CMakeFiles /<>/obj-mipsel-linux-gnu//CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[3]: Entering directory '/<>/obj-mipsel-linux-gnu' make -f CMakeFiles/objlibcore.dir/build.make CMakeFiles/objlibcore.dir/depend make[4]: Entering directory '/<>/obj-mipsel-linux-gnu' cd /<>/obj-mipsel-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<> /<>/obj-mipsel-linux-gnu /<>/obj-mipsel-linux-gnu /<>/obj-mipsel-linux-gnu/CMakeFiles/objlibcore.dir/DependInfo.cmake --color= Scanning dependencies of target objlibcore make[4]: Leaving directory '/<>/obj-mipsel-linux-gnu' make -f CMakeFiles/objlibcore.dir/build.make CMakeFiles/objlibcore.dir/build make[4]: Entering directory '/<>/obj-mipsel-linux-gnu' [ 1%] Building CXX object CMakeFiles/objlibcore.dir/src/GenCrossSection.cc.o /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibcore.dir/src/GenCrossSection.cc.o -c /<>/src/GenCrossSection.cc [ 3%] Building CXX object CMakeFiles/objlibcore.dir/src/GenParticle.cc.o /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibcore.dir/src/GenParticle.cc.o -c /<>/src/GenParticle.cc [ 5%] Building CXX object CMakeFiles/objlibcore.dir/src/GenVertex.cc.o /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibcore.dir/src/GenVertex.cc.o -c /<>/src/GenVertex.cc [ 7%] Building CXX object CMakeFiles/objlibcore.dir/src/Print.cc.o /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibcore.dir/src/Print.cc.o -c /<>/src/Print.cc [ 9%] Building CXX object CMakeFiles/objlibcore.dir/src/Setup.cc.o /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibcore.dir/src/Setup.cc.o -c /<>/src/Setup.cc [ 10%] Building CXX object CMakeFiles/objlibcore.dir/src/WriterHEPEVT.cc.o /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibcore.dir/src/WriterHEPEVT.cc.o -c /<>/src/WriterHEPEVT.cc [ 12%] Building CXX object CMakeFiles/objlibcore.dir/src/GenEvent.cc.o /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibcore.dir/src/GenEvent.cc.o -c /<>/src/GenEvent.cc [ 14%] Building CXX object CMakeFiles/objlibcore.dir/src/GenPdfInfo.cc.o /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibcore.dir/src/GenPdfInfo.cc.o -c /<>/src/GenPdfInfo.cc [ 16%] Building CXX object CMakeFiles/objlibcore.dir/src/HEPEVT_Wrapper.cc.o /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibcore.dir/src/HEPEVT_Wrapper.cc.o -c /<>/src/HEPEVT_Wrapper.cc [ 18%] Building CXX object CMakeFiles/objlibcore.dir/src/ReaderAscii.cc.o /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibcore.dir/src/ReaderAscii.cc.o -c /<>/src/ReaderAscii.cc [ 20%] Building CXX object CMakeFiles/objlibcore.dir/src/ReaderHEPEVT.cc.o /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibcore.dir/src/ReaderHEPEVT.cc.o -c /<>/src/ReaderHEPEVT.cc [ 21%] Building CXX object CMakeFiles/objlibcore.dir/src/WriterAscii.cc.o /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibcore.dir/src/WriterAscii.cc.o -c /<>/src/WriterAscii.cc /<>/src/WriterAscii.cc: In member function ‘virtual void HepMC3::WriterAscii::write_event(const HepMC3::GenEvent&)’: /<>/src/WriterAscii.cc:87:43: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘std::vector >::size_type’ {aka ‘unsigned int’} [-Wformat=] 87 | m_cursor += sprintf(m_cursor, "E %d %lu %lu", evt.event_number(), evt.vertices().size(), evt.particles().size()); | ~~^ ~~~~~~~~~~~~~~~~~~~~~ | | | | long unsigned int std::vector >::size_type {aka unsigned int} | %u /<>/src/WriterAscii.cc:87:47: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘std::vector >::size_type’ {aka ‘unsigned int’} [-Wformat=] 87 | m_cursor += sprintf(m_cursor, "E %d %lu %lu", evt.event_number(), evt.vertices().size(), evt.particles().size()); | ~~^ ~~~~~~~~~~~~~~~~~~~~~~ | | | | long unsigned int std::vector >::size_type {aka unsigned int} | %u [ 23%] Building CXX object CMakeFiles/objlibcore.dir/src/GenHeavyIon.cc.o /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibcore.dir/src/GenHeavyIon.cc.o -c /<>/src/GenHeavyIon.cc [ 25%] Building CXX object CMakeFiles/objlibcore.dir/src/GenRunInfo.cc.o /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibcore.dir/src/GenRunInfo.cc.o -c /<>/src/GenRunInfo.cc [ 27%] Building CXX object CMakeFiles/objlibcore.dir/src/LHEFAttributes.cc.o /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibcore.dir/src/LHEFAttributes.cc.o -c /<>/src/LHEFAttributes.cc [ 29%] Building CXX object CMakeFiles/objlibcore.dir/src/ReaderAsciiHepMC2.cc.o /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibcore.dir/src/ReaderAsciiHepMC2.cc.o -c /<>/src/ReaderAsciiHepMC2.cc [ 30%] Building CXX object CMakeFiles/objlibcore.dir/src/ReaderLHEF.cc.o /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibcore.dir/src/ReaderLHEF.cc.o -c /<>/src/ReaderLHEF.cc [ 32%] Building CXX object CMakeFiles/objlibcore.dir/src/WriterAsciiHepMC2.cc.o /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibcore.dir/src/WriterAsciiHepMC2.cc.o -c /<>/src/WriterAsciiHepMC2.cc /<>/src/WriterAsciiHepMC2.cc: In member function ‘virtual void HepMC3::WriterAsciiHepMC2::write_event(const HepMC3::GenEvent&)’: /<>/src/WriterAsciiHepMC2.cc:121:61: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 10 has type ‘std::vector >::size_type’ {aka ‘unsigned int’} [-Wformat=] 121 | m_cursor += sprintf(m_cursor, "E %d %d %e %e %e %d %d %lu %i %i", | ~~^ | | | long unsigned int | %u ...... 129 | evt.vertices().size(), | ~~~~~~~~~~~~~~~~~~~~~ | | | std::vector >::size_type {aka unsigned int} /<>/src/WriterAsciiHepMC2.cc:142:43: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘std::vector::size_type’ {aka ‘unsigned int’} [-Wformat=] 142 | m_cursor += sprintf(m_cursor, " %lu",evt.weights().size()); | ~~^ ~~~~~~~~~~~~~~~~~~~~ | | | | long unsigned int std::vector::size_type {aka unsigned int} | %u /<>/src/WriterAsciiHepMC2.cc:148:40: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘std::vector::size_type’ {aka ‘unsigned int’} [-Wformat=] 148 | m_cursor += sprintf(m_cursor, "N %lu",evt.weights().size()); | ~~^ ~~~~~~~~~~~~~~~~~~~~ | | | | long unsigned int std::vector::size_type {aka unsigned int} | %u /<>/src/WriterAsciiHepMC2.cc: In member function ‘void HepMC3::WriterAsciiHepMC2::write_vertex(HepMC3::ConstGenVertexPtr)’: /<>/src/WriterAsciiHepMC2.cc:297:41: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘std::vector >::size_type’ {aka ‘unsigned int’} [-Wformat=] 297 | m_cursor += sprintf(m_cursor," %i %lu %lu",orph,v->particles_out().size(),weights.size()); | ~~^ ~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | long unsigned int std::vector >::size_type {aka unsigned int} | %u /<>/src/WriterAsciiHepMC2.cc:297:45: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘std::vector::size_type’ {aka ‘unsigned int’} [-Wformat=] 297 | m_cursor += sprintf(m_cursor," %i %lu %lu",orph,v->particles_out().size(),weights.size()); | ~~^ ~~~~~~~~~~~~~~ | | | | long unsigned int std::vector::size_type {aka unsigned int} | %u make[4]: Leaving directory '/<>/obj-mipsel-linux-gnu' [ 32%] Built target objlibcore make -f CMakeFiles/HepMC3_static.dir/build.make CMakeFiles/HepMC3_static.dir/depend make[4]: Entering directory '/<>/obj-mipsel-linux-gnu' cd /<>/obj-mipsel-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<> /<>/obj-mipsel-linux-gnu /<>/obj-mipsel-linux-gnu /<>/obj-mipsel-linux-gnu/CMakeFiles/HepMC3_static.dir/DependInfo.cmake --color= Scanning dependencies of target HepMC3_static make[4]: Leaving directory '/<>/obj-mipsel-linux-gnu' make -f CMakeFiles/HepMC3_static.dir/build.make CMakeFiles/HepMC3_static.dir/build make[4]: Entering directory '/<>/obj-mipsel-linux-gnu' [ 34%] Linking CXX static library libHepMC3_static.a /usr/bin/cmake -P CMakeFiles/HepMC3_static.dir/cmake_clean_target.cmake /usr/bin/cmake -E cmake_link_script CMakeFiles/HepMC3_static.dir/link.txt --verbose=1 /usr/bin/mipsel-linux-gnu-ar qc libHepMC3_static.a CMakeFiles/objlibcore.dir/src/GenCrossSection.cc.o CMakeFiles/objlibcore.dir/src/GenParticle.cc.o CMakeFiles/objlibcore.dir/src/GenVertex.cc.o CMakeFiles/objlibcore.dir/src/Print.cc.o CMakeFiles/objlibcore.dir/src/Setup.cc.o CMakeFiles/objlibcore.dir/src/WriterHEPEVT.cc.o CMakeFiles/objlibcore.dir/src/GenEvent.cc.o CMakeFiles/objlibcore.dir/src/GenPdfInfo.cc.o CMakeFiles/objlibcore.dir/src/HEPEVT_Wrapper.cc.o CMakeFiles/objlibcore.dir/src/ReaderAscii.cc.o CMakeFiles/objlibcore.dir/src/ReaderHEPEVT.cc.o CMakeFiles/objlibcore.dir/src/WriterAscii.cc.o CMakeFiles/objlibcore.dir/src/GenHeavyIon.cc.o CMakeFiles/objlibcore.dir/src/GenRunInfo.cc.o CMakeFiles/objlibcore.dir/src/LHEFAttributes.cc.o CMakeFiles/objlibcore.dir/src/ReaderAsciiHepMC2.cc.o CMakeFiles/objlibcore.dir/src/ReaderLHEF.cc.o CMakeFiles/objlibcore.dir/src/WriterAsciiHepMC2.cc.o /usr/bin/mipsel-linux-gnu-ranlib libHepMC3_static.a make[4]: Leaving directory '/<>/obj-mipsel-linux-gnu' [ 34%] Built target HepMC3_static make -f CMakeFiles/HepMC3.dir/build.make CMakeFiles/HepMC3.dir/depend make[4]: Entering directory '/<>/obj-mipsel-linux-gnu' cd /<>/obj-mipsel-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<> /<>/obj-mipsel-linux-gnu /<>/obj-mipsel-linux-gnu /<>/obj-mipsel-linux-gnu/CMakeFiles/HepMC3.dir/DependInfo.cmake --color= Scanning dependencies of target HepMC3 make[4]: Leaving directory '/<>/obj-mipsel-linux-gnu' make -f CMakeFiles/HepMC3.dir/build.make CMakeFiles/HepMC3.dir/build make[4]: Entering directory '/<>/obj-mipsel-linux-gnu' [ 36%] Linking CXX shared library outputs/usr/lib/mipsel-linux-gnu/libHepMC3.so /usr/bin/cmake -E cmake_link_script CMakeFiles/HepMC3.dir/link.txt --verbose=1 /usr/bin/mipsel-linux-gnu-g++ -fPIC -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -Wl,-z,relro -shared -Wl,-soname,libHepMC3.so.2 -o outputs/usr/lib/mipsel-linux-gnu/libHepMC3.so.2 CMakeFiles/objlibcore.dir/src/GenCrossSection.cc.o CMakeFiles/objlibcore.dir/src/GenParticle.cc.o CMakeFiles/objlibcore.dir/src/GenVertex.cc.o CMakeFiles/objlibcore.dir/src/Print.cc.o CMakeFiles/objlibcore.dir/src/Setup.cc.o CMakeFiles/objlibcore.dir/src/WriterHEPEVT.cc.o CMakeFiles/objlibcore.dir/src/GenEvent.cc.o CMakeFiles/objlibcore.dir/src/GenPdfInfo.cc.o CMakeFiles/objlibcore.dir/src/HEPEVT_Wrapper.cc.o CMakeFiles/objlibcore.dir/src/ReaderAscii.cc.o CMakeFiles/objlibcore.dir/src/ReaderHEPEVT.cc.o CMakeFiles/objlibcore.dir/src/WriterAscii.cc.o CMakeFiles/objlibcore.dir/src/GenHeavyIon.cc.o CMakeFiles/objlibcore.dir/src/GenRunInfo.cc.o CMakeFiles/objlibcore.dir/src/LHEFAttributes.cc.o CMakeFiles/objlibcore.dir/src/ReaderAsciiHepMC2.cc.o CMakeFiles/objlibcore.dir/src/ReaderLHEF.cc.o CMakeFiles/objlibcore.dir/src/WriterAsciiHepMC2.cc.o /usr/bin/cmake -E cmake_symlink_library outputs/usr/lib/mipsel-linux-gnu/libHepMC3.so.2 outputs/usr/lib/mipsel-linux-gnu/libHepMC3.so.2 outputs/usr/lib/mipsel-linux-gnu/libHepMC3.so make[4]: Leaving directory '/<>/obj-mipsel-linux-gnu' [ 36%] Built target HepMC3 make -f search/CMakeFiles/objlibsearch.dir/build.make search/CMakeFiles/objlibsearch.dir/depend make[4]: Entering directory '/<>/obj-mipsel-linux-gnu' cd /<>/obj-mipsel-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/search /<>/obj-mipsel-linux-gnu /<>/obj-mipsel-linux-gnu/search /<>/obj-mipsel-linux-gnu/search/CMakeFiles/objlibsearch.dir/DependInfo.cmake --color= Scanning dependencies of target objlibsearch make[4]: Leaving directory '/<>/obj-mipsel-linux-gnu' make -f search/CMakeFiles/objlibsearch.dir/build.make search/CMakeFiles/objlibsearch.dir/build make[4]: Entering directory '/<>/obj-mipsel-linux-gnu' [ 38%] Building CXX object search/CMakeFiles/objlibsearch.dir/src/Relatives.cc.o cd /<>/obj-mipsel-linux-gnu/search && /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -I/<>/search/include -I/<>/search -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibsearch.dir/src/Relatives.cc.o -c /<>/search/src/Relatives.cc [ 40%] Building CXX object search/CMakeFiles/objlibsearch.dir/src/Selector.cc.o cd /<>/obj-mipsel-linux-gnu/search && /usr/bin/mipsel-linux-gnu-g++ -I/<>/include -I/<>/search/include -I/<>/search -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -o CMakeFiles/objlibsearch.dir/src/Selector.cc.o -c /<>/search/src/Selector.cc In file included from /<>/search/include/HepMC3/Selector.h:14, from /<>/search/src/Selector.cc:10: /<>/search/include/HepMC3/Feature.h: In lambda function: /<>/search/include/HepMC3/Feature.h:296:69: internal compiler error: in get_fns, at cp/tree.c:2455 296 | return fabs(local - value) <= ((fabs(local) < fabs(value))? fabs(value) : fabs(local)) * std::numeric_limits::epsilon(); | ^ Please submit a full bug report, with preprocessed source if appropriate. See for instructions. Preprocessed source stored into /tmp/cczK2kU5.out file, please attach this to your bugreport. === BEGIN GCC DUMP === 1586: // Target: mipsel-linux-gnu 1586: // Configured with: ../src/configure -v --with-pkgversion='Debian 9.3.0-8' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libsanitizer --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --without-target-system-zlib --enable-libpth-m2 --enable-multiarch --disable-werror --enable-multilib --with-arch-32=mips32r2 --with-fp-32=xx --with-madd4=no --with-lxc1-sxc1=no --enable-targets=all --with-arch-64=mips64r2 --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=mipsel-linux-gnu --program-prefix=mipsel-linux-gnu- --includedir=/usr/mipsel-linux-gnu/include --with-build-config=bootstrap-lto-lean --enable-link-mutex 1586: // Thread model: posix 1586: // gcc version 9.3.0 (Debian 9.3.0-8) 1586: // 1586: // In file included from /<>/search/include/HepMC3/Selector.h:14, 1586: // from /<>/search/src/Selector.cc:10: 1586: // /<>/search/include/HepMC3/Feature.h: In lambda function: 1586: // /<>/search/include/HepMC3/Feature.h:296:69: internal compiler error: in get_fns, at cp/tree.c:2455 1586: // 296 | return fabs(local - value) <= ((fabs(local) < fabs(value))? fabs(value) : fabs(local)) * std::numeric_limits::epsilon(); 1586: // | ^ 1586: // Please submit a full bug report, 1586: // with preprocessed source if appropriate. 1586: // See for instructions. 1586: 1586: // /usr/lib/gcc-cross/mipsel-linux-gnu/9/cc1plus -quiet -I /<>/include -I /<>/search/include -I /<>/search -imultiarch mipsel-linux-gnu -D_GNU_SOURCE -D _FORTIFY_SOURCE=2 /<>/search/src/Selector.cc -mel -quiet -dumpbase Selector.cc -march=mips32r2 -mfpxx -mllsc -mno-lxc1-sxc1 -mno-madd4 -mips32r2 -mabi=32 -auxbase-strip CMakeFiles/objlibsearch.dir/src/Selector.cc.o -g -O2 -Wformat=1 -Werror=format-security -Wdate-time -std=c++11 -fdebug-prefix-map=/<>=. -fstack-protector-strong -fPIC -o - -frandom-seed=0 -fdump-noaddr 1586: 1586: # 1 "/<>/search/src/Selector.cc" 1586: # 1 "/<>/obj-mipsel-linux-gnu/search//" 1586: # 1 "" 1586: # 1 "" 1586: # 1 "/usr/mipsel-linux-gnu/include/stdc-predef.h" 1 3 1586: # 1 "" 2 1586: # 1 "/<>/search/src/Selector.cc" 1586: # 10 "/<>/search/src/Selector.cc" 1586: # 1 "/<>/search/include/HepMC3/Selector.h" 1 1586: # 13 "/<>/search/include/HepMC3/Selector.h" 1586: # 1 "/<>/search/include/HepMC3/Filter.h" 1 1586: # 13 "/<>/search/include/HepMC3/Filter.h" 1586: # 1 "/<>/include/HepMC3/GenParticle.h" 1 1586: # 16 "/<>/include/HepMC3/GenParticle.h" 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/string" 1 3 1586: # 36 "/usr/mipsel-linux-gnu/include/c++/9/string" 3 1586: 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/string" 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/c++config.h" 1 3 1586: # 252 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/c++config.h" 3 1586: 1586: # 252 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/c++config.h" 3 1586: namespace std 1586: { 1586: typedef unsigned int size_t; 1586: typedef int ptrdiff_t; 1586: 1586: 1586: typedef decltype(nullptr) nullptr_t; 1586: 1586: } 1586: # 274 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/c++config.h" 3 1586: namespace std 1586: { 1586: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 1586: } 1586: namespace __gnu_cxx 1586: { 1586: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 1586: } 1586: # 524 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/c++config.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/os_defines.h" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/os_defines.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/features.h" 1 3 1586: # 461 "/usr/mipsel-linux-gnu/include/features.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/sys/cdefs.h" 1 3 1586: # 452 "/usr/mipsel-linux-gnu/include/sys/cdefs.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/wordsize.h" 1 3 1586: # 18 "/usr/mipsel-linux-gnu/include/bits/wordsize.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/sgidefs.h" 1 3 1586: # 19 "/usr/mipsel-linux-gnu/include/bits/wordsize.h" 2 3 1586: # 453 "/usr/mipsel-linux-gnu/include/sys/cdefs.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/long-double.h" 1 3 1586: # 454 "/usr/mipsel-linux-gnu/include/sys/cdefs.h" 2 3 1586: # 462 "/usr/mipsel-linux-gnu/include/features.h" 2 3 1586: # 485 "/usr/mipsel-linux-gnu/include/features.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/gnu/stubs.h" 1 3 1586: # 11 "/usr/mipsel-linux-gnu/include/gnu/stubs.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/gnu/stubs-o32_hard.h" 1 3 1586: # 12 "/usr/mipsel-linux-gnu/include/gnu/stubs.h" 2 3 1586: # 486 "/usr/mipsel-linux-gnu/include/features.h" 2 3 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/os_defines.h" 2 3 1586: # 525 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/c++config.h" 2 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/cpu_defines.h" 1 3 1586: # 528 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/c++config.h" 2 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/string" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stringfwd.h" 1 3 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/bits/stringfwd.h" 3 1586: 1586: # 38 "/usr/mipsel-linux-gnu/include/c++/9/bits/stringfwd.h" 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/memoryfwd.h" 1 3 1586: # 46 "/usr/mipsel-linux-gnu/include/c++/9/bits/memoryfwd.h" 3 1586: 1586: # 47 "/usr/mipsel-linux-gnu/include/c++/9/bits/memoryfwd.h" 3 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 63 "/usr/mipsel-linux-gnu/include/c++/9/bits/memoryfwd.h" 3 1586: template 1586: class allocator; 1586: 1586: template<> 1586: class allocator; 1586: 1586: 1586: 1586: template 1586: struct uses_allocator; 1586: 1586: 1586: 1586: 1586: 1586: } 1586: # 41 "/usr/mipsel-linux-gnu/include/c++/9/bits/stringfwd.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct char_traits; 1586: 1586: template<> struct char_traits; 1586: 1586: 1586: template<> struct char_traits; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template<> struct char_traits; 1586: template<> struct char_traits; 1586: 1586: 1586: namespace __cxx11 { 1586: 1586: template, 1586: typename _Alloc = allocator<_CharT> > 1586: class basic_string; 1586: 1586: } 1586: 1586: 1586: typedef basic_string string; 1586: 1586: 1586: 1586: typedef basic_string wstring; 1586: # 93 "/usr/mipsel-linux-gnu/include/c++/9/bits/stringfwd.h" 3 1586: typedef basic_string u16string; 1586: 1586: 1586: typedef basic_string u32string; 1586: 1586: 1586: 1586: 1586: 1586: } 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/string" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/char_traits.h" 1 3 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/bits/char_traits.h" 3 1586: 1586: # 38 "/usr/mipsel-linux-gnu/include/c++/9/bits/char_traits.h" 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 1 3 1586: # 60 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/functexcept.h" 1 3 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/bits/functexcept.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/exception_defines.h" 1 3 1586: # 41 "/usr/mipsel-linux-gnu/include/c++/9/bits/functexcept.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: void 1586: __throw_bad_exception(void) __attribute__((__noreturn__)); 1586: 1586: 1586: void 1586: __throw_bad_alloc(void) __attribute__((__noreturn__)); 1586: 1586: 1586: void 1586: __throw_bad_cast(void) __attribute__((__noreturn__)); 1586: 1586: void 1586: __throw_bad_typeid(void) __attribute__((__noreturn__)); 1586: 1586: 1586: void 1586: __throw_logic_error(const char*) __attribute__((__noreturn__)); 1586: 1586: void 1586: __throw_domain_error(const char*) __attribute__((__noreturn__)); 1586: 1586: void 1586: __throw_invalid_argument(const char*) __attribute__((__noreturn__)); 1586: 1586: void 1586: __throw_length_error(const char*) __attribute__((__noreturn__)); 1586: 1586: void 1586: __throw_out_of_range(const char*) __attribute__((__noreturn__)); 1586: 1586: void 1586: __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__)) 1586: __attribute__((__format__(__gnu_printf__, 1, 2))); 1586: 1586: void 1586: __throw_runtime_error(const char*) __attribute__((__noreturn__)); 1586: 1586: void 1586: __throw_range_error(const char*) __attribute__((__noreturn__)); 1586: 1586: void 1586: __throw_overflow_error(const char*) __attribute__((__noreturn__)); 1586: 1586: void 1586: __throw_underflow_error(const char*) __attribute__((__noreturn__)); 1586: 1586: 1586: void 1586: __throw_ios_failure(const char*) __attribute__((__noreturn__)); 1586: 1586: void 1586: __throw_ios_failure(const char*, int) __attribute__((__noreturn__)); 1586: 1586: 1586: void 1586: __throw_system_error(int) __attribute__((__noreturn__)); 1586: 1586: 1586: void 1586: __throw_future_error(int) __attribute__((__noreturn__)); 1586: 1586: 1586: void 1586: __throw_bad_function_call() __attribute__((__noreturn__)); 1586: 1586: 1586: } 1586: # 61 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/cpp_type_traits.h" 1 3 1586: # 35 "/usr/mipsel-linux-gnu/include/c++/9/bits/cpp_type_traits.h" 3 1586: 1586: # 36 "/usr/mipsel-linux-gnu/include/c++/9/bits/cpp_type_traits.h" 3 1586: # 67 "/usr/mipsel-linux-gnu/include/c++/9/bits/cpp_type_traits.h" 3 1586: extern "C++" { 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: struct __true_type { }; 1586: struct __false_type { }; 1586: 1586: template 1586: struct __truth_type 1586: { typedef __false_type __type; }; 1586: 1586: template<> 1586: struct __truth_type 1586: { typedef __true_type __type; }; 1586: 1586: 1586: 1586: template 1586: struct __traitor 1586: { 1586: enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; 1586: typedef typename __truth_type<__value>::__type __type; 1586: }; 1586: 1586: 1586: template 1586: struct __are_same 1586: { 1586: enum { __value = 0 }; 1586: typedef __false_type __type; 1586: }; 1586: 1586: template 1586: struct __are_same<_Tp, _Tp> 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: 1586: template 1586: struct __is_void 1586: { 1586: enum { __value = 0 }; 1586: typedef __false_type __type; 1586: }; 1586: 1586: template<> 1586: struct __is_void 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: 1586: 1586: 1586: template 1586: struct __is_integer 1586: { 1586: enum { __value = 0 }; 1586: typedef __false_type __type; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: template<> 1586: struct __is_integer 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: template<> 1586: struct __is_integer 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: template<> 1586: struct __is_integer 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: template<> 1586: struct __is_integer 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: 1586: template<> 1586: struct __is_integer 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: # 184 "/usr/mipsel-linux-gnu/include/c++/9/bits/cpp_type_traits.h" 3 1586: template<> 1586: struct __is_integer 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: template<> 1586: struct __is_integer 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: 1586: template<> 1586: struct __is_integer 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: template<> 1586: struct __is_integer 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: template<> 1586: struct __is_integer 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: template<> 1586: struct __is_integer 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: template<> 1586: struct __is_integer 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: template<> 1586: struct __is_integer 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: template<> 1586: struct __is_integer 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: template<> 1586: struct __is_integer 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: # 287 "/usr/mipsel-linux-gnu/include/c++/9/bits/cpp_type_traits.h" 3 1586: template 1586: struct __is_floating 1586: { 1586: enum { __value = 0 }; 1586: typedef __false_type __type; 1586: }; 1586: 1586: 1586: template<> 1586: struct __is_floating 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: template<> 1586: struct __is_floating 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: template<> 1586: struct __is_floating 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: 1586: 1586: 1586: template 1586: struct __is_pointer 1586: { 1586: enum { __value = 0 }; 1586: typedef __false_type __type; 1586: }; 1586: 1586: template 1586: struct __is_pointer<_Tp*> 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: 1586: 1586: 1586: template 1586: struct __is_arithmetic 1586: : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > 1586: { }; 1586: 1586: 1586: 1586: 1586: template 1586: struct __is_scalar 1586: : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > 1586: { }; 1586: 1586: 1586: 1586: 1586: template 1586: struct __is_char 1586: { 1586: enum { __value = 0 }; 1586: typedef __false_type __type; 1586: }; 1586: 1586: template<> 1586: struct __is_char 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: 1586: template<> 1586: struct __is_char 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: 1586: template 1586: struct __is_byte 1586: { 1586: enum { __value = 0 }; 1586: typedef __false_type __type; 1586: }; 1586: 1586: template<> 1586: struct __is_byte 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: template<> 1586: struct __is_byte 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: template<> 1586: struct __is_byte 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: # 417 "/usr/mipsel-linux-gnu/include/c++/9/bits/cpp_type_traits.h" 3 1586: template 1586: struct __is_move_iterator 1586: { 1586: enum { __value = 0 }; 1586: typedef __false_type __type; 1586: }; 1586: 1586: 1586: 1586: template 1586: inline _Iterator 1586: __miter_base(_Iterator __it) 1586: { return __it; } 1586: 1586: 1586: } 1586: } 1586: # 62 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/ext/type_traits.h" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/c++/9/ext/type_traits.h" 3 1586: 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/ext/type_traits.h" 3 1586: 1586: 1586: 1586: 1586: extern "C++" { 1586: 1586: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: template 1586: struct __enable_if 1586: { }; 1586: 1586: template 1586: struct __enable_if 1586: { typedef _Tp __type; }; 1586: 1586: 1586: 1586: template 1586: struct __conditional_type 1586: { typedef _Iftrue __type; }; 1586: 1586: template 1586: struct __conditional_type 1586: { typedef _Iffalse __type; }; 1586: 1586: 1586: 1586: template 1586: struct __add_unsigned 1586: { 1586: private: 1586: typedef __enable_if::__value, _Tp> __if_type; 1586: 1586: public: 1586: typedef typename __if_type::__type __type; 1586: }; 1586: 1586: template<> 1586: struct __add_unsigned 1586: { typedef unsigned char __type; }; 1586: 1586: template<> 1586: struct __add_unsigned 1586: { typedef unsigned char __type; }; 1586: 1586: template<> 1586: struct __add_unsigned 1586: { typedef unsigned short __type; }; 1586: 1586: template<> 1586: struct __add_unsigned 1586: { typedef unsigned int __type; }; 1586: 1586: template<> 1586: struct __add_unsigned 1586: { typedef unsigned long __type; }; 1586: 1586: template<> 1586: struct __add_unsigned 1586: { typedef unsigned long long __type; }; 1586: 1586: 1586: template<> 1586: struct __add_unsigned; 1586: 1586: template<> 1586: struct __add_unsigned; 1586: 1586: 1586: 1586: template 1586: struct __remove_unsigned 1586: { 1586: private: 1586: typedef __enable_if::__value, _Tp> __if_type; 1586: 1586: public: 1586: typedef typename __if_type::__type __type; 1586: }; 1586: 1586: template<> 1586: struct __remove_unsigned 1586: { typedef signed char __type; }; 1586: 1586: template<> 1586: struct __remove_unsigned 1586: { typedef signed char __type; }; 1586: 1586: template<> 1586: struct __remove_unsigned 1586: { typedef short __type; }; 1586: 1586: template<> 1586: struct __remove_unsigned 1586: { typedef int __type; }; 1586: 1586: template<> 1586: struct __remove_unsigned 1586: { typedef long __type; }; 1586: 1586: template<> 1586: struct __remove_unsigned 1586: { typedef long long __type; }; 1586: 1586: 1586: template<> 1586: struct __remove_unsigned; 1586: 1586: template<> 1586: struct __remove_unsigned; 1586: 1586: 1586: 1586: template 1586: inline bool 1586: __is_null_pointer(_Type* __ptr) 1586: { return __ptr == 0; } 1586: 1586: template 1586: inline bool 1586: __is_null_pointer(_Type) 1586: { return false; } 1586: 1586: 1586: inline bool 1586: __is_null_pointer(std::nullptr_t) 1586: { return true; } 1586: 1586: 1586: 1586: template::__value> 1586: struct __promote 1586: { typedef double __type; }; 1586: 1586: 1586: 1586: 1586: template 1586: struct __promote<_Tp, false> 1586: { }; 1586: 1586: template<> 1586: struct __promote 1586: { typedef long double __type; }; 1586: 1586: template<> 1586: struct __promote 1586: { typedef double __type; }; 1586: 1586: template<> 1586: struct __promote 1586: { typedef float __type; }; 1586: 1586: template::__type, 1586: typename _Up2 = typename __promote<_Up>::__type> 1586: struct __promote_2 1586: { 1586: typedef __typeof__(_Tp2() + _Up2()) __type; 1586: }; 1586: 1586: template::__type, 1586: typename _Up2 = typename __promote<_Up>::__type, 1586: typename _Vp2 = typename __promote<_Vp>::__type> 1586: struct __promote_3 1586: { 1586: typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type; 1586: }; 1586: 1586: template::__type, 1586: typename _Up2 = typename __promote<_Up>::__type, 1586: typename _Vp2 = typename __promote<_Vp>::__type, 1586: typename _Wp2 = typename __promote<_Wp>::__type> 1586: struct __promote_4 1586: { 1586: typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type; 1586: }; 1586: 1586: 1586: } 1586: } 1586: # 63 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/ext/numeric_traits.h" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/c++/9/ext/numeric_traits.h" 3 1586: 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/ext/numeric_traits.h" 3 1586: 1586: 1586: 1586: 1586: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 54 "/usr/mipsel-linux-gnu/include/c++/9/ext/numeric_traits.h" 3 1586: template 1586: struct __numeric_traits_integer 1586: { 1586: 1586: static const _Value __min = (((_Value)(-1) < 0) ? (_Value)1 << (sizeof(_Value) * 8 - ((_Value)(-1) < 0)) : (_Value)0); 1586: static const _Value __max = (((_Value)(-1) < 0) ? (((((_Value)1 << ((sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0); 1586: 1586: 1586: 1586: static const bool __is_signed = ((_Value)(-1) < 0); 1586: static const int __digits = (sizeof(_Value) * 8 - ((_Value)(-1) < 0)); 1586: }; 1586: 1586: template 1586: const _Value __numeric_traits_integer<_Value>::__min; 1586: 1586: template 1586: const _Value __numeric_traits_integer<_Value>::__max; 1586: 1586: template 1586: const bool __numeric_traits_integer<_Value>::__is_signed; 1586: 1586: template 1586: const int __numeric_traits_integer<_Value>::__digits; 1586: # 99 "/usr/mipsel-linux-gnu/include/c++/9/ext/numeric_traits.h" 3 1586: template 1586: struct __numeric_traits_floating 1586: { 1586: 1586: static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 53) * 643L / 2136); 1586: 1586: 1586: static const bool __is_signed = true; 1586: static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 15); 1586: static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 308); 1586: }; 1586: 1586: template 1586: const int __numeric_traits_floating<_Value>::__max_digits10; 1586: 1586: template 1586: const bool __numeric_traits_floating<_Value>::__is_signed; 1586: 1586: template 1586: const int __numeric_traits_floating<_Value>::__digits10; 1586: 1586: template 1586: const int __numeric_traits_floating<_Value>::__max_exponent10; 1586: 1586: template 1586: struct __numeric_traits 1586: : public __conditional_type::__value, 1586: __numeric_traits_integer<_Value>, 1586: __numeric_traits_floating<_Value> >::__type 1586: { }; 1586: 1586: 1586: } 1586: # 64 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_pair.h" 1 3 1586: # 59 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_pair.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/move.h" 1 3 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/move.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/concept_check.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/concept_check.h" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/concept_check.h" 3 1586: # 35 "/usr/mipsel-linux-gnu/include/c++/9/bits/move.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline constexpr _Tp* 1586: __addressof(_Tp& __r) noexcept 1586: { return __builtin_addressof(__r); } 1586: 1586: 1586: 1586: 1586: } 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 56 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template 1586: struct integral_constant 1586: { 1586: static constexpr _Tp value = __v; 1586: typedef _Tp value_type; 1586: typedef integral_constant<_Tp, __v> type; 1586: constexpr operator value_type() const noexcept { return value; } 1586: 1586: 1586: 1586: 1586: 1586: 1586: }; 1586: 1586: template 1586: constexpr _Tp integral_constant<_Tp, __v>::value; 1586: 1586: 1586: typedef integral_constant true_type; 1586: 1586: 1586: typedef integral_constant false_type; 1586: 1586: template 1586: using __bool_constant = integral_constant; 1586: # 91 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template 1586: struct conditional; 1586: 1586: template 1586: struct __or_; 1586: 1586: template<> 1586: struct __or_<> 1586: : public false_type 1586: { }; 1586: 1586: template 1586: struct __or_<_B1> 1586: : public _B1 1586: { }; 1586: 1586: template 1586: struct __or_<_B1, _B2> 1586: : public conditional<_B1::value, _B1, _B2>::type 1586: { }; 1586: 1586: template 1586: struct __or_<_B1, _B2, _B3, _Bn...> 1586: : public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type 1586: { }; 1586: 1586: template 1586: struct __and_; 1586: 1586: template<> 1586: struct __and_<> 1586: : public true_type 1586: { }; 1586: 1586: template 1586: struct __and_<_B1> 1586: : public _B1 1586: { }; 1586: 1586: template 1586: struct __and_<_B1, _B2> 1586: : public conditional<_B1::value, _B2, _B1>::type 1586: { }; 1586: 1586: template 1586: struct __and_<_B1, _B2, _B3, _Bn...> 1586: : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type 1586: { }; 1586: 1586: template 1586: struct __not_ 1586: : public __bool_constant 1586: { }; 1586: # 185 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template 1586: struct __success_type 1586: { typedef _Tp type; }; 1586: 1586: struct __failure_type 1586: { }; 1586: 1586: 1586: 1586: template 1586: struct remove_cv; 1586: 1586: template 1586: struct __is_void_helper 1586: : public false_type { }; 1586: 1586: template<> 1586: struct __is_void_helper 1586: : public true_type { }; 1586: 1586: 1586: template 1586: struct is_void 1586: : public __is_void_helper::type>::type 1586: { }; 1586: 1586: template 1586: struct __is_integral_helper 1586: : public false_type { }; 1586: 1586: template<> 1586: struct __is_integral_helper 1586: : public true_type { }; 1586: 1586: template<> 1586: struct __is_integral_helper 1586: : public true_type { }; 1586: 1586: template<> 1586: struct __is_integral_helper 1586: : public true_type { }; 1586: 1586: template<> 1586: struct __is_integral_helper 1586: : public true_type { }; 1586: 1586: 1586: template<> 1586: struct __is_integral_helper 1586: : public true_type { }; 1586: # 243 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template<> 1586: struct __is_integral_helper 1586: : public true_type { }; 1586: 1586: template<> 1586: struct __is_integral_helper 1586: : public true_type { }; 1586: 1586: template<> 1586: struct __is_integral_helper 1586: : public true_type { }; 1586: 1586: template<> 1586: struct __is_integral_helper 1586: : public true_type { }; 1586: 1586: template<> 1586: struct __is_integral_helper 1586: : public true_type { }; 1586: 1586: template<> 1586: struct __is_integral_helper 1586: : public true_type { }; 1586: 1586: template<> 1586: struct __is_integral_helper 1586: : public true_type { }; 1586: 1586: template<> 1586: struct __is_integral_helper 1586: : public true_type { }; 1586: 1586: template<> 1586: struct __is_integral_helper 1586: : public true_type { }; 1586: 1586: template<> 1586: struct __is_integral_helper 1586: : public true_type { }; 1586: # 323 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template 1586: struct is_integral 1586: : public __is_integral_helper::type>::type 1586: { }; 1586: 1586: template 1586: struct __is_floating_point_helper 1586: : public false_type { }; 1586: 1586: template<> 1586: struct __is_floating_point_helper 1586: : public true_type { }; 1586: 1586: template<> 1586: struct __is_floating_point_helper 1586: : public true_type { }; 1586: 1586: template<> 1586: struct __is_floating_point_helper 1586: : public true_type { }; 1586: # 351 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template 1586: struct is_floating_point 1586: : public __is_floating_point_helper::type>::type 1586: { }; 1586: 1586: 1586: template 1586: struct is_array 1586: : public false_type { }; 1586: 1586: template 1586: struct is_array<_Tp[_Size]> 1586: : public true_type { }; 1586: 1586: template 1586: struct is_array<_Tp[]> 1586: : public true_type { }; 1586: 1586: template 1586: struct __is_pointer_helper 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_pointer_helper<_Tp*> 1586: : public true_type { }; 1586: 1586: 1586: template 1586: struct is_pointer 1586: : public __is_pointer_helper::type>::type 1586: { }; 1586: 1586: 1586: template 1586: struct is_lvalue_reference 1586: : public false_type { }; 1586: 1586: template 1586: struct is_lvalue_reference<_Tp&> 1586: : public true_type { }; 1586: 1586: 1586: template 1586: struct is_rvalue_reference 1586: : public false_type { }; 1586: 1586: template 1586: struct is_rvalue_reference<_Tp&&> 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function; 1586: 1586: template 1586: struct __is_member_object_pointer_helper 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_member_object_pointer_helper<_Tp _Cp::*> 1586: : public __not_>::type { }; 1586: 1586: 1586: template 1586: struct is_member_object_pointer 1586: : public __is_member_object_pointer_helper< 1586: typename remove_cv<_Tp>::type>::type 1586: { }; 1586: 1586: template 1586: struct __is_member_function_pointer_helper 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_member_function_pointer_helper<_Tp _Cp::*> 1586: : public is_function<_Tp>::type { }; 1586: 1586: 1586: template 1586: struct is_member_function_pointer 1586: : public __is_member_function_pointer_helper< 1586: typename remove_cv<_Tp>::type>::type 1586: { }; 1586: 1586: 1586: template 1586: struct is_enum 1586: : public integral_constant 1586: { }; 1586: 1586: 1586: template 1586: struct is_union 1586: : public integral_constant 1586: { }; 1586: 1586: 1586: template 1586: struct is_class 1586: : public integral_constant 1586: { }; 1586: 1586: 1586: template 1586: struct is_function 1586: : public false_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes...) > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes...) & > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes...) && > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes......) > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes......) & > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes......) && > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes...) const > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes...) const & > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes...) const && > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes......) const > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes......) const & > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes......) const && > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes...) volatile > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes...) volatile & > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes...) volatile && > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes......) volatile > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes......) volatile & > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes......) volatile && > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes...) const volatile > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes...) const volatile & > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes...) const volatile && > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes......) const volatile > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes......) const volatile & > 1586: : public true_type { }; 1586: 1586: template 1586: struct is_function<_Res(_ArgTypes......) const volatile && > 1586: : public true_type { }; 1586: 1586: 1586: 1586: template 1586: struct __is_null_pointer_helper 1586: : public false_type { }; 1586: 1586: template<> 1586: struct __is_null_pointer_helper 1586: : public true_type { }; 1586: 1586: 1586: template 1586: struct is_null_pointer 1586: : public __is_null_pointer_helper::type>::type 1586: { }; 1586: 1586: 1586: template 1586: struct __is_nullptr_t 1586: : public is_null_pointer<_Tp> 1586: { }; 1586: 1586: 1586: 1586: 1586: template 1586: struct is_reference 1586: : public __or_, 1586: is_rvalue_reference<_Tp>>::type 1586: { }; 1586: 1586: 1586: template 1586: struct is_arithmetic 1586: : public __or_, is_floating_point<_Tp>>::type 1586: { }; 1586: 1586: 1586: template 1586: struct is_fundamental 1586: : public __or_, is_void<_Tp>, 1586: is_null_pointer<_Tp>>::type 1586: { }; 1586: 1586: 1586: template 1586: struct is_object 1586: : public __not_<__or_, is_reference<_Tp>, 1586: is_void<_Tp>>>::type 1586: { }; 1586: 1586: template 1586: struct is_member_pointer; 1586: 1586: 1586: template 1586: struct is_scalar 1586: : public __or_, is_enum<_Tp>, is_pointer<_Tp>, 1586: is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type 1586: { }; 1586: 1586: 1586: template 1586: struct is_compound 1586: : public __not_>::type { }; 1586: 1586: template 1586: struct __is_member_pointer_helper 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_member_pointer_helper<_Tp _Cp::*> 1586: : public true_type { }; 1586: 1586: 1586: template 1586: struct is_member_pointer 1586: : public __is_member_pointer_helper::type>::type 1586: { }; 1586: 1586: 1586: 1586: template 1586: struct __is_referenceable 1586: : public __or_, is_reference<_Tp>>::type 1586: { }; 1586: 1586: template 1586: struct __is_referenceable<_Res(_Args...) > 1586: : public true_type 1586: { }; 1586: 1586: template 1586: struct __is_referenceable<_Res(_Args......) > 1586: : public true_type 1586: { }; 1586: 1586: 1586: 1586: 1586: template 1586: struct is_const 1586: : public false_type { }; 1586: 1586: template 1586: struct is_const<_Tp const> 1586: : public true_type { }; 1586: 1586: 1586: template 1586: struct is_volatile 1586: : public false_type { }; 1586: 1586: template 1586: struct is_volatile<_Tp volatile> 1586: : public true_type { }; 1586: 1586: 1586: template 1586: struct is_trivial 1586: : public integral_constant 1586: { }; 1586: 1586: 1586: template 1586: struct is_trivially_copyable 1586: : public integral_constant 1586: { }; 1586: 1586: 1586: template 1586: struct is_standard_layout 1586: : public integral_constant 1586: { }; 1586: 1586: 1586: 1586: template 1586: struct is_pod 1586: : public integral_constant 1586: { }; 1586: 1586: 1586: template 1586: struct is_literal_type 1586: : public integral_constant 1586: { }; 1586: 1586: 1586: template 1586: struct is_empty 1586: : public integral_constant 1586: { }; 1586: 1586: 1586: template 1586: struct is_polymorphic 1586: : public integral_constant 1586: { }; 1586: # 723 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template 1586: struct is_abstract 1586: : public integral_constant 1586: { }; 1586: 1586: template::value> 1586: struct __is_signed_helper 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_signed_helper<_Tp, true> 1586: : public integral_constant 1586: { }; 1586: 1586: 1586: template 1586: struct is_signed 1586: : public __is_signed_helper<_Tp>::type 1586: { }; 1586: 1586: 1586: template 1586: struct is_unsigned 1586: : public __and_, __not_>> 1586: { }; 1586: # 758 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template 1586: _Up 1586: __declval(int); 1586: 1586: template 1586: _Tp 1586: __declval(long); 1586: 1586: template 1586: auto declval() noexcept -> decltype(__declval<_Tp>(0)); 1586: 1586: template 1586: struct extent; 1586: 1586: template 1586: struct remove_all_extents; 1586: 1586: template 1586: struct __is_array_known_bounds 1586: : public integral_constant::value > 0)> 1586: { }; 1586: 1586: template 1586: struct __is_array_unknown_bounds 1586: : public __and_, __not_>> 1586: { }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: struct __do_is_destructible_impl 1586: { 1586: template().~_Tp())> 1586: static true_type __test(int); 1586: 1586: template 1586: static false_type __test(...); 1586: }; 1586: 1586: template 1586: struct __is_destructible_impl 1586: : public __do_is_destructible_impl 1586: { 1586: typedef decltype(__test<_Tp>(0)) type; 1586: }; 1586: 1586: template, 1586: __is_array_unknown_bounds<_Tp>, 1586: is_function<_Tp>>::value, 1586: bool = __or_, is_scalar<_Tp>>::value> 1586: struct __is_destructible_safe; 1586: 1586: template 1586: struct __is_destructible_safe<_Tp, false, false> 1586: : public __is_destructible_impl::type>::type 1586: { }; 1586: 1586: template 1586: struct __is_destructible_safe<_Tp, true, false> 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_destructible_safe<_Tp, false, true> 1586: : public true_type { }; 1586: 1586: 1586: template 1586: struct is_destructible 1586: : public __is_destructible_safe<_Tp>::type 1586: { }; 1586: 1586: 1586: 1586: 1586: 1586: struct __do_is_nt_destructible_impl 1586: { 1586: template 1586: static __bool_constant().~_Tp())> 1586: __test(int); 1586: 1586: template 1586: static false_type __test(...); 1586: }; 1586: 1586: template 1586: struct __is_nt_destructible_impl 1586: : public __do_is_nt_destructible_impl 1586: { 1586: typedef decltype(__test<_Tp>(0)) type; 1586: }; 1586: 1586: template, 1586: __is_array_unknown_bounds<_Tp>, 1586: is_function<_Tp>>::value, 1586: bool = __or_, is_scalar<_Tp>>::value> 1586: struct __is_nt_destructible_safe; 1586: 1586: template 1586: struct __is_nt_destructible_safe<_Tp, false, false> 1586: : public __is_nt_destructible_impl::type>::type 1586: { }; 1586: 1586: template 1586: struct __is_nt_destructible_safe<_Tp, true, false> 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_nt_destructible_safe<_Tp, false, true> 1586: : public true_type { }; 1586: 1586: 1586: template 1586: struct is_nothrow_destructible 1586: : public __is_nt_destructible_safe<_Tp>::type 1586: { }; 1586: 1586: 1586: template 1586: struct is_constructible 1586: : public __bool_constant<__is_constructible(_Tp, _Args...)> 1586: { }; 1586: 1586: 1586: template 1586: struct is_default_constructible 1586: : public is_constructible<_Tp>::type 1586: { }; 1586: 1586: template::value> 1586: struct __is_copy_constructible_impl; 1586: 1586: template 1586: struct __is_copy_constructible_impl<_Tp, false> 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_copy_constructible_impl<_Tp, true> 1586: : public is_constructible<_Tp, const _Tp&> 1586: { }; 1586: 1586: 1586: template 1586: struct is_copy_constructible 1586: : public __is_copy_constructible_impl<_Tp> 1586: { }; 1586: 1586: template::value> 1586: struct __is_move_constructible_impl; 1586: 1586: template 1586: struct __is_move_constructible_impl<_Tp, false> 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_move_constructible_impl<_Tp, true> 1586: : public is_constructible<_Tp, _Tp&&> 1586: { }; 1586: 1586: 1586: template 1586: struct is_move_constructible 1586: : public __is_move_constructible_impl<_Tp> 1586: { }; 1586: 1586: template 1586: struct __is_nt_default_constructible_atom 1586: : public integral_constant 1586: { }; 1586: 1586: template::value> 1586: struct __is_nt_default_constructible_impl; 1586: 1586: template 1586: struct __is_nt_default_constructible_impl<_Tp, true> 1586: : public __and_<__is_array_known_bounds<_Tp>, 1586: __is_nt_default_constructible_atom::type>> 1586: { }; 1586: 1586: template 1586: struct __is_nt_default_constructible_impl<_Tp, false> 1586: : public __is_nt_default_constructible_atom<_Tp> 1586: { }; 1586: 1586: 1586: template 1586: struct is_nothrow_default_constructible 1586: : public __and_, 1586: __is_nt_default_constructible_impl<_Tp>> 1586: { }; 1586: 1586: template 1586: struct __is_nt_constructible_impl 1586: : public integral_constant()...))> 1586: { }; 1586: 1586: template 1586: struct __is_nt_constructible_impl<_Tp, _Arg> 1586: : public integral_constant(declval<_Arg>()))> 1586: { }; 1586: 1586: template 1586: struct __is_nt_constructible_impl<_Tp> 1586: : public is_nothrow_default_constructible<_Tp> 1586: { }; 1586: 1586: 1586: template 1586: struct is_nothrow_constructible 1586: : public __and_, 1586: __is_nt_constructible_impl<_Tp, _Args...>> 1586: { }; 1586: 1586: template::value> 1586: struct __is_nothrow_copy_constructible_impl; 1586: 1586: template 1586: struct __is_nothrow_copy_constructible_impl<_Tp, false> 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_nothrow_copy_constructible_impl<_Tp, true> 1586: : public is_nothrow_constructible<_Tp, const _Tp&> 1586: { }; 1586: 1586: 1586: template 1586: struct is_nothrow_copy_constructible 1586: : public __is_nothrow_copy_constructible_impl<_Tp> 1586: { }; 1586: 1586: template::value> 1586: struct __is_nothrow_move_constructible_impl; 1586: 1586: template 1586: struct __is_nothrow_move_constructible_impl<_Tp, false> 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_nothrow_move_constructible_impl<_Tp, true> 1586: : public is_nothrow_constructible<_Tp, _Tp&&> 1586: { }; 1586: 1586: 1586: template 1586: struct is_nothrow_move_constructible 1586: : public __is_nothrow_move_constructible_impl<_Tp> 1586: { }; 1586: 1586: 1586: template 1586: struct is_assignable 1586: : public __bool_constant<__is_assignable(_Tp, _Up)> 1586: { }; 1586: 1586: template::value> 1586: struct __is_copy_assignable_impl; 1586: 1586: template 1586: struct __is_copy_assignable_impl<_Tp, false> 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_copy_assignable_impl<_Tp, true> 1586: : public is_assignable<_Tp&, const _Tp&> 1586: { }; 1586: 1586: 1586: template 1586: struct is_copy_assignable 1586: : public __is_copy_assignable_impl<_Tp> 1586: { }; 1586: 1586: template::value> 1586: struct __is_move_assignable_impl; 1586: 1586: template 1586: struct __is_move_assignable_impl<_Tp, false> 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_move_assignable_impl<_Tp, true> 1586: : public is_assignable<_Tp&, _Tp&&> 1586: { }; 1586: 1586: 1586: template 1586: struct is_move_assignable 1586: : public __is_move_assignable_impl<_Tp> 1586: { }; 1586: 1586: template 1586: struct __is_nt_assignable_impl 1586: : public integral_constant() = declval<_Up>())> 1586: { }; 1586: 1586: 1586: template 1586: struct is_nothrow_assignable 1586: : public __and_, 1586: __is_nt_assignable_impl<_Tp, _Up>> 1586: { }; 1586: 1586: template::value> 1586: struct __is_nt_copy_assignable_impl; 1586: 1586: template 1586: struct __is_nt_copy_assignable_impl<_Tp, false> 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_nt_copy_assignable_impl<_Tp, true> 1586: : public is_nothrow_assignable<_Tp&, const _Tp&> 1586: { }; 1586: 1586: 1586: template 1586: struct is_nothrow_copy_assignable 1586: : public __is_nt_copy_assignable_impl<_Tp> 1586: { }; 1586: 1586: template::value> 1586: struct __is_nt_move_assignable_impl; 1586: 1586: template 1586: struct __is_nt_move_assignable_impl<_Tp, false> 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_nt_move_assignable_impl<_Tp, true> 1586: : public is_nothrow_assignable<_Tp&, _Tp&&> 1586: { }; 1586: 1586: 1586: template 1586: struct is_nothrow_move_assignable 1586: : public __is_nt_move_assignable_impl<_Tp> 1586: { }; 1586: 1586: 1586: template 1586: struct is_trivially_constructible 1586: : public __bool_constant<__is_trivially_constructible(_Tp, _Args...)> 1586: { }; 1586: 1586: 1586: template 1586: struct is_trivially_default_constructible 1586: : public is_trivially_constructible<_Tp>::type 1586: { }; 1586: 1586: struct __do_is_implicitly_default_constructible_impl 1586: { 1586: template 1586: static void __helper(const _Tp&); 1586: 1586: template 1586: static true_type __test(const _Tp&, 1586: decltype(__helper({}))* = 0); 1586: 1586: static false_type __test(...); 1586: }; 1586: 1586: template 1586: struct __is_implicitly_default_constructible_impl 1586: : public __do_is_implicitly_default_constructible_impl 1586: { 1586: typedef decltype(__test(declval<_Tp>())) type; 1586: }; 1586: 1586: template 1586: struct __is_implicitly_default_constructible_safe 1586: : public __is_implicitly_default_constructible_impl<_Tp>::type 1586: { }; 1586: 1586: template 1586: struct __is_implicitly_default_constructible 1586: : public __and_, 1586: __is_implicitly_default_constructible_safe<_Tp>> 1586: { }; 1586: 1586: 1586: 1586: template::value> 1586: struct __is_trivially_copy_constructible_impl; 1586: 1586: template 1586: struct __is_trivially_copy_constructible_impl<_Tp, false> 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_trivially_copy_constructible_impl<_Tp, true> 1586: : public __and_, 1586: integral_constant> 1586: { }; 1586: 1586: template 1586: struct is_trivially_copy_constructible 1586: : public __is_trivially_copy_constructible_impl<_Tp> 1586: { }; 1586: 1586: 1586: 1586: template::value> 1586: struct __is_trivially_move_constructible_impl; 1586: 1586: template 1586: struct __is_trivially_move_constructible_impl<_Tp, false> 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_trivially_move_constructible_impl<_Tp, true> 1586: : public __and_, 1586: integral_constant> 1586: { }; 1586: 1586: template 1586: struct is_trivially_move_constructible 1586: : public __is_trivially_move_constructible_impl<_Tp> 1586: { }; 1586: 1586: 1586: template 1586: struct is_trivially_assignable 1586: : public __bool_constant<__is_trivially_assignable(_Tp, _Up)> 1586: { }; 1586: 1586: 1586: 1586: template::value> 1586: struct __is_trivially_copy_assignable_impl; 1586: 1586: template 1586: struct __is_trivially_copy_assignable_impl<_Tp, false> 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_trivially_copy_assignable_impl<_Tp, true> 1586: : public __bool_constant<__is_trivially_assignable(_Tp&, const _Tp&)> 1586: { }; 1586: 1586: template 1586: struct is_trivially_copy_assignable 1586: : public __is_trivially_copy_assignable_impl<_Tp> 1586: { }; 1586: 1586: 1586: 1586: template::value> 1586: struct __is_trivially_move_assignable_impl; 1586: 1586: template 1586: struct __is_trivially_move_assignable_impl<_Tp, false> 1586: : public false_type { }; 1586: 1586: template 1586: struct __is_trivially_move_assignable_impl<_Tp, true> 1586: : public __bool_constant<__is_trivially_assignable(_Tp&, _Tp&&)> 1586: { }; 1586: 1586: template 1586: struct is_trivially_move_assignable 1586: : public __is_trivially_move_assignable_impl<_Tp> 1586: { }; 1586: 1586: 1586: template 1586: struct is_trivially_destructible 1586: : public __and_, 1586: __bool_constant<__has_trivial_destructor(_Tp)>> 1586: { }; 1586: 1586: 1586: 1586: template 1586: struct has_virtual_destructor 1586: : public integral_constant 1586: { }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct alignment_of 1586: : public integral_constant { }; 1586: 1586: 1586: template 1586: struct rank 1586: : public integral_constant { }; 1586: 1586: template 1586: struct rank<_Tp[_Size]> 1586: : public integral_constant::value> { }; 1586: 1586: template 1586: struct rank<_Tp[]> 1586: : public integral_constant::value> { }; 1586: 1586: 1586: template 1586: struct extent 1586: : public integral_constant { }; 1586: 1586: template 1586: struct extent<_Tp[_Size], _Uint> 1586: : public integral_constant::value> 1586: { }; 1586: 1586: template 1586: struct extent<_Tp[], _Uint> 1586: : public integral_constant::value> 1586: { }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct is_same 1586: : public false_type { }; 1586: 1586: template 1586: struct is_same<_Tp, _Tp> 1586: : public true_type { }; 1586: 1586: 1586: template 1586: struct is_base_of 1586: : public integral_constant 1586: { }; 1586: 1586: template, is_function<_To>, 1586: is_array<_To>>::value> 1586: struct __is_convertible_helper 1586: { 1586: typedef typename is_void<_To>::type type; 1586: }; 1586: 1586: template 1586: class __is_convertible_helper<_From, _To, false> 1586: { 1586: template 1586: static void __test_aux(_To1) noexcept; 1586: 1586: template(std::declval<_From1>()))> 1586: static true_type 1586: __test(int); 1586: 1586: template 1586: static false_type 1586: __test(...); 1586: 1586: public: 1586: typedef decltype(__test<_From, _To>(0)) type; 1586: }; 1586: 1586: 1586: 1586: template 1586: struct is_convertible 1586: : public __is_convertible_helper<_From, _To>::type 1586: { }; 1586: # 1380 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template 1586: struct remove_const 1586: { typedef _Tp type; }; 1586: 1586: template 1586: struct remove_const<_Tp const> 1586: { typedef _Tp type; }; 1586: 1586: 1586: template 1586: struct remove_volatile 1586: { typedef _Tp type; }; 1586: 1586: template 1586: struct remove_volatile<_Tp volatile> 1586: { typedef _Tp type; }; 1586: 1586: 1586: template 1586: struct remove_cv 1586: { 1586: typedef typename 1586: remove_const::type>::type type; 1586: }; 1586: 1586: 1586: template 1586: struct add_const 1586: { typedef _Tp const type; }; 1586: 1586: 1586: template 1586: struct add_volatile 1586: { typedef _Tp volatile type; }; 1586: 1586: 1586: template 1586: struct add_cv 1586: { 1586: typedef typename 1586: add_const::type>::type type; 1586: }; 1586: # 1455 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template 1586: struct remove_reference 1586: { typedef _Tp type; }; 1586: 1586: template 1586: struct remove_reference<_Tp&> 1586: { typedef _Tp type; }; 1586: 1586: template 1586: struct remove_reference<_Tp&&> 1586: { typedef _Tp type; }; 1586: 1586: template::value> 1586: struct __add_lvalue_reference_helper 1586: { typedef _Tp type; }; 1586: 1586: template 1586: struct __add_lvalue_reference_helper<_Tp, true> 1586: { typedef _Tp& type; }; 1586: 1586: 1586: template 1586: struct add_lvalue_reference 1586: : public __add_lvalue_reference_helper<_Tp> 1586: { }; 1586: 1586: template::value> 1586: struct __add_rvalue_reference_helper 1586: { typedef _Tp type; }; 1586: 1586: template 1586: struct __add_rvalue_reference_helper<_Tp, true> 1586: { typedef _Tp&& type; }; 1586: 1586: 1586: template 1586: struct add_rvalue_reference 1586: : public __add_rvalue_reference_helper<_Tp> 1586: { }; 1586: # 1512 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template 1586: struct __cv_selector; 1586: 1586: template 1586: struct __cv_selector<_Unqualified, false, false> 1586: { typedef _Unqualified __type; }; 1586: 1586: template 1586: struct __cv_selector<_Unqualified, false, true> 1586: { typedef volatile _Unqualified __type; }; 1586: 1586: template 1586: struct __cv_selector<_Unqualified, true, false> 1586: { typedef const _Unqualified __type; }; 1586: 1586: template 1586: struct __cv_selector<_Unqualified, true, true> 1586: { typedef const volatile _Unqualified __type; }; 1586: 1586: template::value, 1586: bool _IsVol = is_volatile<_Qualified>::value> 1586: class __match_cv_qualifiers 1586: { 1586: typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match; 1586: 1586: public: 1586: typedef typename __match::__type __type; 1586: }; 1586: 1586: 1586: template 1586: struct __make_unsigned 1586: { typedef _Tp __type; }; 1586: 1586: template<> 1586: struct __make_unsigned 1586: { typedef unsigned char __type; }; 1586: 1586: template<> 1586: struct __make_unsigned 1586: { typedef unsigned char __type; }; 1586: 1586: template<> 1586: struct __make_unsigned 1586: { typedef unsigned short __type; }; 1586: 1586: template<> 1586: struct __make_unsigned 1586: { typedef unsigned int __type; }; 1586: 1586: template<> 1586: struct __make_unsigned 1586: { typedef unsigned long __type; }; 1586: 1586: template<> 1586: struct __make_unsigned 1586: { typedef unsigned long long __type; }; 1586: # 1593 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template::value, 1586: bool _IsEnum = is_enum<_Tp>::value> 1586: class __make_unsigned_selector; 1586: 1586: template 1586: class __make_unsigned_selector<_Tp, true, false> 1586: { 1586: using __unsigned_type 1586: = typename __make_unsigned::type>::__type; 1586: 1586: public: 1586: using __type 1586: = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; 1586: }; 1586: 1586: class __make_unsigned_selector_base 1586: { 1586: protected: 1586: template struct _List { }; 1586: 1586: template 1586: struct _List<_Tp, _Up...> : _List<_Up...> 1586: { static constexpr size_t __size = sizeof(_Tp); }; 1586: 1586: template 1586: struct __select; 1586: 1586: template 1586: struct __select<_Sz, _List<_Uint, _UInts...>, true> 1586: { using __type = _Uint; }; 1586: 1586: template 1586: struct __select<_Sz, _List<_Uint, _UInts...>, false> 1586: : __select<_Sz, _List<_UInts...>> 1586: { }; 1586: }; 1586: 1586: 1586: template 1586: class __make_unsigned_selector<_Tp, false, true> 1586: : __make_unsigned_selector_base 1586: { 1586: 1586: using _UInts = _List; 1586: 1586: using __unsigned_type = typename __select::__type; 1586: 1586: public: 1586: using __type 1586: = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template<> 1586: struct __make_unsigned 1586: { 1586: using __type 1586: = typename __make_unsigned_selector::__type; 1586: }; 1586: # 1669 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template<> 1586: struct __make_unsigned 1586: { 1586: using __type 1586: = typename __make_unsigned_selector::__type; 1586: }; 1586: 1586: template<> 1586: struct __make_unsigned 1586: { 1586: using __type 1586: = typename __make_unsigned_selector::__type; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct make_unsigned 1586: { typedef typename __make_unsigned_selector<_Tp>::__type type; }; 1586: 1586: 1586: template<> 1586: struct make_unsigned; 1586: 1586: 1586: 1586: template 1586: struct __make_signed 1586: { typedef _Tp __type; }; 1586: 1586: template<> 1586: struct __make_signed 1586: { typedef signed char __type; }; 1586: 1586: template<> 1586: struct __make_signed 1586: { typedef signed char __type; }; 1586: 1586: template<> 1586: struct __make_signed 1586: { typedef signed short __type; }; 1586: 1586: template<> 1586: struct __make_signed 1586: { typedef signed int __type; }; 1586: 1586: template<> 1586: struct __make_signed 1586: { typedef signed long __type; }; 1586: 1586: template<> 1586: struct __make_signed 1586: { typedef signed long long __type; }; 1586: # 1747 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template::value, 1586: bool _IsEnum = is_enum<_Tp>::value> 1586: class __make_signed_selector; 1586: 1586: template 1586: class __make_signed_selector<_Tp, true, false> 1586: { 1586: using __signed_type 1586: = typename __make_signed::type>::__type; 1586: 1586: public: 1586: using __type 1586: = typename __match_cv_qualifiers<_Tp, __signed_type>::__type; 1586: }; 1586: 1586: 1586: template 1586: class __make_signed_selector<_Tp, false, true> 1586: { 1586: typedef typename __make_unsigned_selector<_Tp>::__type __unsigned_type; 1586: 1586: public: 1586: typedef typename __make_signed_selector<__unsigned_type>::__type __type; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template<> 1586: struct __make_signed 1586: { 1586: using __type 1586: = typename __make_signed_selector::__type; 1586: }; 1586: # 1795 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template<> 1586: struct __make_signed 1586: { 1586: using __type 1586: = typename __make_signed_selector::__type; 1586: }; 1586: 1586: template<> 1586: struct __make_signed 1586: { 1586: using __type 1586: = typename __make_signed_selector::__type; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct make_signed 1586: { typedef typename __make_signed_selector<_Tp>::__type type; }; 1586: 1586: 1586: template<> 1586: struct make_signed; 1586: # 1834 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template 1586: struct remove_extent 1586: { typedef _Tp type; }; 1586: 1586: template 1586: struct remove_extent<_Tp[_Size]> 1586: { typedef _Tp type; }; 1586: 1586: template 1586: struct remove_extent<_Tp[]> 1586: { typedef _Tp type; }; 1586: 1586: 1586: template 1586: struct remove_all_extents 1586: { typedef _Tp type; }; 1586: 1586: template 1586: struct remove_all_extents<_Tp[_Size]> 1586: { typedef typename remove_all_extents<_Tp>::type type; }; 1586: 1586: template 1586: struct remove_all_extents<_Tp[]> 1586: { typedef typename remove_all_extents<_Tp>::type type; }; 1586: # 1871 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template 1586: struct __remove_pointer_helper 1586: { typedef _Tp type; }; 1586: 1586: template 1586: struct __remove_pointer_helper<_Tp, _Up*> 1586: { typedef _Up type; }; 1586: 1586: 1586: template 1586: struct remove_pointer 1586: : public __remove_pointer_helper<_Tp, typename remove_cv<_Tp>::type> 1586: { }; 1586: 1586: 1586: template, 1586: is_void<_Tp>>::value> 1586: struct __add_pointer_helper 1586: { typedef _Tp type; }; 1586: 1586: template 1586: struct __add_pointer_helper<_Tp, true> 1586: { typedef typename remove_reference<_Tp>::type* type; }; 1586: 1586: template 1586: struct add_pointer 1586: : public __add_pointer_helper<_Tp> 1586: { }; 1586: # 1910 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template 1586: struct __aligned_storage_msa 1586: { 1586: union __type 1586: { 1586: unsigned char __data[_Len]; 1586: struct __attribute__((__aligned__)) { } __align; 1586: }; 1586: }; 1586: # 1930 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template::__type)> 1586: struct aligned_storage 1586: { 1586: union type 1586: { 1586: unsigned char __data[_Len]; 1586: struct __attribute__((__aligned__((_Align)))) { } __align; 1586: }; 1586: }; 1586: 1586: template 1586: struct __strictest_alignment 1586: { 1586: static const size_t _S_alignment = 0; 1586: static const size_t _S_size = 0; 1586: }; 1586: 1586: template 1586: struct __strictest_alignment<_Tp, _Types...> 1586: { 1586: static const size_t _S_alignment = 1586: alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment 1586: ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; 1586: static const size_t _S_size = 1586: sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size 1586: ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; 1586: }; 1586: # 1969 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template 1586: struct aligned_union 1586: { 1586: private: 1586: static_assert(sizeof...(_Types) != 0, "At least one type is required"); 1586: 1586: using __strictest = __strictest_alignment<_Types...>; 1586: static const size_t _S_len = _Len > __strictest::_S_size 1586: ? _Len : __strictest::_S_size; 1586: public: 1586: 1586: static const size_t alignment_value = __strictest::_S_alignment; 1586: 1586: typedef typename aligned_storage<_S_len, alignment_value>::type type; 1586: }; 1586: 1586: template 1586: const size_t aligned_union<_Len, _Types...>::alignment_value; 1586: 1586: 1586: 1586: template::value, 1586: bool _IsFunction = is_function<_Up>::value> 1586: struct __decay_selector; 1586: 1586: 1586: template 1586: struct __decay_selector<_Up, false, false> 1586: { typedef typename remove_cv<_Up>::type __type; }; 1586: 1586: template 1586: struct __decay_selector<_Up, true, false> 1586: { typedef typename remove_extent<_Up>::type* __type; }; 1586: 1586: template 1586: struct __decay_selector<_Up, false, true> 1586: { typedef typename add_pointer<_Up>::type __type; }; 1586: 1586: 1586: template 1586: class decay 1586: { 1586: typedef typename remove_reference<_Tp>::type __remove_type; 1586: 1586: public: 1586: typedef typename __decay_selector<__remove_type>::__type type; 1586: }; 1586: 1586: template 1586: class reference_wrapper; 1586: 1586: 1586: template 1586: struct __strip_reference_wrapper 1586: { 1586: typedef _Tp __type; 1586: }; 1586: 1586: template 1586: struct __strip_reference_wrapper > 1586: { 1586: typedef _Tp& __type; 1586: }; 1586: 1586: template 1586: struct __decay_and_strip 1586: { 1586: typedef typename __strip_reference_wrapper< 1586: typename decay<_Tp>::type>::__type __type; 1586: }; 1586: 1586: 1586: 1586: 1586: template 1586: struct enable_if 1586: { }; 1586: 1586: 1586: template 1586: struct enable_if 1586: { typedef _Tp type; }; 1586: 1586: template 1586: using _Require = typename enable_if<__and_<_Cond...>::value>::type; 1586: 1586: 1586: 1586: template 1586: struct conditional 1586: { typedef _Iftrue type; }; 1586: 1586: 1586: template 1586: struct conditional 1586: { typedef _Iffalse type; }; 1586: 1586: 1586: template 1586: struct common_type; 1586: 1586: 1586: 1586: struct __do_common_type_impl 1586: { 1586: template 1586: static __success_type() 1586: : std::declval<_Up>())>::type> _S_test(int); 1586: 1586: template 1586: static __failure_type _S_test(...); 1586: }; 1586: 1586: template 1586: struct __common_type_impl 1586: : private __do_common_type_impl 1586: { 1586: typedef decltype(_S_test<_Tp, _Up>(0)) type; 1586: }; 1586: 1586: struct __do_member_type_wrapper 1586: { 1586: template 1586: static __success_type _S_test(int); 1586: 1586: template 1586: static __failure_type _S_test(...); 1586: }; 1586: 1586: template 1586: struct __member_type_wrapper 1586: : private __do_member_type_wrapper 1586: { 1586: typedef decltype(_S_test<_Tp>(0)) type; 1586: }; 1586: 1586: template 1586: struct __expanded_common_type_wrapper 1586: { 1586: typedef common_type type; 1586: }; 1586: 1586: template 1586: struct __expanded_common_type_wrapper<__failure_type, _Args...> 1586: { typedef __failure_type type; }; 1586: 1586: template<> 1586: struct common_type<> 1586: { }; 1586: 1586: template 1586: struct common_type<_Tp> 1586: : common_type<_Tp, _Tp> 1586: { }; 1586: 1586: template 1586: struct common_type<_Tp, _Up> 1586: : public __common_type_impl<_Tp, _Up>::type 1586: { }; 1586: 1586: template 1586: struct common_type<_Tp, _Up, _Vp...> 1586: : public __expanded_common_type_wrapper>::type, _Vp...>::type 1586: { }; 1586: 1586: template::value> 1586: struct __underlying_type_impl 1586: { 1586: using type = __underlying_type(_Tp); 1586: }; 1586: 1586: template 1586: struct __underlying_type_impl<_Tp, false> 1586: { }; 1586: 1586: 1586: template 1586: struct underlying_type 1586: : public __underlying_type_impl<_Tp> 1586: { }; 1586: 1586: template 1586: struct __declval_protector 1586: { 1586: static const bool __stop = false; 1586: }; 1586: 1586: template 1586: auto declval() noexcept -> decltype(__declval<_Tp>(0)) 1586: { 1586: static_assert(__declval_protector<_Tp>::__stop, 1586: "declval() must not be used!"); 1586: return __declval<_Tp>(0); 1586: } 1586: 1586: 1586: template 1586: using __remove_cvref_t 1586: = typename remove_cv::type>::type; 1586: 1586: 1586: template 1586: class result_of; 1586: 1586: 1586: 1586: 1586: 1586: struct __invoke_memfun_ref { }; 1586: struct __invoke_memfun_deref { }; 1586: struct __invoke_memobj_ref { }; 1586: struct __invoke_memobj_deref { }; 1586: struct __invoke_other { }; 1586: 1586: 1586: template 1586: struct __result_of_success : __success_type<_Tp> 1586: { using __invoke_type = _Tag; }; 1586: 1586: 1586: struct __result_of_memfun_ref_impl 1586: { 1586: template 1586: static __result_of_success().*std::declval<_Fp>())(std::declval<_Args>()...) 1586: ), __invoke_memfun_ref> _S_test(int); 1586: 1586: template 1586: static __failure_type _S_test(...); 1586: }; 1586: 1586: template 1586: struct __result_of_memfun_ref 1586: : private __result_of_memfun_ref_impl 1586: { 1586: typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; 1586: }; 1586: 1586: 1586: struct __result_of_memfun_deref_impl 1586: { 1586: template 1586: static __result_of_success()).*std::declval<_Fp>())(std::declval<_Args>()...) 1586: ), __invoke_memfun_deref> _S_test(int); 1586: 1586: template 1586: static __failure_type _S_test(...); 1586: }; 1586: 1586: template 1586: struct __result_of_memfun_deref 1586: : private __result_of_memfun_deref_impl 1586: { 1586: typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; 1586: }; 1586: 1586: 1586: struct __result_of_memobj_ref_impl 1586: { 1586: template 1586: static __result_of_success().*std::declval<_Fp>() 1586: ), __invoke_memobj_ref> _S_test(int); 1586: 1586: template 1586: static __failure_type _S_test(...); 1586: }; 1586: 1586: template 1586: struct __result_of_memobj_ref 1586: : private __result_of_memobj_ref_impl 1586: { 1586: typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; 1586: }; 1586: 1586: 1586: struct __result_of_memobj_deref_impl 1586: { 1586: template 1586: static __result_of_success()).*std::declval<_Fp>() 1586: ), __invoke_memobj_deref> _S_test(int); 1586: 1586: template 1586: static __failure_type _S_test(...); 1586: }; 1586: 1586: template 1586: struct __result_of_memobj_deref 1586: : private __result_of_memobj_deref_impl 1586: { 1586: typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; 1586: }; 1586: 1586: template 1586: struct __result_of_memobj; 1586: 1586: template 1586: struct __result_of_memobj<_Res _Class::*, _Arg> 1586: { 1586: typedef __remove_cvref_t<_Arg> _Argval; 1586: typedef _Res _Class::* _MemPtr; 1586: typedef typename conditional<__or_, 1586: is_base_of<_Class, _Argval>>::value, 1586: __result_of_memobj_ref<_MemPtr, _Arg>, 1586: __result_of_memobj_deref<_MemPtr, _Arg> 1586: >::type::type type; 1586: }; 1586: 1586: template 1586: struct __result_of_memfun; 1586: 1586: template 1586: struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> 1586: { 1586: typedef typename remove_reference<_Arg>::type _Argval; 1586: typedef _Res _Class::* _MemPtr; 1586: typedef typename conditional::value, 1586: __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, 1586: __result_of_memfun_deref<_MemPtr, _Arg, _Args...> 1586: >::type::type type; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template> 1586: struct __inv_unwrap 1586: { 1586: using type = _Tp; 1586: }; 1586: 1586: template 1586: struct __inv_unwrap<_Tp, reference_wrapper<_Up>> 1586: { 1586: using type = _Up&; 1586: }; 1586: 1586: template 1586: struct __result_of_impl 1586: { 1586: typedef __failure_type type; 1586: }; 1586: 1586: template 1586: struct __result_of_impl 1586: : public __result_of_memobj::type, 1586: typename __inv_unwrap<_Arg>::type> 1586: { }; 1586: 1586: template 1586: struct __result_of_impl 1586: : public __result_of_memfun::type, 1586: typename __inv_unwrap<_Arg>::type, _Args...> 1586: { }; 1586: 1586: 1586: struct __result_of_other_impl 1586: { 1586: template 1586: static __result_of_success()(std::declval<_Args>()...) 1586: ), __invoke_other> _S_test(int); 1586: 1586: template 1586: static __failure_type _S_test(...); 1586: }; 1586: 1586: template 1586: struct __result_of_impl 1586: : private __result_of_other_impl 1586: { 1586: typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type; 1586: }; 1586: 1586: 1586: template 1586: struct __invoke_result 1586: : public __result_of_impl< 1586: is_member_object_pointer< 1586: typename remove_reference<_Functor>::type 1586: >::value, 1586: is_member_function_pointer< 1586: typename remove_reference<_Functor>::type 1586: >::value, 1586: _Functor, _ArgTypes... 1586: >::type 1586: { }; 1586: 1586: template 1586: struct result_of<_Functor(_ArgTypes...)> 1586: : public __invoke_result<_Functor, _ArgTypes...> 1586: { }; 1586: # 2404 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template 1586: using __enable_if_t = typename enable_if<_Cond, _Tp>::type; 1586: 1586: 1586: template using __void_t = void; 1586: # 2417 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template class _Op, typename... _Args> 1586: struct __detector 1586: { 1586: using value_t = false_type; 1586: using type = _Default; 1586: }; 1586: 1586: 1586: template class _Op, 1586: typename... _Args> 1586: struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> 1586: { 1586: using value_t = true_type; 1586: using type = _Op<_Args...>; 1586: }; 1586: 1586: 1586: template class _Op, 1586: typename... _Args> 1586: using __detected_or = __detector<_Default, void, _Op, _Args...>; 1586: 1586: 1586: template class _Op, 1586: typename... _Args> 1586: using __detected_or_t 1586: = typename __detected_or<_Default, _Op, _Args...>::type; 1586: # 2461 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template 1586: struct __is_swappable; 1586: 1586: template 1586: struct __is_nothrow_swappable; 1586: 1586: template 1586: class tuple; 1586: 1586: template 1586: struct __is_tuple_like_impl : false_type 1586: { }; 1586: 1586: template 1586: struct __is_tuple_like_impl> : true_type 1586: { }; 1586: 1586: 1586: template 1586: struct __is_tuple_like 1586: : public __is_tuple_like_impl<__remove_cvref_t<_Tp>>::type 1586: { }; 1586: 1586: template 1586: inline 1586: typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, 1586: is_move_constructible<_Tp>, 1586: is_move_assignable<_Tp>>::value>::type 1586: swap(_Tp&, _Tp&) 1586: noexcept(__and_, 1586: is_nothrow_move_assignable<_Tp>>::value); 1586: 1586: template 1586: inline 1586: typename enable_if<__is_swappable<_Tp>::value>::type 1586: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 1586: noexcept(__is_nothrow_swappable<_Tp>::value); 1586: 1586: namespace __swappable_details { 1586: using std::swap; 1586: 1586: struct __do_is_swappable_impl 1586: { 1586: template(), std::declval<_Tp&>()))> 1586: static true_type __test(int); 1586: 1586: template 1586: static false_type __test(...); 1586: }; 1586: 1586: struct __do_is_nothrow_swappable_impl 1586: { 1586: template 1586: static __bool_constant< 1586: noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) 1586: > __test(int); 1586: 1586: template 1586: static false_type __test(...); 1586: }; 1586: 1586: } 1586: 1586: template 1586: struct __is_swappable_impl 1586: : public __swappable_details::__do_is_swappable_impl 1586: { 1586: typedef decltype(__test<_Tp>(0)) type; 1586: }; 1586: 1586: template 1586: struct __is_nothrow_swappable_impl 1586: : public __swappable_details::__do_is_nothrow_swappable_impl 1586: { 1586: typedef decltype(__test<_Tp>(0)) type; 1586: }; 1586: 1586: template 1586: struct __is_swappable 1586: : public __is_swappable_impl<_Tp>::type 1586: { }; 1586: 1586: template 1586: struct __is_nothrow_swappable 1586: : public __is_nothrow_swappable_impl<_Tp>::type 1586: { }; 1586: # 2666 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: template::value, typename = void> 1586: struct __is_invocable_impl : false_type { }; 1586: 1586: 1586: template 1586: struct __is_invocable_impl<_Result, _Ret, 1586: true, 1586: __void_t> 1586: : true_type 1586: { }; 1586: 1586: #pragma GCC diagnostic push 1586: #pragma GCC diagnostic ignored "-Wctor-dtor-privacy" 1586: 1586: template 1586: struct __is_invocable_impl<_Result, _Ret, 1586: false, 1586: __void_t> 1586: { 1586: private: 1586: 1586: 1586: static typename _Result::type _S_get(); 1586: 1586: template 1586: static void _S_conv(_Tp); 1586: 1586: 1586: template(_S_get()))> 1586: static true_type 1586: _S_test(int); 1586: 1586: template 1586: static false_type 1586: _S_test(...); 1586: 1586: public: 1586: using type = decltype(_S_test<_Ret>(1)); 1586: }; 1586: #pragma GCC diagnostic pop 1586: 1586: template 1586: struct __is_invocable 1586: : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type 1586: { }; 1586: 1586: template 1586: constexpr bool __call_is_nt(__invoke_memfun_ref) 1586: { 1586: using _Up = typename __inv_unwrap<_Tp>::type; 1586: return noexcept((std::declval<_Up>().*std::declval<_Fn>())( 1586: std::declval<_Args>()...)); 1586: } 1586: 1586: template 1586: constexpr bool __call_is_nt(__invoke_memfun_deref) 1586: { 1586: return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())( 1586: std::declval<_Args>()...)); 1586: } 1586: 1586: template 1586: constexpr bool __call_is_nt(__invoke_memobj_ref) 1586: { 1586: using _Up = typename __inv_unwrap<_Tp>::type; 1586: return noexcept(std::declval<_Up>().*std::declval<_Fn>()); 1586: } 1586: 1586: template 1586: constexpr bool __call_is_nt(__invoke_memobj_deref) 1586: { 1586: return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>()); 1586: } 1586: 1586: template 1586: constexpr bool __call_is_nt(__invoke_other) 1586: { 1586: return noexcept(std::declval<_Fn>()(std::declval<_Args>()...)); 1586: } 1586: 1586: template 1586: struct __call_is_nothrow 1586: : __bool_constant< 1586: std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{}) 1586: > 1586: { }; 1586: 1586: template 1586: using __call_is_nothrow_ 1586: = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>; 1586: 1586: 1586: template 1586: struct __is_nothrow_invocable 1586: : __and_<__is_invocable<_Fn, _Args...>, 1586: __call_is_nothrow_<_Fn, _Args...>>::type 1586: { }; 1586: 1586: struct __nonesuch { 1586: __nonesuch() = delete; 1586: ~__nonesuch() = delete; 1586: __nonesuch(__nonesuch const&) = delete; 1586: void operator=(__nonesuch const&) = delete; 1586: }; 1586: # 3097 "/usr/mipsel-linux-gnu/include/c++/9/type_traits" 3 1586: 1586: } 1586: # 56 "/usr/mipsel-linux-gnu/include/c++/9/bits/move.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 72 "/usr/mipsel-linux-gnu/include/c++/9/bits/move.h" 3 1586: template 1586: constexpr _Tp&& 1586: forward(typename std::remove_reference<_Tp>::type& __t) noexcept 1586: { return static_cast<_Tp&&>(__t); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: constexpr _Tp&& 1586: forward(typename std::remove_reference<_Tp>::type&& __t) noexcept 1586: { 1586: static_assert(!std::is_lvalue_reference<_Tp>::value, "template argument" 1586: " substituting _Tp is an lvalue reference type"); 1586: return static_cast<_Tp&&>(__t); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: constexpr typename std::remove_reference<_Tp>::type&& 1586: move(_Tp&& __t) noexcept 1586: { return static_cast::type&&>(__t); } 1586: 1586: 1586: template 1586: struct __move_if_noexcept_cond 1586: : public __and_<__not_>, 1586: is_copy_constructible<_Tp>>::type { }; 1586: # 116 "/usr/mipsel-linux-gnu/include/c++/9/bits/move.h" 3 1586: template 1586: constexpr typename 1586: conditional<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&>::type 1586: move_if_noexcept(_Tp& __x) noexcept 1586: { return std::move(__x); } 1586: # 136 "/usr/mipsel-linux-gnu/include/c++/9/bits/move.h" 3 1586: template 1586: inline _Tp* 1586: addressof(_Tp& __r) noexcept 1586: { return std::__addressof(__r); } 1586: 1586: 1586: 1586: template 1586: const _Tp* addressof(const _Tp&&) = delete; 1586: 1586: 1586: template 1586: inline _Tp 1586: __exchange(_Tp& __obj, _Up&& __new_val) 1586: { 1586: _Tp __old_val = std::move(__obj); 1586: __obj = std::forward<_Up>(__new_val); 1586: return __old_val; 1586: } 1586: # 176 "/usr/mipsel-linux-gnu/include/c++/9/bits/move.h" 3 1586: template 1586: inline 1586: 1586: typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, 1586: is_move_constructible<_Tp>, 1586: is_move_assignable<_Tp>>::value>::type 1586: swap(_Tp& __a, _Tp& __b) 1586: noexcept(__and_, 1586: is_nothrow_move_assignable<_Tp>>::value) 1586: 1586: 1586: 1586: 1586: { 1586: 1586: 1586: 1586: _Tp __tmp = std::move(__a); 1586: __a = std::move(__b); 1586: __b = std::move(__tmp); 1586: } 1586: 1586: 1586: 1586: 1586: template 1586: inline 1586: 1586: typename enable_if<__is_swappable<_Tp>::value>::type 1586: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 1586: noexcept(__is_nothrow_swappable<_Tp>::value) 1586: 1586: 1586: 1586: 1586: { 1586: for (size_t __n = 0; __n < _Nm; ++__n) 1586: swap(__a[__n], __b[__n]); 1586: } 1586: 1586: 1586: 1586: } 1586: # 60 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_pair.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 76 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_pair.h" 3 1586: struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; 1586: 1586: 1586: constexpr piecewise_construct_t piecewise_construct = 1586: piecewise_construct_t(); 1586: 1586: 1586: template 1586: class tuple; 1586: 1586: template 1586: struct _Index_tuple; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct _PCC 1586: { 1586: template 1586: static constexpr bool _ConstructiblePair() 1586: { 1586: return __and_, 1586: is_constructible<_T2, const _U2&>>::value; 1586: } 1586: 1586: template 1586: static constexpr bool _ImplicitlyConvertiblePair() 1586: { 1586: return __and_, 1586: is_convertible>::value; 1586: } 1586: 1586: template 1586: static constexpr bool _MoveConstructiblePair() 1586: { 1586: return __and_, 1586: is_constructible<_T2, _U2&&>>::value; 1586: } 1586: 1586: template 1586: static constexpr bool _ImplicitlyMoveConvertiblePair() 1586: { 1586: return __and_, 1586: is_convertible<_U2&&, _T2>>::value; 1586: } 1586: 1586: template 1586: static constexpr bool _CopyMovePair() 1586: { 1586: using __do_converts = __and_, 1586: is_convertible<_U2&&, _T2>>; 1586: using __converts = typename conditional<__implicit, 1586: __do_converts, 1586: __not_<__do_converts>>::type; 1586: return __and_, 1586: is_constructible<_T2, _U2&&>, 1586: __converts 1586: >::value; 1586: } 1586: 1586: template 1586: static constexpr bool _MoveCopyPair() 1586: { 1586: using __do_converts = __and_, 1586: is_convertible>; 1586: using __converts = typename conditional<__implicit, 1586: __do_converts, 1586: __not_<__do_converts>>::type; 1586: return __and_, 1586: is_constructible<_T2, const _U2&&>, 1586: __converts 1586: >::value; 1586: } 1586: }; 1586: 1586: template 1586: struct _PCC 1586: { 1586: template 1586: static constexpr bool _ConstructiblePair() 1586: { 1586: return false; 1586: } 1586: 1586: template 1586: static constexpr bool _ImplicitlyConvertiblePair() 1586: { 1586: return false; 1586: } 1586: 1586: template 1586: static constexpr bool _MoveConstructiblePair() 1586: { 1586: return false; 1586: } 1586: 1586: template 1586: static constexpr bool _ImplicitlyMoveConvertiblePair() 1586: { 1586: return false; 1586: } 1586: }; 1586: 1586: 1586: 1586: 1586: struct __nonesuch_no_braces : std::__nonesuch { 1586: explicit __nonesuch_no_braces(const __nonesuch&) = delete; 1586: }; 1586: 1586: 1586: template class __pair_base 1586: { 1586: 1586: template friend struct pair; 1586: __pair_base() = default; 1586: ~__pair_base() = default; 1586: __pair_base(const __pair_base&) = default; 1586: __pair_base& operator=(const __pair_base&) = delete; 1586: 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct pair 1586: : private __pair_base<_T1, _T2> 1586: { 1586: typedef _T1 first_type; 1586: typedef _T2 second_type; 1586: 1586: _T1 first; 1586: _T2 second; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template , 1586: __is_implicitly_default_constructible<_U2>> 1586: ::value, bool>::type = true> 1586: 1586: constexpr pair() 1586: : first(), second() { } 1586: 1586: 1586: template , 1586: is_default_constructible<_U2>, 1586: __not_< 1586: __and_<__is_implicitly_default_constructible<_U1>, 1586: __is_implicitly_default_constructible<_U2>>>> 1586: ::value, bool>::type = false> 1586: explicit constexpr pair() 1586: : first(), second() { } 1586: # 252 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_pair.h" 3 1586: using _PCCP = _PCC; 1586: 1586: template() 1586: && _PCCP::template 1586: _ImplicitlyConvertiblePair<_U1, _U2>(), 1586: bool>::type=true> 1586: constexpr pair(const _T1& __a, const _T2& __b) 1586: : first(__a), second(__b) { } 1586: 1586: template() 1586: && !_PCCP::template 1586: _ImplicitlyConvertiblePair<_U1, _U2>(), 1586: bool>::type=false> 1586: explicit constexpr pair(const _T1& __a, const _T2& __b) 1586: : first(__a), second(__b) { } 1586: # 280 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_pair.h" 3 1586: template 1586: using _PCCFP = _PCC::value 1586: || !is_same<_T2, _U2>::value, 1586: _T1, _T2>; 1586: 1586: template::template 1586: _ConstructiblePair<_U1, _U2>() 1586: && _PCCFP<_U1, _U2>::template 1586: _ImplicitlyConvertiblePair<_U1, _U2>(), 1586: bool>::type=true> 1586: constexpr pair(const pair<_U1, _U2>& __p) 1586: : first(__p.first), second(__p.second) { } 1586: 1586: template::template 1586: _ConstructiblePair<_U1, _U2>() 1586: && !_PCCFP<_U1, _U2>::template 1586: _ImplicitlyConvertiblePair<_U1, _U2>(), 1586: bool>::type=false> 1586: explicit constexpr pair(const pair<_U1, _U2>& __p) 1586: : first(__p.first), second(__p.second) { } 1586: 1586: constexpr pair(const pair&) = default; 1586: constexpr pair(pair&&) = default; 1586: 1586: 1586: template(), 1586: bool>::type=true> 1586: constexpr pair(_U1&& __x, const _T2& __y) 1586: : first(std::forward<_U1>(__x)), second(__y) { } 1586: 1586: template(), 1586: bool>::type=false> 1586: explicit constexpr pair(_U1&& __x, const _T2& __y) 1586: : first(std::forward<_U1>(__x)), second(__y) { } 1586: 1586: template(), 1586: bool>::type=true> 1586: constexpr pair(const _T1& __x, _U2&& __y) 1586: : first(__x), second(std::forward<_U2>(__y)) { } 1586: 1586: template(), 1586: bool>::type=false> 1586: explicit pair(const _T1& __x, _U2&& __y) 1586: : first(__x), second(std::forward<_U2>(__y)) { } 1586: 1586: template() 1586: && _PCCP::template 1586: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 1586: bool>::type=true> 1586: constexpr pair(_U1&& __x, _U2&& __y) 1586: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } 1586: 1586: template() 1586: && !_PCCP::template 1586: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 1586: bool>::type=false> 1586: explicit constexpr pair(_U1&& __x, _U2&& __y) 1586: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } 1586: 1586: 1586: template::template 1586: _MoveConstructiblePair<_U1, _U2>() 1586: && _PCCFP<_U1, _U2>::template 1586: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 1586: bool>::type=true> 1586: constexpr pair(pair<_U1, _U2>&& __p) 1586: : first(std::forward<_U1>(__p.first)), 1586: second(std::forward<_U2>(__p.second)) { } 1586: 1586: template::template 1586: _MoveConstructiblePair<_U1, _U2>() 1586: && !_PCCFP<_U1, _U2>::template 1586: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 1586: bool>::type=false> 1586: explicit constexpr pair(pair<_U1, _U2>&& __p) 1586: : first(std::forward<_U1>(__p.first)), 1586: second(std::forward<_U2>(__p.second)) { } 1586: 1586: template 1586: pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); 1586: 1586: pair& 1586: operator=(typename conditional< 1586: __and_, 1586: is_copy_assignable<_T2>>::value, 1586: const pair&, const __nonesuch_no_braces&>::type __p) 1586: { 1586: first = __p.first; 1586: second = __p.second; 1586: return *this; 1586: } 1586: 1586: pair& 1586: operator=(typename conditional< 1586: __and_, 1586: is_move_assignable<_T2>>::value, 1586: pair&&, __nonesuch_no_braces&&>::type __p) 1586: noexcept(__and_, 1586: is_nothrow_move_assignable<_T2>>::value) 1586: { 1586: first = std::forward(__p.first); 1586: second = std::forward(__p.second); 1586: return *this; 1586: } 1586: 1586: template 1586: typename enable_if<__and_, 1586: is_assignable<_T2&, const _U2&>>::value, 1586: pair&>::type 1586: operator=(const pair<_U1, _U2>& __p) 1586: { 1586: first = __p.first; 1586: second = __p.second; 1586: return *this; 1586: } 1586: 1586: template 1586: typename enable_if<__and_, 1586: is_assignable<_T2&, _U2&&>>::value, 1586: pair&>::type 1586: operator=(pair<_U1, _U2>&& __p) 1586: { 1586: first = std::forward<_U1>(__p.first); 1586: second = std::forward<_U2>(__p.second); 1586: return *this; 1586: } 1586: 1586: void 1586: swap(pair& __p) 1586: noexcept(__and_<__is_nothrow_swappable<_T1>, 1586: __is_nothrow_swappable<_T2>>::value) 1586: { 1586: using std::swap; 1586: swap(first, __p.first); 1586: swap(second, __p.second); 1586: } 1586: 1586: private: 1586: template 1586: pair(tuple<_Args1...>&, tuple<_Args2...>&, 1586: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); 1586: 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline constexpr bool 1586: operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 1586: { return __x.first == __y.first && __x.second == __y.second; } 1586: 1586: 1586: template 1586: inline constexpr bool 1586: operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 1586: { return __x.first < __y.first 1586: || (!(__y.first < __x.first) && __x.second < __y.second); } 1586: 1586: 1586: template 1586: inline constexpr bool 1586: operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 1586: { return !(__x == __y); } 1586: 1586: 1586: template 1586: inline constexpr bool 1586: operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 1586: { return __y < __x; } 1586: 1586: 1586: template 1586: inline constexpr bool 1586: operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 1586: { return !(__y < __x); } 1586: 1586: 1586: template 1586: inline constexpr bool 1586: operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 1586: { return !(__x < __y); } 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline 1586: 1586: 1586: 1586: 1586: 1586: void 1586: 1586: swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) 1586: noexcept(noexcept(__x.swap(__y))) 1586: { __x.swap(__y); } 1586: # 521 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_pair.h" 3 1586: template 1586: constexpr pair::__type, 1586: typename __decay_and_strip<_T2>::__type> 1586: make_pair(_T1&& __x, _T2&& __y) 1586: { 1586: typedef typename __decay_and_strip<_T1>::__type __ds_type1; 1586: typedef typename __decay_and_strip<_T2>::__type __ds_type2; 1586: typedef pair<__ds_type1, __ds_type2> __pair_type; 1586: return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); 1586: } 1586: # 540 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_pair.h" 3 1586: 1586: } 1586: # 65 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator_base_types.h" 1 3 1586: # 62 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator_base_types.h" 3 1586: 1586: # 63 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator_base_types.h" 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 89 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator_base_types.h" 3 1586: struct input_iterator_tag { }; 1586: 1586: 1586: struct output_iterator_tag { }; 1586: 1586: 1586: struct forward_iterator_tag : public input_iterator_tag { }; 1586: 1586: 1586: 1586: struct bidirectional_iterator_tag : public forward_iterator_tag { }; 1586: 1586: 1586: 1586: struct random_access_iterator_tag : public bidirectional_iterator_tag { }; 1586: # 116 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator_base_types.h" 3 1586: template 1586: struct iterator 1586: { 1586: 1586: typedef _Category iterator_category; 1586: 1586: typedef _Tp value_type; 1586: 1586: typedef _Distance difference_type; 1586: 1586: typedef _Pointer pointer; 1586: 1586: typedef _Reference reference; 1586: }; 1586: # 143 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator_base_types.h" 3 1586: template> 1586: struct __iterator_traits { }; 1586: 1586: template 1586: struct __iterator_traits<_Iterator, 1586: __void_t> 1586: { 1586: typedef typename _Iterator::iterator_category iterator_category; 1586: typedef typename _Iterator::value_type value_type; 1586: typedef typename _Iterator::difference_type difference_type; 1586: typedef typename _Iterator::pointer pointer; 1586: typedef typename _Iterator::reference reference; 1586: }; 1586: 1586: template 1586: struct iterator_traits 1586: : public __iterator_traits<_Iterator> { }; 1586: # 177 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator_base_types.h" 3 1586: template 1586: struct iterator_traits<_Tp*> 1586: { 1586: typedef random_access_iterator_tag iterator_category; 1586: typedef _Tp value_type; 1586: typedef ptrdiff_t difference_type; 1586: typedef _Tp* pointer; 1586: typedef _Tp& reference; 1586: }; 1586: 1586: 1586: template 1586: struct iterator_traits 1586: { 1586: typedef random_access_iterator_tag iterator_category; 1586: typedef _Tp value_type; 1586: typedef ptrdiff_t difference_type; 1586: typedef const _Tp* pointer; 1586: typedef const _Tp& reference; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline constexpr 1586: typename iterator_traits<_Iter>::iterator_category 1586: __iterator_category(const _Iter&) 1586: { return typename iterator_traits<_Iter>::iterator_category(); } 1586: # 231 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator_base_types.h" 3 1586: template 1586: using _RequireInputIter = typename 1586: enable_if::iterator_category, 1586: input_iterator_tag>::value>::type; 1586: 1586: 1586: 1586: } 1586: # 66 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator_base_funcs.h" 1 3 1586: # 62 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator_base_funcs.h" 3 1586: 1586: # 63 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator_base_funcs.h" 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/debug/assertions.h" 1 3 1586: # 66 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator_base_funcs.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: template struct _List_iterator; 1586: template struct _List_const_iterator; 1586: 1586: 1586: template 1586: inline 1586: typename iterator_traits<_InputIterator>::difference_type 1586: __distance(_InputIterator __first, _InputIterator __last, 1586: input_iterator_tag) 1586: { 1586: 1586: 1586: 1586: typename iterator_traits<_InputIterator>::difference_type __n = 0; 1586: while (__first != __last) 1586: { 1586: ++__first; 1586: ++__n; 1586: } 1586: return __n; 1586: } 1586: 1586: template 1586: inline 1586: typename iterator_traits<_RandomAccessIterator>::difference_type 1586: __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, 1586: random_access_iterator_tag) 1586: { 1586: 1586: 1586: 1586: return __last - __first; 1586: } 1586: 1586: 1586: 1586: template 1586: ptrdiff_t 1586: __distance(std::_List_iterator<_Tp>, 1586: std::_List_iterator<_Tp>, 1586: input_iterator_tag); 1586: 1586: template 1586: ptrdiff_t 1586: __distance(std::_List_const_iterator<_Tp>, 1586: std::_List_const_iterator<_Tp>, 1586: input_iterator_tag); 1586: # 135 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator_base_funcs.h" 3 1586: template 1586: inline 1586: typename iterator_traits<_InputIterator>::difference_type 1586: distance(_InputIterator __first, _InputIterator __last) 1586: { 1586: 1586: return std::__distance(__first, __last, 1586: std::__iterator_category(__first)); 1586: } 1586: 1586: template 1586: inline void 1586: __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) 1586: { 1586: 1586: 1586: ; 1586: while (__n--) 1586: ++__i; 1586: } 1586: 1586: template 1586: inline void 1586: __advance(_BidirectionalIterator& __i, _Distance __n, 1586: bidirectional_iterator_tag) 1586: { 1586: 1586: 1586: 1586: if (__n > 0) 1586: while (__n--) 1586: ++__i; 1586: else 1586: while (__n++) 1586: --__i; 1586: } 1586: 1586: template 1586: inline void 1586: __advance(_RandomAccessIterator& __i, _Distance __n, 1586: random_access_iterator_tag) 1586: { 1586: 1586: 1586: 1586: if (__builtin_constant_p(__n) && __n == 1) 1586: ++__i; 1586: else if (__builtin_constant_p(__n) && __n == -1) 1586: --__i; 1586: else 1586: __i += __n; 1586: } 1586: # 200 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator_base_funcs.h" 3 1586: template 1586: inline void 1586: advance(_InputIterator& __i, _Distance __n) 1586: { 1586: 1586: typename iterator_traits<_InputIterator>::difference_type __d = __n; 1586: std::__advance(__i, __d, std::__iterator_category(__i)); 1586: } 1586: 1586: 1586: 1586: template 1586: inline _InputIterator 1586: next(_InputIterator __x, typename 1586: iterator_traits<_InputIterator>::difference_type __n = 1) 1586: { 1586: 1586: 1586: std::advance(__x, __n); 1586: return __x; 1586: } 1586: 1586: template 1586: inline _BidirectionalIterator 1586: prev(_BidirectionalIterator __x, typename 1586: iterator_traits<_BidirectionalIterator>::difference_type __n = 1) 1586: { 1586: 1586: 1586: 1586: std::advance(__x, -__n); 1586: return __x; 1586: } 1586: 1586: 1586: 1586: 1586: } 1586: # 67 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 1 3 1586: # 66 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/ptr_traits.h" 1 3 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/bits/ptr_traits.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: class __undefined; 1586: 1586: 1586: template 1586: struct __get_first_arg 1586: { using type = __undefined; }; 1586: 1586: template class _Template, typename _Tp, 1586: typename... _Types> 1586: struct __get_first_arg<_Template<_Tp, _Types...>> 1586: { using type = _Tp; }; 1586: 1586: template 1586: using __get_first_arg_t = typename __get_first_arg<_Tp>::type; 1586: 1586: 1586: template 1586: struct __replace_first_arg 1586: { }; 1586: 1586: template class _Template, typename _Up, 1586: typename _Tp, typename... _Types> 1586: struct __replace_first_arg<_Template<_Tp, _Types...>, _Up> 1586: { using type = _Template<_Up, _Types...>; }; 1586: 1586: template 1586: using __replace_first_arg_t = typename __replace_first_arg<_Tp, _Up>::type; 1586: 1586: template 1586: using __make_not_void 1586: = typename conditional::value, __undefined, _Tp>::type; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct pointer_traits 1586: { 1586: private: 1586: template 1586: using __element_type = typename _Tp::element_type; 1586: 1586: template 1586: using __difference_type = typename _Tp::difference_type; 1586: 1586: template 1586: struct __rebind : __replace_first_arg<_Tp, _Up> { }; 1586: 1586: template 1586: struct __rebind<_Tp, _Up, __void_t>> 1586: { using type = typename _Tp::template rebind<_Up>; }; 1586: 1586: public: 1586: 1586: using pointer = _Ptr; 1586: 1586: 1586: using element_type 1586: = __detected_or_t<__get_first_arg_t<_Ptr>, __element_type, _Ptr>; 1586: 1586: 1586: using difference_type 1586: = __detected_or_t; 1586: 1586: 1586: template 1586: using rebind = typename __rebind<_Ptr, _Up>::type; 1586: 1586: static _Ptr 1586: pointer_to(__make_not_void& __e) 1586: { return _Ptr::pointer_to(__e); } 1586: 1586: static_assert(!is_same::value, 1586: "pointer type defines element_type or is like SomePointer"); 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct pointer_traits<_Tp*> 1586: { 1586: 1586: typedef _Tp* pointer; 1586: 1586: typedef _Tp element_type; 1586: 1586: typedef ptrdiff_t difference_type; 1586: 1586: template 1586: using rebind = _Up*; 1586: 1586: 1586: 1586: 1586: 1586: 1586: static pointer 1586: pointer_to(__make_not_void& __r) noexcept 1586: { return std::addressof(__r); } 1586: }; 1586: 1586: 1586: template 1586: using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>; 1586: 1586: template 1586: constexpr _Tp* 1586: __to_address(_Tp* __ptr) noexcept 1586: { 1586: static_assert(!std::is_function<_Tp>::value, "not a function pointer"); 1586: return __ptr; 1586: } 1586: 1586: 1586: template 1586: constexpr typename std::pointer_traits<_Ptr>::element_type* 1586: __to_address(const _Ptr& __ptr) 1586: { return std::__to_address(__ptr.operator->()); } 1586: # 198 "/usr/mipsel-linux-gnu/include/c++/9/bits/ptr_traits.h" 3 1586: 1586: } 1586: # 67 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 2 3 1586: # 76 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 104 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: template 1586: class reverse_iterator 1586: : public iterator::iterator_category, 1586: typename iterator_traits<_Iterator>::value_type, 1586: typename iterator_traits<_Iterator>::difference_type, 1586: typename iterator_traits<_Iterator>::pointer, 1586: typename iterator_traits<_Iterator>::reference> 1586: { 1586: protected: 1586: _Iterator current; 1586: 1586: typedef iterator_traits<_Iterator> __traits_type; 1586: 1586: public: 1586: typedef _Iterator iterator_type; 1586: typedef typename __traits_type::difference_type difference_type; 1586: typedef typename __traits_type::pointer pointer; 1586: typedef typename __traits_type::reference reference; 1586: # 130 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: 1586: reverse_iterator() : current() { } 1586: 1586: 1586: 1586: 1586: explicit 1586: reverse_iterator(iterator_type __x) : current(__x) { } 1586: 1586: 1586: 1586: 1586: 1586: reverse_iterator(const reverse_iterator& __x) 1586: : current(__x.current) { } 1586: 1586: 1586: reverse_iterator& operator=(const reverse_iterator&) = default; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: 1586: reverse_iterator(const reverse_iterator<_Iter>& __x) 1586: : current(__x.base()) { } 1586: 1586: 1586: 1586: 1586: iterator_type 1586: base() const 1586: { return current; } 1586: # 176 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: reference 1586: operator*() const 1586: { 1586: _Iterator __tmp = current; 1586: return *--__tmp; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: pointer 1586: operator->() const 1586: { 1586: 1586: 1586: _Iterator __tmp = current; 1586: --__tmp; 1586: return _S_to_pointer(__tmp); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: reverse_iterator& 1586: operator++() 1586: { 1586: --current; 1586: return *this; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: reverse_iterator 1586: operator++(int) 1586: { 1586: reverse_iterator __tmp = *this; 1586: --current; 1586: return __tmp; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: reverse_iterator& 1586: operator--() 1586: { 1586: ++current; 1586: return *this; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: reverse_iterator 1586: operator--(int) 1586: { 1586: reverse_iterator __tmp = *this; 1586: ++current; 1586: return __tmp; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: reverse_iterator 1586: operator+(difference_type __n) const 1586: { return reverse_iterator(current - __n); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: reverse_iterator& 1586: operator+=(difference_type __n) 1586: { 1586: current -= __n; 1586: return *this; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: reverse_iterator 1586: operator-(difference_type __n) const 1586: { return reverse_iterator(current + __n); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: reverse_iterator& 1586: operator-=(difference_type __n) 1586: { 1586: current += __n; 1586: return *this; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: reference 1586: operator[](difference_type __n) const 1586: { return *(*this + __n); } 1586: 1586: private: 1586: template 1586: static _Tp* 1586: _S_to_pointer(_Tp* __p) 1586: { return __p; } 1586: 1586: template 1586: static pointer 1586: _S_to_pointer(_Tp __t) 1586: { return __t.operator->(); } 1586: }; 1586: # 323 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: template 1586: inline bool 1586: operator==(const reverse_iterator<_Iterator>& __x, 1586: const reverse_iterator<_Iterator>& __y) 1586: { return __x.base() == __y.base(); } 1586: 1586: template 1586: inline bool 1586: operator<(const reverse_iterator<_Iterator>& __x, 1586: const reverse_iterator<_Iterator>& __y) 1586: { return __y.base() < __x.base(); } 1586: 1586: template 1586: inline bool 1586: operator!=(const reverse_iterator<_Iterator>& __x, 1586: const reverse_iterator<_Iterator>& __y) 1586: { return !(__x == __y); } 1586: 1586: template 1586: inline bool 1586: operator>(const reverse_iterator<_Iterator>& __x, 1586: const reverse_iterator<_Iterator>& __y) 1586: { return __y < __x; } 1586: 1586: template 1586: inline bool 1586: operator<=(const reverse_iterator<_Iterator>& __x, 1586: const reverse_iterator<_Iterator>& __y) 1586: { return !(__y < __x); } 1586: 1586: template 1586: inline bool 1586: operator>=(const reverse_iterator<_Iterator>& __x, 1586: const reverse_iterator<_Iterator>& __y) 1586: { return !(__x < __y); } 1586: 1586: 1586: 1586: template 1586: inline bool 1586: operator==(const reverse_iterator<_IteratorL>& __x, 1586: const reverse_iterator<_IteratorR>& __y) 1586: { return __x.base() == __y.base(); } 1586: 1586: template 1586: inline bool 1586: operator<(const reverse_iterator<_IteratorL>& __x, 1586: const reverse_iterator<_IteratorR>& __y) 1586: { return __y.base() < __x.base(); } 1586: 1586: template 1586: inline bool 1586: operator!=(const reverse_iterator<_IteratorL>& __x, 1586: const reverse_iterator<_IteratorR>& __y) 1586: { return !(__x == __y); } 1586: 1586: template 1586: inline bool 1586: operator>(const reverse_iterator<_IteratorL>& __x, 1586: const reverse_iterator<_IteratorR>& __y) 1586: { return __y < __x; } 1586: 1586: template 1586: inline bool 1586: operator<=(const reverse_iterator<_IteratorL>& __x, 1586: const reverse_iterator<_IteratorR>& __y) 1586: { return !(__y < __x); } 1586: 1586: template 1586: inline bool 1586: operator>=(const reverse_iterator<_IteratorL>& __x, 1586: const reverse_iterator<_IteratorR>& __y) 1586: { return !(__x < __y); } 1586: # 413 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: template 1586: inline auto 1586: operator-(const reverse_iterator<_IteratorL>& __x, 1586: const reverse_iterator<_IteratorR>& __y) 1586: -> decltype(__y.base() - __x.base()) 1586: { return __y.base() - __x.base(); } 1586: 1586: 1586: template 1586: inline reverse_iterator<_Iterator> 1586: operator+(typename reverse_iterator<_Iterator>::difference_type __n, 1586: const reverse_iterator<_Iterator>& __x) 1586: { return reverse_iterator<_Iterator>(__x.base() - __n); } 1586: 1586: 1586: 1586: template 1586: inline reverse_iterator<_Iterator> 1586: __make_reverse_iterator(_Iterator __i) 1586: { return reverse_iterator<_Iterator>(__i); } 1586: # 448 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: template 1586: auto 1586: __niter_base(reverse_iterator<_Iterator> __it) 1586: -> decltype(__make_reverse_iterator(__niter_base(__it.base()))) 1586: { return __make_reverse_iterator(__niter_base(__it.base())); } 1586: 1586: template 1586: struct __is_move_iterator > 1586: : __is_move_iterator<_Iterator> 1586: { }; 1586: 1586: template 1586: auto 1586: __miter_base(reverse_iterator<_Iterator> __it) 1586: -> decltype(__make_reverse_iterator(__miter_base(__it.base()))) 1586: { return __make_reverse_iterator(__miter_base(__it.base())); } 1586: # 477 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: template 1586: class back_insert_iterator 1586: : public iterator 1586: { 1586: protected: 1586: _Container* container; 1586: 1586: public: 1586: 1586: typedef _Container container_type; 1586: 1586: 1586: explicit 1586: back_insert_iterator(_Container& __x) 1586: : container(std::__addressof(__x)) { } 1586: # 512 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: back_insert_iterator& 1586: operator=(const typename _Container::value_type& __value) 1586: { 1586: container->push_back(__value); 1586: return *this; 1586: } 1586: 1586: back_insert_iterator& 1586: operator=(typename _Container::value_type&& __value) 1586: { 1586: container->push_back(std::move(__value)); 1586: return *this; 1586: } 1586: 1586: 1586: 1586: back_insert_iterator& 1586: operator*() 1586: { return *this; } 1586: 1586: 1586: back_insert_iterator& 1586: operator++() 1586: { return *this; } 1586: 1586: 1586: back_insert_iterator 1586: operator++(int) 1586: { return *this; } 1586: }; 1586: # 554 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: template 1586: inline back_insert_iterator<_Container> 1586: back_inserter(_Container& __x) 1586: { return back_insert_iterator<_Container>(__x); } 1586: # 569 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: template 1586: class front_insert_iterator 1586: : public iterator 1586: { 1586: protected: 1586: _Container* container; 1586: 1586: public: 1586: 1586: typedef _Container container_type; 1586: 1586: 1586: explicit front_insert_iterator(_Container& __x) 1586: : container(std::__addressof(__x)) { } 1586: # 603 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: front_insert_iterator& 1586: operator=(const typename _Container::value_type& __value) 1586: { 1586: container->push_front(__value); 1586: return *this; 1586: } 1586: 1586: front_insert_iterator& 1586: operator=(typename _Container::value_type&& __value) 1586: { 1586: container->push_front(std::move(__value)); 1586: return *this; 1586: } 1586: 1586: 1586: 1586: front_insert_iterator& 1586: operator*() 1586: { return *this; } 1586: 1586: 1586: front_insert_iterator& 1586: operator++() 1586: { return *this; } 1586: 1586: 1586: front_insert_iterator 1586: operator++(int) 1586: { return *this; } 1586: }; 1586: # 645 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: template 1586: inline front_insert_iterator<_Container> 1586: front_inserter(_Container& __x) 1586: { return front_insert_iterator<_Container>(__x); } 1586: # 664 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: template 1586: class insert_iterator 1586: : public iterator 1586: { 1586: protected: 1586: _Container* container; 1586: typename _Container::iterator iter; 1586: 1586: public: 1586: 1586: typedef _Container container_type; 1586: 1586: 1586: 1586: 1586: 1586: insert_iterator(_Container& __x, typename _Container::iterator __i) 1586: : container(std::__addressof(__x)), iter(__i) {} 1586: # 715 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: insert_iterator& 1586: operator=(const typename _Container::value_type& __value) 1586: { 1586: iter = container->insert(iter, __value); 1586: ++iter; 1586: return *this; 1586: } 1586: 1586: insert_iterator& 1586: operator=(typename _Container::value_type&& __value) 1586: { 1586: iter = container->insert(iter, std::move(__value)); 1586: ++iter; 1586: return *this; 1586: } 1586: 1586: 1586: 1586: insert_iterator& 1586: operator*() 1586: { return *this; } 1586: 1586: 1586: insert_iterator& 1586: operator++() 1586: { return *this; } 1586: 1586: 1586: insert_iterator& 1586: operator++(int) 1586: { return *this; } 1586: }; 1586: # 760 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: template 1586: inline insert_iterator<_Container> 1586: inserter(_Container& __x, _Iterator __i) 1586: { 1586: return insert_iterator<_Container>(__x, 1586: typename _Container::iterator(__i)); 1586: } 1586: 1586: 1586: 1586: 1586: } 1586: 1586: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 784 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: using std::iterator_traits; 1586: using std::iterator; 1586: template 1586: class __normal_iterator 1586: { 1586: protected: 1586: _Iterator _M_current; 1586: 1586: typedef iterator_traits<_Iterator> __traits_type; 1586: 1586: public: 1586: typedef _Iterator iterator_type; 1586: typedef typename __traits_type::iterator_category iterator_category; 1586: typedef typename __traits_type::value_type value_type; 1586: typedef typename __traits_type::difference_type difference_type; 1586: typedef typename __traits_type::reference reference; 1586: typedef typename __traits_type::pointer pointer; 1586: 1586: constexpr __normal_iterator() noexcept 1586: : _M_current(_Iterator()) { } 1586: 1586: explicit 1586: __normal_iterator(const _Iterator& __i) noexcept 1586: : _M_current(__i) { } 1586: 1586: 1586: template 1586: __normal_iterator(const __normal_iterator<_Iter, 1586: typename __enable_if< 1586: (std::__are_same<_Iter, typename _Container::pointer>::__value), 1586: _Container>::__type>& __i) noexcept 1586: : _M_current(__i.base()) { } 1586: 1586: 1586: reference 1586: operator*() const noexcept 1586: { return *_M_current; } 1586: 1586: pointer 1586: operator->() const noexcept 1586: { return _M_current; } 1586: 1586: __normal_iterator& 1586: operator++() noexcept 1586: { 1586: ++_M_current; 1586: return *this; 1586: } 1586: 1586: __normal_iterator 1586: operator++(int) noexcept 1586: { return __normal_iterator(_M_current++); } 1586: 1586: 1586: __normal_iterator& 1586: operator--() noexcept 1586: { 1586: --_M_current; 1586: return *this; 1586: } 1586: 1586: __normal_iterator 1586: operator--(int) noexcept 1586: { return __normal_iterator(_M_current--); } 1586: 1586: 1586: reference 1586: operator[](difference_type __n) const noexcept 1586: { return _M_current[__n]; } 1586: 1586: __normal_iterator& 1586: operator+=(difference_type __n) noexcept 1586: { _M_current += __n; return *this; } 1586: 1586: __normal_iterator 1586: operator+(difference_type __n) const noexcept 1586: { return __normal_iterator(_M_current + __n); } 1586: 1586: __normal_iterator& 1586: operator-=(difference_type __n) noexcept 1586: { _M_current -= __n; return *this; } 1586: 1586: __normal_iterator 1586: operator-(difference_type __n) const noexcept 1586: { return __normal_iterator(_M_current - __n); } 1586: 1586: const _Iterator& 1586: base() const noexcept 1586: { return _M_current; } 1586: }; 1586: # 884 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: template 1586: inline bool 1586: operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, 1586: const __normal_iterator<_IteratorR, _Container>& __rhs) 1586: noexcept 1586: { return __lhs.base() == __rhs.base(); } 1586: 1586: template 1586: inline bool 1586: operator==(const __normal_iterator<_Iterator, _Container>& __lhs, 1586: const __normal_iterator<_Iterator, _Container>& __rhs) 1586: noexcept 1586: { return __lhs.base() == __rhs.base(); } 1586: 1586: template 1586: inline bool 1586: operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, 1586: const __normal_iterator<_IteratorR, _Container>& __rhs) 1586: noexcept 1586: { return __lhs.base() != __rhs.base(); } 1586: 1586: template 1586: inline bool 1586: operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, 1586: const __normal_iterator<_Iterator, _Container>& __rhs) 1586: noexcept 1586: { return __lhs.base() != __rhs.base(); } 1586: 1586: 1586: template 1586: inline bool 1586: operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, 1586: const __normal_iterator<_IteratorR, _Container>& __rhs) 1586: noexcept 1586: { return __lhs.base() < __rhs.base(); } 1586: 1586: template 1586: inline bool 1586: operator<(const __normal_iterator<_Iterator, _Container>& __lhs, 1586: const __normal_iterator<_Iterator, _Container>& __rhs) 1586: noexcept 1586: { return __lhs.base() < __rhs.base(); } 1586: 1586: template 1586: inline bool 1586: operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, 1586: const __normal_iterator<_IteratorR, _Container>& __rhs) 1586: noexcept 1586: { return __lhs.base() > __rhs.base(); } 1586: 1586: template 1586: inline bool 1586: operator>(const __normal_iterator<_Iterator, _Container>& __lhs, 1586: const __normal_iterator<_Iterator, _Container>& __rhs) 1586: noexcept 1586: { return __lhs.base() > __rhs.base(); } 1586: 1586: template 1586: inline bool 1586: operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, 1586: const __normal_iterator<_IteratorR, _Container>& __rhs) 1586: noexcept 1586: { return __lhs.base() <= __rhs.base(); } 1586: 1586: template 1586: inline bool 1586: operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, 1586: const __normal_iterator<_Iterator, _Container>& __rhs) 1586: noexcept 1586: { return __lhs.base() <= __rhs.base(); } 1586: 1586: template 1586: inline bool 1586: operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, 1586: const __normal_iterator<_IteratorR, _Container>& __rhs) 1586: noexcept 1586: { return __lhs.base() >= __rhs.base(); } 1586: 1586: template 1586: inline bool 1586: operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, 1586: const __normal_iterator<_Iterator, _Container>& __rhs) 1586: noexcept 1586: { return __lhs.base() >= __rhs.base(); } 1586: 1586: 1586: 1586: 1586: 1586: template 1586: 1586: 1586: inline auto 1586: operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, 1586: const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept 1586: -> decltype(__lhs.base() - __rhs.base()) 1586: 1586: 1586: 1586: 1586: 1586: { return __lhs.base() - __rhs.base(); } 1586: 1586: template 1586: inline typename __normal_iterator<_Iterator, _Container>::difference_type 1586: operator-(const __normal_iterator<_Iterator, _Container>& __lhs, 1586: const __normal_iterator<_Iterator, _Container>& __rhs) 1586: noexcept 1586: { return __lhs.base() - __rhs.base(); } 1586: 1586: template 1586: inline __normal_iterator<_Iterator, _Container> 1586: operator+(typename __normal_iterator<_Iterator, _Container>::difference_type 1586: __n, const __normal_iterator<_Iterator, _Container>& __i) 1586: noexcept 1586: { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } 1586: 1586: 1586: } 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: template 1586: _Iterator 1586: __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it) 1586: noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) 1586: { return __it.base(); } 1586: # 1030 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: template 1586: class move_iterator 1586: { 1586: protected: 1586: _Iterator _M_current; 1586: 1586: typedef iterator_traits<_Iterator> __traits_type; 1586: typedef typename __traits_type::reference __base_ref; 1586: 1586: public: 1586: typedef _Iterator iterator_type; 1586: typedef typename __traits_type::iterator_category iterator_category; 1586: typedef typename __traits_type::value_type value_type; 1586: typedef typename __traits_type::difference_type difference_type; 1586: 1586: typedef _Iterator pointer; 1586: 1586: 1586: typedef typename conditional::value, 1586: typename remove_reference<__base_ref>::type&&, 1586: __base_ref>::type reference; 1586: 1586: 1586: move_iterator() 1586: : _M_current() { } 1586: 1586: explicit 1586: move_iterator(iterator_type __i) 1586: : _M_current(__i) { } 1586: 1586: template 1586: 1586: move_iterator(const move_iterator<_Iter>& __i) 1586: : _M_current(__i.base()) { } 1586: 1586: iterator_type 1586: base() const 1586: { return _M_current; } 1586: 1586: reference 1586: operator*() const 1586: { return static_cast(*_M_current); } 1586: 1586: pointer 1586: operator->() const 1586: { return _M_current; } 1586: 1586: move_iterator& 1586: operator++() 1586: { 1586: ++_M_current; 1586: return *this; 1586: } 1586: 1586: move_iterator 1586: operator++(int) 1586: { 1586: move_iterator __tmp = *this; 1586: ++_M_current; 1586: return __tmp; 1586: } 1586: 1586: move_iterator& 1586: operator--() 1586: { 1586: --_M_current; 1586: return *this; 1586: } 1586: 1586: move_iterator 1586: operator--(int) 1586: { 1586: move_iterator __tmp = *this; 1586: --_M_current; 1586: return __tmp; 1586: } 1586: 1586: move_iterator 1586: operator+(difference_type __n) const 1586: { return move_iterator(_M_current + __n); } 1586: 1586: move_iterator& 1586: operator+=(difference_type __n) 1586: { 1586: _M_current += __n; 1586: return *this; 1586: } 1586: 1586: move_iterator 1586: operator-(difference_type __n) const 1586: { return move_iterator(_M_current - __n); } 1586: 1586: move_iterator& 1586: operator-=(difference_type __n) 1586: { 1586: _M_current -= __n; 1586: return *this; 1586: } 1586: 1586: reference 1586: operator[](difference_type __n) const 1586: { return std::move(_M_current[__n]); } 1586: }; 1586: 1586: 1586: 1586: 1586: template 1586: inline bool 1586: operator==(const move_iterator<_IteratorL>& __x, 1586: const move_iterator<_IteratorR>& __y) 1586: { return __x.base() == __y.base(); } 1586: 1586: template 1586: inline bool 1586: operator==(const move_iterator<_Iterator>& __x, 1586: const move_iterator<_Iterator>& __y) 1586: { return __x.base() == __y.base(); } 1586: 1586: template 1586: inline bool 1586: operator!=(const move_iterator<_IteratorL>& __x, 1586: const move_iterator<_IteratorR>& __y) 1586: { return !(__x == __y); } 1586: 1586: template 1586: inline bool 1586: operator!=(const move_iterator<_Iterator>& __x, 1586: const move_iterator<_Iterator>& __y) 1586: { return !(__x == __y); } 1586: 1586: template 1586: inline bool 1586: operator<(const move_iterator<_IteratorL>& __x, 1586: const move_iterator<_IteratorR>& __y) 1586: { return __x.base() < __y.base(); } 1586: 1586: template 1586: inline bool 1586: operator<(const move_iterator<_Iterator>& __x, 1586: const move_iterator<_Iterator>& __y) 1586: { return __x.base() < __y.base(); } 1586: 1586: template 1586: inline bool 1586: operator<=(const move_iterator<_IteratorL>& __x, 1586: const move_iterator<_IteratorR>& __y) 1586: { return !(__y < __x); } 1586: 1586: template 1586: inline bool 1586: operator<=(const move_iterator<_Iterator>& __x, 1586: const move_iterator<_Iterator>& __y) 1586: { return !(__y < __x); } 1586: 1586: template 1586: inline bool 1586: operator>(const move_iterator<_IteratorL>& __x, 1586: const move_iterator<_IteratorR>& __y) 1586: { return __y < __x; } 1586: 1586: template 1586: inline bool 1586: operator>(const move_iterator<_Iterator>& __x, 1586: const move_iterator<_Iterator>& __y) 1586: { return __y < __x; } 1586: 1586: template 1586: inline bool 1586: operator>=(const move_iterator<_IteratorL>& __x, 1586: const move_iterator<_IteratorR>& __y) 1586: { return !(__x < __y); } 1586: 1586: template 1586: inline bool 1586: operator>=(const move_iterator<_Iterator>& __x, 1586: const move_iterator<_Iterator>& __y) 1586: { return !(__x < __y); } 1586: 1586: 1586: template 1586: inline auto 1586: operator-(const move_iterator<_IteratorL>& __x, 1586: const move_iterator<_IteratorR>& __y) 1586: -> decltype(__x.base() - __y.base()) 1586: { return __x.base() - __y.base(); } 1586: 1586: template 1586: inline move_iterator<_Iterator> 1586: operator+(typename move_iterator<_Iterator>::difference_type __n, 1586: const move_iterator<_Iterator>& __x) 1586: { return __x + __n; } 1586: 1586: template 1586: inline move_iterator<_Iterator> 1586: make_move_iterator(_Iterator __i) 1586: { return move_iterator<_Iterator>(__i); } 1586: 1586: template::value_type>::value, 1586: _Iterator, move_iterator<_Iterator>>::type> 1586: inline _ReturnType 1586: __make_move_if_noexcept_iterator(_Iterator __i) 1586: { return _ReturnType(__i); } 1586: 1586: 1586: 1586: template::value, 1586: const _Tp*, move_iterator<_Tp*>>::type> 1586: inline _ReturnType 1586: __make_move_if_noexcept_iterator(_Tp* __i) 1586: { return _ReturnType(__i); } 1586: 1586: 1586: 1586: template 1586: auto 1586: __niter_base(move_iterator<_Iterator> __it) 1586: -> decltype(make_move_iterator(__niter_base(__it.base()))) 1586: { return make_move_iterator(__niter_base(__it.base())); } 1586: 1586: template 1586: struct __is_move_iterator > 1586: { 1586: enum { __value = 1 }; 1586: typedef __true_type __type; 1586: }; 1586: 1586: template 1586: auto 1586: __miter_base(move_iterator<_Iterator> __it) 1586: -> decltype(__miter_base(__it.base())) 1586: { return __miter_base(__it.base()); } 1586: # 1295 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_iterator.h" 3 1586: 1586: } 1586: # 68 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 2 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/debug/debug.h" 1 3 1586: # 48 "/usr/mipsel-linux-gnu/include/c++/9/debug/debug.h" 3 1586: namespace std 1586: { 1586: namespace __debug { } 1586: } 1586: 1586: 1586: 1586: 1586: namespace __gnu_debug 1586: { 1586: using namespace std::__debug; 1586: } 1586: # 70 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 2 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/predefined_ops.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/predefined_ops.h" 3 1586: namespace __gnu_cxx 1586: { 1586: namespace __ops 1586: { 1586: struct _Iter_less_iter 1586: { 1586: template 1586: 1586: bool 1586: operator()(_Iterator1 __it1, _Iterator2 __it2) const 1586: { return *__it1 < *__it2; } 1586: }; 1586: 1586: 1586: inline _Iter_less_iter 1586: __iter_less_iter() 1586: { return _Iter_less_iter(); } 1586: 1586: struct _Iter_less_val 1586: { 1586: 1586: constexpr _Iter_less_val() = default; 1586: 1586: 1586: 1586: 1586: explicit 1586: _Iter_less_val(_Iter_less_iter) { } 1586: 1586: template 1586: bool 1586: operator()(_Iterator __it, _Value& __val) const 1586: { return *__it < __val; } 1586: }; 1586: 1586: inline _Iter_less_val 1586: __iter_less_val() 1586: { return _Iter_less_val(); } 1586: 1586: inline _Iter_less_val 1586: __iter_comp_val(_Iter_less_iter) 1586: { return _Iter_less_val(); } 1586: 1586: struct _Val_less_iter 1586: { 1586: 1586: constexpr _Val_less_iter() = default; 1586: 1586: 1586: 1586: 1586: explicit 1586: _Val_less_iter(_Iter_less_iter) { } 1586: 1586: template 1586: bool 1586: operator()(_Value& __val, _Iterator __it) const 1586: { return __val < *__it; } 1586: }; 1586: 1586: inline _Val_less_iter 1586: __val_less_iter() 1586: { return _Val_less_iter(); } 1586: 1586: inline _Val_less_iter 1586: __val_comp_iter(_Iter_less_iter) 1586: { return _Val_less_iter(); } 1586: 1586: struct _Iter_equal_to_iter 1586: { 1586: template 1586: bool 1586: operator()(_Iterator1 __it1, _Iterator2 __it2) const 1586: { return *__it1 == *__it2; } 1586: }; 1586: 1586: inline _Iter_equal_to_iter 1586: __iter_equal_to_iter() 1586: { return _Iter_equal_to_iter(); } 1586: 1586: struct _Iter_equal_to_val 1586: { 1586: template 1586: bool 1586: operator()(_Iterator __it, _Value& __val) const 1586: { return *__it == __val; } 1586: }; 1586: 1586: inline _Iter_equal_to_val 1586: __iter_equal_to_val() 1586: { return _Iter_equal_to_val(); } 1586: 1586: inline _Iter_equal_to_val 1586: __iter_comp_val(_Iter_equal_to_iter) 1586: { return _Iter_equal_to_val(); } 1586: 1586: template 1586: struct _Iter_comp_iter 1586: { 1586: _Compare _M_comp; 1586: 1586: explicit 1586: _Iter_comp_iter(_Compare __comp) 1586: : _M_comp(std::move(__comp)) 1586: { } 1586: 1586: template 1586: 1586: bool 1586: operator()(_Iterator1 __it1, _Iterator2 __it2) 1586: { return bool(_M_comp(*__it1, *__it2)); } 1586: }; 1586: 1586: template 1586: 1586: inline _Iter_comp_iter<_Compare> 1586: __iter_comp_iter(_Compare __comp) 1586: { return _Iter_comp_iter<_Compare>(std::move(__comp)); } 1586: 1586: template 1586: struct _Iter_comp_val 1586: { 1586: _Compare _M_comp; 1586: 1586: explicit 1586: _Iter_comp_val(_Compare __comp) 1586: : _M_comp(std::move(__comp)) 1586: { } 1586: 1586: explicit 1586: _Iter_comp_val(const _Iter_comp_iter<_Compare>& __comp) 1586: : _M_comp(__comp._M_comp) 1586: { } 1586: 1586: 1586: explicit 1586: _Iter_comp_val(_Iter_comp_iter<_Compare>&& __comp) 1586: : _M_comp(std::move(__comp._M_comp)) 1586: { } 1586: 1586: 1586: template 1586: bool 1586: operator()(_Iterator __it, _Value& __val) 1586: { return bool(_M_comp(*__it, __val)); } 1586: }; 1586: 1586: template 1586: inline _Iter_comp_val<_Compare> 1586: __iter_comp_val(_Compare __comp) 1586: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 1586: 1586: template 1586: inline _Iter_comp_val<_Compare> 1586: __iter_comp_val(_Iter_comp_iter<_Compare> __comp) 1586: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 1586: 1586: template 1586: struct _Val_comp_iter 1586: { 1586: _Compare _M_comp; 1586: 1586: explicit 1586: _Val_comp_iter(_Compare __comp) 1586: : _M_comp(std::move(__comp)) 1586: { } 1586: 1586: explicit 1586: _Val_comp_iter(const _Iter_comp_iter<_Compare>& __comp) 1586: : _M_comp(__comp._M_comp) 1586: { } 1586: 1586: 1586: explicit 1586: _Val_comp_iter(_Iter_comp_iter<_Compare>&& __comp) 1586: : _M_comp(std::move(__comp._M_comp)) 1586: { } 1586: 1586: 1586: template 1586: bool 1586: operator()(_Value& __val, _Iterator __it) 1586: { return bool(_M_comp(__val, *__it)); } 1586: }; 1586: 1586: template 1586: inline _Val_comp_iter<_Compare> 1586: __val_comp_iter(_Compare __comp) 1586: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 1586: 1586: template 1586: inline _Val_comp_iter<_Compare> 1586: __val_comp_iter(_Iter_comp_iter<_Compare> __comp) 1586: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 1586: 1586: template 1586: struct _Iter_equals_val 1586: { 1586: _Value& _M_value; 1586: 1586: explicit 1586: _Iter_equals_val(_Value& __value) 1586: : _M_value(__value) 1586: { } 1586: 1586: template 1586: bool 1586: operator()(_Iterator __it) 1586: { return *__it == _M_value; } 1586: }; 1586: 1586: template 1586: inline _Iter_equals_val<_Value> 1586: __iter_equals_val(_Value& __val) 1586: { return _Iter_equals_val<_Value>(__val); } 1586: 1586: template 1586: struct _Iter_equals_iter 1586: { 1586: _Iterator1 _M_it1; 1586: 1586: explicit 1586: _Iter_equals_iter(_Iterator1 __it1) 1586: : _M_it1(__it1) 1586: { } 1586: 1586: template 1586: bool 1586: operator()(_Iterator2 __it2) 1586: { return *__it2 == *_M_it1; } 1586: }; 1586: 1586: template 1586: inline _Iter_equals_iter<_Iterator> 1586: __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) 1586: { return _Iter_equals_iter<_Iterator>(__it); } 1586: 1586: template 1586: struct _Iter_pred 1586: { 1586: _Predicate _M_pred; 1586: 1586: explicit 1586: _Iter_pred(_Predicate __pred) 1586: : _M_pred(std::move(__pred)) 1586: { } 1586: 1586: template 1586: bool 1586: operator()(_Iterator __it) 1586: { return bool(_M_pred(*__it)); } 1586: }; 1586: 1586: template 1586: inline _Iter_pred<_Predicate> 1586: __pred_iter(_Predicate __pred) 1586: { return _Iter_pred<_Predicate>(std::move(__pred)); } 1586: 1586: template 1586: struct _Iter_comp_to_val 1586: { 1586: _Compare _M_comp; 1586: _Value& _M_value; 1586: 1586: _Iter_comp_to_val(_Compare __comp, _Value& __value) 1586: : _M_comp(std::move(__comp)), _M_value(__value) 1586: { } 1586: 1586: template 1586: bool 1586: operator()(_Iterator __it) 1586: { return bool(_M_comp(*__it, _M_value)); } 1586: }; 1586: 1586: template 1586: _Iter_comp_to_val<_Compare, _Value> 1586: __iter_comp_val(_Compare __comp, _Value &__val) 1586: { 1586: return _Iter_comp_to_val<_Compare, _Value>(std::move(__comp), __val); 1586: } 1586: 1586: template 1586: struct _Iter_comp_to_iter 1586: { 1586: _Compare _M_comp; 1586: _Iterator1 _M_it1; 1586: 1586: _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) 1586: : _M_comp(std::move(__comp)), _M_it1(__it1) 1586: { } 1586: 1586: template 1586: bool 1586: operator()(_Iterator2 __it2) 1586: { return bool(_M_comp(*__it2, *_M_it1)); } 1586: }; 1586: 1586: template 1586: inline _Iter_comp_to_iter<_Compare, _Iterator> 1586: __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it) 1586: { 1586: return _Iter_comp_to_iter<_Compare, _Iterator>( 1586: std::move(__comp._M_comp), __it); 1586: } 1586: 1586: template 1586: struct _Iter_negate 1586: { 1586: _Predicate _M_pred; 1586: 1586: explicit 1586: _Iter_negate(_Predicate __pred) 1586: : _M_pred(std::move(__pred)) 1586: { } 1586: 1586: template 1586: bool 1586: operator()(_Iterator __it) 1586: { return !bool(_M_pred(*__it)); } 1586: }; 1586: 1586: template 1586: inline _Iter_negate<_Predicate> 1586: __negate(_Iter_pred<_Predicate> __pred) 1586: { return _Iter_negate<_Predicate>(std::move(__pred._M_pred)); } 1586: 1586: } 1586: } 1586: # 72 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 2 3 1586: 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 121 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: inline void 1586: iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) 1586: { 1586: 1586: 1586: 1586: 1586: # 151 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: swap(*__a, *__b); 1586: 1586: } 1586: # 167 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: _ForwardIterator2 1586: swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 1586: _ForwardIterator2 __first2) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: for (; __first1 != __last1; ++__first1, (void)++__first2) 1586: std::iter_swap(__first1, __first2); 1586: return __first2; 1586: } 1586: # 195 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: 1586: inline const _Tp& 1586: min(const _Tp& __a, const _Tp& __b) 1586: { 1586: 1586: 1586: 1586: if (__b < __a) 1586: return __b; 1586: return __a; 1586: } 1586: # 219 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: 1586: inline const _Tp& 1586: max(const _Tp& __a, const _Tp& __b) 1586: { 1586: 1586: 1586: 1586: if (__a < __b) 1586: return __b; 1586: return __a; 1586: } 1586: # 243 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: 1586: inline const _Tp& 1586: min(const _Tp& __a, const _Tp& __b, _Compare __comp) 1586: { 1586: 1586: if (__comp(__b, __a)) 1586: return __b; 1586: return __a; 1586: } 1586: # 265 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: 1586: inline const _Tp& 1586: max(const _Tp& __a, const _Tp& __b, _Compare __comp) 1586: { 1586: 1586: if (__comp(__a, __b)) 1586: return __b; 1586: return __a; 1586: } 1586: 1586: 1586: 1586: template 1586: inline _Iterator 1586: __niter_base(_Iterator __it) 1586: noexcept(std::is_nothrow_copy_constructible<_Iterator>::value) 1586: { return __it; } 1586: 1586: 1586: 1586: 1586: template 1586: inline _From 1586: __niter_wrap(_From __from, _To __res) 1586: { return __from + (__res - std::__niter_base(__from)); } 1586: 1586: 1586: template 1586: inline _Iterator 1586: __niter_wrap(const _Iterator&, _Iterator __res) 1586: { return __res; } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct __copy_move 1586: { 1586: template 1586: static _OI 1586: __copy_m(_II __first, _II __last, _OI __result) 1586: { 1586: for (; __first != __last; ++__result, (void)++__first) 1586: *__result = *__first; 1586: return __result; 1586: } 1586: }; 1586: 1586: 1586: template 1586: struct __copy_move 1586: { 1586: template 1586: static _OI 1586: __copy_m(_II __first, _II __last, _OI __result) 1586: { 1586: for (; __first != __last; ++__result, (void)++__first) 1586: *__result = std::move(*__first); 1586: return __result; 1586: } 1586: }; 1586: 1586: 1586: template<> 1586: struct __copy_move 1586: { 1586: template 1586: static _OI 1586: __copy_m(_II __first, _II __last, _OI __result) 1586: { 1586: typedef typename iterator_traits<_II>::difference_type _Distance; 1586: for(_Distance __n = __last - __first; __n > 0; --__n) 1586: { 1586: *__result = *__first; 1586: ++__first; 1586: ++__result; 1586: } 1586: return __result; 1586: } 1586: }; 1586: 1586: 1586: template<> 1586: struct __copy_move 1586: { 1586: template 1586: static _OI 1586: __copy_m(_II __first, _II __last, _OI __result) 1586: { 1586: typedef typename iterator_traits<_II>::difference_type _Distance; 1586: for(_Distance __n = __last - __first; __n > 0; --__n) 1586: { 1586: *__result = std::move(*__first); 1586: ++__first; 1586: ++__result; 1586: } 1586: return __result; 1586: } 1586: }; 1586: 1586: 1586: template 1586: struct __copy_move<_IsMove, true, random_access_iterator_tag> 1586: { 1586: template 1586: static _Tp* 1586: __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result) 1586: { 1586: 1586: using __assignable = conditional<_IsMove, 1586: is_move_assignable<_Tp>, 1586: is_copy_assignable<_Tp>>; 1586: 1586: static_assert( __assignable::type::value, "type is not assignable" ); 1586: 1586: const ptrdiff_t _Num = __last - __first; 1586: if (_Num) 1586: __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); 1586: return __result + _Num; 1586: } 1586: }; 1586: 1586: template 1586: inline _OI 1586: __copy_move_a(_II __first, _II __last, _OI __result) 1586: { 1586: typedef typename iterator_traits<_II>::value_type _ValueTypeI; 1586: typedef typename iterator_traits<_OI>::value_type _ValueTypeO; 1586: typedef typename iterator_traits<_II>::iterator_category _Category; 1586: const bool __simple = (__is_trivially_copyable(_ValueTypeI) 1586: && __is_pointer<_II>::__value 1586: && __is_pointer<_OI>::__value 1586: && __are_same<_ValueTypeI, _ValueTypeO>::__value); 1586: 1586: return std::__copy_move<_IsMove, __simple, 1586: _Category>::__copy_m(__first, __last, __result); 1586: } 1586: 1586: 1586: 1586: template 1586: struct char_traits; 1586: 1586: template 1586: class istreambuf_iterator; 1586: 1586: template 1586: class ostreambuf_iterator; 1586: 1586: template 1586: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1586: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 1586: __copy_move_a2(_CharT*, _CharT*, 1586: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 1586: 1586: template 1586: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1586: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 1586: __copy_move_a2(const _CharT*, const _CharT*, 1586: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 1586: 1586: template 1586: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1586: _CharT*>::__type 1586: __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, 1586: istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); 1586: 1586: template 1586: inline _OI 1586: __copy_move_a2(_II __first, _II __last, _OI __result) 1586: { 1586: return std::__niter_wrap(__result, 1586: std::__copy_move_a<_IsMove>(std::__niter_base(__first), 1586: std::__niter_base(__last), 1586: std::__niter_base(__result))); 1586: } 1586: # 463 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: inline _OI 1586: copy(_II __first, _II __last, _OI __result) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__copy_move_a2<__is_move_iterator<_II>::__value> 1586: (std::__miter_base(__first), std::__miter_base(__last), __result); 1586: } 1586: # 495 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: inline _OI 1586: move(_II __first, _II __last, _OI __result) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__copy_move_a2(std::__miter_base(__first), 1586: std::__miter_base(__last), __result); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct __copy_move_backward 1586: { 1586: template 1586: static _BI2 1586: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 1586: { 1586: while (__first != __last) 1586: *--__result = *--__last; 1586: return __result; 1586: } 1586: }; 1586: 1586: 1586: template 1586: struct __copy_move_backward 1586: { 1586: template 1586: static _BI2 1586: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 1586: { 1586: while (__first != __last) 1586: *--__result = std::move(*--__last); 1586: return __result; 1586: } 1586: }; 1586: 1586: 1586: template<> 1586: struct __copy_move_backward 1586: { 1586: template 1586: static _BI2 1586: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 1586: { 1586: typename iterator_traits<_BI1>::difference_type __n; 1586: for (__n = __last - __first; __n > 0; --__n) 1586: *--__result = *--__last; 1586: return __result; 1586: } 1586: }; 1586: 1586: 1586: template<> 1586: struct __copy_move_backward 1586: { 1586: template 1586: static _BI2 1586: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 1586: { 1586: typename iterator_traits<_BI1>::difference_type __n; 1586: for (__n = __last - __first; __n > 0; --__n) 1586: *--__result = std::move(*--__last); 1586: return __result; 1586: } 1586: }; 1586: 1586: 1586: template 1586: struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> 1586: { 1586: template 1586: static _Tp* 1586: __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result) 1586: { 1586: 1586: using __assignable = conditional<_IsMove, 1586: is_move_assignable<_Tp>, 1586: is_copy_assignable<_Tp>>; 1586: 1586: static_assert( __assignable::type::value, "type is not assignable" ); 1586: 1586: const ptrdiff_t _Num = __last - __first; 1586: if (_Num) 1586: __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); 1586: return __result - _Num; 1586: } 1586: }; 1586: 1586: template 1586: inline _BI2 1586: __copy_move_backward_a(_BI1 __first, _BI1 __last, _BI2 __result) 1586: { 1586: typedef typename iterator_traits<_BI1>::value_type _ValueType1; 1586: typedef typename iterator_traits<_BI2>::value_type _ValueType2; 1586: typedef typename iterator_traits<_BI1>::iterator_category _Category; 1586: const bool __simple = (__is_trivially_copyable(_ValueType1) 1586: && __is_pointer<_BI1>::__value 1586: && __is_pointer<_BI2>::__value 1586: && __are_same<_ValueType1, _ValueType2>::__value); 1586: 1586: return std::__copy_move_backward<_IsMove, __simple, 1586: _Category>::__copy_move_b(__first, 1586: __last, 1586: __result); 1586: } 1586: 1586: template 1586: inline _BI2 1586: __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) 1586: { 1586: return std::__niter_wrap(__result, 1586: std::__copy_move_backward_a<_IsMove> 1586: (std::__niter_base(__first), std::__niter_base(__last), 1586: std::__niter_base(__result))); 1586: } 1586: # 639 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: inline _BI2 1586: copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__copy_move_backward_a2<__is_move_iterator<_BI1>::__value> 1586: (std::__miter_base(__first), std::__miter_base(__last), __result); 1586: } 1586: # 674 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: inline _BI2 1586: move_backward(_BI1 __first, _BI1 __last, _BI2 __result) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__copy_move_backward_a2(std::__miter_base(__first), 1586: std::__miter_base(__last), 1586: __result); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline typename 1586: __gnu_cxx::__enable_if::__value, void>::__type 1586: __fill_a(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __value) 1586: { 1586: for (; __first != __last; ++__first) 1586: *__first = __value; 1586: } 1586: 1586: template 1586: inline typename 1586: __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type 1586: __fill_a(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __value) 1586: { 1586: const _Tp __tmp = __value; 1586: for (; __first != __last; ++__first) 1586: *__first = __tmp; 1586: } 1586: 1586: 1586: template 1586: inline typename 1586: __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type 1586: __fill_a(_Tp* __first, _Tp* __last, const _Tp& __c) 1586: { 1586: const _Tp __tmp = __c; 1586: if (const size_t __len = __last - __first) 1586: __builtin_memset(__first, static_cast(__tmp), __len); 1586: } 1586: # 740 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: inline void 1586: fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) 1586: { 1586: 1586: 1586: 1586: ; 1586: 1586: std::__fill_a(std::__niter_base(__first), std::__niter_base(__last), 1586: __value); 1586: } 1586: 1586: template 1586: inline typename 1586: __gnu_cxx::__enable_if::__value, _OutputIterator>::__type 1586: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) 1586: { 1586: for (__decltype(__n + 0) __niter = __n; 1586: __niter > 0; --__niter, (void) ++__first) 1586: *__first = __value; 1586: return __first; 1586: } 1586: 1586: template 1586: inline typename 1586: __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type 1586: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) 1586: { 1586: const _Tp __tmp = __value; 1586: for (__decltype(__n + 0) __niter = __n; 1586: __niter > 0; --__niter, (void) ++__first) 1586: *__first = __tmp; 1586: return __first; 1586: } 1586: 1586: template 1586: inline typename 1586: __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, _Tp*>::__type 1586: __fill_n_a(_Tp* __first, _Size __n, const _Tp& __c) 1586: { 1586: std::__fill_a(__first, __first + __n, __c); 1586: return __first + __n; 1586: } 1586: # 800 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: inline _OI 1586: fill_n(_OI __first, _Size __n, const _Tp& __value) 1586: { 1586: 1586: 1586: ; 1586: 1586: return std::__niter_wrap(__first, 1586: std::__fill_n_a(std::__niter_base(__first), __n, __value)); 1586: } 1586: 1586: template 1586: struct __equal 1586: { 1586: template 1586: static bool 1586: equal(_II1 __first1, _II1 __last1, _II2 __first2) 1586: { 1586: for (; __first1 != __last1; ++__first1, (void) ++__first2) 1586: if (!(*__first1 == *__first2)) 1586: return false; 1586: return true; 1586: } 1586: }; 1586: 1586: template<> 1586: struct __equal 1586: { 1586: template 1586: static bool 1586: equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) 1586: { 1586: if (const size_t __len = (__last1 - __first1)) 1586: return !__builtin_memcmp(__first1, __first2, sizeof(_Tp) * __len); 1586: return true; 1586: } 1586: }; 1586: 1586: template 1586: inline bool 1586: __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) 1586: { 1586: typedef typename iterator_traits<_II1>::value_type _ValueType1; 1586: typedef typename iterator_traits<_II2>::value_type _ValueType2; 1586: const bool __simple = ((__is_integer<_ValueType1>::__value 1586: || __is_pointer<_ValueType1>::__value) 1586: && __is_pointer<_II1>::__value 1586: && __is_pointer<_II2>::__value 1586: && __are_same<_ValueType1, _ValueType2>::__value); 1586: 1586: return std::__equal<__simple>::equal(__first1, __last1, __first2); 1586: } 1586: 1586: template 1586: struct __lc_rai 1586: { 1586: template 1586: static _II1 1586: __newlast1(_II1, _II1 __last1, _II2, _II2) 1586: { return __last1; } 1586: 1586: template 1586: static bool 1586: __cnd2(_II __first, _II __last) 1586: { return __first != __last; } 1586: }; 1586: 1586: template<> 1586: struct __lc_rai 1586: { 1586: template 1586: static _RAI1 1586: __newlast1(_RAI1 __first1, _RAI1 __last1, 1586: _RAI2 __first2, _RAI2 __last2) 1586: { 1586: const typename iterator_traits<_RAI1>::difference_type 1586: __diff1 = __last1 - __first1; 1586: const typename iterator_traits<_RAI2>::difference_type 1586: __diff2 = __last2 - __first2; 1586: return __diff2 < __diff1 ? __first1 + __diff2 : __last1; 1586: } 1586: 1586: template 1586: static bool 1586: __cnd2(_RAI, _RAI) 1586: { return true; } 1586: }; 1586: 1586: template 1586: bool 1586: __lexicographical_compare_impl(_II1 __first1, _II1 __last1, 1586: _II2 __first2, _II2 __last2, 1586: _Compare __comp) 1586: { 1586: typedef typename iterator_traits<_II1>::iterator_category _Category1; 1586: typedef typename iterator_traits<_II2>::iterator_category _Category2; 1586: typedef std::__lc_rai<_Category1, _Category2> __rai_type; 1586: 1586: __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); 1586: for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); 1586: ++__first1, (void)++__first2) 1586: { 1586: if (__comp(__first1, __first2)) 1586: return true; 1586: if (__comp(__first2, __first1)) 1586: return false; 1586: } 1586: return __first1 == __last1 && __first2 != __last2; 1586: } 1586: 1586: template 1586: struct __lexicographical_compare 1586: { 1586: template 1586: static bool __lc(_II1, _II1, _II2, _II2); 1586: }; 1586: 1586: template 1586: template 1586: bool 1586: __lexicographical_compare<_BoolType>:: 1586: __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 1586: { 1586: return std::__lexicographical_compare_impl(__first1, __last1, 1586: __first2, __last2, 1586: __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: 1586: template<> 1586: struct __lexicographical_compare 1586: { 1586: template 1586: static bool 1586: __lc(const _Tp* __first1, const _Tp* __last1, 1586: const _Up* __first2, const _Up* __last2) 1586: { 1586: const size_t __len1 = __last1 - __first1; 1586: const size_t __len2 = __last2 - __first2; 1586: if (const size_t __len = std::min(__len1, __len2)) 1586: if (int __result = __builtin_memcmp(__first1, __first2, __len)) 1586: return __result < 0; 1586: return __len1 < __len2; 1586: } 1586: }; 1586: 1586: template 1586: inline bool 1586: __lexicographical_compare_aux(_II1 __first1, _II1 __last1, 1586: _II2 __first2, _II2 __last2) 1586: { 1586: typedef typename iterator_traits<_II1>::value_type _ValueType1; 1586: typedef typename iterator_traits<_II2>::value_type _ValueType2; 1586: const bool __simple = 1586: (__is_byte<_ValueType1>::__value && __is_byte<_ValueType2>::__value 1586: && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed 1586: && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed 1586: && __is_pointer<_II1>::__value 1586: && __is_pointer<_II2>::__value); 1586: 1586: return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, 1586: __first2, __last2); 1586: } 1586: 1586: template 1586: _ForwardIterator 1586: __lower_bound(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __val, _Compare __comp) 1586: { 1586: typedef typename iterator_traits<_ForwardIterator>::difference_type 1586: _DistanceType; 1586: 1586: _DistanceType __len = std::distance(__first, __last); 1586: 1586: while (__len > 0) 1586: { 1586: _DistanceType __half = __len >> 1; 1586: _ForwardIterator __middle = __first; 1586: std::advance(__middle, __half); 1586: if (__comp(__middle, __val)) 1586: { 1586: __first = __middle; 1586: ++__first; 1586: __len = __len - __half - 1; 1586: } 1586: else 1586: __len = __half; 1586: } 1586: return __first; 1586: } 1586: # 1002 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: inline _ForwardIterator 1586: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __val) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__lower_bound(__first, __last, __val, 1586: __gnu_cxx::__ops::__iter_less_val()); 1586: } 1586: 1586: 1586: 1586: inline constexpr int 1586: __lg(int __n) 1586: { return (int)sizeof(int) * 8 - 1 - __builtin_clz(__n); } 1586: 1586: inline constexpr unsigned 1586: __lg(unsigned __n) 1586: { return (int)sizeof(int) * 8 - 1 - __builtin_clz(__n); } 1586: 1586: inline constexpr long 1586: __lg(long __n) 1586: { return (int)sizeof(long) * 8 - 1 - __builtin_clzl(__n); } 1586: 1586: inline constexpr unsigned long 1586: __lg(unsigned long __n) 1586: { return (int)sizeof(long) * 8 - 1 - __builtin_clzl(__n); } 1586: 1586: inline constexpr long long 1586: __lg(long long __n) 1586: { return (int)sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } 1586: 1586: inline constexpr unsigned long long 1586: __lg(unsigned long long __n) 1586: { return (int)sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } 1586: 1586: 1586: # 1057 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: inline bool 1586: equal(_II1 __first1, _II1 __last1, _II2 __first2) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__equal_aux(std::__niter_base(__first1), 1586: std::__niter_base(__last1), 1586: std::__niter_base(__first2)); 1586: } 1586: # 1089 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: inline bool 1586: equal(_IIter1 __first1, _IIter1 __last1, 1586: _IIter2 __first2, _BinaryPredicate __binary_pred) 1586: { 1586: 1586: 1586: 1586: ; 1586: 1586: for (; __first1 != __last1; ++__first1, (void)++__first2) 1586: if (!bool(__binary_pred(*__first1, *__first2))) 1586: return false; 1586: return true; 1586: } 1586: 1586: 1586: 1586: template 1586: inline bool 1586: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 1586: { 1586: using _RATag = random_access_iterator_tag; 1586: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 1586: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 1586: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 1586: if (_RAIters()) 1586: { 1586: auto __d1 = std::distance(__first1, __last1); 1586: auto __d2 = std::distance(__first2, __last2); 1586: if (__d1 != __d2) 1586: return false; 1586: return std::equal(__first1, __last1, __first2); 1586: } 1586: 1586: for (; __first1 != __last1 && __first2 != __last2; 1586: ++__first1, (void)++__first2) 1586: if (!(*__first1 == *__first2)) 1586: return false; 1586: return __first1 == __last1 && __first2 == __last2; 1586: } 1586: 1586: 1586: template 1586: inline bool 1586: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, 1586: _BinaryPredicate __binary_pred) 1586: { 1586: using _RATag = random_access_iterator_tag; 1586: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 1586: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 1586: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 1586: if (_RAIters()) 1586: { 1586: auto __d1 = std::distance(__first1, __last1); 1586: auto __d2 = std::distance(__first2, __last2); 1586: if (__d1 != __d2) 1586: return false; 1586: return std::equal(__first1, __last1, __first2, 1586: __binary_pred); 1586: } 1586: 1586: for (; __first1 != __last1 && __first2 != __last2; 1586: ++__first1, (void)++__first2) 1586: if (!bool(__binary_pred(*__first1, *__first2))) 1586: return false; 1586: return __first1 == __last1 && __first2 == __last2; 1586: } 1586: # 1239 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: inline bool 1586: lexicographical_compare(_II1 __first1, _II1 __last1, 1586: _II2 __first2, _II2 __last2) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__lexicographical_compare_aux(std::__niter_base(__first1), 1586: std::__niter_base(__last1), 1586: std::__niter_base(__first2), 1586: std::__niter_base(__last2)); 1586: } 1586: # 1275 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: inline bool 1586: lexicographical_compare(_II1 __first1, _II1 __last1, 1586: _II2 __first2, _II2 __last2, _Compare __comp) 1586: { 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__lexicographical_compare_impl 1586: (__first1, __last1, __first2, __last2, 1586: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: 1586: template 1586: pair<_InputIterator1, _InputIterator2> 1586: __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 1586: { 1586: while (__first1 != __last1 && __binary_pred(__first1, __first2)) 1586: { 1586: ++__first1; 1586: ++__first2; 1586: } 1586: return pair<_InputIterator1, _InputIterator2>(__first1, __first2); 1586: } 1586: # 1318 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: inline pair<_InputIterator1, _InputIterator2> 1586: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__mismatch(__first1, __last1, __first2, 1586: __gnu_cxx::__ops::__iter_equal_to_iter()); 1586: } 1586: # 1351 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: template 1586: inline pair<_InputIterator1, _InputIterator2> 1586: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 1586: { 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__mismatch(__first1, __last1, __first2, 1586: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 1586: } 1586: # 1451 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algobase.h" 3 1586: 1586: 1586: } 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/bits/char_traits.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/postypes.h" 1 3 1586: # 38 "/usr/mipsel-linux-gnu/include/c++/9/bits/postypes.h" 3 1586: 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/bits/postypes.h" 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/cwchar" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/cwchar" 3 1586: 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/cwchar" 3 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/wchar.h" 1 3 1586: # 27 "/usr/mipsel-linux-gnu/include/wchar.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/libc-header-start.h" 1 3 1586: # 28 "/usr/mipsel-linux-gnu/include/wchar.h" 2 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/floatn.h" 1 3 1586: # 23 "/usr/mipsel-linux-gnu/include/bits/floatn.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/long-double.h" 1 3 1586: # 24 "/usr/mipsel-linux-gnu/include/bits/floatn.h" 2 3 1586: # 95 "/usr/mipsel-linux-gnu/include/bits/floatn.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/floatn-common.h" 1 3 1586: # 24 "/usr/mipsel-linux-gnu/include/bits/floatn-common.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/long-double.h" 1 3 1586: # 25 "/usr/mipsel-linux-gnu/include/bits/floatn-common.h" 2 3 1586: # 214 "/usr/mipsel-linux-gnu/include/bits/floatn-common.h" 3 1586: typedef float _Float32; 1586: # 238 "/usr/mipsel-linux-gnu/include/bits/floatn-common.h" 3 1586: typedef long double _Float64; 1586: # 268 "/usr/mipsel-linux-gnu/include/bits/floatn-common.h" 3 1586: typedef double _Float32x; 1586: # 96 "/usr/mipsel-linux-gnu/include/bits/floatn.h" 2 3 1586: # 31 "/usr/mipsel-linux-gnu/include/wchar.h" 2 3 1586: 1586: 1586: 1586: 1586: # 1 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stddef.h" 1 3 4 1586: # 209 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stddef.h" 3 4 1586: typedef unsigned int size_t; 1586: # 36 "/usr/mipsel-linux-gnu/include/wchar.h" 2 3 1586: 1586: 1586: # 1 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stdarg.h" 1 3 4 1586: # 40 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stdarg.h" 3 4 1586: typedef __builtin_va_list __gnuc_va_list; 1586: # 39 "/usr/mipsel-linux-gnu/include/wchar.h" 2 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/wchar.h" 1 3 1586: # 41 "/usr/mipsel-linux-gnu/include/wchar.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/wint_t.h" 1 3 1586: # 20 "/usr/mipsel-linux-gnu/include/bits/types/wint_t.h" 3 1586: typedef unsigned int wint_t; 1586: # 42 "/usr/mipsel-linux-gnu/include/wchar.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/mbstate_t.h" 1 3 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/__mbstate_t.h" 1 3 1586: # 13 "/usr/mipsel-linux-gnu/include/bits/types/__mbstate_t.h" 3 1586: typedef struct 1586: { 1586: int __count; 1586: union 1586: { 1586: unsigned int __wch; 1586: char __wchb[4]; 1586: } __value; 1586: } __mbstate_t; 1586: # 5 "/usr/mipsel-linux-gnu/include/bits/types/mbstate_t.h" 2 3 1586: 1586: typedef __mbstate_t mbstate_t; 1586: # 43 "/usr/mipsel-linux-gnu/include/wchar.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/__FILE.h" 1 3 1586: 1586: 1586: 1586: struct _IO_FILE; 1586: typedef struct _IO_FILE __FILE; 1586: # 44 "/usr/mipsel-linux-gnu/include/wchar.h" 2 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/FILE.h" 1 3 1586: 1586: 1586: 1586: struct _IO_FILE; 1586: 1586: 1586: typedef struct _IO_FILE FILE; 1586: # 47 "/usr/mipsel-linux-gnu/include/wchar.h" 2 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/locale_t.h" 1 3 1586: # 22 "/usr/mipsel-linux-gnu/include/bits/types/locale_t.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/__locale_t.h" 1 3 1586: # 28 "/usr/mipsel-linux-gnu/include/bits/types/__locale_t.h" 3 1586: struct __locale_struct 1586: { 1586: 1586: struct __locale_data *__locales[13]; 1586: 1586: 1586: const unsigned short int *__ctype_b; 1586: const int *__ctype_tolower; 1586: const int *__ctype_toupper; 1586: 1586: 1586: const char *__names[13]; 1586: }; 1586: 1586: typedef struct __locale_struct *__locale_t; 1586: # 23 "/usr/mipsel-linux-gnu/include/bits/types/locale_t.h" 2 3 1586: 1586: typedef __locale_t locale_t; 1586: # 50 "/usr/mipsel-linux-gnu/include/wchar.h" 2 3 1586: # 79 "/usr/mipsel-linux-gnu/include/wchar.h" 3 1586: extern "C" { 1586: 1586: 1586: 1586: struct tm; 1586: 1586: 1586: 1586: extern wchar_t *wcscpy (wchar_t *__restrict __dest, 1586: const wchar_t *__restrict __src) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern wchar_t *wcsncpy (wchar_t *__restrict __dest, 1586: const wchar_t *__restrict __src, size_t __n) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern wchar_t *wcscat (wchar_t *__restrict __dest, 1586: const wchar_t *__restrict __src) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: extern wchar_t *wcsncat (wchar_t *__restrict __dest, 1586: const wchar_t *__restrict __src, size_t __n) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2) 1586: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 1586: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: 1586: extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) throw (); 1586: 1586: 1586: extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2, 1586: size_t __n) throw (); 1586: 1586: 1586: 1586: extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 1586: locale_t __loc) throw (); 1586: 1586: extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 1586: size_t __n, locale_t __loc) throw (); 1586: 1586: 1586: 1586: 1586: extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) throw (); 1586: 1586: 1586: 1586: extern size_t wcsxfrm (wchar_t *__restrict __s1, 1586: const wchar_t *__restrict __s2, size_t __n) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2, 1586: locale_t __loc) throw (); 1586: 1586: 1586: 1586: 1586: extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2, 1586: size_t __n, locale_t __loc) throw (); 1586: 1586: 1586: extern wchar_t *wcsdup (const wchar_t *__s) throw () __attribute__ ((__malloc__)); 1586: 1586: 1586: 1586: 1586: extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc) 1586: throw () __asm ("wcschr") __attribute__ ((__pure__)); 1586: extern "C++" const wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc) 1586: throw () __asm ("wcschr") __attribute__ ((__pure__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc) 1586: throw () __asm ("wcsrchr") __attribute__ ((__pure__)); 1586: extern "C++" const wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc) 1586: throw () __asm ("wcsrchr") __attribute__ ((__pure__)); 1586: # 181 "/usr/mipsel-linux-gnu/include/wchar.h" 3 1586: extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc) 1586: throw () __attribute__ ((__pure__)); 1586: 1586: 1586: 1586: 1586: extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject) 1586: throw () __attribute__ ((__pure__)); 1586: 1586: 1586: extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept) 1586: throw () __attribute__ ((__pure__)); 1586: 1586: 1586: extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, const wchar_t *__accept) 1586: throw () __asm ("wcspbrk") __attribute__ ((__pure__)); 1586: extern "C++" const wchar_t *wcspbrk (const wchar_t *__wcs, 1586: const wchar_t *__accept) 1586: throw () __asm ("wcspbrk") __attribute__ ((__pure__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern "C++" wchar_t *wcsstr (wchar_t *__haystack, const wchar_t *__needle) 1586: throw () __asm ("wcsstr") __attribute__ ((__pure__)); 1586: extern "C++" const wchar_t *wcsstr (const wchar_t *__haystack, 1586: const wchar_t *__needle) 1586: throw () __asm ("wcsstr") __attribute__ ((__pure__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern wchar_t *wcstok (wchar_t *__restrict __s, 1586: const wchar_t *__restrict __delim, 1586: wchar_t **__restrict __ptr) throw (); 1586: 1586: 1586: extern size_t wcslen (const wchar_t *__s) throw () __attribute__ ((__pure__)); 1586: 1586: 1586: 1586: 1586: extern "C++" wchar_t *wcswcs (wchar_t *__haystack, const wchar_t *__needle) 1586: throw () __asm ("wcswcs") __attribute__ ((__pure__)); 1586: extern "C++" const wchar_t *wcswcs (const wchar_t *__haystack, 1586: const wchar_t *__needle) 1586: throw () __asm ("wcswcs") __attribute__ ((__pure__)); 1586: # 240 "/usr/mipsel-linux-gnu/include/wchar.h" 3 1586: extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen) 1586: throw () __attribute__ ((__pure__)); 1586: 1586: 1586: 1586: 1586: 1586: extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n) 1586: throw () __asm ("wmemchr") __attribute__ ((__pure__)); 1586: extern "C++" const wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, 1586: size_t __n) 1586: throw () __asm ("wmemchr") __attribute__ ((__pure__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 1586: throw () __attribute__ ((__pure__)); 1586: 1586: 1586: extern wchar_t *wmemcpy (wchar_t *__restrict __s1, 1586: const wchar_t *__restrict __s2, size_t __n) throw (); 1586: 1586: 1586: 1586: extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) 1586: throw (); 1586: 1586: 1586: extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); 1586: 1586: 1586: 1586: 1586: extern wchar_t *wmempcpy (wchar_t *__restrict __s1, 1586: const wchar_t *__restrict __s2, size_t __n) 1586: throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern wint_t btowc (int __c) throw (); 1586: 1586: 1586: 1586: extern int wctob (wint_t __c) throw (); 1586: 1586: 1586: 1586: extern int mbsinit (const mbstate_t *__ps) throw () __attribute__ ((__pure__)); 1586: 1586: 1586: 1586: extern size_t mbrtowc (wchar_t *__restrict __pwc, 1586: const char *__restrict __s, size_t __n, 1586: mbstate_t *__restrict __p) throw (); 1586: 1586: 1586: extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, 1586: mbstate_t *__restrict __ps) throw (); 1586: 1586: 1586: extern size_t __mbrlen (const char *__restrict __s, size_t __n, 1586: mbstate_t *__restrict __ps) throw (); 1586: extern size_t mbrlen (const char *__restrict __s, size_t __n, 1586: mbstate_t *__restrict __ps) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern wint_t __btowc_alias (int __c) __asm ("btowc"); 1586: extern __inline __attribute__ ((__gnu_inline__)) wint_t 1586: __attribute__ ((__leaf__)) btowc (int __c) throw () 1586: { return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f' 1586: ? (wint_t) __c : __btowc_alias (__c)); } 1586: 1586: extern int __wctob_alias (wint_t __c) __asm ("wctob"); 1586: extern __inline __attribute__ ((__gnu_inline__)) int 1586: __attribute__ ((__leaf__)) wctob (wint_t __wc) throw () 1586: { return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f' 1586: ? (int) __wc : __wctob_alias (__wc)); } 1586: 1586: extern __inline __attribute__ ((__gnu_inline__)) size_t 1586: __attribute__ ((__leaf__)) mbrlen (const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw () 1586: 1586: { return (__ps != __null 1586: ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); } 1586: 1586: 1586: 1586: 1586: extern size_t mbsrtowcs (wchar_t *__restrict __dst, 1586: const char **__restrict __src, size_t __len, 1586: mbstate_t *__restrict __ps) throw (); 1586: 1586: 1586: 1586: extern size_t wcsrtombs (char *__restrict __dst, 1586: const wchar_t **__restrict __src, size_t __len, 1586: mbstate_t *__restrict __ps) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern size_t mbsnrtowcs (wchar_t *__restrict __dst, 1586: const char **__restrict __src, size_t __nmc, 1586: size_t __len, mbstate_t *__restrict __ps) throw (); 1586: 1586: 1586: 1586: extern size_t wcsnrtombs (char *__restrict __dst, 1586: const wchar_t **__restrict __src, 1586: size_t __nwc, size_t __len, 1586: mbstate_t *__restrict __ps) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int wcwidth (wchar_t __c) throw (); 1586: 1586: 1586: 1586: extern int wcswidth (const wchar_t *__s, size_t __n) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern double wcstod (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr) throw (); 1586: 1586: 1586: 1586: extern float wcstof (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr) throw (); 1586: extern long double wcstold (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr) throw (); 1586: # 396 "/usr/mipsel-linux-gnu/include/wchar.h" 3 1586: extern _Float32 wcstof32 (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr) throw (); 1586: 1586: 1586: 1586: extern _Float64 wcstof64 (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr) throw (); 1586: # 411 "/usr/mipsel-linux-gnu/include/wchar.h" 3 1586: extern _Float32x wcstof32x (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr) throw (); 1586: # 428 "/usr/mipsel-linux-gnu/include/wchar.h" 3 1586: extern long int wcstol (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr, int __base) throw (); 1586: 1586: 1586: 1586: extern unsigned long int wcstoul (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr, int __base) 1586: throw (); 1586: 1586: 1586: 1586: 1586: __extension__ 1586: extern long long int wcstoll (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr, int __base) 1586: throw (); 1586: 1586: 1586: 1586: __extension__ 1586: extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr, 1586: int __base) throw (); 1586: 1586: 1586: 1586: 1586: 1586: __extension__ 1586: extern long long int wcstoq (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr, int __base) 1586: throw (); 1586: 1586: 1586: 1586: __extension__ 1586: extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr, 1586: int __base) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern long int wcstol_l (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr, int __base, 1586: locale_t __loc) throw (); 1586: 1586: extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr, 1586: int __base, locale_t __loc) throw (); 1586: 1586: __extension__ 1586: extern long long int wcstoll_l (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr, 1586: int __base, locale_t __loc) throw (); 1586: 1586: __extension__ 1586: extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr, 1586: int __base, locale_t __loc) 1586: throw (); 1586: 1586: extern double wcstod_l (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr, locale_t __loc) 1586: throw (); 1586: 1586: extern float wcstof_l (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr, locale_t __loc) 1586: throw (); 1586: 1586: extern long double wcstold_l (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr, 1586: locale_t __loc) throw (); 1586: # 511 "/usr/mipsel-linux-gnu/include/wchar.h" 3 1586: extern _Float32 wcstof32_l (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr, 1586: locale_t __loc) throw (); 1586: 1586: 1586: 1586: extern _Float64 wcstof64_l (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr, 1586: locale_t __loc) throw (); 1586: # 529 "/usr/mipsel-linux-gnu/include/wchar.h" 3 1586: extern _Float32x wcstof32x_l (const wchar_t *__restrict __nptr, 1586: wchar_t **__restrict __endptr, 1586: locale_t __loc) throw (); 1586: # 551 "/usr/mipsel-linux-gnu/include/wchar.h" 3 1586: extern wchar_t *wcpcpy (wchar_t *__restrict __dest, 1586: const wchar_t *__restrict __src) throw (); 1586: 1586: 1586: 1586: extern wchar_t *wcpncpy (wchar_t *__restrict __dest, 1586: const wchar_t *__restrict __src, size_t __n) 1586: throw (); 1586: # 567 "/usr/mipsel-linux-gnu/include/wchar.h" 3 1586: extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern int fwide (__FILE *__fp, int __mode) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int fwprintf (__FILE *__restrict __stream, 1586: const wchar_t *__restrict __format, ...) 1586: ; 1586: 1586: 1586: 1586: 1586: extern int wprintf (const wchar_t *__restrict __format, ...) 1586: ; 1586: 1586: extern int swprintf (wchar_t *__restrict __s, size_t __n, 1586: const wchar_t *__restrict __format, ...) 1586: throw () ; 1586: 1586: 1586: 1586: 1586: 1586: extern int vfwprintf (__FILE *__restrict __s, 1586: const wchar_t *__restrict __format, 1586: __gnuc_va_list __arg) 1586: ; 1586: 1586: 1586: 1586: 1586: extern int vwprintf (const wchar_t *__restrict __format, 1586: __gnuc_va_list __arg) 1586: ; 1586: 1586: 1586: extern int vswprintf (wchar_t *__restrict __s, size_t __n, 1586: const wchar_t *__restrict __format, 1586: __gnuc_va_list __arg) 1586: throw () ; 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int fwscanf (__FILE *__restrict __stream, 1586: const wchar_t *__restrict __format, ...) 1586: ; 1586: 1586: 1586: 1586: 1586: extern int wscanf (const wchar_t *__restrict __format, ...) 1586: ; 1586: 1586: extern int swscanf (const wchar_t *__restrict __s, 1586: const wchar_t *__restrict __format, ...) 1586: throw () ; 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int fwscanf (__FILE *__restrict __stream, const wchar_t *__restrict __format, ...) __asm__ ("" "__isoc99_fwscanf") 1586: 1586: 1586: ; 1586: extern int wscanf (const wchar_t *__restrict __format, ...) __asm__ ("" "__isoc99_wscanf") 1586: 1586: ; 1586: extern int swscanf (const wchar_t *__restrict __s, const wchar_t *__restrict __format, ...) throw () __asm__ ("" "__isoc99_swscanf") 1586: 1586: 1586: ; 1586: # 671 "/usr/mipsel-linux-gnu/include/wchar.h" 3 1586: extern int vfwscanf (__FILE *__restrict __s, 1586: const wchar_t *__restrict __format, 1586: __gnuc_va_list __arg) 1586: ; 1586: 1586: 1586: 1586: 1586: extern int vwscanf (const wchar_t *__restrict __format, 1586: __gnuc_va_list __arg) 1586: ; 1586: 1586: extern int vswscanf (const wchar_t *__restrict __s, 1586: const wchar_t *__restrict __format, 1586: __gnuc_va_list __arg) 1586: throw () ; 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int vfwscanf (__FILE *__restrict __s, const wchar_t *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfwscanf") 1586: 1586: 1586: ; 1586: extern int vwscanf (const wchar_t *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vwscanf") 1586: 1586: ; 1586: extern int vswscanf (const wchar_t *__restrict __s, const wchar_t *__restrict __format, __gnuc_va_list __arg) throw () __asm__ ("" "__isoc99_vswscanf") 1586: 1586: 1586: ; 1586: # 726 "/usr/mipsel-linux-gnu/include/wchar.h" 3 1586: extern wint_t fgetwc (__FILE *__stream); 1586: extern wint_t getwc (__FILE *__stream); 1586: 1586: 1586: 1586: 1586: 1586: extern wint_t getwchar (void); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern wint_t fputwc (wchar_t __wc, __FILE *__stream); 1586: extern wint_t putwc (wchar_t __wc, __FILE *__stream); 1586: 1586: 1586: 1586: 1586: 1586: extern wint_t putwchar (wchar_t __wc); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, 1586: __FILE *__restrict __stream); 1586: 1586: 1586: 1586: 1586: 1586: extern int fputws (const wchar_t *__restrict __ws, 1586: __FILE *__restrict __stream); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern wint_t ungetwc (wint_t __wc, __FILE *__stream); 1586: # 781 "/usr/mipsel-linux-gnu/include/wchar.h" 3 1586: extern wint_t getwc_unlocked (__FILE *__stream); 1586: extern wint_t getwchar_unlocked (void); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern wint_t fgetwc_unlocked (__FILE *__stream); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); 1586: # 807 "/usr/mipsel-linux-gnu/include/wchar.h" 3 1586: extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); 1586: extern wint_t putwchar_unlocked (wchar_t __wc); 1586: # 817 "/usr/mipsel-linux-gnu/include/wchar.h" 3 1586: extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, 1586: __FILE *__restrict __stream); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int fputws_unlocked (const wchar_t *__restrict __ws, 1586: __FILE *__restrict __stream); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, 1586: const wchar_t *__restrict __format, 1586: const struct tm *__restrict __tp) throw (); 1586: 1586: 1586: 1586: 1586: extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, 1586: const wchar_t *__restrict __format, 1586: const struct tm *__restrict __tp, 1586: locale_t __loc) throw (); 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/wchar2.h" 1 3 1586: # 24 "/usr/mipsel-linux-gnu/include/bits/wchar2.h" 3 1586: extern wchar_t *__wmemcpy_chk (wchar_t *__restrict __s1, 1586: const wchar_t *__restrict __s2, size_t __n, 1586: size_t __ns1) throw (); 1586: extern wchar_t *__wmemcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () __asm__ ("" "wmemcpy") 1586: 1586: 1586: ; 1586: extern wchar_t *__wmemcpy_chk_warn (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmemcpy_chk") 1586: 1586: 1586: 1586: __attribute__((__warning__ ("wmemcpy called with length bigger than size of destination " "buffer"))) 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 1586: __attribute__ ((__leaf__)) wmemcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () 1586: 1586: { 1586: if (__builtin_object_size (__s1, 0) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__n)) 1586: return __wmemcpy_chk (__s1, __s2, __n, 1586: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 1586: 1586: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 1586: return __wmemcpy_chk_warn (__s1, __s2, __n, 1586: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 1586: } 1586: return __wmemcpy_alias (__s1, __s2, __n); 1586: } 1586: 1586: 1586: extern wchar_t *__wmemmove_chk (wchar_t *__s1, const wchar_t *__s2, 1586: size_t __n, size_t __ns1) throw (); 1586: extern wchar_t *__wmemmove_alias (wchar_t *__s1, const wchar_t *__s2, size_t __n) throw () __asm__ ("" "wmemmove") 1586: 1586: ; 1586: extern wchar_t *__wmemmove_chk_warn (wchar_t *__s1, const wchar_t *__s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmemmove_chk") 1586: 1586: 1586: __attribute__((__warning__ ("wmemmove called with length bigger than size of destination " "buffer"))) 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 1586: __attribute__ ((__leaf__)) wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) throw () 1586: { 1586: if (__builtin_object_size (__s1, 0) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__n)) 1586: return __wmemmove_chk (__s1, __s2, __n, 1586: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 1586: 1586: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 1586: return __wmemmove_chk_warn (__s1, __s2, __n, 1586: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 1586: } 1586: return __wmemmove_alias (__s1, __s2, __n); 1586: } 1586: 1586: 1586: 1586: extern wchar_t *__wmempcpy_chk (wchar_t *__restrict __s1, 1586: const wchar_t *__restrict __s2, size_t __n, 1586: size_t __ns1) throw (); 1586: extern wchar_t *__wmempcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () __asm__ ("" "wmempcpy") 1586: 1586: 1586: ; 1586: extern wchar_t *__wmempcpy_chk_warn (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmempcpy_chk") 1586: 1586: 1586: 1586: __attribute__((__warning__ ("wmempcpy called with length bigger than size of destination " "buffer"))) 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 1586: __attribute__ ((__leaf__)) wmempcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () 1586: 1586: { 1586: if (__builtin_object_size (__s1, 0) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__n)) 1586: return __wmempcpy_chk (__s1, __s2, __n, 1586: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 1586: 1586: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 1586: return __wmempcpy_chk_warn (__s1, __s2, __n, 1586: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 1586: } 1586: return __wmempcpy_alias (__s1, __s2, __n); 1586: } 1586: 1586: 1586: 1586: extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n, 1586: size_t __ns) throw (); 1586: extern wchar_t *__wmemset_alias (wchar_t *__s, wchar_t __c, size_t __n) throw () __asm__ ("" "wmemset") 1586: ; 1586: extern wchar_t *__wmemset_chk_warn (wchar_t *__s, wchar_t __c, size_t __n, size_t __ns) throw () __asm__ ("" "__wmemset_chk") 1586: 1586: 1586: __attribute__((__warning__ ("wmemset called with length bigger than size of destination " "buffer"))) 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 1586: __attribute__ ((__leaf__)) wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw () 1586: { 1586: if (__builtin_object_size (__s, 0) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__n)) 1586: return __wmemset_chk (__s, __c, __n, __builtin_object_size (__s, 0) / sizeof (wchar_t)); 1586: 1586: if (__n > __builtin_object_size (__s, 0) / sizeof (wchar_t)) 1586: return __wmemset_chk_warn (__s, __c, __n, 1586: __builtin_object_size (__s, 0) / sizeof (wchar_t)); 1586: } 1586: return __wmemset_alias (__s, __c, __n); 1586: } 1586: 1586: 1586: extern wchar_t *__wcscpy_chk (wchar_t *__restrict __dest, 1586: const wchar_t *__restrict __src, 1586: size_t __n) throw (); 1586: extern wchar_t *__wcscpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcscpy") 1586: 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 1586: __attribute__ ((__leaf__)) wcscpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 1586: { 1586: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 1586: return __wcscpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 1586: return __wcscpy_alias (__dest, __src); 1586: } 1586: 1586: 1586: extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest, 1586: const wchar_t *__restrict __src, 1586: size_t __destlen) throw (); 1586: extern wchar_t *__wcpcpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcpcpy") 1586: 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 1586: __attribute__ ((__leaf__)) wcpcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 1586: { 1586: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 1586: return __wcpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 1586: return __wcpcpy_alias (__dest, __src); 1586: } 1586: 1586: 1586: extern wchar_t *__wcsncpy_chk (wchar_t *__restrict __dest, 1586: const wchar_t *__restrict __src, size_t __n, 1586: size_t __destlen) throw (); 1586: extern wchar_t *__wcsncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcsncpy") 1586: 1586: 1586: ; 1586: extern wchar_t *__wcsncpy_chk_warn (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n, size_t __destlen) throw () __asm__ ("" "__wcsncpy_chk") 1586: 1586: 1586: 1586: __attribute__((__warning__ ("wcsncpy called with length bigger than size of destination " "buffer"))) 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 1586: __attribute__ ((__leaf__)) wcsncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 1586: 1586: { 1586: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__n)) 1586: return __wcsncpy_chk (__dest, __src, __n, 1586: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 1586: if (__n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) 1586: return __wcsncpy_chk_warn (__dest, __src, __n, 1586: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 1586: } 1586: return __wcsncpy_alias (__dest, __src, __n); 1586: } 1586: 1586: 1586: extern wchar_t *__wcpncpy_chk (wchar_t *__restrict __dest, 1586: const wchar_t *__restrict __src, size_t __n, 1586: size_t __destlen) throw (); 1586: extern wchar_t *__wcpncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcpncpy") 1586: 1586: 1586: ; 1586: extern wchar_t *__wcpncpy_chk_warn (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n, size_t __destlen) throw () __asm__ ("" "__wcpncpy_chk") 1586: 1586: 1586: 1586: __attribute__((__warning__ ("wcpncpy called with length bigger than size of destination " "buffer"))) 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 1586: __attribute__ ((__leaf__)) wcpncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 1586: 1586: { 1586: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__n)) 1586: return __wcpncpy_chk (__dest, __src, __n, 1586: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 1586: if (__n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) 1586: return __wcpncpy_chk_warn (__dest, __src, __n, 1586: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 1586: } 1586: return __wcpncpy_alias (__dest, __src, __n); 1586: } 1586: 1586: 1586: extern wchar_t *__wcscat_chk (wchar_t *__restrict __dest, 1586: const wchar_t *__restrict __src, 1586: size_t __destlen) throw (); 1586: extern wchar_t *__wcscat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcscat") 1586: 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 1586: __attribute__ ((__leaf__)) wcscat (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 1586: { 1586: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 1586: return __wcscat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 1586: return __wcscat_alias (__dest, __src); 1586: } 1586: 1586: 1586: extern wchar_t *__wcsncat_chk (wchar_t *__restrict __dest, 1586: const wchar_t *__restrict __src, 1586: size_t __n, size_t __destlen) throw (); 1586: extern wchar_t *__wcsncat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcsncat") 1586: 1586: 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 1586: __attribute__ ((__leaf__)) wcsncat (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 1586: 1586: { 1586: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 1586: return __wcsncat_chk (__dest, __src, __n, 1586: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 1586: return __wcsncat_alias (__dest, __src, __n); 1586: } 1586: 1586: 1586: extern int __swprintf_chk (wchar_t *__restrict __s, size_t __n, 1586: int __flag, size_t __s_len, 1586: const wchar_t *__restrict __format, ...) 1586: throw () ; 1586: 1586: extern int __swprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) throw () __asm__ ("" "swprintf") 1586: 1586: 1586: ; 1586: 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: __attribute__ ((__leaf__)) swprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) throw () 1586: 1586: { 1586: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 || 2 > 1) 1586: return __swprintf_chk (__s, __n, 2 - 1, 1586: __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 1586: __fmt, __builtin_va_arg_pack ()); 1586: return __swprintf_alias (__s, __n, __fmt, __builtin_va_arg_pack ()); 1586: } 1586: # 303 "/usr/mipsel-linux-gnu/include/bits/wchar2.h" 3 1586: extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n, 1586: int __flag, size_t __s_len, 1586: const wchar_t *__restrict __format, 1586: __gnuc_va_list __arg) 1586: throw () ; 1586: 1586: extern int __vswprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) throw () __asm__ ("" "vswprintf") 1586: 1586: 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: __attribute__ ((__leaf__)) vswprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) throw () 1586: 1586: { 1586: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 || 2 > 1) 1586: return __vswprintf_chk (__s, __n, 2 - 1, 1586: __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), __fmt, __ap); 1586: return __vswprintf_alias (__s, __n, __fmt, __ap); 1586: } 1586: 1586: 1586: 1586: 1586: extern int __fwprintf_chk (__FILE *__restrict __stream, int __flag, 1586: const wchar_t *__restrict __format, ...); 1586: extern int __wprintf_chk (int __flag, const wchar_t *__restrict __format, 1586: ...); 1586: extern int __vfwprintf_chk (__FILE *__restrict __stream, int __flag, 1586: const wchar_t *__restrict __format, 1586: __gnuc_va_list __ap); 1586: extern int __vwprintf_chk (int __flag, const wchar_t *__restrict __format, 1586: __gnuc_va_list __ap); 1586: 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: wprintf (const wchar_t *__restrict __fmt, ...) 1586: { 1586: return __wprintf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 1586: } 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: fwprintf (__FILE *__restrict __stream, const wchar_t *__restrict __fmt, ...) 1586: { 1586: return __fwprintf_chk (__stream, 2 - 1, __fmt, 1586: __builtin_va_arg_pack ()); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: vwprintf (const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 1586: { 1586: return __vwprintf_chk (2 - 1, __fmt, __ap); 1586: } 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: vfwprintf (__FILE *__restrict __stream, 1586: const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 1586: { 1586: return __vfwprintf_chk (__stream, 2 - 1, __fmt, __ap); 1586: } 1586: 1586: 1586: 1586: extern wchar_t *__fgetws_chk (wchar_t *__restrict __s, size_t __size, int __n, 1586: __FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 1586: extern wchar_t *__fgetws_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws") 1586: 1586: __attribute__ ((__warn_unused_result__)); 1586: extern wchar_t *__fgetws_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_chk") 1586: 1586: 1586: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws called with bigger size than length " "of destination buffer"))) 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 1586: fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) 1586: { 1586: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__n) || __n <= 0) 1586: return __fgetws_chk (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 1586: __n, __stream); 1586: 1586: if ((size_t) __n > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t)) 1586: return __fgetws_chk_warn (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 1586: __n, __stream); 1586: } 1586: return __fgetws_alias (__s, __n, __stream); 1586: } 1586: 1586: 1586: extern wchar_t *__fgetws_unlocked_chk (wchar_t *__restrict __s, size_t __size, 1586: int __n, __FILE *__restrict __stream) 1586: __attribute__ ((__warn_unused_result__)); 1586: extern wchar_t *__fgetws_unlocked_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws_unlocked") 1586: 1586: 1586: __attribute__ ((__warn_unused_result__)); 1586: extern wchar_t *__fgetws_unlocked_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_unlocked_chk") 1586: 1586: 1586: 1586: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws_unlocked called with bigger size than length " "of destination buffer"))) 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 1586: fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) 1586: { 1586: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__n) || __n <= 0) 1586: return __fgetws_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 1586: __n, __stream); 1586: 1586: if ((size_t) __n > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t)) 1586: return __fgetws_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 1586: __n, __stream); 1586: } 1586: return __fgetws_unlocked_alias (__s, __n, __stream); 1586: } 1586: 1586: 1586: 1586: extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar, 1586: mbstate_t *__restrict __p, 1586: size_t __buflen) throw () __attribute__ ((__warn_unused_result__)); 1586: extern size_t __wcrtomb_alias (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcrtomb") 1586: 1586: __attribute__ ((__warn_unused_result__)); 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 1586: __attribute__ ((__leaf__)) wcrtomb (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) throw () 1586: 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) 1586: return __wcrtomb_chk (__s, __wchar, __ps, __builtin_object_size (__s, 2 > 1)); 1586: return __wcrtomb_alias (__s, __wchar, __ps); 1586: } 1586: 1586: 1586: extern size_t __mbsrtowcs_chk (wchar_t *__restrict __dst, 1586: const char **__restrict __src, 1586: size_t __len, mbstate_t *__restrict __ps, 1586: size_t __dstlen) throw (); 1586: extern size_t __mbsrtowcs_alias (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "mbsrtowcs") 1586: 1586: 1586: 1586: ; 1586: extern size_t __mbsrtowcs_chk_warn (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) throw () __asm__ ("" "__mbsrtowcs_chk") 1586: 1586: 1586: 1586: 1586: __attribute__((__warning__ ("mbsrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 1586: __attribute__ ((__leaf__)) mbsrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () 1586: 1586: { 1586: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__len)) 1586: return __mbsrtowcs_chk (__dst, __src, __len, __ps, 1586: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 1586: 1586: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 1586: return __mbsrtowcs_chk_warn (__dst, __src, __len, __ps, 1586: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 1586: } 1586: return __mbsrtowcs_alias (__dst, __src, __len, __ps); 1586: } 1586: 1586: 1586: extern size_t __wcsrtombs_chk (char *__restrict __dst, 1586: const wchar_t **__restrict __src, 1586: size_t __len, mbstate_t *__restrict __ps, 1586: size_t __dstlen) throw (); 1586: extern size_t __wcsrtombs_alias (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcsrtombs") 1586: 1586: 1586: 1586: ; 1586: extern size_t __wcsrtombs_chk_warn (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) throw () __asm__ ("" "__wcsrtombs_chk") 1586: 1586: 1586: 1586: 1586: __attribute__((__warning__ ("wcsrtombs called with dst buffer smaller than len"))); 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 1586: __attribute__ ((__leaf__)) wcsrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () 1586: 1586: { 1586: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__len)) 1586: return __wcsrtombs_chk (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)); 1586: 1586: if (__len > __builtin_object_size (__dst, 2 > 1)) 1586: return __wcsrtombs_chk_warn (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)); 1586: } 1586: return __wcsrtombs_alias (__dst, __src, __len, __ps); 1586: } 1586: 1586: 1586: 1586: extern size_t __mbsnrtowcs_chk (wchar_t *__restrict __dst, 1586: const char **__restrict __src, size_t __nmc, 1586: size_t __len, mbstate_t *__restrict __ps, 1586: size_t __dstlen) throw (); 1586: extern size_t __mbsnrtowcs_alias (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "mbsnrtowcs") 1586: 1586: 1586: 1586: ; 1586: 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) throw () __asm__ ("" "__mbsnrtowcs_chk") 1586: 1586: 1586: 1586: 1586: __attribute__((__warning__ ("mbsnrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 1586: __attribute__ ((__leaf__)) mbsnrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw () 1586: 1586: { 1586: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__len)) 1586: return __mbsnrtowcs_chk (__dst, __src, __nmc, __len, __ps, 1586: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 1586: 1586: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 1586: return __mbsnrtowcs_chk_warn (__dst, __src, __nmc, __len, __ps, 1586: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 1586: } 1586: return __mbsnrtowcs_alias (__dst, __src, __nmc, __len, __ps); 1586: } 1586: 1586: 1586: extern size_t __wcsnrtombs_chk (char *__restrict __dst, 1586: const wchar_t **__restrict __src, 1586: size_t __nwc, size_t __len, 1586: mbstate_t *__restrict __ps, size_t __dstlen) 1586: throw (); 1586: extern size_t __wcsnrtombs_alias (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcsnrtombs") 1586: 1586: 1586: 1586: ; 1586: 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) throw () __asm__ ("" "__wcsnrtombs_chk") 1586: 1586: 1586: 1586: 1586: 1586: __attribute__((__warning__ ("wcsnrtombs called with dst buffer smaller than len"))); 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 1586: __attribute__ ((__leaf__)) wcsnrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw () 1586: 1586: { 1586: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__len)) 1586: return __wcsnrtombs_chk (__dst, __src, __nwc, __len, __ps, 1586: __builtin_object_size (__dst, 2 > 1)); 1586: 1586: if (__len > __builtin_object_size (__dst, 2 > 1)) 1586: return __wcsnrtombs_chk_warn (__dst, __src, __nwc, __len, __ps, 1586: __builtin_object_size (__dst, 2 > 1)); 1586: } 1586: return __wcsnrtombs_alias (__dst, __src, __nwc, __len, __ps); 1586: } 1586: # 850 "/usr/mipsel-linux-gnu/include/wchar.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: } 1586: # 45 "/usr/mipsel-linux-gnu/include/c++/9/cwchar" 2 3 1586: # 62 "/usr/mipsel-linux-gnu/include/c++/9/cwchar" 3 1586: namespace std 1586: { 1586: using ::mbstate_t; 1586: } 1586: # 135 "/usr/mipsel-linux-gnu/include/c++/9/cwchar" 3 1586: extern "C++" 1586: { 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: using ::wint_t; 1586: 1586: using ::btowc; 1586: using ::fgetwc; 1586: using ::fgetws; 1586: using ::fputwc; 1586: using ::fputws; 1586: using ::fwide; 1586: using ::fwprintf; 1586: using ::fwscanf; 1586: using ::getwc; 1586: using ::getwchar; 1586: using ::mbrlen; 1586: using ::mbrtowc; 1586: using ::mbsinit; 1586: using ::mbsrtowcs; 1586: using ::putwc; 1586: using ::putwchar; 1586: 1586: using ::swprintf; 1586: 1586: using ::swscanf; 1586: using ::ungetwc; 1586: using ::vfwprintf; 1586: 1586: using ::vfwscanf; 1586: 1586: 1586: using ::vswprintf; 1586: 1586: 1586: using ::vswscanf; 1586: 1586: using ::vwprintf; 1586: 1586: using ::vwscanf; 1586: 1586: using ::wcrtomb; 1586: using ::wcscat; 1586: using ::wcscmp; 1586: using ::wcscoll; 1586: using ::wcscpy; 1586: using ::wcscspn; 1586: using ::wcsftime; 1586: using ::wcslen; 1586: using ::wcsncat; 1586: using ::wcsncmp; 1586: using ::wcsncpy; 1586: using ::wcsrtombs; 1586: using ::wcsspn; 1586: using ::wcstod; 1586: 1586: using ::wcstof; 1586: 1586: using ::wcstok; 1586: using ::wcstol; 1586: using ::wcstoul; 1586: using ::wcsxfrm; 1586: using ::wctob; 1586: using ::wmemcmp; 1586: using ::wmemcpy; 1586: using ::wmemmove; 1586: using ::wmemset; 1586: using ::wprintf; 1586: using ::wscanf; 1586: using ::wcschr; 1586: using ::wcspbrk; 1586: using ::wcsrchr; 1586: using ::wcsstr; 1586: using ::wmemchr; 1586: # 234 "/usr/mipsel-linux-gnu/include/c++/9/cwchar" 3 1586: 1586: } 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: namespace __gnu_cxx 1586: { 1586: 1586: 1586: 1586: 1586: 1586: using ::wcstold; 1586: # 260 "/usr/mipsel-linux-gnu/include/c++/9/cwchar" 3 1586: using ::wcstoll; 1586: using ::wcstoull; 1586: 1586: } 1586: 1586: namespace std 1586: { 1586: using ::__gnu_cxx::wcstold; 1586: using ::__gnu_cxx::wcstoll; 1586: using ::__gnu_cxx::wcstoull; 1586: } 1586: # 280 "/usr/mipsel-linux-gnu/include/c++/9/cwchar" 3 1586: namespace std 1586: { 1586: 1586: using std::wcstof; 1586: 1586: 1586: using std::vfwscanf; 1586: 1586: 1586: using std::vswscanf; 1586: 1586: 1586: using std::vwscanf; 1586: 1586: 1586: 1586: using std::wcstold; 1586: using std::wcstoll; 1586: using std::wcstoull; 1586: 1586: } 1586: # 41 "/usr/mipsel-linux-gnu/include/c++/9/bits/postypes.h" 2 3 1586: # 68 "/usr/mipsel-linux-gnu/include/c++/9/bits/postypes.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 90 "/usr/mipsel-linux-gnu/include/c++/9/bits/postypes.h" 3 1586: typedef long long streamoff; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef ptrdiff_t streamsize; 1586: # 111 "/usr/mipsel-linux-gnu/include/c++/9/bits/postypes.h" 3 1586: template 1586: class fpos 1586: { 1586: private: 1586: streamoff _M_off; 1586: _StateT _M_state; 1586: 1586: public: 1586: 1586: 1586: 1586: 1586: fpos() 1586: : _M_off(0), _M_state() { } 1586: # 133 "/usr/mipsel-linux-gnu/include/c++/9/bits/postypes.h" 3 1586: fpos(streamoff __off) 1586: : _M_off(__off), _M_state() { } 1586: 1586: 1586: fpos(const fpos&) = default; 1586: fpos& operator=(const fpos&) = default; 1586: ~fpos() = default; 1586: 1586: 1586: 1586: operator streamoff() const { return _M_off; } 1586: 1586: 1586: void 1586: state(_StateT __st) 1586: { _M_state = __st; } 1586: 1586: 1586: _StateT 1586: state() const 1586: { return _M_state; } 1586: 1586: 1586: 1586: 1586: 1586: fpos& 1586: operator+=(streamoff __off) 1586: { 1586: _M_off += __off; 1586: return *this; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: fpos& 1586: operator-=(streamoff __off) 1586: { 1586: _M_off -= __off; 1586: return *this; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: fpos 1586: operator+(streamoff __off) const 1586: { 1586: fpos __pos(*this); 1586: __pos += __off; 1586: return __pos; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: fpos 1586: operator-(streamoff __off) const 1586: { 1586: fpos __pos(*this); 1586: __pos -= __off; 1586: return __pos; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: streamoff 1586: operator-(const fpos& __other) const 1586: { return _M_off - __other._M_off; } 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline bool 1586: operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 1586: { return streamoff(__lhs) == streamoff(__rhs); } 1586: 1586: template 1586: inline bool 1586: operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 1586: { return streamoff(__lhs) != streamoff(__rhs); } 1586: 1586: 1586: 1586: 1586: 1586: typedef fpos streampos; 1586: 1586: typedef fpos wstreampos; 1586: # 245 "/usr/mipsel-linux-gnu/include/c++/9/bits/postypes.h" 3 1586: typedef fpos u16streampos; 1586: 1586: typedef fpos u32streampos; 1586: 1586: 1586: 1586: } 1586: # 41 "/usr/mipsel-linux-gnu/include/c++/9/bits/char_traits.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/cwchar" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/cwchar" 3 1586: 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/cwchar" 3 1586: # 42 "/usr/mipsel-linux-gnu/include/c++/9/bits/char_traits.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 61 "/usr/mipsel-linux-gnu/include/c++/9/bits/char_traits.h" 3 1586: template 1586: struct _Char_types 1586: { 1586: typedef unsigned long int_type; 1586: typedef std::streampos pos_type; 1586: typedef std::streamoff off_type; 1586: typedef std::mbstate_t state_type; 1586: }; 1586: # 86 "/usr/mipsel-linux-gnu/include/c++/9/bits/char_traits.h" 3 1586: template 1586: struct char_traits 1586: { 1586: typedef _CharT char_type; 1586: typedef typename _Char_types<_CharT>::int_type int_type; 1586: typedef typename _Char_types<_CharT>::pos_type pos_type; 1586: typedef typename _Char_types<_CharT>::off_type off_type; 1586: typedef typename _Char_types<_CharT>::state_type state_type; 1586: 1586: static void 1586: assign(char_type& __c1, const char_type& __c2) 1586: { __c1 = __c2; } 1586: 1586: static constexpr bool 1586: eq(const char_type& __c1, const char_type& __c2) 1586: { return __c1 == __c2; } 1586: 1586: static constexpr bool 1586: lt(const char_type& __c1, const char_type& __c2) 1586: { return __c1 < __c2; } 1586: 1586: static int 1586: compare(const char_type* __s1, const char_type* __s2, std::size_t __n); 1586: 1586: static std::size_t 1586: length(const char_type* __s); 1586: 1586: static const char_type* 1586: find(const char_type* __s, std::size_t __n, const char_type& __a); 1586: 1586: static char_type* 1586: move(char_type* __s1, const char_type* __s2, std::size_t __n); 1586: 1586: static char_type* 1586: copy(char_type* __s1, const char_type* __s2, std::size_t __n); 1586: 1586: static char_type* 1586: assign(char_type* __s, std::size_t __n, char_type __a); 1586: 1586: static constexpr char_type 1586: to_char_type(const int_type& __c) 1586: { return static_cast(__c); } 1586: 1586: static constexpr int_type 1586: to_int_type(const char_type& __c) 1586: { return static_cast(__c); } 1586: 1586: static constexpr bool 1586: eq_int_type(const int_type& __c1, const int_type& __c2) 1586: { return __c1 == __c2; } 1586: 1586: static constexpr int_type 1586: eof() 1586: { return static_cast(-1); } 1586: 1586: static constexpr int_type 1586: not_eof(const int_type& __c) 1586: { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); } 1586: }; 1586: 1586: template 1586: int 1586: char_traits<_CharT>:: 1586: compare(const char_type* __s1, const char_type* __s2, std::size_t __n) 1586: { 1586: for (std::size_t __i = 0; __i < __n; ++__i) 1586: if (lt(__s1[__i], __s2[__i])) 1586: return -1; 1586: else if (lt(__s2[__i], __s1[__i])) 1586: return 1; 1586: return 0; 1586: } 1586: 1586: template 1586: std::size_t 1586: char_traits<_CharT>:: 1586: length(const char_type* __p) 1586: { 1586: std::size_t __i = 0; 1586: while (!eq(__p[__i], char_type())) 1586: ++__i; 1586: return __i; 1586: } 1586: 1586: template 1586: const typename char_traits<_CharT>::char_type* 1586: char_traits<_CharT>:: 1586: find(const char_type* __s, std::size_t __n, const char_type& __a) 1586: { 1586: for (std::size_t __i = 0; __i < __n; ++__i) 1586: if (eq(__s[__i], __a)) 1586: return __s + __i; 1586: return 0; 1586: } 1586: 1586: template 1586: typename char_traits<_CharT>::char_type* 1586: char_traits<_CharT>:: 1586: move(char_type* __s1, const char_type* __s2, std::size_t __n) 1586: { 1586: if (__n == 0) 1586: return __s1; 1586: return static_cast<_CharT*>(__builtin_memmove(__s1, __s2, 1586: __n * sizeof(char_type))); 1586: } 1586: 1586: template 1586: typename char_traits<_CharT>::char_type* 1586: char_traits<_CharT>:: 1586: copy(char_type* __s1, const char_type* __s2, std::size_t __n) 1586: { 1586: 1586: std::copy(__s2, __s2 + __n, __s1); 1586: return __s1; 1586: } 1586: 1586: template 1586: typename char_traits<_CharT>::char_type* 1586: char_traits<_CharT>:: 1586: assign(char_type* __s, std::size_t __n, char_type __a) 1586: { 1586: 1586: std::fill_n(__s, __n, __a); 1586: return __s; 1586: } 1586: 1586: 1586: } 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 283 "/usr/mipsel-linux-gnu/include/c++/9/bits/char_traits.h" 3 1586: template 1586: struct char_traits : public __gnu_cxx::char_traits<_CharT> 1586: { }; 1586: 1586: 1586: 1586: template<> 1586: struct char_traits 1586: { 1586: typedef char char_type; 1586: typedef int int_type; 1586: typedef streampos pos_type; 1586: typedef streamoff off_type; 1586: typedef mbstate_t state_type; 1586: 1586: static void 1586: assign(char_type& __c1, const char_type& __c2) noexcept 1586: { __c1 = __c2; } 1586: 1586: static constexpr bool 1586: eq(const char_type& __c1, const char_type& __c2) noexcept 1586: { return __c1 == __c2; } 1586: 1586: static constexpr bool 1586: lt(const char_type& __c1, const char_type& __c2) noexcept 1586: { 1586: 1586: return (static_cast(__c1) 1586: < static_cast(__c2)); 1586: } 1586: 1586: static int 1586: compare(const char_type* __s1, const char_type* __s2, size_t __n) 1586: { 1586: if (__n == 0) 1586: return 0; 1586: 1586: 1586: 1586: 1586: 1586: 1586: return __builtin_memcmp(__s1, __s2, __n); 1586: } 1586: 1586: static size_t 1586: length(const char_type* __s) 1586: { 1586: 1586: 1586: 1586: 1586: return __builtin_strlen(__s); 1586: } 1586: 1586: static const char_type* 1586: find(const char_type* __s, size_t __n, const char_type& __a) 1586: { 1586: if (__n == 0) 1586: return 0; 1586: 1586: 1586: 1586: 1586: 1586: 1586: return static_cast(__builtin_memchr(__s, __a, __n)); 1586: } 1586: 1586: static char_type* 1586: move(char_type* __s1, const char_type* __s2, size_t __n) 1586: { 1586: if (__n == 0) 1586: return __s1; 1586: return static_cast(__builtin_memmove(__s1, __s2, __n)); 1586: } 1586: 1586: static char_type* 1586: copy(char_type* __s1, const char_type* __s2, size_t __n) 1586: { 1586: if (__n == 0) 1586: return __s1; 1586: return static_cast(__builtin_memcpy(__s1, __s2, __n)); 1586: } 1586: 1586: static char_type* 1586: assign(char_type* __s, size_t __n, char_type __a) 1586: { 1586: if (__n == 0) 1586: return __s; 1586: return static_cast(__builtin_memset(__s, __a, __n)); 1586: } 1586: 1586: static constexpr char_type 1586: to_char_type(const int_type& __c) noexcept 1586: { return static_cast(__c); } 1586: 1586: 1586: 1586: static constexpr int_type 1586: to_int_type(const char_type& __c) noexcept 1586: { return static_cast(static_cast(__c)); } 1586: 1586: static constexpr bool 1586: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 1586: { return __c1 == __c2; } 1586: 1586: static constexpr int_type 1586: eof() noexcept 1586: { return static_cast(-1); } 1586: 1586: static constexpr int_type 1586: not_eof(const int_type& __c) noexcept 1586: { return (__c == eof()) ? 0 : __c; } 1586: }; 1586: 1586: 1586: 1586: 1586: template<> 1586: struct char_traits 1586: { 1586: typedef wchar_t char_type; 1586: typedef wint_t int_type; 1586: typedef streamoff off_type; 1586: typedef wstreampos pos_type; 1586: typedef mbstate_t state_type; 1586: 1586: static void 1586: assign(char_type& __c1, const char_type& __c2) noexcept 1586: { __c1 = __c2; } 1586: 1586: static constexpr bool 1586: eq(const char_type& __c1, const char_type& __c2) noexcept 1586: { return __c1 == __c2; } 1586: 1586: static constexpr bool 1586: lt(const char_type& __c1, const char_type& __c2) noexcept 1586: { return __c1 < __c2; } 1586: 1586: static int 1586: compare(const char_type* __s1, const char_type* __s2, size_t __n) 1586: { 1586: if (__n == 0) 1586: return 0; 1586: 1586: 1586: 1586: 1586: 1586: 1586: return wmemcmp(__s1, __s2, __n); 1586: } 1586: 1586: static size_t 1586: length(const char_type* __s) 1586: { 1586: 1586: 1586: 1586: 1586: return wcslen(__s); 1586: } 1586: 1586: static const char_type* 1586: find(const char_type* __s, size_t __n, const char_type& __a) 1586: { 1586: if (__n == 0) 1586: return 0; 1586: 1586: 1586: 1586: 1586: 1586: 1586: return wmemchr(__s, __a, __n); 1586: } 1586: 1586: static char_type* 1586: move(char_type* __s1, const char_type* __s2, size_t __n) 1586: { 1586: if (__n == 0) 1586: return __s1; 1586: return wmemmove(__s1, __s2, __n); 1586: } 1586: 1586: static char_type* 1586: copy(char_type* __s1, const char_type* __s2, size_t __n) 1586: { 1586: if (__n == 0) 1586: return __s1; 1586: return wmemcpy(__s1, __s2, __n); 1586: } 1586: 1586: static char_type* 1586: assign(char_type* __s, size_t __n, char_type __a) 1586: { 1586: if (__n == 0) 1586: return __s; 1586: return wmemset(__s, __a, __n); 1586: } 1586: 1586: static constexpr char_type 1586: to_char_type(const int_type& __c) noexcept 1586: { return char_type(__c); } 1586: 1586: static constexpr int_type 1586: to_int_type(const char_type& __c) noexcept 1586: { return int_type(__c); } 1586: 1586: static constexpr bool 1586: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 1586: { return __c1 == __c2; } 1586: 1586: static constexpr int_type 1586: eof() noexcept 1586: { return static_cast((0xffffffffu)); } 1586: 1586: static constexpr int_type 1586: not_eof(const int_type& __c) noexcept 1586: { return eq_int_type(__c, eof()) ? 0 : __c; } 1586: }; 1586: # 616 "/usr/mipsel-linux-gnu/include/c++/9/bits/char_traits.h" 3 1586: 1586: } 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/cstdint" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/c++/9/cstdint" 3 1586: 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/cstdint" 3 1586: # 41 "/usr/mipsel-linux-gnu/include/c++/9/cstdint" 3 1586: # 1 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stdint.h" 1 3 4 1586: # 9 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stdint.h" 3 4 1586: # 1 "/usr/mipsel-linux-gnu/include/stdint.h" 1 3 4 1586: # 26 "/usr/mipsel-linux-gnu/include/stdint.h" 3 4 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/libc-header-start.h" 1 3 4 1586: # 27 "/usr/mipsel-linux-gnu/include/stdint.h" 2 3 4 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types.h" 1 3 4 1586: # 27 "/usr/mipsel-linux-gnu/include/bits/types.h" 3 4 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/wordsize.h" 1 3 4 1586: # 28 "/usr/mipsel-linux-gnu/include/bits/types.h" 2 3 4 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/timesize.h" 1 3 4 1586: # 19 "/usr/mipsel-linux-gnu/include/bits/timesize.h" 3 4 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/wordsize.h" 1 3 4 1586: # 20 "/usr/mipsel-linux-gnu/include/bits/timesize.h" 2 3 4 1586: # 29 "/usr/mipsel-linux-gnu/include/bits/types.h" 2 3 4 1586: 1586: 1586: typedef unsigned char __u_char; 1586: typedef unsigned short int __u_short; 1586: typedef unsigned int __u_int; 1586: typedef unsigned long int __u_long; 1586: 1586: 1586: typedef signed char __int8_t; 1586: typedef unsigned char __uint8_t; 1586: typedef signed short int __int16_t; 1586: typedef unsigned short int __uint16_t; 1586: typedef signed int __int32_t; 1586: typedef unsigned int __uint32_t; 1586: 1586: 1586: 1586: 1586: __extension__ typedef signed long long int __int64_t; 1586: __extension__ typedef unsigned long long int __uint64_t; 1586: 1586: 1586: 1586: typedef __int8_t __int_least8_t; 1586: typedef __uint8_t __uint_least8_t; 1586: typedef __int16_t __int_least16_t; 1586: typedef __uint16_t __uint_least16_t; 1586: typedef __int32_t __int_least32_t; 1586: typedef __uint32_t __uint_least32_t; 1586: typedef __int64_t __int_least64_t; 1586: typedef __uint64_t __uint_least64_t; 1586: 1586: 1586: 1586: 1586: 1586: 1586: __extension__ typedef long long int __quad_t; 1586: __extension__ typedef unsigned long long int __u_quad_t; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: __extension__ typedef long long int __intmax_t; 1586: __extension__ typedef unsigned long long int __uintmax_t; 1586: # 141 "/usr/mipsel-linux-gnu/include/bits/types.h" 3 4 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/typesizes.h" 1 3 4 1586: # 142 "/usr/mipsel-linux-gnu/include/bits/types.h" 2 3 4 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/time64.h" 1 3 4 1586: # 143 "/usr/mipsel-linux-gnu/include/bits/types.h" 2 3 4 1586: 1586: 1586: __extension__ typedef __uint64_t __dev_t; 1586: __extension__ typedef unsigned int __uid_t; 1586: __extension__ typedef unsigned int __gid_t; 1586: __extension__ typedef unsigned long int __ino_t; 1586: __extension__ typedef __uint64_t __ino64_t; 1586: __extension__ typedef unsigned int __mode_t; 1586: __extension__ typedef unsigned int __nlink_t; 1586: __extension__ typedef long int __off_t; 1586: __extension__ typedef __int64_t __off64_t; 1586: __extension__ typedef int __pid_t; 1586: __extension__ typedef struct { int __val[2]; } __fsid_t; 1586: __extension__ typedef long int __clock_t; 1586: __extension__ typedef unsigned long int __rlim_t; 1586: __extension__ typedef __uint64_t __rlim64_t; 1586: __extension__ typedef unsigned int __id_t; 1586: __extension__ typedef long int __time_t; 1586: __extension__ typedef unsigned int __useconds_t; 1586: __extension__ typedef long int __suseconds_t; 1586: 1586: __extension__ typedef int __daddr_t; 1586: __extension__ typedef int __key_t; 1586: 1586: 1586: __extension__ typedef int __clockid_t; 1586: 1586: 1586: __extension__ typedef void * __timer_t; 1586: 1586: 1586: __extension__ typedef long int __blksize_t; 1586: 1586: 1586: 1586: 1586: __extension__ typedef long int __blkcnt_t; 1586: __extension__ typedef __int64_t __blkcnt64_t; 1586: 1586: 1586: __extension__ typedef unsigned long int __fsblkcnt_t; 1586: __extension__ typedef __uint64_t __fsblkcnt64_t; 1586: 1586: 1586: __extension__ typedef unsigned long int __fsfilcnt_t; 1586: __extension__ typedef __uint64_t __fsfilcnt64_t; 1586: 1586: 1586: __extension__ typedef int __fsword_t; 1586: 1586: __extension__ typedef int __ssize_t; 1586: 1586: 1586: __extension__ typedef long int __syscall_slong_t; 1586: 1586: __extension__ typedef unsigned long int __syscall_ulong_t; 1586: 1586: 1586: 1586: typedef __off64_t __loff_t; 1586: typedef char *__caddr_t; 1586: 1586: 1586: __extension__ typedef int __intptr_t; 1586: 1586: 1586: __extension__ typedef unsigned int __socklen_t; 1586: 1586: 1586: 1586: 1586: typedef int __sig_atomic_t; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: __extension__ typedef __int64_t __time64_t; 1586: # 28 "/usr/mipsel-linux-gnu/include/stdint.h" 2 3 4 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/wordsize.h" 1 3 4 1586: # 30 "/usr/mipsel-linux-gnu/include/stdint.h" 2 3 4 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/stdint-intn.h" 1 3 4 1586: # 24 "/usr/mipsel-linux-gnu/include/bits/stdint-intn.h" 3 4 1586: typedef __int8_t int8_t; 1586: typedef __int16_t int16_t; 1586: typedef __int32_t int32_t; 1586: typedef __int64_t int64_t; 1586: # 35 "/usr/mipsel-linux-gnu/include/stdint.h" 2 3 4 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/stdint-uintn.h" 1 3 4 1586: # 24 "/usr/mipsel-linux-gnu/include/bits/stdint-uintn.h" 3 4 1586: typedef __uint8_t uint8_t; 1586: typedef __uint16_t uint16_t; 1586: typedef __uint32_t uint32_t; 1586: typedef __uint64_t uint64_t; 1586: # 38 "/usr/mipsel-linux-gnu/include/stdint.h" 2 3 4 1586: 1586: 1586: 1586: 1586: 1586: typedef __int_least8_t int_least8_t; 1586: typedef __int_least16_t int_least16_t; 1586: typedef __int_least32_t int_least32_t; 1586: typedef __int_least64_t int_least64_t; 1586: 1586: 1586: typedef __uint_least8_t uint_least8_t; 1586: typedef __uint_least16_t uint_least16_t; 1586: typedef __uint_least32_t uint_least32_t; 1586: typedef __uint_least64_t uint_least64_t; 1586: 1586: 1586: 1586: 1586: 1586: typedef signed char int_fast8_t; 1586: 1586: 1586: 1586: 1586: 1586: typedef int int_fast16_t; 1586: typedef int int_fast32_t; 1586: __extension__ 1586: typedef long long int int_fast64_t; 1586: 1586: 1586: 1586: typedef unsigned char uint_fast8_t; 1586: 1586: 1586: 1586: 1586: 1586: typedef unsigned int uint_fast16_t; 1586: typedef unsigned int uint_fast32_t; 1586: __extension__ 1586: typedef unsigned long long int uint_fast64_t; 1586: # 93 "/usr/mipsel-linux-gnu/include/stdint.h" 3 4 1586: typedef int intptr_t; 1586: 1586: 1586: typedef unsigned int uintptr_t; 1586: 1586: 1586: 1586: 1586: typedef __intmax_t intmax_t; 1586: typedef __uintmax_t uintmax_t; 1586: # 10 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stdint.h" 2 3 4 1586: # 42 "/usr/mipsel-linux-gnu/include/c++/9/cstdint" 2 3 1586: 1586: 1586: namespace std 1586: { 1586: 1586: using ::int8_t; 1586: using ::int16_t; 1586: using ::int32_t; 1586: using ::int64_t; 1586: 1586: using ::int_fast8_t; 1586: using ::int_fast16_t; 1586: using ::int_fast32_t; 1586: using ::int_fast64_t; 1586: 1586: using ::int_least8_t; 1586: using ::int_least16_t; 1586: using ::int_least32_t; 1586: using ::int_least64_t; 1586: 1586: using ::intmax_t; 1586: using ::intptr_t; 1586: 1586: using ::uint8_t; 1586: using ::uint16_t; 1586: using ::uint32_t; 1586: using ::uint64_t; 1586: 1586: using ::uint_fast8_t; 1586: using ::uint_fast16_t; 1586: using ::uint_fast32_t; 1586: using ::uint_fast64_t; 1586: 1586: using ::uint_least8_t; 1586: using ::uint_least16_t; 1586: using ::uint_least32_t; 1586: using ::uint_least64_t; 1586: 1586: using ::uintmax_t; 1586: using ::uintptr_t; 1586: 1586: 1586: 1586: 1586: 1586: } 1586: # 622 "/usr/mipsel-linux-gnu/include/c++/9/bits/char_traits.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: template<> 1586: struct char_traits 1586: { 1586: typedef char16_t char_type; 1586: 1586: typedef uint_least16_t int_type; 1586: 1586: 1586: 1586: 1586: 1586: typedef streamoff off_type; 1586: typedef u16streampos pos_type; 1586: typedef mbstate_t state_type; 1586: 1586: static void 1586: assign(char_type& __c1, const char_type& __c2) noexcept 1586: { __c1 = __c2; } 1586: 1586: static constexpr bool 1586: eq(const char_type& __c1, const char_type& __c2) noexcept 1586: { return __c1 == __c2; } 1586: 1586: static constexpr bool 1586: lt(const char_type& __c1, const char_type& __c2) noexcept 1586: { return __c1 < __c2; } 1586: 1586: static int 1586: compare(const char_type* __s1, const char_type* __s2, size_t __n) 1586: { 1586: for (size_t __i = 0; __i < __n; ++__i) 1586: if (lt(__s1[__i], __s2[__i])) 1586: return -1; 1586: else if (lt(__s2[__i], __s1[__i])) 1586: return 1; 1586: return 0; 1586: } 1586: 1586: static size_t 1586: length(const char_type* __s) 1586: { 1586: size_t __i = 0; 1586: while (!eq(__s[__i], char_type())) 1586: ++__i; 1586: return __i; 1586: } 1586: 1586: static const char_type* 1586: find(const char_type* __s, size_t __n, const char_type& __a) 1586: { 1586: for (size_t __i = 0; __i < __n; ++__i) 1586: if (eq(__s[__i], __a)) 1586: return __s + __i; 1586: return 0; 1586: } 1586: 1586: static char_type* 1586: move(char_type* __s1, const char_type* __s2, size_t __n) 1586: { 1586: if (__n == 0) 1586: return __s1; 1586: return (static_cast 1586: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 1586: } 1586: 1586: static char_type* 1586: copy(char_type* __s1, const char_type* __s2, size_t __n) 1586: { 1586: if (__n == 0) 1586: return __s1; 1586: return (static_cast 1586: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 1586: } 1586: 1586: static char_type* 1586: assign(char_type* __s, size_t __n, char_type __a) 1586: { 1586: for (size_t __i = 0; __i < __n; ++__i) 1586: assign(__s[__i], __a); 1586: return __s; 1586: } 1586: 1586: static constexpr char_type 1586: to_char_type(const int_type& __c) noexcept 1586: { return char_type(__c); } 1586: 1586: static constexpr int_type 1586: to_int_type(const char_type& __c) noexcept 1586: { return __c == eof() ? int_type(0xfffd) : int_type(__c); } 1586: 1586: static constexpr bool 1586: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 1586: { return __c1 == __c2; } 1586: 1586: static constexpr int_type 1586: eof() noexcept 1586: { return static_cast(-1); } 1586: 1586: static constexpr int_type 1586: not_eof(const int_type& __c) noexcept 1586: { return eq_int_type(__c, eof()) ? 0 : __c; } 1586: }; 1586: 1586: template<> 1586: struct char_traits 1586: { 1586: typedef char32_t char_type; 1586: 1586: typedef uint_least32_t int_type; 1586: 1586: 1586: 1586: 1586: 1586: typedef streamoff off_type; 1586: typedef u32streampos pos_type; 1586: typedef mbstate_t state_type; 1586: 1586: static void 1586: assign(char_type& __c1, const char_type& __c2) noexcept 1586: { __c1 = __c2; } 1586: 1586: static constexpr bool 1586: eq(const char_type& __c1, const char_type& __c2) noexcept 1586: { return __c1 == __c2; } 1586: 1586: static constexpr bool 1586: lt(const char_type& __c1, const char_type& __c2) noexcept 1586: { return __c1 < __c2; } 1586: 1586: static int 1586: compare(const char_type* __s1, const char_type* __s2, size_t __n) 1586: { 1586: for (size_t __i = 0; __i < __n; ++__i) 1586: if (lt(__s1[__i], __s2[__i])) 1586: return -1; 1586: else if (lt(__s2[__i], __s1[__i])) 1586: return 1; 1586: return 0; 1586: } 1586: 1586: static size_t 1586: length(const char_type* __s) 1586: { 1586: size_t __i = 0; 1586: while (!eq(__s[__i], char_type())) 1586: ++__i; 1586: return __i; 1586: } 1586: 1586: static const char_type* 1586: find(const char_type* __s, size_t __n, const char_type& __a) 1586: { 1586: for (size_t __i = 0; __i < __n; ++__i) 1586: if (eq(__s[__i], __a)) 1586: return __s + __i; 1586: return 0; 1586: } 1586: 1586: static char_type* 1586: move(char_type* __s1, const char_type* __s2, size_t __n) 1586: { 1586: if (__n == 0) 1586: return __s1; 1586: return (static_cast 1586: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 1586: } 1586: 1586: static char_type* 1586: copy(char_type* __s1, const char_type* __s2, size_t __n) 1586: { 1586: if (__n == 0) 1586: return __s1; 1586: return (static_cast 1586: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 1586: } 1586: 1586: static char_type* 1586: assign(char_type* __s, size_t __n, char_type __a) 1586: { 1586: for (size_t __i = 0; __i < __n; ++__i) 1586: assign(__s[__i], __a); 1586: return __s; 1586: } 1586: 1586: static constexpr char_type 1586: to_char_type(const int_type& __c) noexcept 1586: { return char_type(__c); } 1586: 1586: static constexpr int_type 1586: to_int_type(const char_type& __c) noexcept 1586: { return int_type(__c); } 1586: 1586: static constexpr bool 1586: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 1586: { return __c1 == __c2; } 1586: 1586: static constexpr int_type 1586: eof() noexcept 1586: { return static_cast(-1); } 1586: 1586: static constexpr int_type 1586: not_eof(const int_type& __c) noexcept 1586: { return eq_int_type(__c, eof()) ? 0 : __c; } 1586: }; 1586: 1586: 1586: } 1586: # 41 "/usr/mipsel-linux-gnu/include/c++/9/string" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/allocator.h" 1 3 1586: # 46 "/usr/mipsel-linux-gnu/include/c++/9/bits/allocator.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/c++allocator.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/c++allocator.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/ext/new_allocator.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/ext/new_allocator.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/new" 1 3 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/new" 3 1586: 1586: # 38 "/usr/mipsel-linux-gnu/include/c++/9/new" 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/exception" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/exception" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/exception" 3 1586: 1586: #pragma GCC visibility push(default) 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/exception.h" 1 3 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/exception.h" 3 1586: 1586: # 35 "/usr/mipsel-linux-gnu/include/c++/9/bits/exception.h" 3 1586: 1586: #pragma GCC visibility push(default) 1586: 1586: 1586: 1586: extern "C++" { 1586: 1586: namespace std 1586: { 1586: # 60 "/usr/mipsel-linux-gnu/include/c++/9/bits/exception.h" 3 1586: class exception 1586: { 1586: public: 1586: exception() noexcept { } 1586: virtual ~exception() noexcept; 1586: 1586: exception(const exception&) = default; 1586: exception& operator=(const exception&) = default; 1586: exception(exception&&) = default; 1586: exception& operator=(exception&&) = default; 1586: 1586: 1586: 1586: 1586: virtual const char* 1586: what() const noexcept; 1586: }; 1586: 1586: } 1586: 1586: } 1586: 1586: #pragma GCC visibility pop 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/exception" 2 3 1586: 1586: extern "C++" { 1586: 1586: namespace std 1586: { 1586: 1586: 1586: class bad_exception : public exception 1586: { 1586: public: 1586: bad_exception() noexcept { } 1586: 1586: 1586: 1586: virtual ~bad_exception() noexcept; 1586: 1586: 1586: virtual const char* 1586: what() const noexcept; 1586: }; 1586: 1586: 1586: typedef void (*terminate_handler) (); 1586: 1586: 1586: typedef void (*unexpected_handler) (); 1586: 1586: 1586: terminate_handler set_terminate(terminate_handler) noexcept; 1586: 1586: 1586: 1586: terminate_handler get_terminate() noexcept; 1586: 1586: 1586: 1586: 1586: void terminate() noexcept __attribute__ ((__noreturn__)); 1586: 1586: 1586: unexpected_handler set_unexpected(unexpected_handler) noexcept; 1586: 1586: 1586: 1586: unexpected_handler get_unexpected() noexcept; 1586: 1586: 1586: 1586: 1586: void unexpected() __attribute__ ((__noreturn__)); 1586: # 101 "/usr/mipsel-linux-gnu/include/c++/9/exception" 3 1586: 1586: bool uncaught_exception() noexcept __attribute__ ((__pure__)); 1586: # 111 "/usr/mipsel-linux-gnu/include/c++/9/exception" 3 1586: } 1586: 1586: namespace __gnu_cxx 1586: { 1586: 1586: # 133 "/usr/mipsel-linux-gnu/include/c++/9/exception" 3 1586: void __verbose_terminate_handler(); 1586: 1586: 1586: } 1586: 1586: } 1586: 1586: #pragma GCC visibility pop 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/exception_ptr.h" 1 3 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/exception_ptr.h" 3 1586: #pragma GCC visibility push(default) 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/cxxabi_init_exception.h" 1 3 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/cxxabi_init_exception.h" 3 1586: 1586: # 35 "/usr/mipsel-linux-gnu/include/c++/9/bits/cxxabi_init_exception.h" 3 1586: 1586: #pragma GCC visibility push(default) 1586: 1586: # 1 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stddef.h" 1 3 4 1586: # 143 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stddef.h" 3 4 1586: typedef int ptrdiff_t; 1586: # 415 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stddef.h" 3 4 1586: typedef struct { 1586: long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); 1586: long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); 1586: # 426 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stddef.h" 3 4 1586: } max_align_t; 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef decltype(nullptr) nullptr_t; 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/bits/cxxabi_init_exception.h" 2 3 1586: # 50 "/usr/mipsel-linux-gnu/include/c++/9/bits/cxxabi_init_exception.h" 3 1586: namespace std 1586: { 1586: class type_info; 1586: } 1586: 1586: namespace __cxxabiv1 1586: { 1586: struct __cxa_refcounted_exception; 1586: 1586: extern "C" 1586: { 1586: 1586: void* 1586: __cxa_allocate_exception(size_t) noexcept; 1586: 1586: void 1586: __cxa_free_exception(void*) noexcept; 1586: 1586: 1586: __cxa_refcounted_exception* 1586: __cxa_init_primary_exception(void *object, std::type_info *tinfo, 1586: void ( *dest) (void *)) noexcept; 1586: 1586: } 1586: } 1586: 1586: 1586: 1586: #pragma GCC visibility pop 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/bits/exception_ptr.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/typeinfo" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/c++/9/typeinfo" 3 1586: 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/typeinfo" 3 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/hash_bytes.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/hash_bytes.h" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/hash_bytes.h" 3 1586: 1586: 1586: 1586: namespace std 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: size_t 1586: _Hash_bytes(const void* __ptr, size_t __len, size_t __seed); 1586: 1586: 1586: 1586: 1586: 1586: size_t 1586: _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed); 1586: 1586: 1586: } 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/typeinfo" 2 3 1586: 1586: 1586: #pragma GCC visibility push(default) 1586: 1586: extern "C++" { 1586: 1586: namespace __cxxabiv1 1586: { 1586: class __class_type_info; 1586: } 1586: # 80 "/usr/mipsel-linux-gnu/include/c++/9/typeinfo" 3 1586: namespace std 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: class type_info 1586: { 1586: public: 1586: 1586: 1586: 1586: 1586: virtual ~type_info(); 1586: 1586: 1586: 1586: const char* name() const noexcept 1586: { return __name[0] == '*' ? __name + 1 : __name; } 1586: # 115 "/usr/mipsel-linux-gnu/include/c++/9/typeinfo" 3 1586: bool before(const type_info& __arg) const noexcept 1586: { return (__name[0] == '*' && __arg.__name[0] == '*') 1586: ? __name < __arg.__name 1586: : __builtin_strcmp (__name, __arg.__name) < 0; } 1586: 1586: bool operator==(const type_info& __arg) const noexcept 1586: { 1586: return ((__name == __arg.__name) 1586: || (__name[0] != '*' && 1586: __builtin_strcmp (__name, __arg.__name) == 0)); 1586: } 1586: # 136 "/usr/mipsel-linux-gnu/include/c++/9/typeinfo" 3 1586: bool operator!=(const type_info& __arg) const noexcept 1586: { return !operator==(__arg); } 1586: 1586: 1586: size_t hash_code() const noexcept 1586: { 1586: 1586: return _Hash_bytes(name(), __builtin_strlen(name()), 1586: static_cast(0xc70f6907UL)); 1586: 1586: 1586: 1586: } 1586: 1586: 1586: 1586: virtual bool __is_pointer_p() const; 1586: 1586: 1586: virtual bool __is_function_p() const; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj, 1586: unsigned __outer) const; 1586: 1586: 1586: virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target, 1586: void **__obj_ptr) const; 1586: 1586: protected: 1586: const char *__name; 1586: 1586: explicit type_info(const char *__n): __name(__n) { } 1586: 1586: private: 1586: 1586: type_info& operator=(const type_info&); 1586: type_info(const type_info&); 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: class bad_cast : public exception 1586: { 1586: public: 1586: bad_cast() noexcept { } 1586: 1586: 1586: 1586: virtual ~bad_cast() noexcept; 1586: 1586: 1586: virtual const char* what() const noexcept; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: class bad_typeid : public exception 1586: { 1586: public: 1586: bad_typeid () noexcept { } 1586: 1586: 1586: 1586: virtual ~bad_typeid() noexcept; 1586: 1586: 1586: virtual const char* what() const noexcept; 1586: }; 1586: } 1586: 1586: } 1586: 1586: #pragma GCC visibility pop 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/bits/exception_ptr.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/new" 1 3 1586: # 41 "/usr/mipsel-linux-gnu/include/c++/9/bits/exception_ptr.h" 2 3 1586: 1586: extern "C++" { 1586: 1586: namespace std 1586: { 1586: class type_info; 1586: 1586: 1586: 1586: 1586: 1586: namespace __exception_ptr 1586: { 1586: class exception_ptr; 1586: } 1586: 1586: using __exception_ptr::exception_ptr; 1586: 1586: 1586: 1586: 1586: 1586: exception_ptr current_exception() noexcept; 1586: 1586: template 1586: exception_ptr make_exception_ptr(_Ex) noexcept; 1586: 1586: 1586: void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__)); 1586: 1586: namespace __exception_ptr 1586: { 1586: using std::rethrow_exception; 1586: 1586: 1586: 1586: 1586: 1586: class exception_ptr 1586: { 1586: void* _M_exception_object; 1586: 1586: explicit exception_ptr(void* __e) noexcept; 1586: 1586: void _M_addref() noexcept; 1586: void _M_release() noexcept; 1586: 1586: void *_M_get() const noexcept __attribute__ ((__pure__)); 1586: 1586: friend exception_ptr std::current_exception() noexcept; 1586: friend void std::rethrow_exception(exception_ptr); 1586: template 1586: friend exception_ptr std::make_exception_ptr(_Ex) noexcept; 1586: 1586: public: 1586: exception_ptr() noexcept; 1586: 1586: exception_ptr(const exception_ptr&) noexcept; 1586: 1586: 1586: exception_ptr(nullptr_t) noexcept 1586: : _M_exception_object(0) 1586: { } 1586: 1586: exception_ptr(exception_ptr&& __o) noexcept 1586: : _M_exception_object(__o._M_exception_object) 1586: { __o._M_exception_object = 0; } 1586: # 117 "/usr/mipsel-linux-gnu/include/c++/9/bits/exception_ptr.h" 3 1586: exception_ptr& 1586: operator=(const exception_ptr&) noexcept; 1586: 1586: 1586: exception_ptr& 1586: operator=(exception_ptr&& __o) noexcept 1586: { 1586: exception_ptr(static_cast(__o)).swap(*this); 1586: return *this; 1586: } 1586: 1586: 1586: ~exception_ptr() noexcept; 1586: 1586: void 1586: swap(exception_ptr&) noexcept; 1586: # 144 "/usr/mipsel-linux-gnu/include/c++/9/bits/exception_ptr.h" 3 1586: explicit operator bool() const 1586: { return _M_exception_object; } 1586: 1586: 1586: friend bool 1586: operator==(const exception_ptr&, const exception_ptr&) 1586: noexcept __attribute__ ((__pure__)); 1586: 1586: const class std::type_info* 1586: __cxa_exception_type() const noexcept 1586: __attribute__ ((__pure__)); 1586: }; 1586: 1586: bool 1586: operator==(const exception_ptr&, const exception_ptr&) 1586: noexcept __attribute__ ((__pure__)); 1586: 1586: bool 1586: operator!=(const exception_ptr&, const exception_ptr&) 1586: noexcept __attribute__ ((__pure__)); 1586: 1586: inline void 1586: swap(exception_ptr& __lhs, exception_ptr& __rhs) 1586: { __lhs.swap(__rhs); } 1586: 1586: template 1586: inline void 1586: __dest_thunk(void* __x) 1586: { static_cast<_Ex*>(__x)->~_Ex(); } 1586: 1586: } 1586: 1586: 1586: template 1586: exception_ptr 1586: make_exception_ptr(_Ex __ex) noexcept 1586: { 1586: 1586: void* __e = __cxxabiv1::__cxa_allocate_exception(sizeof(_Ex)); 1586: (void) __cxxabiv1::__cxa_init_primary_exception( 1586: __e, const_cast(&typeid(__ex)), 1586: __exception_ptr::__dest_thunk<_Ex>); 1586: try 1586: { 1586: ::new (__e) _Ex(__ex); 1586: return exception_ptr(__e); 1586: } 1586: catch(...) 1586: { 1586: __cxxabiv1::__cxa_free_exception(__e); 1586: return current_exception(); 1586: } 1586: # 208 "/usr/mipsel-linux-gnu/include/c++/9/bits/exception_ptr.h" 3 1586: } 1586: 1586: 1586: } 1586: 1586: } 1586: 1586: #pragma GCC visibility pop 1586: # 144 "/usr/mipsel-linux-gnu/include/c++/9/exception" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/nested_exception.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/nested_exception.h" 3 1586: #pragma GCC visibility push(default) 1586: # 42 "/usr/mipsel-linux-gnu/include/c++/9/bits/nested_exception.h" 3 1586: extern "C++" { 1586: 1586: namespace std 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: class nested_exception 1586: { 1586: exception_ptr _M_ptr; 1586: 1586: public: 1586: nested_exception() noexcept : _M_ptr(current_exception()) { } 1586: 1586: nested_exception(const nested_exception&) noexcept = default; 1586: 1586: nested_exception& operator=(const nested_exception&) noexcept = default; 1586: 1586: virtual ~nested_exception() noexcept; 1586: 1586: [[noreturn]] 1586: void 1586: rethrow_nested() const 1586: { 1586: if (_M_ptr) 1586: rethrow_exception(_M_ptr); 1586: std::terminate(); 1586: } 1586: 1586: exception_ptr 1586: nested_ptr() const noexcept 1586: { return _M_ptr; } 1586: }; 1586: 1586: template 1586: struct _Nested_exception : public _Except, public nested_exception 1586: { 1586: explicit _Nested_exception(const _Except& __ex) 1586: : _Except(__ex) 1586: { } 1586: 1586: explicit _Nested_exception(_Except&& __ex) 1586: : _Except(static_cast<_Except&&>(__ex)) 1586: { } 1586: }; 1586: 1586: 1586: 1586: 1586: template 1586: [[noreturn]] 1586: inline void 1586: __throw_with_nested_impl(_Tp&& __t, true_type) 1586: { 1586: using _Up = typename remove_reference<_Tp>::type; 1586: throw _Nested_exception<_Up>{std::forward<_Tp>(__t)}; 1586: } 1586: 1586: template 1586: [[noreturn]] 1586: inline void 1586: __throw_with_nested_impl(_Tp&& __t, false_type) 1586: { throw std::forward<_Tp>(__t); } 1586: 1586: 1586: 1586: template 1586: [[noreturn]] 1586: inline void 1586: throw_with_nested(_Tp&& __t) 1586: { 1586: using _Up = typename decay<_Tp>::type; 1586: using _CopyConstructible 1586: = __and_, is_move_constructible<_Up>>; 1586: static_assert(_CopyConstructible::value, 1586: "throw_with_nested argument must be CopyConstructible"); 1586: using __nest = __and_, __bool_constant, 1586: __not_>>; 1586: std::__throw_with_nested_impl(std::forward<_Tp>(__t), __nest{}); 1586: } 1586: 1586: 1586: template 1586: using __rethrow_if_nested_cond = typename enable_if< 1586: __and_, 1586: __or_<__not_>, 1586: is_convertible<_Tp*, nested_exception*>>>::value 1586: >::type; 1586: 1586: 1586: template 1586: inline __rethrow_if_nested_cond<_Ex> 1586: __rethrow_if_nested_impl(const _Ex* __ptr) 1586: { 1586: if (auto __ne_ptr = dynamic_cast(__ptr)) 1586: __ne_ptr->rethrow_nested(); 1586: } 1586: 1586: 1586: inline void 1586: __rethrow_if_nested_impl(const void*) 1586: { } 1586: 1586: 1586: template 1586: inline void 1586: rethrow_if_nested(const _Ex& __ex) 1586: { std::__rethrow_if_nested_impl(std::__addressof(__ex)); } 1586: 1586: 1586: } 1586: 1586: } 1586: 1586: 1586: 1586: #pragma GCC visibility pop 1586: # 145 "/usr/mipsel-linux-gnu/include/c++/9/exception" 2 3 1586: # 41 "/usr/mipsel-linux-gnu/include/c++/9/new" 2 3 1586: 1586: #pragma GCC visibility push(default) 1586: 1586: extern "C++" { 1586: 1586: namespace std 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: class bad_alloc : public exception 1586: { 1586: public: 1586: bad_alloc() throw() { } 1586: 1586: 1586: bad_alloc(const bad_alloc&) = default; 1586: bad_alloc& operator=(const bad_alloc&) = default; 1586: 1586: 1586: 1586: 1586: virtual ~bad_alloc() throw(); 1586: 1586: 1586: virtual const char* what() const throw(); 1586: }; 1586: 1586: 1586: class bad_array_new_length : public bad_alloc 1586: { 1586: public: 1586: bad_array_new_length() throw() { } 1586: 1586: 1586: 1586: virtual ~bad_array_new_length() throw(); 1586: 1586: 1586: virtual const char* what() const throw(); 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: struct nothrow_t 1586: { 1586: 1586: explicit nothrow_t() = default; 1586: 1586: }; 1586: 1586: extern const nothrow_t nothrow; 1586: 1586: 1586: 1586: typedef void (*new_handler)(); 1586: 1586: 1586: 1586: new_handler set_new_handler(new_handler) throw(); 1586: 1586: 1586: 1586: new_handler get_new_handler() noexcept; 1586: 1586: } 1586: # 125 "/usr/mipsel-linux-gnu/include/c++/9/new" 3 1586: void* operator new(std::size_t) 1586: __attribute__((__externally_visible__)); 1586: void* operator new[](std::size_t) 1586: __attribute__((__externally_visible__)); 1586: void operator delete(void*) noexcept 1586: __attribute__((__externally_visible__)); 1586: void operator delete[](void*) noexcept 1586: __attribute__((__externally_visible__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: void* operator new(std::size_t, const std::nothrow_t&) noexcept 1586: __attribute__((__externally_visible__, __malloc__)); 1586: void* operator new[](std::size_t, const std::nothrow_t&) noexcept 1586: __attribute__((__externally_visible__, __malloc__)); 1586: void operator delete(void*, const std::nothrow_t&) noexcept 1586: __attribute__((__externally_visible__)); 1586: void operator delete[](void*, const std::nothrow_t&) noexcept 1586: __attribute__((__externally_visible__)); 1586: # 173 "/usr/mipsel-linux-gnu/include/c++/9/new" 3 1586: inline void* operator new(std::size_t, void* __p) noexcept 1586: { return __p; } 1586: inline void* operator new[](std::size_t, void* __p) noexcept 1586: { return __p; } 1586: 1586: 1586: inline void operator delete (void*, void*) noexcept { } 1586: inline void operator delete[](void*, void*) noexcept { } 1586: 1586: } 1586: # 226 "/usr/mipsel-linux-gnu/include/c++/9/new" 3 1586: #pragma GCC visibility pop 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/ext/new_allocator.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: using std::size_t; 1586: using std::ptrdiff_t; 1586: # 57 "/usr/mipsel-linux-gnu/include/c++/9/ext/new_allocator.h" 3 1586: template 1586: class new_allocator 1586: { 1586: public: 1586: typedef size_t size_type; 1586: typedef ptrdiff_t difference_type; 1586: typedef _Tp* pointer; 1586: typedef const _Tp* const_pointer; 1586: typedef _Tp& reference; 1586: typedef const _Tp& const_reference; 1586: typedef _Tp value_type; 1586: 1586: template 1586: struct rebind 1586: { typedef new_allocator<_Tp1> other; }; 1586: 1586: 1586: 1586: 1586: typedef std::true_type propagate_on_container_move_assignment; 1586: 1586: 1586: 1586: new_allocator() noexcept { } 1586: 1586: 1586: new_allocator(const new_allocator&) noexcept { } 1586: 1586: template 1586: 1586: new_allocator(const new_allocator<_Tp1>&) noexcept { } 1586: 1586: ~new_allocator() noexcept { } 1586: 1586: pointer 1586: address(reference __x) const noexcept 1586: { return std::__addressof(__x); } 1586: 1586: const_pointer 1586: address(const_reference __x) const noexcept 1586: { return std::__addressof(__x); } 1586: 1586: 1586: 1586: pointer 1586: allocate(size_type __n, const void* = static_cast(0)) 1586: { 1586: if (__n > this->max_size()) 1586: std::__throw_bad_alloc(); 1586: # 114 "/usr/mipsel-linux-gnu/include/c++/9/ext/new_allocator.h" 3 1586: return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 1586: } 1586: 1586: 1586: void 1586: deallocate(pointer __p, size_type) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ::operator delete(__p); 1586: } 1586: 1586: size_type 1586: max_size() const noexcept 1586: { 1586: 1586: return size_t(0x7fffffff) / sizeof(_Tp); 1586: 1586: 1586: 1586: } 1586: 1586: 1586: template 1586: void 1586: construct(_Up* __p, _Args&&... __args) 1586: noexcept(noexcept(::new((void *)__p) 1586: _Up(std::forward<_Args>(__args)...))) 1586: { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } 1586: 1586: template 1586: void 1586: destroy(_Up* __p) 1586: noexcept(noexcept( __p->~_Up())) 1586: { __p->~_Up(); } 1586: # 165 "/usr/mipsel-linux-gnu/include/c++/9/ext/new_allocator.h" 3 1586: template 1586: friend bool 1586: operator==(const new_allocator&, const new_allocator<_Up>&) 1586: noexcept 1586: { return true; } 1586: 1586: template 1586: friend bool 1586: operator!=(const new_allocator&, const new_allocator<_Up>&) 1586: noexcept 1586: { return false; } 1586: }; 1586: 1586: 1586: } 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/c++allocator.h" 2 3 1586: 1586: 1586: namespace std 1586: { 1586: # 47 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/c++allocator.h" 3 1586: template 1586: using __allocator_base = __gnu_cxx::new_allocator<_Tp>; 1586: } 1586: # 47 "/usr/mipsel-linux-gnu/include/c++/9/bits/allocator.h" 2 3 1586: # 57 "/usr/mipsel-linux-gnu/include/c++/9/bits/allocator.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template<> 1586: class allocator 1586: { 1586: public: 1586: typedef size_t size_type; 1586: typedef ptrdiff_t difference_type; 1586: typedef void* pointer; 1586: typedef const void* const_pointer; 1586: typedef void value_type; 1586: 1586: template 1586: struct rebind 1586: { typedef allocator<_Tp1> other; }; 1586: 1586: 1586: 1586: 1586: typedef true_type propagate_on_container_move_assignment; 1586: 1586: typedef true_type is_always_equal; 1586: 1586: template 1586: void 1586: construct(_Up* __p, _Args&&... __args) 1586: noexcept(noexcept(::new((void *)__p) 1586: _Up(std::forward<_Args>(__args)...))) 1586: { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } 1586: 1586: template 1586: void 1586: destroy(_Up* __p) 1586: noexcept(noexcept(__p->~_Up())) 1586: { __p->~_Up(); } 1586: 1586: }; 1586: # 111 "/usr/mipsel-linux-gnu/include/c++/9/bits/allocator.h" 3 1586: template 1586: class allocator : public __allocator_base<_Tp> 1586: { 1586: public: 1586: typedef size_t size_type; 1586: typedef ptrdiff_t difference_type; 1586: typedef _Tp* pointer; 1586: typedef const _Tp* const_pointer; 1586: typedef _Tp& reference; 1586: typedef const _Tp& const_reference; 1586: typedef _Tp value_type; 1586: 1586: template 1586: struct rebind 1586: { typedef allocator<_Tp1> other; }; 1586: 1586: 1586: 1586: 1586: typedef true_type propagate_on_container_move_assignment; 1586: 1586: typedef true_type is_always_equal; 1586: 1586: 1586: 1586: 1586: 1586: allocator() noexcept { } 1586: 1586: 1586: allocator(const allocator& __a) noexcept 1586: : __allocator_base<_Tp>(__a) { } 1586: 1586: 1586: 1586: allocator& operator=(const allocator&) = default; 1586: 1586: 1586: template 1586: 1586: allocator(const allocator<_Tp1>&) noexcept { } 1586: 1586: ~allocator() noexcept { } 1586: 1586: friend bool 1586: operator==(const allocator&, const allocator&) noexcept 1586: { return true; } 1586: 1586: friend bool 1586: operator!=(const allocator&, const allocator&) noexcept 1586: { return false; } 1586: 1586: 1586: }; 1586: 1586: template 1586: inline bool 1586: operator==(const allocator<_T1>&, const allocator<_T2>&) 1586: noexcept 1586: { return true; } 1586: 1586: template 1586: inline bool 1586: operator!=(const allocator<_T1>&, const allocator<_T2>&) 1586: noexcept 1586: { return false; } 1586: 1586: 1586: 1586: template 1586: class allocator 1586: { 1586: public: 1586: typedef _Tp value_type; 1586: template allocator(const allocator<_Up>&) { } 1586: }; 1586: 1586: template 1586: class allocator 1586: { 1586: public: 1586: typedef _Tp value_type; 1586: template allocator(const allocator<_Up>&) { } 1586: }; 1586: 1586: template 1586: class allocator 1586: { 1586: public: 1586: typedef _Tp value_type; 1586: template allocator(const allocator<_Up>&) { } 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern template class allocator; 1586: extern template class allocator; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct __alloc_swap 1586: { static void _S_do_it(_Alloc&, _Alloc&) noexcept { } }; 1586: 1586: template 1586: struct __alloc_swap<_Alloc, false> 1586: { 1586: static void 1586: _S_do_it(_Alloc& __one, _Alloc& __two) noexcept 1586: { 1586: 1586: if (__one != __two) 1586: swap(__one, __two); 1586: } 1586: }; 1586: 1586: 1586: template 1586: struct __alloc_neq 1586: { 1586: static bool 1586: _S_do_it(const _Alloc&, const _Alloc&) 1586: { return false; } 1586: }; 1586: 1586: template 1586: struct __alloc_neq<_Alloc, false> 1586: { 1586: static bool 1586: _S_do_it(const _Alloc& __one, const _Alloc& __two) 1586: { return __one != __two; } 1586: }; 1586: 1586: 1586: template, 1586: is_nothrow_move_constructible>::value> 1586: struct __shrink_to_fit_aux 1586: { static bool _S_do_it(_Tp&) noexcept { return false; } }; 1586: 1586: template 1586: struct __shrink_to_fit_aux<_Tp, true> 1586: { 1586: static bool 1586: _S_do_it(_Tp& __c) noexcept 1586: { 1586: 1586: try 1586: { 1586: _Tp(__make_move_if_noexcept_iterator(__c.begin()), 1586: __make_move_if_noexcept_iterator(__c.end()), 1586: __c.get_allocator()).swap(__c); 1586: return true; 1586: } 1586: catch(...) 1586: { return false; } 1586: 1586: 1586: 1586: } 1586: }; 1586: 1586: 1586: 1586: } 1586: # 42 "/usr/mipsel-linux-gnu/include/c++/9/string" 2 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/localefwd.h" 1 3 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/bits/localefwd.h" 3 1586: 1586: # 38 "/usr/mipsel-linux-gnu/include/c++/9/bits/localefwd.h" 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/c++locale.h" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/c++locale.h" 3 1586: 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/c++locale.h" 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/clocale" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/clocale" 3 1586: 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/clocale" 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/locale.h" 1 3 1586: # 28 "/usr/mipsel-linux-gnu/include/locale.h" 3 1586: # 1 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stddef.h" 1 3 4 1586: # 29 "/usr/mipsel-linux-gnu/include/locale.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/locale.h" 1 3 1586: # 30 "/usr/mipsel-linux-gnu/include/locale.h" 2 3 1586: 1586: extern "C" { 1586: # 51 "/usr/mipsel-linux-gnu/include/locale.h" 3 1586: struct lconv 1586: { 1586: 1586: 1586: char *decimal_point; 1586: char *thousands_sep; 1586: 1586: 1586: 1586: 1586: 1586: char *grouping; 1586: 1586: 1586: 1586: 1586: 1586: char *int_curr_symbol; 1586: char *currency_symbol; 1586: char *mon_decimal_point; 1586: char *mon_thousands_sep; 1586: char *mon_grouping; 1586: char *positive_sign; 1586: char *negative_sign; 1586: char int_frac_digits; 1586: char frac_digits; 1586: 1586: char p_cs_precedes; 1586: 1586: char p_sep_by_space; 1586: 1586: char n_cs_precedes; 1586: 1586: char n_sep_by_space; 1586: 1586: 1586: 1586: 1586: 1586: 1586: char p_sign_posn; 1586: char n_sign_posn; 1586: 1586: 1586: char int_p_cs_precedes; 1586: 1586: char int_p_sep_by_space; 1586: 1586: char int_n_cs_precedes; 1586: 1586: char int_n_sep_by_space; 1586: 1586: 1586: 1586: 1586: 1586: 1586: char int_p_sign_posn; 1586: char int_n_sign_posn; 1586: # 118 "/usr/mipsel-linux-gnu/include/locale.h" 3 1586: }; 1586: 1586: 1586: 1586: extern char *setlocale (int __category, const char *__locale) throw (); 1586: 1586: 1586: extern struct lconv *localeconv (void) throw (); 1586: # 141 "/usr/mipsel-linux-gnu/include/locale.h" 3 1586: extern locale_t newlocale (int __category_mask, const char *__locale, 1586: locale_t __base) throw (); 1586: # 176 "/usr/mipsel-linux-gnu/include/locale.h" 3 1586: extern locale_t duplocale (locale_t __dataset) throw (); 1586: 1586: 1586: 1586: extern void freelocale (locale_t __dataset) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern locale_t uselocale (locale_t __dataset) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: } 1586: # 43 "/usr/mipsel-linux-gnu/include/c++/9/clocale" 2 3 1586: # 51 "/usr/mipsel-linux-gnu/include/c++/9/clocale" 3 1586: namespace std 1586: { 1586: using ::lconv; 1586: using ::setlocale; 1586: using ::localeconv; 1586: } 1586: # 42 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/c++locale.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: extern "C" __typeof(uselocale) __uselocale; 1586: 1586: 1586: } 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: typedef __locale_t __c_locale; 1586: 1586: 1586: 1586: 1586: 1586: inline int 1586: __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)), 1586: char* __out, 1586: const int __size __attribute__ ((__unused__)), 1586: const char* __fmt, ...) 1586: { 1586: 1586: __c_locale __old = __gnu_cxx::__uselocale(__cloc); 1586: # 88 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/c++locale.h" 3 1586: __builtin_va_list __args; 1586: __builtin_va_start(__args, __fmt); 1586: 1586: 1586: const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); 1586: 1586: 1586: 1586: 1586: __builtin_va_end(__args); 1586: 1586: 1586: __gnu_cxx::__uselocale(__old); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: return __ret; 1586: } 1586: 1586: 1586: } 1586: # 41 "/usr/mipsel-linux-gnu/include/c++/9/bits/localefwd.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/iosfwd" 1 3 1586: # 36 "/usr/mipsel-linux-gnu/include/c++/9/iosfwd" 3 1586: 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/iosfwd" 3 1586: 1586: 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 74 "/usr/mipsel-linux-gnu/include/c++/9/iosfwd" 3 1586: class ios_base; 1586: 1586: template > 1586: class basic_ios; 1586: 1586: template > 1586: class basic_streambuf; 1586: 1586: template > 1586: class basic_istream; 1586: 1586: template > 1586: class basic_ostream; 1586: 1586: template > 1586: class basic_iostream; 1586: 1586: 1586: namespace __cxx11 { 1586: 1586: template, 1586: typename _Alloc = allocator<_CharT> > 1586: class basic_stringbuf; 1586: 1586: template, 1586: typename _Alloc = allocator<_CharT> > 1586: class basic_istringstream; 1586: 1586: template, 1586: typename _Alloc = allocator<_CharT> > 1586: class basic_ostringstream; 1586: 1586: template, 1586: typename _Alloc = allocator<_CharT> > 1586: class basic_stringstream; 1586: 1586: } 1586: 1586: template > 1586: class basic_filebuf; 1586: 1586: template > 1586: class basic_ifstream; 1586: 1586: template > 1586: class basic_ofstream; 1586: 1586: template > 1586: class basic_fstream; 1586: 1586: template > 1586: class istreambuf_iterator; 1586: 1586: template > 1586: class ostreambuf_iterator; 1586: 1586: 1586: 1586: typedef basic_ios ios; 1586: 1586: 1586: typedef basic_streambuf streambuf; 1586: 1586: 1586: typedef basic_istream istream; 1586: 1586: 1586: typedef basic_ostream ostream; 1586: 1586: 1586: typedef basic_iostream iostream; 1586: 1586: 1586: typedef basic_stringbuf stringbuf; 1586: 1586: 1586: typedef basic_istringstream istringstream; 1586: 1586: 1586: typedef basic_ostringstream ostringstream; 1586: 1586: 1586: typedef basic_stringstream stringstream; 1586: 1586: 1586: typedef basic_filebuf filebuf; 1586: 1586: 1586: typedef basic_ifstream ifstream; 1586: 1586: 1586: typedef basic_ofstream ofstream; 1586: 1586: 1586: typedef basic_fstream fstream; 1586: 1586: 1586: 1586: typedef basic_ios wios; 1586: 1586: 1586: typedef basic_streambuf wstreambuf; 1586: 1586: 1586: typedef basic_istream wistream; 1586: 1586: 1586: typedef basic_ostream wostream; 1586: 1586: 1586: typedef basic_iostream wiostream; 1586: 1586: 1586: typedef basic_stringbuf wstringbuf; 1586: 1586: 1586: typedef basic_istringstream wistringstream; 1586: 1586: 1586: typedef basic_ostringstream wostringstream; 1586: 1586: 1586: typedef basic_stringstream wstringstream; 1586: 1586: 1586: typedef basic_filebuf wfilebuf; 1586: 1586: 1586: typedef basic_ifstream wifstream; 1586: 1586: 1586: typedef basic_ofstream wofstream; 1586: 1586: 1586: typedef basic_fstream wfstream; 1586: 1586: 1586: 1586: 1586: } 1586: # 42 "/usr/mipsel-linux-gnu/include/c++/9/bits/localefwd.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/cctype" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/cctype" 3 1586: 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/cctype" 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/ctype.h" 1 3 1586: # 28 "/usr/mipsel-linux-gnu/include/ctype.h" 3 1586: extern "C" { 1586: # 39 "/usr/mipsel-linux-gnu/include/ctype.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/endian.h" 1 3 1586: # 35 "/usr/mipsel-linux-gnu/include/bits/endian.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/endianness.h" 1 3 1586: # 36 "/usr/mipsel-linux-gnu/include/bits/endian.h" 2 3 1586: # 40 "/usr/mipsel-linux-gnu/include/ctype.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: enum 1586: { 1586: _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), 1586: _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), 1586: _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), 1586: _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), 1586: _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), 1586: _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), 1586: _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), 1586: _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), 1586: _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), 1586: _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), 1586: _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), 1586: _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) 1586: }; 1586: # 79 "/usr/mipsel-linux-gnu/include/ctype.h" 3 1586: extern const unsigned short int **__ctype_b_loc (void) 1586: throw () __attribute__ ((__const__)); 1586: extern const __int32_t **__ctype_tolower_loc (void) 1586: throw () __attribute__ ((__const__)); 1586: extern const __int32_t **__ctype_toupper_loc (void) 1586: throw () __attribute__ ((__const__)); 1586: # 108 "/usr/mipsel-linux-gnu/include/ctype.h" 3 1586: extern int isalnum (int) throw (); 1586: extern int isalpha (int) throw (); 1586: extern int iscntrl (int) throw (); 1586: extern int isdigit (int) throw (); 1586: extern int islower (int) throw (); 1586: extern int isgraph (int) throw (); 1586: extern int isprint (int) throw (); 1586: extern int ispunct (int) throw (); 1586: extern int isspace (int) throw (); 1586: extern int isupper (int) throw (); 1586: extern int isxdigit (int) throw (); 1586: 1586: 1586: 1586: extern int tolower (int __c) throw (); 1586: 1586: 1586: extern int toupper (int __c) throw (); 1586: 1586: 1586: 1586: 1586: extern int isblank (int) throw (); 1586: 1586: 1586: 1586: 1586: extern int isctype (int __c, int __mask) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int isascii (int __c) throw (); 1586: 1586: 1586: 1586: extern int toascii (int __c) throw (); 1586: 1586: 1586: 1586: extern int _toupper (int) throw (); 1586: extern int _tolower (int) throw (); 1586: # 251 "/usr/mipsel-linux-gnu/include/ctype.h" 3 1586: extern int isalnum_l (int, locale_t) throw (); 1586: extern int isalpha_l (int, locale_t) throw (); 1586: extern int iscntrl_l (int, locale_t) throw (); 1586: extern int isdigit_l (int, locale_t) throw (); 1586: extern int islower_l (int, locale_t) throw (); 1586: extern int isgraph_l (int, locale_t) throw (); 1586: extern int isprint_l (int, locale_t) throw (); 1586: extern int ispunct_l (int, locale_t) throw (); 1586: extern int isspace_l (int, locale_t) throw (); 1586: extern int isupper_l (int, locale_t) throw (); 1586: extern int isxdigit_l (int, locale_t) throw (); 1586: 1586: extern int isblank_l (int, locale_t) throw (); 1586: 1586: 1586: 1586: extern int __tolower_l (int __c, locale_t __l) throw (); 1586: extern int tolower_l (int __c, locale_t __l) throw (); 1586: 1586: 1586: extern int __toupper_l (int __c, locale_t __l) throw (); 1586: extern int toupper_l (int __c, locale_t __l) throw (); 1586: # 327 "/usr/mipsel-linux-gnu/include/ctype.h" 3 1586: } 1586: # 43 "/usr/mipsel-linux-gnu/include/c++/9/cctype" 2 3 1586: # 62 "/usr/mipsel-linux-gnu/include/c++/9/cctype" 3 1586: namespace std 1586: { 1586: using ::isalnum; 1586: using ::isalpha; 1586: using ::iscntrl; 1586: using ::isdigit; 1586: using ::isgraph; 1586: using ::islower; 1586: using ::isprint; 1586: using ::ispunct; 1586: using ::isspace; 1586: using ::isupper; 1586: using ::isxdigit; 1586: using ::tolower; 1586: using ::toupper; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: namespace std 1586: { 1586: using ::isblank; 1586: } 1586: # 43 "/usr/mipsel-linux-gnu/include/c++/9/bits/localefwd.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 55 "/usr/mipsel-linux-gnu/include/c++/9/bits/localefwd.h" 3 1586: class locale; 1586: 1586: template 1586: bool 1586: has_facet(const locale&) throw(); 1586: 1586: template 1586: const _Facet& 1586: use_facet(const locale&); 1586: 1586: 1586: template 1586: bool 1586: isspace(_CharT, const locale&); 1586: 1586: template 1586: bool 1586: isprint(_CharT, const locale&); 1586: 1586: template 1586: bool 1586: iscntrl(_CharT, const locale&); 1586: 1586: template 1586: bool 1586: isupper(_CharT, const locale&); 1586: 1586: template 1586: bool 1586: islower(_CharT, const locale&); 1586: 1586: template 1586: bool 1586: isalpha(_CharT, const locale&); 1586: 1586: template 1586: bool 1586: isdigit(_CharT, const locale&); 1586: 1586: template 1586: bool 1586: ispunct(_CharT, const locale&); 1586: 1586: template 1586: bool 1586: isxdigit(_CharT, const locale&); 1586: 1586: template 1586: bool 1586: isalnum(_CharT, const locale&); 1586: 1586: template 1586: bool 1586: isgraph(_CharT, const locale&); 1586: 1586: 1586: template 1586: bool 1586: isblank(_CharT, const locale&); 1586: 1586: 1586: template 1586: _CharT 1586: toupper(_CharT, const locale&); 1586: 1586: template 1586: _CharT 1586: tolower(_CharT, const locale&); 1586: 1586: 1586: class ctype_base; 1586: template 1586: class ctype; 1586: template<> class ctype; 1586: 1586: template<> class ctype; 1586: 1586: template 1586: class ctype_byname; 1586: 1586: 1586: class codecvt_base; 1586: template 1586: class codecvt; 1586: template<> class codecvt; 1586: 1586: template<> class codecvt; 1586: 1586: 1586: template<> class codecvt; 1586: template<> class codecvt; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: class codecvt_byname; 1586: 1586: 1586: 1586: template > 1586: class num_get; 1586: template > 1586: class num_put; 1586: 1586: namespace __cxx11 { 1586: template class numpunct; 1586: template class numpunct_byname; 1586: } 1586: 1586: namespace __cxx11 { 1586: 1586: template 1586: class collate; 1586: template 1586: class collate_byname; 1586: } 1586: 1586: 1586: class time_base; 1586: namespace __cxx11 { 1586: template > 1586: class time_get; 1586: template > 1586: class time_get_byname; 1586: } 1586: template > 1586: class time_put; 1586: template > 1586: class time_put_byname; 1586: 1586: 1586: class money_base; 1586: namespace __cxx11 { 1586: template > 1586: class money_get; 1586: template > 1586: class money_put; 1586: } 1586: namespace __cxx11 { 1586: template 1586: class moneypunct; 1586: template 1586: class moneypunct_byname; 1586: } 1586: 1586: 1586: class messages_base; 1586: namespace __cxx11 { 1586: template 1586: class messages; 1586: template 1586: class messages_byname; 1586: } 1586: 1586: 1586: } 1586: # 44 "/usr/mipsel-linux-gnu/include/c++/9/string" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/ostream_insert.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/ostream_insert.h" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/ostream_insert.h" 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/cxxabi_forced.h" 1 3 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/cxxabi_forced.h" 3 1586: 1586: # 35 "/usr/mipsel-linux-gnu/include/c++/9/bits/cxxabi_forced.h" 3 1586: 1586: #pragma GCC visibility push(default) 1586: 1586: 1586: namespace __cxxabiv1 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: class __forced_unwind 1586: { 1586: virtual ~__forced_unwind() throw(); 1586: 1586: 1586: virtual void __pure_dummy() = 0; 1586: }; 1586: } 1586: 1586: 1586: #pragma GCC visibility pop 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/bits/ostream_insert.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: template 1586: inline void 1586: __ostream_write(basic_ostream<_CharT, _Traits>& __out, 1586: const _CharT* __s, streamsize __n) 1586: { 1586: typedef basic_ostream<_CharT, _Traits> __ostream_type; 1586: typedef typename __ostream_type::ios_base __ios_base; 1586: 1586: const streamsize __put = __out.rdbuf()->sputn(__s, __n); 1586: if (__put != __n) 1586: __out.setstate(__ios_base::badbit); 1586: } 1586: 1586: template 1586: inline void 1586: __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n) 1586: { 1586: typedef basic_ostream<_CharT, _Traits> __ostream_type; 1586: typedef typename __ostream_type::ios_base __ios_base; 1586: 1586: const _CharT __c = __out.fill(); 1586: for (; __n > 0; --__n) 1586: { 1586: const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c); 1586: if (_Traits::eq_int_type(__put, _Traits::eof())) 1586: { 1586: __out.setstate(__ios_base::badbit); 1586: break; 1586: } 1586: } 1586: } 1586: 1586: template 1586: basic_ostream<_CharT, _Traits>& 1586: __ostream_insert(basic_ostream<_CharT, _Traits>& __out, 1586: const _CharT* __s, streamsize __n) 1586: { 1586: typedef basic_ostream<_CharT, _Traits> __ostream_type; 1586: typedef typename __ostream_type::ios_base __ios_base; 1586: 1586: typename __ostream_type::sentry __cerb(__out); 1586: if (__cerb) 1586: { 1586: try 1586: { 1586: const streamsize __w = __out.width(); 1586: if (__w > __n) 1586: { 1586: const bool __left = ((__out.flags() 1586: & __ios_base::adjustfield) 1586: == __ios_base::left); 1586: if (!__left) 1586: __ostream_fill(__out, __w - __n); 1586: if (__out.good()) 1586: __ostream_write(__out, __s, __n); 1586: if (__left && __out.good()) 1586: __ostream_fill(__out, __w - __n); 1586: } 1586: else 1586: __ostream_write(__out, __s, __n); 1586: __out.width(0); 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: __out._M_setstate(__ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { __out._M_setstate(__ios_base::badbit); } 1586: } 1586: return __out; 1586: } 1586: 1586: 1586: 1586: 1586: extern template ostream& __ostream_insert(ostream&, const char*, streamsize); 1586: 1586: 1586: extern template wostream& __ostream_insert(wostream&, const wchar_t*, 1586: streamsize); 1586: 1586: 1586: 1586: 1586: } 1586: # 45 "/usr/mipsel-linux-gnu/include/c++/9/string" 2 3 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_function.h" 1 3 1586: # 63 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_function.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 104 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_function.h" 3 1586: template 1586: struct unary_function 1586: { 1586: 1586: typedef _Arg argument_type; 1586: 1586: 1586: typedef _Result result_type; 1586: }; 1586: 1586: 1586: 1586: 1586: template 1586: struct binary_function 1586: { 1586: 1586: typedef _Arg1 first_argument_type; 1586: 1586: 1586: typedef _Arg2 second_argument_type; 1586: 1586: 1586: typedef _Result result_type; 1586: }; 1586: # 166 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_function.h" 3 1586: template 1586: struct plus : public binary_function<_Tp, _Tp, _Tp> 1586: { 1586: 1586: _Tp 1586: operator()(const _Tp& __x, const _Tp& __y) const 1586: { return __x + __y; } 1586: }; 1586: 1586: 1586: template 1586: struct minus : public binary_function<_Tp, _Tp, _Tp> 1586: { 1586: 1586: _Tp 1586: operator()(const _Tp& __x, const _Tp& __y) const 1586: { return __x - __y; } 1586: }; 1586: 1586: 1586: template 1586: struct multiplies : public binary_function<_Tp, _Tp, _Tp> 1586: { 1586: 1586: _Tp 1586: operator()(const _Tp& __x, const _Tp& __y) const 1586: { return __x * __y; } 1586: }; 1586: 1586: 1586: template 1586: struct divides : public binary_function<_Tp, _Tp, _Tp> 1586: { 1586: 1586: _Tp 1586: operator()(const _Tp& __x, const _Tp& __y) const 1586: { return __x / __y; } 1586: }; 1586: 1586: 1586: template 1586: struct modulus : public binary_function<_Tp, _Tp, _Tp> 1586: { 1586: 1586: _Tp 1586: operator()(const _Tp& __x, const _Tp& __y) const 1586: { return __x % __y; } 1586: }; 1586: 1586: 1586: template 1586: struct negate : public unary_function<_Tp, _Tp> 1586: { 1586: 1586: _Tp 1586: operator()(const _Tp& __x) const 1586: { return -__x; } 1586: }; 1586: # 350 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_function.h" 3 1586: template 1586: struct equal_to : public binary_function<_Tp, _Tp, bool> 1586: { 1586: 1586: bool 1586: operator()(const _Tp& __x, const _Tp& __y) const 1586: { return __x == __y; } 1586: }; 1586: 1586: 1586: template 1586: struct not_equal_to : public binary_function<_Tp, _Tp, bool> 1586: { 1586: 1586: bool 1586: operator()(const _Tp& __x, const _Tp& __y) const 1586: { return __x != __y; } 1586: }; 1586: 1586: 1586: template 1586: struct greater : public binary_function<_Tp, _Tp, bool> 1586: { 1586: 1586: bool 1586: operator()(const _Tp& __x, const _Tp& __y) const 1586: { return __x > __y; } 1586: }; 1586: 1586: 1586: template 1586: struct less : public binary_function<_Tp, _Tp, bool> 1586: { 1586: 1586: bool 1586: operator()(const _Tp& __x, const _Tp& __y) const 1586: { return __x < __y; } 1586: }; 1586: 1586: 1586: template 1586: struct greater_equal : public binary_function<_Tp, _Tp, bool> 1586: { 1586: 1586: bool 1586: operator()(const _Tp& __x, const _Tp& __y) const 1586: { return __x >= __y; } 1586: }; 1586: 1586: 1586: template 1586: struct less_equal : public binary_function<_Tp, _Tp, bool> 1586: { 1586: 1586: bool 1586: operator()(const _Tp& __x, const _Tp& __y) const 1586: { return __x <= __y; } 1586: }; 1586: 1586: 1586: template 1586: struct greater<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 1586: { 1586: bool 1586: operator()(_Tp* __x, _Tp* __y) const noexcept 1586: { 1586: # 424 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_function.h" 3 1586: return (unsigned int)__x > (unsigned int)__y; 1586: } 1586: }; 1586: 1586: 1586: template 1586: struct less<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 1586: { 1586: bool 1586: operator()(_Tp* __x, _Tp* __y) const noexcept 1586: { 1586: # 443 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_function.h" 3 1586: return (unsigned int)__x < (unsigned int)__y; 1586: } 1586: }; 1586: 1586: 1586: template 1586: struct greater_equal<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 1586: { 1586: bool 1586: operator()(_Tp* __x, _Tp* __y) const noexcept 1586: { 1586: # 462 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_function.h" 3 1586: return (unsigned int)__x >= (unsigned int)__y; 1586: } 1586: }; 1586: 1586: 1586: template 1586: struct less_equal<_Tp*> : public binary_function<_Tp*, _Tp*, bool> 1586: { 1586: bool 1586: operator()(_Tp* __x, _Tp* __y) const noexcept 1586: { 1586: # 481 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_function.h" 3 1586: return (unsigned int)__x <= (unsigned int)__y; 1586: } 1586: }; 1586: # 785 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_function.h" 3 1586: template 1586: struct logical_and : public binary_function<_Tp, _Tp, bool> 1586: { 1586: 1586: bool 1586: operator()(const _Tp& __x, const _Tp& __y) const 1586: { return __x && __y; } 1586: }; 1586: 1586: 1586: template 1586: struct logical_or : public binary_function<_Tp, _Tp, bool> 1586: { 1586: 1586: bool 1586: operator()(const _Tp& __x, const _Tp& __y) const 1586: { return __x || __y; } 1586: }; 1586: 1586: 1586: template 1586: struct logical_not : public unary_function<_Tp, bool> 1586: { 1586: 1586: bool 1586: operator()(const _Tp& __x) const 1586: { return !__x; } 1586: }; 1586: # 878 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_function.h" 3 1586: template 1586: struct bit_and : public binary_function<_Tp, _Tp, _Tp> 1586: { 1586: 1586: _Tp 1586: operator()(const _Tp& __x, const _Tp& __y) const 1586: { return __x & __y; } 1586: }; 1586: 1586: template 1586: struct bit_or : public binary_function<_Tp, _Tp, _Tp> 1586: { 1586: 1586: _Tp 1586: operator()(const _Tp& __x, const _Tp& __y) const 1586: { return __x | __y; } 1586: }; 1586: 1586: template 1586: struct bit_xor : public binary_function<_Tp, _Tp, _Tp> 1586: { 1586: 1586: _Tp 1586: operator()(const _Tp& __x, const _Tp& __y) const 1586: { return __x ^ __y; } 1586: }; 1586: 1586: template 1586: struct bit_not : public unary_function<_Tp, _Tp> 1586: { 1586: 1586: _Tp 1586: operator()(const _Tp& __x) const 1586: { return ~__x; } 1586: }; 1586: # 1002 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_function.h" 3 1586: template 1586: class unary_negate 1586: : public unary_function 1586: { 1586: protected: 1586: _Predicate _M_pred; 1586: 1586: public: 1586: 1586: explicit 1586: unary_negate(const _Predicate& __x) : _M_pred(__x) { } 1586: 1586: 1586: bool 1586: operator()(const typename _Predicate::argument_type& __x) const 1586: { return !_M_pred(__x); } 1586: }; 1586: 1586: 1586: template 1586: 1586: inline unary_negate<_Predicate> 1586: not1(const _Predicate& __pred) 1586: { return unary_negate<_Predicate>(__pred); } 1586: 1586: 1586: template 1586: class binary_negate 1586: : public binary_function 1586: { 1586: protected: 1586: _Predicate _M_pred; 1586: 1586: public: 1586: 1586: explicit 1586: binary_negate(const _Predicate& __x) : _M_pred(__x) { } 1586: 1586: 1586: bool 1586: operator()(const typename _Predicate::first_argument_type& __x, 1586: const typename _Predicate::second_argument_type& __y) const 1586: { return !_M_pred(__x, __y); } 1586: }; 1586: 1586: 1586: template 1586: 1586: inline binary_negate<_Predicate> 1586: not2(const _Predicate& __pred) 1586: { return binary_negate<_Predicate>(__pred); } 1586: # 1079 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_function.h" 3 1586: template 1586: class pointer_to_unary_function : public unary_function<_Arg, _Result> 1586: { 1586: protected: 1586: _Result (*_M_ptr)(_Arg); 1586: 1586: public: 1586: pointer_to_unary_function() { } 1586: 1586: explicit 1586: pointer_to_unary_function(_Result (*__x)(_Arg)) 1586: : _M_ptr(__x) { } 1586: 1586: _Result 1586: operator()(_Arg __x) const 1586: { return _M_ptr(__x); } 1586: }; 1586: 1586: 1586: template 1586: inline pointer_to_unary_function<_Arg, _Result> 1586: ptr_fun(_Result (*__x)(_Arg)) 1586: { return pointer_to_unary_function<_Arg, _Result>(__x); } 1586: 1586: 1586: template 1586: class pointer_to_binary_function 1586: : public binary_function<_Arg1, _Arg2, _Result> 1586: { 1586: protected: 1586: _Result (*_M_ptr)(_Arg1, _Arg2); 1586: 1586: public: 1586: pointer_to_binary_function() { } 1586: 1586: explicit 1586: pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) 1586: : _M_ptr(__x) { } 1586: 1586: _Result 1586: operator()(_Arg1 __x, _Arg2 __y) const 1586: { return _M_ptr(__x, __y); } 1586: }; 1586: 1586: 1586: template 1586: inline pointer_to_binary_function<_Arg1, _Arg2, _Result> 1586: ptr_fun(_Result (*__x)(_Arg1, _Arg2)) 1586: { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); } 1586: 1586: 1586: template 1586: struct _Identity 1586: : public unary_function<_Tp, _Tp> 1586: { 1586: _Tp& 1586: operator()(_Tp& __x) const 1586: { return __x; } 1586: 1586: const _Tp& 1586: operator()(const _Tp& __x) const 1586: { return __x; } 1586: }; 1586: 1586: 1586: template struct _Identity : _Identity<_Tp> { }; 1586: 1586: template 1586: struct _Select1st 1586: : public unary_function<_Pair, typename _Pair::first_type> 1586: { 1586: typename _Pair::first_type& 1586: operator()(_Pair& __x) const 1586: { return __x.first; } 1586: 1586: const typename _Pair::first_type& 1586: operator()(const _Pair& __x) const 1586: { return __x.first; } 1586: 1586: 1586: template 1586: typename _Pair2::first_type& 1586: operator()(_Pair2& __x) const 1586: { return __x.first; } 1586: 1586: template 1586: const typename _Pair2::first_type& 1586: operator()(const _Pair2& __x) const 1586: { return __x.first; } 1586: 1586: }; 1586: 1586: template 1586: struct _Select2nd 1586: : public unary_function<_Pair, typename _Pair::second_type> 1586: { 1586: typename _Pair::second_type& 1586: operator()(_Pair& __x) const 1586: { return __x.second; } 1586: 1586: const typename _Pair::second_type& 1586: operator()(const _Pair& __x) const 1586: { return __x.second; } 1586: }; 1586: # 1202 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_function.h" 3 1586: template 1586: class mem_fun_t : public unary_function<_Tp*, _Ret> 1586: { 1586: public: 1586: explicit 1586: mem_fun_t(_Ret (_Tp::*__pf)()) 1586: : _M_f(__pf) { } 1586: 1586: _Ret 1586: operator()(_Tp* __p) const 1586: { return (__p->*_M_f)(); } 1586: 1586: private: 1586: _Ret (_Tp::*_M_f)(); 1586: }; 1586: 1586: 1586: 1586: template 1586: class const_mem_fun_t : public unary_function 1586: { 1586: public: 1586: explicit 1586: const_mem_fun_t(_Ret (_Tp::*__pf)() const) 1586: : _M_f(__pf) { } 1586: 1586: _Ret 1586: operator()(const _Tp* __p) const 1586: { return (__p->*_M_f)(); } 1586: 1586: private: 1586: _Ret (_Tp::*_M_f)() const; 1586: }; 1586: 1586: 1586: 1586: template 1586: class mem_fun_ref_t : public unary_function<_Tp, _Ret> 1586: { 1586: public: 1586: explicit 1586: mem_fun_ref_t(_Ret (_Tp::*__pf)()) 1586: : _M_f(__pf) { } 1586: 1586: _Ret 1586: operator()(_Tp& __r) const 1586: { return (__r.*_M_f)(); } 1586: 1586: private: 1586: _Ret (_Tp::*_M_f)(); 1586: }; 1586: 1586: 1586: 1586: template 1586: class const_mem_fun_ref_t : public unary_function<_Tp, _Ret> 1586: { 1586: public: 1586: explicit 1586: const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) 1586: : _M_f(__pf) { } 1586: 1586: _Ret 1586: operator()(const _Tp& __r) const 1586: { return (__r.*_M_f)(); } 1586: 1586: private: 1586: _Ret (_Tp::*_M_f)() const; 1586: }; 1586: 1586: 1586: 1586: template 1586: class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret> 1586: { 1586: public: 1586: explicit 1586: mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) 1586: : _M_f(__pf) { } 1586: 1586: _Ret 1586: operator()(_Tp* __p, _Arg __x) const 1586: { return (__p->*_M_f)(__x); } 1586: 1586: private: 1586: _Ret (_Tp::*_M_f)(_Arg); 1586: }; 1586: 1586: 1586: 1586: template 1586: class const_mem_fun1_t : public binary_function 1586: { 1586: public: 1586: explicit 1586: const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) 1586: : _M_f(__pf) { } 1586: 1586: _Ret 1586: operator()(const _Tp* __p, _Arg __x) const 1586: { return (__p->*_M_f)(__x); } 1586: 1586: private: 1586: _Ret (_Tp::*_M_f)(_Arg) const; 1586: }; 1586: 1586: 1586: 1586: template 1586: class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 1586: { 1586: public: 1586: explicit 1586: mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) 1586: : _M_f(__pf) { } 1586: 1586: _Ret 1586: operator()(_Tp& __r, _Arg __x) const 1586: { return (__r.*_M_f)(__x); } 1586: 1586: private: 1586: _Ret (_Tp::*_M_f)(_Arg); 1586: }; 1586: 1586: 1586: 1586: template 1586: class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 1586: { 1586: public: 1586: explicit 1586: const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) 1586: : _M_f(__pf) { } 1586: 1586: _Ret 1586: operator()(const _Tp& __r, _Arg __x) const 1586: { return (__r.*_M_f)(__x); } 1586: 1586: private: 1586: _Ret (_Tp::*_M_f)(_Arg) const; 1586: }; 1586: 1586: 1586: 1586: template 1586: inline mem_fun_t<_Ret, _Tp> 1586: mem_fun(_Ret (_Tp::*__f)()) 1586: { return mem_fun_t<_Ret, _Tp>(__f); } 1586: 1586: template 1586: inline const_mem_fun_t<_Ret, _Tp> 1586: mem_fun(_Ret (_Tp::*__f)() const) 1586: { return const_mem_fun_t<_Ret, _Tp>(__f); } 1586: 1586: template 1586: inline mem_fun_ref_t<_Ret, _Tp> 1586: mem_fun_ref(_Ret (_Tp::*__f)()) 1586: { return mem_fun_ref_t<_Ret, _Tp>(__f); } 1586: 1586: template 1586: inline const_mem_fun_ref_t<_Ret, _Tp> 1586: mem_fun_ref(_Ret (_Tp::*__f)() const) 1586: { return const_mem_fun_ref_t<_Ret, _Tp>(__f); } 1586: 1586: template 1586: inline mem_fun1_t<_Ret, _Tp, _Arg> 1586: mem_fun(_Ret (_Tp::*__f)(_Arg)) 1586: { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 1586: 1586: template 1586: inline const_mem_fun1_t<_Ret, _Tp, _Arg> 1586: mem_fun(_Ret (_Tp::*__f)(_Arg) const) 1586: { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 1586: 1586: template 1586: inline mem_fun1_ref_t<_Ret, _Tp, _Arg> 1586: mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) 1586: { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 1586: 1586: template 1586: inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> 1586: mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) 1586: { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 1586: 1586: 1586: 1586: 1586: } 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/backward/binders.h" 1 3 1586: # 60 "/usr/mipsel-linux-gnu/include/c++/9/backward/binders.h" 3 1586: #pragma GCC diagnostic push 1586: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 107 "/usr/mipsel-linux-gnu/include/c++/9/backward/binders.h" 3 1586: template 1586: class binder1st 1586: : public unary_function 1586: { 1586: protected: 1586: _Operation op; 1586: typename _Operation::first_argument_type value; 1586: 1586: public: 1586: binder1st(const _Operation& __x, 1586: const typename _Operation::first_argument_type& __y) 1586: : op(__x), value(__y) { } 1586: 1586: typename _Operation::result_type 1586: operator()(const typename _Operation::second_argument_type& __x) const 1586: { return op(value, __x); } 1586: 1586: 1586: 1586: typename _Operation::result_type 1586: operator()(typename _Operation::second_argument_type& __x) const 1586: { return op(value, __x); } 1586: } __attribute__ ((__deprecated__)); 1586: 1586: 1586: template 1586: inline binder1st<_Operation> 1586: bind1st(const _Operation& __fn, const _Tp& __x) 1586: { 1586: typedef typename _Operation::first_argument_type _Arg1_type; 1586: return binder1st<_Operation>(__fn, _Arg1_type(__x)); 1586: } 1586: 1586: 1586: template 1586: class binder2nd 1586: : public unary_function 1586: { 1586: protected: 1586: _Operation op; 1586: typename _Operation::second_argument_type value; 1586: 1586: public: 1586: binder2nd(const _Operation& __x, 1586: const typename _Operation::second_argument_type& __y) 1586: : op(__x), value(__y) { } 1586: 1586: typename _Operation::result_type 1586: operator()(const typename _Operation::first_argument_type& __x) const 1586: { return op(__x, value); } 1586: 1586: 1586: 1586: typename _Operation::result_type 1586: operator()(typename _Operation::first_argument_type& __x) const 1586: { return op(__x, value); } 1586: } __attribute__ ((__deprecated__)); 1586: 1586: 1586: template 1586: inline binder2nd<_Operation> 1586: bind2nd(const _Operation& __fn, const _Tp& __x) 1586: { 1586: typedef typename _Operation::second_argument_type _Arg2_type; 1586: return binder2nd<_Operation>(__fn, _Arg2_type(__x)); 1586: } 1586: 1586: 1586: 1586: } 1586: 1586: #pragma GCC diagnostic pop 1586: # 1393 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_function.h" 2 3 1586: # 49 "/usr/mipsel-linux-gnu/include/c++/9/string" 2 3 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/range_access.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/range_access.h" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/range_access.h" 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/initializer_list" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/initializer_list" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/initializer_list" 3 1586: 1586: 1586: 1586: 1586: 1586: #pragma GCC visibility push(default) 1586: 1586: 1586: 1586: namespace std 1586: { 1586: 1586: template 1586: class initializer_list 1586: { 1586: public: 1586: typedef _E value_type; 1586: typedef const _E& reference; 1586: typedef const _E& const_reference; 1586: typedef size_t size_type; 1586: typedef const _E* iterator; 1586: typedef const _E* const_iterator; 1586: 1586: private: 1586: iterator _M_array; 1586: size_type _M_len; 1586: 1586: 1586: constexpr initializer_list(const_iterator __a, size_type __l) 1586: : _M_array(__a), _M_len(__l) { } 1586: 1586: public: 1586: constexpr initializer_list() noexcept 1586: : _M_array(0), _M_len(0) { } 1586: 1586: 1586: constexpr size_type 1586: size() const noexcept { return _M_len; } 1586: 1586: 1586: constexpr const_iterator 1586: begin() const noexcept { return _M_array; } 1586: 1586: 1586: constexpr const_iterator 1586: end() const noexcept { return begin() + size(); } 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: constexpr const _Tp* 1586: begin(initializer_list<_Tp> __ils) noexcept 1586: { return __ils.begin(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: constexpr const _Tp* 1586: end(initializer_list<_Tp> __ils) noexcept 1586: { return __ils.end(); } 1586: } 1586: 1586: #pragma GCC visibility pop 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/bits/range_access.h" 2 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline auto 1586: begin(_Container& __cont) -> decltype(__cont.begin()) 1586: { return __cont.begin(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline auto 1586: begin(const _Container& __cont) -> decltype(__cont.begin()) 1586: { return __cont.begin(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline auto 1586: end(_Container& __cont) -> decltype(__cont.end()) 1586: { return __cont.end(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline auto 1586: end(const _Container& __cont) -> decltype(__cont.end()) 1586: { return __cont.end(); } 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline _Tp* 1586: begin(_Tp (&__arr)[_Nm]) 1586: { return __arr; } 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline _Tp* 1586: end(_Tp (&__arr)[_Nm]) 1586: { return __arr + _Nm; } 1586: # 323 "/usr/mipsel-linux-gnu/include/c++/9/bits/range_access.h" 3 1586: 1586: } 1586: # 55 "/usr/mipsel-linux-gnu/include/c++/9/string" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 1 3 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: 1586: # 38 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/ext/atomicity.h" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/c++/9/ext/atomicity.h" 3 1586: 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/ext/atomicity.h" 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/gthr.h" 1 3 1586: # 30 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/gthr.h" 3 1586: #pragma GCC visibility push(default) 1586: # 148 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/gthr.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/gthr-default.h" 1 3 1586: # 35 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/gthr-default.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/pthread.h" 1 3 1586: # 22 "/usr/mipsel-linux-gnu/include/pthread.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/sched.h" 1 3 1586: # 29 "/usr/mipsel-linux-gnu/include/sched.h" 3 1586: # 1 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stddef.h" 1 3 4 1586: # 30 "/usr/mipsel-linux-gnu/include/sched.h" 2 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/time_t.h" 1 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef __time_t time_t; 1586: # 32 "/usr/mipsel-linux-gnu/include/sched.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/struct_timespec.h" 1 3 1586: # 10 "/usr/mipsel-linux-gnu/include/bits/types/struct_timespec.h" 3 1586: struct timespec 1586: { 1586: __time_t tv_sec; 1586: 1586: 1586: 1586: __syscall_slong_t tv_nsec; 1586: # 26 "/usr/mipsel-linux-gnu/include/bits/types/struct_timespec.h" 3 1586: }; 1586: # 33 "/usr/mipsel-linux-gnu/include/sched.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: typedef __pid_t pid_t; 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/sched.h" 1 3 1586: # 76 "/usr/mipsel-linux-gnu/include/bits/sched.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/struct_sched_param.h" 1 3 1586: # 23 "/usr/mipsel-linux-gnu/include/bits/types/struct_sched_param.h" 3 1586: struct sched_param 1586: { 1586: int sched_priority; 1586: }; 1586: # 77 "/usr/mipsel-linux-gnu/include/bits/sched.h" 2 3 1586: 1586: extern "C" { 1586: 1586: 1586: 1586: extern int clone (int (*__fn) (void *__arg), void *__child_stack, 1586: int __flags, void *__arg, ...) throw (); 1586: 1586: 1586: extern int unshare (int __flags) throw (); 1586: 1586: 1586: extern int sched_getcpu (void) throw (); 1586: 1586: 1586: extern int getcpu (unsigned int *, unsigned int *) throw (); 1586: 1586: 1586: extern int setns (int __fd, int __nstype) throw (); 1586: 1586: 1586: } 1586: # 44 "/usr/mipsel-linux-gnu/include/sched.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/cpu-set.h" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/bits/cpu-set.h" 3 1586: typedef unsigned long int __cpu_mask; 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef struct 1586: { 1586: __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; 1586: } cpu_set_t; 1586: # 115 "/usr/mipsel-linux-gnu/include/bits/cpu-set.h" 3 1586: extern "C" { 1586: 1586: extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) 1586: throw (); 1586: extern cpu_set_t *__sched_cpualloc (size_t __count) throw () __attribute__ ((__warn_unused_result__)); 1586: extern void __sched_cpufree (cpu_set_t *__set) throw (); 1586: 1586: } 1586: # 45 "/usr/mipsel-linux-gnu/include/sched.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern "C" { 1586: 1586: 1586: extern int sched_setparam (__pid_t __pid, const struct sched_param *__param) 1586: throw (); 1586: 1586: 1586: extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw (); 1586: 1586: 1586: extern int sched_setscheduler (__pid_t __pid, int __policy, 1586: const struct sched_param *__param) throw (); 1586: 1586: 1586: extern int sched_getscheduler (__pid_t __pid) throw (); 1586: 1586: 1586: extern int sched_yield (void) throw (); 1586: 1586: 1586: extern int sched_get_priority_max (int __algorithm) throw (); 1586: 1586: 1586: extern int sched_get_priority_min (int __algorithm) throw (); 1586: 1586: 1586: extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw (); 1586: # 121 "/usr/mipsel-linux-gnu/include/sched.h" 3 1586: extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, 1586: const cpu_set_t *__cpuset) throw (); 1586: 1586: 1586: extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, 1586: cpu_set_t *__cpuset) throw (); 1586: 1586: 1586: } 1586: # 23 "/usr/mipsel-linux-gnu/include/pthread.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/time.h" 1 3 1586: # 29 "/usr/mipsel-linux-gnu/include/time.h" 3 1586: # 1 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stddef.h" 1 3 4 1586: # 30 "/usr/mipsel-linux-gnu/include/time.h" 2 3 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/time.h" 1 3 1586: # 73 "/usr/mipsel-linux-gnu/include/bits/time.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/timex.h" 1 3 1586: # 22 "/usr/mipsel-linux-gnu/include/bits/timex.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/struct_timeval.h" 1 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: struct timeval 1586: { 1586: __time_t tv_sec; 1586: __suseconds_t tv_usec; 1586: }; 1586: # 23 "/usr/mipsel-linux-gnu/include/bits/timex.h" 2 3 1586: 1586: 1586: 1586: struct timex 1586: { 1586: unsigned int modes; 1586: __syscall_slong_t offset; 1586: __syscall_slong_t freq; 1586: __syscall_slong_t maxerror; 1586: __syscall_slong_t esterror; 1586: int status; 1586: __syscall_slong_t constant; 1586: __syscall_slong_t precision; 1586: __syscall_slong_t tolerance; 1586: struct timeval time; 1586: __syscall_slong_t tick; 1586: __syscall_slong_t ppsfreq; 1586: __syscall_slong_t jitter; 1586: int shift; 1586: __syscall_slong_t stabil; 1586: __syscall_slong_t jitcnt; 1586: __syscall_slong_t calcnt; 1586: __syscall_slong_t errcnt; 1586: __syscall_slong_t stbcnt; 1586: 1586: int tai; 1586: 1586: 1586: int :32; int :32; int :32; int :32; 1586: int :32; int :32; int :32; int :32; 1586: int :32; int :32; int :32; 1586: }; 1586: # 74 "/usr/mipsel-linux-gnu/include/bits/time.h" 2 3 1586: 1586: extern "C" { 1586: 1586: 1586: extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) throw (); 1586: 1586: } 1586: # 34 "/usr/mipsel-linux-gnu/include/time.h" 2 3 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/clock_t.h" 1 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef __clock_t clock_t; 1586: # 38 "/usr/mipsel-linux-gnu/include/time.h" 2 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/struct_tm.h" 1 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: struct tm 1586: { 1586: int tm_sec; 1586: int tm_min; 1586: int tm_hour; 1586: int tm_mday; 1586: int tm_mon; 1586: int tm_year; 1586: int tm_wday; 1586: int tm_yday; 1586: int tm_isdst; 1586: 1586: 1586: long int tm_gmtoff; 1586: const char *tm_zone; 1586: 1586: 1586: 1586: 1586: }; 1586: # 40 "/usr/mipsel-linux-gnu/include/time.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/clockid_t.h" 1 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef __clockid_t clockid_t; 1586: # 47 "/usr/mipsel-linux-gnu/include/time.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/timer_t.h" 1 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef __timer_t timer_t; 1586: # 48 "/usr/mipsel-linux-gnu/include/time.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/struct_itimerspec.h" 1 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: struct itimerspec 1586: { 1586: struct timespec it_interval; 1586: struct timespec it_value; 1586: }; 1586: # 49 "/usr/mipsel-linux-gnu/include/time.h" 2 3 1586: struct sigevent; 1586: # 68 "/usr/mipsel-linux-gnu/include/time.h" 3 1586: extern "C" { 1586: 1586: 1586: 1586: extern clock_t clock (void) throw (); 1586: 1586: 1586: extern time_t time (time_t *__timer) throw (); 1586: 1586: 1586: extern double difftime (time_t __time1, time_t __time0) 1586: throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern time_t mktime (struct tm *__tp) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern size_t strftime (char *__restrict __s, size_t __maxsize, 1586: const char *__restrict __format, 1586: const struct tm *__restrict __tp) throw (); 1586: 1586: 1586: 1586: 1586: extern char *strptime (const char *__restrict __s, 1586: const char *__restrict __fmt, struct tm *__tp) 1586: throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern size_t strftime_l (char *__restrict __s, size_t __maxsize, 1586: const char *__restrict __format, 1586: const struct tm *__restrict __tp, 1586: locale_t __loc) throw (); 1586: 1586: 1586: 1586: extern char *strptime_l (const char *__restrict __s, 1586: const char *__restrict __fmt, struct tm *__tp, 1586: locale_t __loc) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern struct tm *gmtime (const time_t *__timer) throw (); 1586: 1586: 1586: 1586: extern struct tm *localtime (const time_t *__timer) throw (); 1586: 1586: 1586: 1586: 1586: extern struct tm *gmtime_r (const time_t *__restrict __timer, 1586: struct tm *__restrict __tp) throw (); 1586: 1586: 1586: 1586: extern struct tm *localtime_r (const time_t *__restrict __timer, 1586: struct tm *__restrict __tp) throw (); 1586: 1586: 1586: 1586: 1586: extern char *asctime (const struct tm *__tp) throw (); 1586: 1586: 1586: extern char *ctime (const time_t *__timer) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern char *asctime_r (const struct tm *__restrict __tp, 1586: char *__restrict __buf) throw (); 1586: 1586: 1586: extern char *ctime_r (const time_t *__restrict __timer, 1586: char *__restrict __buf) throw (); 1586: 1586: 1586: 1586: 1586: extern char *__tzname[2]; 1586: extern int __daylight; 1586: extern long int __timezone; 1586: 1586: 1586: 1586: 1586: extern char *tzname[2]; 1586: 1586: 1586: 1586: extern void tzset (void) throw (); 1586: 1586: 1586: 1586: extern int daylight; 1586: extern long int timezone; 1586: # 190 "/usr/mipsel-linux-gnu/include/time.h" 3 1586: extern time_t timegm (struct tm *__tp) throw (); 1586: 1586: 1586: extern time_t timelocal (struct tm *__tp) throw (); 1586: 1586: 1586: extern int dysize (int __year) throw () __attribute__ ((__const__)); 1586: # 205 "/usr/mipsel-linux-gnu/include/time.h" 3 1586: extern int nanosleep (const struct timespec *__requested_time, 1586: struct timespec *__remaining); 1586: 1586: 1586: 1586: extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); 1586: 1586: 1586: extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); 1586: 1586: 1586: extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) 1586: throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int clock_nanosleep (clockid_t __clock_id, int __flags, 1586: const struct timespec *__req, 1586: struct timespec *__rem); 1586: 1586: 1586: extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); 1586: 1586: 1586: 1586: 1586: extern int timer_create (clockid_t __clock_id, 1586: struct sigevent *__restrict __evp, 1586: timer_t *__restrict __timerid) throw (); 1586: 1586: 1586: extern int timer_delete (timer_t __timerid) throw (); 1586: 1586: 1586: extern int timer_settime (timer_t __timerid, int __flags, 1586: const struct itimerspec *__restrict __value, 1586: struct itimerspec *__restrict __ovalue) throw (); 1586: 1586: 1586: extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) 1586: throw (); 1586: 1586: 1586: extern int timer_getoverrun (timer_t __timerid) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern int timespec_get (struct timespec *__ts, int __base) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: # 274 "/usr/mipsel-linux-gnu/include/time.h" 3 1586: extern int getdate_err; 1586: # 283 "/usr/mipsel-linux-gnu/include/time.h" 3 1586: extern struct tm *getdate (const char *__string); 1586: # 297 "/usr/mipsel-linux-gnu/include/time.h" 3 1586: extern int getdate_r (const char *__restrict __string, 1586: struct tm *__restrict __resbufp); 1586: 1586: 1586: } 1586: # 24 "/usr/mipsel-linux-gnu/include/pthread.h" 2 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/pthreadtypes.h" 1 3 1586: # 23 "/usr/mipsel-linux-gnu/include/bits/pthreadtypes.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/thread-shared-types.h" 1 3 1586: # 44 "/usr/mipsel-linux-gnu/include/bits/thread-shared-types.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/pthreadtypes-arch.h" 1 3 1586: # 45 "/usr/mipsel-linux-gnu/include/bits/thread-shared-types.h" 2 3 1586: 1586: 1586: 1586: 1586: typedef struct __pthread_internal_list 1586: { 1586: struct __pthread_internal_list *__prev; 1586: struct __pthread_internal_list *__next; 1586: } __pthread_list_t; 1586: 1586: typedef struct __pthread_internal_slist 1586: { 1586: struct __pthread_internal_slist *__next; 1586: } __pthread_slist_t; 1586: # 74 "/usr/mipsel-linux-gnu/include/bits/thread-shared-types.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/struct_mutex.h" 1 3 1586: # 22 "/usr/mipsel-linux-gnu/include/bits/struct_mutex.h" 3 1586: struct __pthread_mutex_s 1586: { 1586: int __lock; 1586: unsigned int __count; 1586: int __owner; 1586: 1586: 1586: 1586: 1586: 1586: int __kind; 1586: 1586: 1586: 1586: 1586: 1586: unsigned int __nusers; 1586: __extension__ union 1586: { 1586: int __spins; 1586: __pthread_slist_t __list; 1586: }; 1586: 1586: 1586: }; 1586: # 75 "/usr/mipsel-linux-gnu/include/bits/thread-shared-types.h" 2 3 1586: # 87 "/usr/mipsel-linux-gnu/include/bits/thread-shared-types.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/struct_rwlock.h" 1 3 1586: # 22 "/usr/mipsel-linux-gnu/include/bits/struct_rwlock.h" 3 1586: struct __pthread_rwlock_arch_t 1586: { 1586: unsigned int __readers; 1586: unsigned int __writers; 1586: unsigned int __wrphase_futex; 1586: unsigned int __writers_futex; 1586: unsigned int __pad3; 1586: unsigned int __pad4; 1586: # 49 "/usr/mipsel-linux-gnu/include/bits/struct_rwlock.h" 3 1586: unsigned char __flags; 1586: unsigned char __shared; 1586: unsigned char __pad1; 1586: unsigned char __pad2; 1586: 1586: int __cur_writer; 1586: 1586: }; 1586: # 88 "/usr/mipsel-linux-gnu/include/bits/thread-shared-types.h" 2 3 1586: 1586: 1586: 1586: 1586: struct __pthread_cond_s 1586: { 1586: __extension__ union 1586: { 1586: __extension__ unsigned long long int __wseq; 1586: struct 1586: { 1586: unsigned int __low; 1586: unsigned int __high; 1586: } __wseq32; 1586: }; 1586: __extension__ union 1586: { 1586: __extension__ unsigned long long int __g1_start; 1586: struct 1586: { 1586: unsigned int __low; 1586: unsigned int __high; 1586: } __g1_start32; 1586: }; 1586: unsigned int __g_refs[2] ; 1586: unsigned int __g_size[2]; 1586: unsigned int __g1_orig_size; 1586: unsigned int __wrefs; 1586: unsigned int __g_signals[2]; 1586: }; 1586: # 24 "/usr/mipsel-linux-gnu/include/bits/pthreadtypes.h" 2 3 1586: 1586: 1586: 1586: typedef unsigned long int pthread_t; 1586: 1586: 1586: 1586: 1586: typedef union 1586: { 1586: char __size[4]; 1586: int __align; 1586: } pthread_mutexattr_t; 1586: 1586: 1586: 1586: 1586: typedef union 1586: { 1586: char __size[4]; 1586: int __align; 1586: } pthread_condattr_t; 1586: 1586: 1586: 1586: typedef unsigned int pthread_key_t; 1586: 1586: 1586: 1586: typedef int pthread_once_t; 1586: 1586: 1586: union pthread_attr_t 1586: { 1586: char __size[36]; 1586: long int __align; 1586: }; 1586: 1586: typedef union pthread_attr_t pthread_attr_t; 1586: 1586: 1586: 1586: 1586: typedef union 1586: { 1586: struct __pthread_mutex_s __data; 1586: char __size[24]; 1586: long int __align; 1586: } pthread_mutex_t; 1586: 1586: 1586: typedef union 1586: { 1586: struct __pthread_cond_s __data; 1586: char __size[48]; 1586: __extension__ long long int __align; 1586: } pthread_cond_t; 1586: 1586: 1586: 1586: 1586: 1586: typedef union 1586: { 1586: struct __pthread_rwlock_arch_t __data; 1586: char __size[32]; 1586: long int __align; 1586: } pthread_rwlock_t; 1586: 1586: typedef union 1586: { 1586: char __size[8]; 1586: long int __align; 1586: } pthread_rwlockattr_t; 1586: 1586: 1586: 1586: 1586: 1586: typedef volatile int pthread_spinlock_t; 1586: 1586: 1586: 1586: 1586: typedef union 1586: { 1586: char __size[20]; 1586: long int __align; 1586: } pthread_barrier_t; 1586: 1586: typedef union 1586: { 1586: char __size[4]; 1586: int __align; 1586: } pthread_barrierattr_t; 1586: # 27 "/usr/mipsel-linux-gnu/include/pthread.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/setjmp.h" 1 3 1586: # 28 "/usr/mipsel-linux-gnu/include/bits/setjmp.h" 3 1586: typedef struct __jmp_buf_internal_tag 1586: { 1586: 1586: 1586: void *__pc; 1586: 1586: 1586: void *__sp; 1586: 1586: 1586: int __regs[8]; 1586: 1586: 1586: void *__fp; 1586: 1586: 1586: void *__gp; 1586: # 63 "/usr/mipsel-linux-gnu/include/bits/setjmp.h" 3 1586: int __glibc_reserved1; 1586: 1586: 1586: 1586: 1586: 1586: double __fpregs[6]; 1586: 1586: } __jmp_buf[1]; 1586: # 28 "/usr/mipsel-linux-gnu/include/pthread.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/wordsize.h" 1 3 1586: # 29 "/usr/mipsel-linux-gnu/include/pthread.h" 2 3 1586: 1586: 1586: 1586: 1586: enum 1586: { 1586: PTHREAD_CREATE_JOINABLE, 1586: 1586: PTHREAD_CREATE_DETACHED 1586: 1586: }; 1586: 1586: 1586: 1586: enum 1586: { 1586: PTHREAD_MUTEX_TIMED_NP, 1586: PTHREAD_MUTEX_RECURSIVE_NP, 1586: PTHREAD_MUTEX_ERRORCHECK_NP, 1586: PTHREAD_MUTEX_ADAPTIVE_NP 1586: 1586: , 1586: PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, 1586: PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, 1586: PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, 1586: PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL 1586: 1586: 1586: 1586: , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP 1586: 1586: }; 1586: 1586: 1586: 1586: 1586: enum 1586: { 1586: PTHREAD_MUTEX_STALLED, 1586: PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, 1586: PTHREAD_MUTEX_ROBUST, 1586: PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: enum 1586: { 1586: PTHREAD_PRIO_NONE, 1586: PTHREAD_PRIO_INHERIT, 1586: PTHREAD_PRIO_PROTECT 1586: }; 1586: # 100 "/usr/mipsel-linux-gnu/include/pthread.h" 3 1586: enum 1586: { 1586: PTHREAD_RWLOCK_PREFER_READER_NP, 1586: PTHREAD_RWLOCK_PREFER_WRITER_NP, 1586: PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, 1586: PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP 1586: }; 1586: # 120 "/usr/mipsel-linux-gnu/include/pthread.h" 3 1586: enum 1586: { 1586: PTHREAD_INHERIT_SCHED, 1586: 1586: PTHREAD_EXPLICIT_SCHED 1586: 1586: }; 1586: 1586: 1586: 1586: enum 1586: { 1586: PTHREAD_SCOPE_SYSTEM, 1586: 1586: PTHREAD_SCOPE_PROCESS 1586: 1586: }; 1586: 1586: 1586: 1586: enum 1586: { 1586: PTHREAD_PROCESS_PRIVATE, 1586: 1586: PTHREAD_PROCESS_SHARED 1586: 1586: }; 1586: # 155 "/usr/mipsel-linux-gnu/include/pthread.h" 3 1586: struct _pthread_cleanup_buffer 1586: { 1586: void (*__routine) (void *); 1586: void *__arg; 1586: int __canceltype; 1586: struct _pthread_cleanup_buffer *__prev; 1586: }; 1586: 1586: 1586: enum 1586: { 1586: PTHREAD_CANCEL_ENABLE, 1586: 1586: PTHREAD_CANCEL_DISABLE 1586: 1586: }; 1586: enum 1586: { 1586: PTHREAD_CANCEL_DEFERRED, 1586: 1586: PTHREAD_CANCEL_ASYNCHRONOUS 1586: 1586: }; 1586: # 193 "/usr/mipsel-linux-gnu/include/pthread.h" 3 1586: extern "C" { 1586: 1586: 1586: 1586: 1586: extern int pthread_create (pthread_t *__restrict __newthread, 1586: const pthread_attr_t *__restrict __attr, 1586: void *(*__start_routine) (void *), 1586: void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3))); 1586: 1586: 1586: 1586: 1586: 1586: extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int pthread_join (pthread_t __th, void **__thread_return); 1586: 1586: 1586: 1586: 1586: extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, 1586: const struct timespec *__abstime); 1586: # 238 "/usr/mipsel-linux-gnu/include/pthread.h" 3 1586: extern int pthread_clockjoin_np (pthread_t __th, void **__thread_return, 1586: clockid_t __clockid, 1586: const struct timespec *__abstime); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int pthread_detach (pthread_t __th) throw (); 1586: 1586: 1586: 1586: extern pthread_t pthread_self (void) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) 1586: throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_attr_destroy (pthread_attr_t *__attr) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr, 1586: int *__detachstate) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, 1586: int __detachstate) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: extern int pthread_attr_getguardsize (const pthread_attr_t *__attr, 1586: size_t *__guardsize) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern int pthread_attr_setguardsize (pthread_attr_t *__attr, 1586: size_t __guardsize) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr, 1586: struct sched_param *__restrict __param) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, 1586: const struct sched_param *__restrict 1586: __param) throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict 1586: __attr, int *__restrict __policy) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict 1586: __attr, int *__restrict __inherit) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, 1586: int __inherit) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr, 1586: int *__restrict __scope) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict 1586: __attr, void **__restrict __stackaddr) 1586: throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); 1586: 1586: 1586: 1586: 1586: 1586: extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, 1586: void *__stackaddr) 1586: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); 1586: 1586: 1586: extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict 1586: __attr, size_t *__restrict __stacksize) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: 1586: 1586: extern int pthread_attr_setstacksize (pthread_attr_t *__attr, 1586: size_t __stacksize) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr, 1586: void **__restrict __stackaddr, 1586: size_t *__restrict __stacksize) 1586: throw () __attribute__ ((__nonnull__ (1, 2, 3))); 1586: 1586: 1586: 1586: 1586: extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, 1586: size_t __stacksize) throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: 1586: 1586: extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, 1586: size_t __cpusetsize, 1586: const cpu_set_t *__cpuset) 1586: throw () __attribute__ ((__nonnull__ (1, 3))); 1586: 1586: 1586: 1586: extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, 1586: size_t __cpusetsize, 1586: cpu_set_t *__cpuset) 1586: throw () __attribute__ ((__nonnull__ (1, 3))); 1586: 1586: 1586: extern int pthread_getattr_default_np (pthread_attr_t *__attr) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: extern int pthread_setattr_default_np (const pthread_attr_t *__attr) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: 1586: extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) 1586: throw () __attribute__ ((__nonnull__ (2))); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int pthread_setschedparam (pthread_t __target_thread, int __policy, 1586: const struct sched_param *__param) 1586: throw () __attribute__ ((__nonnull__ (3))); 1586: 1586: 1586: extern int pthread_getschedparam (pthread_t __target_thread, 1586: int *__restrict __policy, 1586: struct sched_param *__restrict __param) 1586: throw () __attribute__ ((__nonnull__ (2, 3))); 1586: 1586: 1586: extern int pthread_setschedprio (pthread_t __target_thread, int __prio) 1586: throw (); 1586: 1586: 1586: 1586: 1586: extern int pthread_getname_np (pthread_t __target_thread, char *__buf, 1586: size_t __buflen) 1586: throw () __attribute__ ((__nonnull__ (2))); 1586: 1586: 1586: extern int pthread_setname_np (pthread_t __target_thread, const char *__name) 1586: throw () __attribute__ ((__nonnull__ (2))); 1586: 1586: 1586: 1586: 1586: 1586: extern int pthread_getconcurrency (void) throw (); 1586: 1586: 1586: extern int pthread_setconcurrency (int __level) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int pthread_yield (void) throw (); 1586: 1586: 1586: 1586: 1586: extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, 1586: const cpu_set_t *__cpuset) 1586: throw () __attribute__ ((__nonnull__ (3))); 1586: 1586: 1586: extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, 1586: cpu_set_t *__cpuset) 1586: throw () __attribute__ ((__nonnull__ (3))); 1586: # 470 "/usr/mipsel-linux-gnu/include/pthread.h" 3 1586: extern int pthread_once (pthread_once_t *__once_control, 1586: void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); 1586: # 482 "/usr/mipsel-linux-gnu/include/pthread.h" 3 1586: extern int pthread_setcancelstate (int __state, int *__oldstate); 1586: 1586: 1586: 1586: extern int pthread_setcanceltype (int __type, int *__oldtype); 1586: 1586: 1586: extern int pthread_cancel (pthread_t __th); 1586: 1586: 1586: 1586: 1586: extern void pthread_testcancel (void); 1586: 1586: 1586: 1586: 1586: typedef struct 1586: { 1586: struct 1586: { 1586: __jmp_buf __cancel_jmp_buf; 1586: int __mask_was_saved; 1586: } __cancel_jmp_buf[1]; 1586: void *__pad[4]; 1586: } __pthread_unwind_buf_t __attribute__ ((__aligned__)); 1586: # 516 "/usr/mipsel-linux-gnu/include/pthread.h" 3 1586: struct __pthread_cleanup_frame 1586: { 1586: void (*__cancel_routine) (void *); 1586: void *__cancel_arg; 1586: int __do_it; 1586: int __cancel_type; 1586: }; 1586: 1586: 1586: 1586: 1586: class __pthread_cleanup_class 1586: { 1586: void (*__cancel_routine) (void *); 1586: void *__cancel_arg; 1586: int __do_it; 1586: int __cancel_type; 1586: 1586: public: 1586: __pthread_cleanup_class (void (*__fct) (void *), void *__arg) 1586: : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { } 1586: ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); } 1586: void __setdoit (int __newval) { __do_it = __newval; } 1586: void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, 1586: &__cancel_type); } 1586: void __restore () const { pthread_setcanceltype (__cancel_type, 0); } 1586: }; 1586: # 718 "/usr/mipsel-linux-gnu/include/pthread.h" 3 1586: struct __jmp_buf_tag; 1586: extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern int pthread_mutex_init (pthread_mutex_t *__mutex, 1586: const pthread_mutexattr_t *__mutexattr) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_mutex_lock (pthread_mutex_t *__mutex) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, 1586: const struct timespec *__restrict 1586: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: 1586: extern int pthread_mutex_clocklock (pthread_mutex_t *__restrict __mutex, 1586: clockid_t __clockid, 1586: const struct timespec *__restrict 1586: __abstime) throw () __attribute__ ((__nonnull__ (1, 3))); 1586: 1586: 1586: 1586: extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: extern int pthread_mutex_getprioceiling (const pthread_mutex_t * 1586: __restrict __mutex, 1586: int *__restrict __prioceiling) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: 1586: extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, 1586: int __prioceiling, 1586: int *__restrict __old_ceiling) 1586: throw () __attribute__ ((__nonnull__ (1, 3))); 1586: 1586: 1586: 1586: 1586: extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: # 789 "/usr/mipsel-linux-gnu/include/pthread.h" 3 1586: extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t * 1586: __restrict __attr, 1586: int *__restrict __pshared) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, 1586: int __pshared) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict 1586: __attr, int *__restrict __kind) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: 1586: 1586: extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t * 1586: __restrict __attr, 1586: int *__restrict __protocol) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: 1586: extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, 1586: int __protocol) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t * 1586: __restrict __attr, 1586: int *__restrict __prioceiling) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, 1586: int __prioceiling) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr, 1586: int *__robustness) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr, 1586: int *__robustness) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: 1586: extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, 1586: int __robustness) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, 1586: int __robustness) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: # 871 "/usr/mipsel-linux-gnu/include/pthread.h" 3 1586: extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, 1586: const pthread_rwlockattr_t *__restrict 1586: __attr) throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, 1586: const struct timespec *__restrict 1586: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: 1586: extern int pthread_rwlock_clockrdlock (pthread_rwlock_t *__restrict __rwlock, 1586: clockid_t __clockid, 1586: const struct timespec *__restrict 1586: __abstime) throw () __attribute__ ((__nonnull__ (1, 3))); 1586: 1586: 1586: 1586: extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, 1586: const struct timespec *__restrict 1586: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: 1586: extern int pthread_rwlock_clockwrlock (pthread_rwlock_t *__restrict __rwlock, 1586: clockid_t __clockid, 1586: const struct timespec *__restrict 1586: __abstime) throw () __attribute__ ((__nonnull__ (1, 3))); 1586: 1586: 1586: 1586: extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: 1586: 1586: extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * 1586: __restrict __attr, 1586: int *__restrict __pshared) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, 1586: int __pshared) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t * 1586: __restrict __attr, 1586: int *__restrict __pref) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, 1586: int __pref) throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int pthread_cond_init (pthread_cond_t *__restrict __cond, 1586: const pthread_condattr_t *__restrict __cond_attr) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_cond_destroy (pthread_cond_t *__cond) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_cond_signal (pthread_cond_t *__cond) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_cond_broadcast (pthread_cond_t *__cond) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, 1586: pthread_mutex_t *__restrict __mutex) 1586: __attribute__ ((__nonnull__ (1, 2))); 1586: # 997 "/usr/mipsel-linux-gnu/include/pthread.h" 3 1586: extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, 1586: pthread_mutex_t *__restrict __mutex, 1586: const struct timespec *__restrict __abstime) 1586: __attribute__ ((__nonnull__ (1, 2, 3))); 1586: # 1010 "/usr/mipsel-linux-gnu/include/pthread.h" 3 1586: extern int pthread_cond_clockwait (pthread_cond_t *__restrict __cond, 1586: pthread_mutex_t *__restrict __mutex, 1586: __clockid_t __clock_id, 1586: const struct timespec *__restrict __abstime) 1586: __attribute__ ((__nonnull__ (1, 2, 4))); 1586: 1586: 1586: 1586: 1586: 1586: extern int pthread_condattr_init (pthread_condattr_t *__attr) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_condattr_destroy (pthread_condattr_t *__attr) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_condattr_getpshared (const pthread_condattr_t * 1586: __restrict __attr, 1586: int *__restrict __pshared) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, 1586: int __pshared) throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: extern int pthread_condattr_getclock (const pthread_condattr_t * 1586: __restrict __attr, 1586: __clockid_t *__restrict __clock_id) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern int pthread_condattr_setclock (pthread_condattr_t *__attr, 1586: __clockid_t __clock_id) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: # 1056 "/usr/mipsel-linux-gnu/include/pthread.h" 3 1586: extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_spin_destroy (pthread_spinlock_t *__lock) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_spin_lock (pthread_spinlock_t *__lock) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_spin_trylock (pthread_spinlock_t *__lock) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_spin_unlock (pthread_spinlock_t *__lock) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, 1586: const pthread_barrierattr_t *__restrict 1586: __attr, unsigned int __count) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_barrier_wait (pthread_barrier_t *__barrier) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t * 1586: __restrict __attr, 1586: int *__restrict __pshared) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, 1586: int __pshared) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: # 1123 "/usr/mipsel-linux-gnu/include/pthread.h" 3 1586: extern int pthread_key_create (pthread_key_t *__key, 1586: void (*__destr_function) (void *)) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern int pthread_key_delete (pthread_key_t __key) throw (); 1586: 1586: 1586: extern void *pthread_getspecific (pthread_key_t __key) throw (); 1586: 1586: 1586: extern int pthread_setspecific (pthread_key_t __key, 1586: const void *__pointer) throw () ; 1586: 1586: 1586: 1586: 1586: extern int pthread_getcpuclockid (pthread_t __thread_id, 1586: __clockid_t *__clock_id) 1586: throw () __attribute__ ((__nonnull__ (2))); 1586: # 1157 "/usr/mipsel-linux-gnu/include/pthread.h" 3 1586: extern int pthread_atfork (void (*__prepare) (void), 1586: void (*__parent) (void), 1586: void (*__child) (void)) throw (); 1586: 1586: 1586: 1586: 1586: extern __inline __attribute__ ((__gnu_inline__)) int 1586: __attribute__ ((__leaf__)) pthread_equal (pthread_t __thread1, pthread_t __thread2) throw () 1586: { 1586: return __thread1 == __thread2; 1586: } 1586: 1586: 1586: } 1586: # 36 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/gthr-default.h" 2 3 1586: # 47 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/gthr-default.h" 3 1586: typedef pthread_t __gthread_t; 1586: typedef pthread_key_t __gthread_key_t; 1586: typedef pthread_once_t __gthread_once_t; 1586: typedef pthread_mutex_t __gthread_mutex_t; 1586: typedef pthread_mutex_t __gthread_recursive_mutex_t; 1586: typedef pthread_cond_t __gthread_cond_t; 1586: typedef struct timespec __gthread_time_t; 1586: # 102 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/gthr-default.h" 3 1586: static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once"), __copy__ (pthread_once))); 1586: static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific"), __copy__ (pthread_getspecific))); 1586: static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific"), __copy__ (pthread_setspecific))); 1586: 1586: static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create"), __copy__ (pthread_create))); 1586: static __typeof(pthread_join) __gthrw_pthread_join __attribute__ ((__weakref__("pthread_join"), __copy__ (pthread_join))); 1586: static __typeof(pthread_equal) __gthrw_pthread_equal __attribute__ ((__weakref__("pthread_equal"), __copy__ (pthread_equal))); 1586: static __typeof(pthread_self) __gthrw_pthread_self __attribute__ ((__weakref__("pthread_self"), __copy__ (pthread_self))); 1586: static __typeof(pthread_detach) __gthrw_pthread_detach __attribute__ ((__weakref__("pthread_detach"), __copy__ (pthread_detach))); 1586: 1586: static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel"), __copy__ (pthread_cancel))); 1586: 1586: static __typeof(sched_yield) __gthrw_sched_yield __attribute__ ((__weakref__("sched_yield"), __copy__ (sched_yield))); 1586: 1586: static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock"), __copy__ (pthread_mutex_lock))); 1586: static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock"), __copy__ (pthread_mutex_trylock))); 1586: 1586: static __typeof(pthread_mutex_timedlock) __gthrw_pthread_mutex_timedlock __attribute__ ((__weakref__("pthread_mutex_timedlock"), __copy__ (pthread_mutex_timedlock))); 1586: 1586: static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock"), __copy__ (pthread_mutex_unlock))); 1586: static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init"), __copy__ (pthread_mutex_init))); 1586: static __typeof(pthread_mutex_destroy) __gthrw_pthread_mutex_destroy __attribute__ ((__weakref__("pthread_mutex_destroy"), __copy__ (pthread_mutex_destroy))); 1586: 1586: static __typeof(pthread_cond_init) __gthrw_pthread_cond_init __attribute__ ((__weakref__("pthread_cond_init"), __copy__ (pthread_cond_init))); 1586: static __typeof(pthread_cond_broadcast) __gthrw_pthread_cond_broadcast __attribute__ ((__weakref__("pthread_cond_broadcast"), __copy__ (pthread_cond_broadcast))); 1586: static __typeof(pthread_cond_signal) __gthrw_pthread_cond_signal __attribute__ ((__weakref__("pthread_cond_signal"), __copy__ (pthread_cond_signal))); 1586: static __typeof(pthread_cond_wait) __gthrw_pthread_cond_wait __attribute__ ((__weakref__("pthread_cond_wait"), __copy__ (pthread_cond_wait))); 1586: static __typeof(pthread_cond_timedwait) __gthrw_pthread_cond_timedwait __attribute__ ((__weakref__("pthread_cond_timedwait"), __copy__ (pthread_cond_timedwait))); 1586: static __typeof(pthread_cond_destroy) __gthrw_pthread_cond_destroy __attribute__ ((__weakref__("pthread_cond_destroy"), __copy__ (pthread_cond_destroy))); 1586: 1586: static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create"), __copy__ (pthread_key_create))); 1586: static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete"), __copy__ (pthread_key_delete))); 1586: static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init"), __copy__ (pthread_mutexattr_init))); 1586: static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype"), __copy__ (pthread_mutexattr_settype))); 1586: static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy"), __copy__ (pthread_mutexattr_destroy))); 1586: # 237 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/gthr-default.h" 3 1586: static __typeof(pthread_key_create) __gthrw___pthread_key_create __attribute__ ((__weakref__("__pthread_key_create"), __copy__ (pthread_key_create))); 1586: # 247 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/gthr-default.h" 3 1586: static inline int 1586: __gthread_active_p (void) 1586: { 1586: static void *const __gthread_active_ptr 1586: = __extension__ (void *) &__gthrw___pthread_key_create; 1586: return __gthread_active_ptr != 0; 1586: } 1586: # 659 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/gthr-default.h" 3 1586: static inline int 1586: __gthread_create (__gthread_t *__threadid, void *(*__func) (void*), 1586: void *__args) 1586: { 1586: return __gthrw_pthread_create (__threadid, __null, __func, __args); 1586: } 1586: 1586: static inline int 1586: __gthread_join (__gthread_t __threadid, void **__value_ptr) 1586: { 1586: return __gthrw_pthread_join (__threadid, __value_ptr); 1586: } 1586: 1586: static inline int 1586: __gthread_detach (__gthread_t __threadid) 1586: { 1586: return __gthrw_pthread_detach (__threadid); 1586: } 1586: 1586: static inline int 1586: __gthread_equal (__gthread_t __t1, __gthread_t __t2) 1586: { 1586: return __gthrw_pthread_equal (__t1, __t2); 1586: } 1586: 1586: static inline __gthread_t 1586: __gthread_self (void) 1586: { 1586: return __gthrw_pthread_self (); 1586: } 1586: 1586: static inline int 1586: __gthread_yield (void) 1586: { 1586: return __gthrw_sched_yield (); 1586: } 1586: 1586: static inline int 1586: __gthread_once (__gthread_once_t *__once, void (*__func) (void)) 1586: { 1586: if (__gthread_active_p ()) 1586: return __gthrw_pthread_once (__once, __func); 1586: else 1586: return -1; 1586: } 1586: 1586: static inline int 1586: __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) 1586: { 1586: return __gthrw_pthread_key_create (__key, __dtor); 1586: } 1586: 1586: static inline int 1586: __gthread_key_delete (__gthread_key_t __key) 1586: { 1586: return __gthrw_pthread_key_delete (__key); 1586: } 1586: 1586: static inline void * 1586: __gthread_getspecific (__gthread_key_t __key) 1586: { 1586: return __gthrw_pthread_getspecific (__key); 1586: } 1586: 1586: static inline int 1586: __gthread_setspecific (__gthread_key_t __key, const void *__ptr) 1586: { 1586: return __gthrw_pthread_setspecific (__key, __ptr); 1586: } 1586: 1586: static inline void 1586: __gthread_mutex_init_function (__gthread_mutex_t *__mutex) 1586: { 1586: if (__gthread_active_p ()) 1586: __gthrw_pthread_mutex_init (__mutex, __null); 1586: } 1586: 1586: static inline int 1586: __gthread_mutex_destroy (__gthread_mutex_t *__mutex) 1586: { 1586: if (__gthread_active_p ()) 1586: return __gthrw_pthread_mutex_destroy (__mutex); 1586: else 1586: return 0; 1586: } 1586: 1586: static inline int 1586: __gthread_mutex_lock (__gthread_mutex_t *__mutex) 1586: { 1586: if (__gthread_active_p ()) 1586: return __gthrw_pthread_mutex_lock (__mutex); 1586: else 1586: return 0; 1586: } 1586: 1586: static inline int 1586: __gthread_mutex_trylock (__gthread_mutex_t *__mutex) 1586: { 1586: if (__gthread_active_p ()) 1586: return __gthrw_pthread_mutex_trylock (__mutex); 1586: else 1586: return 0; 1586: } 1586: 1586: 1586: static inline int 1586: __gthread_mutex_timedlock (__gthread_mutex_t *__mutex, 1586: const __gthread_time_t *__abs_timeout) 1586: { 1586: if (__gthread_active_p ()) 1586: return __gthrw_pthread_mutex_timedlock (__mutex, __abs_timeout); 1586: else 1586: return 0; 1586: } 1586: 1586: 1586: static inline int 1586: __gthread_mutex_unlock (__gthread_mutex_t *__mutex) 1586: { 1586: if (__gthread_active_p ()) 1586: return __gthrw_pthread_mutex_unlock (__mutex); 1586: else 1586: return 0; 1586: } 1586: # 808 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/gthr-default.h" 3 1586: static inline int 1586: __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) 1586: { 1586: return __gthread_mutex_lock (__mutex); 1586: } 1586: 1586: static inline int 1586: __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) 1586: { 1586: return __gthread_mutex_trylock (__mutex); 1586: } 1586: 1586: 1586: static inline int 1586: __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, 1586: const __gthread_time_t *__abs_timeout) 1586: { 1586: return __gthread_mutex_timedlock (__mutex, __abs_timeout); 1586: } 1586: 1586: 1586: static inline int 1586: __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) 1586: { 1586: return __gthread_mutex_unlock (__mutex); 1586: } 1586: 1586: static inline int 1586: __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex) 1586: { 1586: return __gthread_mutex_destroy (__mutex); 1586: } 1586: # 850 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/gthr-default.h" 3 1586: static inline int 1586: __gthread_cond_broadcast (__gthread_cond_t *__cond) 1586: { 1586: return __gthrw_pthread_cond_broadcast (__cond); 1586: } 1586: 1586: static inline int 1586: __gthread_cond_signal (__gthread_cond_t *__cond) 1586: { 1586: return __gthrw_pthread_cond_signal (__cond); 1586: } 1586: 1586: static inline int 1586: __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex) 1586: { 1586: return __gthrw_pthread_cond_wait (__cond, __mutex); 1586: } 1586: 1586: static inline int 1586: __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex, 1586: const __gthread_time_t *__abs_timeout) 1586: { 1586: return __gthrw_pthread_cond_timedwait (__cond, __mutex, __abs_timeout); 1586: } 1586: 1586: static inline int 1586: __gthread_cond_wait_recursive (__gthread_cond_t *__cond, 1586: __gthread_recursive_mutex_t *__mutex) 1586: { 1586: return __gthread_cond_wait (__cond, __mutex); 1586: } 1586: 1586: static inline int 1586: __gthread_cond_destroy (__gthread_cond_t* __cond) 1586: { 1586: return __gthrw_pthread_cond_destroy (__cond); 1586: } 1586: # 149 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/gthr.h" 2 3 1586: 1586: 1586: #pragma GCC visibility pop 1586: # 36 "/usr/mipsel-linux-gnu/include/c++/9/ext/atomicity.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/atomic_word.h" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/atomic_word.h" 3 1586: typedef int _Atomic_word; 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/ext/atomicity.h" 2 3 1586: 1586: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: static inline _Atomic_word 1586: __exchange_and_add(volatile _Atomic_word* __mem, int __val) 1586: { return __atomic_fetch_add(__mem, __val, 4); } 1586: 1586: static inline void 1586: __atomic_add(volatile _Atomic_word* __mem, int __val) 1586: { __atomic_fetch_add(__mem, __val, 4); } 1586: # 64 "/usr/mipsel-linux-gnu/include/c++/9/ext/atomicity.h" 3 1586: static inline _Atomic_word 1586: __exchange_and_add_single(_Atomic_word* __mem, int __val) 1586: { 1586: _Atomic_word __result = *__mem; 1586: *__mem += __val; 1586: return __result; 1586: } 1586: 1586: static inline void 1586: __atomic_add_single(_Atomic_word* __mem, int __val) 1586: { *__mem += __val; } 1586: 1586: static inline _Atomic_word 1586: __attribute__ ((__unused__)) 1586: __exchange_and_add_dispatch(_Atomic_word* __mem, int __val) 1586: { 1586: 1586: if (__gthread_active_p()) 1586: return __exchange_and_add(__mem, __val); 1586: else 1586: return __exchange_and_add_single(__mem, __val); 1586: 1586: 1586: 1586: } 1586: 1586: static inline void 1586: __attribute__ ((__unused__)) 1586: __atomic_add_dispatch(_Atomic_word* __mem, int __val) 1586: { 1586: 1586: if (__gthread_active_p()) 1586: __atomic_add(__mem, __val); 1586: else 1586: __atomic_add_single(__mem, __val); 1586: 1586: 1586: 1586: } 1586: 1586: 1586: } 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/ext/alloc_traits.h" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/c++/9/ext/alloc_traits.h" 3 1586: 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/ext/alloc_traits.h" 3 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/alloc_traits.h" 1 3 1586: # 41 "/usr/mipsel-linux-gnu/include/c++/9/bits/alloc_traits.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: struct __allocator_traits_base 1586: { 1586: template 1586: struct __rebind : __replace_first_arg<_Tp, _Up> { }; 1586: 1586: template 1586: struct __rebind<_Tp, _Up, 1586: __void_t::other>> 1586: { using type = typename _Tp::template rebind<_Up>::other; }; 1586: 1586: protected: 1586: template 1586: using __pointer = typename _Tp::pointer; 1586: template 1586: using __c_pointer = typename _Tp::const_pointer; 1586: template 1586: using __v_pointer = typename _Tp::void_pointer; 1586: template 1586: using __cv_pointer = typename _Tp::const_void_pointer; 1586: template 1586: using __pocca = typename _Tp::propagate_on_container_copy_assignment; 1586: template 1586: using __pocma = typename _Tp::propagate_on_container_move_assignment; 1586: template 1586: using __pocs = typename _Tp::propagate_on_container_swap; 1586: template 1586: using __equal = typename _Tp::is_always_equal; 1586: }; 1586: 1586: template 1586: using __alloc_rebind 1586: = typename __allocator_traits_base::template __rebind<_Alloc, _Up>::type; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct allocator_traits : __allocator_traits_base 1586: { 1586: 1586: typedef _Alloc allocator_type; 1586: 1586: typedef typename _Alloc::value_type value_type; 1586: 1586: 1586: 1586: 1586: 1586: 1586: using pointer = __detected_or_t; 1586: 1586: private: 1586: 1586: template class _Func, typename _Tp, typename = void> 1586: struct _Ptr 1586: { 1586: using type = typename pointer_traits::template rebind<_Tp>; 1586: }; 1586: 1586: template class _Func, typename _Tp> 1586: struct _Ptr<_Func, _Tp, __void_t<_Func<_Alloc>>> 1586: { 1586: using type = _Func<_Alloc>; 1586: }; 1586: 1586: 1586: template 1586: struct _Diff 1586: { using type = typename pointer_traits<_PtrT>::difference_type; }; 1586: 1586: template 1586: struct _Diff<_A2, _PtrT, __void_t> 1586: { using type = typename _A2::difference_type; }; 1586: 1586: 1586: template 1586: struct _Size : make_unsigned<_DiffT> { }; 1586: 1586: template 1586: struct _Size<_A2, _DiffT, __void_t> 1586: { using type = typename _A2::size_type; }; 1586: 1586: public: 1586: 1586: 1586: 1586: 1586: 1586: 1586: using const_pointer = typename _Ptr<__c_pointer, const value_type>::type; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: using void_pointer = typename _Ptr<__v_pointer, void>::type; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: using const_void_pointer = typename _Ptr<__cv_pointer, const void>::type; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: using difference_type = typename _Diff<_Alloc, pointer>::type; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: using size_type = typename _Size<_Alloc, difference_type>::type; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: using propagate_on_container_copy_assignment 1586: = __detected_or_t; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: using propagate_on_container_move_assignment 1586: = __detected_or_t; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: using propagate_on_container_swap 1586: = __detected_or_t; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: using is_always_equal 1586: = __detected_or_t::type, __equal, _Alloc>; 1586: 1586: template 1586: using rebind_alloc = __alloc_rebind<_Alloc, _Tp>; 1586: template 1586: using rebind_traits = allocator_traits>; 1586: 1586: private: 1586: template 1586: static auto 1586: _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint, int) 1586: -> decltype(__a.allocate(__n, __hint)) 1586: { return __a.allocate(__n, __hint); } 1586: 1586: template 1586: static pointer 1586: _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer, ...) 1586: { return __a.allocate(__n); } 1586: 1586: template 1586: struct __construct_helper 1586: { 1586: template()->construct( 1586: std::declval<_Tp*>(), std::declval<_Args>()...))> 1586: static true_type __test(int); 1586: 1586: template 1586: static false_type __test(...); 1586: 1586: using type = decltype(__test<_Alloc>(0)); 1586: }; 1586: 1586: template 1586: using __has_construct 1586: = typename __construct_helper<_Tp, _Args...>::type; 1586: 1586: template 1586: static _Require<__has_construct<_Tp, _Args...>> 1586: _S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 1586: noexcept(noexcept(__a.construct(__p, std::forward<_Args>(__args)...))) 1586: { __a.construct(__p, std::forward<_Args>(__args)...); } 1586: 1586: template 1586: static 1586: _Require<__and_<__not_<__has_construct<_Tp, _Args...>>, 1586: is_constructible<_Tp, _Args...>>> 1586: _S_construct(_Alloc&, _Tp* __p, _Args&&... __args) 1586: noexcept(noexcept(::new((void*)__p) 1586: _Tp(std::forward<_Args>(__args)...))) 1586: { ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); } 1586: 1586: template 1586: static auto 1586: _S_destroy(_Alloc2& __a, _Tp* __p, int) 1586: noexcept(noexcept(__a.destroy(__p))) 1586: -> decltype(__a.destroy(__p)) 1586: { __a.destroy(__p); } 1586: 1586: template 1586: static void 1586: _S_destroy(_Alloc2&, _Tp* __p, ...) 1586: noexcept(noexcept(__p->~_Tp())) 1586: { __p->~_Tp(); } 1586: 1586: template 1586: static auto 1586: _S_max_size(_Alloc2& __a, int) 1586: -> decltype(__a.max_size()) 1586: { return __a.max_size(); } 1586: 1586: template 1586: static size_type 1586: _S_max_size(_Alloc2&, ...) 1586: { 1586: 1586: 1586: return __gnu_cxx::__numeric_traits::__max 1586: / sizeof(value_type); 1586: } 1586: 1586: template 1586: static auto 1586: _S_select(_Alloc2& __a, int) 1586: -> decltype(__a.select_on_container_copy_construction()) 1586: { return __a.select_on_container_copy_construction(); } 1586: 1586: template 1586: static _Alloc2 1586: _S_select(_Alloc2& __a, ...) 1586: { return __a; } 1586: 1586: public: 1586: # 304 "/usr/mipsel-linux-gnu/include/c++/9/bits/alloc_traits.h" 3 1586: static pointer 1586: allocate(_Alloc& __a, size_type __n) 1586: { return __a.allocate(__n); } 1586: # 319 "/usr/mipsel-linux-gnu/include/c++/9/bits/alloc_traits.h" 3 1586: static pointer 1586: allocate(_Alloc& __a, size_type __n, const_void_pointer __hint) 1586: { return _S_allocate(__a, __n, __hint, 0); } 1586: # 331 "/usr/mipsel-linux-gnu/include/c++/9/bits/alloc_traits.h" 3 1586: static void 1586: deallocate(_Alloc& __a, pointer __p, size_type __n) 1586: { __a.deallocate(__p, __n); } 1586: # 346 "/usr/mipsel-linux-gnu/include/c++/9/bits/alloc_traits.h" 3 1586: template 1586: static auto construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 1586: noexcept(noexcept(_S_construct(__a, __p, 1586: std::forward<_Args>(__args)...))) 1586: -> decltype(_S_construct(__a, __p, std::forward<_Args>(__args)...)) 1586: { _S_construct(__a, __p, std::forward<_Args>(__args)...); } 1586: # 361 "/usr/mipsel-linux-gnu/include/c++/9/bits/alloc_traits.h" 3 1586: template 1586: static void destroy(_Alloc& __a, _Tp* __p) 1586: noexcept(noexcept(_S_destroy(__a, __p, 0))) 1586: { _S_destroy(__a, __p, 0); } 1586: # 374 "/usr/mipsel-linux-gnu/include/c++/9/bits/alloc_traits.h" 3 1586: static size_type max_size(const _Alloc& __a) noexcept 1586: { return _S_max_size(__a, 0); } 1586: # 385 "/usr/mipsel-linux-gnu/include/c++/9/bits/alloc_traits.h" 3 1586: static _Alloc 1586: select_on_container_copy_construction(const _Alloc& __rhs) 1586: { return _S_select(__rhs, 0); } 1586: }; 1586: 1586: 1586: template 1586: struct allocator_traits> 1586: { 1586: 1586: using allocator_type = allocator<_Tp>; 1586: 1586: using value_type = _Tp; 1586: 1586: 1586: using pointer = _Tp*; 1586: 1586: 1586: using const_pointer = const _Tp*; 1586: 1586: 1586: using void_pointer = void*; 1586: 1586: 1586: using const_void_pointer = const void*; 1586: 1586: 1586: using difference_type = std::ptrdiff_t; 1586: 1586: 1586: using size_type = std::size_t; 1586: 1586: 1586: using propagate_on_container_copy_assignment = false_type; 1586: 1586: 1586: using propagate_on_container_move_assignment = true_type; 1586: 1586: 1586: using propagate_on_container_swap = false_type; 1586: 1586: 1586: using is_always_equal = true_type; 1586: 1586: template 1586: using rebind_alloc = allocator<_Up>; 1586: 1586: template 1586: using rebind_traits = allocator_traits>; 1586: # 442 "/usr/mipsel-linux-gnu/include/c++/9/bits/alloc_traits.h" 3 1586: static pointer 1586: allocate(allocator_type& __a, size_type __n) 1586: { return __a.allocate(__n); } 1586: # 456 "/usr/mipsel-linux-gnu/include/c++/9/bits/alloc_traits.h" 3 1586: static pointer 1586: allocate(allocator_type& __a, size_type __n, const_void_pointer __hint) 1586: { return __a.allocate(__n, __hint); } 1586: # 468 "/usr/mipsel-linux-gnu/include/c++/9/bits/alloc_traits.h" 3 1586: static void 1586: deallocate(allocator_type& __a, pointer __p, size_type __n) 1586: { __a.deallocate(__p, __n); } 1586: # 480 "/usr/mipsel-linux-gnu/include/c++/9/bits/alloc_traits.h" 3 1586: template 1586: static void 1586: construct(allocator_type& __a, _Up* __p, _Args&&... __args) 1586: noexcept(noexcept(__a.construct(__p, std::forward<_Args>(__args)...))) 1586: { __a.construct(__p, std::forward<_Args>(__args)...); } 1586: # 493 "/usr/mipsel-linux-gnu/include/c++/9/bits/alloc_traits.h" 3 1586: template 1586: static void 1586: destroy(allocator_type& __a, _Up* __p) 1586: noexcept(noexcept(__a.destroy(__p))) 1586: { __a.destroy(__p); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: static size_type 1586: max_size(const allocator_type& __a) noexcept 1586: { return __a.max_size(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: static allocator_type 1586: select_on_container_copy_construction(const allocator_type& __rhs) 1586: { return __rhs; } 1586: }; 1586: 1586: 1586: template 1586: inline void 1586: __do_alloc_on_copy(_Alloc& __one, const _Alloc& __two, true_type) 1586: { __one = __two; } 1586: 1586: template 1586: inline void 1586: __do_alloc_on_copy(_Alloc&, const _Alloc&, false_type) 1586: { } 1586: 1586: template 1586: inline void __alloc_on_copy(_Alloc& __one, const _Alloc& __two) 1586: { 1586: typedef allocator_traits<_Alloc> __traits; 1586: typedef typename __traits::propagate_on_container_copy_assignment __pocca; 1586: __do_alloc_on_copy(__one, __two, __pocca()); 1586: } 1586: 1586: template 1586: inline _Alloc __alloc_on_copy(const _Alloc& __a) 1586: { 1586: typedef allocator_traits<_Alloc> __traits; 1586: return __traits::select_on_container_copy_construction(__a); 1586: } 1586: 1586: template 1586: inline void __do_alloc_on_move(_Alloc& __one, _Alloc& __two, true_type) 1586: { __one = std::move(__two); } 1586: 1586: template 1586: inline void __do_alloc_on_move(_Alloc&, _Alloc&, false_type) 1586: { } 1586: 1586: template 1586: inline void __alloc_on_move(_Alloc& __one, _Alloc& __two) 1586: { 1586: typedef allocator_traits<_Alloc> __traits; 1586: typedef typename __traits::propagate_on_container_move_assignment __pocma; 1586: __do_alloc_on_move(__one, __two, __pocma()); 1586: } 1586: 1586: template 1586: inline void __do_alloc_on_swap(_Alloc& __one, _Alloc& __two, true_type) 1586: { 1586: using std::swap; 1586: swap(__one, __two); 1586: } 1586: 1586: template 1586: inline void __do_alloc_on_swap(_Alloc&, _Alloc&, false_type) 1586: { } 1586: 1586: template 1586: inline void __alloc_on_swap(_Alloc& __one, _Alloc& __two) 1586: { 1586: typedef allocator_traits<_Alloc> __traits; 1586: typedef typename __traits::propagate_on_container_swap __pocs; 1586: __do_alloc_on_swap(__one, __two, __pocs()); 1586: } 1586: 1586: template, 1586: typename = void> 1586: struct __is_alloc_insertable_impl 1586: : false_type 1586: { }; 1586: 1586: template 1586: struct __is_alloc_insertable_impl<_Alloc, _Tp, _ValueT, 1586: __void_t::construct( 1586: std::declval<_Alloc&>(), std::declval<_ValueT*>(), 1586: std::declval<_Tp>()))>> 1586: : true_type 1586: { }; 1586: 1586: 1586: 1586: 1586: template 1586: struct __is_copy_insertable 1586: : __is_alloc_insertable_impl<_Alloc, 1586: typename _Alloc::value_type const&>::type 1586: { }; 1586: 1586: 1586: template 1586: struct __is_copy_insertable> 1586: : is_copy_constructible<_Tp> 1586: { }; 1586: 1586: 1586: 1586: 1586: template 1586: struct __is_move_insertable 1586: : __is_alloc_insertable_impl<_Alloc, typename _Alloc::value_type>::type 1586: { }; 1586: 1586: 1586: template 1586: struct __is_move_insertable> 1586: : is_move_constructible<_Tp> 1586: { }; 1586: 1586: 1586: template 1586: struct __is_allocator : false_type { }; 1586: 1586: template 1586: struct __is_allocator<_Alloc, 1586: __void_t().allocate(size_t{}))>> 1586: : true_type { }; 1586: 1586: template 1586: using _RequireAllocator 1586: = typename enable_if<__is_allocator<_Alloc>::value, _Alloc>::type; 1586: 1586: template 1586: using _RequireNotAllocator 1586: = typename enable_if::value, _Alloc>::type; 1586: 1586: 1586: } 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/ext/alloc_traits.h" 2 3 1586: 1586: 1586: 1586: 1586: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct __alloc_traits 1586: 1586: : std::allocator_traits<_Alloc> 1586: 1586: { 1586: typedef _Alloc allocator_type; 1586: 1586: typedef std::allocator_traits<_Alloc> _Base_type; 1586: typedef typename _Base_type::value_type value_type; 1586: typedef typename _Base_type::pointer pointer; 1586: typedef typename _Base_type::const_pointer const_pointer; 1586: typedef typename _Base_type::size_type size_type; 1586: typedef typename _Base_type::difference_type difference_type; 1586: 1586: typedef value_type& reference; 1586: typedef const value_type& const_reference; 1586: using _Base_type::allocate; 1586: using _Base_type::deallocate; 1586: using _Base_type::construct; 1586: using _Base_type::destroy; 1586: using _Base_type::max_size; 1586: 1586: private: 1586: template 1586: using __is_custom_pointer 1586: = std::__and_, 1586: std::__not_>>; 1586: 1586: public: 1586: 1586: template 1586: static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type 1586: construct(_Alloc& __a, _Ptr __p, _Args&&... __args) 1586: noexcept(noexcept(_Base_type::construct(__a, std::__to_address(__p), 1586: std::forward<_Args>(__args)...))) 1586: { 1586: _Base_type::construct(__a, std::__to_address(__p), 1586: std::forward<_Args>(__args)...); 1586: } 1586: 1586: 1586: template 1586: static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type 1586: destroy(_Alloc& __a, _Ptr __p) 1586: noexcept(noexcept(_Base_type::destroy(__a, std::__to_address(__p)))) 1586: { _Base_type::destroy(__a, std::__to_address(__p)); } 1586: 1586: static _Alloc _S_select_on_copy(const _Alloc& __a) 1586: { return _Base_type::select_on_container_copy_construction(__a); } 1586: 1586: static void _S_on_swap(_Alloc& __a, _Alloc& __b) 1586: { std::__alloc_on_swap(__a, __b); } 1586: 1586: static constexpr bool _S_propagate_on_copy_assign() 1586: { return _Base_type::propagate_on_container_copy_assignment::value; } 1586: 1586: static constexpr bool _S_propagate_on_move_assign() 1586: { return _Base_type::propagate_on_container_move_assignment::value; } 1586: 1586: static constexpr bool _S_propagate_on_swap() 1586: { return _Base_type::propagate_on_container_swap::value; } 1586: 1586: static constexpr bool _S_always_equal() 1586: { return _Base_type::is_always_equal::value; } 1586: 1586: static constexpr bool _S_nothrow_move() 1586: { return _S_propagate_on_move_assign() || _S_always_equal(); } 1586: 1586: template 1586: struct rebind 1586: { typedef typename _Base_type::template rebind_alloc<_Tp> other; }; 1586: # 161 "/usr/mipsel-linux-gnu/include/c++/9/ext/alloc_traits.h" 3 1586: }; 1586: 1586: 1586: } 1586: # 41 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 2 3 1586: # 52 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: namespace __cxx11 { 1586: # 76 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template 1586: class basic_string 1586: { 1586: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 1586: rebind<_CharT>::other _Char_alloc_type; 1586: typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; 1586: 1586: 1586: public: 1586: typedef _Traits traits_type; 1586: typedef typename _Traits::char_type value_type; 1586: typedef _Char_alloc_type allocator_type; 1586: typedef typename _Alloc_traits::size_type size_type; 1586: typedef typename _Alloc_traits::difference_type difference_type; 1586: typedef typename _Alloc_traits::reference reference; 1586: typedef typename _Alloc_traits::const_reference const_reference; 1586: typedef typename _Alloc_traits::pointer pointer; 1586: typedef typename _Alloc_traits::const_pointer const_pointer; 1586: typedef __gnu_cxx::__normal_iterator iterator; 1586: typedef __gnu_cxx::__normal_iterator 1586: const_iterator; 1586: typedef std::reverse_iterator const_reverse_iterator; 1586: typedef std::reverse_iterator reverse_iterator; 1586: 1586: 1586: static const size_type npos = static_cast(-1); 1586: 1586: protected: 1586: 1586: 1586: 1586: 1586: typedef const_iterator __const_iterator; 1586: 1586: 1586: private: 1586: # 150 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: struct _Alloc_hider : allocator_type 1586: { 1586: 1586: 1586: 1586: 1586: _Alloc_hider(pointer __dat, const _Alloc& __a) 1586: : allocator_type(__a), _M_p(__dat) { } 1586: 1586: _Alloc_hider(pointer __dat, _Alloc&& __a = _Alloc()) 1586: : allocator_type(std::move(__a)), _M_p(__dat) { } 1586: 1586: 1586: pointer _M_p; 1586: }; 1586: 1586: _Alloc_hider _M_dataplus; 1586: size_type _M_string_length; 1586: 1586: enum { _S_local_capacity = 15 / sizeof(_CharT) }; 1586: 1586: union 1586: { 1586: _CharT _M_local_buf[_S_local_capacity + 1]; 1586: size_type _M_allocated_capacity; 1586: }; 1586: 1586: void 1586: _M_data(pointer __p) 1586: { _M_dataplus._M_p = __p; } 1586: 1586: void 1586: _M_length(size_type __length) 1586: { _M_string_length = __length; } 1586: 1586: pointer 1586: _M_data() const 1586: { return _M_dataplus._M_p; } 1586: 1586: pointer 1586: _M_local_data() 1586: { 1586: 1586: return std::pointer_traits::pointer_to(*_M_local_buf); 1586: 1586: 1586: 1586: } 1586: 1586: const_pointer 1586: _M_local_data() const 1586: { 1586: 1586: return std::pointer_traits::pointer_to(*_M_local_buf); 1586: 1586: 1586: 1586: } 1586: 1586: void 1586: _M_capacity(size_type __capacity) 1586: { _M_allocated_capacity = __capacity; } 1586: 1586: void 1586: _M_set_length(size_type __n) 1586: { 1586: _M_length(__n); 1586: traits_type::assign(_M_data()[__n], _CharT()); 1586: } 1586: 1586: bool 1586: _M_is_local() const 1586: { return _M_data() == _M_local_data(); } 1586: 1586: 1586: pointer 1586: _M_create(size_type&, size_type); 1586: 1586: void 1586: _M_dispose() 1586: { 1586: if (!_M_is_local()) 1586: _M_destroy(_M_allocated_capacity); 1586: } 1586: 1586: void 1586: _M_destroy(size_type __size) throw() 1586: { _Alloc_traits::deallocate(_M_get_allocator(), _M_data(), __size + 1); } 1586: 1586: 1586: 1586: template 1586: void 1586: _M_construct_aux(_InIterator __beg, _InIterator __end, 1586: std::__false_type) 1586: { 1586: typedef typename iterator_traits<_InIterator>::iterator_category _Tag; 1586: _M_construct(__beg, __end, _Tag()); 1586: } 1586: 1586: 1586: 1586: template 1586: void 1586: _M_construct_aux(_Integer __beg, _Integer __end, std::__true_type) 1586: { _M_construct_aux_2(static_cast(__beg), __end); } 1586: 1586: void 1586: _M_construct_aux_2(size_type __req, _CharT __c) 1586: { _M_construct(__req, __c); } 1586: 1586: template 1586: void 1586: _M_construct(_InIterator __beg, _InIterator __end) 1586: { 1586: typedef typename std::__is_integer<_InIterator>::__type _Integral; 1586: _M_construct_aux(__beg, __end, _Integral()); 1586: } 1586: 1586: 1586: template 1586: void 1586: _M_construct(_InIterator __beg, _InIterator __end, 1586: std::input_iterator_tag); 1586: 1586: 1586: 1586: template 1586: void 1586: _M_construct(_FwdIterator __beg, _FwdIterator __end, 1586: std::forward_iterator_tag); 1586: 1586: void 1586: _M_construct(size_type __req, _CharT __c); 1586: 1586: allocator_type& 1586: _M_get_allocator() 1586: { return _M_dataplus; } 1586: 1586: const allocator_type& 1586: _M_get_allocator() const 1586: { return _M_dataplus; } 1586: 1586: private: 1586: # 309 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: _M_check(size_type __pos, const char* __s) const 1586: { 1586: if (__pos > this->size()) 1586: __throw_out_of_range_fmt(("%s: __pos (which is %zu) > " "this->size() (which is %zu)") 1586: , 1586: __s, __pos, this->size()); 1586: return __pos; 1586: } 1586: 1586: void 1586: _M_check_length(size_type __n1, size_type __n2, const char* __s) const 1586: { 1586: if (this->max_size() - (this->size() - __n1) < __n2) 1586: __throw_length_error((__s)); 1586: } 1586: 1586: 1586: 1586: size_type 1586: _M_limit(size_type __pos, size_type __off) const noexcept 1586: { 1586: const bool __testoff = __off < this->size() - __pos; 1586: return __testoff ? __off : this->size() - __pos; 1586: } 1586: 1586: 1586: bool 1586: _M_disjunct(const _CharT* __s) const noexcept 1586: { 1586: return (less()(__s, _M_data()) 1586: || less()(_M_data() + this->size(), __s)); 1586: } 1586: 1586: 1586: 1586: static void 1586: _S_copy(_CharT* __d, const _CharT* __s, size_type __n) 1586: { 1586: if (__n == 1) 1586: traits_type::assign(*__d, *__s); 1586: else 1586: traits_type::copy(__d, __s, __n); 1586: } 1586: 1586: static void 1586: _S_move(_CharT* __d, const _CharT* __s, size_type __n) 1586: { 1586: if (__n == 1) 1586: traits_type::assign(*__d, *__s); 1586: else 1586: traits_type::move(__d, __s, __n); 1586: } 1586: 1586: static void 1586: _S_assign(_CharT* __d, size_type __n, _CharT __c) 1586: { 1586: if (__n == 1) 1586: traits_type::assign(*__d, __c); 1586: else 1586: traits_type::assign(__d, __n, __c); 1586: } 1586: 1586: 1586: 1586: template 1586: static void 1586: _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) 1586: { 1586: for (; __k1 != __k2; ++__k1, (void)++__p) 1586: traits_type::assign(*__p, *__k1); 1586: } 1586: 1586: static void 1586: _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) noexcept 1586: { _S_copy_chars(__p, __k1.base(), __k2.base()); } 1586: 1586: static void 1586: _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) 1586: noexcept 1586: { _S_copy_chars(__p, __k1.base(), __k2.base()); } 1586: 1586: static void 1586: _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) noexcept 1586: { _S_copy(__p, __k1, __k2 - __k1); } 1586: 1586: static void 1586: _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) 1586: noexcept 1586: { _S_copy(__p, __k1, __k2 - __k1); } 1586: 1586: static int 1586: _S_compare(size_type __n1, size_type __n2) noexcept 1586: { 1586: const difference_type __d = difference_type(__n1 - __n2); 1586: 1586: if (__d > __gnu_cxx::__numeric_traits::__max) 1586: return __gnu_cxx::__numeric_traits::__max; 1586: else if (__d < __gnu_cxx::__numeric_traits::__min) 1586: return __gnu_cxx::__numeric_traits::__min; 1586: else 1586: return int(__d); 1586: } 1586: 1586: void 1586: _M_assign(const basic_string&); 1586: 1586: void 1586: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 1586: size_type __len2); 1586: 1586: void 1586: _M_erase(size_type __pos, size_type __n); 1586: 1586: public: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: basic_string() 1586: noexcept(is_nothrow_default_constructible<_Alloc>::value) 1586: : _M_dataplus(_M_local_data()) 1586: { _M_set_length(0); } 1586: 1586: 1586: 1586: 1586: explicit 1586: basic_string(const _Alloc& __a) noexcept 1586: : _M_dataplus(_M_local_data(), __a) 1586: { _M_set_length(0); } 1586: 1586: 1586: 1586: 1586: 1586: basic_string(const basic_string& __str) 1586: : _M_dataplus(_M_local_data(), 1586: _Alloc_traits::_S_select_on_copy(__str._M_get_allocator())) 1586: { _M_construct(__str._M_data(), __str._M_data() + __str.length()); } 1586: # 461 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string(const basic_string& __str, size_type __pos, 1586: const _Alloc& __a = _Alloc()) 1586: : _M_dataplus(_M_local_data(), __a) 1586: { 1586: const _CharT* __start = __str._M_data() 1586: + __str._M_check(__pos, "basic_string::basic_string"); 1586: _M_construct(__start, __start + __str._M_limit(__pos, npos)); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: basic_string(const basic_string& __str, size_type __pos, 1586: size_type __n) 1586: : _M_dataplus(_M_local_data()) 1586: { 1586: const _CharT* __start = __str._M_data() 1586: + __str._M_check(__pos, "basic_string::basic_string"); 1586: _M_construct(__start, __start + __str._M_limit(__pos, __n)); 1586: } 1586: # 492 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string(const basic_string& __str, size_type __pos, 1586: size_type __n, const _Alloc& __a) 1586: : _M_dataplus(_M_local_data(), __a) 1586: { 1586: const _CharT* __start 1586: = __str._M_data() + __str._M_check(__pos, "string::string"); 1586: _M_construct(__start, __start + __str._M_limit(__pos, __n)); 1586: } 1586: # 510 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string(const _CharT* __s, size_type __n, 1586: const _Alloc& __a = _Alloc()) 1586: : _M_dataplus(_M_local_data(), __a) 1586: { _M_construct(__s, __s + __n); } 1586: # 525 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()) 1586: : _M_dataplus(_M_local_data(), __a) 1586: { _M_construct(__s, __s ? __s + traits_type::length(__s) : __s+npos); } 1586: # 540 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()) 1586: : _M_dataplus(_M_local_data(), __a) 1586: { _M_construct(__n, __c); } 1586: # 552 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string(basic_string&& __str) noexcept 1586: : _M_dataplus(_M_local_data(), std::move(__str._M_get_allocator())) 1586: { 1586: if (__str._M_is_local()) 1586: { 1586: traits_type::copy(_M_local_buf, __str._M_local_buf, 1586: _S_local_capacity + 1); 1586: } 1586: else 1586: { 1586: _M_data(__str._M_data()); 1586: _M_capacity(__str._M_allocated_capacity); 1586: } 1586: 1586: 1586: 1586: 1586: _M_length(__str.length()); 1586: __str._M_data(__str._M_local_data()); 1586: __str._M_set_length(0); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc()) 1586: : _M_dataplus(_M_local_data(), __a) 1586: { _M_construct(__l.begin(), __l.end()); } 1586: 1586: basic_string(const basic_string& __str, const _Alloc& __a) 1586: : _M_dataplus(_M_local_data(), __a) 1586: { _M_construct(__str.begin(), __str.end()); } 1586: 1586: basic_string(basic_string&& __str, const _Alloc& __a) 1586: noexcept(_Alloc_traits::_S_always_equal()) 1586: : _M_dataplus(_M_local_data(), __a) 1586: { 1586: if (__str._M_is_local()) 1586: { 1586: traits_type::copy(_M_local_buf, __str._M_local_buf, 1586: _S_local_capacity + 1); 1586: _M_length(__str.length()); 1586: __str._M_set_length(0); 1586: } 1586: else if (_Alloc_traits::_S_always_equal() 1586: || __str.get_allocator() == __a) 1586: { 1586: _M_data(__str._M_data()); 1586: _M_length(__str.length()); 1586: _M_capacity(__str._M_allocated_capacity); 1586: __str._M_data(__str._M_local_buf); 1586: __str._M_set_length(0); 1586: } 1586: else 1586: _M_construct(__str.begin(), __str.end()); 1586: } 1586: # 620 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template> 1586: 1586: 1586: 1586: basic_string(_InputIterator __beg, _InputIterator __end, 1586: const _Alloc& __a = _Alloc()) 1586: : _M_dataplus(_M_local_data(), __a) 1586: { _M_construct(__beg, __end); } 1586: # 657 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: ~basic_string() 1586: { _M_dispose(); } 1586: 1586: 1586: 1586: 1586: 1586: basic_string& 1586: operator=(const basic_string& __str) 1586: { 1586: 1586: if (_Alloc_traits::_S_propagate_on_copy_assign()) 1586: { 1586: if (!_Alloc_traits::_S_always_equal() && !_M_is_local() 1586: && _M_get_allocator() != __str._M_get_allocator()) 1586: { 1586: 1586: 1586: if (__str.size() <= _S_local_capacity) 1586: { 1586: _M_destroy(_M_allocated_capacity); 1586: _M_data(_M_local_data()); 1586: _M_set_length(0); 1586: } 1586: else 1586: { 1586: const auto __len = __str.size(); 1586: auto __alloc = __str._M_get_allocator(); 1586: 1586: auto __ptr = _Alloc_traits::allocate(__alloc, __len + 1); 1586: _M_destroy(_M_allocated_capacity); 1586: _M_data(__ptr); 1586: _M_capacity(__len); 1586: _M_set_length(__len); 1586: } 1586: } 1586: std::__alloc_on_copy(_M_get_allocator(), __str._M_get_allocator()); 1586: } 1586: 1586: return this->assign(__str); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: basic_string& 1586: operator=(const _CharT* __s) 1586: { return this->assign(__s); } 1586: # 714 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: operator=(_CharT __c) 1586: { 1586: this->assign(1, __c); 1586: return *this; 1586: } 1586: # 731 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: operator=(basic_string&& __str) 1586: noexcept(_Alloc_traits::_S_nothrow_move()) 1586: { 1586: if (!_M_is_local() && _Alloc_traits::_S_propagate_on_move_assign() 1586: && !_Alloc_traits::_S_always_equal() 1586: && _M_get_allocator() != __str._M_get_allocator()) 1586: { 1586: 1586: _M_destroy(_M_allocated_capacity); 1586: _M_data(_M_local_data()); 1586: _M_set_length(0); 1586: } 1586: 1586: std::__alloc_on_move(_M_get_allocator(), __str._M_get_allocator()); 1586: 1586: if (__str._M_is_local()) 1586: { 1586: 1586: if (__str.size()) 1586: this->_S_copy(_M_data(), __str._M_data(), __str.size()); 1586: _M_set_length(__str.size()); 1586: } 1586: else if (_Alloc_traits::_S_propagate_on_move_assign() 1586: || _Alloc_traits::_S_always_equal() 1586: || _M_get_allocator() == __str._M_get_allocator()) 1586: { 1586: 1586: pointer __data = nullptr; 1586: size_type __capacity; 1586: if (!_M_is_local()) 1586: { 1586: if (_Alloc_traits::_S_always_equal()) 1586: { 1586: 1586: __data = _M_data(); 1586: __capacity = _M_allocated_capacity; 1586: } 1586: else 1586: _M_destroy(_M_allocated_capacity); 1586: } 1586: 1586: _M_data(__str._M_data()); 1586: _M_length(__str.length()); 1586: _M_capacity(__str._M_allocated_capacity); 1586: if (__data) 1586: { 1586: __str._M_data(__data); 1586: __str._M_capacity(__capacity); 1586: } 1586: else 1586: __str._M_data(__str._M_local_buf); 1586: } 1586: else 1586: assign(__str); 1586: __str.clear(); 1586: return *this; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: basic_string& 1586: operator=(initializer_list<_CharT> __l) 1586: { 1586: this->assign(__l.begin(), __l.size()); 1586: return *this; 1586: } 1586: # 825 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: iterator 1586: begin() noexcept 1586: { return iterator(_M_data()); } 1586: 1586: 1586: 1586: 1586: 1586: const_iterator 1586: begin() const noexcept 1586: { return const_iterator(_M_data()); } 1586: 1586: 1586: 1586: 1586: 1586: iterator 1586: end() noexcept 1586: { return iterator(_M_data() + this->size()); } 1586: 1586: 1586: 1586: 1586: 1586: const_iterator 1586: end() const noexcept 1586: { return const_iterator(_M_data() + this->size()); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: reverse_iterator 1586: rbegin() noexcept 1586: { return reverse_iterator(this->end()); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_reverse_iterator 1586: rbegin() const noexcept 1586: { return const_reverse_iterator(this->end()); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: reverse_iterator 1586: rend() noexcept 1586: { return reverse_iterator(this->begin()); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_reverse_iterator 1586: rend() const noexcept 1586: { return const_reverse_iterator(this->begin()); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_iterator 1586: cbegin() const noexcept 1586: { return const_iterator(this->_M_data()); } 1586: 1586: 1586: 1586: 1586: 1586: const_iterator 1586: cend() const noexcept 1586: { return const_iterator(this->_M_data() + this->size()); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_reverse_iterator 1586: crbegin() const noexcept 1586: { return const_reverse_iterator(this->end()); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_reverse_iterator 1586: crend() const noexcept 1586: { return const_reverse_iterator(this->begin()); } 1586: 1586: 1586: public: 1586: 1586: 1586: 1586: size_type 1586: size() const noexcept 1586: { return _M_string_length; } 1586: 1586: 1586: 1586: size_type 1586: length() const noexcept 1586: { return _M_string_length; } 1586: 1586: 1586: size_type 1586: max_size() const noexcept 1586: { return (_Alloc_traits::max_size(_M_get_allocator()) - 1) / 2; } 1586: # 954 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: void 1586: resize(size_type __n, _CharT __c); 1586: # 967 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: void 1586: resize(size_type __n) 1586: { this->resize(__n, _CharT()); } 1586: 1586: 1586: 1586: void 1586: shrink_to_fit() noexcept 1586: { 1586: 1586: if (capacity() > size()) 1586: { 1586: try 1586: { reserve(0); } 1586: catch(...) 1586: { } 1586: } 1586: 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: size_type 1586: capacity() const noexcept 1586: { 1586: return _M_is_local() ? size_type(_S_local_capacity) 1586: : _M_allocated_capacity; 1586: } 1586: # 1016 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: void 1586: reserve(size_type __res_arg = 0); 1586: 1586: 1586: 1586: 1586: void 1586: clear() noexcept 1586: { _M_set_length(0); } 1586: 1586: 1586: 1586: 1586: 1586: bool 1586: empty() const noexcept 1586: { return this->size() == 0; } 1586: # 1045 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: const_reference 1586: operator[] (size_type __pos) const noexcept 1586: { 1586: ; 1586: return _M_data()[__pos]; 1586: } 1586: # 1062 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: reference 1586: operator[](size_type __pos) 1586: { 1586: 1586: 1586: ; 1586: 1586: ; 1586: return _M_data()[__pos]; 1586: } 1586: # 1083 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: const_reference 1586: at(size_type __n) const 1586: { 1586: if (__n >= this->size()) 1586: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 1586: 1586: , 1586: __n, this->size()); 1586: return _M_data()[__n]; 1586: } 1586: # 1104 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: reference 1586: at(size_type __n) 1586: { 1586: if (__n >= size()) 1586: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 1586: 1586: , 1586: __n, this->size()); 1586: return _M_data()[__n]; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: reference 1586: front() noexcept 1586: { 1586: ; 1586: return operator[](0); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: const_reference 1586: front() const noexcept 1586: { 1586: ; 1586: return operator[](0); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: reference 1586: back() noexcept 1586: { 1586: ; 1586: return operator[](this->size() - 1); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: const_reference 1586: back() const noexcept 1586: { 1586: ; 1586: return operator[](this->size() - 1); 1586: } 1586: # 1167 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: operator+=(const basic_string& __str) 1586: { return this->append(__str); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: basic_string& 1586: operator+=(const _CharT* __s) 1586: { return this->append(__s); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: basic_string& 1586: operator+=(_CharT __c) 1586: { 1586: this->push_back(__c); 1586: return *this; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: basic_string& 1586: operator+=(initializer_list<_CharT> __l) 1586: { return this->append(__l.begin(), __l.size()); } 1586: # 1220 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: append(const basic_string& __str) 1586: { return _M_append(__str._M_data(), __str.size()); } 1586: # 1237 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: append(const basic_string& __str, size_type __pos, size_type __n = npos) 1586: { return _M_append(__str._M_data() 1586: + __str._M_check(__pos, "basic_string::append"), 1586: __str._M_limit(__pos, __n)); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: basic_string& 1586: append(const _CharT* __s, size_type __n) 1586: { 1586: ; 1586: _M_check_length(size_type(0), __n, "basic_string::append"); 1586: return _M_append(__s, __n); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: basic_string& 1586: append(const _CharT* __s) 1586: { 1586: ; 1586: const size_type __n = traits_type::length(__s); 1586: _M_check_length(size_type(0), __n, "basic_string::append"); 1586: return _M_append(__s, __n); 1586: } 1586: # 1279 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: append(size_type __n, _CharT __c) 1586: { return _M_replace_aux(this->size(), size_type(0), __n, __c); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: basic_string& 1586: append(initializer_list<_CharT> __l) 1586: { return this->append(__l.begin(), __l.size()); } 1586: # 1303 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template> 1586: 1586: 1586: 1586: basic_string& 1586: append(_InputIterator __first, _InputIterator __last) 1586: { return this->replace(end(), end(), __first, __last); } 1586: # 1348 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: void 1586: push_back(_CharT __c) 1586: { 1586: const size_type __size = this->size(); 1586: if (__size + 1 > this->capacity()) 1586: this->_M_mutate(__size, size_type(0), 0, size_type(1)); 1586: traits_type::assign(this->_M_data()[__size], __c); 1586: this->_M_set_length(__size + 1); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: basic_string& 1586: assign(const basic_string& __str) 1586: { 1586: this->_M_assign(__str); 1586: return *this; 1586: } 1586: # 1379 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: assign(basic_string&& __str) 1586: noexcept(_Alloc_traits::_S_nothrow_move()) 1586: { 1586: 1586: 1586: return *this = std::move(__str); 1586: } 1586: # 1402 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: assign(const basic_string& __str, size_type __pos, size_type __n = npos) 1586: { return _M_replace(size_type(0), this->size(), __str._M_data() 1586: + __str._M_check(__pos, "basic_string::assign"), 1586: __str._M_limit(__pos, __n)); } 1586: # 1418 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: assign(const _CharT* __s, size_type __n) 1586: { 1586: ; 1586: return _M_replace(size_type(0), this->size(), __s, __n); 1586: } 1586: # 1434 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: assign(const _CharT* __s) 1586: { 1586: ; 1586: return _M_replace(size_type(0), this->size(), __s, 1586: traits_type::length(__s)); 1586: } 1586: # 1451 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: assign(size_type __n, _CharT __c) 1586: { return _M_replace_aux(size_type(0), this->size(), __n, __c); } 1586: # 1464 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template> 1586: 1586: 1586: 1586: basic_string& 1586: assign(_InputIterator __first, _InputIterator __last) 1586: { return this->replace(begin(), end(), __first, __last); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: basic_string& 1586: assign(initializer_list<_CharT> __l) 1586: { return this->assign(__l.begin(), __l.size()); } 1586: # 1533 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: iterator 1586: insert(const_iterator __p, size_type __n, _CharT __c) 1586: { 1586: ; 1586: const size_type __pos = __p - begin(); 1586: this->replace(__p, __p, __n, __c); 1586: return iterator(this->_M_data() + __pos); 1586: } 1586: # 1575 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template> 1586: iterator 1586: insert(const_iterator __p, _InputIterator __beg, _InputIterator __end) 1586: { 1586: ; 1586: const size_type __pos = __p - begin(); 1586: this->replace(__p, __p, __beg, __end); 1586: return iterator(this->_M_data() + __pos); 1586: } 1586: # 1611 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: iterator 1586: insert(const_iterator __p, initializer_list<_CharT> __l) 1586: { return this->insert(__p, __l.begin(), __l.end()); } 1586: # 1638 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: insert(size_type __pos1, const basic_string& __str) 1586: { return this->replace(__pos1, size_type(0), 1586: __str._M_data(), __str.size()); } 1586: # 1661 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: insert(size_type __pos1, const basic_string& __str, 1586: size_type __pos2, size_type __n = npos) 1586: { return this->replace(__pos1, size_type(0), __str._M_data() 1586: + __str._M_check(__pos2, "basic_string::insert"), 1586: __str._M_limit(__pos2, __n)); } 1586: # 1684 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: insert(size_type __pos, const _CharT* __s, size_type __n) 1586: { return this->replace(__pos, size_type(0), __s, __n); } 1586: # 1703 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: insert(size_type __pos, const _CharT* __s) 1586: { 1586: ; 1586: return this->replace(__pos, size_type(0), __s, 1586: traits_type::length(__s)); 1586: } 1586: # 1727 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: insert(size_type __pos, size_type __n, _CharT __c) 1586: { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), 1586: size_type(0), __n, __c); } 1586: # 1745 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: iterator 1586: insert(__const_iterator __p, _CharT __c) 1586: { 1586: ; 1586: const size_type __pos = __p - begin(); 1586: _M_replace_aux(__pos, size_type(0), size_type(1), __c); 1586: return iterator(_M_data() + __pos); 1586: } 1586: # 1806 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: erase(size_type __pos = 0, size_type __n = npos) 1586: { 1586: _M_check(__pos, "basic_string::erase"); 1586: if (__n == npos) 1586: this->_M_set_length(__pos); 1586: else if (__n != 0) 1586: this->_M_erase(__pos, _M_limit(__pos, __n)); 1586: return *this; 1586: } 1586: # 1825 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: iterator 1586: erase(__const_iterator __position) 1586: { 1586: 1586: ; 1586: const size_type __pos = __position - begin(); 1586: this->_M_erase(__pos, size_type(1)); 1586: return iterator(_M_data() + __pos); 1586: } 1586: # 1844 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: iterator 1586: erase(__const_iterator __first, __const_iterator __last) 1586: { 1586: 1586: ; 1586: const size_type __pos = __first - begin(); 1586: if (__last == end()) 1586: this->_M_set_length(__pos); 1586: else 1586: this->_M_erase(__pos, __last - __first); 1586: return iterator(this->_M_data() + __pos); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: void 1586: pop_back() noexcept 1586: { 1586: ; 1586: _M_erase(size() - 1, 1); 1586: } 1586: # 1888 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: replace(size_type __pos, size_type __n, const basic_string& __str) 1586: { return this->replace(__pos, __n, __str._M_data(), __str.size()); } 1586: # 1910 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: replace(size_type __pos1, size_type __n1, const basic_string& __str, 1586: size_type __pos2, size_type __n2 = npos) 1586: { return this->replace(__pos1, __n1, __str._M_data() 1586: + __str._M_check(__pos2, "basic_string::replace"), 1586: __str._M_limit(__pos2, __n2)); } 1586: # 1935 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: replace(size_type __pos, size_type __n1, const _CharT* __s, 1586: size_type __n2) 1586: { 1586: ; 1586: return _M_replace(_M_check(__pos, "basic_string::replace"), 1586: _M_limit(__pos, __n1), __s, __n2); 1586: } 1586: # 1960 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: replace(size_type __pos, size_type __n1, const _CharT* __s) 1586: { 1586: ; 1586: return this->replace(__pos, __n1, __s, traits_type::length(__s)); 1586: } 1586: # 1984 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) 1586: { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), 1586: _M_limit(__pos, __n1), __n2, __c); } 1586: # 2002 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: replace(__const_iterator __i1, __const_iterator __i2, 1586: const basic_string& __str) 1586: { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } 1586: # 2022 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: replace(__const_iterator __i1, __const_iterator __i2, 1586: const _CharT* __s, size_type __n) 1586: { 1586: 1586: ; 1586: return this->replace(__i1 - begin(), __i2 - __i1, __s, __n); 1586: } 1586: # 2044 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: replace(__const_iterator __i1, __const_iterator __i2, const _CharT* __s) 1586: { 1586: ; 1586: return this->replace(__i1, __i2, __s, traits_type::length(__s)); 1586: } 1586: # 2065 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: replace(__const_iterator __i1, __const_iterator __i2, size_type __n, 1586: _CharT __c) 1586: { 1586: 1586: ; 1586: return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __c); 1586: } 1586: # 2090 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template> 1586: basic_string& 1586: replace(const_iterator __i1, const_iterator __i2, 1586: _InputIterator __k1, _InputIterator __k2) 1586: { 1586: 1586: ; 1586: ; 1586: return this->_M_replace_dispatch(__i1, __i2, __k1, __k2, 1586: std::__false_type()); 1586: } 1586: # 2122 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& 1586: replace(__const_iterator __i1, __const_iterator __i2, 1586: _CharT* __k1, _CharT* __k2) 1586: { 1586: 1586: ; 1586: ; 1586: return this->replace(__i1 - begin(), __i2 - __i1, 1586: __k1, __k2 - __k1); 1586: } 1586: 1586: basic_string& 1586: replace(__const_iterator __i1, __const_iterator __i2, 1586: const _CharT* __k1, const _CharT* __k2) 1586: { 1586: 1586: ; 1586: ; 1586: return this->replace(__i1 - begin(), __i2 - __i1, 1586: __k1, __k2 - __k1); 1586: } 1586: 1586: basic_string& 1586: replace(__const_iterator __i1, __const_iterator __i2, 1586: iterator __k1, iterator __k2) 1586: { 1586: 1586: ; 1586: ; 1586: return this->replace(__i1 - begin(), __i2 - __i1, 1586: __k1.base(), __k2 - __k1); 1586: } 1586: 1586: basic_string& 1586: replace(__const_iterator __i1, __const_iterator __i2, 1586: const_iterator __k1, const_iterator __k2) 1586: { 1586: 1586: ; 1586: ; 1586: return this->replace(__i1 - begin(), __i2 - __i1, 1586: __k1.base(), __k2 - __k1); 1586: } 1586: # 2181 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string& replace(const_iterator __i1, const_iterator __i2, 1586: initializer_list<_CharT> __l) 1586: { return this->replace(__i1, __i2, __l.begin(), __l.size()); } 1586: # 2241 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: private: 1586: template 1586: basic_string& 1586: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 1586: _Integer __n, _Integer __val, __true_type) 1586: { return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __val); } 1586: 1586: template 1586: basic_string& 1586: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 1586: _InputIterator __k1, _InputIterator __k2, 1586: __false_type); 1586: 1586: basic_string& 1586: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 1586: _CharT __c); 1586: 1586: basic_string& 1586: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 1586: const size_type __len2); 1586: 1586: basic_string& 1586: _M_append(const _CharT* __s, size_type __n); 1586: 1586: public: 1586: # 2279 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: copy(_CharT* __s, size_type __n, size_type __pos = 0) const; 1586: # 2289 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: void 1586: swap(basic_string& __s) noexcept; 1586: # 2299 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: const _CharT* 1586: c_str() const noexcept 1586: { return _M_data(); } 1586: # 2311 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: const _CharT* 1586: data() const noexcept 1586: { return _M_data(); } 1586: # 2330 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: allocator_type 1586: get_allocator() const noexcept 1586: { return _M_get_allocator(); } 1586: # 2346 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find(const _CharT* __s, size_type __pos, size_type __n) const 1586: noexcept; 1586: # 2360 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find(const basic_string& __str, size_type __pos = 0) const 1586: noexcept 1586: { return this->find(__str.data(), __pos, __str.size()); } 1586: # 2392 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find(const _CharT* __s, size_type __pos = 0) const noexcept 1586: { 1586: ; 1586: return this->find(__s, __pos, traits_type::length(__s)); 1586: } 1586: # 2409 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find(_CharT __c, size_type __pos = 0) const noexcept; 1586: # 2422 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: rfind(const basic_string& __str, size_type __pos = npos) const 1586: noexcept 1586: { return this->rfind(__str.data(), __pos, __str.size()); } 1586: # 2456 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: rfind(const _CharT* __s, size_type __pos, size_type __n) const 1586: noexcept; 1586: # 2470 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: rfind(const _CharT* __s, size_type __pos = npos) const 1586: { 1586: ; 1586: return this->rfind(__s, __pos, traits_type::length(__s)); 1586: } 1586: # 2487 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: rfind(_CharT __c, size_type __pos = npos) const noexcept; 1586: # 2501 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find_first_of(const basic_string& __str, size_type __pos = 0) const 1586: noexcept 1586: { return this->find_first_of(__str.data(), __pos, __str.size()); } 1586: # 2536 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 1586: noexcept; 1586: # 2550 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find_first_of(const _CharT* __s, size_type __pos = 0) const 1586: noexcept 1586: { 1586: ; 1586: return this->find_first_of(__s, __pos, traits_type::length(__s)); 1586: } 1586: # 2570 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find_first_of(_CharT __c, size_type __pos = 0) const noexcept 1586: { return this->find(__c, __pos); } 1586: # 2585 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find_last_of(const basic_string& __str, size_type __pos = npos) const 1586: noexcept 1586: { return this->find_last_of(__str.data(), __pos, __str.size()); } 1586: # 2620 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 1586: noexcept; 1586: # 2634 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find_last_of(const _CharT* __s, size_type __pos = npos) const 1586: noexcept 1586: { 1586: ; 1586: return this->find_last_of(__s, __pos, traits_type::length(__s)); 1586: } 1586: # 2654 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find_last_of(_CharT __c, size_type __pos = npos) const noexcept 1586: { return this->rfind(__c, __pos); } 1586: # 2668 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find_first_not_of(const basic_string& __str, size_type __pos = 0) const 1586: noexcept 1586: { return this->find_first_not_of(__str.data(), __pos, __str.size()); } 1586: # 2703 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find_first_not_of(const _CharT* __s, size_type __pos, 1586: size_type __n) const noexcept; 1586: # 2717 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find_first_not_of(const _CharT* __s, size_type __pos = 0) const 1586: noexcept 1586: { 1586: ; 1586: return this->find_first_not_of(__s, __pos, traits_type::length(__s)); 1586: } 1586: # 2735 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find_first_not_of(_CharT __c, size_type __pos = 0) const 1586: noexcept; 1586: # 2750 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find_last_not_of(const basic_string& __str, size_type __pos = npos) const 1586: noexcept 1586: { return this->find_last_not_of(__str.data(), __pos, __str.size()); } 1586: # 2785 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find_last_not_of(const _CharT* __s, size_type __pos, 1586: size_type __n) const noexcept; 1586: # 2799 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find_last_not_of(const _CharT* __s, size_type __pos = npos) const 1586: noexcept 1586: { 1586: ; 1586: return this->find_last_not_of(__s, __pos, traits_type::length(__s)); 1586: } 1586: # 2817 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: size_type 1586: find_last_not_of(_CharT __c, size_type __pos = npos) const 1586: noexcept; 1586: # 2833 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: basic_string 1586: substr(size_type __pos = 0, size_type __n = npos) const 1586: { return basic_string(*this, 1586: _M_check(__pos, "basic_string::substr"), __n); } 1586: # 2852 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: int 1586: compare(const basic_string& __str) const 1586: { 1586: const size_type __size = this->size(); 1586: const size_type __osize = __str.size(); 1586: const size_type __len = std::min(__size, __osize); 1586: 1586: int __r = traits_type::compare(_M_data(), __str.data(), __len); 1586: if (!__r) 1586: __r = _S_compare(__size, __osize); 1586: return __r; 1586: } 1586: # 2945 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: int 1586: compare(size_type __pos, size_type __n, const basic_string& __str) const; 1586: # 2971 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: int 1586: compare(size_type __pos1, size_type __n1, const basic_string& __str, 1586: size_type __pos2, size_type __n2 = npos) const; 1586: # 2989 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: int 1586: compare(const _CharT* __s) const noexcept; 1586: # 3013 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: int 1586: compare(size_type __pos, size_type __n1, const _CharT* __s) const; 1586: # 3040 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: int 1586: compare(size_type __pos, size_type __n1, const _CharT* __s, 1586: size_type __n2) const; 1586: # 3071 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template friend class basic_stringbuf; 1586: }; 1586: } 1586: # 6018 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template 1586: basic_string<_CharT, _Traits, _Alloc> 1586: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1586: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1586: { 1586: basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 1586: __str.append(__rhs); 1586: return __str; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: basic_string<_CharT,_Traits,_Alloc> 1586: operator+(const _CharT* __lhs, 1586: const basic_string<_CharT,_Traits,_Alloc>& __rhs); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: basic_string<_CharT,_Traits,_Alloc> 1586: operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline basic_string<_CharT, _Traits, _Alloc> 1586: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1586: const _CharT* __rhs) 1586: { 1586: basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 1586: __str.append(__rhs); 1586: return __str; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline basic_string<_CharT, _Traits, _Alloc> 1586: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) 1586: { 1586: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 1586: typedef typename __string_type::size_type __size_type; 1586: __string_type __str(__lhs); 1586: __str.append(__size_type(1), __rhs); 1586: return __str; 1586: } 1586: 1586: 1586: template 1586: inline basic_string<_CharT, _Traits, _Alloc> 1586: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 1586: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1586: { return std::move(__lhs.append(__rhs)); } 1586: 1586: template 1586: inline basic_string<_CharT, _Traits, _Alloc> 1586: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1586: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 1586: { return std::move(__rhs.insert(0, __lhs)); } 1586: 1586: template 1586: inline basic_string<_CharT, _Traits, _Alloc> 1586: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 1586: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 1586: { 1586: const auto __size = __lhs.size() + __rhs.size(); 1586: const bool __cond = (__size > __lhs.capacity() 1586: && __size <= __rhs.capacity()); 1586: return __cond ? std::move(__rhs.insert(0, __lhs)) 1586: : std::move(__lhs.append(__rhs)); 1586: } 1586: 1586: template 1586: inline basic_string<_CharT, _Traits, _Alloc> 1586: operator+(const _CharT* __lhs, 1586: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 1586: { return std::move(__rhs.insert(0, __lhs)); } 1586: 1586: template 1586: inline basic_string<_CharT, _Traits, _Alloc> 1586: operator+(_CharT __lhs, 1586: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 1586: { return std::move(__rhs.insert(0, 1, __lhs)); } 1586: 1586: template 1586: inline basic_string<_CharT, _Traits, _Alloc> 1586: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 1586: const _CharT* __rhs) 1586: { return std::move(__lhs.append(__rhs)); } 1586: 1586: template 1586: inline basic_string<_CharT, _Traits, _Alloc> 1586: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 1586: _CharT __rhs) 1586: { return std::move(__lhs.append(1, __rhs)); } 1586: # 6139 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template 1586: inline bool 1586: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1586: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1586: noexcept 1586: { return __lhs.compare(__rhs) == 0; } 1586: 1586: template 1586: inline 1586: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type 1586: operator==(const basic_string<_CharT>& __lhs, 1586: const basic_string<_CharT>& __rhs) noexcept 1586: { return (__lhs.size() == __rhs.size() 1586: && !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(), 1586: __lhs.size())); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline bool 1586: operator==(const _CharT* __lhs, 1586: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1586: { return __rhs.compare(__lhs) == 0; } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline bool 1586: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1586: const _CharT* __rhs) 1586: { return __lhs.compare(__rhs) == 0; } 1586: # 6186 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template 1586: inline bool 1586: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1586: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1586: noexcept 1586: { return !(__lhs == __rhs); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline bool 1586: operator!=(const _CharT* __lhs, 1586: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1586: { return !(__lhs == __rhs); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline bool 1586: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1586: const _CharT* __rhs) 1586: { return !(__lhs == __rhs); } 1586: # 6224 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template 1586: inline bool 1586: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1586: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1586: noexcept 1586: { return __lhs.compare(__rhs) < 0; } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline bool 1586: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1586: const _CharT* __rhs) 1586: { return __lhs.compare(__rhs) < 0; } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline bool 1586: operator<(const _CharT* __lhs, 1586: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1586: { return __rhs.compare(__lhs) > 0; } 1586: # 6262 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template 1586: inline bool 1586: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1586: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1586: noexcept 1586: { return __lhs.compare(__rhs) > 0; } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline bool 1586: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1586: const _CharT* __rhs) 1586: { return __lhs.compare(__rhs) > 0; } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline bool 1586: operator>(const _CharT* __lhs, 1586: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1586: { return __rhs.compare(__lhs) < 0; } 1586: # 6300 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template 1586: inline bool 1586: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1586: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1586: noexcept 1586: { return __lhs.compare(__rhs) <= 0; } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline bool 1586: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1586: const _CharT* __rhs) 1586: { return __lhs.compare(__rhs) <= 0; } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline bool 1586: operator<=(const _CharT* __lhs, 1586: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1586: { return __rhs.compare(__lhs) >= 0; } 1586: # 6338 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template 1586: inline bool 1586: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1586: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1586: noexcept 1586: { return __lhs.compare(__rhs) >= 0; } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline bool 1586: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 1586: const _CharT* __rhs) 1586: { return __lhs.compare(__rhs) >= 0; } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline bool 1586: operator>=(const _CharT* __lhs, 1586: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1586: { return __rhs.compare(__lhs) <= 0; } 1586: # 6376 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template 1586: inline void 1586: swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, 1586: basic_string<_CharT, _Traits, _Alloc>& __rhs) 1586: noexcept(noexcept(__lhs.swap(__rhs))) 1586: { __lhs.swap(__rhs); } 1586: # 6396 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: operator>>(basic_istream<_CharT, _Traits>& __is, 1586: basic_string<_CharT, _Traits, _Alloc>& __str); 1586: 1586: template<> 1586: basic_istream& 1586: operator>>(basic_istream& __is, basic_string& __str); 1586: # 6414 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template 1586: inline basic_ostream<_CharT, _Traits>& 1586: operator<<(basic_ostream<_CharT, _Traits>& __os, 1586: const basic_string<_CharT, _Traits, _Alloc>& __str) 1586: { 1586: 1586: 1586: return __ostream_insert(__os, __str.data(), __str.size()); 1586: } 1586: # 6437 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: getline(basic_istream<_CharT, _Traits>& __is, 1586: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); 1586: # 6454 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template 1586: inline basic_istream<_CharT, _Traits>& 1586: getline(basic_istream<_CharT, _Traits>& __is, 1586: basic_string<_CharT, _Traits, _Alloc>& __str) 1586: { return std::getline(__is, __str, __is.widen('\n')); } 1586: 1586: 1586: 1586: template 1586: inline basic_istream<_CharT, _Traits>& 1586: getline(basic_istream<_CharT, _Traits>&& __is, 1586: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 1586: { return std::getline(__is, __str, __delim); } 1586: 1586: 1586: template 1586: inline basic_istream<_CharT, _Traits>& 1586: getline(basic_istream<_CharT, _Traits>&& __is, 1586: basic_string<_CharT, _Traits, _Alloc>& __str) 1586: { return std::getline(__is, __str); } 1586: 1586: 1586: template<> 1586: basic_istream& 1586: getline(basic_istream& __in, basic_string& __str, 1586: char __delim); 1586: 1586: 1586: template<> 1586: basic_istream& 1586: getline(basic_istream& __in, basic_string& __str, 1586: wchar_t __delim); 1586: 1586: 1586: 1586: } 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/ext/string_conversions.h" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/c++/9/ext/string_conversions.h" 3 1586: 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/ext/string_conversions.h" 3 1586: # 41 "/usr/mipsel-linux-gnu/include/c++/9/ext/string_conversions.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/cstdlib" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/cstdlib" 3 1586: 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/cstdlib" 3 1586: # 75 "/usr/mipsel-linux-gnu/include/c++/9/cstdlib" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/stdlib.h" 1 3 1586: # 25 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/libc-header-start.h" 1 3 1586: # 26 "/usr/mipsel-linux-gnu/include/stdlib.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stddef.h" 1 3 4 1586: # 32 "/usr/mipsel-linux-gnu/include/stdlib.h" 2 3 1586: 1586: extern "C" { 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/waitflags.h" 1 3 1586: # 52 "/usr/mipsel-linux-gnu/include/bits/waitflags.h" 3 1586: typedef enum 1586: { 1586: P_ALL, 1586: P_PID, 1586: P_PGID 1586: } idtype_t; 1586: # 40 "/usr/mipsel-linux-gnu/include/stdlib.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/waitstatus.h" 1 3 1586: # 41 "/usr/mipsel-linux-gnu/include/stdlib.h" 2 3 1586: # 58 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: typedef struct 1586: { 1586: int quot; 1586: int rem; 1586: } div_t; 1586: 1586: 1586: 1586: typedef struct 1586: { 1586: long int quot; 1586: long int rem; 1586: } ldiv_t; 1586: 1586: 1586: 1586: 1586: 1586: __extension__ typedef struct 1586: { 1586: long long int quot; 1586: long long int rem; 1586: } lldiv_t; 1586: # 97 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern size_t __ctype_get_mb_cur_max (void) throw () __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: extern double atof (const char *__nptr) 1586: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: 1586: extern int atoi (const char *__nptr) 1586: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: 1586: extern long int atol (const char *__nptr) 1586: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: __extension__ extern long long int atoll (const char *__nptr) 1586: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: extern double strtod (const char *__restrict __nptr, 1586: char **__restrict __endptr) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: extern float strtof (const char *__restrict __nptr, 1586: char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: extern long double strtold (const char *__restrict __nptr, 1586: char **__restrict __endptr) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: # 140 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern _Float32 strtof32 (const char *__restrict __nptr, 1586: char **__restrict __endptr) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: extern _Float64 strtof64 (const char *__restrict __nptr, 1586: char **__restrict __endptr) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: # 158 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern _Float32x strtof32x (const char *__restrict __nptr, 1586: char **__restrict __endptr) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: # 176 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern long int strtol (const char *__restrict __nptr, 1586: char **__restrict __endptr, int __base) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: extern unsigned long int strtoul (const char *__restrict __nptr, 1586: char **__restrict __endptr, int __base) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: __extension__ 1586: extern long long int strtoq (const char *__restrict __nptr, 1586: char **__restrict __endptr, int __base) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: __extension__ 1586: extern unsigned long long int strtouq (const char *__restrict __nptr, 1586: char **__restrict __endptr, int __base) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: 1586: __extension__ 1586: extern long long int strtoll (const char *__restrict __nptr, 1586: char **__restrict __endptr, int __base) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: __extension__ 1586: extern unsigned long long int strtoull (const char *__restrict __nptr, 1586: char **__restrict __endptr, int __base) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: 1586: extern int strfromd (char *__dest, size_t __size, const char *__format, 1586: double __f) 1586: throw () __attribute__ ((__nonnull__ (3))); 1586: 1586: extern int strfromf (char *__dest, size_t __size, const char *__format, 1586: float __f) 1586: throw () __attribute__ ((__nonnull__ (3))); 1586: 1586: extern int strfroml (char *__dest, size_t __size, const char *__format, 1586: long double __f) 1586: throw () __attribute__ ((__nonnull__ (3))); 1586: # 232 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern int strfromf32 (char *__dest, size_t __size, const char * __format, 1586: _Float32 __f) 1586: throw () __attribute__ ((__nonnull__ (3))); 1586: 1586: 1586: 1586: extern int strfromf64 (char *__dest, size_t __size, const char * __format, 1586: _Float64 __f) 1586: throw () __attribute__ ((__nonnull__ (3))); 1586: # 250 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern int strfromf32x (char *__dest, size_t __size, const char * __format, 1586: _Float32x __f) 1586: throw () __attribute__ ((__nonnull__ (3))); 1586: # 274 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern long int strtol_l (const char *__restrict __nptr, 1586: char **__restrict __endptr, int __base, 1586: locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); 1586: 1586: extern unsigned long int strtoul_l (const char *__restrict __nptr, 1586: char **__restrict __endptr, 1586: int __base, locale_t __loc) 1586: throw () __attribute__ ((__nonnull__ (1, 4))); 1586: 1586: __extension__ 1586: extern long long int strtoll_l (const char *__restrict __nptr, 1586: char **__restrict __endptr, int __base, 1586: locale_t __loc) 1586: throw () __attribute__ ((__nonnull__ (1, 4))); 1586: 1586: __extension__ 1586: extern unsigned long long int strtoull_l (const char *__restrict __nptr, 1586: char **__restrict __endptr, 1586: int __base, locale_t __loc) 1586: throw () __attribute__ ((__nonnull__ (1, 4))); 1586: 1586: extern double strtod_l (const char *__restrict __nptr, 1586: char **__restrict __endptr, locale_t __loc) 1586: throw () __attribute__ ((__nonnull__ (1, 3))); 1586: 1586: extern float strtof_l (const char *__restrict __nptr, 1586: char **__restrict __endptr, locale_t __loc) 1586: throw () __attribute__ ((__nonnull__ (1, 3))); 1586: 1586: extern long double strtold_l (const char *__restrict __nptr, 1586: char **__restrict __endptr, 1586: locale_t __loc) 1586: throw () __attribute__ ((__nonnull__ (1, 3))); 1586: # 316 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern _Float32 strtof32_l (const char *__restrict __nptr, 1586: char **__restrict __endptr, 1586: locale_t __loc) 1586: throw () __attribute__ ((__nonnull__ (1, 3))); 1586: 1586: 1586: 1586: extern _Float64 strtof64_l (const char *__restrict __nptr, 1586: char **__restrict __endptr, 1586: locale_t __loc) 1586: throw () __attribute__ ((__nonnull__ (1, 3))); 1586: # 337 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern _Float32x strtof32x_l (const char *__restrict __nptr, 1586: char **__restrict __endptr, 1586: locale_t __loc) 1586: throw () __attribute__ ((__nonnull__ (1, 3))); 1586: # 360 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern __inline __attribute__ ((__gnu_inline__)) int 1586: __attribute__ ((__leaf__)) atoi (const char *__nptr) throw () 1586: { 1586: return (int) strtol (__nptr, (char **) __null, 10); 1586: } 1586: extern __inline __attribute__ ((__gnu_inline__)) long int 1586: __attribute__ ((__leaf__)) atol (const char *__nptr) throw () 1586: { 1586: return strtol (__nptr, (char **) __null, 10); 1586: } 1586: 1586: 1586: __extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int 1586: __attribute__ ((__leaf__)) atoll (const char *__nptr) throw () 1586: { 1586: return strtoll (__nptr, (char **) __null, 10); 1586: } 1586: # 385 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern char *l64a (long int __n) throw () __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: extern long int a64l (const char *__s) 1586: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/sys/types.h" 1 3 1586: # 27 "/usr/mipsel-linux-gnu/include/sys/types.h" 3 1586: extern "C" { 1586: 1586: 1586: 1586: 1586: 1586: typedef __u_char u_char; 1586: typedef __u_short u_short; 1586: typedef __u_int u_int; 1586: typedef __u_long u_long; 1586: typedef __quad_t quad_t; 1586: typedef __u_quad_t u_quad_t; 1586: typedef __fsid_t fsid_t; 1586: 1586: 1586: typedef __loff_t loff_t; 1586: 1586: 1586: 1586: 1586: typedef __ino_t ino_t; 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef __ino64_t ino64_t; 1586: 1586: 1586: 1586: 1586: typedef __dev_t dev_t; 1586: 1586: 1586: 1586: 1586: typedef __gid_t gid_t; 1586: 1586: 1586: 1586: 1586: typedef __mode_t mode_t; 1586: 1586: 1586: 1586: 1586: typedef __nlink_t nlink_t; 1586: 1586: 1586: 1586: 1586: typedef __uid_t uid_t; 1586: 1586: 1586: 1586: 1586: 1586: typedef __off_t off_t; 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef __off64_t off64_t; 1586: # 103 "/usr/mipsel-linux-gnu/include/sys/types.h" 3 1586: typedef __id_t id_t; 1586: 1586: 1586: 1586: 1586: typedef __ssize_t ssize_t; 1586: 1586: 1586: 1586: 1586: 1586: typedef __daddr_t daddr_t; 1586: typedef __caddr_t caddr_t; 1586: 1586: 1586: 1586: 1586: 1586: typedef __key_t key_t; 1586: # 134 "/usr/mipsel-linux-gnu/include/sys/types.h" 3 1586: typedef __useconds_t useconds_t; 1586: 1586: 1586: 1586: typedef __suseconds_t suseconds_t; 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stddef.h" 1 3 4 1586: # 145 "/usr/mipsel-linux-gnu/include/sys/types.h" 2 3 1586: 1586: 1586: 1586: typedef unsigned long int ulong; 1586: typedef unsigned short int ushort; 1586: typedef unsigned int uint; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef __uint8_t u_int8_t; 1586: typedef __uint16_t u_int16_t; 1586: typedef __uint32_t u_int32_t; 1586: typedef __uint64_t u_int64_t; 1586: 1586: 1586: typedef int register_t __attribute__ ((__mode__ (__word__))); 1586: # 176 "/usr/mipsel-linux-gnu/include/sys/types.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/endian.h" 1 3 1586: # 35 "/usr/mipsel-linux-gnu/include/endian.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/byteswap.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/bits/byteswap.h" 3 1586: static __inline __uint16_t 1586: __bswap_16 (__uint16_t __bsx) 1586: { 1586: 1586: return __builtin_bswap16 (__bsx); 1586: 1586: 1586: 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: static __inline __uint32_t 1586: __bswap_32 (__uint32_t __bsx) 1586: { 1586: 1586: return __builtin_bswap32 (__bsx); 1586: 1586: 1586: 1586: } 1586: # 69 "/usr/mipsel-linux-gnu/include/bits/byteswap.h" 3 1586: __extension__ static __inline __uint64_t 1586: __bswap_64 (__uint64_t __bsx) 1586: { 1586: 1586: return __builtin_bswap64 (__bsx); 1586: 1586: 1586: 1586: } 1586: # 36 "/usr/mipsel-linux-gnu/include/endian.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/uintn-identity.h" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/bits/uintn-identity.h" 3 1586: static __inline __uint16_t 1586: __uint16_identity (__uint16_t __x) 1586: { 1586: return __x; 1586: } 1586: 1586: static __inline __uint32_t 1586: __uint32_identity (__uint32_t __x) 1586: { 1586: return __x; 1586: } 1586: 1586: static __inline __uint64_t 1586: __uint64_identity (__uint64_t __x) 1586: { 1586: return __x; 1586: } 1586: # 37 "/usr/mipsel-linux-gnu/include/endian.h" 2 3 1586: # 177 "/usr/mipsel-linux-gnu/include/sys/types.h" 2 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/sys/select.h" 1 3 1586: # 30 "/usr/mipsel-linux-gnu/include/sys/select.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/select.h" 1 3 1586: # 31 "/usr/mipsel-linux-gnu/include/sys/select.h" 2 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/sigset_t.h" 1 3 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/__sigset_t.h" 1 3 1586: 1586: 1586: 1586: 1586: typedef struct 1586: { 1586: unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; 1586: } __sigset_t; 1586: # 5 "/usr/mipsel-linux-gnu/include/bits/types/sigset_t.h" 2 3 1586: 1586: 1586: typedef __sigset_t sigset_t; 1586: # 34 "/usr/mipsel-linux-gnu/include/sys/select.h" 2 3 1586: # 49 "/usr/mipsel-linux-gnu/include/sys/select.h" 3 1586: typedef long int __fd_mask; 1586: # 59 "/usr/mipsel-linux-gnu/include/sys/select.h" 3 1586: typedef struct 1586: { 1586: 1586: 1586: 1586: __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; 1586: 1586: 1586: 1586: 1586: 1586: } fd_set; 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef __fd_mask fd_mask; 1586: # 91 "/usr/mipsel-linux-gnu/include/sys/select.h" 3 1586: extern "C" { 1586: # 101 "/usr/mipsel-linux-gnu/include/sys/select.h" 3 1586: extern int select (int __nfds, fd_set *__restrict __readfds, 1586: fd_set *__restrict __writefds, 1586: fd_set *__restrict __exceptfds, 1586: struct timeval *__restrict __timeout); 1586: # 113 "/usr/mipsel-linux-gnu/include/sys/select.h" 3 1586: extern int pselect (int __nfds, fd_set *__restrict __readfds, 1586: fd_set *__restrict __writefds, 1586: fd_set *__restrict __exceptfds, 1586: const struct timespec *__restrict __timeout, 1586: const __sigset_t *__restrict __sigmask); 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/select2.h" 1 3 1586: # 24 "/usr/mipsel-linux-gnu/include/bits/select2.h" 3 1586: extern long int __fdelt_chk (long int __d); 1586: extern long int __fdelt_warn (long int __d) 1586: __attribute__((__warning__ ("bit outside of fd_set selected"))); 1586: # 124 "/usr/mipsel-linux-gnu/include/sys/select.h" 2 3 1586: 1586: 1586: } 1586: # 180 "/usr/mipsel-linux-gnu/include/sys/types.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: typedef __blksize_t blksize_t; 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef __blkcnt_t blkcnt_t; 1586: 1586: 1586: 1586: typedef __fsblkcnt_t fsblkcnt_t; 1586: 1586: 1586: 1586: typedef __fsfilcnt_t fsfilcnt_t; 1586: # 219 "/usr/mipsel-linux-gnu/include/sys/types.h" 3 1586: typedef __blkcnt64_t blkcnt64_t; 1586: typedef __fsblkcnt64_t fsblkcnt64_t; 1586: typedef __fsfilcnt64_t fsfilcnt64_t; 1586: # 230 "/usr/mipsel-linux-gnu/include/sys/types.h" 3 1586: } 1586: # 395 "/usr/mipsel-linux-gnu/include/stdlib.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern long int random (void) throw (); 1586: 1586: 1586: extern void srandom (unsigned int __seed) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern char *initstate (unsigned int __seed, char *__statebuf, 1586: size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); 1586: 1586: 1586: 1586: extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: struct random_data 1586: { 1586: int32_t *fptr; 1586: int32_t *rptr; 1586: int32_t *state; 1586: int rand_type; 1586: int rand_deg; 1586: int rand_sep; 1586: int32_t *end_ptr; 1586: }; 1586: 1586: extern int random_r (struct random_data *__restrict __buf, 1586: int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: extern int srandom_r (unsigned int __seed, struct random_data *__buf) 1586: throw () __attribute__ ((__nonnull__ (2))); 1586: 1586: extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, 1586: size_t __statelen, 1586: struct random_data *__restrict __buf) 1586: throw () __attribute__ ((__nonnull__ (2, 4))); 1586: 1586: extern int setstate_r (char *__restrict __statebuf, 1586: struct random_data *__restrict __buf) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: 1586: 1586: 1586: extern int rand (void) throw (); 1586: 1586: extern void srand (unsigned int __seed) throw (); 1586: 1586: 1586: 1586: extern int rand_r (unsigned int *__seed) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern double drand48 (void) throw (); 1586: extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern long int lrand48 (void) throw (); 1586: extern long int nrand48 (unsigned short int __xsubi[3]) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern long int mrand48 (void) throw (); 1586: extern long int jrand48 (unsigned short int __xsubi[3]) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: extern void srand48 (long int __seedval) throw (); 1586: extern unsigned short int *seed48 (unsigned short int __seed16v[3]) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: 1586: 1586: struct drand48_data 1586: { 1586: unsigned short int __x[3]; 1586: unsigned short int __old_x[3]; 1586: unsigned short int __c; 1586: unsigned short int __init; 1586: __extension__ unsigned long long int __a; 1586: 1586: }; 1586: 1586: 1586: extern int drand48_r (struct drand48_data *__restrict __buffer, 1586: double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 1586: extern int erand48_r (unsigned short int __xsubi[3], 1586: struct drand48_data *__restrict __buffer, 1586: double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern int lrand48_r (struct drand48_data *__restrict __buffer, 1586: long int *__restrict __result) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: extern int nrand48_r (unsigned short int __xsubi[3], 1586: struct drand48_data *__restrict __buffer, 1586: long int *__restrict __result) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern int mrand48_r (struct drand48_data *__restrict __buffer, 1586: long int *__restrict __result) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: extern int jrand48_r (unsigned short int __xsubi[3], 1586: struct drand48_data *__restrict __buffer, 1586: long int *__restrict __result) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: extern int srand48_r (long int __seedval, struct drand48_data *__buffer) 1586: throw () __attribute__ ((__nonnull__ (2))); 1586: 1586: extern int seed48_r (unsigned short int __seed16v[3], 1586: struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: extern int lcong48_r (unsigned short int __param[7], 1586: struct drand48_data *__buffer) 1586: throw () __attribute__ ((__nonnull__ (1, 2))); 1586: 1586: 1586: 1586: 1586: extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) 1586: __attribute__ ((__alloc_size__ (1))) __attribute__ ((__warn_unused_result__)); 1586: 1586: extern void *calloc (size_t __nmemb, size_t __size) 1586: throw () __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern void *realloc (void *__ptr, size_t __size) 1586: throw () __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2))); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) 1586: throw () __attribute__ ((__warn_unused_result__)) 1586: __attribute__ ((__alloc_size__ (2, 3))); 1586: 1586: 1586: 1586: extern void free (void *__ptr) throw (); 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/alloca.h" 1 3 1586: # 24 "/usr/mipsel-linux-gnu/include/alloca.h" 3 1586: # 1 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stddef.h" 1 3 4 1586: # 25 "/usr/mipsel-linux-gnu/include/alloca.h" 2 3 1586: 1586: extern "C" { 1586: 1586: 1586: 1586: 1586: 1586: extern void *alloca (size_t __size) throw (); 1586: 1586: 1586: 1586: 1586: 1586: } 1586: # 569 "/usr/mipsel-linux-gnu/include/stdlib.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) 1586: __attribute__ ((__alloc_size__ (1))) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) 1586: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: extern void *aligned_alloc (size_t __alignment, size_t __size) 1586: throw () __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: extern void abort (void) throw () __attribute__ ((__noreturn__)); 1586: 1586: 1586: 1586: extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: 1586: extern "C++" int at_quick_exit (void (*__func) (void)) 1586: throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); 1586: # 610 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: 1586: 1586: extern void exit (int __status) throw () __attribute__ ((__noreturn__)); 1586: 1586: 1586: 1586: 1586: 1586: extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__)); 1586: 1586: 1586: 1586: 1586: 1586: extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); 1586: 1586: 1586: 1586: 1586: extern char *getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: extern char *secure_getenv (const char *__name) 1586: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: 1586: 1586: extern int setenv (const char *__name, const char *__value, int __replace) 1586: throw () __attribute__ ((__nonnull__ (2))); 1586: 1586: 1586: extern int unsetenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int clearenv (void) throw (); 1586: # 675 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); 1586: # 688 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: # 698 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: # 710 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: # 720 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern int mkstemps64 (char *__template, int __suffixlen) 1586: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: # 731 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: # 742 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: # 752 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: # 762 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern int mkostemps (char *__template, int __suffixlen, int __flags) 1586: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: # 774 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern int mkostemps64 (char *__template, int __suffixlen, int __flags) 1586: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: # 784 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern int system (const char *__command) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: 1586: extern char *canonicalize_file_name (const char *__name) 1586: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: # 800 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern char *realpath (const char *__restrict __name, 1586: char *__restrict __resolved) throw () __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef int (*__compar_fn_t) (const void *, const void *); 1586: 1586: 1586: typedef __compar_fn_t comparison_fn_t; 1586: 1586: 1586: 1586: typedef int (*__compar_d_fn_t) (const void *, const void *, void *); 1586: 1586: 1586: 1586: 1586: extern void *bsearch (const void *__key, const void *__base, 1586: size_t __nmemb, size_t __size, __compar_fn_t __compar) 1586: __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/stdlib-bsearch.h" 1 3 1586: # 19 "/usr/mipsel-linux-gnu/include/bits/stdlib-bsearch.h" 3 1586: extern __inline __attribute__ ((__gnu_inline__)) void * 1586: bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, 1586: __compar_fn_t __compar) 1586: { 1586: size_t __l, __u, __idx; 1586: const void *__p; 1586: int __comparison; 1586: 1586: __l = 0; 1586: __u = __nmemb; 1586: while (__l < __u) 1586: { 1586: __idx = (__l + __u) / 2; 1586: __p = (void *) (((const char *) __base) + (__idx * __size)); 1586: __comparison = (*__compar) (__key, __p); 1586: if (__comparison < 0) 1586: __u = __idx; 1586: else if (__comparison > 0) 1586: __l = __idx + 1; 1586: else 1586: return (void *) __p; 1586: } 1586: 1586: return __null; 1586: } 1586: # 826 "/usr/mipsel-linux-gnu/include/stdlib.h" 2 3 1586: 1586: 1586: 1586: 1586: extern void qsort (void *__base, size_t __nmemb, size_t __size, 1586: __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); 1586: 1586: extern void qsort_r (void *__base, size_t __nmemb, size_t __size, 1586: __compar_d_fn_t __compar, void *__arg) 1586: __attribute__ ((__nonnull__ (1, 4))); 1586: 1586: 1586: 1586: 1586: extern int abs (int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 1586: extern long int labs (long int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: __extension__ extern long long int llabs (long long int __x) 1586: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern div_t div (int __numer, int __denom) 1586: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 1586: extern ldiv_t ldiv (long int __numer, long int __denom) 1586: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: __extension__ extern lldiv_t lldiv (long long int __numer, 1586: long long int __denom) 1586: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 1586: # 872 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, 1586: int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, 1586: int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: extern char *gcvt (double __value, int __ndigit, char *__buf) 1586: throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: extern char *qecvt (long double __value, int __ndigit, 1586: int *__restrict __decpt, int *__restrict __sign) 1586: throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 1586: extern char *qfcvt (long double __value, int __ndigit, 1586: int *__restrict __decpt, int *__restrict __sign) 1586: throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 1586: extern char *qgcvt (long double __value, int __ndigit, char *__buf) 1586: throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, 1586: int *__restrict __sign, char *__restrict __buf, 1586: size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); 1586: extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, 1586: int *__restrict __sign, char *__restrict __buf, 1586: size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); 1586: 1586: extern int qecvt_r (long double __value, int __ndigit, 1586: int *__restrict __decpt, int *__restrict __sign, 1586: char *__restrict __buf, size_t __len) 1586: throw () __attribute__ ((__nonnull__ (3, 4, 5))); 1586: extern int qfcvt_r (long double __value, int __ndigit, 1586: int *__restrict __decpt, int *__restrict __sign, 1586: char *__restrict __buf, size_t __len) 1586: throw () __attribute__ ((__nonnull__ (3, 4, 5))); 1586: 1586: 1586: 1586: 1586: 1586: extern int mblen (const char *__s, size_t __n) throw (); 1586: 1586: 1586: extern int mbtowc (wchar_t *__restrict __pwc, 1586: const char *__restrict __s, size_t __n) throw (); 1586: 1586: 1586: extern int wctomb (char *__s, wchar_t __wchar) throw (); 1586: 1586: 1586: 1586: extern size_t mbstowcs (wchar_t *__restrict __pwcs, 1586: const char *__restrict __s, size_t __n) throw (); 1586: 1586: extern size_t wcstombs (char *__restrict __s, 1586: const wchar_t *__restrict __pwcs, size_t __n) 1586: throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int rpmatch (const char *__response) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 1586: # 957 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: extern int getsubopt (char **__restrict __optionp, 1586: char *const *__restrict __tokens, 1586: char **__restrict __valuep) 1586: throw () __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int grantpt (int __fd) throw (); 1586: 1586: 1586: 1586: extern int unlockpt (int __fd) throw (); 1586: 1586: 1586: 1586: 1586: extern char *ptsname (int __fd) throw () __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int ptsname_r (int __fd, char *__buf, size_t __buflen) 1586: throw () __attribute__ ((__nonnull__ (2))); 1586: 1586: 1586: extern int getpt (void); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int getloadavg (double __loadavg[], int __nelem) 1586: throw () __attribute__ ((__nonnull__ (1))); 1586: # 1013 "/usr/mipsel-linux-gnu/include/stdlib.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/stdlib-float.h" 1 3 1586: # 24 "/usr/mipsel-linux-gnu/include/bits/stdlib-float.h" 3 1586: extern __inline __attribute__ ((__gnu_inline__)) double 1586: __attribute__ ((__leaf__)) atof (const char *__nptr) throw () 1586: { 1586: return strtod (__nptr, (char **) __null); 1586: } 1586: # 1014 "/usr/mipsel-linux-gnu/include/stdlib.h" 2 3 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/stdlib.h" 1 3 1586: # 23 "/usr/mipsel-linux-gnu/include/bits/stdlib.h" 3 1586: extern char *__realpath_chk (const char *__restrict __name, 1586: char *__restrict __resolved, 1586: size_t __resolvedlen) throw () __attribute__ ((__warn_unused_result__)); 1586: extern char *__realpath_alias (const char *__restrict __name, char *__restrict __resolved) throw () __asm__ ("" "realpath") 1586: 1586: __attribute__ ((__warn_unused_result__)); 1586: extern char *__realpath_chk_warn (const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) throw () __asm__ ("" "__realpath_chk") 1586: 1586: 1586: __attribute__ ((__warn_unused_result__)) 1586: __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer"))) 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 1586: __attribute__ ((__leaf__)) realpath (const char *__restrict __name, char *__restrict __resolved) throw () 1586: { 1586: if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1) 1586: { 1586: 1586: 1586: 1586: 1586: return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); 1586: } 1586: 1586: return __realpath_alias (__name, __resolved); 1586: } 1586: 1586: 1586: extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, 1586: size_t __nreal) throw () __attribute__ ((__nonnull__ (2))); 1586: extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) throw () __asm__ ("" "ptsname_r") 1586: 1586: __attribute__ ((__nonnull__ (2))); 1586: extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) throw () __asm__ ("" "__ptsname_r_chk") 1586: 1586: 1586: __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf"))) 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: __attribute__ ((__leaf__)) ptsname_r (int __fd, char *__buf, size_t __buflen) throw () 1586: { 1586: if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__buflen)) 1586: return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 1586: if (__buflen > __builtin_object_size (__buf, 2 > 1)) 1586: return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 1586: } 1586: return __ptsname_r_alias (__fd, __buf, __buflen); 1586: } 1586: 1586: 1586: extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen) 1586: throw () __attribute__ ((__warn_unused_result__)); 1586: extern int __wctomb_alias (char *__s, wchar_t __wchar) throw () __asm__ ("" "wctomb") 1586: __attribute__ ((__warn_unused_result__)); 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int 1586: __attribute__ ((__leaf__)) wctomb (char *__s, wchar_t __wchar) throw () 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) 1586: return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1)); 1586: return __wctomb_alias (__s, __wchar); 1586: } 1586: 1586: 1586: extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, 1586: const char *__restrict __src, 1586: size_t __len, size_t __dstlen) throw (); 1586: extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) throw () __asm__ ("" "mbstowcs") 1586: 1586: 1586: ; 1586: extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__mbstowcs_chk") 1586: 1586: 1586: 1586: __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 1586: __attribute__ ((__leaf__)) mbstowcs (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) throw () 1586: 1586: { 1586: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__len)) 1586: return __mbstowcs_chk (__dst, __src, __len, 1586: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 1586: 1586: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 1586: return __mbstowcs_chk_warn (__dst, __src, __len, 1586: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 1586: } 1586: return __mbstowcs_alias (__dst, __src, __len); 1586: } 1586: 1586: 1586: extern size_t __wcstombs_chk (char *__restrict __dst, 1586: const wchar_t *__restrict __src, 1586: size_t __len, size_t __dstlen) throw (); 1586: extern size_t __wcstombs_alias (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) throw () __asm__ ("" "wcstombs") 1586: 1586: 1586: ; 1586: extern size_t __wcstombs_chk_warn (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__wcstombs_chk") 1586: 1586: 1586: 1586: __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len"))); 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 1586: __attribute__ ((__leaf__)) wcstombs (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) throw () 1586: 1586: { 1586: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__len)) 1586: return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); 1586: if (__len > __builtin_object_size (__dst, 2 > 1)) 1586: return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); 1586: } 1586: return __wcstombs_alias (__dst, __src, __len); 1586: } 1586: # 1018 "/usr/mipsel-linux-gnu/include/stdlib.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: } 1586: # 76 "/usr/mipsel-linux-gnu/include/c++/9/cstdlib" 2 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_abs.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_abs.h" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_abs.h" 3 1586: # 46 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_abs.h" 3 1586: extern "C++" 1586: { 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: using ::abs; 1586: 1586: 1586: inline long 1586: abs(long __i) { return __builtin_labs(__i); } 1586: 1586: 1586: 1586: inline long long 1586: abs(long long __x) { return __builtin_llabs (__x); } 1586: # 70 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_abs.h" 3 1586: inline constexpr double 1586: abs(double __x) 1586: { return __builtin_fabs(__x); } 1586: 1586: inline constexpr float 1586: abs(float __x) 1586: { return __builtin_fabsf(__x); } 1586: 1586: inline constexpr long double 1586: abs(long double __x) 1586: { return __builtin_fabsl(__x); } 1586: # 107 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_abs.h" 3 1586: 1586: } 1586: } 1586: # 78 "/usr/mipsel-linux-gnu/include/c++/9/cstdlib" 2 3 1586: # 121 "/usr/mipsel-linux-gnu/include/c++/9/cstdlib" 3 1586: extern "C++" 1586: { 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: using ::div_t; 1586: using ::ldiv_t; 1586: 1586: using ::abort; 1586: 1586: 1586: 1586: using ::atexit; 1586: 1586: 1586: using ::at_quick_exit; 1586: 1586: 1586: using ::atof; 1586: using ::atoi; 1586: using ::atol; 1586: using ::bsearch; 1586: using ::calloc; 1586: using ::div; 1586: using ::exit; 1586: using ::free; 1586: using ::getenv; 1586: using ::labs; 1586: using ::ldiv; 1586: using ::malloc; 1586: 1586: using ::mblen; 1586: using ::mbstowcs; 1586: using ::mbtowc; 1586: 1586: using ::qsort; 1586: 1586: 1586: using ::quick_exit; 1586: 1586: 1586: using ::rand; 1586: using ::realloc; 1586: using ::srand; 1586: using ::strtod; 1586: using ::strtol; 1586: using ::strtoul; 1586: using ::system; 1586: 1586: using ::wcstombs; 1586: using ::wctomb; 1586: 1586: 1586: 1586: inline ldiv_t 1586: div(long __i, long __j) { return ldiv(__i, __j); } 1586: 1586: 1586: 1586: 1586: } 1586: # 195 "/usr/mipsel-linux-gnu/include/c++/9/cstdlib" 3 1586: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: using ::lldiv_t; 1586: 1586: 1586: 1586: 1586: 1586: using ::_Exit; 1586: 1586: 1586: 1586: using ::llabs; 1586: 1586: inline lldiv_t 1586: div(long long __n, long long __d) 1586: { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } 1586: 1586: using ::lldiv; 1586: # 227 "/usr/mipsel-linux-gnu/include/c++/9/cstdlib" 3 1586: using ::atoll; 1586: using ::strtoll; 1586: using ::strtoull; 1586: 1586: using ::strtof; 1586: using ::strtold; 1586: 1586: 1586: } 1586: 1586: namespace std 1586: { 1586: 1586: using ::__gnu_cxx::lldiv_t; 1586: 1586: using ::__gnu_cxx::_Exit; 1586: 1586: using ::__gnu_cxx::llabs; 1586: using ::__gnu_cxx::div; 1586: using ::__gnu_cxx::lldiv; 1586: 1586: using ::__gnu_cxx::atoll; 1586: using ::__gnu_cxx::strtof; 1586: using ::__gnu_cxx::strtoll; 1586: using ::__gnu_cxx::strtoull; 1586: using ::__gnu_cxx::strtold; 1586: } 1586: 1586: 1586: 1586: } 1586: # 42 "/usr/mipsel-linux-gnu/include/c++/9/ext/string_conversions.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/cwchar" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/cwchar" 3 1586: 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/cwchar" 3 1586: # 43 "/usr/mipsel-linux-gnu/include/c++/9/ext/string_conversions.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/cstdio" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/cstdio" 3 1586: 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/cstdio" 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/stdio.h" 1 3 1586: # 27 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/libc-header-start.h" 1 3 1586: # 28 "/usr/mipsel-linux-gnu/include/stdio.h" 2 3 1586: 1586: extern "C" { 1586: 1586: 1586: 1586: # 1 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stddef.h" 1 3 4 1586: # 34 "/usr/mipsel-linux-gnu/include/stdio.h" 2 3 1586: 1586: 1586: # 1 "/usr/lib/gcc-cross/mipsel-linux-gnu/9/include/stdarg.h" 1 3 4 1586: # 37 "/usr/mipsel-linux-gnu/include/stdio.h" 2 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/__fpos_t.h" 1 3 1586: # 10 "/usr/mipsel-linux-gnu/include/bits/types/__fpos_t.h" 3 1586: typedef struct _G_fpos_t 1586: { 1586: __off_t __pos; 1586: __mbstate_t __state; 1586: } __fpos_t; 1586: # 40 "/usr/mipsel-linux-gnu/include/stdio.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/__fpos64_t.h" 1 3 1586: # 10 "/usr/mipsel-linux-gnu/include/bits/types/__fpos64_t.h" 3 1586: typedef struct _G_fpos64_t 1586: { 1586: __off64_t __pos; 1586: __mbstate_t __state; 1586: } __fpos64_t; 1586: # 41 "/usr/mipsel-linux-gnu/include/stdio.h" 2 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/struct_FILE.h" 1 3 1586: # 35 "/usr/mipsel-linux-gnu/include/bits/types/struct_FILE.h" 3 1586: struct _IO_FILE; 1586: struct _IO_marker; 1586: struct _IO_codecvt; 1586: struct _IO_wide_data; 1586: 1586: 1586: 1586: 1586: typedef void _IO_lock_t; 1586: 1586: 1586: 1586: 1586: 1586: struct _IO_FILE 1586: { 1586: int _flags; 1586: 1586: 1586: char *_IO_read_ptr; 1586: char *_IO_read_end; 1586: char *_IO_read_base; 1586: char *_IO_write_base; 1586: char *_IO_write_ptr; 1586: char *_IO_write_end; 1586: char *_IO_buf_base; 1586: char *_IO_buf_end; 1586: 1586: 1586: char *_IO_save_base; 1586: char *_IO_backup_base; 1586: char *_IO_save_end; 1586: 1586: struct _IO_marker *_markers; 1586: 1586: struct _IO_FILE *_chain; 1586: 1586: int _fileno; 1586: int _flags2; 1586: __off_t _old_offset; 1586: 1586: 1586: unsigned short _cur_column; 1586: signed char _vtable_offset; 1586: char _shortbuf[1]; 1586: 1586: _IO_lock_t *_lock; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: __off64_t _offset; 1586: 1586: struct _IO_codecvt *_codecvt; 1586: struct _IO_wide_data *_wide_data; 1586: struct _IO_FILE *_freeres_list; 1586: void *_freeres_buf; 1586: size_t __pad5; 1586: int _mode; 1586: 1586: char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; 1586: }; 1586: # 44 "/usr/mipsel-linux-gnu/include/stdio.h" 2 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/cookie_io_functions_t.h" 1 3 1586: # 27 "/usr/mipsel-linux-gnu/include/bits/types/cookie_io_functions_t.h" 3 1586: typedef __ssize_t cookie_read_function_t (void *__cookie, char *__buf, 1586: size_t __nbytes); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef __ssize_t cookie_write_function_t (void *__cookie, const char *__buf, 1586: size_t __nbytes); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef int cookie_seek_function_t (void *__cookie, __off64_t *__pos, int __w); 1586: 1586: 1586: typedef int cookie_close_function_t (void *__cookie); 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef struct _IO_cookie_io_functions_t 1586: { 1586: cookie_read_function_t *read; 1586: cookie_write_function_t *write; 1586: cookie_seek_function_t *seek; 1586: cookie_close_function_t *close; 1586: } cookie_io_functions_t; 1586: # 47 "/usr/mipsel-linux-gnu/include/stdio.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: typedef __gnuc_va_list va_list; 1586: # 84 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: typedef __fpos_t fpos_t; 1586: 1586: 1586: 1586: 1586: typedef __fpos64_t fpos64_t; 1586: # 133 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/stdio_lim.h" 1 3 1586: # 134 "/usr/mipsel-linux-gnu/include/stdio.h" 2 3 1586: 1586: 1586: 1586: extern FILE *stdin; 1586: extern FILE *stdout; 1586: extern FILE *stderr; 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int remove (const char *__filename) throw (); 1586: 1586: extern int rename (const char *__old, const char *__new) throw (); 1586: 1586: 1586: 1586: extern int renameat (int __oldfd, const char *__old, int __newfd, 1586: const char *__new) throw (); 1586: # 164 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern int renameat2 (int __oldfd, const char *__old, int __newfd, 1586: const char *__new, unsigned int __flags) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern FILE *tmpfile (void) __attribute__ ((__warn_unused_result__)); 1586: # 183 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern FILE *tmpfile64 (void) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: extern char *tmpnam (char *__s) throw () __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: extern char *tmpnam_r (char *__s) throw () __attribute__ ((__warn_unused_result__)); 1586: # 204 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern char *tempnam (const char *__dir, const char *__pfx) 1586: throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int fclose (FILE *__stream); 1586: 1586: 1586: 1586: 1586: extern int fflush (FILE *__stream); 1586: # 227 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern int fflush_unlocked (FILE *__stream); 1586: # 237 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern int fcloseall (void); 1586: # 246 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern FILE *fopen (const char *__restrict __filename, 1586: const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: extern FILE *freopen (const char *__restrict __filename, 1586: const char *__restrict __modes, 1586: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 1586: # 270 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern FILE *fopen64 (const char *__restrict __filename, 1586: const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); 1586: extern FILE *freopen64 (const char *__restrict __filename, 1586: const char *__restrict __modes, 1586: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: extern FILE *fdopen (int __fd, const char *__modes) throw () __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: 1586: extern FILE *fopencookie (void *__restrict __magic_cookie, 1586: const char *__restrict __modes, 1586: cookie_io_functions_t __io_funcs) throw () __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) 1586: throw () __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: 1586: extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); 1586: 1586: 1586: 1586: extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, 1586: int __modes, size_t __n) throw (); 1586: 1586: 1586: 1586: 1586: extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, 1586: size_t __size) throw (); 1586: 1586: 1586: extern void setlinebuf (FILE *__stream) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int fprintf (FILE *__restrict __stream, 1586: const char *__restrict __format, ...); 1586: 1586: 1586: 1586: 1586: extern int printf (const char *__restrict __format, ...); 1586: 1586: extern int sprintf (char *__restrict __s, 1586: const char *__restrict __format, ...) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, 1586: __gnuc_va_list __arg); 1586: 1586: 1586: 1586: 1586: extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); 1586: 1586: extern int vsprintf (char *__restrict __s, const char *__restrict __format, 1586: __gnuc_va_list __arg) throw (); 1586: 1586: 1586: 1586: extern int snprintf (char *__restrict __s, size_t __maxlen, 1586: const char *__restrict __format, ...) 1586: throw () __attribute__ ((__format__ (__printf__, 3, 4))); 1586: 1586: extern int vsnprintf (char *__restrict __s, size_t __maxlen, 1586: const char *__restrict __format, __gnuc_va_list __arg) 1586: throw () __attribute__ ((__format__ (__printf__, 3, 0))); 1586: 1586: 1586: 1586: 1586: 1586: extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, 1586: __gnuc_va_list __arg) 1586: throw () __attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 1586: extern int __asprintf (char **__restrict __ptr, 1586: const char *__restrict __fmt, ...) 1586: throw () __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 1586: extern int asprintf (char **__restrict __ptr, 1586: const char *__restrict __fmt, ...) 1586: throw () __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: extern int vdprintf (int __fd, const char *__restrict __fmt, 1586: __gnuc_va_list __arg) 1586: __attribute__ ((__format__ (__printf__, 2, 0))); 1586: extern int dprintf (int __fd, const char *__restrict __fmt, ...) 1586: __attribute__ ((__format__ (__printf__, 2, 3))); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int fscanf (FILE *__restrict __stream, 1586: const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: extern int scanf (const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 1586: 1586: extern int sscanf (const char *__restrict __s, 1586: const char *__restrict __format, ...) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf") 1586: 1586: __attribute__ ((__warn_unused_result__)); 1586: extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf") 1586: __attribute__ ((__warn_unused_result__)); 1586: extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) throw () __asm__ ("" "__isoc99_sscanf") 1586: 1586: ; 1586: # 432 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, 1586: __gnuc_va_list __arg) 1586: __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: 1586: extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) 1586: __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: extern int vsscanf (const char *__restrict __s, 1586: const char *__restrict __format, __gnuc_va_list __arg) 1586: throw () __attribute__ ((__format__ (__scanf__, 2, 0))); 1586: 1586: 1586: 1586: 1586: extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf") 1586: 1586: 1586: 1586: __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 1586: extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf") 1586: 1586: __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); 1586: extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) throw () __asm__ ("" "__isoc99_vsscanf") 1586: 1586: 1586: 1586: __attribute__ ((__format__ (__scanf__, 2, 0))); 1586: # 485 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern int fgetc (FILE *__stream); 1586: extern int getc (FILE *__stream); 1586: 1586: 1586: 1586: 1586: 1586: extern int getchar (void); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int getc_unlocked (FILE *__stream); 1586: extern int getchar_unlocked (void); 1586: # 510 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern int fgetc_unlocked (FILE *__stream); 1586: # 521 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern int fputc (int __c, FILE *__stream); 1586: extern int putc (int __c, FILE *__stream); 1586: 1586: 1586: 1586: 1586: 1586: extern int putchar (int __c); 1586: # 537 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern int fputc_unlocked (int __c, FILE *__stream); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int putc_unlocked (int __c, FILE *__stream); 1586: extern int putchar_unlocked (int __c); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int getw (FILE *__stream); 1586: 1586: 1586: extern int putw (int __w, FILE *__stream); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 1586: __attribute__ ((__warn_unused_result__)); 1586: # 577 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern char *gets (char *__s) __attribute__ ((__warn_unused_result__)) __attribute__ ((__deprecated__)); 1586: # 587 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern char *fgets_unlocked (char *__restrict __s, int __n, 1586: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 1586: # 603 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern __ssize_t __getdelim (char **__restrict __lineptr, 1586: size_t *__restrict __n, int __delimiter, 1586: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 1586: extern __ssize_t getdelim (char **__restrict __lineptr, 1586: size_t *__restrict __n, int __delimiter, 1586: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern __ssize_t getline (char **__restrict __lineptr, 1586: size_t *__restrict __n, 1586: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int fputs (const char *__restrict __s, FILE *__restrict __stream); 1586: 1586: 1586: 1586: 1586: 1586: extern int puts (const char *__s); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int ungetc (int __c, FILE *__stream); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern size_t fread (void *__restrict __ptr, size_t __size, 1586: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: extern size_t fwrite (const void *__restrict __ptr, size_t __size, 1586: size_t __n, FILE *__restrict __s); 1586: # 662 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern int fputs_unlocked (const char *__restrict __s, 1586: FILE *__restrict __stream); 1586: # 673 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, 1586: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 1586: extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, 1586: size_t __n, FILE *__restrict __stream); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int fseek (FILE *__stream, long int __off, int __whence); 1586: 1586: 1586: 1586: 1586: extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: extern void rewind (FILE *__stream); 1586: # 707 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern int fseeko (FILE *__stream, __off_t __off, int __whence); 1586: 1586: 1586: 1586: 1586: extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__)); 1586: # 731 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); 1586: 1586: 1586: 1586: 1586: extern int fsetpos (FILE *__stream, const fpos_t *__pos); 1586: # 750 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); 1586: extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__)); 1586: extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); 1586: extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos); 1586: 1586: 1586: 1586: extern void clearerr (FILE *__stream) throw (); 1586: 1586: extern int feof (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 1586: 1586: extern int ferror (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: extern void clearerr_unlocked (FILE *__stream) throw (); 1586: extern int feof_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 1586: extern int ferror_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern void perror (const char *__s); 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/sys_errlist.h" 1 3 1586: # 26 "/usr/mipsel-linux-gnu/include/bits/sys_errlist.h" 3 1586: extern int sys_nerr; 1586: extern const char *const sys_errlist[]; 1586: 1586: 1586: extern int _sys_nerr; 1586: extern const char *const _sys_errlist[]; 1586: # 782 "/usr/mipsel-linux-gnu/include/stdio.h" 2 3 1586: 1586: 1586: 1586: 1586: extern int fileno (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: extern int fileno_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 1586: # 800 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern FILE *popen (const char *__command, const char *__modes) __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: 1586: 1586: 1586: extern int pclose (FILE *__stream); 1586: 1586: 1586: 1586: 1586: 1586: extern char *ctermid (char *__s) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern char *cuserid (char *__s); 1586: 1586: 1586: 1586: 1586: struct obstack; 1586: 1586: 1586: extern int obstack_printf (struct obstack *__restrict __obstack, 1586: const char *__restrict __format, ...) 1586: throw () __attribute__ ((__format__ (__printf__, 2, 3))); 1586: extern int obstack_vprintf (struct obstack *__restrict __obstack, 1586: const char *__restrict __format, 1586: __gnuc_va_list __args) 1586: throw () __attribute__ ((__format__ (__printf__, 2, 0))); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern void flockfile (FILE *__stream) throw (); 1586: 1586: 1586: 1586: extern int ftrylockfile (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 1586: 1586: 1586: extern void funlockfile (FILE *__stream) throw (); 1586: # 858 "/usr/mipsel-linux-gnu/include/stdio.h" 3 1586: extern int __uflow (FILE *); 1586: extern int __overflow (FILE *, int); 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/stdio.h" 1 3 1586: # 46 "/usr/mipsel-linux-gnu/include/bits/stdio.h" 3 1586: extern __inline __attribute__ ((__gnu_inline__)) int 1586: getchar (void) 1586: { 1586: return getc (stdin); 1586: } 1586: 1586: 1586: 1586: 1586: extern __inline __attribute__ ((__gnu_inline__)) int 1586: fgetc_unlocked (FILE *__fp) 1586: { 1586: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: extern __inline __attribute__ ((__gnu_inline__)) int 1586: getc_unlocked (FILE *__fp) 1586: { 1586: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 1586: } 1586: 1586: 1586: extern __inline __attribute__ ((__gnu_inline__)) int 1586: getchar_unlocked (void) 1586: { 1586: return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); 1586: } 1586: 1586: 1586: 1586: 1586: extern __inline __attribute__ ((__gnu_inline__)) int 1586: putchar (int __c) 1586: { 1586: return putc (__c, stdout); 1586: } 1586: 1586: 1586: 1586: 1586: extern __inline __attribute__ ((__gnu_inline__)) int 1586: fputc_unlocked (int __c, FILE *__stream) 1586: { 1586: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: extern __inline __attribute__ ((__gnu_inline__)) int 1586: putc_unlocked (int __c, FILE *__stream) 1586: { 1586: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 1586: } 1586: 1586: 1586: extern __inline __attribute__ ((__gnu_inline__)) int 1586: putchar_unlocked (int __c) 1586: { 1586: return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: extern __inline __attribute__ ((__gnu_inline__)) __ssize_t 1586: getline (char **__lineptr, size_t *__n, FILE *__stream) 1586: { 1586: return __getdelim (__lineptr, __n, '\n', __stream); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: extern __inline __attribute__ ((__gnu_inline__)) int 1586: __attribute__ ((__leaf__)) feof_unlocked (FILE *__stream) throw () 1586: { 1586: return (((__stream)->_flags & 0x0010) != 0); 1586: } 1586: 1586: 1586: extern __inline __attribute__ ((__gnu_inline__)) int 1586: __attribute__ ((__leaf__)) ferror_unlocked (FILE *__stream) throw () 1586: { 1586: return (((__stream)->_flags & 0x0020) != 0); 1586: } 1586: # 865 "/usr/mipsel-linux-gnu/include/stdio.h" 2 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/stdio2.h" 1 3 1586: # 26 "/usr/mipsel-linux-gnu/include/bits/stdio2.h" 3 1586: extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, 1586: const char *__restrict __format, ...) throw (); 1586: extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, 1586: const char *__restrict __format, 1586: __gnuc_va_list __ap) throw (); 1586: 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: __attribute__ ((__leaf__)) sprintf (char *__restrict __s, const char *__restrict __fmt, ...) throw () 1586: { 1586: return __builtin___sprintf_chk (__s, 2 - 1, 1586: __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: __attribute__ ((__leaf__)) vsprintf (char *__restrict __s, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 1586: 1586: { 1586: return __builtin___vsprintf_chk (__s, 2 - 1, 1586: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 1586: } 1586: 1586: 1586: 1586: extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, 1586: size_t __slen, const char *__restrict __format, 1586: ...) throw (); 1586: extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, 1586: size_t __slen, const char *__restrict __format, 1586: __gnuc_va_list __ap) throw (); 1586: 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: __attribute__ ((__leaf__)) snprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, ...) throw () 1586: 1586: { 1586: return __builtin___snprintf_chk (__s, __n, 2 - 1, 1586: __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: __attribute__ ((__leaf__)) vsnprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 1586: 1586: { 1586: return __builtin___vsnprintf_chk (__s, __n, 2 - 1, 1586: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: extern int __fprintf_chk (FILE *__restrict __stream, int __flag, 1586: const char *__restrict __format, ...); 1586: extern int __printf_chk (int __flag, const char *__restrict __format, ...); 1586: extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, 1586: const char *__restrict __format, __gnuc_va_list __ap); 1586: extern int __vprintf_chk (int __flag, const char *__restrict __format, 1586: __gnuc_va_list __ap); 1586: 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: fprintf (FILE *__restrict __stream, const char *__restrict __fmt, ...) 1586: { 1586: return __fprintf_chk (__stream, 2 - 1, __fmt, 1586: __builtin_va_arg_pack ()); 1586: } 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: printf (const char *__restrict __fmt, ...) 1586: { 1586: return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: vprintf (const char *__restrict __fmt, __gnuc_va_list __ap) 1586: { 1586: 1586: return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap); 1586: 1586: 1586: 1586: } 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: vfprintf (FILE *__restrict __stream, 1586: const char *__restrict __fmt, __gnuc_va_list __ap) 1586: { 1586: return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap); 1586: } 1586: 1586: 1586: extern int __dprintf_chk (int __fd, int __flag, const char *__restrict __fmt, 1586: ...) __attribute__ ((__format__ (__printf__, 3, 4))); 1586: extern int __vdprintf_chk (int __fd, int __flag, 1586: const char *__restrict __fmt, __gnuc_va_list __arg) 1586: __attribute__ ((__format__ (__printf__, 3, 0))); 1586: 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: dprintf (int __fd, const char *__restrict __fmt, ...) 1586: { 1586: return __dprintf_chk (__fd, 2 - 1, __fmt, 1586: __builtin_va_arg_pack ()); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: vdprintf (int __fd, const char *__restrict __fmt, __gnuc_va_list __ap) 1586: { 1586: return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap); 1586: } 1586: 1586: 1586: 1586: 1586: extern int __asprintf_chk (char **__restrict __ptr, int __flag, 1586: const char *__restrict __fmt, ...) 1586: throw () __attribute__ ((__format__ (__printf__, 3, 4))) __attribute__ ((__warn_unused_result__)); 1586: extern int __vasprintf_chk (char **__restrict __ptr, int __flag, 1586: const char *__restrict __fmt, __gnuc_va_list __arg) 1586: throw () __attribute__ ((__format__ (__printf__, 3, 0))) __attribute__ ((__warn_unused_result__)); 1586: extern int __obstack_printf_chk (struct obstack *__restrict __obstack, 1586: int __flag, const char *__restrict __format, 1586: ...) 1586: throw () __attribute__ ((__format__ (__printf__, 3, 4))); 1586: extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack, 1586: int __flag, 1586: const char *__restrict __format, 1586: __gnuc_va_list __args) 1586: throw () __attribute__ ((__format__ (__printf__, 3, 0))); 1586: 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: __attribute__ ((__leaf__)) asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) throw () 1586: { 1586: return __asprintf_chk (__ptr, 2 - 1, __fmt, 1586: __builtin_va_arg_pack ()); 1586: } 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: __attribute__ ((__leaf__)) __asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) throw () 1586: 1586: { 1586: return __asprintf_chk (__ptr, 2 - 1, __fmt, 1586: __builtin_va_arg_pack ()); 1586: } 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: __attribute__ ((__leaf__)) obstack_printf (struct obstack *__restrict __obstack, const char *__restrict __fmt, ...) throw () 1586: 1586: { 1586: return __obstack_printf_chk (__obstack, 2 - 1, __fmt, 1586: __builtin_va_arg_pack ()); 1586: } 1586: # 209 "/usr/mipsel-linux-gnu/include/bits/stdio2.h" 3 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: __attribute__ ((__leaf__)) vasprintf (char **__restrict __ptr, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 1586: 1586: { 1586: return __vasprintf_chk (__ptr, 2 - 1, __fmt, __ap); 1586: } 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 1586: __attribute__ ((__leaf__)) obstack_vprintf (struct obstack *__restrict __obstack, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 1586: 1586: { 1586: return __obstack_vprintf_chk (__obstack, 2 - 1, __fmt, 1586: __ap); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__)); 1586: extern char *__gets_warn (char *__str) __asm__ ("" "gets") 1586: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use fgets or getline instead, gets can't " "specify buffer size"))) 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 1586: gets (char *__str) 1586: { 1586: if (__builtin_object_size (__str, 2 > 1) != (size_t) -1) 1586: return __gets_chk (__str, __builtin_object_size (__str, 2 > 1)); 1586: return __gets_warn (__str); 1586: } 1586: 1586: 1586: extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, 1586: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 1586: extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") 1586: 1586: __attribute__ ((__warn_unused_result__)); 1586: extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk") 1586: 1586: 1586: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer"))) 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 1586: fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 1586: { 1586: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__n) || __n <= 0) 1586: return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 1586: 1586: if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) 1586: return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 1586: } 1586: return __fgets_alias (__s, __n, __stream); 1586: } 1586: 1586: extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, 1586: size_t __size, size_t __n, 1586: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 1586: extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") 1586: 1586: 1586: __attribute__ ((__warn_unused_result__)); 1586: extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk") 1586: 1586: 1586: 1586: 1586: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer"))) 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 1586: fread (void *__restrict __ptr, size_t __size, size_t __n, 1586: FILE *__restrict __stream) 1586: { 1586: if (__builtin_object_size (__ptr, 0) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__size) 1586: || !__builtin_constant_p (__n) 1586: || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) 1586: return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); 1586: 1586: if (__size * __n > __builtin_object_size (__ptr, 0)) 1586: return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); 1586: } 1586: return __fread_alias (__ptr, __size, __n, __stream); 1586: } 1586: 1586: 1586: extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, 1586: int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 1586: extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked") 1586: 1586: __attribute__ ((__warn_unused_result__)); 1586: extern char *__fgets_unlocked_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_unlocked_chk") 1586: 1586: 1586: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets_unlocked called with bigger size than length " "of destination buffer"))) 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 1586: fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) 1586: { 1586: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__n) || __n <= 0) 1586: return __fgets_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 1586: 1586: if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) 1586: return __fgets_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 1586: } 1586: return __fgets_unlocked_alias (__s, __n, __stream); 1586: } 1586: 1586: 1586: 1586: 1586: extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, 1586: size_t __size, size_t __n, 1586: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 1586: extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked") 1586: 1586: 1586: __attribute__ ((__warn_unused_result__)); 1586: 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") 1586: 1586: 1586: 1586: 1586: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer"))) 1586: ; 1586: 1586: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 1586: fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, 1586: FILE *__restrict __stream) 1586: { 1586: if (__builtin_object_size (__ptr, 0) != (size_t) -1) 1586: { 1586: if (!__builtin_constant_p (__size) 1586: || !__builtin_constant_p (__n) 1586: || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) 1586: return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, 1586: __stream); 1586: 1586: if (__size * __n > __builtin_object_size (__ptr, 0)) 1586: return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, 1586: __stream); 1586: } 1586: 1586: 1586: if (__builtin_constant_p (__size) 1586: && __builtin_constant_p (__n) 1586: && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) 1586: && __size * __n <= 8) 1586: { 1586: size_t __cnt = __size * __n; 1586: char *__cptr = (char *) __ptr; 1586: if (__cnt == 0) 1586: return 0; 1586: 1586: for (; __cnt > 0; --__cnt) 1586: { 1586: int __c = getc_unlocked (__stream); 1586: if (__c == (-1)) 1586: break; 1586: *__cptr++ = __c; 1586: } 1586: return (__cptr - (char *) __ptr) / __size; 1586: } 1586: 1586: return __fread_unlocked_alias (__ptr, __size, __n, __stream); 1586: } 1586: # 868 "/usr/mipsel-linux-gnu/include/stdio.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: } 1586: # 43 "/usr/mipsel-linux-gnu/include/c++/9/cstdio" 2 3 1586: # 96 "/usr/mipsel-linux-gnu/include/c++/9/cstdio" 3 1586: namespace std 1586: { 1586: using ::FILE; 1586: using ::fpos_t; 1586: 1586: using ::clearerr; 1586: using ::fclose; 1586: using ::feof; 1586: using ::ferror; 1586: using ::fflush; 1586: using ::fgetc; 1586: using ::fgetpos; 1586: using ::fgets; 1586: using ::fopen; 1586: using ::fprintf; 1586: using ::fputc; 1586: using ::fputs; 1586: using ::fread; 1586: using ::freopen; 1586: using ::fscanf; 1586: using ::fseek; 1586: using ::fsetpos; 1586: using ::ftell; 1586: using ::fwrite; 1586: using ::getc; 1586: using ::getchar; 1586: 1586: 1586: using ::gets; 1586: 1586: using ::perror; 1586: using ::printf; 1586: using ::putc; 1586: using ::putchar; 1586: using ::puts; 1586: using ::remove; 1586: using ::rename; 1586: using ::rewind; 1586: using ::scanf; 1586: using ::setbuf; 1586: using ::setvbuf; 1586: using ::sprintf; 1586: using ::sscanf; 1586: using ::tmpfile; 1586: 1586: using ::tmpnam; 1586: 1586: using ::ungetc; 1586: using ::vfprintf; 1586: using ::vprintf; 1586: using ::vsprintf; 1586: } 1586: # 157 "/usr/mipsel-linux-gnu/include/c++/9/cstdio" 3 1586: namespace __gnu_cxx 1586: { 1586: # 175 "/usr/mipsel-linux-gnu/include/c++/9/cstdio" 3 1586: using ::snprintf; 1586: using ::vfscanf; 1586: using ::vscanf; 1586: using ::vsnprintf; 1586: using ::vsscanf; 1586: 1586: } 1586: 1586: namespace std 1586: { 1586: using ::__gnu_cxx::snprintf; 1586: using ::__gnu_cxx::vfscanf; 1586: using ::__gnu_cxx::vscanf; 1586: using ::__gnu_cxx::vsnprintf; 1586: using ::__gnu_cxx::vsscanf; 1586: } 1586: # 44 "/usr/mipsel-linux-gnu/include/c++/9/ext/string_conversions.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/cerrno" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/cerrno" 3 1586: 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/cerrno" 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/errno.h" 1 3 1586: # 28 "/usr/mipsel-linux-gnu/include/errno.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/errno.h" 1 3 1586: # 25 "/usr/mipsel-linux-gnu/include/bits/errno.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/linux/errno.h" 1 3 1586: # 1 "/usr/mipsel-linux-gnu/include/asm/errno.h" 1 3 1586: # 16 "/usr/mipsel-linux-gnu/include/asm/errno.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/asm-generic/errno-base.h" 1 3 1586: # 17 "/usr/mipsel-linux-gnu/include/asm/errno.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/linux/errno.h" 2 3 1586: # 26 "/usr/mipsel-linux-gnu/include/bits/errno.h" 2 3 1586: # 29 "/usr/mipsel-linux-gnu/include/errno.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: extern "C" { 1586: 1586: 1586: extern int *__errno_location (void) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern char *program_invocation_name; 1586: extern char *program_invocation_short_name; 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/types/error_t.h" 1 3 1586: # 22 "/usr/mipsel-linux-gnu/include/bits/types/error_t.h" 3 1586: typedef int error_t; 1586: # 49 "/usr/mipsel-linux-gnu/include/errno.h" 2 3 1586: 1586: 1586: 1586: } 1586: # 43 "/usr/mipsel-linux-gnu/include/c++/9/cerrno" 2 3 1586: # 45 "/usr/mipsel-linux-gnu/include/c++/9/ext/string_conversions.h" 2 3 1586: 1586: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: template 1586: _Ret 1586: __stoa(_TRet (*__convf) (const _CharT*, _CharT**, _Base...), 1586: const char* __name, const _CharT* __str, std::size_t* __idx, 1586: _Base... __base) 1586: { 1586: _Ret __ret; 1586: 1586: _CharT* __endptr; 1586: 1586: struct _Save_errno { 1586: _Save_errno() : _M_errno((*__errno_location ())) { (*__errno_location ()) = 0; } 1586: ~_Save_errno() { if ((*__errno_location ()) == 0) (*__errno_location ()) = _M_errno; } 1586: int _M_errno; 1586: } const __save_errno; 1586: 1586: struct _Range_chk { 1586: static bool 1586: _S_chk(_TRet, std::false_type) { return false; } 1586: 1586: static bool 1586: _S_chk(_TRet __val, std::true_type) 1586: { 1586: return __val < _TRet(__numeric_traits::__min) 1586: || __val > _TRet(__numeric_traits::__max); 1586: } 1586: }; 1586: 1586: const _TRet __tmp = __convf(__str, &__endptr, __base...); 1586: 1586: if (__endptr == __str) 1586: std::__throw_invalid_argument(__name); 1586: else if ((*__errno_location ()) == 34 1586: || _Range_chk::_S_chk(__tmp, std::is_same<_Ret, int>{})) 1586: std::__throw_out_of_range(__name); 1586: else 1586: __ret = __tmp; 1586: 1586: if (__idx) 1586: *__idx = __endptr - __str; 1586: 1586: return __ret; 1586: } 1586: 1586: 1586: template 1586: _String 1586: __to_xstring(int (*__convf) (_CharT*, std::size_t, const _CharT*, 1586: __builtin_va_list), std::size_t __n, 1586: const _CharT* __fmt, ...) 1586: { 1586: 1586: 1586: _CharT* __s = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 1586: * __n)); 1586: 1586: __builtin_va_list __args; 1586: __builtin_va_start(__args, __fmt); 1586: 1586: const int __len = __convf(__s, __n, __fmt, __args); 1586: 1586: __builtin_va_end(__args); 1586: 1586: return _String(__s, __s + __len); 1586: } 1586: 1586: 1586: } 1586: # 6494 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: namespace __cxx11 { 1586: 1586: 1586: 1586: inline int 1586: stoi(const string& __str, size_t* __idx = 0, int __base = 10) 1586: { return __gnu_cxx::__stoa(&std::strtol, "stoi", __str.c_str(), 1586: __idx, __base); } 1586: 1586: inline long 1586: stol(const string& __str, size_t* __idx = 0, int __base = 10) 1586: { return __gnu_cxx::__stoa(&std::strtol, "stol", __str.c_str(), 1586: __idx, __base); } 1586: 1586: inline unsigned long 1586: stoul(const string& __str, size_t* __idx = 0, int __base = 10) 1586: { return __gnu_cxx::__stoa(&std::strtoul, "stoul", __str.c_str(), 1586: __idx, __base); } 1586: 1586: inline long long 1586: stoll(const string& __str, size_t* __idx = 0, int __base = 10) 1586: { return __gnu_cxx::__stoa(&std::strtoll, "stoll", __str.c_str(), 1586: __idx, __base); } 1586: 1586: inline unsigned long long 1586: stoull(const string& __str, size_t* __idx = 0, int __base = 10) 1586: { return __gnu_cxx::__stoa(&std::strtoull, "stoull", __str.c_str(), 1586: __idx, __base); } 1586: 1586: 1586: inline float 1586: stof(const string& __str, size_t* __idx = 0) 1586: { return __gnu_cxx::__stoa(&std::strtof, "stof", __str.c_str(), __idx); } 1586: 1586: inline double 1586: stod(const string& __str, size_t* __idx = 0) 1586: { return __gnu_cxx::__stoa(&std::strtod, "stod", __str.c_str(), __idx); } 1586: 1586: inline long double 1586: stold(const string& __str, size_t* __idx = 0) 1586: { return __gnu_cxx::__stoa(&std::strtold, "stold", __str.c_str(), __idx); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: inline string 1586: to_string(int __val) 1586: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(int), 1586: "%d", __val); } 1586: 1586: inline string 1586: to_string(unsigned __val) 1586: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 1586: 4 * sizeof(unsigned), 1586: "%u", __val); } 1586: 1586: inline string 1586: to_string(long __val) 1586: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(long), 1586: "%ld", __val); } 1586: 1586: inline string 1586: to_string(unsigned long __val) 1586: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 1586: 4 * sizeof(unsigned long), 1586: "%lu", __val); } 1586: 1586: inline string 1586: to_string(long long __val) 1586: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 1586: 4 * sizeof(long long), 1586: "%lld", __val); } 1586: 1586: inline string 1586: to_string(unsigned long long __val) 1586: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 1586: 4 * sizeof(unsigned long long), 1586: "%llu", __val); } 1586: 1586: inline string 1586: to_string(float __val) 1586: { 1586: const int __n = 1586: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 1586: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 1586: "%f", __val); 1586: } 1586: 1586: inline string 1586: to_string(double __val) 1586: { 1586: const int __n = 1586: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 1586: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 1586: "%f", __val); 1586: } 1586: 1586: inline string 1586: to_string(long double __val) 1586: { 1586: const int __n = 1586: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 1586: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 1586: "%Lf", __val); 1586: } 1586: 1586: 1586: 1586: inline int 1586: stoi(const wstring& __str, size_t* __idx = 0, int __base = 10) 1586: { return __gnu_cxx::__stoa(&std::wcstol, "stoi", __str.c_str(), 1586: __idx, __base); } 1586: 1586: inline long 1586: stol(const wstring& __str, size_t* __idx = 0, int __base = 10) 1586: { return __gnu_cxx::__stoa(&std::wcstol, "stol", __str.c_str(), 1586: __idx, __base); } 1586: 1586: inline unsigned long 1586: stoul(const wstring& __str, size_t* __idx = 0, int __base = 10) 1586: { return __gnu_cxx::__stoa(&std::wcstoul, "stoul", __str.c_str(), 1586: __idx, __base); } 1586: 1586: inline long long 1586: stoll(const wstring& __str, size_t* __idx = 0, int __base = 10) 1586: { return __gnu_cxx::__stoa(&std::wcstoll, "stoll", __str.c_str(), 1586: __idx, __base); } 1586: 1586: inline unsigned long long 1586: stoull(const wstring& __str, size_t* __idx = 0, int __base = 10) 1586: { return __gnu_cxx::__stoa(&std::wcstoull, "stoull", __str.c_str(), 1586: __idx, __base); } 1586: 1586: 1586: inline float 1586: stof(const wstring& __str, size_t* __idx = 0) 1586: { return __gnu_cxx::__stoa(&std::wcstof, "stof", __str.c_str(), __idx); } 1586: 1586: inline double 1586: stod(const wstring& __str, size_t* __idx = 0) 1586: { return __gnu_cxx::__stoa(&std::wcstod, "stod", __str.c_str(), __idx); } 1586: 1586: inline long double 1586: stold(const wstring& __str, size_t* __idx = 0) 1586: { return __gnu_cxx::__stoa(&std::wcstold, "stold", __str.c_str(), __idx); } 1586: 1586: 1586: 1586: inline wstring 1586: to_wstring(int __val) 1586: { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(int), 1586: L"%d", __val); } 1586: 1586: inline wstring 1586: to_wstring(unsigned __val) 1586: { return __gnu_cxx::__to_xstring(&std::vswprintf, 1586: 4 * sizeof(unsigned), 1586: L"%u", __val); } 1586: 1586: inline wstring 1586: to_wstring(long __val) 1586: { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(long), 1586: L"%ld", __val); } 1586: 1586: inline wstring 1586: to_wstring(unsigned long __val) 1586: { return __gnu_cxx::__to_xstring(&std::vswprintf, 1586: 4 * sizeof(unsigned long), 1586: L"%lu", __val); } 1586: 1586: inline wstring 1586: to_wstring(long long __val) 1586: { return __gnu_cxx::__to_xstring(&std::vswprintf, 1586: 4 * sizeof(long long), 1586: L"%lld", __val); } 1586: 1586: inline wstring 1586: to_wstring(unsigned long long __val) 1586: { return __gnu_cxx::__to_xstring(&std::vswprintf, 1586: 4 * sizeof(unsigned long long), 1586: L"%llu", __val); } 1586: 1586: inline wstring 1586: to_wstring(float __val) 1586: { 1586: const int __n = 1586: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 1586: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 1586: L"%f", __val); 1586: } 1586: 1586: inline wstring 1586: to_wstring(double __val) 1586: { 1586: const int __n = 1586: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 1586: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 1586: L"%f", __val); 1586: } 1586: 1586: inline wstring 1586: to_wstring(long double __val) 1586: { 1586: const int __n = 1586: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 1586: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 1586: L"%Lf", __val); 1586: } 1586: 1586: 1586: 1586: } 1586: 1586: } 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/functional_hash.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/functional_hash.h" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/functional_hash.h" 3 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 49 "/usr/mipsel-linux-gnu/include/c++/9/bits/functional_hash.h" 3 1586: template 1586: struct __hash_base 1586: { 1586: typedef _Result result_type ; 1586: typedef _Arg argument_type ; 1586: }; 1586: 1586: 1586: template 1586: struct hash; 1586: 1586: template 1586: struct __poison_hash 1586: { 1586: static constexpr bool __enable_hash_call = false; 1586: private: 1586: 1586: __poison_hash(__poison_hash&&); 1586: ~__poison_hash(); 1586: }; 1586: 1586: template 1586: struct __poison_hash<_Tp, __void_t()(declval<_Tp>()))>> 1586: { 1586: static constexpr bool __enable_hash_call = true; 1586: }; 1586: 1586: 1586: template::value> 1586: struct __hash_enum 1586: { 1586: private: 1586: 1586: __hash_enum(__hash_enum&&); 1586: ~__hash_enum(); 1586: }; 1586: 1586: 1586: template 1586: struct __hash_enum<_Tp, true> : public __hash_base 1586: { 1586: size_t 1586: operator()(_Tp __val) const noexcept 1586: { 1586: using __type = typename underlying_type<_Tp>::type; 1586: return hash<__type>{}(static_cast<__type>(__val)); 1586: } 1586: }; 1586: 1586: 1586: 1586: template 1586: struct hash : __hash_enum<_Tp> 1586: { }; 1586: 1586: 1586: template 1586: struct hash<_Tp*> : public __hash_base 1586: { 1586: size_t 1586: operator()(_Tp* __p) const noexcept 1586: { return reinterpret_cast(__p); } 1586: }; 1586: # 124 "/usr/mipsel-linux-gnu/include/c++/9/bits/functional_hash.h" 3 1586: template<> struct hash : public __hash_base { size_t operator()(bool __val) const noexcept { return static_cast(__val); } }; 1586: 1586: 1586: template<> struct hash : public __hash_base { size_t operator()(char __val) const noexcept { return static_cast(__val); } }; 1586: 1586: 1586: template<> struct hash : public __hash_base { size_t operator()(signed char __val) const noexcept { return static_cast(__val); } }; 1586: 1586: 1586: template<> struct hash : public __hash_base { size_t operator()(unsigned char __val) const noexcept { return static_cast(__val); } }; 1586: 1586: 1586: template<> struct hash : public __hash_base { size_t operator()(wchar_t __val) const noexcept { return static_cast(__val); } }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template<> struct hash : public __hash_base { size_t operator()(char16_t __val) const noexcept { return static_cast(__val); } }; 1586: 1586: 1586: template<> struct hash : public __hash_base { size_t operator()(char32_t __val) const noexcept { return static_cast(__val); } }; 1586: 1586: 1586: template<> struct hash : public __hash_base { size_t operator()(short __val) const noexcept { return static_cast(__val); } }; 1586: 1586: 1586: template<> struct hash : public __hash_base { size_t operator()(int __val) const noexcept { return static_cast(__val); } }; 1586: 1586: 1586: template<> struct hash : public __hash_base { size_t operator()(long __val) const noexcept { return static_cast(__val); } }; 1586: 1586: 1586: template<> struct hash : public __hash_base { size_t operator()(long long __val) const noexcept { return static_cast(__val); } }; 1586: 1586: 1586: template<> struct hash : public __hash_base { size_t operator()(unsigned short __val) const noexcept { return static_cast(__val); } }; 1586: 1586: 1586: template<> struct hash : public __hash_base { size_t operator()(unsigned int __val) const noexcept { return static_cast(__val); } }; 1586: 1586: 1586: template<> struct hash : public __hash_base { size_t operator()(unsigned long __val) const noexcept { return static_cast(__val); } }; 1586: 1586: 1586: template<> struct hash : public __hash_base { size_t operator()(unsigned long long __val) const noexcept { return static_cast(__val); } }; 1586: # 192 "/usr/mipsel-linux-gnu/include/c++/9/bits/functional_hash.h" 3 1586: struct _Hash_impl 1586: { 1586: static size_t 1586: hash(const void* __ptr, size_t __clength, 1586: size_t __seed = static_cast(0xc70f6907UL)) 1586: { return _Hash_bytes(__ptr, __clength, __seed); } 1586: 1586: template 1586: static size_t 1586: hash(const _Tp& __val) 1586: { return hash(&__val, sizeof(__val)); } 1586: 1586: template 1586: static size_t 1586: __hash_combine(const _Tp& __val, size_t __hash) 1586: { return hash(&__val, sizeof(__val), __hash); } 1586: }; 1586: 1586: 1586: struct _Fnv_hash_impl 1586: { 1586: static size_t 1586: hash(const void* __ptr, size_t __clength, 1586: size_t __seed = static_cast(2166136261UL)) 1586: { return _Fnv_hash_bytes(__ptr, __clength, __seed); } 1586: 1586: template 1586: static size_t 1586: hash(const _Tp& __val) 1586: { return hash(&__val, sizeof(__val)); } 1586: 1586: template 1586: static size_t 1586: __hash_combine(const _Tp& __val, size_t __hash) 1586: { return hash(&__val, sizeof(__val), __hash); } 1586: }; 1586: 1586: 1586: template<> 1586: struct hash : public __hash_base 1586: { 1586: size_t 1586: operator()(float __val) const noexcept 1586: { 1586: 1586: return __val != 0.0f ? std::_Hash_impl::hash(__val) : 0; 1586: } 1586: }; 1586: 1586: 1586: template<> 1586: struct hash : public __hash_base 1586: { 1586: size_t 1586: operator()(double __val) const noexcept 1586: { 1586: 1586: return __val != 0.0 ? std::_Hash_impl::hash(__val) : 0; 1586: } 1586: }; 1586: 1586: 1586: template<> 1586: struct hash 1586: : public __hash_base 1586: { 1586: __attribute__ ((__pure__)) size_t 1586: operator()(long double __val) const noexcept; 1586: }; 1586: # 278 "/usr/mipsel-linux-gnu/include/c++/9/bits/functional_hash.h" 3 1586: template 1586: struct __is_fast_hash : public std::true_type 1586: { }; 1586: 1586: template<> 1586: struct __is_fast_hash> : public std::false_type 1586: { }; 1586: 1586: 1586: } 1586: # 6720 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: template<> 1586: struct hash 1586: : public __hash_base 1586: { 1586: size_t 1586: operator()(const string& __s) const noexcept 1586: { return std::_Hash_impl::hash(__s.data(), __s.length()); } 1586: }; 1586: 1586: template<> 1586: struct __is_fast_hash> : std::false_type 1586: { }; 1586: 1586: 1586: 1586: template<> 1586: struct hash 1586: : public __hash_base 1586: { 1586: size_t 1586: operator()(const wstring& __s) const noexcept 1586: { return std::_Hash_impl::hash(__s.data(), 1586: __s.length() * sizeof(wchar_t)); } 1586: }; 1586: 1586: template<> 1586: struct __is_fast_hash> : std::false_type 1586: { }; 1586: # 6778 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: template<> 1586: struct hash 1586: : public __hash_base 1586: { 1586: size_t 1586: operator()(const u16string& __s) const noexcept 1586: { return std::_Hash_impl::hash(__s.data(), 1586: __s.length() * sizeof(char16_t)); } 1586: }; 1586: 1586: template<> 1586: struct __is_fast_hash> : std::false_type 1586: { }; 1586: 1586: 1586: template<> 1586: struct hash 1586: : public __hash_base 1586: { 1586: size_t 1586: operator()(const u32string& __s) const noexcept 1586: { return std::_Hash_impl::hash(__s.data(), 1586: __s.length() * sizeof(char32_t)); } 1586: }; 1586: 1586: template<> 1586: struct __is_fast_hash> : std::false_type 1586: { }; 1586: # 6868 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.h" 3 1586: 1586: } 1586: # 56 "/usr/mipsel-linux-gnu/include/c++/9/string" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.tcc" 1 3 1586: # 42 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.tcc" 3 1586: 1586: # 43 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.tcc" 3 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: template 1586: const typename basic_string<_CharT, _Traits, _Alloc>::size_type 1586: basic_string<_CharT, _Traits, _Alloc>::npos; 1586: 1586: template 1586: void 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: swap(basic_string& __s) noexcept 1586: { 1586: if (this == &__s) 1586: return; 1586: 1586: _Alloc_traits::_S_on_swap(_M_get_allocator(), __s._M_get_allocator()); 1586: 1586: if (_M_is_local()) 1586: if (__s._M_is_local()) 1586: { 1586: if (length() && __s.length()) 1586: { 1586: _CharT __tmp_data[_S_local_capacity + 1]; 1586: traits_type::copy(__tmp_data, __s._M_local_buf, 1586: _S_local_capacity + 1); 1586: traits_type::copy(__s._M_local_buf, _M_local_buf, 1586: _S_local_capacity + 1); 1586: traits_type::copy(_M_local_buf, __tmp_data, 1586: _S_local_capacity + 1); 1586: } 1586: else if (__s.length()) 1586: { 1586: traits_type::copy(_M_local_buf, __s._M_local_buf, 1586: _S_local_capacity + 1); 1586: _M_length(__s.length()); 1586: __s._M_set_length(0); 1586: return; 1586: } 1586: else if (length()) 1586: { 1586: traits_type::copy(__s._M_local_buf, _M_local_buf, 1586: _S_local_capacity + 1); 1586: __s._M_length(length()); 1586: _M_set_length(0); 1586: return; 1586: } 1586: } 1586: else 1586: { 1586: const size_type __tmp_capacity = __s._M_allocated_capacity; 1586: traits_type::copy(__s._M_local_buf, _M_local_buf, 1586: _S_local_capacity + 1); 1586: _M_data(__s._M_data()); 1586: __s._M_data(__s._M_local_buf); 1586: _M_capacity(__tmp_capacity); 1586: } 1586: else 1586: { 1586: const size_type __tmp_capacity = _M_allocated_capacity; 1586: if (__s._M_is_local()) 1586: { 1586: traits_type::copy(_M_local_buf, __s._M_local_buf, 1586: _S_local_capacity + 1); 1586: __s._M_data(_M_data()); 1586: _M_data(_M_local_buf); 1586: } 1586: else 1586: { 1586: pointer __tmp_ptr = _M_data(); 1586: _M_data(__s._M_data()); 1586: __s._M_data(__tmp_ptr); 1586: _M_capacity(__s._M_allocated_capacity); 1586: } 1586: __s._M_capacity(__tmp_capacity); 1586: } 1586: 1586: const size_type __tmp_length = length(); 1586: _M_length(__s.length()); 1586: __s._M_length(__tmp_length); 1586: } 1586: 1586: template 1586: typename basic_string<_CharT, _Traits, _Alloc>::pointer 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: _M_create(size_type& __capacity, size_type __old_capacity) 1586: { 1586: 1586: 1586: if (__capacity > max_size()) 1586: std::__throw_length_error(("basic_string::_M_create")); 1586: 1586: 1586: 1586: 1586: if (__capacity > __old_capacity && __capacity < 2 * __old_capacity) 1586: { 1586: __capacity = 2 * __old_capacity; 1586: 1586: if (__capacity > max_size()) 1586: __capacity = max_size(); 1586: } 1586: 1586: 1586: 1586: return _Alloc_traits::allocate(_M_get_allocator(), __capacity + 1); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: template 1586: template 1586: void 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: _M_construct(_InIterator __beg, _InIterator __end, 1586: std::input_iterator_tag) 1586: { 1586: size_type __len = 0; 1586: size_type __capacity = size_type(_S_local_capacity); 1586: 1586: while (__beg != __end && __len < __capacity) 1586: { 1586: _M_data()[__len++] = *__beg; 1586: ++__beg; 1586: } 1586: 1586: try 1586: { 1586: while (__beg != __end) 1586: { 1586: if (__len == __capacity) 1586: { 1586: 1586: __capacity = __len + 1; 1586: pointer __another = _M_create(__capacity, __len); 1586: this->_S_copy(__another, _M_data(), __len); 1586: _M_dispose(); 1586: _M_data(__another); 1586: _M_capacity(__capacity); 1586: } 1586: _M_data()[__len++] = *__beg; 1586: ++__beg; 1586: } 1586: } 1586: catch(...) 1586: { 1586: _M_dispose(); 1586: throw; 1586: } 1586: 1586: _M_set_length(__len); 1586: } 1586: 1586: template 1586: template 1586: void 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: _M_construct(_InIterator __beg, _InIterator __end, 1586: std::forward_iterator_tag) 1586: { 1586: 1586: if (__gnu_cxx::__is_null_pointer(__beg) && __beg != __end) 1586: std::__throw_logic_error(("basic_string::" "_M_construct null not valid") 1586: ); 1586: 1586: size_type __dnew = static_cast(std::distance(__beg, __end)); 1586: 1586: if (__dnew > size_type(_S_local_capacity)) 1586: { 1586: _M_data(_M_create(__dnew, size_type(0))); 1586: _M_capacity(__dnew); 1586: } 1586: 1586: 1586: try 1586: { this->_S_copy_chars(_M_data(), __beg, __end); } 1586: catch(...) 1586: { 1586: _M_dispose(); 1586: throw; 1586: } 1586: 1586: _M_set_length(__dnew); 1586: } 1586: 1586: template 1586: void 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: _M_construct(size_type __n, _CharT __c) 1586: { 1586: if (__n > size_type(_S_local_capacity)) 1586: { 1586: _M_data(_M_create(__n, size_type(0))); 1586: _M_capacity(__n); 1586: } 1586: 1586: if (__n) 1586: this->_S_assign(_M_data(), __n, __c); 1586: 1586: _M_set_length(__n); 1586: } 1586: 1586: template 1586: void 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: _M_assign(const basic_string& __str) 1586: { 1586: if (this != &__str) 1586: { 1586: const size_type __rsize = __str.length(); 1586: const size_type __capacity = capacity(); 1586: 1586: if (__rsize > __capacity) 1586: { 1586: size_type __new_capacity = __rsize; 1586: pointer __tmp = _M_create(__new_capacity, __capacity); 1586: _M_dispose(); 1586: _M_data(__tmp); 1586: _M_capacity(__new_capacity); 1586: } 1586: 1586: if (__rsize) 1586: this->_S_copy(_M_data(), __str._M_data(), __rsize); 1586: 1586: _M_set_length(__rsize); 1586: } 1586: } 1586: 1586: template 1586: void 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: reserve(size_type __res) 1586: { 1586: 1586: if (__res < length()) 1586: __res = length(); 1586: 1586: const size_type __capacity = capacity(); 1586: if (__res != __capacity) 1586: { 1586: if (__res > __capacity 1586: || __res > size_type(_S_local_capacity)) 1586: { 1586: pointer __tmp = _M_create(__res, __capacity); 1586: this->_S_copy(__tmp, _M_data(), length() + 1); 1586: _M_dispose(); 1586: _M_data(__tmp); 1586: _M_capacity(__res); 1586: } 1586: else if (!_M_is_local()) 1586: { 1586: this->_S_copy(_M_local_data(), _M_data(), length() + 1); 1586: _M_destroy(__capacity); 1586: _M_data(_M_local_data()); 1586: } 1586: } 1586: } 1586: 1586: template 1586: void 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 1586: size_type __len2) 1586: { 1586: const size_type __how_much = length() - __pos - __len1; 1586: 1586: size_type __new_capacity = length() + __len2 - __len1; 1586: pointer __r = _M_create(__new_capacity, capacity()); 1586: 1586: if (__pos) 1586: this->_S_copy(__r, _M_data(), __pos); 1586: if (__s && __len2) 1586: this->_S_copy(__r + __pos, __s, __len2); 1586: if (__how_much) 1586: this->_S_copy(__r + __pos + __len2, 1586: _M_data() + __pos + __len1, __how_much); 1586: 1586: _M_dispose(); 1586: _M_data(__r); 1586: _M_capacity(__new_capacity); 1586: } 1586: 1586: template 1586: void 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: _M_erase(size_type __pos, size_type __n) 1586: { 1586: const size_type __how_much = length() - __pos - __n; 1586: 1586: if (__how_much && __n) 1586: this->_S_move(_M_data() + __pos, _M_data() + __pos + __n, __how_much); 1586: 1586: _M_set_length(length() - __n); 1586: } 1586: 1586: template 1586: void 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: resize(size_type __n, _CharT __c) 1586: { 1586: const size_type __size = this->size(); 1586: if (__size < __n) 1586: this->append(__n - __size, __c); 1586: else if (__n < __size) 1586: this->_M_set_length(__n); 1586: } 1586: 1586: template 1586: basic_string<_CharT, _Traits, _Alloc>& 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: _M_append(const _CharT* __s, size_type __n) 1586: { 1586: const size_type __len = __n + this->size(); 1586: 1586: if (__len <= this->capacity()) 1586: { 1586: if (__n) 1586: this->_S_copy(this->_M_data() + this->size(), __s, __n); 1586: } 1586: else 1586: this->_M_mutate(this->size(), size_type(0), __s, __n); 1586: 1586: this->_M_set_length(__len); 1586: return *this; 1586: } 1586: 1586: template 1586: template 1586: basic_string<_CharT, _Traits, _Alloc>& 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 1586: _InputIterator __k1, _InputIterator __k2, 1586: std::__false_type) 1586: { 1586: const basic_string __s(__k1, __k2); 1586: const size_type __n1 = __i2 - __i1; 1586: return _M_replace(__i1 - begin(), __n1, __s._M_data(), 1586: __s.size()); 1586: } 1586: 1586: template 1586: basic_string<_CharT, _Traits, _Alloc>& 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 1586: _CharT __c) 1586: { 1586: _M_check_length(__n1, __n2, "basic_string::_M_replace_aux"); 1586: 1586: const size_type __old_size = this->size(); 1586: const size_type __new_size = __old_size + __n2 - __n1; 1586: 1586: if (__new_size <= this->capacity()) 1586: { 1586: pointer __p = this->_M_data() + __pos1; 1586: 1586: const size_type __how_much = __old_size - __pos1 - __n1; 1586: if (__how_much && __n1 != __n2) 1586: this->_S_move(__p + __n2, __p + __n1, __how_much); 1586: } 1586: else 1586: this->_M_mutate(__pos1, __n1, 0, __n2); 1586: 1586: if (__n2) 1586: this->_S_assign(this->_M_data() + __pos1, __n2, __c); 1586: 1586: this->_M_set_length(__new_size); 1586: return *this; 1586: } 1586: 1586: template 1586: basic_string<_CharT, _Traits, _Alloc>& 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 1586: const size_type __len2) 1586: { 1586: _M_check_length(__len1, __len2, "basic_string::_M_replace"); 1586: 1586: const size_type __old_size = this->size(); 1586: const size_type __new_size = __old_size + __len2 - __len1; 1586: 1586: if (__new_size <= this->capacity()) 1586: { 1586: pointer __p = this->_M_data() + __pos; 1586: 1586: const size_type __how_much = __old_size - __pos - __len1; 1586: if (_M_disjunct(__s)) 1586: { 1586: if (__how_much && __len1 != __len2) 1586: this->_S_move(__p + __len2, __p + __len1, __how_much); 1586: if (__len2) 1586: this->_S_copy(__p, __s, __len2); 1586: } 1586: else 1586: { 1586: 1586: if (__len2 && __len2 <= __len1) 1586: this->_S_move(__p, __s, __len2); 1586: if (__how_much && __len1 != __len2) 1586: this->_S_move(__p + __len2, __p + __len1, __how_much); 1586: if (__len2 > __len1) 1586: { 1586: if (__s + __len2 <= __p + __len1) 1586: this->_S_move(__p, __s, __len2); 1586: else if (__s >= __p + __len1) 1586: this->_S_copy(__p, __s + __len2 - __len1, __len2); 1586: else 1586: { 1586: const size_type __nleft = (__p + __len1) - __s; 1586: this->_S_move(__p, __s, __nleft); 1586: this->_S_copy(__p + __nleft, __p + __len2, 1586: __len2 - __nleft); 1586: } 1586: } 1586: } 1586: } 1586: else 1586: this->_M_mutate(__pos, __len1, __s, __len2); 1586: 1586: this->_M_set_length(__new_size); 1586: return *this; 1586: } 1586: 1586: template 1586: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: copy(_CharT* __s, size_type __n, size_type __pos) const 1586: { 1586: _M_check(__pos, "basic_string::copy"); 1586: __n = _M_limit(__pos, __n); 1586: ; 1586: if (__n) 1586: _S_copy(__s, _M_data() + __pos, __n); 1586: 1586: return __n; 1586: } 1586: # 1156 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.tcc" 3 1586: template 1586: basic_string<_CharT, _Traits, _Alloc> 1586: operator+(const _CharT* __lhs, 1586: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1586: { 1586: ; 1586: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 1586: typedef typename __string_type::size_type __size_type; 1586: const __size_type __len = _Traits::length(__lhs); 1586: __string_type __str; 1586: __str.reserve(__len + __rhs.size()); 1586: __str.append(__lhs, __len); 1586: __str.append(__rhs); 1586: return __str; 1586: } 1586: 1586: template 1586: basic_string<_CharT, _Traits, _Alloc> 1586: operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) 1586: { 1586: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 1586: typedef typename __string_type::size_type __size_type; 1586: __string_type __str; 1586: const __size_type __len = __rhs.size(); 1586: __str.reserve(__len + 1); 1586: __str.append(__size_type(1), __lhs); 1586: __str.append(__rhs); 1586: return __str; 1586: } 1586: 1586: template 1586: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: find(const _CharT* __s, size_type __pos, size_type __n) const 1586: noexcept 1586: { 1586: ; 1586: const size_type __size = this->size(); 1586: 1586: if (__n == 0) 1586: return __pos <= __size ? __pos : npos; 1586: if (__pos >= __size) 1586: return npos; 1586: 1586: const _CharT __elem0 = __s[0]; 1586: const _CharT* const __data = data(); 1586: const _CharT* __first = __data + __pos; 1586: const _CharT* const __last = __data + __size; 1586: size_type __len = __size - __pos; 1586: 1586: while (__len >= __n) 1586: { 1586: 1586: __first = traits_type::find(__first, __len - __n + 1, __elem0); 1586: if (!__first) 1586: return npos; 1586: 1586: 1586: 1586: if (traits_type::compare(__first, __s, __n) == 0) 1586: return __first - __data; 1586: __len = __last - ++__first; 1586: } 1586: return npos; 1586: } 1586: 1586: template 1586: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: find(_CharT __c, size_type __pos) const noexcept 1586: { 1586: size_type __ret = npos; 1586: const size_type __size = this->size(); 1586: if (__pos < __size) 1586: { 1586: const _CharT* __data = _M_data(); 1586: const size_type __n = __size - __pos; 1586: const _CharT* __p = traits_type::find(__data + __pos, __n, __c); 1586: if (__p) 1586: __ret = __p - __data; 1586: } 1586: return __ret; 1586: } 1586: 1586: template 1586: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: rfind(const _CharT* __s, size_type __pos, size_type __n) const 1586: noexcept 1586: { 1586: ; 1586: const size_type __size = this->size(); 1586: if (__n <= __size) 1586: { 1586: __pos = std::min(size_type(__size - __n), __pos); 1586: const _CharT* __data = _M_data(); 1586: do 1586: { 1586: if (traits_type::compare(__data + __pos, __s, __n) == 0) 1586: return __pos; 1586: } 1586: while (__pos-- > 0); 1586: } 1586: return npos; 1586: } 1586: 1586: template 1586: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: rfind(_CharT __c, size_type __pos) const noexcept 1586: { 1586: size_type __size = this->size(); 1586: if (__size) 1586: { 1586: if (--__size > __pos) 1586: __size = __pos; 1586: for (++__size; __size-- > 0; ) 1586: if (traits_type::eq(_M_data()[__size], __c)) 1586: return __size; 1586: } 1586: return npos; 1586: } 1586: 1586: template 1586: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 1586: noexcept 1586: { 1586: ; 1586: for (; __n && __pos < this->size(); ++__pos) 1586: { 1586: const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); 1586: if (__p) 1586: return __pos; 1586: } 1586: return npos; 1586: } 1586: 1586: template 1586: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 1586: noexcept 1586: { 1586: ; 1586: size_type __size = this->size(); 1586: if (__size && __n) 1586: { 1586: if (--__size > __pos) 1586: __size = __pos; 1586: do 1586: { 1586: if (traits_type::find(__s, __n, _M_data()[__size])) 1586: return __size; 1586: } 1586: while (__size-- != 0); 1586: } 1586: return npos; 1586: } 1586: 1586: template 1586: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const 1586: noexcept 1586: { 1586: ; 1586: for (; __pos < this->size(); ++__pos) 1586: if (!traits_type::find(__s, __n, _M_data()[__pos])) 1586: return __pos; 1586: return npos; 1586: } 1586: 1586: template 1586: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: find_first_not_of(_CharT __c, size_type __pos) const noexcept 1586: { 1586: for (; __pos < this->size(); ++__pos) 1586: if (!traits_type::eq(_M_data()[__pos], __c)) 1586: return __pos; 1586: return npos; 1586: } 1586: 1586: template 1586: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const 1586: noexcept 1586: { 1586: ; 1586: size_type __size = this->size(); 1586: if (__size) 1586: { 1586: if (--__size > __pos) 1586: __size = __pos; 1586: do 1586: { 1586: if (!traits_type::find(__s, __n, _M_data()[__size])) 1586: return __size; 1586: } 1586: while (__size--); 1586: } 1586: return npos; 1586: } 1586: 1586: template 1586: typename basic_string<_CharT, _Traits, _Alloc>::size_type 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: find_last_not_of(_CharT __c, size_type __pos) const noexcept 1586: { 1586: size_type __size = this->size(); 1586: if (__size) 1586: { 1586: if (--__size > __pos) 1586: __size = __pos; 1586: do 1586: { 1586: if (!traits_type::eq(_M_data()[__size], __c)) 1586: return __size; 1586: } 1586: while (__size--); 1586: } 1586: return npos; 1586: } 1586: 1586: template 1586: int 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: compare(size_type __pos, size_type __n, const basic_string& __str) const 1586: { 1586: _M_check(__pos, "basic_string::compare"); 1586: __n = _M_limit(__pos, __n); 1586: const size_type __osize = __str.size(); 1586: const size_type __len = std::min(__n, __osize); 1586: int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); 1586: if (!__r) 1586: __r = _S_compare(__n, __osize); 1586: return __r; 1586: } 1586: 1586: template 1586: int 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: compare(size_type __pos1, size_type __n1, const basic_string& __str, 1586: size_type __pos2, size_type __n2) const 1586: { 1586: _M_check(__pos1, "basic_string::compare"); 1586: __str._M_check(__pos2, "basic_string::compare"); 1586: __n1 = _M_limit(__pos1, __n1); 1586: __n2 = __str._M_limit(__pos2, __n2); 1586: const size_type __len = std::min(__n1, __n2); 1586: int __r = traits_type::compare(_M_data() + __pos1, 1586: __str.data() + __pos2, __len); 1586: if (!__r) 1586: __r = _S_compare(__n1, __n2); 1586: return __r; 1586: } 1586: 1586: template 1586: int 1586: basic_string<_CharT, _Traits, _Alloc>:: 1586: compare(const _CharT* __s) const noexcept 1586: { 1586: ; 1586: const size_type __size = this->size(); 1586: const size_type __osize = traits_type::length(__s); 1586: const size_type __len = std::min(__size, __osize); 1586: int __r = traits_type::compare(_M_data(), __s, __len); 1586: if (!__r) 1586: __r = _S_compare(__size, __osize); 1586: return __r; 1586: } 1586: 1586: template 1586: int 1586: basic_string <_CharT, _Traits, _Alloc>:: 1586: compare(size_type __pos, size_type __n1, const _CharT* __s) const 1586: { 1586: ; 1586: _M_check(__pos, "basic_string::compare"); 1586: __n1 = _M_limit(__pos, __n1); 1586: const size_type __osize = traits_type::length(__s); 1586: const size_type __len = std::min(__n1, __osize); 1586: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 1586: if (!__r) 1586: __r = _S_compare(__n1, __osize); 1586: return __r; 1586: } 1586: 1586: template 1586: int 1586: basic_string <_CharT, _Traits, _Alloc>:: 1586: compare(size_type __pos, size_type __n1, const _CharT* __s, 1586: size_type __n2) const 1586: { 1586: ; 1586: _M_check(__pos, "basic_string::compare"); 1586: __n1 = _M_limit(__pos, __n1); 1586: const size_type __len = std::min(__n1, __n2); 1586: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 1586: if (!__r) 1586: __r = _S_compare(__n1, __n2); 1586: return __r; 1586: } 1586: 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: operator>>(basic_istream<_CharT, _Traits>& __in, 1586: basic_string<_CharT, _Traits, _Alloc>& __str) 1586: { 1586: typedef basic_istream<_CharT, _Traits> __istream_type; 1586: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 1586: typedef typename __istream_type::ios_base __ios_base; 1586: typedef typename __istream_type::int_type __int_type; 1586: typedef typename __string_type::size_type __size_type; 1586: typedef ctype<_CharT> __ctype_type; 1586: typedef typename __ctype_type::ctype_base __ctype_base; 1586: 1586: __size_type __extracted = 0; 1586: typename __ios_base::iostate __err = __ios_base::goodbit; 1586: typename __istream_type::sentry __cerb(__in, false); 1586: if (__cerb) 1586: { 1586: try 1586: { 1586: 1586: __str.erase(); 1586: _CharT __buf[128]; 1586: __size_type __len = 0; 1586: const streamsize __w = __in.width(); 1586: const __size_type __n = __w > 0 ? static_cast<__size_type>(__w) 1586: : __str.max_size(); 1586: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 1586: const __int_type __eof = _Traits::eof(); 1586: __int_type __c = __in.rdbuf()->sgetc(); 1586: 1586: while (__extracted < __n 1586: && !_Traits::eq_int_type(__c, __eof) 1586: && !__ct.is(__ctype_base::space, 1586: _Traits::to_char_type(__c))) 1586: { 1586: if (__len == sizeof(__buf) / sizeof(_CharT)) 1586: { 1586: __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); 1586: __len = 0; 1586: } 1586: __buf[__len++] = _Traits::to_char_type(__c); 1586: ++__extracted; 1586: __c = __in.rdbuf()->snextc(); 1586: } 1586: __str.append(__buf, __len); 1586: 1586: if (_Traits::eq_int_type(__c, __eof)) 1586: __err |= __ios_base::eofbit; 1586: __in.width(0); 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: __in._M_setstate(__ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { 1586: 1586: 1586: 1586: __in._M_setstate(__ios_base::badbit); 1586: } 1586: } 1586: 1586: if (!__extracted) 1586: __err |= __ios_base::failbit; 1586: if (__err) 1586: __in.setstate(__err); 1586: return __in; 1586: } 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: getline(basic_istream<_CharT, _Traits>& __in, 1586: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 1586: { 1586: typedef basic_istream<_CharT, _Traits> __istream_type; 1586: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 1586: typedef typename __istream_type::ios_base __ios_base; 1586: typedef typename __istream_type::int_type __int_type; 1586: typedef typename __string_type::size_type __size_type; 1586: 1586: __size_type __extracted = 0; 1586: const __size_type __n = __str.max_size(); 1586: typename __ios_base::iostate __err = __ios_base::goodbit; 1586: typename __istream_type::sentry __cerb(__in, true); 1586: if (__cerb) 1586: { 1586: try 1586: { 1586: __str.erase(); 1586: const __int_type __idelim = _Traits::to_int_type(__delim); 1586: const __int_type __eof = _Traits::eof(); 1586: __int_type __c = __in.rdbuf()->sgetc(); 1586: 1586: while (__extracted < __n 1586: && !_Traits::eq_int_type(__c, __eof) 1586: && !_Traits::eq_int_type(__c, __idelim)) 1586: { 1586: __str += _Traits::to_char_type(__c); 1586: ++__extracted; 1586: __c = __in.rdbuf()->snextc(); 1586: } 1586: 1586: if (_Traits::eq_int_type(__c, __eof)) 1586: __err |= __ios_base::eofbit; 1586: else if (_Traits::eq_int_type(__c, __idelim)) 1586: { 1586: ++__extracted; 1586: __in.rdbuf()->sbumpc(); 1586: } 1586: else 1586: __err |= __ios_base::failbit; 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: __in._M_setstate(__ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { 1586: 1586: 1586: 1586: __in._M_setstate(__ios_base::badbit); 1586: } 1586: } 1586: if (!__extracted) 1586: __err |= __ios_base::failbit; 1586: if (__err) 1586: __in.setstate(__err); 1586: return __in; 1586: } 1586: # 1608 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_string.tcc" 3 1586: extern template class basic_string; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern template 1586: basic_istream& 1586: operator>>(basic_istream&, string&); 1586: extern template 1586: basic_ostream& 1586: operator<<(basic_ostream&, const string&); 1586: extern template 1586: basic_istream& 1586: getline(basic_istream&, string&, char); 1586: extern template 1586: basic_istream& 1586: getline(basic_istream&, string&); 1586: 1586: 1586: 1586: extern template class basic_string; 1586: 1586: 1586: 1586: 1586: 1586: extern template 1586: basic_istream& 1586: operator>>(basic_istream&, wstring&); 1586: extern template 1586: basic_ostream& 1586: operator<<(basic_ostream&, const wstring&); 1586: extern template 1586: basic_istream& 1586: getline(basic_istream&, wstring&, wchar_t); 1586: extern template 1586: basic_istream& 1586: getline(basic_istream&, wstring&); 1586: 1586: 1586: 1586: 1586: } 1586: # 57 "/usr/mipsel-linux-gnu/include/c++/9/string" 2 3 1586: # 17 "/<>/include/HepMC3/GenParticle.h" 2 1586: # 1 "/<>/include/HepMC3/Data/GenParticleData.h" 1 1586: # 18 "/<>/include/HepMC3/Data/GenParticleData.h" 1586: # 1 "/<>/include/HepMC3/FourVector.h" 1 1586: # 12 "/<>/include/HepMC3/FourVector.h" 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/cmath" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/cmath" 3 1586: 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/cmath" 3 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/math.h" 1 3 1586: # 27 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/libc-header-start.h" 1 3 1586: # 28 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern "C" { 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/math-vector.h" 1 3 1586: # 27 "/usr/mipsel-linux-gnu/include/bits/math-vector.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/libm-simd-decl-stubs.h" 1 3 1586: # 27 "/usr/mipsel-linux-gnu/include/bits/math-vector.h" 2 3 1586: # 41 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 138 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/flt-eval-method.h" 1 3 1586: # 139 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 149 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: typedef float float_t; 1586: typedef double double_t; 1586: # 190 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/fp-logb.h" 1 3 1586: # 191 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 233 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/fp-fast.h" 1 3 1586: # 234 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: 1586: 1586: 1586: enum 1586: { 1586: FP_INT_UPWARD = 1586: 1586: 0, 1586: FP_INT_DOWNWARD = 1586: 1586: 1, 1586: FP_INT_TOWARDZERO = 1586: 1586: 2, 1586: FP_INT_TONEARESTFROMZERO = 1586: 1586: 3, 1586: FP_INT_TONEAREST = 1586: 1586: 4, 1586: }; 1586: # 289 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/mathcalls-helper-functions.h" 1 3 1586: # 21 "/usr/mipsel-linux-gnu/include/bits/mathcalls-helper-functions.h" 3 1586: extern int __fpclassify (double __value) throw () 1586: __attribute__ ((__const__)); 1586: 1586: 1586: extern int __signbit (double __value) throw () 1586: __attribute__ ((__const__)); 1586: 1586: 1586: 1586: extern int __isinf (double __value) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern int __finite (double __value) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern int __isnan (double __value) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern int __iseqsig (double __x, double __y) throw (); 1586: 1586: 1586: extern int __issignaling (double __value) throw () 1586: __attribute__ ((__const__)); 1586: # 290 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 1 3 1586: # 53 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern double acos (double __x) throw (); extern double __acos (double __x) throw (); 1586: 1586: extern double asin (double __x) throw (); extern double __asin (double __x) throw (); 1586: 1586: extern double atan (double __x) throw (); extern double __atan (double __x) throw (); 1586: 1586: extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw (); 1586: 1586: 1586: extern double cos (double __x) throw (); extern double __cos (double __x) throw (); 1586: 1586: extern double sin (double __x) throw (); extern double __sin (double __x) throw (); 1586: 1586: extern double tan (double __x) throw (); extern double __tan (double __x) throw (); 1586: 1586: 1586: 1586: 1586: extern double cosh (double __x) throw (); extern double __cosh (double __x) throw (); 1586: 1586: extern double sinh (double __x) throw (); extern double __sinh (double __x) throw (); 1586: 1586: extern double tanh (double __x) throw (); extern double __tanh (double __x) throw (); 1586: 1586: 1586: 1586: extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw () 1586: ; 1586: 1586: 1586: 1586: 1586: extern double acosh (double __x) throw (); extern double __acosh (double __x) throw (); 1586: 1586: extern double asinh (double __x) throw (); extern double __asinh (double __x) throw (); 1586: 1586: extern double atanh (double __x) throw (); extern double __atanh (double __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern double exp (double __x) throw (); extern double __exp (double __x) throw (); 1586: 1586: 1586: extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw (); 1586: 1586: 1586: extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw (); 1586: 1586: 1586: extern double log (double __x) throw (); extern double __log (double __x) throw (); 1586: 1586: 1586: extern double log10 (double __x) throw (); extern double __log10 (double __x) throw (); 1586: 1586: 1586: extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw () __attribute__ ((__nonnull__ (2))); 1586: 1586: 1586: 1586: extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw (); 1586: 1586: 1586: 1586: 1586: extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw (); 1586: 1586: 1586: extern double log1p (double __x) throw (); extern double __log1p (double __x) throw (); 1586: 1586: 1586: extern double logb (double __x) throw (); extern double __logb (double __x) throw (); 1586: 1586: 1586: 1586: 1586: extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw (); 1586: 1586: 1586: extern double log2 (double __x) throw (); extern double __log2 (double __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw (); 1586: 1586: 1586: extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw (); 1586: 1586: 1586: 1586: extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw (); 1586: 1586: 1586: 1586: 1586: extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw (); 1586: # 182 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern int finite (double __value) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw (); 1586: 1586: 1586: 1586: extern double significand (double __x) throw (); extern double __significand (double __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: 1586: extern double nan (const char *__tagb) throw (); extern double __nan (const char *__tagb) throw (); 1586: # 217 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern double j0 (double) throw (); extern double __j0 (double) throw (); 1586: extern double j1 (double) throw (); extern double __j1 (double) throw (); 1586: extern double jn (int, double) throw (); extern double __jn (int, double) throw (); 1586: extern double y0 (double) throw (); extern double __y0 (double) throw (); 1586: extern double y1 (double) throw (); extern double __y1 (double) throw (); 1586: extern double yn (int, double) throw (); extern double __yn (int, double) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern double erf (double) throw (); extern double __erf (double) throw (); 1586: extern double erfc (double) throw (); extern double __erfc (double) throw (); 1586: extern double lgamma (double) throw (); extern double __lgamma (double) throw (); 1586: 1586: 1586: 1586: 1586: extern double tgamma (double) throw (); extern double __tgamma (double) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern double gamma (double) throw (); extern double __gamma (double) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern double rint (double __x) throw (); extern double __rint (double __x) throw (); 1586: 1586: 1586: extern double nextafter (double __x, double __y) throw (); extern double __nextafter (double __x, double __y) throw (); 1586: 1586: extern double nexttoward (double __x, long double __y) throw (); extern double __nexttoward (double __x, long double __y) throw (); 1586: 1586: 1586: 1586: 1586: extern double nextdown (double __x) throw (); extern double __nextdown (double __x) throw (); 1586: 1586: extern double nextup (double __x) throw (); extern double __nextup (double __x) throw (); 1586: 1586: 1586: 1586: extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw (); 1586: 1586: 1586: 1586: extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw (); 1586: 1586: 1586: 1586: extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw (); 1586: 1586: 1586: 1586: 1586: extern long int llogb (double __x) throw (); extern long int __llogb (double __x) throw (); 1586: 1586: 1586: 1586: 1586: extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw (); 1586: 1586: 1586: 1586: extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw (); 1586: 1586: 1586: 1586: extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: 1586: extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw (); 1586: __extension__ 1586: extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw (); 1586: 1586: 1586: 1586: extern long int lround (double __x) throw (); extern long int __lround (double __x) throw (); 1586: __extension__ 1586: extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw (); 1586: 1586: 1586: 1586: extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw (); 1586: 1586: 1586: extern double fmax (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmax (double __x, double __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern double fmin (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmin (double __x, double __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw (); 1586: 1586: 1586: 1586: 1586: extern double roundeven (double __x) throw () __attribute__ ((__const__)); extern double __roundeven (double __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: extern __intmax_t fromfp (double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfp (double __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: 1586: extern __uintmax_t ufromfp (double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfp (double __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: 1586: 1586: extern __intmax_t fromfpx (double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpx (double __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: 1586: 1586: extern __uintmax_t ufromfpx (double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpx (double __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: extern double fmaxmag (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmaxmag (double __x, double __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern double fminmag (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fminmag (double __x, double __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern int canonicalize (double *__cx, const double *__x) throw (); 1586: 1586: 1586: 1586: 1586: extern int totalorder (const double *__x, const double *__y) throw () 1586: 1586: __attribute__ ((__pure__)); 1586: 1586: 1586: extern int totalordermag (const double *__x, const double *__y) throw () 1586: 1586: __attribute__ ((__pure__)); 1586: 1586: 1586: extern double getpayload (const double *__x) throw (); extern double __getpayload (const double *__x) throw (); 1586: 1586: 1586: extern int setpayload (double *__x, double __payload) throw (); 1586: 1586: 1586: extern int setpayloadsig (double *__x, double __payload) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw (); 1586: # 291 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 306 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/mathcalls-helper-functions.h" 1 3 1586: # 21 "/usr/mipsel-linux-gnu/include/bits/mathcalls-helper-functions.h" 3 1586: extern int __fpclassifyf (float __value) throw () 1586: __attribute__ ((__const__)); 1586: 1586: 1586: extern int __signbitf (float __value) throw () 1586: __attribute__ ((__const__)); 1586: 1586: 1586: 1586: extern int __isinff (float __value) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern int __finitef (float __value) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern int __isnanf (float __value) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern int __iseqsigf (float __x, float __y) throw (); 1586: 1586: 1586: extern int __issignalingf (float __value) throw () 1586: __attribute__ ((__const__)); 1586: # 307 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 1 3 1586: # 53 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern float acosf (float __x) throw (); extern float __acosf (float __x) throw (); 1586: 1586: extern float asinf (float __x) throw (); extern float __asinf (float __x) throw (); 1586: 1586: extern float atanf (float __x) throw (); extern float __atanf (float __x) throw (); 1586: 1586: extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw (); 1586: 1586: 1586: extern float cosf (float __x) throw (); extern float __cosf (float __x) throw (); 1586: 1586: extern float sinf (float __x) throw (); extern float __sinf (float __x) throw (); 1586: 1586: extern float tanf (float __x) throw (); extern float __tanf (float __x) throw (); 1586: 1586: 1586: 1586: 1586: extern float coshf (float __x) throw (); extern float __coshf (float __x) throw (); 1586: 1586: extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw (); 1586: 1586: extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw (); 1586: 1586: 1586: 1586: extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf (float __x, float *__sinx, float *__cosx) throw () 1586: ; 1586: 1586: 1586: 1586: 1586: extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw (); 1586: 1586: extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw (); 1586: 1586: extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern float expf (float __x) throw (); extern float __expf (float __x) throw (); 1586: 1586: 1586: extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw (); 1586: 1586: 1586: extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw (); 1586: 1586: 1586: extern float logf (float __x) throw (); extern float __logf (float __x) throw (); 1586: 1586: 1586: extern float log10f (float __x) throw (); extern float __log10f (float __x) throw (); 1586: 1586: 1586: extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw () __attribute__ ((__nonnull__ (2))); 1586: 1586: 1586: 1586: extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw (); 1586: 1586: 1586: 1586: 1586: extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw (); 1586: 1586: 1586: extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw (); 1586: 1586: 1586: extern float logbf (float __x) throw (); extern float __logbf (float __x) throw (); 1586: 1586: 1586: 1586: 1586: extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw (); 1586: 1586: 1586: extern float log2f (float __x) throw (); extern float __log2f (float __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw (); 1586: 1586: 1586: extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw (); 1586: 1586: 1586: 1586: extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw (); 1586: 1586: 1586: 1586: 1586: extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw (); 1586: # 177 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern int isinff (float __value) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: 1586: extern int finitef (float __value) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw (); 1586: 1586: 1586: 1586: extern float significandf (float __x) throw (); extern float __significandf (float __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: 1586: extern float nanf (const char *__tagb) throw (); extern float __nanf (const char *__tagb) throw (); 1586: # 211 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern int isnanf (float __value) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: 1586: 1586: extern float j0f (float) throw (); extern float __j0f (float) throw (); 1586: extern float j1f (float) throw (); extern float __j1f (float) throw (); 1586: extern float jnf (int, float) throw (); extern float __jnf (int, float) throw (); 1586: extern float y0f (float) throw (); extern float __y0f (float) throw (); 1586: extern float y1f (float) throw (); extern float __y1f (float) throw (); 1586: extern float ynf (int, float) throw (); extern float __ynf (int, float) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern float erff (float) throw (); extern float __erff (float) throw (); 1586: extern float erfcf (float) throw (); extern float __erfcf (float) throw (); 1586: extern float lgammaf (float) throw (); extern float __lgammaf (float) throw (); 1586: 1586: 1586: 1586: 1586: extern float tgammaf (float) throw (); extern float __tgammaf (float) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern float gammaf (float) throw (); extern float __gammaf (float) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern float rintf (float __x) throw (); extern float __rintf (float __x) throw (); 1586: 1586: 1586: extern float nextafterf (float __x, float __y) throw (); extern float __nextafterf (float __x, float __y) throw (); 1586: 1586: extern float nexttowardf (float __x, long double __y) throw (); extern float __nexttowardf (float __x, long double __y) throw (); 1586: 1586: 1586: 1586: 1586: extern float nextdownf (float __x) throw (); extern float __nextdownf (float __x) throw (); 1586: 1586: extern float nextupf (float __x) throw (); extern float __nextupf (float __x) throw (); 1586: 1586: 1586: 1586: extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw (); 1586: 1586: 1586: 1586: extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw (); 1586: 1586: 1586: 1586: extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw (); 1586: 1586: 1586: 1586: 1586: extern long int llogbf (float __x) throw (); extern long int __llogbf (float __x) throw (); 1586: 1586: 1586: 1586: 1586: extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw (); 1586: 1586: 1586: 1586: extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw (); 1586: 1586: 1586: 1586: extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: 1586: extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw (); 1586: __extension__ 1586: extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw (); 1586: 1586: 1586: 1586: extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw (); 1586: __extension__ 1586: extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw (); 1586: 1586: 1586: 1586: extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw (); 1586: 1586: 1586: extern float fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern float fminf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminf (float __x, float __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw (); 1586: 1586: 1586: 1586: 1586: extern float roundevenf (float __x) throw () __attribute__ ((__const__)); extern float __roundevenf (float __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: extern __intmax_t fromfpf (float __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf (float __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: 1586: extern __uintmax_t ufromfpf (float __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf (float __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: 1586: 1586: extern __intmax_t fromfpxf (float __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf (float __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: 1586: 1586: extern __uintmax_t ufromfpxf (float __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf (float __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: extern float fmaxmagf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxmagf (float __x, float __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern float fminmagf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminmagf (float __x, float __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern int canonicalizef (float *__cx, const float *__x) throw (); 1586: 1586: 1586: 1586: 1586: extern int totalorderf (const float *__x, const float *__y) throw () 1586: 1586: __attribute__ ((__pure__)); 1586: 1586: 1586: extern int totalordermagf (const float *__x, const float *__y) throw () 1586: 1586: __attribute__ ((__pure__)); 1586: 1586: 1586: extern float getpayloadf (const float *__x) throw (); extern float __getpayloadf (const float *__x) throw (); 1586: 1586: 1586: extern int setpayloadf (float *__x, float __payload) throw (); 1586: 1586: 1586: extern int setpayloadsigf (float *__x, float __payload) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw (); 1586: # 308 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 349 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/mathcalls-helper-functions.h" 1 3 1586: # 21 "/usr/mipsel-linux-gnu/include/bits/mathcalls-helper-functions.h" 3 1586: extern int __fpclassifyl (long double __value) throw () 1586: __attribute__ ((__const__)); 1586: 1586: 1586: extern int __signbitl (long double __value) throw () 1586: __attribute__ ((__const__)); 1586: 1586: 1586: 1586: extern int __isinfl (long double __value) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern int __finitel (long double __value) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern int __isnanl (long double __value) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern int __iseqsigl (long double __x, long double __y) throw (); 1586: 1586: 1586: extern int __issignalingl (long double __value) throw () 1586: __attribute__ ((__const__)); 1586: # 350 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 1 3 1586: # 53 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw (); 1586: 1586: extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw (); 1586: 1586: extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw (); 1586: 1586: extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw (); 1586: 1586: 1586: extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw (); 1586: 1586: extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw (); 1586: 1586: extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw (); 1586: 1586: 1586: 1586: 1586: extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw (); 1586: 1586: extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw (); 1586: 1586: extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw (); 1586: 1586: 1586: 1586: extern void sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) throw () 1586: ; 1586: 1586: 1586: 1586: 1586: extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw (); 1586: 1586: extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw (); 1586: 1586: extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw (); 1586: 1586: 1586: extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw (); 1586: 1586: 1586: extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw (); 1586: 1586: 1586: extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw (); 1586: 1586: 1586: extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw (); 1586: 1586: 1586: extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw () __attribute__ ((__nonnull__ (2))); 1586: 1586: 1586: 1586: extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw (); 1586: 1586: 1586: 1586: 1586: extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw (); 1586: 1586: 1586: extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw (); 1586: 1586: 1586: extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw (); 1586: 1586: 1586: 1586: 1586: extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw (); 1586: 1586: 1586: extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw (); 1586: 1586: 1586: extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw (); 1586: 1586: 1586: 1586: extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw (); 1586: 1586: 1586: 1586: 1586: extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw (); 1586: # 177 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern int isinfl (long double __value) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: 1586: extern int finitel (long double __value) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw (); 1586: 1586: 1586: 1586: extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern long double copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: 1586: extern long double nanl (const char *__tagb) throw (); extern long double __nanl (const char *__tagb) throw (); 1586: # 211 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern int isnanl (long double __value) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: 1586: 1586: extern long double j0l (long double) throw (); extern long double __j0l (long double) throw (); 1586: extern long double j1l (long double) throw (); extern long double __j1l (long double) throw (); 1586: extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw (); 1586: extern long double y0l (long double) throw (); extern long double __y0l (long double) throw (); 1586: extern long double y1l (long double) throw (); extern long double __y1l (long double) throw (); 1586: extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern long double erfl (long double) throw (); extern long double __erfl (long double) throw (); 1586: extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw (); 1586: extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw (); 1586: 1586: 1586: 1586: 1586: extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern long double gammal (long double) throw (); extern long double __gammal (long double) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw (); 1586: 1586: 1586: extern long double nextafterl (long double __x, long double __y) throw (); extern long double __nextafterl (long double __x, long double __y) throw (); 1586: 1586: extern long double nexttowardl (long double __x, long double __y) throw (); extern long double __nexttowardl (long double __x, long double __y) throw (); 1586: 1586: 1586: 1586: 1586: extern long double nextdownl (long double __x) throw (); extern long double __nextdownl (long double __x) throw (); 1586: 1586: extern long double nextupl (long double __x) throw (); extern long double __nextupl (long double __x) throw (); 1586: 1586: 1586: 1586: extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw (); 1586: 1586: 1586: 1586: extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw (); 1586: 1586: 1586: 1586: extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw (); 1586: 1586: 1586: 1586: 1586: extern long int llogbl (long double __x) throw (); extern long int __llogbl (long double __x) throw (); 1586: 1586: 1586: 1586: 1586: extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw (); 1586: 1586: 1586: 1586: extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw (); 1586: 1586: 1586: 1586: extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: 1586: extern long double remquol (long double __x, long double __y, int *__quo) throw (); extern long double __remquol (long double __x, long double __y, int *__quo) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw (); 1586: __extension__ 1586: extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw (); 1586: 1586: 1586: 1586: extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw (); 1586: __extension__ 1586: extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw (); 1586: 1586: 1586: 1586: extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw (); 1586: 1586: 1586: extern long double fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern long double fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern long double fmal (long double __x, long double __y, long double __z) throw (); extern long double __fmal (long double __x, long double __y, long double __z) throw (); 1586: 1586: 1586: 1586: 1586: extern long double roundevenl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundevenl (long double __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: extern __intmax_t fromfpl (long double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpl (long double __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: 1586: extern __uintmax_t ufromfpl (long double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpl (long double __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: 1586: 1586: extern __intmax_t fromfpxl (long double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxl (long double __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: 1586: 1586: extern __uintmax_t ufromfpxl (long double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxl (long double __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: extern long double fmaxmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern long double fminmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern int canonicalizel (long double *__cx, const long double *__x) throw (); 1586: 1586: 1586: 1586: 1586: extern int totalorderl (const long double *__x, const long double *__y) throw () 1586: 1586: __attribute__ ((__pure__)); 1586: 1586: 1586: extern int totalordermagl (const long double *__x, const long double *__y) throw () 1586: 1586: __attribute__ ((__pure__)); 1586: 1586: 1586: extern long double getpayloadl (const long double *__x) throw (); extern long double __getpayloadl (const long double *__x) throw (); 1586: 1586: 1586: extern int setpayloadl (long double *__x, long double __payload) throw (); 1586: 1586: 1586: extern int setpayloadsigl (long double *__x, long double __payload) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw (); 1586: # 351 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 389 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 1 3 1586: # 53 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern _Float32 acosf32 (_Float32 __x) throw (); extern _Float32 __acosf32 (_Float32 __x) throw (); 1586: 1586: extern _Float32 asinf32 (_Float32 __x) throw (); extern _Float32 __asinf32 (_Float32 __x) throw (); 1586: 1586: extern _Float32 atanf32 (_Float32 __x) throw (); extern _Float32 __atanf32 (_Float32 __x) throw (); 1586: 1586: extern _Float32 atan2f32 (_Float32 __y, _Float32 __x) throw (); extern _Float32 __atan2f32 (_Float32 __y, _Float32 __x) throw (); 1586: 1586: 1586: extern _Float32 cosf32 (_Float32 __x) throw (); extern _Float32 __cosf32 (_Float32 __x) throw (); 1586: 1586: extern _Float32 sinf32 (_Float32 __x) throw (); extern _Float32 __sinf32 (_Float32 __x) throw (); 1586: 1586: extern _Float32 tanf32 (_Float32 __x) throw (); extern _Float32 __tanf32 (_Float32 __x) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float32 coshf32 (_Float32 __x) throw (); extern _Float32 __coshf32 (_Float32 __x) throw (); 1586: 1586: extern _Float32 sinhf32 (_Float32 __x) throw (); extern _Float32 __sinhf32 (_Float32 __x) throw (); 1586: 1586: extern _Float32 tanhf32 (_Float32 __x) throw (); extern _Float32 __tanhf32 (_Float32 __x) throw (); 1586: 1586: 1586: 1586: extern void sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) throw (); extern void __sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) throw () 1586: ; 1586: 1586: 1586: 1586: 1586: extern _Float32 acoshf32 (_Float32 __x) throw (); extern _Float32 __acoshf32 (_Float32 __x) throw (); 1586: 1586: extern _Float32 asinhf32 (_Float32 __x) throw (); extern _Float32 __asinhf32 (_Float32 __x) throw (); 1586: 1586: extern _Float32 atanhf32 (_Float32 __x) throw (); extern _Float32 __atanhf32 (_Float32 __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern _Float32 expf32 (_Float32 __x) throw (); extern _Float32 __expf32 (_Float32 __x) throw (); 1586: 1586: 1586: extern _Float32 frexpf32 (_Float32 __x, int *__exponent) throw (); extern _Float32 __frexpf32 (_Float32 __x, int *__exponent) throw (); 1586: 1586: 1586: extern _Float32 ldexpf32 (_Float32 __x, int __exponent) throw (); extern _Float32 __ldexpf32 (_Float32 __x, int __exponent) throw (); 1586: 1586: 1586: extern _Float32 logf32 (_Float32 __x) throw (); extern _Float32 __logf32 (_Float32 __x) throw (); 1586: 1586: 1586: extern _Float32 log10f32 (_Float32 __x) throw (); extern _Float32 __log10f32 (_Float32 __x) throw (); 1586: 1586: 1586: extern _Float32 modff32 (_Float32 __x, _Float32 *__iptr) throw (); extern _Float32 __modff32 (_Float32 __x, _Float32 *__iptr) throw () __attribute__ ((__nonnull__ (2))); 1586: 1586: 1586: 1586: extern _Float32 exp10f32 (_Float32 __x) throw (); extern _Float32 __exp10f32 (_Float32 __x) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float32 expm1f32 (_Float32 __x) throw (); extern _Float32 __expm1f32 (_Float32 __x) throw (); 1586: 1586: 1586: extern _Float32 log1pf32 (_Float32 __x) throw (); extern _Float32 __log1pf32 (_Float32 __x) throw (); 1586: 1586: 1586: extern _Float32 logbf32 (_Float32 __x) throw (); extern _Float32 __logbf32 (_Float32 __x) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float32 exp2f32 (_Float32 __x) throw (); extern _Float32 __exp2f32 (_Float32 __x) throw (); 1586: 1586: 1586: extern _Float32 log2f32 (_Float32 __x) throw (); extern _Float32 __log2f32 (_Float32 __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern _Float32 powf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __powf32 (_Float32 __x, _Float32 __y) throw (); 1586: 1586: 1586: extern _Float32 sqrtf32 (_Float32 __x) throw (); extern _Float32 __sqrtf32 (_Float32 __x) throw (); 1586: 1586: 1586: 1586: extern _Float32 hypotf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __hypotf32 (_Float32 __x, _Float32 __y) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float32 cbrtf32 (_Float32 __x) throw (); extern _Float32 __cbrtf32 (_Float32 __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern _Float32 ceilf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __ceilf32 (_Float32 __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern _Float32 fabsf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __fabsf32 (_Float32 __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern _Float32 floorf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __floorf32 (_Float32 __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern _Float32 fmodf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __fmodf32 (_Float32 __x, _Float32 __y) throw (); 1586: # 196 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern _Float32 copysignf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __copysignf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: 1586: extern _Float32 nanf32 (const char *__tagb) throw (); extern _Float32 __nanf32 (const char *__tagb) throw (); 1586: # 217 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern _Float32 j0f32 (_Float32) throw (); extern _Float32 __j0f32 (_Float32) throw (); 1586: extern _Float32 j1f32 (_Float32) throw (); extern _Float32 __j1f32 (_Float32) throw (); 1586: extern _Float32 jnf32 (int, _Float32) throw (); extern _Float32 __jnf32 (int, _Float32) throw (); 1586: extern _Float32 y0f32 (_Float32) throw (); extern _Float32 __y0f32 (_Float32) throw (); 1586: extern _Float32 y1f32 (_Float32) throw (); extern _Float32 __y1f32 (_Float32) throw (); 1586: extern _Float32 ynf32 (int, _Float32) throw (); extern _Float32 __ynf32 (int, _Float32) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern _Float32 erff32 (_Float32) throw (); extern _Float32 __erff32 (_Float32) throw (); 1586: extern _Float32 erfcf32 (_Float32) throw (); extern _Float32 __erfcf32 (_Float32) throw (); 1586: extern _Float32 lgammaf32 (_Float32) throw (); extern _Float32 __lgammaf32 (_Float32) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float32 tgammaf32 (_Float32) throw (); extern _Float32 __tgammaf32 (_Float32) throw (); 1586: # 249 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern _Float32 lgammaf32_r (_Float32, int *__signgamp) throw (); extern _Float32 __lgammaf32_r (_Float32, int *__signgamp) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern _Float32 rintf32 (_Float32 __x) throw (); extern _Float32 __rintf32 (_Float32 __x) throw (); 1586: 1586: 1586: extern _Float32 nextafterf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __nextafterf32 (_Float32 __x, _Float32 __y) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern _Float32 nextdownf32 (_Float32 __x) throw (); extern _Float32 __nextdownf32 (_Float32 __x) throw (); 1586: 1586: extern _Float32 nextupf32 (_Float32 __x) throw (); extern _Float32 __nextupf32 (_Float32 __x) throw (); 1586: 1586: 1586: 1586: extern _Float32 remainderf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __remainderf32 (_Float32 __x, _Float32 __y) throw (); 1586: 1586: 1586: 1586: extern _Float32 scalbnf32 (_Float32 __x, int __n) throw (); extern _Float32 __scalbnf32 (_Float32 __x, int __n) throw (); 1586: 1586: 1586: 1586: extern int ilogbf32 (_Float32 __x) throw (); extern int __ilogbf32 (_Float32 __x) throw (); 1586: 1586: 1586: 1586: 1586: extern long int llogbf32 (_Float32 __x) throw (); extern long int __llogbf32 (_Float32 __x) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float32 scalblnf32 (_Float32 __x, long int __n) throw (); extern _Float32 __scalblnf32 (_Float32 __x, long int __n) throw (); 1586: 1586: 1586: 1586: extern _Float32 nearbyintf32 (_Float32 __x) throw (); extern _Float32 __nearbyintf32 (_Float32 __x) throw (); 1586: 1586: 1586: 1586: extern _Float32 roundf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __roundf32 (_Float32 __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: extern _Float32 truncf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __truncf32 (_Float32 __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: 1586: extern _Float32 remquof32 (_Float32 __x, _Float32 __y, int *__quo) throw (); extern _Float32 __remquof32 (_Float32 __x, _Float32 __y, int *__quo) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern long int lrintf32 (_Float32 __x) throw (); extern long int __lrintf32 (_Float32 __x) throw (); 1586: __extension__ 1586: extern long long int llrintf32 (_Float32 __x) throw (); extern long long int __llrintf32 (_Float32 __x) throw (); 1586: 1586: 1586: 1586: extern long int lroundf32 (_Float32 __x) throw (); extern long int __lroundf32 (_Float32 __x) throw (); 1586: __extension__ 1586: extern long long int llroundf32 (_Float32 __x) throw (); extern long long int __llroundf32 (_Float32 __x) throw (); 1586: 1586: 1586: 1586: extern _Float32 fdimf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __fdimf32 (_Float32 __x, _Float32 __y) throw (); 1586: 1586: 1586: extern _Float32 fmaxf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fmaxf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern _Float32 fminf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fminf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern _Float32 fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) throw (); extern _Float32 __fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float32 roundevenf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __roundevenf32 (_Float32 __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: extern __intmax_t fromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf32 (_Float32 __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: 1586: extern __uintmax_t ufromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf32 (_Float32 __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: 1586: 1586: extern __intmax_t fromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: 1586: 1586: extern __uintmax_t ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: extern _Float32 fmaxmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fmaxmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern _Float32 fminmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fminmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern int canonicalizef32 (_Float32 *__cx, const _Float32 *__x) throw (); 1586: 1586: 1586: 1586: 1586: extern int totalorderf32 (const _Float32 *__x, const _Float32 *__y) throw () 1586: 1586: __attribute__ ((__pure__)); 1586: 1586: 1586: extern int totalordermagf32 (const _Float32 *__x, const _Float32 *__y) throw () 1586: 1586: __attribute__ ((__pure__)); 1586: 1586: 1586: extern _Float32 getpayloadf32 (const _Float32 *__x) throw (); extern _Float32 __getpayloadf32 (const _Float32 *__x) throw (); 1586: 1586: 1586: extern int setpayloadf32 (_Float32 *__x, _Float32 __payload) throw (); 1586: 1586: 1586: extern int setpayloadsigf32 (_Float32 *__x, _Float32 __payload) throw (); 1586: # 390 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 406 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 1 3 1586: # 53 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern _Float64 acosf64 (_Float64 __x) throw (); extern _Float64 __acosf64 (_Float64 __x) throw (); 1586: 1586: extern _Float64 asinf64 (_Float64 __x) throw (); extern _Float64 __asinf64 (_Float64 __x) throw (); 1586: 1586: extern _Float64 atanf64 (_Float64 __x) throw (); extern _Float64 __atanf64 (_Float64 __x) throw (); 1586: 1586: extern _Float64 atan2f64 (_Float64 __y, _Float64 __x) throw (); extern _Float64 __atan2f64 (_Float64 __y, _Float64 __x) throw (); 1586: 1586: 1586: extern _Float64 cosf64 (_Float64 __x) throw (); extern _Float64 __cosf64 (_Float64 __x) throw (); 1586: 1586: extern _Float64 sinf64 (_Float64 __x) throw (); extern _Float64 __sinf64 (_Float64 __x) throw (); 1586: 1586: extern _Float64 tanf64 (_Float64 __x) throw (); extern _Float64 __tanf64 (_Float64 __x) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float64 coshf64 (_Float64 __x) throw (); extern _Float64 __coshf64 (_Float64 __x) throw (); 1586: 1586: extern _Float64 sinhf64 (_Float64 __x) throw (); extern _Float64 __sinhf64 (_Float64 __x) throw (); 1586: 1586: extern _Float64 tanhf64 (_Float64 __x) throw (); extern _Float64 __tanhf64 (_Float64 __x) throw (); 1586: 1586: 1586: 1586: extern void sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) throw (); extern void __sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) throw () 1586: ; 1586: 1586: 1586: 1586: 1586: extern _Float64 acoshf64 (_Float64 __x) throw (); extern _Float64 __acoshf64 (_Float64 __x) throw (); 1586: 1586: extern _Float64 asinhf64 (_Float64 __x) throw (); extern _Float64 __asinhf64 (_Float64 __x) throw (); 1586: 1586: extern _Float64 atanhf64 (_Float64 __x) throw (); extern _Float64 __atanhf64 (_Float64 __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern _Float64 expf64 (_Float64 __x) throw (); extern _Float64 __expf64 (_Float64 __x) throw (); 1586: 1586: 1586: extern _Float64 frexpf64 (_Float64 __x, int *__exponent) throw (); extern _Float64 __frexpf64 (_Float64 __x, int *__exponent) throw (); 1586: 1586: 1586: extern _Float64 ldexpf64 (_Float64 __x, int __exponent) throw (); extern _Float64 __ldexpf64 (_Float64 __x, int __exponent) throw (); 1586: 1586: 1586: extern _Float64 logf64 (_Float64 __x) throw (); extern _Float64 __logf64 (_Float64 __x) throw (); 1586: 1586: 1586: extern _Float64 log10f64 (_Float64 __x) throw (); extern _Float64 __log10f64 (_Float64 __x) throw (); 1586: 1586: 1586: extern _Float64 modff64 (_Float64 __x, _Float64 *__iptr) throw (); extern _Float64 __modff64 (_Float64 __x, _Float64 *__iptr) throw () __attribute__ ((__nonnull__ (2))); 1586: 1586: 1586: 1586: extern _Float64 exp10f64 (_Float64 __x) throw (); extern _Float64 __exp10f64 (_Float64 __x) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float64 expm1f64 (_Float64 __x) throw (); extern _Float64 __expm1f64 (_Float64 __x) throw (); 1586: 1586: 1586: extern _Float64 log1pf64 (_Float64 __x) throw (); extern _Float64 __log1pf64 (_Float64 __x) throw (); 1586: 1586: 1586: extern _Float64 logbf64 (_Float64 __x) throw (); extern _Float64 __logbf64 (_Float64 __x) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float64 exp2f64 (_Float64 __x) throw (); extern _Float64 __exp2f64 (_Float64 __x) throw (); 1586: 1586: 1586: extern _Float64 log2f64 (_Float64 __x) throw (); extern _Float64 __log2f64 (_Float64 __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern _Float64 powf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __powf64 (_Float64 __x, _Float64 __y) throw (); 1586: 1586: 1586: extern _Float64 sqrtf64 (_Float64 __x) throw (); extern _Float64 __sqrtf64 (_Float64 __x) throw (); 1586: 1586: 1586: 1586: extern _Float64 hypotf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __hypotf64 (_Float64 __x, _Float64 __y) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float64 cbrtf64 (_Float64 __x) throw (); extern _Float64 __cbrtf64 (_Float64 __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern _Float64 ceilf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __ceilf64 (_Float64 __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern _Float64 fabsf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __fabsf64 (_Float64 __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern _Float64 floorf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __floorf64 (_Float64 __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern _Float64 fmodf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __fmodf64 (_Float64 __x, _Float64 __y) throw (); 1586: # 196 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern _Float64 copysignf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __copysignf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: 1586: extern _Float64 nanf64 (const char *__tagb) throw (); extern _Float64 __nanf64 (const char *__tagb) throw (); 1586: # 217 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern _Float64 j0f64 (_Float64) throw (); extern _Float64 __j0f64 (_Float64) throw (); 1586: extern _Float64 j1f64 (_Float64) throw (); extern _Float64 __j1f64 (_Float64) throw (); 1586: extern _Float64 jnf64 (int, _Float64) throw (); extern _Float64 __jnf64 (int, _Float64) throw (); 1586: extern _Float64 y0f64 (_Float64) throw (); extern _Float64 __y0f64 (_Float64) throw (); 1586: extern _Float64 y1f64 (_Float64) throw (); extern _Float64 __y1f64 (_Float64) throw (); 1586: extern _Float64 ynf64 (int, _Float64) throw (); extern _Float64 __ynf64 (int, _Float64) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern _Float64 erff64 (_Float64) throw (); extern _Float64 __erff64 (_Float64) throw (); 1586: extern _Float64 erfcf64 (_Float64) throw (); extern _Float64 __erfcf64 (_Float64) throw (); 1586: extern _Float64 lgammaf64 (_Float64) throw (); extern _Float64 __lgammaf64 (_Float64) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float64 tgammaf64 (_Float64) throw (); extern _Float64 __tgammaf64 (_Float64) throw (); 1586: # 249 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern _Float64 lgammaf64_r (_Float64, int *__signgamp) throw (); extern _Float64 __lgammaf64_r (_Float64, int *__signgamp) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern _Float64 rintf64 (_Float64 __x) throw (); extern _Float64 __rintf64 (_Float64 __x) throw (); 1586: 1586: 1586: extern _Float64 nextafterf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __nextafterf64 (_Float64 __x, _Float64 __y) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern _Float64 nextdownf64 (_Float64 __x) throw (); extern _Float64 __nextdownf64 (_Float64 __x) throw (); 1586: 1586: extern _Float64 nextupf64 (_Float64 __x) throw (); extern _Float64 __nextupf64 (_Float64 __x) throw (); 1586: 1586: 1586: 1586: extern _Float64 remainderf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __remainderf64 (_Float64 __x, _Float64 __y) throw (); 1586: 1586: 1586: 1586: extern _Float64 scalbnf64 (_Float64 __x, int __n) throw (); extern _Float64 __scalbnf64 (_Float64 __x, int __n) throw (); 1586: 1586: 1586: 1586: extern int ilogbf64 (_Float64 __x) throw (); extern int __ilogbf64 (_Float64 __x) throw (); 1586: 1586: 1586: 1586: 1586: extern long int llogbf64 (_Float64 __x) throw (); extern long int __llogbf64 (_Float64 __x) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float64 scalblnf64 (_Float64 __x, long int __n) throw (); extern _Float64 __scalblnf64 (_Float64 __x, long int __n) throw (); 1586: 1586: 1586: 1586: extern _Float64 nearbyintf64 (_Float64 __x) throw (); extern _Float64 __nearbyintf64 (_Float64 __x) throw (); 1586: 1586: 1586: 1586: extern _Float64 roundf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __roundf64 (_Float64 __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: extern _Float64 truncf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __truncf64 (_Float64 __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: 1586: extern _Float64 remquof64 (_Float64 __x, _Float64 __y, int *__quo) throw (); extern _Float64 __remquof64 (_Float64 __x, _Float64 __y, int *__quo) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern long int lrintf64 (_Float64 __x) throw (); extern long int __lrintf64 (_Float64 __x) throw (); 1586: __extension__ 1586: extern long long int llrintf64 (_Float64 __x) throw (); extern long long int __llrintf64 (_Float64 __x) throw (); 1586: 1586: 1586: 1586: extern long int lroundf64 (_Float64 __x) throw (); extern long int __lroundf64 (_Float64 __x) throw (); 1586: __extension__ 1586: extern long long int llroundf64 (_Float64 __x) throw (); extern long long int __llroundf64 (_Float64 __x) throw (); 1586: 1586: 1586: 1586: extern _Float64 fdimf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __fdimf64 (_Float64 __x, _Float64 __y) throw (); 1586: 1586: 1586: extern _Float64 fmaxf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fmaxf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern _Float64 fminf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fminf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern _Float64 fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) throw (); extern _Float64 __fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float64 roundevenf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __roundevenf64 (_Float64 __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: extern __intmax_t fromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf64 (_Float64 __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: 1586: extern __uintmax_t ufromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf64 (_Float64 __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: 1586: 1586: extern __intmax_t fromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: 1586: 1586: extern __uintmax_t ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: extern _Float64 fmaxmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fmaxmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern _Float64 fminmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fminmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern int canonicalizef64 (_Float64 *__cx, const _Float64 *__x) throw (); 1586: 1586: 1586: 1586: 1586: extern int totalorderf64 (const _Float64 *__x, const _Float64 *__y) throw () 1586: 1586: __attribute__ ((__pure__)); 1586: 1586: 1586: extern int totalordermagf64 (const _Float64 *__x, const _Float64 *__y) throw () 1586: 1586: __attribute__ ((__pure__)); 1586: 1586: 1586: extern _Float64 getpayloadf64 (const _Float64 *__x) throw (); extern _Float64 __getpayloadf64 (const _Float64 *__x) throw (); 1586: 1586: 1586: extern int setpayloadf64 (_Float64 *__x, _Float64 __payload) throw (); 1586: 1586: 1586: extern int setpayloadsigf64 (_Float64 *__x, _Float64 __payload) throw (); 1586: # 407 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 440 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 1 3 1586: # 53 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern _Float32x acosf32x (_Float32x __x) throw (); extern _Float32x __acosf32x (_Float32x __x) throw (); 1586: 1586: extern _Float32x asinf32x (_Float32x __x) throw (); extern _Float32x __asinf32x (_Float32x __x) throw (); 1586: 1586: extern _Float32x atanf32x (_Float32x __x) throw (); extern _Float32x __atanf32x (_Float32x __x) throw (); 1586: 1586: extern _Float32x atan2f32x (_Float32x __y, _Float32x __x) throw (); extern _Float32x __atan2f32x (_Float32x __y, _Float32x __x) throw (); 1586: 1586: 1586: extern _Float32x cosf32x (_Float32x __x) throw (); extern _Float32x __cosf32x (_Float32x __x) throw (); 1586: 1586: extern _Float32x sinf32x (_Float32x __x) throw (); extern _Float32x __sinf32x (_Float32x __x) throw (); 1586: 1586: extern _Float32x tanf32x (_Float32x __x) throw (); extern _Float32x __tanf32x (_Float32x __x) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float32x coshf32x (_Float32x __x) throw (); extern _Float32x __coshf32x (_Float32x __x) throw (); 1586: 1586: extern _Float32x sinhf32x (_Float32x __x) throw (); extern _Float32x __sinhf32x (_Float32x __x) throw (); 1586: 1586: extern _Float32x tanhf32x (_Float32x __x) throw (); extern _Float32x __tanhf32x (_Float32x __x) throw (); 1586: 1586: 1586: 1586: extern void sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) throw (); extern void __sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) throw () 1586: ; 1586: 1586: 1586: 1586: 1586: extern _Float32x acoshf32x (_Float32x __x) throw (); extern _Float32x __acoshf32x (_Float32x __x) throw (); 1586: 1586: extern _Float32x asinhf32x (_Float32x __x) throw (); extern _Float32x __asinhf32x (_Float32x __x) throw (); 1586: 1586: extern _Float32x atanhf32x (_Float32x __x) throw (); extern _Float32x __atanhf32x (_Float32x __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern _Float32x expf32x (_Float32x __x) throw (); extern _Float32x __expf32x (_Float32x __x) throw (); 1586: 1586: 1586: extern _Float32x frexpf32x (_Float32x __x, int *__exponent) throw (); extern _Float32x __frexpf32x (_Float32x __x, int *__exponent) throw (); 1586: 1586: 1586: extern _Float32x ldexpf32x (_Float32x __x, int __exponent) throw (); extern _Float32x __ldexpf32x (_Float32x __x, int __exponent) throw (); 1586: 1586: 1586: extern _Float32x logf32x (_Float32x __x) throw (); extern _Float32x __logf32x (_Float32x __x) throw (); 1586: 1586: 1586: extern _Float32x log10f32x (_Float32x __x) throw (); extern _Float32x __log10f32x (_Float32x __x) throw (); 1586: 1586: 1586: extern _Float32x modff32x (_Float32x __x, _Float32x *__iptr) throw (); extern _Float32x __modff32x (_Float32x __x, _Float32x *__iptr) throw () __attribute__ ((__nonnull__ (2))); 1586: 1586: 1586: 1586: extern _Float32x exp10f32x (_Float32x __x) throw (); extern _Float32x __exp10f32x (_Float32x __x) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float32x expm1f32x (_Float32x __x) throw (); extern _Float32x __expm1f32x (_Float32x __x) throw (); 1586: 1586: 1586: extern _Float32x log1pf32x (_Float32x __x) throw (); extern _Float32x __log1pf32x (_Float32x __x) throw (); 1586: 1586: 1586: extern _Float32x logbf32x (_Float32x __x) throw (); extern _Float32x __logbf32x (_Float32x __x) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float32x exp2f32x (_Float32x __x) throw (); extern _Float32x __exp2f32x (_Float32x __x) throw (); 1586: 1586: 1586: extern _Float32x log2f32x (_Float32x __x) throw (); extern _Float32x __log2f32x (_Float32x __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern _Float32x powf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __powf32x (_Float32x __x, _Float32x __y) throw (); 1586: 1586: 1586: extern _Float32x sqrtf32x (_Float32x __x) throw (); extern _Float32x __sqrtf32x (_Float32x __x) throw (); 1586: 1586: 1586: 1586: extern _Float32x hypotf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __hypotf32x (_Float32x __x, _Float32x __y) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float32x cbrtf32x (_Float32x __x) throw (); extern _Float32x __cbrtf32x (_Float32x __x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern _Float32x ceilf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __ceilf32x (_Float32x __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern _Float32x fabsf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __fabsf32x (_Float32x __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern _Float32x floorf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __floorf32x (_Float32x __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern _Float32x fmodf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __fmodf32x (_Float32x __x, _Float32x __y) throw (); 1586: # 196 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern _Float32x copysignf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __copysignf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: 1586: extern _Float32x nanf32x (const char *__tagb) throw (); extern _Float32x __nanf32x (const char *__tagb) throw (); 1586: # 217 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern _Float32x j0f32x (_Float32x) throw (); extern _Float32x __j0f32x (_Float32x) throw (); 1586: extern _Float32x j1f32x (_Float32x) throw (); extern _Float32x __j1f32x (_Float32x) throw (); 1586: extern _Float32x jnf32x (int, _Float32x) throw (); extern _Float32x __jnf32x (int, _Float32x) throw (); 1586: extern _Float32x y0f32x (_Float32x) throw (); extern _Float32x __y0f32x (_Float32x) throw (); 1586: extern _Float32x y1f32x (_Float32x) throw (); extern _Float32x __y1f32x (_Float32x) throw (); 1586: extern _Float32x ynf32x (int, _Float32x) throw (); extern _Float32x __ynf32x (int, _Float32x) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern _Float32x erff32x (_Float32x) throw (); extern _Float32x __erff32x (_Float32x) throw (); 1586: extern _Float32x erfcf32x (_Float32x) throw (); extern _Float32x __erfcf32x (_Float32x) throw (); 1586: extern _Float32x lgammaf32x (_Float32x) throw (); extern _Float32x __lgammaf32x (_Float32x) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float32x tgammaf32x (_Float32x) throw (); extern _Float32x __tgammaf32x (_Float32x) throw (); 1586: # 249 "/usr/mipsel-linux-gnu/include/bits/mathcalls.h" 3 1586: extern _Float32x lgammaf32x_r (_Float32x, int *__signgamp) throw (); extern _Float32x __lgammaf32x_r (_Float32x, int *__signgamp) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern _Float32x rintf32x (_Float32x __x) throw (); extern _Float32x __rintf32x (_Float32x __x) throw (); 1586: 1586: 1586: extern _Float32x nextafterf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __nextafterf32x (_Float32x __x, _Float32x __y) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern _Float32x nextdownf32x (_Float32x __x) throw (); extern _Float32x __nextdownf32x (_Float32x __x) throw (); 1586: 1586: extern _Float32x nextupf32x (_Float32x __x) throw (); extern _Float32x __nextupf32x (_Float32x __x) throw (); 1586: 1586: 1586: 1586: extern _Float32x remainderf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __remainderf32x (_Float32x __x, _Float32x __y) throw (); 1586: 1586: 1586: 1586: extern _Float32x scalbnf32x (_Float32x __x, int __n) throw (); extern _Float32x __scalbnf32x (_Float32x __x, int __n) throw (); 1586: 1586: 1586: 1586: extern int ilogbf32x (_Float32x __x) throw (); extern int __ilogbf32x (_Float32x __x) throw (); 1586: 1586: 1586: 1586: 1586: extern long int llogbf32x (_Float32x __x) throw (); extern long int __llogbf32x (_Float32x __x) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float32x scalblnf32x (_Float32x __x, long int __n) throw (); extern _Float32x __scalblnf32x (_Float32x __x, long int __n) throw (); 1586: 1586: 1586: 1586: extern _Float32x nearbyintf32x (_Float32x __x) throw (); extern _Float32x __nearbyintf32x (_Float32x __x) throw (); 1586: 1586: 1586: 1586: extern _Float32x roundf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __roundf32x (_Float32x __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: extern _Float32x truncf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __truncf32x (_Float32x __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: 1586: extern _Float32x remquof32x (_Float32x __x, _Float32x __y, int *__quo) throw (); extern _Float32x __remquof32x (_Float32x __x, _Float32x __y, int *__quo) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern long int lrintf32x (_Float32x __x) throw (); extern long int __lrintf32x (_Float32x __x) throw (); 1586: __extension__ 1586: extern long long int llrintf32x (_Float32x __x) throw (); extern long long int __llrintf32x (_Float32x __x) throw (); 1586: 1586: 1586: 1586: extern long int lroundf32x (_Float32x __x) throw (); extern long int __lroundf32x (_Float32x __x) throw (); 1586: __extension__ 1586: extern long long int llroundf32x (_Float32x __x) throw (); extern long long int __llroundf32x (_Float32x __x) throw (); 1586: 1586: 1586: 1586: extern _Float32x fdimf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __fdimf32x (_Float32x __x, _Float32x __y) throw (); 1586: 1586: 1586: extern _Float32x fmaxf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fmaxf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern _Float32x fminf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fminf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern _Float32x fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) throw (); extern _Float32x __fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) throw (); 1586: 1586: 1586: 1586: 1586: extern _Float32x roundevenf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __roundevenf32x (_Float32x __x) throw () __attribute__ ((__const__)); 1586: 1586: 1586: 1586: extern __intmax_t fromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf32x (_Float32x __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: 1586: extern __uintmax_t ufromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf32x (_Float32x __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: 1586: 1586: extern __intmax_t fromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: 1586: 1586: extern __uintmax_t ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw () 1586: ; 1586: 1586: 1586: extern _Float32x fmaxmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fmaxmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern _Float32x fminmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fminmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); 1586: 1586: 1586: extern int canonicalizef32x (_Float32x *__cx, const _Float32x *__x) throw (); 1586: 1586: 1586: 1586: 1586: extern int totalorderf32x (const _Float32x *__x, const _Float32x *__y) throw () 1586: 1586: __attribute__ ((__pure__)); 1586: 1586: 1586: extern int totalordermagf32x (const _Float32x *__x, const _Float32x *__y) throw () 1586: 1586: __attribute__ ((__pure__)); 1586: 1586: 1586: extern _Float32x getpayloadf32x (const _Float32x *__x) throw (); extern _Float32x __getpayloadf32x (const _Float32x *__x) throw (); 1586: 1586: 1586: extern int setpayloadf32x (_Float32x *__x, _Float32x __payload) throw (); 1586: 1586: 1586: extern int setpayloadsigf32x (_Float32x *__x, _Float32x __payload) throw (); 1586: # 441 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 503 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 1586: # 24 "/usr/mipsel-linux-gnu/include/bits/mathcalls-narrow.h" 3 1586: extern float fadd (double __x, double __y) throw (); 1586: 1586: 1586: extern float fdiv (double __x, double __y) throw (); 1586: 1586: 1586: extern float fmul (double __x, double __y) throw (); 1586: 1586: 1586: extern float fsub (double __x, double __y) throw (); 1586: # 504 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 517 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 1586: # 24 "/usr/mipsel-linux-gnu/include/bits/mathcalls-narrow.h" 3 1586: extern float faddl (long double __x, long double __y) throw (); 1586: 1586: 1586: extern float fdivl (long double __x, long double __y) throw (); 1586: 1586: 1586: extern float fmull (long double __x, long double __y) throw (); 1586: 1586: 1586: extern float fsubl (long double __x, long double __y) throw (); 1586: # 518 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 537 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 1586: # 24 "/usr/mipsel-linux-gnu/include/bits/mathcalls-narrow.h" 3 1586: extern double daddl (long double __x, long double __y) throw (); 1586: 1586: 1586: extern double ddivl (long double __x, long double __y) throw (); 1586: 1586: 1586: extern double dmull (long double __x, long double __y) throw (); 1586: 1586: 1586: extern double dsubl (long double __x, long double __y) throw (); 1586: # 538 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 616 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 1586: # 24 "/usr/mipsel-linux-gnu/include/bits/mathcalls-narrow.h" 3 1586: extern _Float32 f32addf32x (_Float32x __x, _Float32x __y) throw (); 1586: 1586: 1586: extern _Float32 f32divf32x (_Float32x __x, _Float32x __y) throw (); 1586: 1586: 1586: extern _Float32 f32mulf32x (_Float32x __x, _Float32x __y) throw (); 1586: 1586: 1586: extern _Float32 f32subf32x (_Float32x __x, _Float32x __y) throw (); 1586: # 617 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 626 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 1586: # 24 "/usr/mipsel-linux-gnu/include/bits/mathcalls-narrow.h" 3 1586: extern _Float32 f32addf64 (_Float64 __x, _Float64 __y) throw (); 1586: 1586: 1586: extern _Float32 f32divf64 (_Float64 __x, _Float64 __y) throw (); 1586: 1586: 1586: extern _Float32 f32mulf64 (_Float64 __x, _Float64 __y) throw (); 1586: 1586: 1586: extern _Float32 f32subf64 (_Float64 __x, _Float64 __y) throw (); 1586: # 627 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 666 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/mathcalls-narrow.h" 1 3 1586: # 24 "/usr/mipsel-linux-gnu/include/bits/mathcalls-narrow.h" 3 1586: extern _Float32x f32xaddf64 (_Float64 __x, _Float64 __y) throw (); 1586: 1586: 1586: extern _Float32x f32xdivf64 (_Float64 __x, _Float64 __y) throw (); 1586: 1586: 1586: extern _Float32x f32xmulf64 (_Float64 __x, _Float64 __y) throw (); 1586: 1586: 1586: extern _Float32x f32xsubf64 (_Float64 __x, _Float64 __y) throw (); 1586: # 667 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 773 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: extern int signgam; 1586: # 853 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: enum 1586: { 1586: FP_NAN = 1586: 1586: 0, 1586: FP_INFINITE = 1586: 1586: 1, 1586: FP_ZERO = 1586: 1586: 2, 1586: FP_SUBNORMAL = 1586: 1586: 3, 1586: FP_NORMAL = 1586: 1586: 4 1586: }; 1586: # 973 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/iscanonical.h" 1 3 1586: # 974 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 985 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: extern "C++" { 1586: inline int issignaling (float __val) { return __issignalingf (__val); } 1586: inline int issignaling (double __val) { return __issignaling (__val); } 1586: inline int 1586: issignaling (long double __val) 1586: { 1586: 1586: return __issignaling (__val); 1586: 1586: 1586: 1586: } 1586: 1586: 1586: 1586: 1586: 1586: } 1586: # 1016 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: extern "C++" { 1586: # 1047 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: template inline bool 1586: iszero (__T __val) 1586: { 1586: return __val == 0; 1586: } 1586: 1586: } 1586: # 1245 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/mathinline.h" 1 3 1586: # 1246 "/usr/mipsel-linux-gnu/include/math.h" 2 3 1586: # 1278 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: extern "C++" { 1586: template struct __iseqsig_type; 1586: 1586: template<> struct __iseqsig_type 1586: { 1586: static int __call (float __x, float __y) throw () 1586: { 1586: return __iseqsigf (__x, __y); 1586: } 1586: }; 1586: 1586: template<> struct __iseqsig_type 1586: { 1586: static int __call (double __x, double __y) throw () 1586: { 1586: return __iseqsig (__x, __y); 1586: } 1586: }; 1586: 1586: template<> struct __iseqsig_type 1586: { 1586: static int __call (long double __x, long double __y) throw () 1586: { 1586: 1586: 1586: 1586: return __iseqsig (__x, __y); 1586: 1586: } 1586: }; 1586: # 1321 "/usr/mipsel-linux-gnu/include/math.h" 3 1586: template 1586: inline int 1586: iseqsig (_T1 __x, _T2 __y) throw () 1586: { 1586: 1586: typedef decltype (((__x) + (__y) + 0.0f)) _T3; 1586: 1586: 1586: 1586: return __iseqsig_type<_T3>::__call (__x, __y); 1586: } 1586: 1586: } 1586: 1586: 1586: 1586: 1586: } 1586: # 46 "/usr/mipsel-linux-gnu/include/c++/9/cmath" 2 3 1586: # 77 "/usr/mipsel-linux-gnu/include/c++/9/cmath" 3 1586: extern "C++" 1586: { 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: using ::acos; 1586: 1586: 1586: inline constexpr float 1586: acos(float __x) 1586: { return __builtin_acosf(__x); } 1586: 1586: inline constexpr long double 1586: acos(long double __x) 1586: { return __builtin_acosl(__x); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: acos(_Tp __x) 1586: { return __builtin_acos(__x); } 1586: 1586: using ::asin; 1586: 1586: 1586: inline constexpr float 1586: asin(float __x) 1586: { return __builtin_asinf(__x); } 1586: 1586: inline constexpr long double 1586: asin(long double __x) 1586: { return __builtin_asinl(__x); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: asin(_Tp __x) 1586: { return __builtin_asin(__x); } 1586: 1586: using ::atan; 1586: 1586: 1586: inline constexpr float 1586: atan(float __x) 1586: { return __builtin_atanf(__x); } 1586: 1586: inline constexpr long double 1586: atan(long double __x) 1586: { return __builtin_atanl(__x); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: atan(_Tp __x) 1586: { return __builtin_atan(__x); } 1586: 1586: using ::atan2; 1586: 1586: 1586: inline constexpr float 1586: atan2(float __y, float __x) 1586: { return __builtin_atan2f(__y, __x); } 1586: 1586: inline constexpr long double 1586: atan2(long double __y, long double __x) 1586: { return __builtin_atan2l(__y, __x); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 1586: atan2(_Tp __y, _Up __x) 1586: { 1586: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 1586: return atan2(__type(__y), __type(__x)); 1586: } 1586: 1586: using ::ceil; 1586: 1586: 1586: inline constexpr float 1586: ceil(float __x) 1586: { return __builtin_ceilf(__x); } 1586: 1586: inline constexpr long double 1586: ceil(long double __x) 1586: { return __builtin_ceill(__x); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: ceil(_Tp __x) 1586: { return __builtin_ceil(__x); } 1586: 1586: using ::cos; 1586: 1586: 1586: inline constexpr float 1586: cos(float __x) 1586: { return __builtin_cosf(__x); } 1586: 1586: inline constexpr long double 1586: cos(long double __x) 1586: { return __builtin_cosl(__x); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: cos(_Tp __x) 1586: { return __builtin_cos(__x); } 1586: 1586: using ::cosh; 1586: 1586: 1586: inline constexpr float 1586: cosh(float __x) 1586: { return __builtin_coshf(__x); } 1586: 1586: inline constexpr long double 1586: cosh(long double __x) 1586: { return __builtin_coshl(__x); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: cosh(_Tp __x) 1586: { return __builtin_cosh(__x); } 1586: 1586: using ::exp; 1586: 1586: 1586: inline constexpr float 1586: exp(float __x) 1586: { return __builtin_expf(__x); } 1586: 1586: inline constexpr long double 1586: exp(long double __x) 1586: { return __builtin_expl(__x); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: exp(_Tp __x) 1586: { return __builtin_exp(__x); } 1586: 1586: using ::fabs; 1586: 1586: 1586: inline constexpr float 1586: fabs(float __x) 1586: { return __builtin_fabsf(__x); } 1586: 1586: inline constexpr long double 1586: fabs(long double __x) 1586: { return __builtin_fabsl(__x); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: fabs(_Tp __x) 1586: { return __builtin_fabs(__x); } 1586: 1586: using ::floor; 1586: 1586: 1586: inline constexpr float 1586: floor(float __x) 1586: { return __builtin_floorf(__x); } 1586: 1586: inline constexpr long double 1586: floor(long double __x) 1586: { return __builtin_floorl(__x); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: floor(_Tp __x) 1586: { return __builtin_floor(__x); } 1586: 1586: using ::fmod; 1586: 1586: 1586: inline constexpr float 1586: fmod(float __x, float __y) 1586: { return __builtin_fmodf(__x, __y); } 1586: 1586: inline constexpr long double 1586: fmod(long double __x, long double __y) 1586: { return __builtin_fmodl(__x, __y); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 1586: fmod(_Tp __x, _Up __y) 1586: { 1586: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 1586: return fmod(__type(__x), __type(__y)); 1586: } 1586: 1586: using ::frexp; 1586: 1586: 1586: inline float 1586: frexp(float __x, int* __exp) 1586: { return __builtin_frexpf(__x, __exp); } 1586: 1586: inline long double 1586: frexp(long double __x, int* __exp) 1586: { return __builtin_frexpl(__x, __exp); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: frexp(_Tp __x, int* __exp) 1586: { return __builtin_frexp(__x, __exp); } 1586: 1586: using ::ldexp; 1586: 1586: 1586: inline constexpr float 1586: ldexp(float __x, int __exp) 1586: { return __builtin_ldexpf(__x, __exp); } 1586: 1586: inline constexpr long double 1586: ldexp(long double __x, int __exp) 1586: { return __builtin_ldexpl(__x, __exp); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: ldexp(_Tp __x, int __exp) 1586: { return __builtin_ldexp(__x, __exp); } 1586: 1586: using ::log; 1586: 1586: 1586: inline constexpr float 1586: log(float __x) 1586: { return __builtin_logf(__x); } 1586: 1586: inline constexpr long double 1586: log(long double __x) 1586: { return __builtin_logl(__x); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: log(_Tp __x) 1586: { return __builtin_log(__x); } 1586: 1586: using ::log10; 1586: 1586: 1586: inline constexpr float 1586: log10(float __x) 1586: { return __builtin_log10f(__x); } 1586: 1586: inline constexpr long double 1586: log10(long double __x) 1586: { return __builtin_log10l(__x); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: log10(_Tp __x) 1586: { return __builtin_log10(__x); } 1586: 1586: using ::modf; 1586: 1586: 1586: inline float 1586: modf(float __x, float* __iptr) 1586: { return __builtin_modff(__x, __iptr); } 1586: 1586: inline long double 1586: modf(long double __x, long double* __iptr) 1586: { return __builtin_modfl(__x, __iptr); } 1586: 1586: 1586: using ::pow; 1586: 1586: 1586: inline constexpr float 1586: pow(float __x, float __y) 1586: { return __builtin_powf(__x, __y); } 1586: 1586: inline constexpr long double 1586: pow(long double __x, long double __y) 1586: { return __builtin_powl(__x, __y); } 1586: # 412 "/usr/mipsel-linux-gnu/include/c++/9/cmath" 3 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 1586: pow(_Tp __x, _Up __y) 1586: { 1586: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 1586: return pow(__type(__x), __type(__y)); 1586: } 1586: 1586: using ::sin; 1586: 1586: 1586: inline constexpr float 1586: sin(float __x) 1586: { return __builtin_sinf(__x); } 1586: 1586: inline constexpr long double 1586: sin(long double __x) 1586: { return __builtin_sinl(__x); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: sin(_Tp __x) 1586: { return __builtin_sin(__x); } 1586: 1586: using ::sinh; 1586: 1586: 1586: inline constexpr float 1586: sinh(float __x) 1586: { return __builtin_sinhf(__x); } 1586: 1586: inline constexpr long double 1586: sinh(long double __x) 1586: { return __builtin_sinhl(__x); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: sinh(_Tp __x) 1586: { return __builtin_sinh(__x); } 1586: 1586: using ::sqrt; 1586: 1586: 1586: inline constexpr float 1586: sqrt(float __x) 1586: { return __builtin_sqrtf(__x); } 1586: 1586: inline constexpr long double 1586: sqrt(long double __x) 1586: { return __builtin_sqrtl(__x); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: sqrt(_Tp __x) 1586: { return __builtin_sqrt(__x); } 1586: 1586: using ::tan; 1586: 1586: 1586: inline constexpr float 1586: tan(float __x) 1586: { return __builtin_tanf(__x); } 1586: 1586: inline constexpr long double 1586: tan(long double __x) 1586: { return __builtin_tanl(__x); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: tan(_Tp __x) 1586: { return __builtin_tan(__x); } 1586: 1586: using ::tanh; 1586: 1586: 1586: inline constexpr float 1586: tanh(float __x) 1586: { return __builtin_tanhf(__x); } 1586: 1586: inline constexpr long double 1586: tanh(long double __x) 1586: { return __builtin_tanhl(__x); } 1586: 1586: 1586: template 1586: inline constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: tanh(_Tp __x) 1586: { return __builtin_tanh(__x); } 1586: # 536 "/usr/mipsel-linux-gnu/include/c++/9/cmath" 3 1586: constexpr int 1586: fpclassify(float __x) 1586: { return __builtin_fpclassify(0, 1, 4, 1586: 3, 2, __x); } 1586: 1586: constexpr int 1586: fpclassify(double __x) 1586: { return __builtin_fpclassify(0, 1, 4, 1586: 3, 2, __x); } 1586: 1586: constexpr int 1586: fpclassify(long double __x) 1586: { return __builtin_fpclassify(0, 1, 4, 1586: 3, 2, __x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: int>::__type 1586: fpclassify(_Tp __x) 1586: { return __x != 0 ? 4 : 2; } 1586: 1586: 1586: 1586: constexpr bool 1586: isfinite(float __x) 1586: { return __builtin_isfinite(__x); } 1586: 1586: constexpr bool 1586: isfinite(double __x) 1586: { return __builtin_isfinite(__x); } 1586: 1586: constexpr bool 1586: isfinite(long double __x) 1586: { return __builtin_isfinite(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: bool>::__type 1586: isfinite(_Tp __x) 1586: { return true; } 1586: 1586: 1586: 1586: constexpr bool 1586: isinf(float __x) 1586: { return __builtin_isinf(__x); } 1586: 1586: 1586: 1586: 1586: 1586: constexpr bool 1586: isinf(double __x) 1586: { return __builtin_isinf(__x); } 1586: 1586: 1586: constexpr bool 1586: isinf(long double __x) 1586: { return __builtin_isinf(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: bool>::__type 1586: isinf(_Tp __x) 1586: { return false; } 1586: 1586: 1586: 1586: constexpr bool 1586: isnan(float __x) 1586: { return __builtin_isnan(__x); } 1586: 1586: 1586: 1586: 1586: 1586: constexpr bool 1586: isnan(double __x) 1586: { return __builtin_isnan(__x); } 1586: 1586: 1586: constexpr bool 1586: isnan(long double __x) 1586: { return __builtin_isnan(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: bool>::__type 1586: isnan(_Tp __x) 1586: { return false; } 1586: 1586: 1586: 1586: constexpr bool 1586: isnormal(float __x) 1586: { return __builtin_isnormal(__x); } 1586: 1586: constexpr bool 1586: isnormal(double __x) 1586: { return __builtin_isnormal(__x); } 1586: 1586: constexpr bool 1586: isnormal(long double __x) 1586: { return __builtin_isnormal(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: bool>::__type 1586: isnormal(_Tp __x) 1586: { return __x != 0 ? true : false; } 1586: 1586: 1586: 1586: 1586: constexpr bool 1586: signbit(float __x) 1586: { return __builtin_signbit(__x); } 1586: 1586: constexpr bool 1586: signbit(double __x) 1586: { return __builtin_signbit(__x); } 1586: 1586: constexpr bool 1586: signbit(long double __x) 1586: { return __builtin_signbit(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: bool>::__type 1586: signbit(_Tp __x) 1586: { return __x < 0 ? true : false; } 1586: 1586: 1586: 1586: constexpr bool 1586: isgreater(float __x, float __y) 1586: { return __builtin_isgreater(__x, __y); } 1586: 1586: constexpr bool 1586: isgreater(double __x, double __y) 1586: { return __builtin_isgreater(__x, __y); } 1586: 1586: constexpr bool 1586: isgreater(long double __x, long double __y) 1586: { return __builtin_isgreater(__x, __y); } 1586: 1586: 1586: 1586: template 1586: constexpr typename 1586: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 1586: && __is_arithmetic<_Up>::__value), bool>::__type 1586: isgreater(_Tp __x, _Up __y) 1586: { 1586: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 1586: return __builtin_isgreater(__type(__x), __type(__y)); 1586: } 1586: 1586: 1586: 1586: constexpr bool 1586: isgreaterequal(float __x, float __y) 1586: { return __builtin_isgreaterequal(__x, __y); } 1586: 1586: constexpr bool 1586: isgreaterequal(double __x, double __y) 1586: { return __builtin_isgreaterequal(__x, __y); } 1586: 1586: constexpr bool 1586: isgreaterequal(long double __x, long double __y) 1586: { return __builtin_isgreaterequal(__x, __y); } 1586: 1586: 1586: 1586: template 1586: constexpr typename 1586: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 1586: && __is_arithmetic<_Up>::__value), bool>::__type 1586: isgreaterequal(_Tp __x, _Up __y) 1586: { 1586: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 1586: return __builtin_isgreaterequal(__type(__x), __type(__y)); 1586: } 1586: 1586: 1586: 1586: constexpr bool 1586: isless(float __x, float __y) 1586: { return __builtin_isless(__x, __y); } 1586: 1586: constexpr bool 1586: isless(double __x, double __y) 1586: { return __builtin_isless(__x, __y); } 1586: 1586: constexpr bool 1586: isless(long double __x, long double __y) 1586: { return __builtin_isless(__x, __y); } 1586: 1586: 1586: 1586: template 1586: constexpr typename 1586: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 1586: && __is_arithmetic<_Up>::__value), bool>::__type 1586: isless(_Tp __x, _Up __y) 1586: { 1586: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 1586: return __builtin_isless(__type(__x), __type(__y)); 1586: } 1586: 1586: 1586: 1586: constexpr bool 1586: islessequal(float __x, float __y) 1586: { return __builtin_islessequal(__x, __y); } 1586: 1586: constexpr bool 1586: islessequal(double __x, double __y) 1586: { return __builtin_islessequal(__x, __y); } 1586: 1586: constexpr bool 1586: islessequal(long double __x, long double __y) 1586: { return __builtin_islessequal(__x, __y); } 1586: 1586: 1586: 1586: template 1586: constexpr typename 1586: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 1586: && __is_arithmetic<_Up>::__value), bool>::__type 1586: islessequal(_Tp __x, _Up __y) 1586: { 1586: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 1586: return __builtin_islessequal(__type(__x), __type(__y)); 1586: } 1586: 1586: 1586: 1586: constexpr bool 1586: islessgreater(float __x, float __y) 1586: { return __builtin_islessgreater(__x, __y); } 1586: 1586: constexpr bool 1586: islessgreater(double __x, double __y) 1586: { return __builtin_islessgreater(__x, __y); } 1586: 1586: constexpr bool 1586: islessgreater(long double __x, long double __y) 1586: { return __builtin_islessgreater(__x, __y); } 1586: 1586: 1586: 1586: template 1586: constexpr typename 1586: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 1586: && __is_arithmetic<_Up>::__value), bool>::__type 1586: islessgreater(_Tp __x, _Up __y) 1586: { 1586: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 1586: return __builtin_islessgreater(__type(__x), __type(__y)); 1586: } 1586: 1586: 1586: 1586: constexpr bool 1586: isunordered(float __x, float __y) 1586: { return __builtin_isunordered(__x, __y); } 1586: 1586: constexpr bool 1586: isunordered(double __x, double __y) 1586: { return __builtin_isunordered(__x, __y); } 1586: 1586: constexpr bool 1586: isunordered(long double __x, long double __y) 1586: { return __builtin_isunordered(__x, __y); } 1586: 1586: 1586: 1586: template 1586: constexpr typename 1586: __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value 1586: && __is_arithmetic<_Up>::__value), bool>::__type 1586: isunordered(_Tp __x, _Up __y) 1586: { 1586: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 1586: return __builtin_isunordered(__type(__x), __type(__y)); 1586: } 1586: # 1065 "/usr/mipsel-linux-gnu/include/c++/9/cmath" 3 1586: using ::double_t; 1586: using ::float_t; 1586: 1586: 1586: using ::acosh; 1586: using ::acoshf; 1586: using ::acoshl; 1586: 1586: using ::asinh; 1586: using ::asinhf; 1586: using ::asinhl; 1586: 1586: using ::atanh; 1586: using ::atanhf; 1586: using ::atanhl; 1586: 1586: using ::cbrt; 1586: using ::cbrtf; 1586: using ::cbrtl; 1586: 1586: using ::copysign; 1586: using ::copysignf; 1586: using ::copysignl; 1586: 1586: using ::erf; 1586: using ::erff; 1586: using ::erfl; 1586: 1586: using ::erfc; 1586: using ::erfcf; 1586: using ::erfcl; 1586: 1586: using ::exp2; 1586: using ::exp2f; 1586: using ::exp2l; 1586: 1586: using ::expm1; 1586: using ::expm1f; 1586: using ::expm1l; 1586: 1586: using ::fdim; 1586: using ::fdimf; 1586: using ::fdiml; 1586: 1586: using ::fma; 1586: using ::fmaf; 1586: using ::fmal; 1586: 1586: using ::fmax; 1586: using ::fmaxf; 1586: using ::fmaxl; 1586: 1586: using ::fmin; 1586: using ::fminf; 1586: using ::fminl; 1586: 1586: using ::hypot; 1586: using ::hypotf; 1586: using ::hypotl; 1586: 1586: using ::ilogb; 1586: using ::ilogbf; 1586: using ::ilogbl; 1586: 1586: using ::lgamma; 1586: using ::lgammaf; 1586: using ::lgammal; 1586: 1586: 1586: using ::llrint; 1586: using ::llrintf; 1586: using ::llrintl; 1586: 1586: using ::llround; 1586: using ::llroundf; 1586: using ::llroundl; 1586: 1586: 1586: using ::log1p; 1586: using ::log1pf; 1586: using ::log1pl; 1586: 1586: using ::log2; 1586: using ::log2f; 1586: using ::log2l; 1586: 1586: using ::logb; 1586: using ::logbf; 1586: using ::logbl; 1586: 1586: using ::lrint; 1586: using ::lrintf; 1586: using ::lrintl; 1586: 1586: using ::lround; 1586: using ::lroundf; 1586: using ::lroundl; 1586: 1586: using ::nan; 1586: using ::nanf; 1586: using ::nanl; 1586: 1586: using ::nearbyint; 1586: using ::nearbyintf; 1586: using ::nearbyintl; 1586: 1586: using ::nextafter; 1586: using ::nextafterf; 1586: using ::nextafterl; 1586: 1586: using ::nexttoward; 1586: using ::nexttowardf; 1586: using ::nexttowardl; 1586: 1586: using ::remainder; 1586: using ::remainderf; 1586: using ::remainderl; 1586: 1586: using ::remquo; 1586: using ::remquof; 1586: using ::remquol; 1586: 1586: using ::rint; 1586: using ::rintf; 1586: using ::rintl; 1586: 1586: using ::round; 1586: using ::roundf; 1586: using ::roundl; 1586: 1586: using ::scalbln; 1586: using ::scalblnf; 1586: using ::scalblnl; 1586: 1586: using ::scalbn; 1586: using ::scalbnf; 1586: using ::scalbnl; 1586: 1586: using ::tgamma; 1586: using ::tgammaf; 1586: using ::tgammal; 1586: 1586: using ::trunc; 1586: using ::truncf; 1586: using ::truncl; 1586: 1586: 1586: 1586: constexpr float 1586: acosh(float __x) 1586: { return __builtin_acoshf(__x); } 1586: 1586: constexpr long double 1586: acosh(long double __x) 1586: { return __builtin_acoshl(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: acosh(_Tp __x) 1586: { return __builtin_acosh(__x); } 1586: 1586: 1586: 1586: constexpr float 1586: asinh(float __x) 1586: { return __builtin_asinhf(__x); } 1586: 1586: constexpr long double 1586: asinh(long double __x) 1586: { return __builtin_asinhl(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: asinh(_Tp __x) 1586: { return __builtin_asinh(__x); } 1586: 1586: 1586: 1586: constexpr float 1586: atanh(float __x) 1586: { return __builtin_atanhf(__x); } 1586: 1586: constexpr long double 1586: atanh(long double __x) 1586: { return __builtin_atanhl(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: atanh(_Tp __x) 1586: { return __builtin_atanh(__x); } 1586: 1586: 1586: 1586: constexpr float 1586: cbrt(float __x) 1586: { return __builtin_cbrtf(__x); } 1586: 1586: constexpr long double 1586: cbrt(long double __x) 1586: { return __builtin_cbrtl(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: cbrt(_Tp __x) 1586: { return __builtin_cbrt(__x); } 1586: 1586: 1586: 1586: constexpr float 1586: copysign(float __x, float __y) 1586: { return __builtin_copysignf(__x, __y); } 1586: 1586: constexpr long double 1586: copysign(long double __x, long double __y) 1586: { return __builtin_copysignl(__x, __y); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 1586: copysign(_Tp __x, _Up __y) 1586: { 1586: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 1586: return copysign(__type(__x), __type(__y)); 1586: } 1586: 1586: 1586: 1586: constexpr float 1586: erf(float __x) 1586: { return __builtin_erff(__x); } 1586: 1586: constexpr long double 1586: erf(long double __x) 1586: { return __builtin_erfl(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: erf(_Tp __x) 1586: { return __builtin_erf(__x); } 1586: 1586: 1586: 1586: constexpr float 1586: erfc(float __x) 1586: { return __builtin_erfcf(__x); } 1586: 1586: constexpr long double 1586: erfc(long double __x) 1586: { return __builtin_erfcl(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: erfc(_Tp __x) 1586: { return __builtin_erfc(__x); } 1586: 1586: 1586: 1586: constexpr float 1586: exp2(float __x) 1586: { return __builtin_exp2f(__x); } 1586: 1586: constexpr long double 1586: exp2(long double __x) 1586: { return __builtin_exp2l(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: exp2(_Tp __x) 1586: { return __builtin_exp2(__x); } 1586: 1586: 1586: 1586: constexpr float 1586: expm1(float __x) 1586: { return __builtin_expm1f(__x); } 1586: 1586: constexpr long double 1586: expm1(long double __x) 1586: { return __builtin_expm1l(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: expm1(_Tp __x) 1586: { return __builtin_expm1(__x); } 1586: 1586: 1586: 1586: constexpr float 1586: fdim(float __x, float __y) 1586: { return __builtin_fdimf(__x, __y); } 1586: 1586: constexpr long double 1586: fdim(long double __x, long double __y) 1586: { return __builtin_fdiml(__x, __y); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 1586: fdim(_Tp __x, _Up __y) 1586: { 1586: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 1586: return fdim(__type(__x), __type(__y)); 1586: } 1586: 1586: 1586: 1586: constexpr float 1586: fma(float __x, float __y, float __z) 1586: { return __builtin_fmaf(__x, __y, __z); } 1586: 1586: constexpr long double 1586: fma(long double __x, long double __y, long double __z) 1586: { return __builtin_fmal(__x, __y, __z); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type 1586: fma(_Tp __x, _Up __y, _Vp __z) 1586: { 1586: typedef typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type __type; 1586: return fma(__type(__x), __type(__y), __type(__z)); 1586: } 1586: 1586: 1586: 1586: constexpr float 1586: fmax(float __x, float __y) 1586: { return __builtin_fmaxf(__x, __y); } 1586: 1586: constexpr long double 1586: fmax(long double __x, long double __y) 1586: { return __builtin_fmaxl(__x, __y); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 1586: fmax(_Tp __x, _Up __y) 1586: { 1586: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 1586: return fmax(__type(__x), __type(__y)); 1586: } 1586: 1586: 1586: 1586: constexpr float 1586: fmin(float __x, float __y) 1586: { return __builtin_fminf(__x, __y); } 1586: 1586: constexpr long double 1586: fmin(long double __x, long double __y) 1586: { return __builtin_fminl(__x, __y); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 1586: fmin(_Tp __x, _Up __y) 1586: { 1586: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 1586: return fmin(__type(__x), __type(__y)); 1586: } 1586: 1586: 1586: 1586: constexpr float 1586: hypot(float __x, float __y) 1586: { return __builtin_hypotf(__x, __y); } 1586: 1586: constexpr long double 1586: hypot(long double __x, long double __y) 1586: { return __builtin_hypotl(__x, __y); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 1586: hypot(_Tp __x, _Up __y) 1586: { 1586: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 1586: return hypot(__type(__x), __type(__y)); 1586: } 1586: 1586: 1586: 1586: constexpr int 1586: ilogb(float __x) 1586: { return __builtin_ilogbf(__x); } 1586: 1586: constexpr int 1586: ilogb(long double __x) 1586: { return __builtin_ilogbl(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr 1586: typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: int>::__type 1586: ilogb(_Tp __x) 1586: { return __builtin_ilogb(__x); } 1586: 1586: 1586: 1586: constexpr float 1586: lgamma(float __x) 1586: { return __builtin_lgammaf(__x); } 1586: 1586: constexpr long double 1586: lgamma(long double __x) 1586: { return __builtin_lgammal(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: lgamma(_Tp __x) 1586: { return __builtin_lgamma(__x); } 1586: 1586: 1586: 1586: constexpr long long 1586: llrint(float __x) 1586: { return __builtin_llrintf(__x); } 1586: 1586: constexpr long long 1586: llrint(long double __x) 1586: { return __builtin_llrintl(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: long long>::__type 1586: llrint(_Tp __x) 1586: { return __builtin_llrint(__x); } 1586: 1586: 1586: 1586: constexpr long long 1586: llround(float __x) 1586: { return __builtin_llroundf(__x); } 1586: 1586: constexpr long long 1586: llround(long double __x) 1586: { return __builtin_llroundl(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: long long>::__type 1586: llround(_Tp __x) 1586: { return __builtin_llround(__x); } 1586: 1586: 1586: 1586: constexpr float 1586: log1p(float __x) 1586: { return __builtin_log1pf(__x); } 1586: 1586: constexpr long double 1586: log1p(long double __x) 1586: { return __builtin_log1pl(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: log1p(_Tp __x) 1586: { return __builtin_log1p(__x); } 1586: 1586: 1586: 1586: 1586: constexpr float 1586: log2(float __x) 1586: { return __builtin_log2f(__x); } 1586: 1586: constexpr long double 1586: log2(long double __x) 1586: { return __builtin_log2l(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: log2(_Tp __x) 1586: { return __builtin_log2(__x); } 1586: 1586: 1586: 1586: constexpr float 1586: logb(float __x) 1586: { return __builtin_logbf(__x); } 1586: 1586: constexpr long double 1586: logb(long double __x) 1586: { return __builtin_logbl(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: logb(_Tp __x) 1586: { return __builtin_logb(__x); } 1586: 1586: 1586: 1586: constexpr long 1586: lrint(float __x) 1586: { return __builtin_lrintf(__x); } 1586: 1586: constexpr long 1586: lrint(long double __x) 1586: { return __builtin_lrintl(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: long>::__type 1586: lrint(_Tp __x) 1586: { return __builtin_lrint(__x); } 1586: 1586: 1586: 1586: constexpr long 1586: lround(float __x) 1586: { return __builtin_lroundf(__x); } 1586: 1586: constexpr long 1586: lround(long double __x) 1586: { return __builtin_lroundl(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: long>::__type 1586: lround(_Tp __x) 1586: { return __builtin_lround(__x); } 1586: 1586: 1586: 1586: constexpr float 1586: nearbyint(float __x) 1586: { return __builtin_nearbyintf(__x); } 1586: 1586: constexpr long double 1586: nearbyint(long double __x) 1586: { return __builtin_nearbyintl(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: nearbyint(_Tp __x) 1586: { return __builtin_nearbyint(__x); } 1586: 1586: 1586: 1586: constexpr float 1586: nextafter(float __x, float __y) 1586: { return __builtin_nextafterf(__x, __y); } 1586: 1586: constexpr long double 1586: nextafter(long double __x, long double __y) 1586: { return __builtin_nextafterl(__x, __y); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 1586: nextafter(_Tp __x, _Up __y) 1586: { 1586: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 1586: return nextafter(__type(__x), __type(__y)); 1586: } 1586: 1586: 1586: 1586: constexpr float 1586: nexttoward(float __x, long double __y) 1586: { return __builtin_nexttowardf(__x, __y); } 1586: 1586: constexpr long double 1586: nexttoward(long double __x, long double __y) 1586: { return __builtin_nexttowardl(__x, __y); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: nexttoward(_Tp __x, long double __y) 1586: { return __builtin_nexttoward(__x, __y); } 1586: 1586: 1586: 1586: constexpr float 1586: remainder(float __x, float __y) 1586: { return __builtin_remainderf(__x, __y); } 1586: 1586: constexpr long double 1586: remainder(long double __x, long double __y) 1586: { return __builtin_remainderl(__x, __y); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 1586: remainder(_Tp __x, _Up __y) 1586: { 1586: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 1586: return remainder(__type(__x), __type(__y)); 1586: } 1586: 1586: 1586: 1586: inline float 1586: remquo(float __x, float __y, int* __pquo) 1586: { return __builtin_remquof(__x, __y, __pquo); } 1586: 1586: inline long double 1586: remquo(long double __x, long double __y, int* __pquo) 1586: { return __builtin_remquol(__x, __y, __pquo); } 1586: 1586: 1586: 1586: template 1586: inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type 1586: remquo(_Tp __x, _Up __y, int* __pquo) 1586: { 1586: typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; 1586: return remquo(__type(__x), __type(__y), __pquo); 1586: } 1586: 1586: 1586: 1586: constexpr float 1586: rint(float __x) 1586: { return __builtin_rintf(__x); } 1586: 1586: constexpr long double 1586: rint(long double __x) 1586: { return __builtin_rintl(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: rint(_Tp __x) 1586: { return __builtin_rint(__x); } 1586: 1586: 1586: 1586: constexpr float 1586: round(float __x) 1586: { return __builtin_roundf(__x); } 1586: 1586: constexpr long double 1586: round(long double __x) 1586: { return __builtin_roundl(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: round(_Tp __x) 1586: { return __builtin_round(__x); } 1586: 1586: 1586: 1586: constexpr float 1586: scalbln(float __x, long __ex) 1586: { return __builtin_scalblnf(__x, __ex); } 1586: 1586: constexpr long double 1586: scalbln(long double __x, long __ex) 1586: { return __builtin_scalblnl(__x, __ex); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: scalbln(_Tp __x, long __ex) 1586: { return __builtin_scalbln(__x, __ex); } 1586: 1586: 1586: 1586: constexpr float 1586: scalbn(float __x, int __ex) 1586: { return __builtin_scalbnf(__x, __ex); } 1586: 1586: constexpr long double 1586: scalbn(long double __x, int __ex) 1586: { return __builtin_scalbnl(__x, __ex); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: scalbn(_Tp __x, int __ex) 1586: { return __builtin_scalbn(__x, __ex); } 1586: 1586: 1586: 1586: constexpr float 1586: tgamma(float __x) 1586: { return __builtin_tgammaf(__x); } 1586: 1586: constexpr long double 1586: tgamma(long double __x) 1586: { return __builtin_tgammal(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: tgamma(_Tp __x) 1586: { return __builtin_tgamma(__x); } 1586: 1586: 1586: 1586: constexpr float 1586: trunc(float __x) 1586: { return __builtin_truncf(__x); } 1586: 1586: constexpr long double 1586: trunc(long double __x) 1586: { return __builtin_truncl(__x); } 1586: 1586: 1586: 1586: template 1586: constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, 1586: double>::__type 1586: trunc(_Tp __x) 1586: { return __builtin_trunc(__x); } 1586: # 1923 "/usr/mipsel-linux-gnu/include/c++/9/cmath" 3 1586: 1586: } 1586: 1586: 1586: 1586: 1586: 1586: } 1586: # 13 "/<>/include/HepMC3/FourVector.h" 2 1586: 1586: 1586: 1586: 1586: 1586: # 17 "/<>/include/HepMC3/FourVector.h" 1586: namespace HepMC3 { 1586: # 35 "/<>/include/HepMC3/FourVector.h" 1586: class FourVector { 1586: public: 1586: 1586: 1586: FourVector() 1586: : m_v1(0.0), m_v2(0.0), m_v3(0.0), m_v4(0.0) {} 1586: 1586: FourVector(double xx, double yy, double zz, double ee) 1586: : m_v1(xx), m_v2(yy), m_v3(zz), m_v4(ee) {} 1586: 1586: FourVector(const FourVector & v) 1586: : m_v1(v.m_v1), m_v2(v.m_v2), m_v3(v.m_v3), m_v4(v.m_v4) {} 1586: 1586: 1586: 1586: 1586: 1586: 1586: void set(double x1, double x2, double x3, double x4) { 1586: m_v1 = x1; 1586: m_v2 = x2; 1586: m_v3 = x3; 1586: m_v4 = x4; 1586: } 1586: 1586: 1586: 1586: double x() const { return m_v1; } 1586: 1586: void set_x(double xx) { m_v1 = xx; } 1586: 1586: void setX(double xx) { set_x(xx); } 1586: 1586: 1586: double y() const { return m_v2; } 1586: 1586: void set_y(double yy) { m_v2 = yy; } 1586: 1586: void setY(double yy) { set_y(yy); } 1586: 1586: 1586: double z() const { return m_v3; } 1586: 1586: void set_z(double zz) { m_v3 = zz; } 1586: 1586: void setZ(double zz) { set_z(zz); } 1586: 1586: 1586: double t() const { return m_v4; } 1586: 1586: void set_t(double tt) { m_v4 = tt; } 1586: 1586: void setT(double tt) { set_t(tt); } 1586: 1586: 1586: 1586: double px() const { return x(); } 1586: 1586: void set_px(double pxx) { set_x(pxx); } 1586: 1586: void setPx(double pxx) { set_px(pxx); } 1586: 1586: 1586: double py() const { return y(); } 1586: 1586: void set_py(double pyy) { set_y(pyy); } 1586: 1586: void setPy(double pyy) { set_py(pyy); } 1586: 1586: 1586: double pz() const { return z(); } 1586: 1586: void set_pz(double pzz) { set_z(pzz); } 1586: 1586: void setPz(double pzz) { set_pz(pzz); } 1586: 1586: 1586: double e() const { return t(); } 1586: 1586: void set_e(double ee ) { this->set_t(ee); } 1586: 1586: void setE(double ee) { set_e(ee); } 1586: # 125 "/<>/include/HepMC3/FourVector.h" 1586: double length2() const { return x()*x() + y()*y() + z()*z(); } 1586: 1586: double length() const { return sqrt(length2()); } 1586: 1586: double perp2() const { return x()*x() + y()*y(); } 1586: 1586: double perp() const { return sqrt(perp2()); } 1586: 1586: double interval() const { return t()*t() - length2(); } 1586: 1586: 1586: double p3mod2() const { return length2(); } 1586: 1586: double p3mod() const { return length(); } 1586: 1586: double pt2() const { return perp2(); } 1586: 1586: double pt() const { return perp(); } 1586: 1586: double m2() const { return interval(); } 1586: 1586: double m() const { return (m2() > 0.0) ? std::sqrt(m2()) : -std::sqrt(-m2()); } 1586: 1586: 1586: double phi() const { return atan2( y(), x() ); } 1586: 1586: double theta() const { return atan2( perp(), z() ); } 1586: 1586: 1586: 1586: double eta() const { return 0.5*std::log( (p3mod() + pz()) / (p3mod() - pz()) ); } 1586: 1586: double rap() const { return 0.5*std::log( (e() + pz()) / (e() - pz()) ); } 1586: 1586: double abs_eta() const { return std::abs( eta() ); } 1586: 1586: double abs_rap() const { return std::abs( rap() ); } 1586: 1586: 1586: 1586: double pseudoRapidity() const { return eta(); } 1586: # 174 "/<>/include/HepMC3/FourVector.h" 1586: bool is_zero() const { return x() == 0 && y() == 0 && z() == 0 && t() == 0; } 1586: 1586: 1586: double delta_phi(const FourVector &v) const { 1586: double dphi = phi() - v.phi(); 1586: if (dphi != dphi) return dphi; 1586: while (dphi >= 1586: # 180 "/<>/include/HepMC3/FourVector.h" 3 1586: 3.14159265358979323846 1586: # 180 "/<>/include/HepMC3/FourVector.h" 1586: ) dphi -= 2.* 1586: # 180 "/<>/include/HepMC3/FourVector.h" 3 1586: 3.14159265358979323846 1586: # 180 "/<>/include/HepMC3/FourVector.h" 1586: ; 1586: while (dphi < - 1586: # 181 "/<>/include/HepMC3/FourVector.h" 3 1586: 3.14159265358979323846 1586: # 181 "/<>/include/HepMC3/FourVector.h" 1586: ) dphi += 2.* 1586: # 181 "/<>/include/HepMC3/FourVector.h" 3 1586: 3.14159265358979323846 1586: # 181 "/<>/include/HepMC3/FourVector.h" 1586: ; 1586: return dphi; 1586: } 1586: 1586: 1586: double delta_eta(const FourVector &v) const { return eta() - v.eta(); } 1586: 1586: 1586: double delta_rap(const FourVector &v) const { return rap() - v.rap(); } 1586: 1586: 1586: double delta_r2_eta(const FourVector &v) const { 1586: return delta_phi(v)*delta_phi(v) + delta_eta(v)*delta_eta(v); 1586: } 1586: 1586: 1586: double delta_r_eta(const FourVector &v) const { 1586: return sqrt( delta_r2_eta(v) ); 1586: } 1586: 1586: 1586: double delta_r2_rap(const FourVector &v) const { 1586: return delta_phi(v)*delta_phi(v) + delta_rap(v)*delta_rap(v); 1586: } 1586: 1586: 1586: double delta_r_rap(const FourVector &v) const { 1586: return sqrt( delta_r2_rap(v) ); 1586: } 1586: # 218 "/<>/include/HepMC3/FourVector.h" 1586: bool operator==(const FourVector& rhs) const { 1586: return x() == rhs.x() && y() == rhs.y() && z() == rhs.z() && t() == rhs.t(); 1586: } 1586: 1586: bool operator!=(const FourVector& rhs) const { return !(*this == rhs); } 1586: 1586: 1586: FourVector operator+ (const FourVector& rhs) const { 1586: return FourVector( x() + rhs.x(), y() + rhs.y(), z() + rhs.z(), t() + rhs.t() ); 1586: } 1586: 1586: FourVector operator- (const FourVector& rhs) const { 1586: return FourVector( x() - rhs.x(), y() - rhs.y(), z() - rhs.z(), t() - rhs.t() ); 1586: } 1586: 1586: FourVector operator* (const double rhs) const { 1586: return FourVector( x()*rhs, y()*rhs, z()*rhs, t()*rhs ); 1586: } 1586: 1586: FourVector operator/ (const double rhs) const { 1586: return FourVector( x()/rhs, y()/rhs, z()/rhs, t()/rhs ); 1586: } 1586: 1586: 1586: void operator += (const FourVector& rhs) { 1586: setX(x() + rhs.x()); 1586: setY(y() + rhs.y()); 1586: setZ(z() + rhs.z()); 1586: setT(t() + rhs.t()); 1586: } 1586: 1586: void operator -= (const FourVector& rhs) { 1586: setX(x() - rhs.x()); 1586: setY(y() - rhs.y()); 1586: setZ(z() - rhs.z()); 1586: setT(t() - rhs.t()); 1586: } 1586: 1586: void operator *= (const double rhs) { 1586: setX(x()*rhs); 1586: setY(y()*rhs); 1586: setZ(z()*rhs); 1586: setT(t()*rhs); 1586: } 1586: 1586: void operator /= (const double rhs) { 1586: setX(x()/rhs); 1586: setY(y()/rhs); 1586: setZ(z()/rhs); 1586: setT(t()/rhs); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: static const FourVector& ZERO_VECTOR() { 1586: static const FourVector v; 1586: return v; 1586: } 1586: 1586: 1586: private: 1586: 1586: double m_v1; 1586: double m_v2; 1586: double m_v3; 1586: double m_v4; 1586: 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: inline double delta_phi(const FourVector &a, const FourVector &b) { return b.delta_phi(a); } 1586: 1586: 1586: inline double delta_eta(const FourVector &a, const FourVector &b) { return b.delta_eta(a); } 1586: 1586: 1586: inline double delta_rap(const FourVector &a, const FourVector &b) { return b.delta_rap(a); } 1586: 1586: 1586: inline double delta_r2_eta(const FourVector &a, const FourVector &b) { return b.delta_r2_eta(a); } 1586: 1586: 1586: inline double delta_r_eta(const FourVector &a, const FourVector &b) { return b.delta_r_eta(a); } 1586: 1586: 1586: inline double delta_r2_rap(const FourVector &a, const FourVector &b) { return b.delta_r2_rap(a); } 1586: 1586: 1586: inline double delta_r_rap(const FourVector &a, const FourVector &b) { return b.delta_r_rap(a); } 1586: 1586: 1586: 1586: 1586: } 1586: # 19 "/<>/include/HepMC3/Data/GenParticleData.h" 2 1586: 1586: namespace HepMC3 { 1586: 1586: 1586: 1586: struct GenParticleData { 1586: int pid; 1586: int status; 1586: bool is_mass_set; 1586: double mass; 1586: FourVector momentum; 1586: }; 1586: 1586: } 1586: # 18 "/<>/include/HepMC3/GenParticle.h" 2 1586: 1586: 1586: # 1 "/<>/include/HepMC3/GenParticle_fwd.h" 1 1586: # 14 "/<>/include/HepMC3/GenParticle_fwd.h" 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/memory" 1 3 1586: # 46 "/usr/mipsel-linux-gnu/include/c++/9/memory" 3 1586: 1586: # 47 "/usr/mipsel-linux-gnu/include/c++/9/memory" 3 1586: # 64 "/usr/mipsel-linux-gnu/include/c++/9/memory" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_construct.h" 1 3 1586: # 63 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_construct.h" 3 1586: 1586: # 63 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_construct.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline void 1586: _Construct(_T1* __p, _Args&&... __args) 1586: { ::new(static_cast(__p)) _T1(std::forward<_Args>(__args)...); } 1586: # 87 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_construct.h" 3 1586: template 1586: inline void 1586: _Construct_novalue(_T1* __p) 1586: { ::new(static_cast(__p)) _T1; } 1586: 1586: 1586: 1586: 1586: template 1586: inline void 1586: _Destroy(_Tp* __pointer) 1586: { __pointer->~_Tp(); } 1586: 1586: template 1586: struct _Destroy_aux 1586: { 1586: template 1586: static void 1586: __destroy(_ForwardIterator __first, _ForwardIterator __last) 1586: { 1586: for (; __first != __last; ++__first) 1586: std::_Destroy(std::__addressof(*__first)); 1586: } 1586: }; 1586: 1586: template<> 1586: struct _Destroy_aux 1586: { 1586: template 1586: static void 1586: __destroy(_ForwardIterator, _ForwardIterator) { } 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline void 1586: _Destroy(_ForwardIterator __first, _ForwardIterator __last) 1586: { 1586: typedef typename iterator_traits<_ForwardIterator>::value_type 1586: _Value_type; 1586: 1586: 1586: static_assert(is_destructible<_Value_type>::value, 1586: "value type is destructible"); 1586: 1586: std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: 1586: __destroy(__first, __last); 1586: } 1586: 1586: template 1586: struct _Destroy_n_aux 1586: { 1586: template 1586: static _ForwardIterator 1586: __destroy_n(_ForwardIterator __first, _Size __count) 1586: { 1586: for (; __count > 0; (void)++__first, --__count) 1586: std::_Destroy(std::__addressof(*__first)); 1586: return __first; 1586: } 1586: }; 1586: 1586: template<> 1586: struct _Destroy_n_aux 1586: { 1586: template 1586: static _ForwardIterator 1586: __destroy_n(_ForwardIterator __first, _Size __count) 1586: { 1586: std::advance(__first, __count); 1586: return __first; 1586: } 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline _ForwardIterator 1586: _Destroy_n(_ForwardIterator __first, _Size __count) 1586: { 1586: typedef typename iterator_traits<_ForwardIterator>::value_type 1586: _Value_type; 1586: 1586: 1586: static_assert(is_destructible<_Value_type>::value, 1586: "value type is destructible"); 1586: 1586: return std::_Destroy_n_aux<__has_trivial_destructor(_Value_type)>:: 1586: __destroy_n(__first, __count); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: void 1586: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 1586: _Allocator& __alloc) 1586: { 1586: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 1586: for (; __first != __last; ++__first) 1586: __traits::destroy(__alloc, std::__addressof(*__first)); 1586: } 1586: 1586: template 1586: inline void 1586: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 1586: allocator<_Tp>&) 1586: { 1586: _Destroy(__first, __last); 1586: } 1586: # 232 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_construct.h" 3 1586: 1586: } 1586: # 65 "/usr/mipsel-linux-gnu/include/c++/9/memory" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_uninitialized.h" 1 3 1586: # 67 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_uninitialized.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: template 1586: struct __uninitialized_copy 1586: { 1586: template 1586: static _ForwardIterator 1586: __uninit_copy(_InputIterator __first, _InputIterator __last, 1586: _ForwardIterator __result) 1586: { 1586: _ForwardIterator __cur = __result; 1586: try 1586: { 1586: for (; __first != __last; ++__first, (void)++__cur) 1586: std::_Construct(std::__addressof(*__cur), *__first); 1586: return __cur; 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__result, __cur); 1586: throw; 1586: } 1586: } 1586: }; 1586: 1586: template<> 1586: struct __uninitialized_copy 1586: { 1586: template 1586: static _ForwardIterator 1586: __uninit_copy(_InputIterator __first, _InputIterator __last, 1586: _ForwardIterator __result) 1586: { return std::copy(__first, __last, __result); } 1586: }; 1586: # 113 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_uninitialized.h" 3 1586: template 1586: inline _ForwardIterator 1586: uninitialized_copy(_InputIterator __first, _InputIterator __last, 1586: _ForwardIterator __result) 1586: { 1586: typedef typename iterator_traits<_InputIterator>::value_type 1586: _ValueType1; 1586: typedef typename iterator_traits<_ForwardIterator>::value_type 1586: _ValueType2; 1586: 1586: 1586: 1586: 1586: 1586: static_assert(is_constructible<_ValueType2, decltype(*__first)>::value, 1586: "result type must be constructible from value type of input range"); 1586: 1586: typedef typename iterator_traits<_InputIterator>::reference _RefType1; 1586: typedef typename iterator_traits<_ForwardIterator>::reference _RefType2; 1586: 1586: 1586: const bool __assignable = is_assignable<_RefType2, _RefType1>::value; 1586: 1586: 1586: return std::__uninitialized_copy<__is_trivial(_ValueType1) 1586: && __is_trivial(_ValueType2) 1586: && __assignable>:: 1586: __uninit_copy(__first, __last, __result); 1586: } 1586: 1586: 1586: template 1586: struct __uninitialized_fill 1586: { 1586: template 1586: static void 1586: __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __x) 1586: { 1586: _ForwardIterator __cur = __first; 1586: try 1586: { 1586: for (; __cur != __last; ++__cur) 1586: std::_Construct(std::__addressof(*__cur), __x); 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__first, __cur); 1586: throw; 1586: } 1586: } 1586: }; 1586: 1586: template<> 1586: struct __uninitialized_fill 1586: { 1586: template 1586: static void 1586: __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __x) 1586: { std::fill(__first, __last, __x); } 1586: }; 1586: # 185 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_uninitialized.h" 3 1586: template 1586: inline void 1586: uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __x) 1586: { 1586: typedef typename iterator_traits<_ForwardIterator>::value_type 1586: _ValueType; 1586: 1586: 1586: 1586: 1586: 1586: static_assert(is_constructible<_ValueType, const _Tp&>::value, 1586: "result type must be constructible from input type"); 1586: 1586: 1586: 1586: const bool __assignable = is_copy_assignable<_ValueType>::value; 1586: 1586: 1586: std::__uninitialized_fill<__is_trivial(_ValueType) && __assignable>:: 1586: __uninit_fill(__first, __last, __x); 1586: } 1586: 1586: 1586: template 1586: struct __uninitialized_fill_n 1586: { 1586: template 1586: static _ForwardIterator 1586: __uninit_fill_n(_ForwardIterator __first, _Size __n, 1586: const _Tp& __x) 1586: { 1586: _ForwardIterator __cur = __first; 1586: try 1586: { 1586: for (; __n > 0; --__n, (void) ++__cur) 1586: std::_Construct(std::__addressof(*__cur), __x); 1586: return __cur; 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__first, __cur); 1586: throw; 1586: } 1586: } 1586: }; 1586: 1586: template<> 1586: struct __uninitialized_fill_n 1586: { 1586: template 1586: static _ForwardIterator 1586: __uninit_fill_n(_ForwardIterator __first, _Size __n, 1586: const _Tp& __x) 1586: { return std::fill_n(__first, __n, __x); } 1586: }; 1586: # 254 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_uninitialized.h" 3 1586: template 1586: inline _ForwardIterator 1586: uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) 1586: { 1586: typedef typename iterator_traits<_ForwardIterator>::value_type 1586: _ValueType; 1586: 1586: 1586: 1586: 1586: 1586: static_assert(is_constructible<_ValueType, const _Tp&>::value, 1586: "result type must be constructible from input type"); 1586: 1586: 1586: 1586: const bool __assignable = is_copy_assignable<_ValueType>::value; 1586: 1586: return __uninitialized_fill_n<__is_trivial(_ValueType) && __assignable>:: 1586: __uninit_fill_n(__first, __n, __x); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: _ForwardIterator 1586: __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 1586: _ForwardIterator __result, _Allocator& __alloc) 1586: { 1586: _ForwardIterator __cur = __result; 1586: try 1586: { 1586: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 1586: for (; __first != __last; ++__first, (void)++__cur) 1586: __traits::construct(__alloc, std::__addressof(*__cur), *__first); 1586: return __cur; 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__result, __cur, __alloc); 1586: throw; 1586: } 1586: } 1586: 1586: template 1586: inline _ForwardIterator 1586: __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 1586: _ForwardIterator __result, allocator<_Tp>&) 1586: { return std::uninitialized_copy(__first, __last, __result); } 1586: 1586: template 1586: inline _ForwardIterator 1586: __uninitialized_move_a(_InputIterator __first, _InputIterator __last, 1586: _ForwardIterator __result, _Allocator& __alloc) 1586: { 1586: return std::__uninitialized_copy_a(std::make_move_iterator(__first), 1586: std::make_move_iterator(__last), 1586: __result, __alloc); 1586: } 1586: 1586: template 1586: inline _ForwardIterator 1586: __uninitialized_move_if_noexcept_a(_InputIterator __first, 1586: _InputIterator __last, 1586: _ForwardIterator __result, 1586: _Allocator& __alloc) 1586: { 1586: return std::__uninitialized_copy_a 1586: (std::__make_move_if_noexcept_iterator(__first), 1586: std::__make_move_if_noexcept_iterator(__last), __result, __alloc); 1586: } 1586: 1586: template 1586: void 1586: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __x, _Allocator& __alloc) 1586: { 1586: _ForwardIterator __cur = __first; 1586: try 1586: { 1586: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 1586: for (; __cur != __last; ++__cur) 1586: __traits::construct(__alloc, std::__addressof(*__cur), __x); 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__first, __cur, __alloc); 1586: throw; 1586: } 1586: } 1586: 1586: template 1586: inline void 1586: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __x, allocator<_Tp2>&) 1586: { std::uninitialized_fill(__first, __last, __x); } 1586: 1586: template 1586: _ForwardIterator 1586: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 1586: const _Tp& __x, _Allocator& __alloc) 1586: { 1586: _ForwardIterator __cur = __first; 1586: try 1586: { 1586: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 1586: for (; __n > 0; --__n, (void) ++__cur) 1586: __traits::construct(__alloc, std::__addressof(*__cur), __x); 1586: return __cur; 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__first, __cur, __alloc); 1586: throw; 1586: } 1586: } 1586: 1586: template 1586: inline _ForwardIterator 1586: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 1586: const _Tp& __x, allocator<_Tp2>&) 1586: { return std::uninitialized_fill_n(__first, __n, __x); } 1586: # 396 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_uninitialized.h" 3 1586: template 1586: inline _ForwardIterator 1586: __uninitialized_copy_move(_InputIterator1 __first1, 1586: _InputIterator1 __last1, 1586: _InputIterator2 __first2, 1586: _InputIterator2 __last2, 1586: _ForwardIterator __result, 1586: _Allocator& __alloc) 1586: { 1586: _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1, 1586: __result, 1586: __alloc); 1586: try 1586: { 1586: return std::__uninitialized_move_a(__first2, __last2, __mid, __alloc); 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__result, __mid, __alloc); 1586: throw; 1586: } 1586: } 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline _ForwardIterator 1586: __uninitialized_move_copy(_InputIterator1 __first1, 1586: _InputIterator1 __last1, 1586: _InputIterator2 __first2, 1586: _InputIterator2 __last2, 1586: _ForwardIterator __result, 1586: _Allocator& __alloc) 1586: { 1586: _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1, 1586: __result, 1586: __alloc); 1586: try 1586: { 1586: return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc); 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__result, __mid, __alloc); 1586: throw; 1586: } 1586: } 1586: 1586: 1586: 1586: 1586: template 1586: inline _ForwardIterator 1586: __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid, 1586: const _Tp& __x, _InputIterator __first, 1586: _InputIterator __last, _Allocator& __alloc) 1586: { 1586: std::__uninitialized_fill_a(__result, __mid, __x, __alloc); 1586: try 1586: { 1586: return std::__uninitialized_move_a(__first, __last, __mid, __alloc); 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__result, __mid, __alloc); 1586: throw; 1586: } 1586: } 1586: 1586: 1586: 1586: 1586: template 1586: inline void 1586: __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1, 1586: _ForwardIterator __first2, 1586: _ForwardIterator __last2, const _Tp& __x, 1586: _Allocator& __alloc) 1586: { 1586: _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1, 1586: __first2, 1586: __alloc); 1586: try 1586: { 1586: std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc); 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__first2, __mid2, __alloc); 1586: throw; 1586: } 1586: } 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct __uninitialized_default_1 1586: { 1586: template 1586: static void 1586: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 1586: { 1586: _ForwardIterator __cur = __first; 1586: try 1586: { 1586: for (; __cur != __last; ++__cur) 1586: std::_Construct(std::__addressof(*__cur)); 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__first, __cur); 1586: throw; 1586: } 1586: } 1586: }; 1586: 1586: template<> 1586: struct __uninitialized_default_1 1586: { 1586: template 1586: static void 1586: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 1586: { 1586: typedef typename iterator_traits<_ForwardIterator>::value_type 1586: _ValueType; 1586: 1586: std::fill(__first, __last, _ValueType()); 1586: } 1586: }; 1586: 1586: template 1586: struct __uninitialized_default_n_1 1586: { 1586: template 1586: static _ForwardIterator 1586: __uninit_default_n(_ForwardIterator __first, _Size __n) 1586: { 1586: _ForwardIterator __cur = __first; 1586: try 1586: { 1586: for (; __n > 0; --__n, (void) ++__cur) 1586: std::_Construct(std::__addressof(*__cur)); 1586: return __cur; 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__first, __cur); 1586: throw; 1586: } 1586: } 1586: }; 1586: 1586: template<> 1586: struct __uninitialized_default_n_1 1586: { 1586: template 1586: static _ForwardIterator 1586: __uninit_default_n(_ForwardIterator __first, _Size __n) 1586: { 1586: typedef typename iterator_traits<_ForwardIterator>::value_type 1586: _ValueType; 1586: 1586: return std::fill_n(__first, __n, _ValueType()); 1586: } 1586: }; 1586: 1586: 1586: 1586: 1586: template 1586: inline void 1586: __uninitialized_default(_ForwardIterator __first, 1586: _ForwardIterator __last) 1586: { 1586: typedef typename iterator_traits<_ForwardIterator>::value_type 1586: _ValueType; 1586: 1586: const bool __assignable = is_copy_assignable<_ValueType>::value; 1586: 1586: std::__uninitialized_default_1<__is_trivial(_ValueType) 1586: && __assignable>:: 1586: __uninit_default(__first, __last); 1586: } 1586: 1586: 1586: 1586: template 1586: inline _ForwardIterator 1586: __uninitialized_default_n(_ForwardIterator __first, _Size __n) 1586: { 1586: typedef typename iterator_traits<_ForwardIterator>::value_type 1586: _ValueType; 1586: 1586: const bool __assignable = is_copy_assignable<_ValueType>::value; 1586: 1586: return __uninitialized_default_n_1<__is_trivial(_ValueType) 1586: && __assignable>:: 1586: __uninit_default_n(__first, __n); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: template 1586: void 1586: __uninitialized_default_a(_ForwardIterator __first, 1586: _ForwardIterator __last, 1586: _Allocator& __alloc) 1586: { 1586: _ForwardIterator __cur = __first; 1586: try 1586: { 1586: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 1586: for (; __cur != __last; ++__cur) 1586: __traits::construct(__alloc, std::__addressof(*__cur)); 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__first, __cur, __alloc); 1586: throw; 1586: } 1586: } 1586: 1586: template 1586: inline void 1586: __uninitialized_default_a(_ForwardIterator __first, 1586: _ForwardIterator __last, 1586: allocator<_Tp>&) 1586: { std::__uninitialized_default(__first, __last); } 1586: 1586: 1586: 1586: 1586: 1586: template 1586: _ForwardIterator 1586: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 1586: _Allocator& __alloc) 1586: { 1586: _ForwardIterator __cur = __first; 1586: try 1586: { 1586: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 1586: for (; __n > 0; --__n, (void) ++__cur) 1586: __traits::construct(__alloc, std::__addressof(*__cur)); 1586: return __cur; 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__first, __cur, __alloc); 1586: throw; 1586: } 1586: } 1586: 1586: template 1586: inline _ForwardIterator 1586: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 1586: allocator<_Tp>&) 1586: { return std::__uninitialized_default_n(__first, __n); } 1586: 1586: template 1586: struct __uninitialized_default_novalue_1 1586: { 1586: template 1586: static void 1586: __uninit_default_novalue(_ForwardIterator __first, 1586: _ForwardIterator __last) 1586: { 1586: _ForwardIterator __cur = __first; 1586: try 1586: { 1586: for (; __cur != __last; ++__cur) 1586: std::_Construct_novalue(std::__addressof(*__cur)); 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__first, __cur); 1586: throw; 1586: } 1586: } 1586: }; 1586: 1586: template<> 1586: struct __uninitialized_default_novalue_1 1586: { 1586: template 1586: static void 1586: __uninit_default_novalue(_ForwardIterator __first, 1586: _ForwardIterator __last) 1586: { 1586: } 1586: }; 1586: 1586: template 1586: struct __uninitialized_default_novalue_n_1 1586: { 1586: template 1586: static _ForwardIterator 1586: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 1586: { 1586: _ForwardIterator __cur = __first; 1586: try 1586: { 1586: for (; __n > 0; --__n, (void) ++__cur) 1586: std::_Construct_novalue(std::__addressof(*__cur)); 1586: return __cur; 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__first, __cur); 1586: throw; 1586: } 1586: } 1586: }; 1586: 1586: template<> 1586: struct __uninitialized_default_novalue_n_1 1586: { 1586: template 1586: static _ForwardIterator 1586: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 1586: { return std::next(__first, __n); } 1586: }; 1586: 1586: 1586: 1586: 1586: template 1586: inline void 1586: __uninitialized_default_novalue(_ForwardIterator __first, 1586: _ForwardIterator __last) 1586: { 1586: typedef typename iterator_traits<_ForwardIterator>::value_type 1586: _ValueType; 1586: 1586: std::__uninitialized_default_novalue_1< 1586: is_trivially_default_constructible<_ValueType>::value>:: 1586: __uninit_default_novalue(__first, __last); 1586: } 1586: 1586: 1586: 1586: template 1586: inline _ForwardIterator 1586: __uninitialized_default_novalue_n(_ForwardIterator __first, _Size __n) 1586: { 1586: typedef typename iterator_traits<_ForwardIterator>::value_type 1586: _ValueType; 1586: 1586: return __uninitialized_default_novalue_n_1< 1586: is_trivially_default_constructible<_ValueType>::value>:: 1586: __uninit_default_novalue_n(__first, __n); 1586: } 1586: 1586: template 1586: _ForwardIterator 1586: __uninitialized_copy_n(_InputIterator __first, _Size __n, 1586: _ForwardIterator __result, input_iterator_tag) 1586: { 1586: _ForwardIterator __cur = __result; 1586: try 1586: { 1586: for (; __n > 0; --__n, (void) ++__first, ++__cur) 1586: std::_Construct(std::__addressof(*__cur), *__first); 1586: return __cur; 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__result, __cur); 1586: throw; 1586: } 1586: } 1586: 1586: template 1586: inline _ForwardIterator 1586: __uninitialized_copy_n(_RandomAccessIterator __first, _Size __n, 1586: _ForwardIterator __result, 1586: random_access_iterator_tag) 1586: { return std::uninitialized_copy(__first, __first + __n, __result); } 1586: 1586: template 1586: pair<_InputIterator, _ForwardIterator> 1586: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 1586: _ForwardIterator __result, input_iterator_tag) 1586: { 1586: _ForwardIterator __cur = __result; 1586: try 1586: { 1586: for (; __n > 0; --__n, (void) ++__first, ++__cur) 1586: std::_Construct(std::__addressof(*__cur), *__first); 1586: return {__first, __cur}; 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__result, __cur); 1586: throw; 1586: } 1586: } 1586: 1586: template 1586: inline pair<_RandomAccessIterator, _ForwardIterator> 1586: __uninitialized_copy_n_pair(_RandomAccessIterator __first, _Size __n, 1586: _ForwardIterator __result, 1586: random_access_iterator_tag) 1586: { 1586: auto __second_res = uninitialized_copy(__first, __first + __n, __result); 1586: auto __first_res = std::next(__first, __n); 1586: return {__first_res, __second_res}; 1586: } 1586: # 828 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_uninitialized.h" 3 1586: template 1586: inline _ForwardIterator 1586: uninitialized_copy_n(_InputIterator __first, _Size __n, 1586: _ForwardIterator __result) 1586: { return std::__uninitialized_copy_n(__first, __n, __result, 1586: std::__iterator_category(__first)); } 1586: 1586: template 1586: inline pair<_InputIterator, _ForwardIterator> 1586: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 1586: _ForwardIterator __result) 1586: { 1586: return 1586: std::__uninitialized_copy_n_pair(__first, __n, __result, 1586: std::__iterator_category(__first)); 1586: } 1586: # 903 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_uninitialized.h" 3 1586: template 1586: inline void 1586: __relocate_object_a(_Tp* __dest, _Up* __orig, _Allocator& __alloc) 1586: noexcept(noexcept(std::allocator_traits<_Allocator>::construct(__alloc, 1586: __dest, std::move(*__orig))) 1586: && noexcept(std::allocator_traits<_Allocator>::destroy( 1586: __alloc, std::__addressof(*__orig)))) 1586: { 1586: typedef std::allocator_traits<_Allocator> __traits; 1586: __traits::construct(__alloc, __dest, std::move(*__orig)); 1586: __traits::destroy(__alloc, std::__addressof(*__orig)); 1586: } 1586: 1586: 1586: 1586: template 1586: struct __is_bitwise_relocatable 1586: : is_trivial<_Tp> { }; 1586: 1586: template 1586: inline __enable_if_t::value, _Tp*> 1586: __relocate_a_1(_Tp* __first, _Tp* __last, 1586: _Tp* __result, allocator<_Up>&) noexcept 1586: { 1586: ptrdiff_t __count = __last - __first; 1586: if (__count > 0) 1586: __builtin_memmove(__result, __first, __count * sizeof(_Tp)); 1586: return __result + __count; 1586: } 1586: 1586: template 1586: inline _ForwardIterator 1586: __relocate_a_1(_InputIterator __first, _InputIterator __last, 1586: _ForwardIterator __result, _Allocator& __alloc) 1586: noexcept(noexcept(std::__relocate_object_a(std::addressof(*__result), 1586: std::addressof(*__first), 1586: __alloc))) 1586: { 1586: typedef typename iterator_traits<_InputIterator>::value_type 1586: _ValueType; 1586: typedef typename iterator_traits<_ForwardIterator>::value_type 1586: _ValueType2; 1586: static_assert(std::is_same<_ValueType, _ValueType2>::value, 1586: "relocation is only possible for values of the same type"); 1586: _ForwardIterator __cur = __result; 1586: for (; __first != __last; ++__first, (void)++__cur) 1586: std::__relocate_object_a(std::__addressof(*__cur), 1586: std::__addressof(*__first), __alloc); 1586: return __cur; 1586: } 1586: 1586: template 1586: inline _ForwardIterator 1586: __relocate_a(_InputIterator __first, _InputIterator __last, 1586: _ForwardIterator __result, _Allocator& __alloc) 1586: noexcept(noexcept(__relocate_a_1(std::__niter_base(__first), 1586: std::__niter_base(__last), 1586: std::__niter_base(__result), __alloc))) 1586: { 1586: return __relocate_a_1(std::__niter_base(__first), 1586: std::__niter_base(__last), 1586: std::__niter_base(__result), __alloc); 1586: } 1586: 1586: 1586: 1586: } 1586: # 66 "/usr/mipsel-linux-gnu/include/c++/9/memory" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tempbuf.h" 1 3 1586: # 62 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tempbuf.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 83 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tempbuf.h" 3 1586: template 1586: pair<_Tp*, ptrdiff_t> 1586: get_temporary_buffer(ptrdiff_t __len) noexcept 1586: { 1586: const ptrdiff_t __max = 1586: __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); 1586: if (__len > __max) 1586: __len = __max; 1586: 1586: while (__len > 0) 1586: { 1586: _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp), 1586: std::nothrow)); 1586: if (__tmp != 0) 1586: return std::pair<_Tp*, ptrdiff_t>(__tmp, __len); 1586: __len /= 2; 1586: } 1586: return std::pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0); 1586: } 1586: # 110 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tempbuf.h" 3 1586: template 1586: inline void 1586: return_temporary_buffer(_Tp* __p) 1586: { ::operator delete(__p); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: class _Temporary_buffer 1586: { 1586: 1586: 1586: 1586: public: 1586: typedef _Tp value_type; 1586: typedef value_type* pointer; 1586: typedef pointer iterator; 1586: typedef ptrdiff_t size_type; 1586: 1586: protected: 1586: size_type _M_original_len; 1586: size_type _M_len; 1586: pointer _M_buffer; 1586: 1586: public: 1586: 1586: size_type 1586: size() const 1586: { return _M_len; } 1586: 1586: 1586: size_type 1586: requested_size() const 1586: { return _M_original_len; } 1586: 1586: 1586: iterator 1586: begin() 1586: { return _M_buffer; } 1586: 1586: 1586: iterator 1586: end() 1586: { return _M_buffer + _M_len; } 1586: 1586: 1586: 1586: 1586: 1586: _Temporary_buffer(_ForwardIterator __seed, size_type __original_len); 1586: 1586: ~_Temporary_buffer() 1586: { 1586: std::_Destroy(_M_buffer, _M_buffer + _M_len); 1586: std::return_temporary_buffer(_M_buffer); 1586: } 1586: 1586: private: 1586: 1586: _Temporary_buffer(const _Temporary_buffer&); 1586: 1586: void 1586: operator=(const _Temporary_buffer&); 1586: }; 1586: 1586: 1586: template 1586: struct __uninitialized_construct_buf_dispatch 1586: { 1586: template 1586: static void 1586: __ucr(_Pointer __first, _Pointer __last, 1586: _ForwardIterator __seed) 1586: { 1586: if(__first == __last) 1586: return; 1586: 1586: _Pointer __cur = __first; 1586: try 1586: { 1586: std::_Construct(std::__addressof(*__first), 1586: std::move(*__seed)); 1586: _Pointer __prev = __cur; 1586: ++__cur; 1586: for(; __cur != __last; ++__cur, ++__prev) 1586: std::_Construct(std::__addressof(*__cur), 1586: std::move(*__prev)); 1586: *__seed = std::move(*__prev); 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__first, __cur); 1586: throw; 1586: } 1586: } 1586: }; 1586: 1586: template<> 1586: struct __uninitialized_construct_buf_dispatch 1586: { 1586: template 1586: static void 1586: __ucr(_Pointer, _Pointer, _ForwardIterator) { } 1586: }; 1586: # 229 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tempbuf.h" 3 1586: template 1586: inline void 1586: __uninitialized_construct_buf(_Pointer __first, _Pointer __last, 1586: _ForwardIterator __seed) 1586: { 1586: typedef typename std::iterator_traits<_Pointer>::value_type 1586: _ValueType; 1586: 1586: std::__uninitialized_construct_buf_dispatch< 1586: __has_trivial_constructor(_ValueType)>:: 1586: __ucr(__first, __last, __seed); 1586: } 1586: 1586: template 1586: _Temporary_buffer<_ForwardIterator, _Tp>:: 1586: _Temporary_buffer(_ForwardIterator __seed, size_type __original_len) 1586: : _M_original_len(__original_len), _M_len(0), _M_buffer(0) 1586: { 1586: try 1586: { 1586: std::pair __p(std::get_temporary_buffer< 1586: value_type>(_M_original_len)); 1586: _M_buffer = __p.first; 1586: _M_len = __p.second; 1586: if (_M_buffer) 1586: std::__uninitialized_construct_buf(_M_buffer, _M_buffer + _M_len, 1586: __seed); 1586: } 1586: catch(...) 1586: { 1586: std::return_temporary_buffer(_M_buffer); 1586: _M_buffer = 0; 1586: _M_len = 0; 1586: throw; 1586: } 1586: } 1586: 1586: 1586: } 1586: # 67 "/usr/mipsel-linux-gnu/include/c++/9/memory" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_raw_storage_iter.h" 1 3 1586: # 59 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_raw_storage_iter.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: class raw_storage_iterator 1586: : public iterator 1586: { 1586: protected: 1586: _OutputIterator _M_iter; 1586: 1586: public: 1586: explicit 1586: raw_storage_iterator(_OutputIterator __x) 1586: : _M_iter(__x) {} 1586: 1586: raw_storage_iterator& 1586: operator*() { return *this; } 1586: 1586: raw_storage_iterator& 1586: operator=(const _Tp& __element) 1586: { 1586: std::_Construct(std::__addressof(*_M_iter), __element); 1586: return *this; 1586: } 1586: 1586: 1586: 1586: 1586: raw_storage_iterator& 1586: operator=(_Tp&& __element) 1586: { 1586: std::_Construct(std::__addressof(*_M_iter), std::move(__element)); 1586: return *this; 1586: } 1586: 1586: 1586: raw_storage_iterator& 1586: operator++() 1586: { 1586: ++_M_iter; 1586: return *this; 1586: } 1586: 1586: raw_storage_iterator 1586: operator++(int) 1586: { 1586: raw_storage_iterator __tmp = *this; 1586: ++_M_iter; 1586: return __tmp; 1586: } 1586: 1586: 1586: 1586: _OutputIterator base() const { return _M_iter; } 1586: }; 1586: 1586: 1586: } 1586: # 68 "/usr/mipsel-linux-gnu/include/c++/9/memory" 2 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/ext/concurrence.h" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/c++/9/ext/concurrence.h" 3 1586: 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/ext/concurrence.h" 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: enum _Lock_policy { _S_single, _S_mutex, _S_atomic }; 1586: 1586: 1586: 1586: static const _Lock_policy __default_lock_policy = 1586: 1586: 1586: 1586: _S_atomic; 1586: 1586: 1586: 1586: 1586: 1586: 1586: class __concurrence_lock_error : public std::exception 1586: { 1586: public: 1586: virtual char const* 1586: what() const throw() 1586: { return "__gnu_cxx::__concurrence_lock_error"; } 1586: }; 1586: 1586: class __concurrence_unlock_error : public std::exception 1586: { 1586: public: 1586: virtual char const* 1586: what() const throw() 1586: { return "__gnu_cxx::__concurrence_unlock_error"; } 1586: }; 1586: 1586: class __concurrence_broadcast_error : public std::exception 1586: { 1586: public: 1586: virtual char const* 1586: what() const throw() 1586: { return "__gnu_cxx::__concurrence_broadcast_error"; } 1586: }; 1586: 1586: class __concurrence_wait_error : public std::exception 1586: { 1586: public: 1586: virtual char const* 1586: what() const throw() 1586: { return "__gnu_cxx::__concurrence_wait_error"; } 1586: }; 1586: 1586: 1586: inline void 1586: __throw_concurrence_lock_error() 1586: { (throw (__concurrence_lock_error())); } 1586: 1586: inline void 1586: __throw_concurrence_unlock_error() 1586: { (throw (__concurrence_unlock_error())); } 1586: 1586: 1586: inline void 1586: __throw_concurrence_broadcast_error() 1586: { (throw (__concurrence_broadcast_error())); } 1586: 1586: inline void 1586: __throw_concurrence_wait_error() 1586: { (throw (__concurrence_wait_error())); } 1586: 1586: 1586: class __mutex 1586: { 1586: private: 1586: 1586: __gthread_mutex_t _M_mutex = { { 0, 0, 0, PTHREAD_MUTEX_TIMED_NP, 0, { 0 } } }; 1586: 1586: 1586: 1586: 1586: __mutex(const __mutex&); 1586: __mutex& operator=(const __mutex&); 1586: 1586: public: 1586: __mutex() 1586: { 1586: 1586: 1586: 1586: 1586: } 1586: # 144 "/usr/mipsel-linux-gnu/include/c++/9/ext/concurrence.h" 3 1586: void lock() 1586: { 1586: 1586: if (__gthread_active_p()) 1586: { 1586: if (__gthread_mutex_lock(&_M_mutex) != 0) 1586: __throw_concurrence_lock_error(); 1586: } 1586: 1586: } 1586: 1586: void unlock() 1586: { 1586: 1586: if (__gthread_active_p()) 1586: { 1586: if (__gthread_mutex_unlock(&_M_mutex) != 0) 1586: __throw_concurrence_unlock_error(); 1586: } 1586: 1586: } 1586: 1586: __gthread_mutex_t* gthread_mutex(void) 1586: { return &_M_mutex; } 1586: }; 1586: 1586: class __recursive_mutex 1586: { 1586: private: 1586: 1586: __gthread_recursive_mutex_t _M_mutex = { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { 0 } } }; 1586: 1586: 1586: 1586: 1586: __recursive_mutex(const __recursive_mutex&); 1586: __recursive_mutex& operator=(const __recursive_mutex&); 1586: 1586: public: 1586: __recursive_mutex() 1586: { 1586: 1586: 1586: 1586: 1586: } 1586: # 199 "/usr/mipsel-linux-gnu/include/c++/9/ext/concurrence.h" 3 1586: void lock() 1586: { 1586: 1586: if (__gthread_active_p()) 1586: { 1586: if (__gthread_recursive_mutex_lock(&_M_mutex) != 0) 1586: __throw_concurrence_lock_error(); 1586: } 1586: 1586: } 1586: 1586: void unlock() 1586: { 1586: 1586: if (__gthread_active_p()) 1586: { 1586: if (__gthread_recursive_mutex_unlock(&_M_mutex) != 0) 1586: __throw_concurrence_unlock_error(); 1586: } 1586: 1586: } 1586: 1586: __gthread_recursive_mutex_t* gthread_recursive_mutex(void) 1586: { return &_M_mutex; } 1586: }; 1586: 1586: 1586: 1586: 1586: class __scoped_lock 1586: { 1586: public: 1586: typedef __mutex __mutex_type; 1586: 1586: private: 1586: __mutex_type& _M_device; 1586: 1586: __scoped_lock(const __scoped_lock&); 1586: __scoped_lock& operator=(const __scoped_lock&); 1586: 1586: public: 1586: explicit __scoped_lock(__mutex_type& __name) : _M_device(__name) 1586: { _M_device.lock(); } 1586: 1586: ~__scoped_lock() throw() 1586: { _M_device.unlock(); } 1586: }; 1586: 1586: 1586: class __cond 1586: { 1586: private: 1586: 1586: __gthread_cond_t _M_cond = { { {0}, {0}, {0, 0}, {0, 0}, 0, 0, {0, 0} } }; 1586: 1586: 1586: 1586: 1586: __cond(const __cond&); 1586: __cond& operator=(const __cond&); 1586: 1586: public: 1586: __cond() 1586: { 1586: 1586: 1586: 1586: 1586: } 1586: # 277 "/usr/mipsel-linux-gnu/include/c++/9/ext/concurrence.h" 3 1586: void broadcast() 1586: { 1586: 1586: if (__gthread_active_p()) 1586: { 1586: if (__gthread_cond_broadcast(&_M_cond) != 0) 1586: __throw_concurrence_broadcast_error(); 1586: } 1586: 1586: } 1586: 1586: void wait(__mutex *mutex) 1586: { 1586: 1586: { 1586: if (__gthread_cond_wait(&_M_cond, mutex->gthread_mutex()) != 0) 1586: __throw_concurrence_wait_error(); 1586: } 1586: 1586: } 1586: 1586: void wait_recursive(__recursive_mutex *mutex) 1586: { 1586: 1586: { 1586: if (__gthread_cond_wait_recursive(&_M_cond, 1586: mutex->gthread_recursive_mutex()) 1586: != 0) 1586: __throw_concurrence_wait_error(); 1586: } 1586: 1586: } 1586: }; 1586: 1586: 1586: 1586: } 1586: # 75 "/usr/mipsel-linux-gnu/include/c++/9/memory" 2 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/uses_allocator.h" 1 3 1586: # 35 "/usr/mipsel-linux-gnu/include/c++/9/bits/uses_allocator.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: struct __erased_type { }; 1586: 1586: 1586: 1586: 1586: template 1586: using __is_erased_or_convertible 1586: = __or_, is_same<_Tp, __erased_type>>; 1586: 1586: 1586: struct allocator_arg_t { explicit allocator_arg_t() = default; }; 1586: 1586: constexpr allocator_arg_t allocator_arg = 1586: allocator_arg_t(); 1586: 1586: template> 1586: struct __uses_allocator_helper 1586: : false_type { }; 1586: 1586: template 1586: struct __uses_allocator_helper<_Tp, _Alloc, 1586: __void_t> 1586: : __is_erased_or_convertible<_Alloc, typename _Tp::allocator_type>::type 1586: { }; 1586: 1586: 1586: template 1586: struct uses_allocator 1586: : __uses_allocator_helper<_Tp, _Alloc>::type 1586: { }; 1586: 1586: struct __uses_alloc_base { }; 1586: 1586: struct __uses_alloc0 : __uses_alloc_base 1586: { 1586: struct _Sink { void operator=(const void*) { } } _M_a; 1586: }; 1586: 1586: template 1586: struct __uses_alloc1 : __uses_alloc_base { const _Alloc* _M_a; }; 1586: 1586: template 1586: struct __uses_alloc2 : __uses_alloc_base { const _Alloc* _M_a; }; 1586: 1586: template 1586: struct __uses_alloc; 1586: 1586: template 1586: struct __uses_alloc 1586: : conditional< 1586: is_constructible<_Tp, allocator_arg_t, const _Alloc&, _Args...>::value, 1586: __uses_alloc1<_Alloc>, 1586: __uses_alloc2<_Alloc>>::type 1586: { 1586: 1586: 1586: static_assert(__or_< 1586: is_constructible<_Tp, allocator_arg_t, const _Alloc&, _Args...>, 1586: is_constructible<_Tp, _Args..., const _Alloc&>>::value, 1586: "construction with an allocator must be possible" 1586: " if uses_allocator is true"); 1586: }; 1586: 1586: template 1586: struct __uses_alloc 1586: : __uses_alloc0 { }; 1586: 1586: template 1586: using __uses_alloc_t = 1586: __uses_alloc::value, _Tp, _Alloc, _Args...>; 1586: 1586: template 1586: inline __uses_alloc_t<_Tp, _Alloc, _Args...> 1586: __use_alloc(const _Alloc& __a) 1586: { 1586: __uses_alloc_t<_Tp, _Alloc, _Args...> __ret; 1586: __ret._M_a = std::__addressof(__a); 1586: return __ret; 1586: } 1586: 1586: template 1586: void 1586: __use_alloc(const _Alloc&&) = delete; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template class _Predicate, 1586: typename _Tp, typename _Alloc, typename... _Args> 1586: struct __is_uses_allocator_predicate 1586: : conditional::value, 1586: __or_<_Predicate<_Tp, allocator_arg_t, _Alloc, _Args...>, 1586: _Predicate<_Tp, _Args..., _Alloc>>, 1586: _Predicate<_Tp, _Args...>>::type { }; 1586: 1586: template 1586: struct __is_uses_allocator_constructible 1586: : __is_uses_allocator_predicate 1586: { }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct __is_nothrow_uses_allocator_constructible 1586: : __is_uses_allocator_predicate 1586: { }; 1586: # 163 "/usr/mipsel-linux-gnu/include/c++/9/bits/uses_allocator.h" 3 1586: template 1586: void __uses_allocator_construct_impl(__uses_alloc0 __a, _Tp* __ptr, 1586: _Args&&... __args) 1586: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)...); } 1586: 1586: template 1586: void __uses_allocator_construct_impl(__uses_alloc1<_Alloc> __a, _Tp* __ptr, 1586: _Args&&... __args) 1586: { 1586: ::new ((void*)__ptr) _Tp(allocator_arg, *__a._M_a, 1586: std::forward<_Args>(__args)...); 1586: } 1586: 1586: template 1586: void __uses_allocator_construct_impl(__uses_alloc2<_Alloc> __a, _Tp* __ptr, 1586: _Args&&... __args) 1586: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)..., *__a._M_a); } 1586: 1586: template 1586: void __uses_allocator_construct(const _Alloc& __a, _Tp* __ptr, 1586: _Args&&... __args) 1586: { 1586: std::__uses_allocator_construct_impl( 1586: std::__use_alloc<_Tp, _Alloc, _Args...>(__a), __ptr, 1586: std::forward<_Args>(__args)...); 1586: } 1586: 1586: 1586: } 1586: # 78 "/usr/mipsel-linux-gnu/include/c++/9/memory" 2 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_ptr.h" 1 3 1586: # 36 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_ptr.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/utility" 1 3 1586: # 58 "/usr/mipsel-linux-gnu/include/c++/9/utility" 3 1586: 1586: # 59 "/usr/mipsel-linux-gnu/include/c++/9/utility" 3 1586: # 69 "/usr/mipsel-linux-gnu/include/c++/9/utility" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_relops.h" 1 3 1586: # 67 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_relops.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: namespace rel_ops 1586: { 1586: # 85 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_relops.h" 3 1586: template 1586: inline bool 1586: operator!=(const _Tp& __x, const _Tp& __y) 1586: { return !(__x == __y); } 1586: # 98 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_relops.h" 3 1586: template 1586: inline bool 1586: operator>(const _Tp& __x, const _Tp& __y) 1586: { return __y < __x; } 1586: # 111 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_relops.h" 3 1586: template 1586: inline bool 1586: operator<=(const _Tp& __x, const _Tp& __y) 1586: { return !(__y < __x); } 1586: # 124 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_relops.h" 3 1586: template 1586: inline bool 1586: operator>=(const _Tp& __x, const _Tp& __y) 1586: { return !(__x < __y); } 1586: } 1586: 1586: 1586: } 1586: # 70 "/usr/mipsel-linux-gnu/include/c++/9/utility" 2 3 1586: # 78 "/usr/mipsel-linux-gnu/include/c++/9/utility" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: template 1586: struct tuple_size; 1586: 1586: 1586: 1586: 1586: 1586: template::type, 1586: typename = typename enable_if::value>::type, 1586: size_t = tuple_size<_Tp>::value> 1586: using __enable_if_has_tuple_size = _Tp; 1586: 1586: template 1586: struct tuple_size> 1586: : public tuple_size<_Tp> { }; 1586: 1586: template 1586: struct tuple_size> 1586: : public tuple_size<_Tp> { }; 1586: 1586: template 1586: struct tuple_size> 1586: : public tuple_size<_Tp> { }; 1586: 1586: 1586: template 1586: struct tuple_element; 1586: 1586: 1586: template 1586: using __tuple_element_t = typename tuple_element<__i, _Tp>::type; 1586: 1586: template 1586: struct tuple_element<__i, const _Tp> 1586: { 1586: typedef typename add_const<__tuple_element_t<__i, _Tp>>::type type; 1586: }; 1586: 1586: template 1586: struct tuple_element<__i, volatile _Tp> 1586: { 1586: typedef typename add_volatile<__tuple_element_t<__i, _Tp>>::type type; 1586: }; 1586: 1586: template 1586: struct tuple_element<__i, const volatile _Tp> 1586: { 1586: typedef typename add_cv<__tuple_element_t<__i, _Tp>>::type type; 1586: }; 1586: # 147 "/usr/mipsel-linux-gnu/include/c++/9/utility" 3 1586: template 1586: struct __is_tuple_like_impl> : true_type 1586: { }; 1586: 1586: 1586: template 1586: struct tuple_size> 1586: : public integral_constant { }; 1586: 1586: 1586: template 1586: struct tuple_element<0, std::pair<_Tp1, _Tp2>> 1586: { typedef _Tp1 type; }; 1586: 1586: 1586: template 1586: struct tuple_element<1, std::pair<_Tp1, _Tp2>> 1586: { typedef _Tp2 type; }; 1586: 1586: template 1586: struct __pair_get; 1586: 1586: template<> 1586: struct __pair_get<0> 1586: { 1586: template 1586: static constexpr _Tp1& 1586: __get(std::pair<_Tp1, _Tp2>& __pair) noexcept 1586: { return __pair.first; } 1586: 1586: template 1586: static constexpr _Tp1&& 1586: __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept 1586: { return std::forward<_Tp1>(__pair.first); } 1586: 1586: template 1586: static constexpr const _Tp1& 1586: __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept 1586: { return __pair.first; } 1586: 1586: template 1586: static constexpr const _Tp1&& 1586: __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept 1586: { return std::forward(__pair.first); } 1586: }; 1586: 1586: template<> 1586: struct __pair_get<1> 1586: { 1586: template 1586: static constexpr _Tp2& 1586: __get(std::pair<_Tp1, _Tp2>& __pair) noexcept 1586: { return __pair.second; } 1586: 1586: template 1586: static constexpr _Tp2&& 1586: __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept 1586: { return std::forward<_Tp2>(__pair.second); } 1586: 1586: template 1586: static constexpr const _Tp2& 1586: __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept 1586: { return __pair.second; } 1586: 1586: template 1586: static constexpr const _Tp2&& 1586: __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept 1586: { return std::forward(__pair.second); } 1586: }; 1586: 1586: template 1586: constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& 1586: get(std::pair<_Tp1, _Tp2>& __in) noexcept 1586: { return __pair_get<_Int>::__get(__in); } 1586: 1586: template 1586: constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& 1586: get(std::pair<_Tp1, _Tp2>&& __in) noexcept 1586: { return __pair_get<_Int>::__move_get(std::move(__in)); } 1586: 1586: template 1586: constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& 1586: get(const std::pair<_Tp1, _Tp2>& __in) noexcept 1586: { return __pair_get<_Int>::__const_get(__in); } 1586: 1586: template 1586: constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& 1586: get(const std::pair<_Tp1, _Tp2>&& __in) noexcept 1586: { return __pair_get<_Int>::__const_move_get(std::move(__in)); } 1586: # 292 "/usr/mipsel-linux-gnu/include/c++/9/utility" 3 1586: template struct _Index_tuple { }; 1586: # 301 "/usr/mipsel-linux-gnu/include/c++/9/utility" 3 1586: template 1586: struct _Build_index_tuple 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: using __type = _Index_tuple<__integer_pack(_Num)...>; 1586: 1586: }; 1586: # 396 "/usr/mipsel-linux-gnu/include/c++/9/utility" 3 1586: 1586: } 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_ptr.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/tuple" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/c++/9/tuple" 3 1586: 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/tuple" 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/array" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/c++/9/array" 3 1586: 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/array" 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/stdexcept" 1 3 1586: # 36 "/usr/mipsel-linux-gnu/include/c++/9/stdexcept" 3 1586: 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/stdexcept" 3 1586: 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: struct __cow_string 1586: { 1586: union { 1586: const char* _M_p; 1586: char _M_bytes[sizeof(const char*)]; 1586: }; 1586: 1586: __cow_string(); 1586: __cow_string(const std::string&); 1586: __cow_string(const char*, size_t); 1586: __cow_string(const __cow_string&) noexcept; 1586: __cow_string& operator=(const __cow_string&) noexcept; 1586: ~__cow_string(); 1586: 1586: __cow_string(__cow_string&&) noexcept; 1586: __cow_string& operator=(__cow_string&&) noexcept; 1586: 1586: }; 1586: 1586: typedef basic_string __sso_string; 1586: # 113 "/usr/mipsel-linux-gnu/include/c++/9/stdexcept" 3 1586: class logic_error : public exception 1586: { 1586: __cow_string _M_msg; 1586: 1586: public: 1586: 1586: explicit 1586: logic_error(const string& __arg) ; 1586: 1586: 1586: explicit 1586: logic_error(const char*) ; 1586: 1586: logic_error(logic_error&&) noexcept; 1586: logic_error& operator=(logic_error&&) noexcept; 1586: 1586: 1586: 1586: logic_error(const logic_error&) noexcept; 1586: logic_error& operator=(const logic_error&) noexcept; 1586: 1586: 1586: 1586: 1586: 1586: virtual ~logic_error() noexcept; 1586: 1586: 1586: 1586: virtual const char* 1586: what() const noexcept; 1586: 1586: 1586: 1586: 1586: 1586: }; 1586: 1586: 1586: 1586: class domain_error : public logic_error 1586: { 1586: public: 1586: explicit domain_error(const string& __arg) ; 1586: 1586: explicit domain_error(const char*) ; 1586: domain_error(const domain_error&) = default; 1586: domain_error& operator=(const domain_error&) = default; 1586: domain_error(domain_error&&) = default; 1586: domain_error& operator=(domain_error&&) = default; 1586: 1586: virtual ~domain_error() noexcept; 1586: }; 1586: 1586: 1586: class invalid_argument : public logic_error 1586: { 1586: public: 1586: explicit invalid_argument(const string& __arg) ; 1586: 1586: explicit invalid_argument(const char*) ; 1586: invalid_argument(const invalid_argument&) = default; 1586: invalid_argument& operator=(const invalid_argument&) = default; 1586: invalid_argument(invalid_argument&&) = default; 1586: invalid_argument& operator=(invalid_argument&&) = default; 1586: 1586: virtual ~invalid_argument() noexcept; 1586: }; 1586: 1586: 1586: 1586: class length_error : public logic_error 1586: { 1586: public: 1586: explicit length_error(const string& __arg) ; 1586: 1586: explicit length_error(const char*) ; 1586: length_error(const length_error&) = default; 1586: length_error& operator=(const length_error&) = default; 1586: length_error(length_error&&) = default; 1586: length_error& operator=(length_error&&) = default; 1586: 1586: virtual ~length_error() noexcept; 1586: }; 1586: 1586: 1586: 1586: class out_of_range : public logic_error 1586: { 1586: public: 1586: explicit out_of_range(const string& __arg) ; 1586: 1586: explicit out_of_range(const char*) ; 1586: out_of_range(const out_of_range&) = default; 1586: out_of_range& operator=(const out_of_range&) = default; 1586: out_of_range(out_of_range&&) = default; 1586: out_of_range& operator=(out_of_range&&) = default; 1586: 1586: virtual ~out_of_range() noexcept; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: class runtime_error : public exception 1586: { 1586: __cow_string _M_msg; 1586: 1586: public: 1586: 1586: explicit 1586: runtime_error(const string& __arg) ; 1586: 1586: 1586: explicit 1586: runtime_error(const char*) ; 1586: 1586: runtime_error(runtime_error&&) noexcept; 1586: runtime_error& operator=(runtime_error&&) noexcept; 1586: 1586: 1586: 1586: runtime_error(const runtime_error&) noexcept; 1586: runtime_error& operator=(const runtime_error&) noexcept; 1586: 1586: 1586: 1586: 1586: 1586: virtual ~runtime_error() noexcept; 1586: 1586: 1586: 1586: virtual const char* 1586: what() const noexcept; 1586: 1586: 1586: 1586: 1586: 1586: }; 1586: 1586: 1586: class range_error : public runtime_error 1586: { 1586: public: 1586: explicit range_error(const string& __arg) ; 1586: 1586: explicit range_error(const char*) ; 1586: range_error(const range_error&) = default; 1586: range_error& operator=(const range_error&) = default; 1586: range_error(range_error&&) = default; 1586: range_error& operator=(range_error&&) = default; 1586: 1586: virtual ~range_error() noexcept; 1586: }; 1586: 1586: 1586: class overflow_error : public runtime_error 1586: { 1586: public: 1586: explicit overflow_error(const string& __arg) ; 1586: 1586: explicit overflow_error(const char*) ; 1586: overflow_error(const overflow_error&) = default; 1586: overflow_error& operator=(const overflow_error&) = default; 1586: overflow_error(overflow_error&&) = default; 1586: overflow_error& operator=(overflow_error&&) = default; 1586: 1586: virtual ~overflow_error() noexcept; 1586: }; 1586: 1586: 1586: class underflow_error : public runtime_error 1586: { 1586: public: 1586: explicit underflow_error(const string& __arg) ; 1586: 1586: explicit underflow_error(const char*) ; 1586: underflow_error(const underflow_error&) = default; 1586: underflow_error& operator=(const underflow_error&) = default; 1586: underflow_error(underflow_error&&) = default; 1586: underflow_error& operator=(underflow_error&&) = default; 1586: 1586: virtual ~underflow_error() noexcept; 1586: }; 1586: 1586: 1586: 1586: 1586: } 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/array" 2 3 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: template 1586: struct __array_traits 1586: { 1586: typedef _Tp _Type[_Nm]; 1586: typedef __is_swappable<_Tp> _Is_swappable; 1586: typedef __is_nothrow_swappable<_Tp> _Is_nothrow_swappable; 1586: 1586: static constexpr _Tp& 1586: _S_ref(const _Type& __t, std::size_t __n) noexcept 1586: { return const_cast<_Tp&>(__t[__n]); } 1586: 1586: static constexpr _Tp* 1586: _S_ptr(const _Type& __t) noexcept 1586: { return const_cast<_Tp*>(__t); } 1586: }; 1586: 1586: template 1586: struct __array_traits<_Tp, 0> 1586: { 1586: struct _Type { }; 1586: typedef true_type _Is_swappable; 1586: typedef true_type _Is_nothrow_swappable; 1586: 1586: static constexpr _Tp& 1586: _S_ref(const _Type&, std::size_t) noexcept 1586: { return *static_cast<_Tp*>(nullptr); } 1586: 1586: static constexpr _Tp* 1586: _S_ptr(const _Type&) noexcept 1586: { return nullptr; } 1586: }; 1586: # 93 "/usr/mipsel-linux-gnu/include/c++/9/array" 3 1586: template 1586: struct array 1586: { 1586: typedef _Tp value_type; 1586: typedef value_type* pointer; 1586: typedef const value_type* const_pointer; 1586: typedef value_type& reference; 1586: typedef const value_type& const_reference; 1586: typedef value_type* iterator; 1586: typedef const value_type* const_iterator; 1586: typedef std::size_t size_type; 1586: typedef std::ptrdiff_t difference_type; 1586: typedef std::reverse_iterator reverse_iterator; 1586: typedef std::reverse_iterator const_reverse_iterator; 1586: 1586: 1586: typedef std::__array_traits<_Tp, _Nm> _AT_Type; 1586: typename _AT_Type::_Type _M_elems; 1586: 1586: 1586: 1586: 1586: void 1586: fill(const value_type& __u) 1586: { std::fill_n(begin(), size(), __u); } 1586: 1586: void 1586: swap(array& __other) 1586: noexcept(_AT_Type::_Is_nothrow_swappable::value) 1586: { std::swap_ranges(begin(), end(), __other.begin()); } 1586: 1586: 1586: iterator 1586: begin() noexcept 1586: { return iterator(data()); } 1586: 1586: const_iterator 1586: begin() const noexcept 1586: { return const_iterator(data()); } 1586: 1586: iterator 1586: end() noexcept 1586: { return iterator(data() + _Nm); } 1586: 1586: const_iterator 1586: end() const noexcept 1586: { return const_iterator(data() + _Nm); } 1586: 1586: reverse_iterator 1586: rbegin() noexcept 1586: { return reverse_iterator(end()); } 1586: 1586: const_reverse_iterator 1586: rbegin() const noexcept 1586: { return const_reverse_iterator(end()); } 1586: 1586: reverse_iterator 1586: rend() noexcept 1586: { return reverse_iterator(begin()); } 1586: 1586: const_reverse_iterator 1586: rend() const noexcept 1586: { return const_reverse_iterator(begin()); } 1586: 1586: const_iterator 1586: cbegin() const noexcept 1586: { return const_iterator(data()); } 1586: 1586: const_iterator 1586: cend() const noexcept 1586: { return const_iterator(data() + _Nm); } 1586: 1586: const_reverse_iterator 1586: crbegin() const noexcept 1586: { return const_reverse_iterator(end()); } 1586: 1586: const_reverse_iterator 1586: crend() const noexcept 1586: { return const_reverse_iterator(begin()); } 1586: 1586: 1586: constexpr size_type 1586: size() const noexcept { return _Nm; } 1586: 1586: constexpr size_type 1586: max_size() const noexcept { return _Nm; } 1586: 1586: constexpr bool 1586: empty() const noexcept { return size() == 0; } 1586: 1586: 1586: reference 1586: operator[](size_type __n) noexcept 1586: { return _AT_Type::_S_ref(_M_elems, __n); } 1586: 1586: constexpr const_reference 1586: operator[](size_type __n) const noexcept 1586: { return _AT_Type::_S_ref(_M_elems, __n); } 1586: 1586: reference 1586: at(size_type __n) 1586: { 1586: if (__n >= _Nm) 1586: std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 1586: , 1586: __n, _Nm); 1586: return _AT_Type::_S_ref(_M_elems, __n); 1586: } 1586: 1586: constexpr const_reference 1586: at(size_type __n) const 1586: { 1586: 1586: 1586: return __n < _Nm ? _AT_Type::_S_ref(_M_elems, __n) 1586: : (std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 1586: , 1586: __n, _Nm), 1586: _AT_Type::_S_ref(_M_elems, 0)); 1586: } 1586: 1586: reference 1586: front() noexcept 1586: { return *begin(); } 1586: 1586: constexpr const_reference 1586: front() const noexcept 1586: { return _AT_Type::_S_ref(_M_elems, 0); } 1586: 1586: reference 1586: back() noexcept 1586: { return _Nm ? *(end() - 1) : *end(); } 1586: 1586: constexpr const_reference 1586: back() const noexcept 1586: { 1586: return _Nm ? _AT_Type::_S_ref(_M_elems, _Nm - 1) 1586: : _AT_Type::_S_ref(_M_elems, 0); 1586: } 1586: 1586: pointer 1586: data() noexcept 1586: { return _AT_Type::_S_ptr(_M_elems); } 1586: 1586: const_pointer 1586: data() const noexcept 1586: { return _AT_Type::_S_ptr(_M_elems); } 1586: }; 1586: # 250 "/usr/mipsel-linux-gnu/include/c++/9/array" 3 1586: template 1586: inline bool 1586: operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 1586: { return std::equal(__one.begin(), __one.end(), __two.begin()); } 1586: 1586: template 1586: inline bool 1586: operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 1586: { return !(__one == __two); } 1586: 1586: template 1586: inline bool 1586: operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b) 1586: { 1586: return std::lexicographical_compare(__a.begin(), __a.end(), 1586: __b.begin(), __b.end()); 1586: } 1586: 1586: template 1586: inline bool 1586: operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 1586: { return __two < __one; } 1586: 1586: template 1586: inline bool 1586: operator<=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 1586: { return !(__one > __two); } 1586: 1586: template 1586: inline bool 1586: operator>=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 1586: { return !(__one < __two); } 1586: 1586: 1586: template 1586: inline 1586: 1586: 1586: 1586: 1586: 1586: 1586: void 1586: 1586: swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two) 1586: noexcept(noexcept(__one.swap(__two))) 1586: { __one.swap(__two); } 1586: # 305 "/usr/mipsel-linux-gnu/include/c++/9/array" 3 1586: template 1586: constexpr _Tp& 1586: get(array<_Tp, _Nm>& __arr) noexcept 1586: { 1586: static_assert(_Int < _Nm, "array index is within bounds"); 1586: return std::__array_traits<_Tp, _Nm>:: 1586: _S_ref(__arr._M_elems, _Int); 1586: } 1586: 1586: template 1586: constexpr _Tp&& 1586: get(array<_Tp, _Nm>&& __arr) noexcept 1586: { 1586: static_assert(_Int < _Nm, "array index is within bounds"); 1586: return std::move(std::get<_Int>(__arr)); 1586: } 1586: 1586: template 1586: constexpr const _Tp& 1586: get(const array<_Tp, _Nm>& __arr) noexcept 1586: { 1586: static_assert(_Int < _Nm, "array index is within bounds"); 1586: return std::__array_traits<_Tp, _Nm>:: 1586: _S_ref(__arr._M_elems, _Int); 1586: } 1586: 1586: template 1586: constexpr const _Tp&& 1586: get(const array<_Tp, _Nm>&& __arr) noexcept 1586: { 1586: static_assert(_Int < _Nm, "array index is within bounds"); 1586: return std::move(std::get<_Int>(__arr)); 1586: } 1586: 1586: 1586: } 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct tuple_size; 1586: 1586: 1586: template 1586: struct tuple_size> 1586: : public integral_constant { }; 1586: 1586: 1586: template 1586: struct tuple_element; 1586: 1586: 1586: template 1586: struct tuple_element<_Int, std::array<_Tp, _Nm>> 1586: { 1586: static_assert(_Int < _Nm, "index is out of bounds"); 1586: typedef _Tp type; 1586: }; 1586: 1586: template 1586: struct __is_tuple_like_impl> : true_type 1586: { }; 1586: 1586: 1586: } 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/tuple" 2 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/invoke.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/invoke.h" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/invoke.h" 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 52 "/usr/mipsel-linux-gnu/include/c++/9/bits/invoke.h" 3 1586: template::type> 1586: constexpr _Up&& 1586: __invfwd(typename remove_reference<_Tp>::type& __t) noexcept 1586: { return static_cast<_Up&&>(__t); } 1586: 1586: template 1586: constexpr _Res 1586: __invoke_impl(__invoke_other, _Fn&& __f, _Args&&... __args) 1586: { return std::forward<_Fn>(__f)(std::forward<_Args>(__args)...); } 1586: 1586: template 1586: constexpr _Res 1586: __invoke_impl(__invoke_memfun_ref, _MemFun&& __f, _Tp&& __t, 1586: _Args&&... __args) 1586: { return (__invfwd<_Tp>(__t).*__f)(std::forward<_Args>(__args)...); } 1586: 1586: template 1586: constexpr _Res 1586: __invoke_impl(__invoke_memfun_deref, _MemFun&& __f, _Tp&& __t, 1586: _Args&&... __args) 1586: { 1586: return ((*std::forward<_Tp>(__t)).*__f)(std::forward<_Args>(__args)...); 1586: } 1586: 1586: template 1586: constexpr _Res 1586: __invoke_impl(__invoke_memobj_ref, _MemPtr&& __f, _Tp&& __t) 1586: { return __invfwd<_Tp>(__t).*__f; } 1586: 1586: template 1586: constexpr _Res 1586: __invoke_impl(__invoke_memobj_deref, _MemPtr&& __f, _Tp&& __t) 1586: { return (*std::forward<_Tp>(__t)).*__f; } 1586: 1586: 1586: template 1586: constexpr typename __invoke_result<_Callable, _Args...>::type 1586: __invoke(_Callable&& __fn, _Args&&... __args) 1586: noexcept(__is_nothrow_invocable<_Callable, _Args...>::value) 1586: { 1586: using __result = __invoke_result<_Callable, _Args...>; 1586: using __type = typename __result::type; 1586: using __tag = typename __result::__invoke_type; 1586: return std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), 1586: std::forward<_Args>(__args)...); 1586: } 1586: 1586: 1586: } 1586: # 42 "/usr/mipsel-linux-gnu/include/c++/9/tuple" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: class tuple; 1586: 1586: template 1586: struct __is_empty_non_tuple : is_empty<_Tp> { }; 1586: 1586: 1586: template 1586: struct __is_empty_non_tuple> : false_type { }; 1586: 1586: 1586: template 1586: using __empty_not_final 1586: = typename conditional<__is_final(_Tp), false_type, 1586: __is_empty_non_tuple<_Tp>>::type; 1586: 1586: template::value> 1586: struct _Head_base; 1586: 1586: template 1586: struct _Head_base<_Idx, _Head, true> 1586: : public _Head 1586: { 1586: constexpr _Head_base() 1586: : _Head() { } 1586: 1586: constexpr _Head_base(const _Head& __h) 1586: : _Head(__h) { } 1586: 1586: constexpr _Head_base(const _Head_base&) = default; 1586: constexpr _Head_base(_Head_base&&) = default; 1586: 1586: template 1586: constexpr _Head_base(_UHead&& __h) 1586: : _Head(std::forward<_UHead>(__h)) { } 1586: 1586: _Head_base(allocator_arg_t, __uses_alloc0) 1586: : _Head() { } 1586: 1586: template 1586: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 1586: : _Head(allocator_arg, *__a._M_a) { } 1586: 1586: template 1586: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 1586: : _Head(*__a._M_a) { } 1586: 1586: template 1586: _Head_base(__uses_alloc0, _UHead&& __uhead) 1586: : _Head(std::forward<_UHead>(__uhead)) { } 1586: 1586: template 1586: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 1586: : _Head(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) { } 1586: 1586: template 1586: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 1586: : _Head(std::forward<_UHead>(__uhead), *__a._M_a) { } 1586: 1586: static constexpr _Head& 1586: _M_head(_Head_base& __b) noexcept { return __b; } 1586: 1586: static constexpr const _Head& 1586: _M_head(const _Head_base& __b) noexcept { return __b; } 1586: }; 1586: 1586: template 1586: struct _Head_base<_Idx, _Head, false> 1586: { 1586: constexpr _Head_base() 1586: : _M_head_impl() { } 1586: 1586: constexpr _Head_base(const _Head& __h) 1586: : _M_head_impl(__h) { } 1586: 1586: constexpr _Head_base(const _Head_base&) = default; 1586: constexpr _Head_base(_Head_base&&) = default; 1586: 1586: template 1586: constexpr _Head_base(_UHead&& __h) 1586: : _M_head_impl(std::forward<_UHead>(__h)) { } 1586: 1586: _Head_base(allocator_arg_t, __uses_alloc0) 1586: : _M_head_impl() { } 1586: 1586: template 1586: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 1586: : _M_head_impl(allocator_arg, *__a._M_a) { } 1586: 1586: template 1586: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 1586: : _M_head_impl(*__a._M_a) { } 1586: 1586: template 1586: _Head_base(__uses_alloc0, _UHead&& __uhead) 1586: : _M_head_impl(std::forward<_UHead>(__uhead)) { } 1586: 1586: template 1586: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 1586: : _M_head_impl(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) 1586: { } 1586: 1586: template 1586: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 1586: : _M_head_impl(std::forward<_UHead>(__uhead), *__a._M_a) { } 1586: 1586: static constexpr _Head& 1586: _M_head(_Head_base& __b) noexcept { return __b._M_head_impl; } 1586: 1586: static constexpr const _Head& 1586: _M_head(const _Head_base& __b) noexcept { return __b._M_head_impl; } 1586: 1586: _Head _M_head_impl; 1586: }; 1586: # 176 "/usr/mipsel-linux-gnu/include/c++/9/tuple" 3 1586: template 1586: struct _Tuple_impl; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct _Tuple_impl<_Idx, _Head, _Tail...> 1586: : public _Tuple_impl<_Idx + 1, _Tail...>, 1586: private _Head_base<_Idx, _Head> 1586: { 1586: template friend class _Tuple_impl; 1586: 1586: typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited; 1586: typedef _Head_base<_Idx, _Head> _Base; 1586: 1586: static constexpr _Head& 1586: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 1586: 1586: static constexpr const _Head& 1586: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 1586: 1586: static constexpr _Inherited& 1586: _M_tail(_Tuple_impl& __t) noexcept { return __t; } 1586: 1586: static constexpr const _Inherited& 1586: _M_tail(const _Tuple_impl& __t) noexcept { return __t; } 1586: 1586: constexpr _Tuple_impl() 1586: : _Inherited(), _Base() { } 1586: 1586: explicit 1586: constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail) 1586: : _Inherited(__tail...), _Base(__head) { } 1586: 1586: template::type> 1586: explicit 1586: constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail) 1586: : _Inherited(std::forward<_UTail>(__tail)...), 1586: _Base(std::forward<_UHead>(__head)) { } 1586: 1586: constexpr _Tuple_impl(const _Tuple_impl&) = default; 1586: 1586: 1586: 1586: _Tuple_impl& operator=(const _Tuple_impl&) = delete; 1586: 1586: constexpr 1586: _Tuple_impl(_Tuple_impl&& __in) 1586: noexcept(__and_, 1586: is_nothrow_move_constructible<_Inherited>>::value) 1586: : _Inherited(std::move(_M_tail(__in))), 1586: _Base(std::forward<_Head>(_M_head(__in))) { } 1586: 1586: template 1586: constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in) 1586: : _Inherited(_Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), 1586: _Base(_Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } 1586: 1586: template 1586: constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 1586: : _Inherited(std::move 1586: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 1586: _Base(std::forward<_UHead> 1586: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } 1586: 1586: template 1586: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 1586: : _Inherited(__tag, __a), 1586: _Base(__tag, __use_alloc<_Head>(__a)) { } 1586: 1586: template 1586: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 1586: const _Head& __head, const _Tail&... __tail) 1586: : _Inherited(__tag, __a, __tail...), 1586: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } 1586: 1586: template::type> 1586: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 1586: _UHead&& __head, _UTail&&... __tail) 1586: : _Inherited(__tag, __a, std::forward<_UTail>(__tail)...), 1586: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 1586: std::forward<_UHead>(__head)) { } 1586: 1586: template 1586: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 1586: const _Tuple_impl& __in) 1586: : _Inherited(__tag, __a, _M_tail(__in)), 1586: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } 1586: 1586: template 1586: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 1586: _Tuple_impl&& __in) 1586: : _Inherited(__tag, __a, std::move(_M_tail(__in))), 1586: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 1586: std::forward<_Head>(_M_head(__in))) { } 1586: 1586: template 1586: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 1586: const _Tuple_impl<_Idx, _UElements...>& __in) 1586: : _Inherited(__tag, __a, 1586: _Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), 1586: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 1586: _Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } 1586: 1586: template 1586: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 1586: _Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 1586: : _Inherited(__tag, __a, std::move 1586: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 1586: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 1586: std::forward<_UHead> 1586: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } 1586: 1586: template 1586: void 1586: _M_assign(const _Tuple_impl<_Idx, _UElements...>& __in) 1586: { 1586: _M_head(*this) = _Tuple_impl<_Idx, _UElements...>::_M_head(__in); 1586: _M_tail(*this)._M_assign( 1586: _Tuple_impl<_Idx, _UElements...>::_M_tail(__in)); 1586: } 1586: 1586: template 1586: void 1586: _M_assign(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 1586: { 1586: _M_head(*this) = std::forward<_UHead> 1586: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in)); 1586: _M_tail(*this)._M_assign( 1586: std::move(_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))); 1586: } 1586: 1586: protected: 1586: void 1586: _M_swap(_Tuple_impl& __in) 1586: { 1586: using std::swap; 1586: swap(_M_head(*this), _M_head(__in)); 1586: _Inherited::_M_swap(_M_tail(__in)); 1586: } 1586: }; 1586: 1586: 1586: template 1586: struct _Tuple_impl<_Idx, _Head> 1586: : private _Head_base<_Idx, _Head> 1586: { 1586: template friend class _Tuple_impl; 1586: 1586: typedef _Head_base<_Idx, _Head> _Base; 1586: 1586: static constexpr _Head& 1586: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 1586: 1586: static constexpr const _Head& 1586: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 1586: 1586: constexpr _Tuple_impl() 1586: : _Base() { } 1586: 1586: explicit 1586: constexpr _Tuple_impl(const _Head& __head) 1586: : _Base(__head) { } 1586: 1586: template 1586: explicit 1586: constexpr _Tuple_impl(_UHead&& __head) 1586: : _Base(std::forward<_UHead>(__head)) { } 1586: 1586: constexpr _Tuple_impl(const _Tuple_impl&) = default; 1586: 1586: 1586: 1586: _Tuple_impl& operator=(const _Tuple_impl&) = delete; 1586: 1586: constexpr 1586: _Tuple_impl(_Tuple_impl&& __in) 1586: noexcept(is_nothrow_move_constructible<_Head>::value) 1586: : _Base(std::forward<_Head>(_M_head(__in))) { } 1586: 1586: template 1586: constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UHead>& __in) 1586: : _Base(_Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } 1586: 1586: template 1586: constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead>&& __in) 1586: : _Base(std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 1586: { } 1586: 1586: template 1586: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 1586: : _Base(__tag, __use_alloc<_Head>(__a)) { } 1586: 1586: template 1586: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 1586: const _Head& __head) 1586: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } 1586: 1586: template 1586: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 1586: _UHead&& __head) 1586: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 1586: std::forward<_UHead>(__head)) { } 1586: 1586: template 1586: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 1586: const _Tuple_impl& __in) 1586: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } 1586: 1586: template 1586: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 1586: _Tuple_impl&& __in) 1586: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 1586: std::forward<_Head>(_M_head(__in))) { } 1586: 1586: template 1586: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 1586: const _Tuple_impl<_Idx, _UHead>& __in) 1586: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 1586: _Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } 1586: 1586: template 1586: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 1586: _Tuple_impl<_Idx, _UHead>&& __in) 1586: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 1586: std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 1586: { } 1586: 1586: template 1586: void 1586: _M_assign(const _Tuple_impl<_Idx, _UHead>& __in) 1586: { 1586: _M_head(*this) = _Tuple_impl<_Idx, _UHead>::_M_head(__in); 1586: } 1586: 1586: template 1586: void 1586: _M_assign(_Tuple_impl<_Idx, _UHead>&& __in) 1586: { 1586: _M_head(*this) 1586: = std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in)); 1586: } 1586: 1586: protected: 1586: void 1586: _M_swap(_Tuple_impl& __in) 1586: { 1586: using std::swap; 1586: swap(_M_head(*this), _M_head(__in)); 1586: } 1586: }; 1586: 1586: 1586: 1586: template 1586: struct _TC 1586: { 1586: template 1586: static constexpr bool _ConstructibleTuple() 1586: { 1586: return __and_...>::value; 1586: } 1586: 1586: template 1586: static constexpr bool _ImplicitlyConvertibleTuple() 1586: { 1586: return __and_...>::value; 1586: } 1586: 1586: template 1586: static constexpr bool _MoveConstructibleTuple() 1586: { 1586: return __and_...>::value; 1586: } 1586: 1586: template 1586: static constexpr bool _ImplicitlyMoveConvertibleTuple() 1586: { 1586: return __and_...>::value; 1586: } 1586: 1586: template 1586: static constexpr bool _NonNestedTuple() 1586: { 1586: return __and_<__not_, 1586: __remove_cvref_t<_SrcTuple>>>, 1586: __not_>, 1586: __not_> 1586: >::value; 1586: } 1586: 1586: template 1586: static constexpr bool _NotSameTuple() 1586: { 1586: return __not_, 1586: __remove_cvref_t<_UElements>...>>::value; 1586: } 1586: }; 1586: 1586: template 1586: struct _TC 1586: { 1586: template 1586: static constexpr bool _ConstructibleTuple() 1586: { 1586: return false; 1586: } 1586: 1586: template 1586: static constexpr bool _ImplicitlyConvertibleTuple() 1586: { 1586: return false; 1586: } 1586: 1586: template 1586: static constexpr bool _MoveConstructibleTuple() 1586: { 1586: return false; 1586: } 1586: 1586: template 1586: static constexpr bool _ImplicitlyMoveConvertibleTuple() 1586: { 1586: return false; 1586: } 1586: 1586: template 1586: static constexpr bool _NonNestedTuple() 1586: { 1586: return true; 1586: } 1586: 1586: template 1586: static constexpr bool _NotSameTuple() 1586: { 1586: return true; 1586: } 1586: }; 1586: 1586: 1586: template 1586: class tuple : public _Tuple_impl<0, _Elements...> 1586: { 1586: typedef _Tuple_impl<0, _Elements...> _Inherited; 1586: 1586: 1586: 1586: template 1586: struct _TC2 1586: { 1586: static constexpr bool _DefaultConstructibleTuple() 1586: { 1586: return __and_...>::value; 1586: } 1586: static constexpr bool _ImplicitlyDefaultConstructibleTuple() 1586: { 1586: return __and_<__is_implicitly_default_constructible<_Elements>...> 1586: ::value; 1586: } 1586: }; 1586: 1586: template 1586: static constexpr 1586: __enable_if_t 1586: __assignable() 1586: { return __and_...>::value; } 1586: 1586: template 1586: static constexpr bool __nothrow_assignable() 1586: { 1586: return 1586: __and_...>::value; 1586: } 1586: 1586: public: 1586: template:: 1586: _ImplicitlyDefaultConstructibleTuple(), 1586: bool>::type = true> 1586: constexpr tuple() 1586: : _Inherited() { } 1586: 1586: template:: 1586: _DefaultConstructibleTuple() 1586: && 1586: !_TC2<_Dummy>:: 1586: _ImplicitlyDefaultConstructibleTuple(), 1586: bool>::type = false> 1586: explicit constexpr tuple() 1586: : _Inherited() { } 1586: 1586: 1586: 1586: template using _TCC = 1586: _TC::value, 1586: _Elements...>; 1586: 1586: template::template 1586: _ConstructibleTuple<_Elements...>() 1586: && _TCC<_Dummy>::template 1586: _ImplicitlyConvertibleTuple<_Elements...>() 1586: && (sizeof...(_Elements) >= 1), 1586: bool>::type=true> 1586: constexpr tuple(const _Elements&... __elements) 1586: : _Inherited(__elements...) { } 1586: 1586: template::template 1586: _ConstructibleTuple<_Elements...>() 1586: && !_TCC<_Dummy>::template 1586: _ImplicitlyConvertibleTuple<_Elements...>() 1586: && (sizeof...(_Elements) >= 1), 1586: bool>::type=false> 1586: explicit constexpr tuple(const _Elements&... __elements) 1586: : _Inherited(__elements...) { } 1586: 1586: 1586: 1586: template using _TMC = 1586: _TC<(sizeof...(_Elements) == sizeof...(_UElements)) 1586: && (_TC<(sizeof...(_UElements)==1), _Elements...>:: 1586: template _NotSameTuple<_UElements...>()), 1586: _Elements...>; 1586: 1586: 1586: 1586: template using _TMCT = 1586: _TC<(sizeof...(_Elements) == sizeof...(_UElements)) 1586: && !is_same, 1586: tuple<_UElements...>>::value, 1586: _Elements...>; 1586: 1586: template::template 1586: _MoveConstructibleTuple<_UElements...>() 1586: && _TMC<_UElements...>::template 1586: _ImplicitlyMoveConvertibleTuple<_UElements...>() 1586: && (sizeof...(_Elements) >= 1), 1586: bool>::type=true> 1586: constexpr tuple(_UElements&&... __elements) 1586: : _Inherited(std::forward<_UElements>(__elements)...) { } 1586: 1586: template::template 1586: _MoveConstructibleTuple<_UElements...>() 1586: && !_TMC<_UElements...>::template 1586: _ImplicitlyMoveConvertibleTuple<_UElements...>() 1586: && (sizeof...(_Elements) >= 1), 1586: bool>::type=false> 1586: explicit constexpr tuple(_UElements&&... __elements) 1586: : _Inherited(std::forward<_UElements>(__elements)...) { } 1586: 1586: constexpr tuple(const tuple&) = default; 1586: 1586: constexpr tuple(tuple&&) = default; 1586: 1586: 1586: 1586: template using _TNTC = 1586: _TC::value && sizeof...(_Elements) == 1, 1586: _Elements...>; 1586: 1586: template::template 1586: _ConstructibleTuple<_UElements...>() 1586: && _TMCT<_UElements...>::template 1586: _ImplicitlyConvertibleTuple<_UElements...>() 1586: && _TNTC<_Dummy>::template 1586: _NonNestedTuple&>(), 1586: bool>::type=true> 1586: constexpr tuple(const tuple<_UElements...>& __in) 1586: : _Inherited(static_cast&>(__in)) 1586: { } 1586: 1586: template::template 1586: _ConstructibleTuple<_UElements...>() 1586: && !_TMCT<_UElements...>::template 1586: _ImplicitlyConvertibleTuple<_UElements...>() 1586: && _TNTC<_Dummy>::template 1586: _NonNestedTuple&>(), 1586: bool>::type=false> 1586: explicit constexpr tuple(const tuple<_UElements...>& __in) 1586: : _Inherited(static_cast&>(__in)) 1586: { } 1586: 1586: template::template 1586: _MoveConstructibleTuple<_UElements...>() 1586: && _TMCT<_UElements...>::template 1586: _ImplicitlyMoveConvertibleTuple<_UElements...>() 1586: && _TNTC<_Dummy>::template 1586: _NonNestedTuple&&>(), 1586: bool>::type=true> 1586: constexpr tuple(tuple<_UElements...>&& __in) 1586: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } 1586: 1586: template::template 1586: _MoveConstructibleTuple<_UElements...>() 1586: && !_TMCT<_UElements...>::template 1586: _ImplicitlyMoveConvertibleTuple<_UElements...>() 1586: && _TNTC<_Dummy>::template 1586: _NonNestedTuple&&>(), 1586: bool>::type=false> 1586: explicit constexpr tuple(tuple<_UElements...>&& __in) 1586: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } 1586: 1586: 1586: 1586: template 1586: tuple(allocator_arg_t __tag, const _Alloc& __a) 1586: : _Inherited(__tag, __a) { } 1586: 1586: template::template 1586: _ConstructibleTuple<_Elements...>() 1586: && _TCC<_Dummy>::template 1586: _ImplicitlyConvertibleTuple<_Elements...>(), 1586: bool>::type=true> 1586: tuple(allocator_arg_t __tag, const _Alloc& __a, 1586: const _Elements&... __elements) 1586: : _Inherited(__tag, __a, __elements...) { } 1586: 1586: template::template 1586: _ConstructibleTuple<_Elements...>() 1586: && !_TCC<_Dummy>::template 1586: _ImplicitlyConvertibleTuple<_Elements...>(), 1586: bool>::type=false> 1586: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 1586: const _Elements&... __elements) 1586: : _Inherited(__tag, __a, __elements...) { } 1586: 1586: template::template 1586: _MoveConstructibleTuple<_UElements...>() 1586: && _TMC<_UElements...>::template 1586: _ImplicitlyMoveConvertibleTuple<_UElements...>(), 1586: bool>::type=true> 1586: tuple(allocator_arg_t __tag, const _Alloc& __a, 1586: _UElements&&... __elements) 1586: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 1586: { } 1586: 1586: template::template 1586: _MoveConstructibleTuple<_UElements...>() 1586: && !_TMC<_UElements...>::template 1586: _ImplicitlyMoveConvertibleTuple<_UElements...>(), 1586: bool>::type=false> 1586: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 1586: _UElements&&... __elements) 1586: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 1586: { } 1586: 1586: template 1586: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 1586: : _Inherited(__tag, __a, static_cast(__in)) { } 1586: 1586: template 1586: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 1586: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 1586: 1586: template::template 1586: _ConstructibleTuple<_UElements...>() 1586: && _TMCT<_UElements...>::template 1586: _ImplicitlyConvertibleTuple<_UElements...>() 1586: && _TNTC<_Dummy>::template 1586: _NonNestedTuple&>(), 1586: bool>::type=true> 1586: tuple(allocator_arg_t __tag, const _Alloc& __a, 1586: const tuple<_UElements...>& __in) 1586: : _Inherited(__tag, __a, 1586: static_cast&>(__in)) 1586: { } 1586: 1586: template::template 1586: _ConstructibleTuple<_UElements...>() 1586: && !_TMCT<_UElements...>::template 1586: _ImplicitlyConvertibleTuple<_UElements...>() 1586: && _TNTC<_Dummy>::template 1586: _NonNestedTuple&>(), 1586: bool>::type=false> 1586: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 1586: const tuple<_UElements...>& __in) 1586: : _Inherited(__tag, __a, 1586: static_cast&>(__in)) 1586: { } 1586: 1586: template::template 1586: _MoveConstructibleTuple<_UElements...>() 1586: && _TMCT<_UElements...>::template 1586: _ImplicitlyMoveConvertibleTuple<_UElements...>() 1586: && _TNTC<_Dummy>::template 1586: _NonNestedTuple&&>(), 1586: bool>::type=true> 1586: tuple(allocator_arg_t __tag, const _Alloc& __a, 1586: tuple<_UElements...>&& __in) 1586: : _Inherited(__tag, __a, 1586: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 1586: { } 1586: 1586: template::template 1586: _MoveConstructibleTuple<_UElements...>() 1586: && !_TMCT<_UElements...>::template 1586: _ImplicitlyMoveConvertibleTuple<_UElements...>() 1586: && _TNTC<_Dummy>::template 1586: _NonNestedTuple&&>(), 1586: bool>::type=false> 1586: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 1586: tuple<_UElements...>&& __in) 1586: : _Inherited(__tag, __a, 1586: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 1586: { } 1586: 1586: 1586: 1586: tuple& 1586: operator=(typename conditional<__assignable(), 1586: const tuple&, 1586: const __nonesuch_no_braces&>::type __in) 1586: noexcept(__nothrow_assignable()) 1586: { 1586: this->_M_assign(__in); 1586: return *this; 1586: } 1586: 1586: tuple& 1586: operator=(typename conditional<__assignable<_Elements...>(), 1586: tuple&&, 1586: __nonesuch_no_braces&&>::type __in) 1586: noexcept(__nothrow_assignable<_Elements...>()) 1586: { 1586: this->_M_assign(std::move(__in)); 1586: return *this; 1586: } 1586: 1586: template 1586: __enable_if_t<__assignable(), tuple&> 1586: operator=(const tuple<_UElements...>& __in) 1586: noexcept(__nothrow_assignable()) 1586: { 1586: this->_M_assign(__in); 1586: return *this; 1586: } 1586: 1586: template 1586: __enable_if_t<__assignable<_UElements...>(), tuple&> 1586: operator=(tuple<_UElements...>&& __in) 1586: noexcept(__nothrow_assignable<_UElements...>()) 1586: { 1586: this->_M_assign(std::move(__in)); 1586: return *this; 1586: } 1586: 1586: 1586: void 1586: swap(tuple& __in) 1586: noexcept(__and_<__is_nothrow_swappable<_Elements>...>::value) 1586: { _Inherited::_M_swap(__in); } 1586: }; 1586: # 875 "/usr/mipsel-linux-gnu/include/c++/9/tuple" 3 1586: template<> 1586: class tuple<> 1586: { 1586: public: 1586: void swap(tuple&) noexcept { } 1586: 1586: 1586: tuple() = default; 1586: 1586: template 1586: tuple(allocator_arg_t, const _Alloc&) { } 1586: template 1586: tuple(allocator_arg_t, const _Alloc&, const tuple&) { } 1586: }; 1586: 1586: 1586: 1586: template 1586: class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2> 1586: { 1586: typedef _Tuple_impl<0, _T1, _T2> _Inherited; 1586: 1586: template 1586: static constexpr bool __assignable() 1586: { 1586: return __and_, 1586: is_assignable<_T2&, _U2>>::value; 1586: } 1586: 1586: template 1586: static constexpr bool __nothrow_assignable() 1586: { 1586: return __and_, 1586: is_nothrow_assignable<_T2&, _U2>>::value; 1586: } 1586: 1586: public: 1586: template , 1586: __is_implicitly_default_constructible<_U2>> 1586: ::value, bool>::type = true> 1586: constexpr tuple() 1586: : _Inherited() { } 1586: 1586: template , 1586: is_default_constructible<_U2>, 1586: __not_< 1586: __and_<__is_implicitly_default_constructible<_U1>, 1586: __is_implicitly_default_constructible<_U2>>>> 1586: ::value, bool>::type = false> 1586: explicit constexpr tuple() 1586: : _Inherited() { } 1586: 1586: 1586: 1586: template using _TCC = 1586: _TC::value, _T1, _T2>; 1586: 1586: template::template 1586: _ConstructibleTuple<_T1, _T2>() 1586: && _TCC<_Dummy>::template 1586: _ImplicitlyConvertibleTuple<_T1, _T2>(), 1586: bool>::type = true> 1586: constexpr tuple(const _T1& __a1, const _T2& __a2) 1586: : _Inherited(__a1, __a2) { } 1586: 1586: template::template 1586: _ConstructibleTuple<_T1, _T2>() 1586: && !_TCC<_Dummy>::template 1586: _ImplicitlyConvertibleTuple<_T1, _T2>(), 1586: bool>::type = false> 1586: explicit constexpr tuple(const _T1& __a1, const _T2& __a2) 1586: : _Inherited(__a1, __a2) { } 1586: 1586: 1586: 1586: using _TMC = _TC; 1586: 1586: template() 1586: && _TMC::template 1586: _ImplicitlyMoveConvertibleTuple<_U1, _U2>() 1586: && !is_same<__remove_cvref_t<_U1>, allocator_arg_t>::value, 1586: bool>::type = true> 1586: constexpr tuple(_U1&& __a1, _U2&& __a2) 1586: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } 1586: 1586: template() 1586: && !_TMC::template 1586: _ImplicitlyMoveConvertibleTuple<_U1, _U2>() 1586: && !is_same<__remove_cvref_t<_U1>, allocator_arg_t>::value, 1586: bool>::type = false> 1586: explicit constexpr tuple(_U1&& __a1, _U2&& __a2) 1586: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } 1586: 1586: constexpr tuple(const tuple&) = default; 1586: 1586: constexpr tuple(tuple&&) = default; 1586: 1586: template() 1586: && _TMC::template 1586: _ImplicitlyConvertibleTuple<_U1, _U2>(), 1586: bool>::type = true> 1586: constexpr tuple(const tuple<_U1, _U2>& __in) 1586: : _Inherited(static_cast&>(__in)) { } 1586: 1586: template() 1586: && !_TMC::template 1586: _ImplicitlyConvertibleTuple<_U1, _U2>(), 1586: bool>::type = false> 1586: explicit constexpr tuple(const tuple<_U1, _U2>& __in) 1586: : _Inherited(static_cast&>(__in)) { } 1586: 1586: template() 1586: && _TMC::template 1586: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 1586: bool>::type = true> 1586: constexpr tuple(tuple<_U1, _U2>&& __in) 1586: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } 1586: 1586: template() 1586: && !_TMC::template 1586: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 1586: bool>::type = false> 1586: explicit constexpr tuple(tuple<_U1, _U2>&& __in) 1586: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } 1586: 1586: template() 1586: && _TMC::template 1586: _ImplicitlyConvertibleTuple<_U1, _U2>(), 1586: bool>::type = true> 1586: constexpr tuple(const pair<_U1, _U2>& __in) 1586: : _Inherited(__in.first, __in.second) { } 1586: 1586: template() 1586: && !_TMC::template 1586: _ImplicitlyConvertibleTuple<_U1, _U2>(), 1586: bool>::type = false> 1586: explicit constexpr tuple(const pair<_U1, _U2>& __in) 1586: : _Inherited(__in.first, __in.second) { } 1586: 1586: template() 1586: && _TMC::template 1586: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 1586: bool>::type = true> 1586: constexpr tuple(pair<_U1, _U2>&& __in) 1586: : _Inherited(std::forward<_U1>(__in.first), 1586: std::forward<_U2>(__in.second)) { } 1586: 1586: template() 1586: && !_TMC::template 1586: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 1586: bool>::type = false> 1586: explicit constexpr tuple(pair<_U1, _U2>&& __in) 1586: : _Inherited(std::forward<_U1>(__in.first), 1586: std::forward<_U2>(__in.second)) { } 1586: 1586: 1586: 1586: template 1586: tuple(allocator_arg_t __tag, const _Alloc& __a) 1586: : _Inherited(__tag, __a) { } 1586: 1586: template::template 1586: _ConstructibleTuple<_T1, _T2>() 1586: && _TCC<_Dummy>::template 1586: _ImplicitlyConvertibleTuple<_T1, _T2>(), 1586: bool>::type=true> 1586: 1586: tuple(allocator_arg_t __tag, const _Alloc& __a, 1586: const _T1& __a1, const _T2& __a2) 1586: : _Inherited(__tag, __a, __a1, __a2) { } 1586: 1586: template::template 1586: _ConstructibleTuple<_T1, _T2>() 1586: && !_TCC<_Dummy>::template 1586: _ImplicitlyConvertibleTuple<_T1, _T2>(), 1586: bool>::type=false> 1586: 1586: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 1586: const _T1& __a1, const _T2& __a2) 1586: : _Inherited(__tag, __a, __a1, __a2) { } 1586: 1586: template() 1586: && _TMC::template 1586: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 1586: bool>::type = true> 1586: tuple(allocator_arg_t __tag, const _Alloc& __a, _U1&& __a1, _U2&& __a2) 1586: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 1586: std::forward<_U2>(__a2)) { } 1586: 1586: template() 1586: && !_TMC::template 1586: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 1586: bool>::type = false> 1586: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 1586: _U1&& __a1, _U2&& __a2) 1586: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 1586: std::forward<_U2>(__a2)) { } 1586: 1586: template 1586: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 1586: : _Inherited(__tag, __a, static_cast(__in)) { } 1586: 1586: template 1586: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 1586: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 1586: 1586: template() 1586: && _TMC::template 1586: _ImplicitlyConvertibleTuple<_U1, _U2>(), 1586: bool>::type = true> 1586: tuple(allocator_arg_t __tag, const _Alloc& __a, 1586: const tuple<_U1, _U2>& __in) 1586: : _Inherited(__tag, __a, 1586: static_cast&>(__in)) 1586: { } 1586: 1586: template() 1586: && !_TMC::template 1586: _ImplicitlyConvertibleTuple<_U1, _U2>(), 1586: bool>::type = false> 1586: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 1586: const tuple<_U1, _U2>& __in) 1586: : _Inherited(__tag, __a, 1586: static_cast&>(__in)) 1586: { } 1586: 1586: template() 1586: && _TMC::template 1586: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 1586: bool>::type = true> 1586: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_U1, _U2>&& __in) 1586: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 1586: { } 1586: 1586: template() 1586: && !_TMC::template 1586: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 1586: bool>::type = false> 1586: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 1586: tuple<_U1, _U2>&& __in) 1586: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 1586: { } 1586: 1586: template() 1586: && _TMC::template 1586: _ImplicitlyConvertibleTuple<_U1, _U2>(), 1586: bool>::type = true> 1586: tuple(allocator_arg_t __tag, const _Alloc& __a, 1586: const pair<_U1, _U2>& __in) 1586: : _Inherited(__tag, __a, __in.first, __in.second) { } 1586: 1586: template() 1586: && !_TMC::template 1586: _ImplicitlyConvertibleTuple<_U1, _U2>(), 1586: bool>::type = false> 1586: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 1586: const pair<_U1, _U2>& __in) 1586: : _Inherited(__tag, __a, __in.first, __in.second) { } 1586: 1586: template() 1586: && _TMC::template 1586: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 1586: bool>::type = true> 1586: tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __in) 1586: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 1586: std::forward<_U2>(__in.second)) { } 1586: 1586: template() 1586: && !_TMC::template 1586: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 1586: bool>::type = false> 1586: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 1586: pair<_U1, _U2>&& __in) 1586: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 1586: std::forward<_U2>(__in.second)) { } 1586: 1586: tuple& 1586: operator=(typename conditional<__assignable(), 1586: const tuple&, 1586: const __nonesuch_no_braces&>::type __in) 1586: noexcept(__nothrow_assignable()) 1586: { 1586: this->_M_assign(__in); 1586: return *this; 1586: } 1586: 1586: tuple& 1586: operator=(typename conditional<__assignable<_T1, _T2>(), 1586: tuple&&, 1586: __nonesuch_no_braces&&>::type __in) 1586: noexcept(__nothrow_assignable<_T1, _T2>()) 1586: { 1586: this->_M_assign(std::move(__in)); 1586: return *this; 1586: } 1586: 1586: template 1586: __enable_if_t<__assignable(), tuple&> 1586: operator=(const tuple<_U1, _U2>& __in) 1586: noexcept(__nothrow_assignable()) 1586: { 1586: this->_M_assign(__in); 1586: return *this; 1586: } 1586: 1586: template 1586: __enable_if_t<__assignable<_U1, _U2>(), tuple&> 1586: operator=(tuple<_U1, _U2>&& __in) 1586: noexcept(__nothrow_assignable<_U1, _U2>()) 1586: { 1586: this->_M_assign(std::move(__in)); 1586: return *this; 1586: } 1586: 1586: template 1586: __enable_if_t<__assignable(), tuple&> 1586: operator=(const pair<_U1, _U2>& __in) 1586: noexcept(__nothrow_assignable()) 1586: { 1586: this->_M_head(*this) = __in.first; 1586: this->_M_tail(*this)._M_head(*this) = __in.second; 1586: return *this; 1586: } 1586: 1586: template 1586: __enable_if_t<__assignable<_U1, _U2>(), tuple&> 1586: operator=(pair<_U1, _U2>&& __in) 1586: noexcept(__nothrow_assignable<_U1, _U2>()) 1586: { 1586: this->_M_head(*this) = std::forward<_U1>(__in.first); 1586: this->_M_tail(*this)._M_head(*this) = std::forward<_U2>(__in.second); 1586: return *this; 1586: } 1586: 1586: void 1586: swap(tuple& __in) 1586: noexcept(__and_<__is_nothrow_swappable<_T1>, 1586: __is_nothrow_swappable<_T2>>::value) 1586: { _Inherited::_M_swap(__in); } 1586: }; 1586: 1586: 1586: 1586: template 1586: struct tuple_size> 1586: : public integral_constant { }; 1586: # 1284 "/usr/mipsel-linux-gnu/include/c++/9/tuple" 3 1586: template 1586: struct tuple_element<__i, tuple<_Head, _Tail...> > 1586: : tuple_element<__i - 1, tuple<_Tail...> > { }; 1586: 1586: 1586: 1586: 1586: template 1586: struct tuple_element<0, tuple<_Head, _Tail...> > 1586: { 1586: typedef _Head type; 1586: }; 1586: 1586: 1586: 1586: 1586: template 1586: struct tuple_element<__i, tuple<>> 1586: { 1586: static_assert(__i < tuple_size>::value, 1586: "tuple index is in range"); 1586: }; 1586: 1586: template 1586: constexpr _Head& 1586: __get_helper(_Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 1586: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 1586: 1586: template 1586: constexpr const _Head& 1586: __get_helper(const _Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 1586: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 1586: 1586: 1586: template 1586: constexpr __tuple_element_t<__i, tuple<_Elements...>>& 1586: get(tuple<_Elements...>& __t) noexcept 1586: { return std::__get_helper<__i>(__t); } 1586: 1586: 1586: template 1586: constexpr const __tuple_element_t<__i, tuple<_Elements...>>& 1586: get(const tuple<_Elements...>& __t) noexcept 1586: { return std::__get_helper<__i>(__t); } 1586: 1586: 1586: template 1586: constexpr __tuple_element_t<__i, tuple<_Elements...>>&& 1586: get(tuple<_Elements...>&& __t) noexcept 1586: { 1586: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 1586: return std::forward<__element_type&&>(std::get<__i>(__t)); 1586: } 1586: 1586: 1586: template 1586: constexpr const __tuple_element_t<__i, tuple<_Elements...>>&& 1586: get(const tuple<_Elements...>&& __t) noexcept 1586: { 1586: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 1586: return std::forward(std::get<__i>(__t)); 1586: } 1586: # 1388 "/usr/mipsel-linux-gnu/include/c++/9/tuple" 3 1586: template 1586: struct __tuple_compare 1586: { 1586: static constexpr bool 1586: __eq(const _Tp& __t, const _Up& __u) 1586: { 1586: return bool(std::get<__i>(__t) == std::get<__i>(__u)) 1586: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__eq(__t, __u); 1586: } 1586: 1586: static constexpr bool 1586: __less(const _Tp& __t, const _Up& __u) 1586: { 1586: return bool(std::get<__i>(__t) < std::get<__i>(__u)) 1586: || (!bool(std::get<__i>(__u) < std::get<__i>(__t)) 1586: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__less(__t, __u)); 1586: } 1586: }; 1586: 1586: template 1586: struct __tuple_compare<_Tp, _Up, __size, __size> 1586: { 1586: static constexpr bool 1586: __eq(const _Tp&, const _Up&) { return true; } 1586: 1586: static constexpr bool 1586: __less(const _Tp&, const _Up&) { return false; } 1586: }; 1586: 1586: template 1586: constexpr bool 1586: operator==(const tuple<_TElements...>& __t, 1586: const tuple<_UElements...>& __u) 1586: { 1586: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 1586: "tuple objects can only be compared if they have equal sizes."); 1586: using __compare = __tuple_compare, 1586: tuple<_UElements...>, 1586: 0, sizeof...(_TElements)>; 1586: return __compare::__eq(__t, __u); 1586: } 1586: 1586: template 1586: constexpr bool 1586: operator<(const tuple<_TElements...>& __t, 1586: const tuple<_UElements...>& __u) 1586: { 1586: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 1586: "tuple objects can only be compared if they have equal sizes."); 1586: using __compare = __tuple_compare, 1586: tuple<_UElements...>, 1586: 0, sizeof...(_TElements)>; 1586: return __compare::__less(__t, __u); 1586: } 1586: 1586: template 1586: constexpr bool 1586: operator!=(const tuple<_TElements...>& __t, 1586: const tuple<_UElements...>& __u) 1586: { return !(__t == __u); } 1586: 1586: template 1586: constexpr bool 1586: operator>(const tuple<_TElements...>& __t, 1586: const tuple<_UElements...>& __u) 1586: { return __u < __t; } 1586: 1586: template 1586: constexpr bool 1586: operator<=(const tuple<_TElements...>& __t, 1586: const tuple<_UElements...>& __u) 1586: { return !(__u < __t); } 1586: 1586: template 1586: constexpr bool 1586: operator>=(const tuple<_TElements...>& __t, 1586: const tuple<_UElements...>& __u) 1586: { return !(__t < __u); } 1586: 1586: 1586: template 1586: constexpr tuple::__type...> 1586: make_tuple(_Elements&&... __args) 1586: { 1586: typedef tuple::__type...> 1586: __result_type; 1586: return __result_type(std::forward<_Elements>(__args)...); 1586: } 1586: 1586: 1586: 1586: 1586: template 1586: constexpr tuple<_Elements&&...> 1586: forward_as_tuple(_Elements&&... __args) noexcept 1586: { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...); } 1586: 1586: template 1586: struct __make_tuple_impl; 1586: 1586: template 1586: struct __make_tuple_impl<_Idx, tuple<_Tp...>, _Tuple, _Nm> 1586: : __make_tuple_impl<_Idx + 1, 1586: tuple<_Tp..., __tuple_element_t<_Idx, _Tuple>>, 1586: _Tuple, _Nm> 1586: { }; 1586: 1586: template 1586: struct __make_tuple_impl<_Nm, tuple<_Tp...>, _Tuple, _Nm> 1586: { 1586: typedef tuple<_Tp...> __type; 1586: }; 1586: 1586: template 1586: struct __do_make_tuple 1586: : __make_tuple_impl<0, tuple<>, _Tuple, std::tuple_size<_Tuple>::value> 1586: { }; 1586: 1586: 1586: template 1586: struct __make_tuple 1586: : public __do_make_tuple<__remove_cvref_t<_Tuple>> 1586: { }; 1586: 1586: 1586: template 1586: struct __combine_tuples; 1586: 1586: template<> 1586: struct __combine_tuples<> 1586: { 1586: typedef tuple<> __type; 1586: }; 1586: 1586: template 1586: struct __combine_tuples> 1586: { 1586: typedef tuple<_Ts...> __type; 1586: }; 1586: 1586: template 1586: struct __combine_tuples, tuple<_T2s...>, _Rem...> 1586: { 1586: typedef typename __combine_tuples, 1586: _Rem...>::__type __type; 1586: }; 1586: 1586: 1586: template 1586: struct __tuple_cat_result 1586: { 1586: typedef typename __combine_tuples 1586: ::__type...>::__type __type; 1586: }; 1586: 1586: 1586: 1586: template 1586: struct __make_1st_indices; 1586: 1586: template<> 1586: struct __make_1st_indices<> 1586: { 1586: typedef std::_Index_tuple<> __type; 1586: }; 1586: 1586: template 1586: struct __make_1st_indices<_Tp, _Tpls...> 1586: { 1586: typedef typename std::_Build_index_tuple::type>::value>::__type __type; 1586: }; 1586: 1586: 1586: 1586: 1586: template 1586: struct __tuple_concater; 1586: 1586: template 1586: struct __tuple_concater<_Ret, std::_Index_tuple<_Is...>, _Tp, _Tpls...> 1586: { 1586: template 1586: static constexpr _Ret 1586: _S_do(_Tp&& __tp, _Tpls&&... __tps, _Us&&... __us) 1586: { 1586: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 1586: typedef __tuple_concater<_Ret, __idx, _Tpls...> __next; 1586: return __next::_S_do(std::forward<_Tpls>(__tps)..., 1586: std::forward<_Us>(__us)..., 1586: std::get<_Is>(std::forward<_Tp>(__tp))...); 1586: } 1586: }; 1586: 1586: template 1586: struct __tuple_concater<_Ret, std::_Index_tuple<>> 1586: { 1586: template 1586: static constexpr _Ret 1586: _S_do(_Us&&... __us) 1586: { 1586: return _Ret(std::forward<_Us>(__us)...); 1586: } 1586: }; 1586: 1586: 1586: template...>::value>::type> 1586: constexpr auto 1586: tuple_cat(_Tpls&&... __tpls) 1586: -> typename __tuple_cat_result<_Tpls...>::__type 1586: { 1586: typedef typename __tuple_cat_result<_Tpls...>::__type __ret; 1586: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 1586: typedef __tuple_concater<__ret, __idx, _Tpls...> __concater; 1586: return __concater::_S_do(std::forward<_Tpls>(__tpls)...); 1586: } 1586: 1586: 1586: 1586: 1586: template 1586: constexpr tuple<_Elements&...> 1586: tie(_Elements&... __args) noexcept 1586: { return tuple<_Elements&...>(__args...); } 1586: 1586: 1586: template 1586: inline 1586: 1586: 1586: 1586: 1586: 1586: void 1586: 1586: swap(tuple<_Elements...>& __x, tuple<_Elements...>& __y) 1586: noexcept(noexcept(__x.swap(__y))) 1586: { __x.swap(__y); } 1586: # 1638 "/usr/mipsel-linux-gnu/include/c++/9/tuple" 3 1586: struct _Swallow_assign 1586: { 1586: template 1586: const _Swallow_assign& 1586: operator=(const _Tp&) const 1586: { return *this; } 1586: }; 1586: 1586: 1586: 1586: constexpr _Swallow_assign ignore{}; 1586: 1586: 1586: template 1586: struct uses_allocator, _Alloc> : true_type { }; 1586: 1586: 1586: template 1586: template 1586: inline 1586: pair<_T1, _T2>:: 1586: pair(piecewise_construct_t, 1586: tuple<_Args1...> __first, tuple<_Args2...> __second) 1586: : pair(__first, __second, 1586: typename _Build_index_tuple::__type(), 1586: typename _Build_index_tuple::__type()) 1586: { } 1586: 1586: template 1586: template 1586: inline 1586: pair<_T1, _T2>:: 1586: pair(tuple<_Args1...>& __tuple1, tuple<_Args2...>& __tuple2, 1586: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>) 1586: : first(std::forward<_Args1>(std::get<_Indexes1>(__tuple1))...), 1586: second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...) 1586: { } 1586: # 1718 "/usr/mipsel-linux-gnu/include/c++/9/tuple" 3 1586: 1586: } 1586: # 38 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_ptr.h" 2 3 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: #pragma GCC diagnostic push 1586: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1586: template class auto_ptr; 1586: #pragma GCC diagnostic pop 1586: 1586: 1586: 1586: template 1586: struct default_delete 1586: { 1586: 1586: constexpr default_delete() noexcept = default; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template::value>::type> 1586: default_delete(const default_delete<_Up>&) noexcept { } 1586: 1586: 1586: void 1586: operator()(_Tp* __ptr) const 1586: { 1586: static_assert(!is_void<_Tp>::value, 1586: "can't delete pointer to incomplete type"); 1586: static_assert(sizeof(_Tp)>0, 1586: "can't delete pointer to incomplete type"); 1586: delete __ptr; 1586: } 1586: }; 1586: 1586: 1586: 1586: 1586: template 1586: struct default_delete<_Tp[]> 1586: { 1586: public: 1586: 1586: constexpr default_delete() noexcept = default; 1586: # 104 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_ptr.h" 3 1586: template::value>::type> 1586: default_delete(const default_delete<_Up[]>&) noexcept { } 1586: 1586: 1586: template 1586: typename enable_if::value>::type 1586: operator()(_Up* __ptr) const 1586: { 1586: static_assert(sizeof(_Tp)>0, 1586: "can't delete pointer to incomplete type"); 1586: delete [] __ptr; 1586: } 1586: }; 1586: 1586: template 1586: class __uniq_ptr_impl 1586: { 1586: template 1586: struct _Ptr 1586: { 1586: using type = _Up*; 1586: }; 1586: 1586: template 1586: struct 1586: _Ptr<_Up, _Ep, __void_t::type::pointer>> 1586: { 1586: using type = typename remove_reference<_Ep>::type::pointer; 1586: }; 1586: 1586: public: 1586: using _DeleterConstraint = enable_if< 1586: __and_<__not_>, 1586: is_default_constructible<_Dp>>::value>; 1586: 1586: using pointer = typename _Ptr<_Tp, _Dp>::type; 1586: 1586: static_assert( !is_rvalue_reference<_Dp>::value, 1586: "unique_ptr's deleter type must be a function object type" 1586: " or an lvalue reference type" ); 1586: 1586: __uniq_ptr_impl() = default; 1586: __uniq_ptr_impl(pointer __p) : _M_t() { _M_ptr() = __p; } 1586: 1586: template 1586: __uniq_ptr_impl(pointer __p, _Del&& __d) 1586: : _M_t(__p, std::forward<_Del>(__d)) { } 1586: 1586: pointer& _M_ptr() { return std::get<0>(_M_t); } 1586: pointer _M_ptr() const { return std::get<0>(_M_t); } 1586: _Dp& _M_deleter() { return std::get<1>(_M_t); } 1586: const _Dp& _M_deleter() const { return std::get<1>(_M_t); } 1586: 1586: void 1586: swap(__uniq_ptr_impl& __rhs) noexcept 1586: { 1586: using std::swap; 1586: swap(this->_M_ptr(), __rhs._M_ptr()); 1586: swap(this->_M_deleter(), __rhs._M_deleter()); 1586: } 1586: 1586: private: 1586: tuple _M_t; 1586: }; 1586: 1586: 1586: template > 1586: class unique_ptr 1586: { 1586: template 1586: using _DeleterConstraint = 1586: typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type; 1586: 1586: __uniq_ptr_impl<_Tp, _Dp> _M_t; 1586: 1586: public: 1586: using pointer = typename __uniq_ptr_impl<_Tp, _Dp>::pointer; 1586: using element_type = _Tp; 1586: using deleter_type = _Dp; 1586: 1586: private: 1586: 1586: 1586: template 1586: using __safe_conversion_up = __and_< 1586: is_convertible::pointer, pointer>, 1586: __not_> 1586: >; 1586: 1586: public: 1586: 1586: 1586: 1586: template> 1586: constexpr unique_ptr() noexcept 1586: : _M_t() 1586: { } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template> 1586: explicit 1586: unique_ptr(pointer __p) noexcept 1586: : _M_t(__p) 1586: { } 1586: # 222 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_ptr.h" 3 1586: template>> 1586: unique_ptr(pointer __p, const deleter_type& __d) noexcept 1586: : _M_t(__p, __d) { } 1586: # 234 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_ptr.h" 3 1586: template>> 1586: unique_ptr(pointer __p, 1586: __enable_if_t::value, 1586: _Del&&> __d) noexcept 1586: : _M_t(__p, std::move(__d)) 1586: { } 1586: 1586: template::type> 1586: unique_ptr(pointer, 1586: __enable_if_t::value, 1586: _DelUnref&&>) = delete; 1586: 1586: 1586: template> 1586: constexpr unique_ptr(nullptr_t) noexcept 1586: : _M_t() 1586: { } 1586: 1586: 1586: 1586: 1586: unique_ptr(unique_ptr&& __u) noexcept 1586: : _M_t(__u.release(), std::forward(__u.get_deleter())) { } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template, 1586: typename conditional::value, 1586: is_same<_Ep, _Dp>, 1586: is_convertible<_Ep, _Dp>>::type>> 1586: unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept 1586: : _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter())) 1586: { } 1586: 1586: 1586: #pragma GCC diagnostic push 1586: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1586: 1586: template, is_same<_Dp, default_delete<_Tp>>>> 1586: unique_ptr(auto_ptr<_Up>&& __u) noexcept; 1586: #pragma GCC diagnostic pop 1586: 1586: 1586: 1586: ~unique_ptr() noexcept 1586: { 1586: static_assert(__is_invocable::value, 1586: "unique_ptr's deleter must be invocable with a pointer"); 1586: auto& __ptr = _M_t._M_ptr(); 1586: if (__ptr != nullptr) 1586: get_deleter()(std::move(__ptr)); 1586: __ptr = pointer(); 1586: } 1586: # 304 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_ptr.h" 3 1586: unique_ptr& 1586: operator=(unique_ptr&& __u) noexcept 1586: { 1586: reset(__u.release()); 1586: get_deleter() = std::forward(__u.get_deleter()); 1586: return *this; 1586: } 1586: # 319 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_ptr.h" 3 1586: template 1586: typename enable_if< __and_< 1586: __safe_conversion_up<_Up, _Ep>, 1586: is_assignable 1586: >::value, 1586: unique_ptr&>::type 1586: operator=(unique_ptr<_Up, _Ep>&& __u) noexcept 1586: { 1586: reset(__u.release()); 1586: get_deleter() = std::forward<_Ep>(__u.get_deleter()); 1586: return *this; 1586: } 1586: 1586: 1586: unique_ptr& 1586: operator=(nullptr_t) noexcept 1586: { 1586: reset(); 1586: return *this; 1586: } 1586: 1586: 1586: 1586: 1586: typename add_lvalue_reference::type 1586: operator*() const 1586: { 1586: ; 1586: return *get(); 1586: } 1586: 1586: 1586: pointer 1586: operator->() const noexcept 1586: { 1586: ; 1586: return get(); 1586: } 1586: 1586: 1586: pointer 1586: get() const noexcept 1586: { return _M_t._M_ptr(); } 1586: 1586: 1586: deleter_type& 1586: get_deleter() noexcept 1586: { return _M_t._M_deleter(); } 1586: 1586: 1586: const deleter_type& 1586: get_deleter() const noexcept 1586: { return _M_t._M_deleter(); } 1586: 1586: 1586: explicit operator bool() const noexcept 1586: { return get() == pointer() ? false : true; } 1586: 1586: 1586: 1586: 1586: pointer 1586: release() noexcept 1586: { 1586: pointer __p = get(); 1586: _M_t._M_ptr() = pointer(); 1586: return __p; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: void 1586: reset(pointer __p = pointer()) noexcept 1586: { 1586: static_assert(__is_invocable::value, 1586: "unique_ptr's deleter must be invocable with a pointer"); 1586: using std::swap; 1586: swap(_M_t._M_ptr(), __p); 1586: if (__p != pointer()) 1586: get_deleter()(std::move(__p)); 1586: } 1586: 1586: 1586: void 1586: swap(unique_ptr& __u) noexcept 1586: { 1586: static_assert(__is_swappable<_Dp>::value, "deleter must be swappable"); 1586: _M_t.swap(__u._M_t); 1586: } 1586: 1586: 1586: unique_ptr(const unique_ptr&) = delete; 1586: unique_ptr& operator=(const unique_ptr&) = delete; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: class unique_ptr<_Tp[], _Dp> 1586: { 1586: template 1586: using _DeleterConstraint = 1586: typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type; 1586: 1586: __uniq_ptr_impl<_Tp, _Dp> _M_t; 1586: 1586: template 1586: using __remove_cv = typename remove_cv<_Up>::type; 1586: 1586: 1586: template 1586: using __is_derived_Tp 1586: = __and_< is_base_of<_Tp, _Up>, 1586: __not_, __remove_cv<_Up>>> >; 1586: 1586: public: 1586: using pointer = typename __uniq_ptr_impl<_Tp, _Dp>::pointer; 1586: using element_type = _Tp; 1586: using deleter_type = _Dp; 1586: 1586: 1586: 1586: template, 1586: typename _UP_pointer = typename _UPtr::pointer, 1586: typename _UP_element_type = typename _UPtr::element_type> 1586: using __safe_conversion_up = __and_< 1586: is_array<_Up>, 1586: is_same, 1586: is_same<_UP_pointer, _UP_element_type*>, 1586: is_convertible<_UP_element_type(*)[], element_type(*)[]> 1586: >; 1586: 1586: 1586: template 1586: using __safe_conversion_raw = __and_< 1586: __or_<__or_, 1586: is_same<_Up, nullptr_t>>, 1586: __and_, 1586: is_same, 1586: is_convertible< 1586: typename remove_pointer<_Up>::type(*)[], 1586: element_type(*)[]> 1586: > 1586: > 1586: >; 1586: 1586: 1586: 1586: 1586: template> 1586: constexpr unique_ptr() noexcept 1586: : _M_t() 1586: { } 1586: # 487 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_ptr.h" 3 1586: template, 1586: typename = typename enable_if< 1586: __safe_conversion_raw<_Up>::value, bool>::type> 1586: explicit 1586: unique_ptr(_Up __p) noexcept 1586: : _M_t(__p) 1586: { } 1586: # 505 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_ptr.h" 3 1586: template, 1586: is_copy_constructible<_Del>>> 1586: unique_ptr(_Up __p, const deleter_type& __d) noexcept 1586: : _M_t(__p, __d) { } 1586: # 519 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_ptr.h" 3 1586: template, 1586: is_move_constructible<_Del>>> 1586: unique_ptr(_Up __p, 1586: __enable_if_t::value, 1586: _Del&&> __d) noexcept 1586: : _M_t(std::move(__p), std::move(__d)) 1586: { } 1586: 1586: template::type, 1586: typename = _Require<__safe_conversion_raw<_Up>>> 1586: unique_ptr(_Up, 1586: __enable_if_t::value, 1586: _DelUnref&&>) = delete; 1586: 1586: 1586: unique_ptr(unique_ptr&& __u) noexcept 1586: : _M_t(__u.release(), std::forward(__u.get_deleter())) { } 1586: 1586: 1586: template> 1586: constexpr unique_ptr(nullptr_t) noexcept 1586: : _M_t() 1586: { } 1586: 1586: template, 1586: typename conditional::value, 1586: is_same<_Ep, _Dp>, 1586: is_convertible<_Ep, _Dp>>::type>> 1586: unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept 1586: : _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter())) 1586: { } 1586: 1586: 1586: ~unique_ptr() 1586: { 1586: auto& __ptr = _M_t._M_ptr(); 1586: if (__ptr != nullptr) 1586: get_deleter()(__ptr); 1586: __ptr = pointer(); 1586: } 1586: # 571 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_ptr.h" 3 1586: unique_ptr& 1586: operator=(unique_ptr&& __u) noexcept 1586: { 1586: reset(__u.release()); 1586: get_deleter() = std::forward(__u.get_deleter()); 1586: return *this; 1586: } 1586: # 586 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_ptr.h" 3 1586: template 1586: typename 1586: enable_if<__and_<__safe_conversion_up<_Up, _Ep>, 1586: is_assignable 1586: >::value, 1586: unique_ptr&>::type 1586: operator=(unique_ptr<_Up, _Ep>&& __u) noexcept 1586: { 1586: reset(__u.release()); 1586: get_deleter() = std::forward<_Ep>(__u.get_deleter()); 1586: return *this; 1586: } 1586: 1586: 1586: unique_ptr& 1586: operator=(nullptr_t) noexcept 1586: { 1586: reset(); 1586: return *this; 1586: } 1586: 1586: 1586: 1586: 1586: typename std::add_lvalue_reference::type 1586: operator[](size_t __i) const 1586: { 1586: ; 1586: return get()[__i]; 1586: } 1586: 1586: 1586: pointer 1586: get() const noexcept 1586: { return _M_t._M_ptr(); } 1586: 1586: 1586: deleter_type& 1586: get_deleter() noexcept 1586: { return _M_t._M_deleter(); } 1586: 1586: 1586: const deleter_type& 1586: get_deleter() const noexcept 1586: { return _M_t._M_deleter(); } 1586: 1586: 1586: explicit operator bool() const noexcept 1586: { return get() == pointer() ? false : true; } 1586: 1586: 1586: 1586: 1586: pointer 1586: release() noexcept 1586: { 1586: pointer __p = get(); 1586: _M_t._M_ptr() = pointer(); 1586: return __p; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template , 1586: __and_, 1586: is_pointer<_Up>, 1586: is_convertible< 1586: typename remove_pointer<_Up>::type(*)[], 1586: element_type(*)[] 1586: > 1586: > 1586: > 1586: >> 1586: void 1586: reset(_Up __p) noexcept 1586: { 1586: pointer __ptr = __p; 1586: using std::swap; 1586: swap(_M_t._M_ptr(), __ptr); 1586: if (__ptr != nullptr) 1586: get_deleter()(__ptr); 1586: } 1586: 1586: void reset(nullptr_t = nullptr) noexcept 1586: { 1586: reset(pointer()); 1586: } 1586: 1586: 1586: void 1586: swap(unique_ptr& __u) noexcept 1586: { 1586: static_assert(__is_swappable<_Dp>::value, "deleter must be swappable"); 1586: _M_t.swap(__u._M_t); 1586: } 1586: 1586: 1586: unique_ptr(const unique_ptr&) = delete; 1586: unique_ptr& operator=(const unique_ptr&) = delete; 1586: }; 1586: 1586: template 1586: inline 1586: 1586: 1586: 1586: 1586: void 1586: 1586: swap(unique_ptr<_Tp, _Dp>& __x, 1586: unique_ptr<_Tp, _Dp>& __y) noexcept 1586: { __x.swap(__y); } 1586: # 712 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_ptr.h" 3 1586: template 1586: inline bool 1586: operator==(const unique_ptr<_Tp, _Dp>& __x, 1586: const unique_ptr<_Up, _Ep>& __y) 1586: { return __x.get() == __y.get(); } 1586: 1586: template 1586: inline bool 1586: operator==(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept 1586: { return !__x; } 1586: 1586: template 1586: inline bool 1586: operator==(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept 1586: { return !__x; } 1586: 1586: template 1586: inline bool 1586: operator!=(const unique_ptr<_Tp, _Dp>& __x, 1586: const unique_ptr<_Up, _Ep>& __y) 1586: { return __x.get() != __y.get(); } 1586: 1586: template 1586: inline bool 1586: operator!=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept 1586: { return (bool)__x; } 1586: 1586: template 1586: inline bool 1586: operator!=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept 1586: { return (bool)__x; } 1586: 1586: template 1586: inline bool 1586: operator<(const unique_ptr<_Tp, _Dp>& __x, 1586: const unique_ptr<_Up, _Ep>& __y) 1586: { 1586: typedef typename 1586: std::common_type::pointer, 1586: typename unique_ptr<_Up, _Ep>::pointer>::type _CT; 1586: return std::less<_CT>()(__x.get(), __y.get()); 1586: } 1586: 1586: template 1586: inline bool 1586: operator<(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 1586: { return std::less::pointer>()(__x.get(), 1586: nullptr); } 1586: 1586: template 1586: inline bool 1586: operator<(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 1586: { return std::less::pointer>()(nullptr, 1586: __x.get()); } 1586: 1586: template 1586: inline bool 1586: operator<=(const unique_ptr<_Tp, _Dp>& __x, 1586: const unique_ptr<_Up, _Ep>& __y) 1586: { return !(__y < __x); } 1586: 1586: template 1586: inline bool 1586: operator<=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 1586: { return !(nullptr < __x); } 1586: 1586: template 1586: inline bool 1586: operator<=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 1586: { return !(__x < nullptr); } 1586: 1586: template 1586: inline bool 1586: operator>(const unique_ptr<_Tp, _Dp>& __x, 1586: const unique_ptr<_Up, _Ep>& __y) 1586: { return (__y < __x); } 1586: 1586: template 1586: inline bool 1586: operator>(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 1586: { return std::less::pointer>()(nullptr, 1586: __x.get()); } 1586: 1586: template 1586: inline bool 1586: operator>(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 1586: { return std::less::pointer>()(__x.get(), 1586: nullptr); } 1586: 1586: template 1586: inline bool 1586: operator>=(const unique_ptr<_Tp, _Dp>& __x, 1586: const unique_ptr<_Up, _Ep>& __y) 1586: { return !(__x < __y); } 1586: 1586: template 1586: inline bool 1586: operator>=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 1586: { return !(__x < nullptr); } 1586: 1586: template 1586: inline bool 1586: operator>=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 1586: { return !(nullptr < __x); } 1586: 1586: 1586: template 1586: struct hash> 1586: : public __hash_base>, 1586: private __poison_hash::pointer> 1586: { 1586: size_t 1586: operator()(const unique_ptr<_Tp, _Dp>& __u) const noexcept 1586: { 1586: typedef unique_ptr<_Tp, _Dp> _UP; 1586: return std::hash()(__u.get()); 1586: } 1586: }; 1586: # 887 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_ptr.h" 3 1586: 1586: } 1586: # 81 "/usr/mipsel-linux-gnu/include/c++/9/memory" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr.h" 1 3 1586: # 52 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr_base.h" 1 3 1586: # 53 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr_base.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/allocated_ptr.h" 1 3 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/bits/allocated_ptr.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: template 1586: struct __allocated_ptr 1586: { 1586: using pointer = typename allocator_traits<_Alloc>::pointer; 1586: using value_type = typename allocator_traits<_Alloc>::value_type; 1586: 1586: 1586: __allocated_ptr(_Alloc& __a, pointer __ptr) noexcept 1586: : _M_alloc(std::__addressof(__a)), _M_ptr(__ptr) 1586: { } 1586: 1586: 1586: template>> 1586: __allocated_ptr(_Alloc& __a, _Ptr __ptr) 1586: : _M_alloc(std::__addressof(__a)), 1586: _M_ptr(pointer_traits::pointer_to(*__ptr)) 1586: { } 1586: 1586: 1586: __allocated_ptr(__allocated_ptr&& __gd) noexcept 1586: : _M_alloc(__gd._M_alloc), _M_ptr(__gd._M_ptr) 1586: { __gd._M_ptr = nullptr; } 1586: 1586: 1586: ~__allocated_ptr() 1586: { 1586: if (_M_ptr != nullptr) 1586: std::allocator_traits<_Alloc>::deallocate(*_M_alloc, _M_ptr, 1); 1586: } 1586: 1586: 1586: __allocated_ptr& 1586: operator=(std::nullptr_t) noexcept 1586: { 1586: _M_ptr = nullptr; 1586: return *this; 1586: } 1586: 1586: 1586: value_type* get() { return std::__to_address(_M_ptr); } 1586: 1586: private: 1586: _Alloc* _M_alloc; 1586: pointer _M_ptr; 1586: }; 1586: 1586: 1586: template 1586: __allocated_ptr<_Alloc> 1586: __allocate_guarded(_Alloc& __a) 1586: { 1586: return { __a, std::allocator_traits<_Alloc>::allocate(__a, 1) }; 1586: } 1586: 1586: 1586: } 1586: # 54 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr_base.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/refwrap.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/refwrap.h" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/refwrap.h" 3 1586: # 43 "/usr/mipsel-linux-gnu/include/c++/9/bits/refwrap.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct _Maybe_unary_or_binary_function { }; 1586: 1586: 1586: template 1586: struct _Maybe_unary_or_binary_function<_Res, _T1> 1586: : std::unary_function<_T1, _Res> { }; 1586: 1586: 1586: template 1586: struct _Maybe_unary_or_binary_function<_Res, _T1, _T2> 1586: : std::binary_function<_T1, _T2, _Res> { }; 1586: 1586: template 1586: struct _Mem_fn_traits; 1586: 1586: template 1586: struct _Mem_fn_traits_base 1586: { 1586: using __result_type = _Res; 1586: using __maybe_type 1586: = _Maybe_unary_or_binary_function<_Res, _Class*, _ArgTypes...>; 1586: using __arity = integral_constant; 1586: }; 1586: # 97 "/usr/mipsel-linux-gnu/include/c++/9/bits/refwrap.h" 3 1586: 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; }; 1586: 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; }; 1586: 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; }; 1586: # 111 "/usr/mipsel-linux-gnu/include/c++/9/bits/refwrap.h" 3 1586: template> 1586: struct _Maybe_get_result_type 1586: { }; 1586: 1586: template 1586: struct _Maybe_get_result_type<_Functor, 1586: __void_t> 1586: { typedef typename _Functor::result_type result_type; }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct _Weak_result_type_impl 1586: : _Maybe_get_result_type<_Functor> 1586: { }; 1586: 1586: 1586: template 1586: struct _Weak_result_type_impl<_Res(_ArgTypes...) > 1586: { typedef _Res result_type; }; 1586: 1586: 1586: template 1586: struct _Weak_result_type_impl<_Res(_ArgTypes......) > 1586: { typedef _Res result_type; }; 1586: 1586: 1586: template 1586: struct _Weak_result_type_impl<_Res(*)(_ArgTypes...) > 1586: { typedef _Res result_type; }; 1586: 1586: 1586: template 1586: struct 1586: _Weak_result_type_impl<_Res(*)(_ArgTypes......) > 1586: { typedef _Res result_type; }; 1586: 1586: 1586: template::value> 1586: struct _Weak_result_type_memfun 1586: : _Weak_result_type_impl<_Functor> 1586: { }; 1586: 1586: 1586: template 1586: struct _Weak_result_type_memfun<_MemFunPtr, true> 1586: { 1586: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 1586: }; 1586: 1586: 1586: template 1586: struct _Weak_result_type_memfun<_Func _Class::*, false> 1586: { }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct _Weak_result_type 1586: : _Weak_result_type_memfun::type> 1586: { }; 1586: 1586: 1586: 1586: template> 1586: struct _Refwrap_base_arg1 1586: { }; 1586: 1586: 1586: template 1586: struct _Refwrap_base_arg1<_Tp, 1586: __void_t> 1586: { 1586: typedef typename _Tp::argument_type argument_type; 1586: }; 1586: 1586: 1586: template> 1586: struct _Refwrap_base_arg2 1586: { }; 1586: 1586: 1586: template 1586: struct _Refwrap_base_arg2<_Tp, 1586: __void_t> 1586: { 1586: typedef typename _Tp::first_argument_type first_argument_type; 1586: typedef typename _Tp::second_argument_type second_argument_type; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct _Reference_wrapper_base 1586: : _Weak_result_type<_Tp>, _Refwrap_base_arg1<_Tp>, _Refwrap_base_arg2<_Tp> 1586: { }; 1586: 1586: 1586: template 1586: struct _Reference_wrapper_base<_Res(_T1) > 1586: : unary_function<_T1, _Res> 1586: { }; 1586: 1586: template 1586: struct _Reference_wrapper_base<_Res(_T1) const> 1586: : unary_function<_T1, _Res> 1586: { }; 1586: 1586: template 1586: struct _Reference_wrapper_base<_Res(_T1) volatile> 1586: : unary_function<_T1, _Res> 1586: { }; 1586: 1586: template 1586: struct _Reference_wrapper_base<_Res(_T1) const volatile> 1586: : unary_function<_T1, _Res> 1586: { }; 1586: 1586: 1586: template 1586: struct _Reference_wrapper_base<_Res(_T1, _T2) > 1586: : binary_function<_T1, _T2, _Res> 1586: { }; 1586: 1586: template 1586: struct _Reference_wrapper_base<_Res(_T1, _T2) const> 1586: : binary_function<_T1, _T2, _Res> 1586: { }; 1586: 1586: template 1586: struct _Reference_wrapper_base<_Res(_T1, _T2) volatile> 1586: : binary_function<_T1, _T2, _Res> 1586: { }; 1586: 1586: template 1586: struct _Reference_wrapper_base<_Res(_T1, _T2) const volatile> 1586: : binary_function<_T1, _T2, _Res> 1586: { }; 1586: 1586: 1586: template 1586: struct _Reference_wrapper_base<_Res(*)(_T1) > 1586: : unary_function<_T1, _Res> 1586: { }; 1586: 1586: 1586: template 1586: struct _Reference_wrapper_base<_Res(*)(_T1, _T2) > 1586: : binary_function<_T1, _T2, _Res> 1586: { }; 1586: 1586: template::value> 1586: struct _Reference_wrapper_base_memfun 1586: : _Reference_wrapper_base<_Tp> 1586: { }; 1586: 1586: template 1586: struct _Reference_wrapper_base_memfun<_MemFunPtr, true> 1586: : _Mem_fn_traits<_MemFunPtr>::__maybe_type 1586: { 1586: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: class reference_wrapper 1586: 1586: 1586: 1586: : public _Reference_wrapper_base_memfun::type> 1586: 1586: { 1586: _Tp* _M_data; 1586: 1586: static _Tp* _S_fun(_Tp& __r) noexcept { return std::__addressof(__r); } 1586: static void _S_fun(_Tp&&) = delete; 1586: 1586: template> 1586: using __not_same 1586: = typename enable_if::value>::type; 1586: 1586: public: 1586: typedef _Tp type; 1586: 1586: 1586: 1586: 1586: template, typename 1586: = decltype(reference_wrapper::_S_fun(std::declval<_Up>()))> 1586: reference_wrapper(_Up&& __uref) 1586: noexcept(noexcept(reference_wrapper::_S_fun(std::declval<_Up>()))) 1586: : _M_data(reference_wrapper::_S_fun(std::forward<_Up>(__uref))) 1586: { } 1586: 1586: reference_wrapper(const reference_wrapper&) = default; 1586: 1586: reference_wrapper& 1586: operator=(const reference_wrapper&) = default; 1586: 1586: operator _Tp&() const noexcept 1586: { return this->get(); } 1586: 1586: _Tp& 1586: get() const noexcept 1586: { return *_M_data; } 1586: 1586: template 1586: typename result_of<_Tp&(_Args&&...)>::type 1586: operator()(_Args&&... __args) const 1586: { 1586: 1586: 1586: 1586: 1586: return std::__invoke(get(), std::forward<_Args>(__args)...); 1586: } 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline reference_wrapper<_Tp> 1586: ref(_Tp& __t) noexcept 1586: { return reference_wrapper<_Tp>(__t); } 1586: 1586: 1586: template 1586: inline reference_wrapper 1586: cref(const _Tp& __t) noexcept 1586: { return reference_wrapper(__t); } 1586: 1586: template 1586: void ref(const _Tp&&) = delete; 1586: 1586: template 1586: void cref(const _Tp&&) = delete; 1586: 1586: 1586: template 1586: inline reference_wrapper<_Tp> 1586: ref(reference_wrapper<_Tp> __t) noexcept 1586: { return __t; } 1586: 1586: 1586: template 1586: inline reference_wrapper 1586: cref(reference_wrapper<_Tp> __t) noexcept 1586: { return { __t.get() }; } 1586: 1586: 1586: 1586: 1586: } 1586: # 55 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr_base.h" 2 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/ext/aligned_buffer.h" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/c++/9/ext/aligned_buffer.h" 3 1586: 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/ext/aligned_buffer.h" 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: namespace __gnu_cxx 1586: { 1586: 1586: 1586: 1586: 1586: template 1586: struct __aligned_membuf 1586: { 1586: 1586: 1586: 1586: 1586: 1586: struct _Tp2 { _Tp _M_t; }; 1586: 1586: alignas(__alignof__(_Tp2::_M_t)) unsigned char _M_storage[sizeof(_Tp)]; 1586: 1586: __aligned_membuf() = default; 1586: 1586: 1586: __aligned_membuf(std::nullptr_t) { } 1586: 1586: void* 1586: _M_addr() noexcept 1586: { return static_cast(&_M_storage); } 1586: 1586: const void* 1586: _M_addr() const noexcept 1586: { return static_cast(&_M_storage); } 1586: 1586: _Tp* 1586: _M_ptr() noexcept 1586: { return static_cast<_Tp*>(_M_addr()); } 1586: 1586: const _Tp* 1586: _M_ptr() const noexcept 1586: { return static_cast(_M_addr()); } 1586: }; 1586: # 89 "/usr/mipsel-linux-gnu/include/c++/9/ext/aligned_buffer.h" 3 1586: template 1586: struct __aligned_buffer 1586: : std::aligned_storage 1586: { 1586: typename 1586: std::aligned_storage::type _M_storage; 1586: 1586: __aligned_buffer() = default; 1586: 1586: 1586: __aligned_buffer(std::nullptr_t) { } 1586: 1586: void* 1586: _M_addr() noexcept 1586: { 1586: return static_cast(&_M_storage); 1586: } 1586: 1586: const void* 1586: _M_addr() const noexcept 1586: { 1586: return static_cast(&_M_storage); 1586: } 1586: 1586: _Tp* 1586: _M_ptr() noexcept 1586: { return static_cast<_Tp*>(_M_addr()); } 1586: 1586: const _Tp* 1586: _M_ptr() const noexcept 1586: { return static_cast(_M_addr()); } 1586: }; 1586: 1586: 1586: } 1586: # 57 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr_base.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: #pragma GCC diagnostic push 1586: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1586: template class auto_ptr; 1586: #pragma GCC diagnostic pop 1586: 1586: 1586: 1586: 1586: 1586: 1586: class bad_weak_ptr : public std::exception 1586: { 1586: public: 1586: virtual char const* what() const noexcept; 1586: 1586: virtual ~bad_weak_ptr() noexcept; 1586: }; 1586: 1586: 1586: inline void 1586: __throw_bad_weak_ptr() 1586: { (throw (bad_weak_ptr())); } 1586: 1586: using __gnu_cxx::_Lock_policy; 1586: using __gnu_cxx::__default_lock_policy; 1586: using __gnu_cxx::_S_single; 1586: using __gnu_cxx::_S_mutex; 1586: using __gnu_cxx::_S_atomic; 1586: 1586: 1586: template<_Lock_policy _Lp> 1586: class _Mutex_base 1586: { 1586: protected: 1586: 1586: enum { _S_need_barriers = 0 }; 1586: }; 1586: 1586: template<> 1586: class _Mutex_base<_S_mutex> 1586: : public __gnu_cxx::__mutex 1586: { 1586: protected: 1586: 1586: 1586: 1586: enum { _S_need_barriers = 1 }; 1586: }; 1586: 1586: template<_Lock_policy _Lp = __default_lock_policy> 1586: class _Sp_counted_base 1586: : public _Mutex_base<_Lp> 1586: { 1586: public: 1586: _Sp_counted_base() noexcept 1586: : _M_use_count(1), _M_weak_count(1) { } 1586: 1586: virtual 1586: ~_Sp_counted_base() noexcept 1586: { } 1586: 1586: 1586: 1586: virtual void 1586: _M_dispose() noexcept = 0; 1586: 1586: 1586: virtual void 1586: _M_destroy() noexcept 1586: { delete this; } 1586: 1586: virtual void* 1586: _M_get_deleter(const std::type_info&) noexcept = 0; 1586: 1586: void 1586: _M_add_ref_copy() 1586: { __gnu_cxx::__atomic_add_dispatch(&_M_use_count, 1); } 1586: 1586: void 1586: _M_add_ref_lock(); 1586: 1586: bool 1586: _M_add_ref_lock_nothrow(); 1586: 1586: void 1586: _M_release() noexcept 1586: { 1586: 1586: ; 1586: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, -1) == 1) 1586: { 1586: ; 1586: _M_dispose(); 1586: 1586: 1586: 1586: 1586: if (_Mutex_base<_Lp>::_S_need_barriers) 1586: { 1586: __atomic_thread_fence (4); 1586: } 1586: 1586: 1586: ; 1586: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, 1586: -1) == 1) 1586: { 1586: ; 1586: _M_destroy(); 1586: } 1586: } 1586: } 1586: 1586: void 1586: _M_weak_add_ref() noexcept 1586: { __gnu_cxx::__atomic_add_dispatch(&_M_weak_count, 1); } 1586: 1586: void 1586: _M_weak_release() noexcept 1586: { 1586: 1586: ; 1586: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, -1) == 1) 1586: { 1586: ; 1586: if (_Mutex_base<_Lp>::_S_need_barriers) 1586: { 1586: 1586: 1586: __atomic_thread_fence (4); 1586: } 1586: _M_destroy(); 1586: } 1586: } 1586: 1586: long 1586: _M_get_use_count() const noexcept 1586: { 1586: 1586: 1586: return __atomic_load_n(&_M_use_count, 0); 1586: } 1586: 1586: private: 1586: _Sp_counted_base(_Sp_counted_base const&) = delete; 1586: _Sp_counted_base& operator=(_Sp_counted_base const&) = delete; 1586: 1586: _Atomic_word _M_use_count; 1586: _Atomic_word _M_weak_count; 1586: }; 1586: 1586: template<> 1586: inline void 1586: _Sp_counted_base<_S_single>:: 1586: _M_add_ref_lock() 1586: { 1586: if (_M_use_count == 0) 1586: __throw_bad_weak_ptr(); 1586: ++_M_use_count; 1586: } 1586: 1586: template<> 1586: inline void 1586: _Sp_counted_base<_S_mutex>:: 1586: _M_add_ref_lock() 1586: { 1586: __gnu_cxx::__scoped_lock sentry(*this); 1586: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0) 1586: { 1586: _M_use_count = 0; 1586: __throw_bad_weak_ptr(); 1586: } 1586: } 1586: 1586: template<> 1586: inline void 1586: _Sp_counted_base<_S_atomic>:: 1586: _M_add_ref_lock() 1586: { 1586: 1586: _Atomic_word __count = _M_get_use_count(); 1586: do 1586: { 1586: if (__count == 0) 1586: __throw_bad_weak_ptr(); 1586: 1586: 1586: } 1586: while (!__atomic_compare_exchange_n(&_M_use_count, &__count, __count + 1, 1586: true, 4, 1586: 0)); 1586: } 1586: 1586: template<> 1586: inline bool 1586: _Sp_counted_base<_S_single>:: 1586: _M_add_ref_lock_nothrow() 1586: { 1586: if (_M_use_count == 0) 1586: return false; 1586: ++_M_use_count; 1586: return true; 1586: } 1586: 1586: template<> 1586: inline bool 1586: _Sp_counted_base<_S_mutex>:: 1586: _M_add_ref_lock_nothrow() 1586: { 1586: __gnu_cxx::__scoped_lock sentry(*this); 1586: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0) 1586: { 1586: _M_use_count = 0; 1586: return false; 1586: } 1586: return true; 1586: } 1586: 1586: template<> 1586: inline bool 1586: _Sp_counted_base<_S_atomic>:: 1586: _M_add_ref_lock_nothrow() 1586: { 1586: 1586: _Atomic_word __count = _M_get_use_count(); 1586: do 1586: { 1586: if (__count == 0) 1586: return false; 1586: 1586: 1586: } 1586: while (!__atomic_compare_exchange_n(&_M_use_count, &__count, __count + 1, 1586: true, 4, 1586: 0)); 1586: return true; 1586: } 1586: 1586: template<> 1586: inline void 1586: _Sp_counted_base<_S_single>::_M_add_ref_copy() 1586: { ++_M_use_count; } 1586: 1586: template<> 1586: inline void 1586: _Sp_counted_base<_S_single>::_M_release() noexcept 1586: { 1586: if (--_M_use_count == 0) 1586: { 1586: _M_dispose(); 1586: if (--_M_weak_count == 0) 1586: _M_destroy(); 1586: } 1586: } 1586: 1586: template<> 1586: inline void 1586: _Sp_counted_base<_S_single>::_M_weak_add_ref() noexcept 1586: { ++_M_weak_count; } 1586: 1586: template<> 1586: inline void 1586: _Sp_counted_base<_S_single>::_M_weak_release() noexcept 1586: { 1586: if (--_M_weak_count == 0) 1586: _M_destroy(); 1586: } 1586: 1586: template<> 1586: inline long 1586: _Sp_counted_base<_S_single>::_M_get_use_count() const noexcept 1586: { return _M_use_count; } 1586: 1586: 1586: 1586: template 1586: class __shared_ptr; 1586: 1586: template 1586: class __weak_ptr; 1586: 1586: template 1586: class __enable_shared_from_this; 1586: 1586: template 1586: class shared_ptr; 1586: 1586: template 1586: class weak_ptr; 1586: 1586: template 1586: struct owner_less; 1586: 1586: template 1586: class enable_shared_from_this; 1586: 1586: template<_Lock_policy _Lp = __default_lock_policy> 1586: class __weak_count; 1586: 1586: template<_Lock_policy _Lp = __default_lock_policy> 1586: class __shared_count; 1586: 1586: 1586: 1586: template 1586: class _Sp_counted_ptr final : public _Sp_counted_base<_Lp> 1586: { 1586: public: 1586: explicit 1586: _Sp_counted_ptr(_Ptr __p) noexcept 1586: : _M_ptr(__p) { } 1586: 1586: virtual void 1586: _M_dispose() noexcept 1586: { delete _M_ptr; } 1586: 1586: virtual void 1586: _M_destroy() noexcept 1586: { delete this; } 1586: 1586: virtual void* 1586: _M_get_deleter(const std::type_info&) noexcept 1586: { return nullptr; } 1586: 1586: _Sp_counted_ptr(const _Sp_counted_ptr&) = delete; 1586: _Sp_counted_ptr& operator=(const _Sp_counted_ptr&) = delete; 1586: 1586: private: 1586: _Ptr _M_ptr; 1586: }; 1586: 1586: template<> 1586: inline void 1586: _Sp_counted_ptr::_M_dispose() noexcept { } 1586: 1586: template<> 1586: inline void 1586: _Sp_counted_ptr::_M_dispose() noexcept { } 1586: 1586: template<> 1586: inline void 1586: _Sp_counted_ptr::_M_dispose() noexcept { } 1586: 1586: template 1586: struct _Sp_ebo_helper; 1586: 1586: 1586: template 1586: struct _Sp_ebo_helper<_Nm, _Tp, true> : private _Tp 1586: { 1586: explicit _Sp_ebo_helper(const _Tp& __tp) : _Tp(__tp) { } 1586: explicit _Sp_ebo_helper(_Tp&& __tp) : _Tp(std::move(__tp)) { } 1586: 1586: static _Tp& 1586: _S_get(_Sp_ebo_helper& __eboh) { return static_cast<_Tp&>(__eboh); } 1586: }; 1586: 1586: 1586: template 1586: struct _Sp_ebo_helper<_Nm, _Tp, false> 1586: { 1586: explicit _Sp_ebo_helper(const _Tp& __tp) : _M_tp(__tp) { } 1586: explicit _Sp_ebo_helper(_Tp&& __tp) : _M_tp(std::move(__tp)) { } 1586: 1586: static _Tp& 1586: _S_get(_Sp_ebo_helper& __eboh) 1586: { return __eboh._M_tp; } 1586: 1586: private: 1586: _Tp _M_tp; 1586: }; 1586: 1586: 1586: template 1586: class _Sp_counted_deleter final : public _Sp_counted_base<_Lp> 1586: { 1586: class _Impl : _Sp_ebo_helper<0, _Deleter>, _Sp_ebo_helper<1, _Alloc> 1586: { 1586: typedef _Sp_ebo_helper<0, _Deleter> _Del_base; 1586: typedef _Sp_ebo_helper<1, _Alloc> _Alloc_base; 1586: 1586: public: 1586: _Impl(_Ptr __p, _Deleter __d, const _Alloc& __a) noexcept 1586: : _M_ptr(__p), _Del_base(std::move(__d)), _Alloc_base(__a) 1586: { } 1586: 1586: _Deleter& _M_del() noexcept { return _Del_base::_S_get(*this); } 1586: _Alloc& _M_alloc() noexcept { return _Alloc_base::_S_get(*this); } 1586: 1586: _Ptr _M_ptr; 1586: }; 1586: 1586: public: 1586: using __allocator_type = __alloc_rebind<_Alloc, _Sp_counted_deleter>; 1586: 1586: 1586: _Sp_counted_deleter(_Ptr __p, _Deleter __d) noexcept 1586: : _M_impl(__p, std::move(__d), _Alloc()) { } 1586: 1586: 1586: _Sp_counted_deleter(_Ptr __p, _Deleter __d, const _Alloc& __a) noexcept 1586: : _M_impl(__p, std::move(__d), __a) { } 1586: 1586: ~_Sp_counted_deleter() noexcept { } 1586: 1586: virtual void 1586: _M_dispose() noexcept 1586: { _M_impl._M_del()(_M_impl._M_ptr); } 1586: 1586: virtual void 1586: _M_destroy() noexcept 1586: { 1586: __allocator_type __a(_M_impl._M_alloc()); 1586: __allocated_ptr<__allocator_type> __guard_ptr{ __a, this }; 1586: this->~_Sp_counted_deleter(); 1586: } 1586: 1586: virtual void* 1586: _M_get_deleter(const std::type_info& __ti) noexcept 1586: { 1586: 1586: 1586: 1586: return __ti == typeid(_Deleter) 1586: ? std::__addressof(_M_impl._M_del()) 1586: : nullptr; 1586: 1586: 1586: 1586: } 1586: 1586: private: 1586: _Impl _M_impl; 1586: }; 1586: 1586: 1586: 1586: struct _Sp_make_shared_tag 1586: { 1586: private: 1586: template 1586: friend class _Sp_counted_ptr_inplace; 1586: 1586: static const type_info& 1586: _S_ti() noexcept __attribute__ ((__visibility__ ("default"))) 1586: { 1586: alignas(type_info) static constexpr char __tag[sizeof(type_info)] = { }; 1586: return reinterpret_cast(__tag); 1586: } 1586: 1586: static bool _S_eq(const type_info&) noexcept; 1586: }; 1586: 1586: template 1586: struct _Sp_alloc_shared_tag 1586: { 1586: const _Alloc& _M_a; 1586: }; 1586: 1586: template 1586: class _Sp_counted_ptr_inplace final : public _Sp_counted_base<_Lp> 1586: { 1586: class _Impl : _Sp_ebo_helper<0, _Alloc> 1586: { 1586: typedef _Sp_ebo_helper<0, _Alloc> _A_base; 1586: 1586: public: 1586: explicit _Impl(_Alloc __a) noexcept : _A_base(__a) { } 1586: 1586: _Alloc& _M_alloc() noexcept { return _A_base::_S_get(*this); } 1586: 1586: __gnu_cxx::__aligned_buffer<_Tp> _M_storage; 1586: }; 1586: 1586: public: 1586: using __allocator_type = __alloc_rebind<_Alloc, _Sp_counted_ptr_inplace>; 1586: 1586: 1586: template 1586: _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args) 1586: : _M_impl(__a) 1586: { 1586: 1586: 1586: allocator_traits<_Alloc>::construct(__a, _M_ptr(), 1586: std::forward<_Args>(__args)...); 1586: } 1586: 1586: ~_Sp_counted_ptr_inplace() noexcept { } 1586: 1586: virtual void 1586: _M_dispose() noexcept 1586: { 1586: allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr()); 1586: } 1586: 1586: 1586: virtual void 1586: _M_destroy() noexcept 1586: { 1586: __allocator_type __a(_M_impl._M_alloc()); 1586: __allocated_ptr<__allocator_type> __guard_ptr{ __a, this }; 1586: this->~_Sp_counted_ptr_inplace(); 1586: } 1586: 1586: private: 1586: friend class __shared_count<_Lp>; 1586: 1586: 1586: 1586: virtual void* 1586: _M_get_deleter(const std::type_info& __ti) noexcept override 1586: { 1586: auto __ptr = const_cast::type*>(_M_ptr()); 1586: 1586: 1586: 1586: 1586: if (&__ti == &_Sp_make_shared_tag::_S_ti() 1586: || 1586: 1586: __ti == typeid(_Sp_make_shared_tag) 1586: 1586: 1586: 1586: ) 1586: return __ptr; 1586: return nullptr; 1586: } 1586: 1586: _Tp* _M_ptr() noexcept { return _M_impl._M_storage._M_ptr(); } 1586: 1586: _Impl _M_impl; 1586: }; 1586: 1586: 1586: struct __sp_array_delete 1586: { 1586: template 1586: void operator()(_Yp* __p) const { delete[] __p; } 1586: }; 1586: 1586: template<_Lock_policy _Lp> 1586: class __shared_count 1586: { 1586: template 1586: struct __not_alloc_shared_tag { using type = void; }; 1586: 1586: template 1586: struct __not_alloc_shared_tag<_Sp_alloc_shared_tag<_Tp>> { }; 1586: 1586: public: 1586: constexpr __shared_count() noexcept : _M_pi(0) 1586: { } 1586: 1586: template 1586: explicit 1586: __shared_count(_Ptr __p) : _M_pi(0) 1586: { 1586: try 1586: { 1586: _M_pi = new _Sp_counted_ptr<_Ptr, _Lp>(__p); 1586: } 1586: catch(...) 1586: { 1586: delete __p; 1586: throw; 1586: } 1586: } 1586: 1586: template 1586: __shared_count(_Ptr __p, false_type) 1586: : __shared_count(__p) 1586: { } 1586: 1586: template 1586: __shared_count(_Ptr __p, true_type) 1586: : __shared_count(__p, __sp_array_delete{}, allocator()) 1586: { } 1586: 1586: template::type> 1586: __shared_count(_Ptr __p, _Deleter __d) 1586: : __shared_count(__p, std::move(__d), allocator()) 1586: { } 1586: 1586: template::type> 1586: __shared_count(_Ptr __p, _Deleter __d, _Alloc __a) : _M_pi(0) 1586: { 1586: typedef _Sp_counted_deleter<_Ptr, _Deleter, _Alloc, _Lp> _Sp_cd_type; 1586: try 1586: { 1586: typename _Sp_cd_type::__allocator_type __a2(__a); 1586: auto __guard = std::__allocate_guarded(__a2); 1586: _Sp_cd_type* __mem = __guard.get(); 1586: ::new (__mem) _Sp_cd_type(__p, std::move(__d), std::move(__a)); 1586: _M_pi = __mem; 1586: __guard = nullptr; 1586: } 1586: catch(...) 1586: { 1586: __d(__p); 1586: throw; 1586: } 1586: } 1586: 1586: template 1586: __shared_count(_Tp*& __p, _Sp_alloc_shared_tag<_Alloc> __a, 1586: _Args&&... __args) 1586: { 1586: typedef _Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp> _Sp_cp_type; 1586: typename _Sp_cp_type::__allocator_type __a2(__a._M_a); 1586: auto __guard = std::__allocate_guarded(__a2); 1586: _Sp_cp_type* __mem = __guard.get(); 1586: auto __pi = ::new (__mem) 1586: _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...); 1586: __guard = nullptr; 1586: _M_pi = __pi; 1586: __p = __pi->_M_ptr(); 1586: } 1586: 1586: 1586: #pragma GCC diagnostic push 1586: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1586: 1586: template 1586: explicit 1586: __shared_count(std::auto_ptr<_Tp>&& __r); 1586: #pragma GCC diagnostic pop 1586: 1586: 1586: 1586: template 1586: explicit 1586: __shared_count(std::unique_ptr<_Tp, _Del>&& __r) : _M_pi(0) 1586: { 1586: 1586: 1586: if (__r.get() == nullptr) 1586: return; 1586: 1586: using _Ptr = typename unique_ptr<_Tp, _Del>::pointer; 1586: using _Del2 = typename conditional::value, 1586: reference_wrapper::type>, 1586: _Del>::type; 1586: using _Sp_cd_type 1586: = _Sp_counted_deleter<_Ptr, _Del2, allocator, _Lp>; 1586: using _Alloc = allocator<_Sp_cd_type>; 1586: using _Alloc_traits = allocator_traits<_Alloc>; 1586: _Alloc __a; 1586: _Sp_cd_type* __mem = _Alloc_traits::allocate(__a, 1); 1586: _Alloc_traits::construct(__a, __mem, __r.release(), 1586: __r.get_deleter()); 1586: _M_pi = __mem; 1586: } 1586: 1586: 1586: explicit __shared_count(const __weak_count<_Lp>& __r); 1586: 1586: 1586: explicit __shared_count(const __weak_count<_Lp>& __r, std::nothrow_t); 1586: 1586: ~__shared_count() noexcept 1586: { 1586: if (_M_pi != nullptr) 1586: _M_pi->_M_release(); 1586: } 1586: 1586: __shared_count(const __shared_count& __r) noexcept 1586: : _M_pi(__r._M_pi) 1586: { 1586: if (_M_pi != 0) 1586: _M_pi->_M_add_ref_copy(); 1586: } 1586: 1586: __shared_count& 1586: operator=(const __shared_count& __r) noexcept 1586: { 1586: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 1586: if (__tmp != _M_pi) 1586: { 1586: if (__tmp != 0) 1586: __tmp->_M_add_ref_copy(); 1586: if (_M_pi != 0) 1586: _M_pi->_M_release(); 1586: _M_pi = __tmp; 1586: } 1586: return *this; 1586: } 1586: 1586: void 1586: _M_swap(__shared_count& __r) noexcept 1586: { 1586: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 1586: __r._M_pi = _M_pi; 1586: _M_pi = __tmp; 1586: } 1586: 1586: long 1586: _M_get_use_count() const noexcept 1586: { return _M_pi != 0 ? _M_pi->_M_get_use_count() : 0; } 1586: 1586: bool 1586: _M_unique() const noexcept 1586: { return this->_M_get_use_count() == 1; } 1586: 1586: void* 1586: _M_get_deleter(const std::type_info& __ti) const noexcept 1586: { return _M_pi ? _M_pi->_M_get_deleter(__ti) : nullptr; } 1586: 1586: bool 1586: _M_less(const __shared_count& __rhs) const noexcept 1586: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 1586: 1586: bool 1586: _M_less(const __weak_count<_Lp>& __rhs) const noexcept 1586: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 1586: 1586: 1586: friend inline bool 1586: operator==(const __shared_count& __a, const __shared_count& __b) noexcept 1586: { return __a._M_pi == __b._M_pi; } 1586: 1586: private: 1586: friend class __weak_count<_Lp>; 1586: 1586: _Sp_counted_base<_Lp>* _M_pi; 1586: }; 1586: 1586: 1586: template<_Lock_policy _Lp> 1586: class __weak_count 1586: { 1586: public: 1586: constexpr __weak_count() noexcept : _M_pi(nullptr) 1586: { } 1586: 1586: __weak_count(const __shared_count<_Lp>& __r) noexcept 1586: : _M_pi(__r._M_pi) 1586: { 1586: if (_M_pi != nullptr) 1586: _M_pi->_M_weak_add_ref(); 1586: } 1586: 1586: __weak_count(const __weak_count& __r) noexcept 1586: : _M_pi(__r._M_pi) 1586: { 1586: if (_M_pi != nullptr) 1586: _M_pi->_M_weak_add_ref(); 1586: } 1586: 1586: __weak_count(__weak_count&& __r) noexcept 1586: : _M_pi(__r._M_pi) 1586: { __r._M_pi = nullptr; } 1586: 1586: ~__weak_count() noexcept 1586: { 1586: if (_M_pi != nullptr) 1586: _M_pi->_M_weak_release(); 1586: } 1586: 1586: __weak_count& 1586: operator=(const __shared_count<_Lp>& __r) noexcept 1586: { 1586: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 1586: if (__tmp != nullptr) 1586: __tmp->_M_weak_add_ref(); 1586: if (_M_pi != nullptr) 1586: _M_pi->_M_weak_release(); 1586: _M_pi = __tmp; 1586: return *this; 1586: } 1586: 1586: __weak_count& 1586: operator=(const __weak_count& __r) noexcept 1586: { 1586: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 1586: if (__tmp != nullptr) 1586: __tmp->_M_weak_add_ref(); 1586: if (_M_pi != nullptr) 1586: _M_pi->_M_weak_release(); 1586: _M_pi = __tmp; 1586: return *this; 1586: } 1586: 1586: __weak_count& 1586: operator=(__weak_count&& __r) noexcept 1586: { 1586: if (_M_pi != nullptr) 1586: _M_pi->_M_weak_release(); 1586: _M_pi = __r._M_pi; 1586: __r._M_pi = nullptr; 1586: return *this; 1586: } 1586: 1586: void 1586: _M_swap(__weak_count& __r) noexcept 1586: { 1586: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 1586: __r._M_pi = _M_pi; 1586: _M_pi = __tmp; 1586: } 1586: 1586: long 1586: _M_get_use_count() const noexcept 1586: { return _M_pi != nullptr ? _M_pi->_M_get_use_count() : 0; } 1586: 1586: bool 1586: _M_less(const __weak_count& __rhs) const noexcept 1586: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 1586: 1586: bool 1586: _M_less(const __shared_count<_Lp>& __rhs) const noexcept 1586: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 1586: 1586: 1586: friend inline bool 1586: operator==(const __weak_count& __a, const __weak_count& __b) noexcept 1586: { return __a._M_pi == __b._M_pi; } 1586: 1586: private: 1586: friend class __shared_count<_Lp>; 1586: 1586: _Sp_counted_base<_Lp>* _M_pi; 1586: }; 1586: 1586: 1586: template<_Lock_policy _Lp> 1586: inline 1586: __shared_count<_Lp>::__shared_count(const __weak_count<_Lp>& __r) 1586: : _M_pi(__r._M_pi) 1586: { 1586: if (_M_pi != nullptr) 1586: _M_pi->_M_add_ref_lock(); 1586: else 1586: __throw_bad_weak_ptr(); 1586: } 1586: 1586: 1586: template<_Lock_policy _Lp> 1586: inline 1586: __shared_count<_Lp>:: 1586: __shared_count(const __weak_count<_Lp>& __r, std::nothrow_t) 1586: : _M_pi(__r._M_pi) 1586: { 1586: if (_M_pi != nullptr) 1586: if (!_M_pi->_M_add_ref_lock_nothrow()) 1586: _M_pi = nullptr; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct __sp_compatible_with 1586: : false_type 1586: { }; 1586: 1586: template 1586: struct __sp_compatible_with<_Yp*, _Tp*> 1586: : is_convertible<_Yp*, _Tp*>::type 1586: { }; 1586: 1586: template 1586: struct __sp_compatible_with<_Up(*)[_Nm], _Up(*)[]> 1586: : true_type 1586: { }; 1586: 1586: template 1586: struct __sp_compatible_with<_Up(*)[_Nm], const _Up(*)[]> 1586: : true_type 1586: { }; 1586: 1586: template 1586: struct __sp_compatible_with<_Up(*)[_Nm], volatile _Up(*)[]> 1586: : true_type 1586: { }; 1586: 1586: template 1586: struct __sp_compatible_with<_Up(*)[_Nm], const volatile _Up(*)[]> 1586: : true_type 1586: { }; 1586: 1586: 1586: template 1586: struct __sp_is_constructible_arrN 1586: : false_type 1586: { }; 1586: 1586: template 1586: struct __sp_is_constructible_arrN<_Up, _Nm, _Yp, __void_t<_Yp[_Nm]>> 1586: : is_convertible<_Yp(*)[_Nm], _Up(*)[_Nm]>::type 1586: { }; 1586: 1586: 1586: template 1586: struct __sp_is_constructible_arr 1586: : false_type 1586: { }; 1586: 1586: template 1586: struct __sp_is_constructible_arr<_Up, _Yp, __void_t<_Yp[]>> 1586: : is_convertible<_Yp(*)[], _Up(*)[]>::type 1586: { }; 1586: 1586: 1586: template 1586: struct __sp_is_constructible; 1586: 1586: 1586: template 1586: struct __sp_is_constructible<_Up[_Nm], _Yp> 1586: : __sp_is_constructible_arrN<_Up, _Nm, _Yp>::type 1586: { }; 1586: 1586: 1586: template 1586: struct __sp_is_constructible<_Up[], _Yp> 1586: : __sp_is_constructible_arr<_Up, _Yp>::type 1586: { }; 1586: 1586: 1586: template 1586: struct __sp_is_constructible 1586: : is_convertible<_Yp*, _Tp*>::type 1586: { }; 1586: 1586: 1586: 1586: template::value, bool = is_void<_Tp>::value> 1586: class __shared_ptr_access 1586: { 1586: public: 1586: using element_type = _Tp; 1586: 1586: element_type& 1586: operator*() const noexcept 1586: { 1586: ; 1586: return *_M_get(); 1586: } 1586: 1586: element_type* 1586: operator->() const noexcept 1586: { 1586: ; 1586: return _M_get(); 1586: } 1586: 1586: private: 1586: element_type* 1586: _M_get() const noexcept 1586: { return static_cast*>(this)->get(); } 1586: }; 1586: 1586: 1586: template 1586: class __shared_ptr_access<_Tp, _Lp, false, true> 1586: { 1586: public: 1586: using element_type = _Tp; 1586: 1586: element_type* 1586: operator->() const noexcept 1586: { 1586: auto __ptr = static_cast*>(this)->get(); 1586: ; 1586: return __ptr; 1586: } 1586: }; 1586: 1586: 1586: template 1586: class __shared_ptr_access<_Tp, _Lp, true, false> 1586: { 1586: public: 1586: using element_type = typename remove_extent<_Tp>::type; 1586: 1586: 1586: [[__deprecated__("shared_ptr::operator* is absent from C++17")]] 1586: element_type& 1586: operator*() const noexcept 1586: { 1586: ; 1586: return *_M_get(); 1586: } 1586: 1586: [[__deprecated__("shared_ptr::operator-> is absent from C++17")]] 1586: element_type* 1586: operator->() const noexcept 1586: { 1586: ; 1586: return _M_get(); 1586: } 1586: 1586: 1586: element_type& 1586: operator[](ptrdiff_t __i) const 1586: { 1586: ; 1586: ; 1586: return _M_get()[__i]; 1586: } 1586: 1586: private: 1586: element_type* 1586: _M_get() const noexcept 1586: { return static_cast*>(this)->get(); } 1586: }; 1586: 1586: template 1586: class __shared_ptr 1586: : public __shared_ptr_access<_Tp, _Lp> 1586: { 1586: public: 1586: using element_type = typename remove_extent<_Tp>::type; 1586: 1586: private: 1586: 1586: template 1586: using _SafeConv 1586: = typename enable_if<__sp_is_constructible<_Tp, _Yp>::value>::type; 1586: 1586: 1586: template 1586: using _Compatible = typename 1586: enable_if<__sp_compatible_with<_Yp*, _Tp*>::value, _Res>::type; 1586: 1586: 1586: template 1586: using _Assignable = _Compatible<_Yp, __shared_ptr&>; 1586: 1586: 1586: template::pointer> 1586: using _UniqCompatible = typename enable_if<__and_< 1586: __sp_compatible_with<_Yp*, _Tp*>, is_convertible<_Ptr, element_type*> 1586: >::value, _Res>::type; 1586: 1586: 1586: template 1586: using _UniqAssignable = _UniqCompatible<_Yp, _Del, __shared_ptr&>; 1586: 1586: public: 1586: 1586: 1586: 1586: 1586: 1586: constexpr __shared_ptr() noexcept 1586: : _M_ptr(0), _M_refcount() 1586: { } 1586: 1586: template> 1586: explicit 1586: __shared_ptr(_Yp* __p) 1586: : _M_ptr(__p), _M_refcount(__p, typename is_array<_Tp>::type()) 1586: { 1586: static_assert( !is_void<_Yp>::value, "incomplete type" ); 1586: static_assert( sizeof(_Yp) > 0, "incomplete type" ); 1586: _M_enable_shared_from_this_with(__p); 1586: } 1586: 1586: template> 1586: __shared_ptr(_Yp* __p, _Deleter __d) 1586: : _M_ptr(__p), _M_refcount(__p, std::move(__d)) 1586: { 1586: static_assert(__is_invocable<_Deleter&, _Yp*&>::value, 1586: "deleter expression d(p) is well-formed"); 1586: _M_enable_shared_from_this_with(__p); 1586: } 1586: 1586: template> 1586: __shared_ptr(_Yp* __p, _Deleter __d, _Alloc __a) 1586: : _M_ptr(__p), _M_refcount(__p, std::move(__d), std::move(__a)) 1586: { 1586: static_assert(__is_invocable<_Deleter&, _Yp*&>::value, 1586: "deleter expression d(p) is well-formed"); 1586: _M_enable_shared_from_this_with(__p); 1586: } 1586: 1586: template 1586: __shared_ptr(nullptr_t __p, _Deleter __d) 1586: : _M_ptr(0), _M_refcount(__p, std::move(__d)) 1586: { } 1586: 1586: template 1586: __shared_ptr(nullptr_t __p, _Deleter __d, _Alloc __a) 1586: : _M_ptr(0), _M_refcount(__p, std::move(__d), std::move(__a)) 1586: { } 1586: 1586: template 1586: __shared_ptr(const __shared_ptr<_Yp, _Lp>& __r, 1586: element_type* __p) noexcept 1586: : _M_ptr(__p), _M_refcount(__r._M_refcount) 1586: { } 1586: 1586: __shared_ptr(const __shared_ptr&) noexcept = default; 1586: __shared_ptr& operator=(const __shared_ptr&) noexcept = default; 1586: ~__shared_ptr() = default; 1586: 1586: template> 1586: __shared_ptr(const __shared_ptr<_Yp, _Lp>& __r) noexcept 1586: : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) 1586: { } 1586: 1586: __shared_ptr(__shared_ptr&& __r) noexcept 1586: : _M_ptr(__r._M_ptr), _M_refcount() 1586: { 1586: _M_refcount._M_swap(__r._M_refcount); 1586: __r._M_ptr = 0; 1586: } 1586: 1586: template> 1586: __shared_ptr(__shared_ptr<_Yp, _Lp>&& __r) noexcept 1586: : _M_ptr(__r._M_ptr), _M_refcount() 1586: { 1586: _M_refcount._M_swap(__r._M_refcount); 1586: __r._M_ptr = 0; 1586: } 1586: 1586: template> 1586: explicit __shared_ptr(const __weak_ptr<_Yp, _Lp>& __r) 1586: : _M_refcount(__r._M_refcount) 1586: { 1586: 1586: 1586: _M_ptr = __r._M_ptr; 1586: } 1586: 1586: 1586: template> 1586: __shared_ptr(unique_ptr<_Yp, _Del>&& __r) 1586: : _M_ptr(__r.get()), _M_refcount() 1586: { 1586: auto __raw = __to_address(__r.get()); 1586: _M_refcount = __shared_count<_Lp>(std::move(__r)); 1586: _M_enable_shared_from_this_with(__raw); 1586: } 1586: 1586: 1586: protected: 1586: 1586: template>, is_array<_Tp1>, 1586: is_convertible::pointer, _Tp*> 1586: >::value, bool>::type = true> 1586: __shared_ptr(unique_ptr<_Tp1, _Del>&& __r, __sp_array_delete) 1586: : _M_ptr(__r.get()), _M_refcount() 1586: { 1586: auto __raw = __to_address(__r.get()); 1586: _M_refcount = __shared_count<_Lp>(std::move(__r)); 1586: _M_enable_shared_from_this_with(__raw); 1586: } 1586: public: 1586: 1586: 1586: 1586: #pragma GCC diagnostic push 1586: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1586: 1586: template> 1586: __shared_ptr(auto_ptr<_Yp>&& __r); 1586: #pragma GCC diagnostic pop 1586: 1586: 1586: constexpr __shared_ptr(nullptr_t) noexcept : __shared_ptr() { } 1586: 1586: template 1586: _Assignable<_Yp> 1586: operator=(const __shared_ptr<_Yp, _Lp>& __r) noexcept 1586: { 1586: _M_ptr = __r._M_ptr; 1586: _M_refcount = __r._M_refcount; 1586: return *this; 1586: } 1586: 1586: 1586: #pragma GCC diagnostic push 1586: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1586: template 1586: _Assignable<_Yp> 1586: operator=(auto_ptr<_Yp>&& __r) 1586: { 1586: __shared_ptr(std::move(__r)).swap(*this); 1586: return *this; 1586: } 1586: #pragma GCC diagnostic pop 1586: 1586: 1586: __shared_ptr& 1586: operator=(__shared_ptr&& __r) noexcept 1586: { 1586: __shared_ptr(std::move(__r)).swap(*this); 1586: return *this; 1586: } 1586: 1586: template 1586: _Assignable<_Yp> 1586: operator=(__shared_ptr<_Yp, _Lp>&& __r) noexcept 1586: { 1586: __shared_ptr(std::move(__r)).swap(*this); 1586: return *this; 1586: } 1586: 1586: template 1586: _UniqAssignable<_Yp, _Del> 1586: operator=(unique_ptr<_Yp, _Del>&& __r) 1586: { 1586: __shared_ptr(std::move(__r)).swap(*this); 1586: return *this; 1586: } 1586: 1586: void 1586: reset() noexcept 1586: { __shared_ptr().swap(*this); } 1586: 1586: template 1586: _SafeConv<_Yp> 1586: reset(_Yp* __p) 1586: { 1586: 1586: ; 1586: __shared_ptr(__p).swap(*this); 1586: } 1586: 1586: template 1586: _SafeConv<_Yp> 1586: reset(_Yp* __p, _Deleter __d) 1586: { __shared_ptr(__p, std::move(__d)).swap(*this); } 1586: 1586: template 1586: _SafeConv<_Yp> 1586: reset(_Yp* __p, _Deleter __d, _Alloc __a) 1586: { __shared_ptr(__p, std::move(__d), std::move(__a)).swap(*this); } 1586: 1586: element_type* 1586: get() const noexcept 1586: { return _M_ptr; } 1586: 1586: explicit operator bool() const 1586: { return _M_ptr == 0 ? false : true; } 1586: 1586: bool 1586: unique() const noexcept 1586: { return _M_refcount._M_unique(); } 1586: 1586: long 1586: use_count() const noexcept 1586: { return _M_refcount._M_get_use_count(); } 1586: 1586: void 1586: swap(__shared_ptr<_Tp, _Lp>& __other) noexcept 1586: { 1586: std::swap(_M_ptr, __other._M_ptr); 1586: _M_refcount._M_swap(__other._M_refcount); 1586: } 1586: 1586: template 1586: bool 1586: owner_before(__shared_ptr<_Tp1, _Lp> const& __rhs) const noexcept 1586: { return _M_refcount._M_less(__rhs._M_refcount); } 1586: 1586: template 1586: bool 1586: owner_before(__weak_ptr<_Tp1, _Lp> const& __rhs) const noexcept 1586: { return _M_refcount._M_less(__rhs._M_refcount); } 1586: 1586: protected: 1586: 1586: template 1586: __shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args) 1586: : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...) 1586: { _M_enable_shared_from_this_with(_M_ptr); } 1586: 1586: template 1586: friend __shared_ptr<_Tp1, _Lp1> 1586: __allocate_shared(const _Alloc& __a, _Args&&... __args); 1586: 1586: 1586: 1586: __shared_ptr(const __weak_ptr<_Tp, _Lp>& __r, std::nothrow_t) 1586: : _M_refcount(__r._M_refcount, std::nothrow) 1586: { 1586: _M_ptr = _M_refcount._M_get_use_count() ? __r._M_ptr : nullptr; 1586: } 1586: 1586: friend class __weak_ptr<_Tp, _Lp>; 1586: 1586: private: 1586: 1586: template 1586: using __esft_base_t = decltype(__enable_shared_from_this_base( 1586: std::declval&>(), 1586: std::declval<_Yp*>())); 1586: 1586: 1586: template 1586: struct __has_esft_base 1586: : false_type { }; 1586: 1586: template 1586: struct __has_esft_base<_Yp, __void_t<__esft_base_t<_Yp>>> 1586: : __not_> { }; 1586: 1586: template::type> 1586: typename enable_if<__has_esft_base<_Yp2>::value>::type 1586: _M_enable_shared_from_this_with(_Yp* __p) noexcept 1586: { 1586: if (auto __base = __enable_shared_from_this_base(_M_refcount, __p)) 1586: __base->_M_weak_assign(const_cast<_Yp2*>(__p), _M_refcount); 1586: } 1586: 1586: template::type> 1586: typename enable_if::value>::type 1586: _M_enable_shared_from_this_with(_Yp*) noexcept 1586: { } 1586: 1586: void* 1586: _M_get_deleter(const std::type_info& __ti) const noexcept 1586: { return _M_refcount._M_get_deleter(__ti); } 1586: 1586: template friend class __shared_ptr; 1586: template friend class __weak_ptr; 1586: 1586: template 1586: friend _Del* get_deleter(const __shared_ptr<_Tp1, _Lp1>&) noexcept; 1586: 1586: template 1586: friend _Del* get_deleter(const shared_ptr<_Tp1>&) noexcept; 1586: 1586: element_type* _M_ptr; 1586: __shared_count<_Lp> _M_refcount; 1586: }; 1586: 1586: 1586: 1586: template 1586: inline bool 1586: operator==(const __shared_ptr<_Tp1, _Lp>& __a, 1586: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 1586: { return __a.get() == __b.get(); } 1586: 1586: template 1586: inline bool 1586: operator==(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 1586: { return !__a; } 1586: 1586: template 1586: inline bool 1586: operator==(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 1586: { return !__a; } 1586: 1586: template 1586: inline bool 1586: operator!=(const __shared_ptr<_Tp1, _Lp>& __a, 1586: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 1586: { return __a.get() != __b.get(); } 1586: 1586: template 1586: inline bool 1586: operator!=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 1586: { return (bool)__a; } 1586: 1586: template 1586: inline bool 1586: operator!=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 1586: { return (bool)__a; } 1586: 1586: template 1586: inline bool 1586: operator<(const __shared_ptr<_Tp, _Lp>& __a, 1586: const __shared_ptr<_Up, _Lp>& __b) noexcept 1586: { 1586: using _Tp_elt = typename __shared_ptr<_Tp, _Lp>::element_type; 1586: using _Up_elt = typename __shared_ptr<_Up, _Lp>::element_type; 1586: using _Vp = typename common_type<_Tp_elt*, _Up_elt*>::type; 1586: return less<_Vp>()(__a.get(), __b.get()); 1586: } 1586: 1586: template 1586: inline bool 1586: operator<(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 1586: { 1586: using _Tp_elt = typename __shared_ptr<_Tp, _Lp>::element_type; 1586: return less<_Tp_elt*>()(__a.get(), nullptr); 1586: } 1586: 1586: template 1586: inline bool 1586: operator<(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 1586: { 1586: using _Tp_elt = typename __shared_ptr<_Tp, _Lp>::element_type; 1586: return less<_Tp_elt*>()(nullptr, __a.get()); 1586: } 1586: 1586: template 1586: inline bool 1586: operator<=(const __shared_ptr<_Tp1, _Lp>& __a, 1586: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 1586: { return !(__b < __a); } 1586: 1586: template 1586: inline bool 1586: operator<=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 1586: { return !(nullptr < __a); } 1586: 1586: template 1586: inline bool 1586: operator<=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 1586: { return !(__a < nullptr); } 1586: 1586: template 1586: inline bool 1586: operator>(const __shared_ptr<_Tp1, _Lp>& __a, 1586: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 1586: { return (__b < __a); } 1586: 1586: template 1586: inline bool 1586: operator>(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 1586: { return nullptr < __a; } 1586: 1586: template 1586: inline bool 1586: operator>(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 1586: { return __a < nullptr; } 1586: 1586: template 1586: inline bool 1586: operator>=(const __shared_ptr<_Tp1, _Lp>& __a, 1586: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 1586: { return !(__a < __b); } 1586: 1586: template 1586: inline bool 1586: operator>=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 1586: { return !(__a < nullptr); } 1586: 1586: template 1586: inline bool 1586: operator>=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 1586: { return !(nullptr < __a); } 1586: 1586: 1586: template 1586: inline void 1586: swap(__shared_ptr<_Tp, _Lp>& __a, __shared_ptr<_Tp, _Lp>& __b) noexcept 1586: { __a.swap(__b); } 1586: # 1530 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr_base.h" 3 1586: template 1586: inline __shared_ptr<_Tp, _Lp> 1586: static_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 1586: { 1586: using _Sp = __shared_ptr<_Tp, _Lp>; 1586: return _Sp(__r, static_cast(__r.get())); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline __shared_ptr<_Tp, _Lp> 1586: const_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 1586: { 1586: using _Sp = __shared_ptr<_Tp, _Lp>; 1586: return _Sp(__r, const_cast(__r.get())); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline __shared_ptr<_Tp, _Lp> 1586: dynamic_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 1586: { 1586: using _Sp = __shared_ptr<_Tp, _Lp>; 1586: if (auto* __p = dynamic_cast(__r.get())) 1586: return _Sp(__r, __p); 1586: return _Sp(); 1586: } 1586: # 1576 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr_base.h" 3 1586: template 1586: class __weak_ptr 1586: { 1586: template 1586: using _Compatible = typename 1586: enable_if<__sp_compatible_with<_Yp*, _Tp*>::value, _Res>::type; 1586: 1586: 1586: template 1586: using _Assignable = _Compatible<_Yp, __weak_ptr&>; 1586: 1586: public: 1586: using element_type = typename remove_extent<_Tp>::type; 1586: 1586: constexpr __weak_ptr() noexcept 1586: : _M_ptr(nullptr), _M_refcount() 1586: { } 1586: 1586: __weak_ptr(const __weak_ptr&) noexcept = default; 1586: 1586: ~__weak_ptr() = default; 1586: # 1612 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr_base.h" 3 1586: template> 1586: __weak_ptr(const __weak_ptr<_Yp, _Lp>& __r) noexcept 1586: : _M_refcount(__r._M_refcount) 1586: { _M_ptr = __r.lock().get(); } 1586: 1586: template> 1586: __weak_ptr(const __shared_ptr<_Yp, _Lp>& __r) noexcept 1586: : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) 1586: { } 1586: 1586: __weak_ptr(__weak_ptr&& __r) noexcept 1586: : _M_ptr(__r._M_ptr), _M_refcount(std::move(__r._M_refcount)) 1586: { __r._M_ptr = nullptr; } 1586: 1586: template> 1586: __weak_ptr(__weak_ptr<_Yp, _Lp>&& __r) noexcept 1586: : _M_ptr(__r.lock().get()), _M_refcount(std::move(__r._M_refcount)) 1586: { __r._M_ptr = nullptr; } 1586: 1586: __weak_ptr& 1586: operator=(const __weak_ptr& __r) noexcept = default; 1586: 1586: template 1586: _Assignable<_Yp> 1586: operator=(const __weak_ptr<_Yp, _Lp>& __r) noexcept 1586: { 1586: _M_ptr = __r.lock().get(); 1586: _M_refcount = __r._M_refcount; 1586: return *this; 1586: } 1586: 1586: template 1586: _Assignable<_Yp> 1586: operator=(const __shared_ptr<_Yp, _Lp>& __r) noexcept 1586: { 1586: _M_ptr = __r._M_ptr; 1586: _M_refcount = __r._M_refcount; 1586: return *this; 1586: } 1586: 1586: __weak_ptr& 1586: operator=(__weak_ptr&& __r) noexcept 1586: { 1586: _M_ptr = __r._M_ptr; 1586: _M_refcount = std::move(__r._M_refcount); 1586: __r._M_ptr = nullptr; 1586: return *this; 1586: } 1586: 1586: template 1586: _Assignable<_Yp> 1586: operator=(__weak_ptr<_Yp, _Lp>&& __r) noexcept 1586: { 1586: _M_ptr = __r.lock().get(); 1586: _M_refcount = std::move(__r._M_refcount); 1586: __r._M_ptr = nullptr; 1586: return *this; 1586: } 1586: 1586: __shared_ptr<_Tp, _Lp> 1586: lock() const noexcept 1586: { return __shared_ptr(*this, std::nothrow); } 1586: 1586: long 1586: use_count() const noexcept 1586: { return _M_refcount._M_get_use_count(); } 1586: 1586: bool 1586: expired() const noexcept 1586: { return _M_refcount._M_get_use_count() == 0; } 1586: 1586: template 1586: bool 1586: owner_before(const __shared_ptr<_Tp1, _Lp>& __rhs) const noexcept 1586: { return _M_refcount._M_less(__rhs._M_refcount); } 1586: 1586: template 1586: bool 1586: owner_before(const __weak_ptr<_Tp1, _Lp>& __rhs) const noexcept 1586: { return _M_refcount._M_less(__rhs._M_refcount); } 1586: 1586: void 1586: reset() noexcept 1586: { __weak_ptr().swap(*this); } 1586: 1586: void 1586: swap(__weak_ptr& __s) noexcept 1586: { 1586: std::swap(_M_ptr, __s._M_ptr); 1586: _M_refcount._M_swap(__s._M_refcount); 1586: } 1586: 1586: private: 1586: 1586: void 1586: _M_assign(_Tp* __ptr, const __shared_count<_Lp>& __refcount) noexcept 1586: { 1586: if (use_count() == 0) 1586: { 1586: _M_ptr = __ptr; 1586: _M_refcount = __refcount; 1586: } 1586: } 1586: 1586: template friend class __shared_ptr; 1586: template friend class __weak_ptr; 1586: friend class __enable_shared_from_this<_Tp, _Lp>; 1586: friend class enable_shared_from_this<_Tp>; 1586: 1586: element_type* _M_ptr; 1586: __weak_count<_Lp> _M_refcount; 1586: }; 1586: 1586: 1586: template 1586: inline void 1586: swap(__weak_ptr<_Tp, _Lp>& __a, __weak_ptr<_Tp, _Lp>& __b) noexcept 1586: { __a.swap(__b); } 1586: 1586: template 1586: struct _Sp_owner_less : public binary_function<_Tp, _Tp, bool> 1586: { 1586: bool 1586: operator()(const _Tp& __lhs, const _Tp& __rhs) const noexcept 1586: { return __lhs.owner_before(__rhs); } 1586: 1586: bool 1586: operator()(const _Tp& __lhs, const _Tp1& __rhs) const noexcept 1586: { return __lhs.owner_before(__rhs); } 1586: 1586: bool 1586: operator()(const _Tp1& __lhs, const _Tp& __rhs) const noexcept 1586: { return __lhs.owner_before(__rhs); } 1586: }; 1586: 1586: template<> 1586: struct _Sp_owner_less 1586: { 1586: template 1586: auto 1586: operator()(const _Tp& __lhs, const _Up& __rhs) const noexcept 1586: -> decltype(__lhs.owner_before(__rhs)) 1586: { return __lhs.owner_before(__rhs); } 1586: 1586: using is_transparent = void; 1586: }; 1586: 1586: template 1586: struct owner_less<__shared_ptr<_Tp, _Lp>> 1586: : public _Sp_owner_less<__shared_ptr<_Tp, _Lp>, __weak_ptr<_Tp, _Lp>> 1586: { }; 1586: 1586: template 1586: struct owner_less<__weak_ptr<_Tp, _Lp>> 1586: : public _Sp_owner_less<__weak_ptr<_Tp, _Lp>, __shared_ptr<_Tp, _Lp>> 1586: { }; 1586: 1586: 1586: template 1586: class __enable_shared_from_this 1586: { 1586: protected: 1586: constexpr __enable_shared_from_this() noexcept { } 1586: 1586: __enable_shared_from_this(const __enable_shared_from_this&) noexcept { } 1586: 1586: __enable_shared_from_this& 1586: operator=(const __enable_shared_from_this&) noexcept 1586: { return *this; } 1586: 1586: ~__enable_shared_from_this() { } 1586: 1586: public: 1586: __shared_ptr<_Tp, _Lp> 1586: shared_from_this() 1586: { return __shared_ptr<_Tp, _Lp>(this->_M_weak_this); } 1586: 1586: __shared_ptr 1586: shared_from_this() const 1586: { return __shared_ptr(this->_M_weak_this); } 1586: # 1803 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr_base.h" 3 1586: private: 1586: template 1586: void 1586: _M_weak_assign(_Tp1* __p, const __shared_count<_Lp>& __n) const noexcept 1586: { _M_weak_this._M_assign(__p, __n); } 1586: 1586: friend const __enable_shared_from_this* 1586: __enable_shared_from_this_base(const __shared_count<_Lp>&, 1586: const __enable_shared_from_this* __p) 1586: { return __p; } 1586: 1586: template 1586: friend class __shared_ptr; 1586: 1586: mutable __weak_ptr<_Tp, _Lp> _M_weak_this; 1586: }; 1586: 1586: template 1586: inline __shared_ptr<_Tp, _Lp> 1586: __allocate_shared(const _Alloc& __a, _Args&&... __args) 1586: { 1586: return __shared_ptr<_Tp, _Lp>(_Sp_alloc_shared_tag<_Alloc>{__a}, 1586: std::forward<_Args>(__args)...); 1586: } 1586: 1586: template 1586: inline __shared_ptr<_Tp, _Lp> 1586: __make_shared(_Args&&... __args) 1586: { 1586: typedef typename std::remove_const<_Tp>::type _Tp_nc; 1586: return std::__allocate_shared<_Tp, _Lp>(std::allocator<_Tp_nc>(), 1586: std::forward<_Args>(__args)...); 1586: } 1586: 1586: 1586: template 1586: struct hash<__shared_ptr<_Tp, _Lp>> 1586: : public __hash_base> 1586: { 1586: size_t 1586: operator()(const __shared_ptr<_Tp, _Lp>& __s) const noexcept 1586: { 1586: return hash::element_type*>()( 1586: __s.get()); 1586: } 1586: }; 1586: 1586: 1586: } 1586: # 53 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline std::basic_ostream<_Ch, _Tr>& 1586: operator<<(std::basic_ostream<_Ch, _Tr>& __os, 1586: const __shared_ptr<_Tp, _Lp>& __p) 1586: { 1586: __os << __p.get(); 1586: return __os; 1586: } 1586: 1586: template 1586: inline _Del* 1586: get_deleter(const __shared_ptr<_Tp, _Lp>& __p) noexcept 1586: { 1586: 1586: return static_cast<_Del*>(__p._M_get_deleter(typeid(_Del))); 1586: 1586: 1586: 1586: } 1586: 1586: 1586: template 1586: inline _Del* 1586: get_deleter(const shared_ptr<_Tp>& __p) noexcept 1586: { 1586: 1586: return static_cast<_Del*>(__p._M_get_deleter(typeid(_Del))); 1586: 1586: 1586: 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: class shared_ptr : public __shared_ptr<_Tp> 1586: { 1586: template 1586: using _Constructible = typename enable_if< 1586: is_constructible<__shared_ptr<_Tp>, _Args...>::value 1586: >::type; 1586: 1586: template 1586: using _Assignable = typename enable_if< 1586: is_assignable<__shared_ptr<_Tp>&, _Arg>::value, shared_ptr& 1586: >::type; 1586: 1586: public: 1586: 1586: using element_type = typename __shared_ptr<_Tp>::element_type; 1586: # 127 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr.h" 3 1586: constexpr shared_ptr() noexcept : __shared_ptr<_Tp>() { } 1586: 1586: shared_ptr(const shared_ptr&) noexcept = default; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template> 1586: explicit 1586: shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { } 1586: # 154 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr.h" 3 1586: template> 1586: shared_ptr(_Yp* __p, _Deleter __d) 1586: : __shared_ptr<_Tp>(__p, std::move(__d)) { } 1586: # 172 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr.h" 3 1586: template 1586: shared_ptr(nullptr_t __p, _Deleter __d) 1586: : __shared_ptr<_Tp>(__p, std::move(__d)) { } 1586: # 191 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr.h" 3 1586: template> 1586: shared_ptr(_Yp* __p, _Deleter __d, _Alloc __a) 1586: : __shared_ptr<_Tp>(__p, std::move(__d), std::move(__a)) { } 1586: # 211 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr.h" 3 1586: template 1586: shared_ptr(nullptr_t __p, _Deleter __d, _Alloc __a) 1586: : __shared_ptr<_Tp>(__p, std::move(__d), std::move(__a)) { } 1586: # 233 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr.h" 3 1586: template 1586: shared_ptr(const shared_ptr<_Yp>& __r, element_type* __p) noexcept 1586: : __shared_ptr<_Tp>(__r, __p) { } 1586: # 244 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr.h" 3 1586: template&>> 1586: shared_ptr(const shared_ptr<_Yp>& __r) noexcept 1586: : __shared_ptr<_Tp>(__r) { } 1586: 1586: 1586: 1586: 1586: 1586: 1586: shared_ptr(shared_ptr&& __r) noexcept 1586: : __shared_ptr<_Tp>(std::move(__r)) { } 1586: 1586: 1586: 1586: 1586: 1586: 1586: template>> 1586: shared_ptr(shared_ptr<_Yp>&& __r) noexcept 1586: : __shared_ptr<_Tp>(std::move(__r)) { } 1586: # 274 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr.h" 3 1586: template&>> 1586: explicit shared_ptr(const weak_ptr<_Yp>& __r) 1586: : __shared_ptr<_Tp>(__r) { } 1586: 1586: 1586: #pragma GCC diagnostic push 1586: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1586: template>> 1586: shared_ptr(auto_ptr<_Yp>&& __r); 1586: #pragma GCC diagnostic pop 1586: 1586: 1586: 1586: 1586: template>> 1586: shared_ptr(unique_ptr<_Yp, _Del>&& __r) 1586: : __shared_ptr<_Tp>(std::move(__r)) { } 1586: 1586: 1586: 1586: 1586: 1586: template, __sp_array_delete>* = 0> 1586: shared_ptr(unique_ptr<_Yp, _Del>&& __r) 1586: : __shared_ptr<_Tp>(std::move(__r), __sp_array_delete()) { } 1586: 1586: 1586: 1586: 1586: 1586: 1586: constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { } 1586: 1586: shared_ptr& operator=(const shared_ptr&) noexcept = default; 1586: 1586: template 1586: _Assignable&> 1586: operator=(const shared_ptr<_Yp>& __r) noexcept 1586: { 1586: this->__shared_ptr<_Tp>::operator=(__r); 1586: return *this; 1586: } 1586: 1586: 1586: #pragma GCC diagnostic push 1586: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1586: template 1586: _Assignable> 1586: operator=(auto_ptr<_Yp>&& __r) 1586: { 1586: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 1586: return *this; 1586: } 1586: #pragma GCC diagnostic pop 1586: 1586: 1586: shared_ptr& 1586: operator=(shared_ptr&& __r) noexcept 1586: { 1586: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 1586: return *this; 1586: } 1586: 1586: template 1586: _Assignable> 1586: operator=(shared_ptr<_Yp>&& __r) noexcept 1586: { 1586: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 1586: return *this; 1586: } 1586: 1586: template 1586: _Assignable> 1586: operator=(unique_ptr<_Yp, _Del>&& __r) 1586: { 1586: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 1586: return *this; 1586: } 1586: 1586: private: 1586: 1586: template 1586: shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args) 1586: : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...) 1586: { } 1586: 1586: template 1586: friend shared_ptr<_Yp> 1586: allocate_shared(const _Alloc& __a, _Args&&... __args); 1586: 1586: 1586: shared_ptr(const weak_ptr<_Tp>& __r, std::nothrow_t) 1586: : __shared_ptr<_Tp>(__r, std::nothrow) { } 1586: 1586: friend class weak_ptr<_Tp>; 1586: }; 1586: # 381 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr.h" 3 1586: template 1586: inline bool 1586: operator==(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 1586: { return __a.get() == __b.get(); } 1586: 1586: template 1586: inline bool 1586: operator==(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 1586: { return !__a; } 1586: 1586: template 1586: inline bool 1586: operator==(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 1586: { return !__a; } 1586: 1586: template 1586: inline bool 1586: operator!=(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 1586: { return __a.get() != __b.get(); } 1586: 1586: template 1586: inline bool 1586: operator!=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 1586: { return (bool)__a; } 1586: 1586: template 1586: inline bool 1586: operator!=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 1586: { return (bool)__a; } 1586: 1586: template 1586: inline bool 1586: operator<(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 1586: { 1586: using _Tp_elt = typename shared_ptr<_Tp>::element_type; 1586: using _Up_elt = typename shared_ptr<_Up>::element_type; 1586: using _Vp = typename common_type<_Tp_elt*, _Up_elt*>::type; 1586: return less<_Vp>()(__a.get(), __b.get()); 1586: } 1586: 1586: template 1586: inline bool 1586: operator<(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 1586: { 1586: using _Tp_elt = typename shared_ptr<_Tp>::element_type; 1586: return less<_Tp_elt*>()(__a.get(), nullptr); 1586: } 1586: 1586: template 1586: inline bool 1586: operator<(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 1586: { 1586: using _Tp_elt = typename shared_ptr<_Tp>::element_type; 1586: return less<_Tp_elt*>()(nullptr, __a.get()); 1586: } 1586: 1586: template 1586: inline bool 1586: operator<=(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 1586: { return !(__b < __a); } 1586: 1586: template 1586: inline bool 1586: operator<=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 1586: { return !(nullptr < __a); } 1586: 1586: template 1586: inline bool 1586: operator<=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 1586: { return !(__a < nullptr); } 1586: 1586: template 1586: inline bool 1586: operator>(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 1586: { return (__b < __a); } 1586: 1586: template 1586: inline bool 1586: operator>(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 1586: { return nullptr < __a; } 1586: 1586: template 1586: inline bool 1586: operator>(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 1586: { return __a < nullptr; } 1586: 1586: template 1586: inline bool 1586: operator>=(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 1586: { return !(__a < __b); } 1586: 1586: template 1586: inline bool 1586: operator>=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 1586: { return !(__a < nullptr); } 1586: 1586: template 1586: inline bool 1586: operator>=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 1586: { return !(nullptr < __a); } 1586: 1586: 1586: template 1586: inline void 1586: swap(shared_ptr<_Tp>& __a, shared_ptr<_Tp>& __b) noexcept 1586: { __a.swap(__b); } 1586: 1586: 1586: template 1586: inline shared_ptr<_Tp> 1586: static_pointer_cast(const shared_ptr<_Up>& __r) noexcept 1586: { 1586: using _Sp = shared_ptr<_Tp>; 1586: return _Sp(__r, static_cast(__r.get())); 1586: } 1586: 1586: template 1586: inline shared_ptr<_Tp> 1586: const_pointer_cast(const shared_ptr<_Up>& __r) noexcept 1586: { 1586: using _Sp = shared_ptr<_Tp>; 1586: return _Sp(__r, const_cast(__r.get())); 1586: } 1586: 1586: template 1586: inline shared_ptr<_Tp> 1586: dynamic_pointer_cast(const shared_ptr<_Up>& __r) noexcept 1586: { 1586: using _Sp = shared_ptr<_Tp>; 1586: if (auto* __p = dynamic_cast(__r.get())) 1586: return _Sp(__r, __p); 1586: return _Sp(); 1586: } 1586: # 530 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr.h" 3 1586: template 1586: class weak_ptr : public __weak_ptr<_Tp> 1586: { 1586: template 1586: using _Constructible = typename enable_if< 1586: is_constructible<__weak_ptr<_Tp>, _Arg>::value 1586: >::type; 1586: 1586: template 1586: using _Assignable = typename enable_if< 1586: is_assignable<__weak_ptr<_Tp>&, _Arg>::value, weak_ptr& 1586: >::type; 1586: 1586: public: 1586: constexpr weak_ptr() noexcept = default; 1586: 1586: template&>> 1586: weak_ptr(const shared_ptr<_Yp>& __r) noexcept 1586: : __weak_ptr<_Tp>(__r) { } 1586: 1586: weak_ptr(const weak_ptr&) noexcept = default; 1586: 1586: template&>> 1586: weak_ptr(const weak_ptr<_Yp>& __r) noexcept 1586: : __weak_ptr<_Tp>(__r) { } 1586: 1586: weak_ptr(weak_ptr&&) noexcept = default; 1586: 1586: template>> 1586: weak_ptr(weak_ptr<_Yp>&& __r) noexcept 1586: : __weak_ptr<_Tp>(std::move(__r)) { } 1586: 1586: weak_ptr& 1586: operator=(const weak_ptr& __r) noexcept = default; 1586: 1586: template 1586: _Assignable&> 1586: operator=(const weak_ptr<_Yp>& __r) noexcept 1586: { 1586: this->__weak_ptr<_Tp>::operator=(__r); 1586: return *this; 1586: } 1586: 1586: template 1586: _Assignable&> 1586: operator=(const shared_ptr<_Yp>& __r) noexcept 1586: { 1586: this->__weak_ptr<_Tp>::operator=(__r); 1586: return *this; 1586: } 1586: 1586: weak_ptr& 1586: operator=(weak_ptr&& __r) noexcept = default; 1586: 1586: template 1586: _Assignable> 1586: operator=(weak_ptr<_Yp>&& __r) noexcept 1586: { 1586: this->__weak_ptr<_Tp>::operator=(std::move(__r)); 1586: return *this; 1586: } 1586: 1586: shared_ptr<_Tp> 1586: lock() const noexcept 1586: { return shared_ptr<_Tp>(*this, std::nothrow); } 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline void 1586: swap(weak_ptr<_Tp>& __a, weak_ptr<_Tp>& __b) noexcept 1586: { __a.swap(__b); } 1586: 1586: 1586: 1586: template 1586: struct owner_less; 1586: 1586: 1586: template<> 1586: struct owner_less : _Sp_owner_less 1586: { }; 1586: 1586: 1586: template 1586: struct owner_less> 1586: : public _Sp_owner_less, weak_ptr<_Tp>> 1586: { }; 1586: 1586: 1586: template 1586: struct owner_less> 1586: : public _Sp_owner_less, shared_ptr<_Tp>> 1586: { }; 1586: 1586: 1586: 1586: 1586: template 1586: class enable_shared_from_this 1586: { 1586: protected: 1586: constexpr enable_shared_from_this() noexcept { } 1586: 1586: enable_shared_from_this(const enable_shared_from_this&) noexcept { } 1586: 1586: enable_shared_from_this& 1586: operator=(const enable_shared_from_this&) noexcept 1586: { return *this; } 1586: 1586: ~enable_shared_from_this() { } 1586: 1586: public: 1586: shared_ptr<_Tp> 1586: shared_from_this() 1586: { return shared_ptr<_Tp>(this->_M_weak_this); } 1586: 1586: shared_ptr 1586: shared_from_this() const 1586: { return shared_ptr(this->_M_weak_this); } 1586: # 668 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr.h" 3 1586: private: 1586: template 1586: void 1586: _M_weak_assign(_Tp1* __p, const __shared_count<>& __n) const noexcept 1586: { _M_weak_this._M_assign(__p, __n); } 1586: 1586: 1586: friend const enable_shared_from_this* 1586: __enable_shared_from_this_base(const __shared_count<>&, 1586: const enable_shared_from_this* __p) 1586: { return __p; } 1586: 1586: template 1586: friend class __shared_ptr; 1586: 1586: mutable weak_ptr<_Tp> _M_weak_this; 1586: }; 1586: # 697 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr.h" 3 1586: template 1586: inline shared_ptr<_Tp> 1586: allocate_shared(const _Alloc& __a, _Args&&... __args) 1586: { 1586: return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a}, 1586: std::forward<_Args>(__args)...); 1586: } 1586: # 712 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr.h" 3 1586: template 1586: inline shared_ptr<_Tp> 1586: make_shared(_Args&&... __args) 1586: { 1586: typedef typename std::remove_cv<_Tp>::type _Tp_nc; 1586: return std::allocate_shared<_Tp>(std::allocator<_Tp_nc>(), 1586: std::forward<_Args>(__args)...); 1586: } 1586: 1586: 1586: template 1586: struct hash> 1586: : public __hash_base> 1586: { 1586: size_t 1586: operator()(const shared_ptr<_Tp>& __s) const noexcept 1586: { 1586: return std::hash::element_type*>()(__s.get()); 1586: } 1586: }; 1586: # 756 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr.h" 3 1586: 1586: } 1586: # 82 "/usr/mipsel-linux-gnu/include/c++/9/memory" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr_atomic.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr_atomic.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/atomic_base.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/atomic_base.h" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/atomic_base.h" 3 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/atomic_lockfree_defines.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/atomic_lockfree_defines.h" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/atomic_lockfree_defines.h" 3 1586: # 38 "/usr/mipsel-linux-gnu/include/c++/9/bits/atomic_base.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 73 "/usr/mipsel-linux-gnu/include/c++/9/bits/atomic_base.h" 3 1586: typedef enum memory_order 1586: { 1586: memory_order_relaxed, 1586: memory_order_consume, 1586: memory_order_acquire, 1586: memory_order_release, 1586: memory_order_acq_rel, 1586: memory_order_seq_cst 1586: } memory_order; 1586: 1586: 1586: enum __memory_order_modifier 1586: { 1586: __memory_order_mask = 0x0ffff, 1586: __memory_order_modifier_mask = 0xffff0000, 1586: __memory_order_hle_acquire = 0x10000, 1586: __memory_order_hle_release = 0x20000 1586: }; 1586: 1586: constexpr memory_order 1586: operator|(memory_order __m, __memory_order_modifier __mod) 1586: { 1586: return memory_order(int(__m) | int(__mod)); 1586: } 1586: 1586: constexpr memory_order 1586: operator&(memory_order __m, __memory_order_modifier __mod) 1586: { 1586: return memory_order(int(__m) & int(__mod)); 1586: } 1586: 1586: 1586: constexpr memory_order 1586: __cmpexch_failure_order2(memory_order __m) noexcept 1586: { 1586: return __m == memory_order_acq_rel ? memory_order_acquire 1586: : __m == memory_order_release ? memory_order_relaxed : __m; 1586: } 1586: 1586: constexpr memory_order 1586: __cmpexch_failure_order(memory_order __m) noexcept 1586: { 1586: return memory_order(__cmpexch_failure_order2(__m & __memory_order_mask) 1586: | __memory_order_modifier(__m & __memory_order_modifier_mask)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) void 1586: atomic_thread_fence(memory_order __m) noexcept 1586: { __atomic_thread_fence(int(__m)); } 1586: 1586: inline __attribute__((__always_inline__)) void 1586: atomic_signal_fence(memory_order __m) noexcept 1586: { __atomic_signal_fence(int(__m)); } 1586: 1586: 1586: template 1586: inline _Tp 1586: kill_dependency(_Tp __y) noexcept 1586: { 1586: _Tp __ret(__y); 1586: return __ret; 1586: } 1586: 1586: 1586: 1586: template 1586: struct __atomic_base; 1586: 1586: 1586: 1586: 1586: template 1586: struct atomic; 1586: 1586: template 1586: struct atomic<_Tp*>; 1586: 1586: 1586: 1586: typedef bool __atomic_flag_data_type; 1586: # 167 "/usr/mipsel-linux-gnu/include/c++/9/bits/atomic_base.h" 3 1586: extern "C" { 1586: 1586: struct __atomic_flag_base 1586: { 1586: __atomic_flag_data_type _M_i; 1586: }; 1586: 1586: } 1586: 1586: 1586: 1586: 1586: struct atomic_flag : public __atomic_flag_base 1586: { 1586: atomic_flag() noexcept = default; 1586: ~atomic_flag() noexcept = default; 1586: atomic_flag(const atomic_flag&) = delete; 1586: atomic_flag& operator=(const atomic_flag&) = delete; 1586: atomic_flag& operator=(const atomic_flag&) volatile = delete; 1586: 1586: 1586: constexpr atomic_flag(bool __i) noexcept 1586: : __atomic_flag_base{ _S_init(__i) } 1586: { } 1586: 1586: inline __attribute__((__always_inline__)) bool 1586: test_and_set(memory_order __m = memory_order_seq_cst) noexcept 1586: { 1586: return __atomic_test_and_set (&_M_i, int(__m)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) bool 1586: test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept 1586: { 1586: return __atomic_test_and_set (&_M_i, int(__m)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) void 1586: clear(memory_order __m = memory_order_seq_cst) noexcept 1586: { 1586: memory_order __b = __m & __memory_order_mask; 1586: ; 1586: ; 1586: ; 1586: 1586: __atomic_clear (&_M_i, int(__m)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) void 1586: clear(memory_order __m = memory_order_seq_cst) volatile noexcept 1586: { 1586: memory_order __b = __m & __memory_order_mask; 1586: ; 1586: ; 1586: ; 1586: 1586: __atomic_clear (&_M_i, int(__m)); 1586: } 1586: 1586: private: 1586: static constexpr __atomic_flag_data_type 1586: _S_init(bool __i) 1586: { return __i ? 1 : 0; } 1586: }; 1586: # 257 "/usr/mipsel-linux-gnu/include/c++/9/bits/atomic_base.h" 3 1586: template 1586: struct __atomic_base 1586: { 1586: using value_type = _ITp; 1586: using difference_type = value_type; 1586: 1586: private: 1586: typedef _ITp __int_type; 1586: 1586: static constexpr int _S_alignment = 1586: sizeof(_ITp) > alignof(_ITp) ? sizeof(_ITp) : alignof(_ITp); 1586: 1586: alignas(_S_alignment) __int_type _M_i; 1586: 1586: public: 1586: __atomic_base() noexcept = default; 1586: ~__atomic_base() noexcept = default; 1586: __atomic_base(const __atomic_base&) = delete; 1586: __atomic_base& operator=(const __atomic_base&) = delete; 1586: __atomic_base& operator=(const __atomic_base&) volatile = delete; 1586: 1586: 1586: constexpr __atomic_base(__int_type __i) noexcept : _M_i (__i) { } 1586: 1586: operator __int_type() const noexcept 1586: { return load(); } 1586: 1586: operator __int_type() const volatile noexcept 1586: { return load(); } 1586: 1586: __int_type 1586: operator=(__int_type __i) noexcept 1586: { 1586: store(__i); 1586: return __i; 1586: } 1586: 1586: __int_type 1586: operator=(__int_type __i) volatile noexcept 1586: { 1586: store(__i); 1586: return __i; 1586: } 1586: 1586: __int_type 1586: operator++(int) noexcept 1586: { return fetch_add(1); } 1586: 1586: __int_type 1586: operator++(int) volatile noexcept 1586: { return fetch_add(1); } 1586: 1586: __int_type 1586: operator--(int) noexcept 1586: { return fetch_sub(1); } 1586: 1586: __int_type 1586: operator--(int) volatile noexcept 1586: { return fetch_sub(1); } 1586: 1586: __int_type 1586: operator++() noexcept 1586: { return __atomic_add_fetch(&_M_i, 1, int(memory_order_seq_cst)); } 1586: 1586: __int_type 1586: operator++() volatile noexcept 1586: { return __atomic_add_fetch(&_M_i, 1, int(memory_order_seq_cst)); } 1586: 1586: __int_type 1586: operator--() noexcept 1586: { return __atomic_sub_fetch(&_M_i, 1, int(memory_order_seq_cst)); } 1586: 1586: __int_type 1586: operator--() volatile noexcept 1586: { return __atomic_sub_fetch(&_M_i, 1, int(memory_order_seq_cst)); } 1586: 1586: __int_type 1586: operator+=(__int_type __i) noexcept 1586: { return __atomic_add_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 1586: 1586: __int_type 1586: operator+=(__int_type __i) volatile noexcept 1586: { return __atomic_add_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 1586: 1586: __int_type 1586: operator-=(__int_type __i) noexcept 1586: { return __atomic_sub_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 1586: 1586: __int_type 1586: operator-=(__int_type __i) volatile noexcept 1586: { return __atomic_sub_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 1586: 1586: __int_type 1586: operator&=(__int_type __i) noexcept 1586: { return __atomic_and_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 1586: 1586: __int_type 1586: operator&=(__int_type __i) volatile noexcept 1586: { return __atomic_and_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 1586: 1586: __int_type 1586: operator|=(__int_type __i) noexcept 1586: { return __atomic_or_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 1586: 1586: __int_type 1586: operator|=(__int_type __i) volatile noexcept 1586: { return __atomic_or_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 1586: 1586: __int_type 1586: operator^=(__int_type __i) noexcept 1586: { return __atomic_xor_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 1586: 1586: __int_type 1586: operator^=(__int_type __i) volatile noexcept 1586: { return __atomic_xor_fetch(&_M_i, __i, int(memory_order_seq_cst)); } 1586: 1586: bool 1586: is_lock_free() const noexcept 1586: { 1586: 1586: return __atomic_is_lock_free(sizeof(_M_i), 1586: reinterpret_cast(-_S_alignment)); 1586: } 1586: 1586: bool 1586: is_lock_free() const volatile noexcept 1586: { 1586: 1586: return __atomic_is_lock_free(sizeof(_M_i), 1586: reinterpret_cast(-_S_alignment)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) void 1586: store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept 1586: { 1586: memory_order __b = __m & __memory_order_mask; 1586: ; 1586: ; 1586: ; 1586: 1586: __atomic_store_n(&_M_i, __i, int(__m)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) void 1586: store(__int_type __i, 1586: memory_order __m = memory_order_seq_cst) volatile noexcept 1586: { 1586: memory_order __b = __m & __memory_order_mask; 1586: ; 1586: ; 1586: ; 1586: 1586: __atomic_store_n(&_M_i, __i, int(__m)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) __int_type 1586: load(memory_order __m = memory_order_seq_cst) const noexcept 1586: { 1586: memory_order __b = __m & __memory_order_mask; 1586: ; 1586: ; 1586: 1586: return __atomic_load_n(&_M_i, int(__m)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) __int_type 1586: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 1586: { 1586: memory_order __b = __m & __memory_order_mask; 1586: ; 1586: ; 1586: 1586: return __atomic_load_n(&_M_i, int(__m)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) __int_type 1586: exchange(__int_type __i, 1586: memory_order __m = memory_order_seq_cst) noexcept 1586: { 1586: return __atomic_exchange_n(&_M_i, __i, int(__m)); 1586: } 1586: 1586: 1586: inline __attribute__((__always_inline__)) __int_type 1586: exchange(__int_type __i, 1586: memory_order __m = memory_order_seq_cst) volatile noexcept 1586: { 1586: return __atomic_exchange_n(&_M_i, __i, int(__m)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) bool 1586: compare_exchange_weak(__int_type& __i1, __int_type __i2, 1586: memory_order __m1, memory_order __m2) noexcept 1586: { 1586: memory_order __b2 = __m2 & __memory_order_mask; 1586: memory_order __b1 = __m1 & __memory_order_mask; 1586: ; 1586: ; 1586: ; 1586: 1586: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, 1586: int(__m1), int(__m2)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) bool 1586: compare_exchange_weak(__int_type& __i1, __int_type __i2, 1586: memory_order __m1, 1586: memory_order __m2) volatile noexcept 1586: { 1586: memory_order __b2 = __m2 & __memory_order_mask; 1586: memory_order __b1 = __m1 & __memory_order_mask; 1586: ; 1586: ; 1586: ; 1586: 1586: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, 1586: int(__m1), int(__m2)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) bool 1586: compare_exchange_weak(__int_type& __i1, __int_type __i2, 1586: memory_order __m = memory_order_seq_cst) noexcept 1586: { 1586: return compare_exchange_weak(__i1, __i2, __m, 1586: __cmpexch_failure_order(__m)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) bool 1586: compare_exchange_weak(__int_type& __i1, __int_type __i2, 1586: memory_order __m = memory_order_seq_cst) volatile noexcept 1586: { 1586: return compare_exchange_weak(__i1, __i2, __m, 1586: __cmpexch_failure_order(__m)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) bool 1586: compare_exchange_strong(__int_type& __i1, __int_type __i2, 1586: memory_order __m1, memory_order __m2) noexcept 1586: { 1586: memory_order __b2 = __m2 & __memory_order_mask; 1586: memory_order __b1 = __m1 & __memory_order_mask; 1586: ; 1586: ; 1586: ; 1586: 1586: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, 1586: int(__m1), int(__m2)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) bool 1586: compare_exchange_strong(__int_type& __i1, __int_type __i2, 1586: memory_order __m1, 1586: memory_order __m2) volatile noexcept 1586: { 1586: memory_order __b2 = __m2 & __memory_order_mask; 1586: memory_order __b1 = __m1 & __memory_order_mask; 1586: 1586: ; 1586: ; 1586: ; 1586: 1586: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, 1586: int(__m1), int(__m2)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) bool 1586: compare_exchange_strong(__int_type& __i1, __int_type __i2, 1586: memory_order __m = memory_order_seq_cst) noexcept 1586: { 1586: return compare_exchange_strong(__i1, __i2, __m, 1586: __cmpexch_failure_order(__m)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) bool 1586: compare_exchange_strong(__int_type& __i1, __int_type __i2, 1586: memory_order __m = memory_order_seq_cst) volatile noexcept 1586: { 1586: return compare_exchange_strong(__i1, __i2, __m, 1586: __cmpexch_failure_order(__m)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) __int_type 1586: fetch_add(__int_type __i, 1586: memory_order __m = memory_order_seq_cst) noexcept 1586: { return __atomic_fetch_add(&_M_i, __i, int(__m)); } 1586: 1586: inline __attribute__((__always_inline__)) __int_type 1586: fetch_add(__int_type __i, 1586: memory_order __m = memory_order_seq_cst) volatile noexcept 1586: { return __atomic_fetch_add(&_M_i, __i, int(__m)); } 1586: 1586: inline __attribute__((__always_inline__)) __int_type 1586: fetch_sub(__int_type __i, 1586: memory_order __m = memory_order_seq_cst) noexcept 1586: { return __atomic_fetch_sub(&_M_i, __i, int(__m)); } 1586: 1586: inline __attribute__((__always_inline__)) __int_type 1586: fetch_sub(__int_type __i, 1586: memory_order __m = memory_order_seq_cst) volatile noexcept 1586: { return __atomic_fetch_sub(&_M_i, __i, int(__m)); } 1586: 1586: inline __attribute__((__always_inline__)) __int_type 1586: fetch_and(__int_type __i, 1586: memory_order __m = memory_order_seq_cst) noexcept 1586: { return __atomic_fetch_and(&_M_i, __i, int(__m)); } 1586: 1586: inline __attribute__((__always_inline__)) __int_type 1586: fetch_and(__int_type __i, 1586: memory_order __m = memory_order_seq_cst) volatile noexcept 1586: { return __atomic_fetch_and(&_M_i, __i, int(__m)); } 1586: 1586: inline __attribute__((__always_inline__)) __int_type 1586: fetch_or(__int_type __i, 1586: memory_order __m = memory_order_seq_cst) noexcept 1586: { return __atomic_fetch_or(&_M_i, __i, int(__m)); } 1586: 1586: inline __attribute__((__always_inline__)) __int_type 1586: fetch_or(__int_type __i, 1586: memory_order __m = memory_order_seq_cst) volatile noexcept 1586: { return __atomic_fetch_or(&_M_i, __i, int(__m)); } 1586: 1586: inline __attribute__((__always_inline__)) __int_type 1586: fetch_xor(__int_type __i, 1586: memory_order __m = memory_order_seq_cst) noexcept 1586: { return __atomic_fetch_xor(&_M_i, __i, int(__m)); } 1586: 1586: inline __attribute__((__always_inline__)) __int_type 1586: fetch_xor(__int_type __i, 1586: memory_order __m = memory_order_seq_cst) volatile noexcept 1586: { return __atomic_fetch_xor(&_M_i, __i, int(__m)); } 1586: }; 1586: 1586: 1586: 1586: template 1586: struct __atomic_base<_PTp*> 1586: { 1586: private: 1586: typedef _PTp* __pointer_type; 1586: 1586: __pointer_type _M_p; 1586: 1586: 1586: constexpr ptrdiff_t 1586: _M_type_size(ptrdiff_t __d) const { return __d * sizeof(_PTp); } 1586: 1586: constexpr ptrdiff_t 1586: _M_type_size(ptrdiff_t __d) const volatile { return __d * sizeof(_PTp); } 1586: 1586: public: 1586: __atomic_base() noexcept = default; 1586: ~__atomic_base() noexcept = default; 1586: __atomic_base(const __atomic_base&) = delete; 1586: __atomic_base& operator=(const __atomic_base&) = delete; 1586: __atomic_base& operator=(const __atomic_base&) volatile = delete; 1586: 1586: 1586: constexpr __atomic_base(__pointer_type __p) noexcept : _M_p (__p) { } 1586: 1586: operator __pointer_type() const noexcept 1586: { return load(); } 1586: 1586: operator __pointer_type() const volatile noexcept 1586: { return load(); } 1586: 1586: __pointer_type 1586: operator=(__pointer_type __p) noexcept 1586: { 1586: store(__p); 1586: return __p; 1586: } 1586: 1586: __pointer_type 1586: operator=(__pointer_type __p) volatile noexcept 1586: { 1586: store(__p); 1586: return __p; 1586: } 1586: 1586: __pointer_type 1586: operator++(int) noexcept 1586: { return fetch_add(1); } 1586: 1586: __pointer_type 1586: operator++(int) volatile noexcept 1586: { return fetch_add(1); } 1586: 1586: __pointer_type 1586: operator--(int) noexcept 1586: { return fetch_sub(1); } 1586: 1586: __pointer_type 1586: operator--(int) volatile noexcept 1586: { return fetch_sub(1); } 1586: 1586: __pointer_type 1586: operator++() noexcept 1586: { return __atomic_add_fetch(&_M_p, _M_type_size(1), 1586: int(memory_order_seq_cst)); } 1586: 1586: __pointer_type 1586: operator++() volatile noexcept 1586: { return __atomic_add_fetch(&_M_p, _M_type_size(1), 1586: int(memory_order_seq_cst)); } 1586: 1586: __pointer_type 1586: operator--() noexcept 1586: { return __atomic_sub_fetch(&_M_p, _M_type_size(1), 1586: int(memory_order_seq_cst)); } 1586: 1586: __pointer_type 1586: operator--() volatile noexcept 1586: { return __atomic_sub_fetch(&_M_p, _M_type_size(1), 1586: int(memory_order_seq_cst)); } 1586: 1586: __pointer_type 1586: operator+=(ptrdiff_t __d) noexcept 1586: { return __atomic_add_fetch(&_M_p, _M_type_size(__d), 1586: int(memory_order_seq_cst)); } 1586: 1586: __pointer_type 1586: operator+=(ptrdiff_t __d) volatile noexcept 1586: { return __atomic_add_fetch(&_M_p, _M_type_size(__d), 1586: int(memory_order_seq_cst)); } 1586: 1586: __pointer_type 1586: operator-=(ptrdiff_t __d) noexcept 1586: { return __atomic_sub_fetch(&_M_p, _M_type_size(__d), 1586: int(memory_order_seq_cst)); } 1586: 1586: __pointer_type 1586: operator-=(ptrdiff_t __d) volatile noexcept 1586: { return __atomic_sub_fetch(&_M_p, _M_type_size(__d), 1586: int(memory_order_seq_cst)); } 1586: 1586: bool 1586: is_lock_free() const noexcept 1586: { 1586: 1586: return __atomic_is_lock_free(sizeof(_M_p), 1586: reinterpret_cast(-__alignof(_M_p))); 1586: } 1586: 1586: bool 1586: is_lock_free() const volatile noexcept 1586: { 1586: 1586: return __atomic_is_lock_free(sizeof(_M_p), 1586: reinterpret_cast(-__alignof(_M_p))); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) void 1586: store(__pointer_type __p, 1586: memory_order __m = memory_order_seq_cst) noexcept 1586: { 1586: memory_order __b = __m & __memory_order_mask; 1586: 1586: ; 1586: ; 1586: ; 1586: 1586: __atomic_store_n(&_M_p, __p, int(__m)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) void 1586: store(__pointer_type __p, 1586: memory_order __m = memory_order_seq_cst) volatile noexcept 1586: { 1586: memory_order __b = __m & __memory_order_mask; 1586: ; 1586: ; 1586: ; 1586: 1586: __atomic_store_n(&_M_p, __p, int(__m)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) __pointer_type 1586: load(memory_order __m = memory_order_seq_cst) const noexcept 1586: { 1586: memory_order __b = __m & __memory_order_mask; 1586: ; 1586: ; 1586: 1586: return __atomic_load_n(&_M_p, int(__m)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) __pointer_type 1586: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 1586: { 1586: memory_order __b = __m & __memory_order_mask; 1586: ; 1586: ; 1586: 1586: return __atomic_load_n(&_M_p, int(__m)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) __pointer_type 1586: exchange(__pointer_type __p, 1586: memory_order __m = memory_order_seq_cst) noexcept 1586: { 1586: return __atomic_exchange_n(&_M_p, __p, int(__m)); 1586: } 1586: 1586: 1586: inline __attribute__((__always_inline__)) __pointer_type 1586: exchange(__pointer_type __p, 1586: memory_order __m = memory_order_seq_cst) volatile noexcept 1586: { 1586: return __atomic_exchange_n(&_M_p, __p, int(__m)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) bool 1586: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 1586: memory_order __m1, 1586: memory_order __m2) noexcept 1586: { 1586: memory_order __b2 = __m2 & __memory_order_mask; 1586: memory_order __b1 = __m1 & __memory_order_mask; 1586: ; 1586: ; 1586: ; 1586: 1586: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, 1586: int(__m1), int(__m2)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) bool 1586: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 1586: memory_order __m1, 1586: memory_order __m2) volatile noexcept 1586: { 1586: memory_order __b2 = __m2 & __memory_order_mask; 1586: memory_order __b1 = __m1 & __memory_order_mask; 1586: 1586: ; 1586: ; 1586: ; 1586: 1586: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, 1586: int(__m1), int(__m2)); 1586: } 1586: 1586: inline __attribute__((__always_inline__)) __pointer_type 1586: fetch_add(ptrdiff_t __d, 1586: memory_order __m = memory_order_seq_cst) noexcept 1586: { return __atomic_fetch_add(&_M_p, _M_type_size(__d), int(__m)); } 1586: 1586: inline __attribute__((__always_inline__)) __pointer_type 1586: fetch_add(ptrdiff_t __d, 1586: memory_order __m = memory_order_seq_cst) volatile noexcept 1586: { return __atomic_fetch_add(&_M_p, _M_type_size(__d), int(__m)); } 1586: 1586: inline __attribute__((__always_inline__)) __pointer_type 1586: fetch_sub(ptrdiff_t __d, 1586: memory_order __m = memory_order_seq_cst) noexcept 1586: { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), int(__m)); } 1586: 1586: inline __attribute__((__always_inline__)) __pointer_type 1586: fetch_sub(ptrdiff_t __d, 1586: memory_order __m = memory_order_seq_cst) volatile noexcept 1586: { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), int(__m)); } 1586: }; 1586: 1586: 1586: 1586: 1586: } 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr_atomic.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: struct _Sp_locker 1586: { 1586: _Sp_locker(const _Sp_locker&) = delete; 1586: _Sp_locker& operator=(const _Sp_locker&) = delete; 1586: 1586: 1586: explicit 1586: _Sp_locker(const void*) noexcept; 1586: _Sp_locker(const void*, const void*) noexcept; 1586: ~_Sp_locker(); 1586: 1586: private: 1586: unsigned char _M_key1; 1586: unsigned char _M_key2; 1586: 1586: 1586: 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline bool 1586: atomic_is_lock_free(const __shared_ptr<_Tp, _Lp>* __p) 1586: { 1586: 1586: return __gthread_active_p() == 0; 1586: 1586: 1586: 1586: } 1586: 1586: template 1586: inline bool 1586: atomic_is_lock_free(const shared_ptr<_Tp>* __p) 1586: { return std::atomic_is_lock_free<_Tp, __default_lock_policy>(__p); } 1586: # 96 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr_atomic.h" 3 1586: template 1586: inline shared_ptr<_Tp> 1586: atomic_load_explicit(const shared_ptr<_Tp>* __p, memory_order) 1586: { 1586: _Sp_locker __lock{__p}; 1586: return *__p; 1586: } 1586: 1586: template 1586: inline shared_ptr<_Tp> 1586: atomic_load(const shared_ptr<_Tp>* __p) 1586: { return std::atomic_load_explicit(__p, memory_order_seq_cst); } 1586: 1586: template 1586: inline __shared_ptr<_Tp, _Lp> 1586: atomic_load_explicit(const __shared_ptr<_Tp, _Lp>* __p, memory_order) 1586: { 1586: _Sp_locker __lock{__p}; 1586: return *__p; 1586: } 1586: 1586: template 1586: inline __shared_ptr<_Tp, _Lp> 1586: atomic_load(const __shared_ptr<_Tp, _Lp>* __p) 1586: { return std::atomic_load_explicit(__p, memory_order_seq_cst); } 1586: # 132 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr_atomic.h" 3 1586: template 1586: inline void 1586: atomic_store_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, 1586: memory_order) 1586: { 1586: _Sp_locker __lock{__p}; 1586: __p->swap(__r); 1586: } 1586: 1586: template 1586: inline void 1586: atomic_store(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) 1586: { std::atomic_store_explicit(__p, std::move(__r), memory_order_seq_cst); } 1586: 1586: template 1586: inline void 1586: atomic_store_explicit(__shared_ptr<_Tp, _Lp>* __p, 1586: __shared_ptr<_Tp, _Lp> __r, 1586: memory_order) 1586: { 1586: _Sp_locker __lock{__p}; 1586: __p->swap(__r); 1586: } 1586: 1586: template 1586: inline void 1586: atomic_store(__shared_ptr<_Tp, _Lp>* __p, __shared_ptr<_Tp, _Lp> __r) 1586: { std::atomic_store_explicit(__p, std::move(__r), memory_order_seq_cst); } 1586: # 169 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr_atomic.h" 3 1586: template 1586: inline shared_ptr<_Tp> 1586: atomic_exchange_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, 1586: memory_order) 1586: { 1586: _Sp_locker __lock{__p}; 1586: __p->swap(__r); 1586: return __r; 1586: } 1586: 1586: template 1586: inline shared_ptr<_Tp> 1586: atomic_exchange(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) 1586: { 1586: return std::atomic_exchange_explicit(__p, std::move(__r), 1586: memory_order_seq_cst); 1586: } 1586: 1586: template 1586: inline __shared_ptr<_Tp, _Lp> 1586: atomic_exchange_explicit(__shared_ptr<_Tp, _Lp>* __p, 1586: __shared_ptr<_Tp, _Lp> __r, 1586: memory_order) 1586: { 1586: _Sp_locker __lock{__p}; 1586: __p->swap(__r); 1586: return __r; 1586: } 1586: 1586: template 1586: inline __shared_ptr<_Tp, _Lp> 1586: atomic_exchange(__shared_ptr<_Tp, _Lp>* __p, __shared_ptr<_Tp, _Lp> __r) 1586: { 1586: return std::atomic_exchange_explicit(__p, std::move(__r), 1586: memory_order_seq_cst); 1586: } 1586: # 218 "/usr/mipsel-linux-gnu/include/c++/9/bits/shared_ptr_atomic.h" 3 1586: template 1586: bool 1586: atomic_compare_exchange_strong_explicit(shared_ptr<_Tp>* __p, 1586: shared_ptr<_Tp>* __v, 1586: shared_ptr<_Tp> __w, 1586: memory_order, 1586: memory_order) 1586: { 1586: shared_ptr<_Tp> __x; 1586: _Sp_locker __lock{__p, __v}; 1586: owner_less> __less; 1586: if (*__p == *__v && !__less(*__p, *__v) && !__less(*__v, *__p)) 1586: { 1586: __x = std::move(*__p); 1586: *__p = std::move(__w); 1586: return true; 1586: } 1586: __x = std::move(*__v); 1586: *__v = *__p; 1586: return false; 1586: } 1586: 1586: template 1586: inline bool 1586: atomic_compare_exchange_strong(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, 1586: shared_ptr<_Tp> __w) 1586: { 1586: return std::atomic_compare_exchange_strong_explicit(__p, __v, 1586: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 1586: } 1586: 1586: template 1586: inline bool 1586: atomic_compare_exchange_weak_explicit(shared_ptr<_Tp>* __p, 1586: shared_ptr<_Tp>* __v, 1586: shared_ptr<_Tp> __w, 1586: memory_order __success, 1586: memory_order __failure) 1586: { 1586: return std::atomic_compare_exchange_strong_explicit(__p, __v, 1586: std::move(__w), __success, __failure); 1586: } 1586: 1586: template 1586: inline bool 1586: atomic_compare_exchange_weak(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, 1586: shared_ptr<_Tp> __w) 1586: { 1586: return std::atomic_compare_exchange_weak_explicit(__p, __v, 1586: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 1586: } 1586: 1586: template 1586: bool 1586: atomic_compare_exchange_strong_explicit(__shared_ptr<_Tp, _Lp>* __p, 1586: __shared_ptr<_Tp, _Lp>* __v, 1586: __shared_ptr<_Tp, _Lp> __w, 1586: memory_order, 1586: memory_order) 1586: { 1586: __shared_ptr<_Tp, _Lp> __x; 1586: _Sp_locker __lock{__p, __v}; 1586: owner_less<__shared_ptr<_Tp, _Lp>> __less; 1586: if (*__p == *__v && !__less(*__p, *__v) && !__less(*__v, *__p)) 1586: { 1586: __x = std::move(*__p); 1586: *__p = std::move(__w); 1586: return true; 1586: } 1586: __x = std::move(*__v); 1586: *__v = *__p; 1586: return false; 1586: } 1586: 1586: template 1586: inline bool 1586: atomic_compare_exchange_strong(__shared_ptr<_Tp, _Lp>* __p, 1586: __shared_ptr<_Tp, _Lp>* __v, 1586: __shared_ptr<_Tp, _Lp> __w) 1586: { 1586: return std::atomic_compare_exchange_strong_explicit(__p, __v, 1586: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 1586: } 1586: 1586: template 1586: inline bool 1586: atomic_compare_exchange_weak_explicit(__shared_ptr<_Tp, _Lp>* __p, 1586: __shared_ptr<_Tp, _Lp>* __v, 1586: __shared_ptr<_Tp, _Lp> __w, 1586: memory_order __success, 1586: memory_order __failure) 1586: { 1586: return std::atomic_compare_exchange_strong_explicit(__p, __v, 1586: std::move(__w), __success, __failure); 1586: } 1586: 1586: template 1586: inline bool 1586: atomic_compare_exchange_weak(__shared_ptr<_Tp, _Lp>* __p, 1586: __shared_ptr<_Tp, _Lp>* __v, 1586: __shared_ptr<_Tp, _Lp> __w) 1586: { 1586: return std::atomic_compare_exchange_weak_explicit(__p, __v, 1586: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: } 1586: # 83 "/usr/mipsel-linux-gnu/include/c++/9/memory" 2 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/backward/auto_ptr.h" 1 3 1586: # 36 "/usr/mipsel-linux-gnu/include/c++/9/backward/auto_ptr.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 47 "/usr/mipsel-linux-gnu/include/c++/9/backward/auto_ptr.h" 3 1586: template 1586: struct auto_ptr_ref 1586: { 1586: _Tp1* _M_ptr; 1586: 1586: explicit 1586: auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { } 1586: } __attribute__ ((__deprecated__)); 1586: 1586: #pragma GCC diagnostic push 1586: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1586: # 88 "/usr/mipsel-linux-gnu/include/c++/9/backward/auto_ptr.h" 3 1586: template 1586: class auto_ptr 1586: { 1586: private: 1586: _Tp* _M_ptr; 1586: 1586: public: 1586: 1586: typedef _Tp element_type; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: explicit 1586: auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { } 1586: # 114 "/usr/mipsel-linux-gnu/include/c++/9/backward/auto_ptr.h" 3 1586: auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { } 1586: # 126 "/usr/mipsel-linux-gnu/include/c++/9/backward/auto_ptr.h" 3 1586: template 1586: auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { } 1586: # 137 "/usr/mipsel-linux-gnu/include/c++/9/backward/auto_ptr.h" 3 1586: auto_ptr& 1586: operator=(auto_ptr& __a) throw() 1586: { 1586: reset(__a.release()); 1586: return *this; 1586: } 1586: # 154 "/usr/mipsel-linux-gnu/include/c++/9/backward/auto_ptr.h" 3 1586: template 1586: auto_ptr& 1586: operator=(auto_ptr<_Tp1>& __a) throw() 1586: { 1586: reset(__a.release()); 1586: return *this; 1586: } 1586: # 172 "/usr/mipsel-linux-gnu/include/c++/9/backward/auto_ptr.h" 3 1586: ~auto_ptr() { delete _M_ptr; } 1586: # 182 "/usr/mipsel-linux-gnu/include/c++/9/backward/auto_ptr.h" 3 1586: element_type& 1586: operator*() const throw() 1586: { 1586: ; 1586: return *_M_ptr; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: element_type* 1586: operator->() const throw() 1586: { 1586: ; 1586: return _M_ptr; 1586: } 1586: # 212 "/usr/mipsel-linux-gnu/include/c++/9/backward/auto_ptr.h" 3 1586: element_type* 1586: get() const throw() { return _M_ptr; } 1586: # 226 "/usr/mipsel-linux-gnu/include/c++/9/backward/auto_ptr.h" 3 1586: element_type* 1586: release() throw() 1586: { 1586: element_type* __tmp = _M_ptr; 1586: _M_ptr = 0; 1586: return __tmp; 1586: } 1586: # 241 "/usr/mipsel-linux-gnu/include/c++/9/backward/auto_ptr.h" 3 1586: void 1586: reset(element_type* __p = 0) throw() 1586: { 1586: if (__p != _M_ptr) 1586: { 1586: delete _M_ptr; 1586: _M_ptr = __p; 1586: } 1586: } 1586: # 266 "/usr/mipsel-linux-gnu/include/c++/9/backward/auto_ptr.h" 3 1586: auto_ptr(auto_ptr_ref __ref) throw() 1586: : _M_ptr(__ref._M_ptr) { } 1586: 1586: auto_ptr& 1586: operator=(auto_ptr_ref __ref) throw() 1586: { 1586: if (__ref._M_ptr != this->get()) 1586: { 1586: delete _M_ptr; 1586: _M_ptr = __ref._M_ptr; 1586: } 1586: return *this; 1586: } 1586: 1586: template 1586: operator auto_ptr_ref<_Tp1>() throw() 1586: { return auto_ptr_ref<_Tp1>(this->release()); } 1586: 1586: template 1586: operator auto_ptr<_Tp1>() throw() 1586: { return auto_ptr<_Tp1>(this->release()); } 1586: } __attribute__ ((__deprecated__)); 1586: 1586: 1586: 1586: template<> 1586: class auto_ptr 1586: { 1586: public: 1586: typedef void element_type; 1586: } __attribute__ ((__deprecated__)); 1586: 1586: 1586: template<_Lock_policy _Lp> 1586: template 1586: inline 1586: __shared_count<_Lp>::__shared_count(std::auto_ptr<_Tp>&& __r) 1586: : _M_pi(new _Sp_counted_ptr<_Tp*, _Lp>(__r.get())) 1586: { __r.release(); } 1586: 1586: template 1586: template 1586: inline 1586: __shared_ptr<_Tp, _Lp>::__shared_ptr(std::auto_ptr<_Tp1>&& __r) 1586: : _M_ptr(__r.get()), _M_refcount() 1586: { 1586: 1586: static_assert( sizeof(_Tp1) > 0, "incomplete type" ); 1586: _Tp1* __tmp = __r.get(); 1586: _M_refcount = __shared_count<_Lp>(std::move(__r)); 1586: _M_enable_shared_from_this_with(__tmp); 1586: } 1586: 1586: template 1586: template 1586: inline 1586: shared_ptr<_Tp>::shared_ptr(std::auto_ptr<_Tp1>&& __r) 1586: : __shared_ptr<_Tp>(std::move(__r)) { } 1586: 1586: template 1586: template 1586: inline 1586: unique_ptr<_Tp, _Dp>::unique_ptr(auto_ptr<_Up>&& __u) noexcept 1586: : _M_t(__u.release(), deleter_type()) { } 1586: 1586: 1586: #pragma GCC diagnostic pop 1586: 1586: 1586: } 1586: # 85 "/usr/mipsel-linux-gnu/include/c++/9/memory" 2 3 1586: # 97 "/usr/mipsel-linux-gnu/include/c++/9/memory" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 117 "/usr/mipsel-linux-gnu/include/c++/9/memory" 3 1586: inline void* 1586: align(size_t __align, size_t __size, void*& __ptr, size_t& __space) noexcept 1586: { 1586: 1586: const auto __intptr = reinterpret_cast(__ptr); 1586: 1586: 1586: 1586: 1586: 1586: 1586: const auto __aligned = (__intptr - 1u + __align) & -__align; 1586: const auto __diff = __aligned - __intptr; 1586: if ((__size + __diff) > __space) 1586: return nullptr; 1586: else 1586: { 1586: __space -= __diff; 1586: return __ptr = reinterpret_cast(__aligned); 1586: } 1586: } 1586: 1586: 1586: 1586: enum class pointer_safety { relaxed, preferred, strict }; 1586: 1586: inline void 1586: declare_reachable(void*) { } 1586: 1586: template 1586: inline _Tp* 1586: undeclare_reachable(_Tp* __p) { return __p; } 1586: 1586: inline void 1586: declare_no_pointers(char*, size_t) { } 1586: 1586: inline void 1586: undeclare_no_pointers(char*, size_t) { } 1586: 1586: inline pointer_safety 1586: get_pointer_safety() noexcept { return pointer_safety::relaxed; } 1586: # 365 "/usr/mipsel-linux-gnu/include/c++/9/memory" 3 1586: 1586: } 1586: # 15 "/<>/include/HepMC3/GenParticle_fwd.h" 2 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/vector" 1 3 1586: # 58 "/usr/mipsel-linux-gnu/include/c++/9/vector" 3 1586: 1586: # 59 "/usr/mipsel-linux-gnu/include/c++/9/vector" 3 1586: # 67 "/usr/mipsel-linux-gnu/include/c++/9/vector" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 1 3 1586: # 74 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: template 1586: struct _Vector_base 1586: { 1586: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 1586: rebind<_Tp>::other _Tp_alloc_type; 1586: typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer 1586: pointer; 1586: 1586: struct _Vector_impl_data 1586: { 1586: pointer _M_start; 1586: pointer _M_finish; 1586: pointer _M_end_of_storage; 1586: 1586: _Vector_impl_data() noexcept 1586: : _M_start(), _M_finish(), _M_end_of_storage() 1586: { } 1586: 1586: 1586: _Vector_impl_data(_Vector_impl_data&& __x) noexcept 1586: : _M_start(__x._M_start), _M_finish(__x._M_finish), 1586: _M_end_of_storage(__x._M_end_of_storage) 1586: { __x._M_start = __x._M_finish = __x._M_end_of_storage = pointer(); } 1586: 1586: 1586: void 1586: _M_copy_data(_Vector_impl_data const& __x) noexcept 1586: { 1586: _M_start = __x._M_start; 1586: _M_finish = __x._M_finish; 1586: _M_end_of_storage = __x._M_end_of_storage; 1586: } 1586: 1586: void 1586: _M_swap_data(_Vector_impl_data& __x) noexcept 1586: { 1586: 1586: 1586: _Vector_impl_data __tmp; 1586: __tmp._M_copy_data(*this); 1586: _M_copy_data(__x); 1586: __x._M_copy_data(__tmp); 1586: } 1586: }; 1586: 1586: struct _Vector_impl 1586: : public _Tp_alloc_type, public _Vector_impl_data 1586: { 1586: _Vector_impl() noexcept(is_nothrow_default_constructible<_Tp_alloc_type>::value) 1586: 1586: : _Tp_alloc_type() 1586: { } 1586: 1586: _Vector_impl(_Tp_alloc_type const& __a) noexcept 1586: : _Tp_alloc_type(__a) 1586: { } 1586: 1586: 1586: 1586: 1586: _Vector_impl(_Vector_impl&& __x) noexcept 1586: : _Tp_alloc_type(std::move(__x)), _Vector_impl_data(std::move(__x)) 1586: { } 1586: 1586: _Vector_impl(_Tp_alloc_type&& __a) noexcept 1586: : _Tp_alloc_type(std::move(__a)) 1586: { } 1586: 1586: _Vector_impl(_Tp_alloc_type&& __a, _Vector_impl&& __rv) noexcept 1586: : _Tp_alloc_type(std::move(__a)), _Vector_impl_data(std::move(__rv)) 1586: { } 1586: # 267 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: }; 1586: 1586: public: 1586: typedef _Alloc allocator_type; 1586: 1586: _Tp_alloc_type& 1586: _M_get_Tp_allocator() noexcept 1586: { return this->_M_impl; } 1586: 1586: const _Tp_alloc_type& 1586: _M_get_Tp_allocator() const noexcept 1586: { return this->_M_impl; } 1586: 1586: allocator_type 1586: get_allocator() const noexcept 1586: { return allocator_type(_M_get_Tp_allocator()); } 1586: 1586: 1586: _Vector_base() = default; 1586: 1586: 1586: 1586: 1586: _Vector_base(const allocator_type& __a) noexcept 1586: : _M_impl(__a) { } 1586: 1586: 1586: 1586: _Vector_base(size_t __n) 1586: : _M_impl() 1586: { _M_create_storage(__n); } 1586: 1586: 1586: _Vector_base(size_t __n, const allocator_type& __a) 1586: : _M_impl(__a) 1586: { _M_create_storage(__n); } 1586: 1586: 1586: _Vector_base(_Vector_base&&) = default; 1586: 1586: 1586: 1586: _Vector_base(_Tp_alloc_type&& __a) noexcept 1586: : _M_impl(std::move(__a)) { } 1586: 1586: _Vector_base(_Vector_base&& __x, const allocator_type& __a) 1586: : _M_impl(__a) 1586: { 1586: if (__x.get_allocator() == __a) 1586: this->_M_impl._M_swap_data(__x._M_impl); 1586: else 1586: { 1586: size_t __n = __x._M_impl._M_finish - __x._M_impl._M_start; 1586: _M_create_storage(__n); 1586: } 1586: } 1586: 1586: 1586: _Vector_base(const allocator_type& __a, _Vector_base&& __x) 1586: : _M_impl(_Tp_alloc_type(__a), std::move(__x._M_impl)) 1586: { } 1586: 1586: 1586: ~_Vector_base() noexcept 1586: { 1586: _M_deallocate(_M_impl._M_start, 1586: _M_impl._M_end_of_storage - _M_impl._M_start); 1586: } 1586: 1586: public: 1586: _Vector_impl _M_impl; 1586: 1586: pointer 1586: _M_allocate(size_t __n) 1586: { 1586: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 1586: return __n != 0 ? _Tr::allocate(_M_impl, __n) : pointer(); 1586: } 1586: 1586: void 1586: _M_deallocate(pointer __p, size_t __n) 1586: { 1586: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 1586: if (__p) 1586: _Tr::deallocate(_M_impl, __p, __n); 1586: } 1586: 1586: protected: 1586: void 1586: _M_create_storage(size_t __n) 1586: { 1586: this->_M_impl._M_start = this->_M_allocate(__n); 1586: this->_M_impl._M_finish = this->_M_impl._M_start; 1586: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 1586: } 1586: }; 1586: # 385 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: template > 1586: class vector : protected _Vector_base<_Tp, _Alloc> 1586: { 1586: # 398 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: static_assert(is_same::type, _Tp>::value, 1586: "std::vector must have a non-const, non-volatile value_type"); 1586: 1586: static_assert(is_same::value, 1586: "std::vector must have the same value_type as its allocator"); 1586: 1586: 1586: 1586: typedef _Vector_base<_Tp, _Alloc> _Base; 1586: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 1586: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; 1586: 1586: public: 1586: typedef _Tp value_type; 1586: typedef typename _Base::pointer pointer; 1586: typedef typename _Alloc_traits::const_pointer const_pointer; 1586: typedef typename _Alloc_traits::reference reference; 1586: typedef typename _Alloc_traits::const_reference const_reference; 1586: typedef __gnu_cxx::__normal_iterator iterator; 1586: typedef __gnu_cxx::__normal_iterator 1586: const_iterator; 1586: typedef std::reverse_iterator const_reverse_iterator; 1586: typedef std::reverse_iterator reverse_iterator; 1586: typedef size_t size_type; 1586: typedef ptrdiff_t difference_type; 1586: typedef _Alloc allocator_type; 1586: 1586: private: 1586: 1586: static constexpr bool 1586: _S_nothrow_relocate(true_type) 1586: { 1586: return noexcept(std::__relocate_a(std::declval(), 1586: std::declval(), 1586: std::declval(), 1586: std::declval<_Tp_alloc_type&>())); 1586: } 1586: 1586: static constexpr bool 1586: _S_nothrow_relocate(false_type) 1586: { return false; } 1586: 1586: static constexpr bool 1586: _S_use_relocate() 1586: { 1586: 1586: 1586: 1586: return _S_nothrow_relocate(__is_move_insertable<_Tp_alloc_type>{}); 1586: } 1586: 1586: static pointer 1586: _S_do_relocate(pointer __first, pointer __last, pointer __result, 1586: _Tp_alloc_type& __alloc, true_type) noexcept 1586: { 1586: return std::__relocate_a(__first, __last, __result, __alloc); 1586: } 1586: 1586: static pointer 1586: _S_do_relocate(pointer, pointer, pointer __result, 1586: _Tp_alloc_type&, false_type) noexcept 1586: { return __result; } 1586: 1586: static pointer 1586: _S_relocate(pointer __first, pointer __last, pointer __result, 1586: _Tp_alloc_type& __alloc) noexcept 1586: { 1586: using __do_it = __bool_constant<_S_use_relocate()>; 1586: return _S_do_relocate(__first, __last, __result, __alloc, __do_it{}); 1586: } 1586: 1586: 1586: protected: 1586: using _Base::_M_allocate; 1586: using _Base::_M_deallocate; 1586: using _Base::_M_impl; 1586: using _Base::_M_get_Tp_allocator; 1586: 1586: public: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: vector() = default; 1586: # 493 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: explicit 1586: vector(const allocator_type& __a) noexcept 1586: : _Base(__a) { } 1586: # 506 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: explicit 1586: vector(size_type __n, const allocator_type& __a = allocator_type()) 1586: : _Base(_S_check_init_len(__n, __a), __a) 1586: { _M_default_initialize(__n); } 1586: # 519 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: vector(size_type __n, const value_type& __value, 1586: const allocator_type& __a = allocator_type()) 1586: : _Base(_S_check_init_len(__n, __a), __a) 1586: { _M_fill_initialize(__n, __value); } 1586: # 550 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: vector(const vector& __x) 1586: : _Base(__x.size(), 1586: _Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator())) 1586: { 1586: this->_M_impl._M_finish = 1586: std::__uninitialized_copy_a(__x.begin(), __x.end(), 1586: this->_M_impl._M_start, 1586: _M_get_Tp_allocator()); 1586: } 1586: # 569 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: vector(vector&&) noexcept = default; 1586: 1586: 1586: vector(const vector& __x, const allocator_type& __a) 1586: : _Base(__x.size(), __a) 1586: { 1586: this->_M_impl._M_finish = 1586: std::__uninitialized_copy_a(__x.begin(), __x.end(), 1586: this->_M_impl._M_start, 1586: _M_get_Tp_allocator()); 1586: } 1586: 1586: private: 1586: vector(vector&& __rv, const allocator_type& __m, true_type) noexcept 1586: : _Base(__m, std::move(__rv)) 1586: { } 1586: 1586: vector(vector&& __rv, const allocator_type& __m, false_type) 1586: : _Base(__m) 1586: { 1586: if (__rv.get_allocator() == __m) 1586: this->_M_impl._M_swap_data(__rv._M_impl); 1586: else if (!__rv.empty()) 1586: { 1586: this->_M_create_storage(__rv.size()); 1586: this->_M_impl._M_finish = 1586: std::__uninitialized_move_a(__rv.begin(), __rv.end(), 1586: this->_M_impl._M_start, 1586: _M_get_Tp_allocator()); 1586: __rv.clear(); 1586: } 1586: } 1586: 1586: public: 1586: 1586: vector(vector&& __rv, const allocator_type& __m) 1586: noexcept( noexcept( 1586: vector(std::declval(), std::declval(), 1586: std::declval())) ) 1586: : vector(std::move(__rv), __m, typename _Alloc_traits::is_always_equal{}) 1586: { } 1586: # 622 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: vector(initializer_list __l, 1586: const allocator_type& __a = allocator_type()) 1586: : _Base(__a) 1586: { 1586: _M_range_initialize(__l.begin(), __l.end(), 1586: random_access_iterator_tag()); 1586: } 1586: # 648 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: template> 1586: vector(_InputIterator __first, _InputIterator __last, 1586: const allocator_type& __a = allocator_type()) 1586: : _Base(__a) 1586: { 1586: _M_range_initialize(__first, __last, 1586: std::__iterator_category(__first)); 1586: } 1586: # 675 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: ~vector() noexcept 1586: { 1586: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 1586: _M_get_Tp_allocator()); 1586: ; 1586: } 1586: # 691 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: vector& 1586: operator=(const vector& __x); 1586: # 705 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: vector& 1586: operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move()) 1586: { 1586: constexpr bool __move_storage = 1586: _Alloc_traits::_S_propagate_on_move_assign() 1586: || _Alloc_traits::_S_always_equal(); 1586: _M_move_assign(std::move(__x), __bool_constant<__move_storage>()); 1586: return *this; 1586: } 1586: # 726 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: vector& 1586: operator=(initializer_list __l) 1586: { 1586: this->_M_assign_aux(__l.begin(), __l.end(), 1586: random_access_iterator_tag()); 1586: return *this; 1586: } 1586: # 745 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: void 1586: assign(size_type __n, const value_type& __val) 1586: { _M_fill_assign(__n, __val); } 1586: # 762 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: template> 1586: void 1586: assign(_InputIterator __first, _InputIterator __last) 1586: { _M_assign_dispatch(__first, __last, __false_type()); } 1586: # 790 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: void 1586: assign(initializer_list __l) 1586: { 1586: this->_M_assign_aux(__l.begin(), __l.end(), 1586: random_access_iterator_tag()); 1586: } 1586: 1586: 1586: 1586: using _Base::get_allocator; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: iterator 1586: begin() noexcept 1586: { return iterator(this->_M_impl._M_start); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_iterator 1586: begin() const noexcept 1586: { return const_iterator(this->_M_impl._M_start); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: iterator 1586: end() noexcept 1586: { return iterator(this->_M_impl._M_finish); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_iterator 1586: end() const noexcept 1586: { return const_iterator(this->_M_impl._M_finish); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: reverse_iterator 1586: rbegin() noexcept 1586: { return reverse_iterator(end()); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_reverse_iterator 1586: rbegin() const noexcept 1586: { return const_reverse_iterator(end()); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: reverse_iterator 1586: rend() noexcept 1586: { return reverse_iterator(begin()); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_reverse_iterator 1586: rend() const noexcept 1586: { return const_reverse_iterator(begin()); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_iterator 1586: cbegin() const noexcept 1586: { return const_iterator(this->_M_impl._M_start); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_iterator 1586: cend() const noexcept 1586: { return const_iterator(this->_M_impl._M_finish); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_reverse_iterator 1586: crbegin() const noexcept 1586: { return const_reverse_iterator(end()); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_reverse_iterator 1586: crend() const noexcept 1586: { return const_reverse_iterator(begin()); } 1586: 1586: 1586: 1586: 1586: size_type 1586: size() const noexcept 1586: { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } 1586: 1586: 1586: size_type 1586: max_size() const noexcept 1586: { return _S_max_size(_M_get_Tp_allocator()); } 1586: # 933 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: void 1586: resize(size_type __new_size) 1586: { 1586: if (__new_size > size()) 1586: _M_default_append(__new_size - size()); 1586: else if (__new_size < size()) 1586: _M_erase_at_end(this->_M_impl._M_start + __new_size); 1586: } 1586: # 953 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: void 1586: resize(size_type __new_size, const value_type& __x) 1586: { 1586: if (__new_size > size()) 1586: _M_fill_insert(end(), __new_size - size(), __x); 1586: else if (__new_size < size()) 1586: _M_erase_at_end(this->_M_impl._M_start + __new_size); 1586: } 1586: # 985 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: void 1586: shrink_to_fit() 1586: { _M_shrink_to_fit(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: size_type 1586: capacity() const noexcept 1586: { return size_type(this->_M_impl._M_end_of_storage 1586: - this->_M_impl._M_start); } 1586: 1586: 1586: 1586: 1586: 1586: bool 1586: empty() const noexcept 1586: { return begin() == end(); } 1586: # 1024 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: void 1586: reserve(size_type __n); 1586: # 1039 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: reference 1586: operator[](size_type __n) noexcept 1586: { 1586: ; 1586: return *(this->_M_impl._M_start + __n); 1586: } 1586: # 1057 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: const_reference 1586: operator[](size_type __n) const noexcept 1586: { 1586: ; 1586: return *(this->_M_impl._M_start + __n); 1586: } 1586: 1586: protected: 1586: 1586: void 1586: _M_range_check(size_type __n) const 1586: { 1586: if (__n >= this->size()) 1586: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 1586: 1586: , 1586: __n, this->size()); 1586: } 1586: 1586: public: 1586: # 1088 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: reference 1586: at(size_type __n) 1586: { 1586: _M_range_check(__n); 1586: return (*this)[__n]; 1586: } 1586: # 1106 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: const_reference 1586: at(size_type __n) const 1586: { 1586: _M_range_check(__n); 1586: return (*this)[__n]; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: reference 1586: front() noexcept 1586: { 1586: ; 1586: return *begin(); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: const_reference 1586: front() const noexcept 1586: { 1586: ; 1586: return *begin(); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: reference 1586: back() noexcept 1586: { 1586: ; 1586: return *(end() - 1); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: const_reference 1586: back() const noexcept 1586: { 1586: ; 1586: return *(end() - 1); 1586: } 1586: # 1164 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: _Tp* 1586: data() noexcept 1586: { return _M_data_ptr(this->_M_impl._M_start); } 1586: 1586: const _Tp* 1586: data() const noexcept 1586: { return _M_data_ptr(this->_M_impl._M_start); } 1586: # 1183 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: void 1586: push_back(const value_type& __x) 1586: { 1586: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 1586: { 1586: ; 1586: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 1586: __x); 1586: ++this->_M_impl._M_finish; 1586: ; 1586: } 1586: else 1586: _M_realloc_insert(end(), __x); 1586: } 1586: 1586: 1586: void 1586: push_back(value_type&& __x) 1586: { emplace_back(std::move(__x)); } 1586: 1586: template 1586: 1586: 1586: 1586: void 1586: 1586: emplace_back(_Args&&... __args); 1586: # 1221 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: void 1586: pop_back() noexcept 1586: { 1586: ; 1586: --this->_M_impl._M_finish; 1586: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 1586: ; 1586: } 1586: # 1243 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: template 1586: iterator 1586: emplace(const_iterator __position, _Args&&... __args) 1586: { return _M_emplace_aux(__position, std::forward<_Args>(__args)...); } 1586: # 1259 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: iterator 1586: insert(const_iterator __position, const value_type& __x); 1586: # 1289 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: iterator 1586: insert(const_iterator __position, value_type&& __x) 1586: { return _M_insert_rval(__position, std::move(__x)); } 1586: # 1306 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: iterator 1586: insert(const_iterator __position, initializer_list __l) 1586: { 1586: auto __offset = __position - cbegin(); 1586: _M_range_insert(begin() + __offset, __l.begin(), __l.end(), 1586: std::random_access_iterator_tag()); 1586: return begin() + __offset; 1586: } 1586: # 1331 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: iterator 1586: insert(const_iterator __position, size_type __n, const value_type& __x) 1586: { 1586: difference_type __offset = __position - cbegin(); 1586: _M_fill_insert(begin() + __offset, __n, __x); 1586: return begin() + __offset; 1586: } 1586: # 1373 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: template> 1586: iterator 1586: insert(const_iterator __position, _InputIterator __first, 1586: _InputIterator __last) 1586: { 1586: difference_type __offset = __position - cbegin(); 1586: _M_insert_dispatch(begin() + __offset, 1586: __first, __last, __false_type()); 1586: return begin() + __offset; 1586: } 1586: # 1425 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: iterator 1586: 1586: erase(const_iterator __position) 1586: { return _M_erase(begin() + (__position - cbegin())); } 1586: # 1452 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: iterator 1586: 1586: erase(const_iterator __first, const_iterator __last) 1586: { 1586: const auto __beg = begin(); 1586: const auto __cbeg = cbegin(); 1586: return _M_erase(__beg + (__first - __cbeg), __beg + (__last - __cbeg)); 1586: } 1586: # 1476 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: void 1586: swap(vector& __x) noexcept 1586: { 1586: 1586: 1586: ; 1586: 1586: this->_M_impl._M_swap_data(__x._M_impl); 1586: _Alloc_traits::_S_on_swap(_M_get_Tp_allocator(), 1586: __x._M_get_Tp_allocator()); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: void 1586: clear() noexcept 1586: { _M_erase_at_end(this->_M_impl._M_start); } 1586: 1586: protected: 1586: 1586: 1586: 1586: 1586: template 1586: pointer 1586: _M_allocate_and_copy(size_type __n, 1586: _ForwardIterator __first, _ForwardIterator __last) 1586: { 1586: pointer __result = this->_M_allocate(__n); 1586: try 1586: { 1586: std::__uninitialized_copy_a(__first, __last, __result, 1586: _M_get_Tp_allocator()); 1586: return __result; 1586: } 1586: catch(...) 1586: { 1586: _M_deallocate(__result, __n); 1586: throw; 1586: } 1586: } 1586: # 1553 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: template 1586: void 1586: _M_range_initialize(_InputIterator __first, _InputIterator __last, 1586: std::input_iterator_tag) 1586: { 1586: try { 1586: for (; __first != __last; ++__first) 1586: 1586: emplace_back(*__first); 1586: 1586: 1586: 1586: } catch(...) { 1586: clear(); 1586: throw; 1586: } 1586: } 1586: 1586: 1586: template 1586: void 1586: _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, 1586: std::forward_iterator_tag) 1586: { 1586: const size_type __n = std::distance(__first, __last); 1586: this->_M_impl._M_start 1586: = this->_M_allocate(_S_check_init_len(__n, _M_get_Tp_allocator())); 1586: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 1586: this->_M_impl._M_finish = 1586: std::__uninitialized_copy_a(__first, __last, 1586: this->_M_impl._M_start, 1586: _M_get_Tp_allocator()); 1586: } 1586: 1586: 1586: 1586: void 1586: _M_fill_initialize(size_type __n, const value_type& __value) 1586: { 1586: this->_M_impl._M_finish = 1586: std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value, 1586: _M_get_Tp_allocator()); 1586: } 1586: 1586: 1586: 1586: void 1586: _M_default_initialize(size_type __n) 1586: { 1586: this->_M_impl._M_finish = 1586: std::__uninitialized_default_n_a(this->_M_impl._M_start, __n, 1586: _M_get_Tp_allocator()); 1586: } 1586: # 1615 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: template 1586: void 1586: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 1586: { _M_fill_assign(__n, __val); } 1586: 1586: 1586: template 1586: void 1586: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 1586: __false_type) 1586: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 1586: 1586: 1586: template 1586: void 1586: _M_assign_aux(_InputIterator __first, _InputIterator __last, 1586: std::input_iterator_tag); 1586: 1586: 1586: template 1586: void 1586: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 1586: std::forward_iterator_tag); 1586: 1586: 1586: 1586: void 1586: _M_fill_assign(size_type __n, const value_type& __val); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: void 1586: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, 1586: __true_type) 1586: { _M_fill_insert(__pos, __n, __val); } 1586: 1586: 1586: template 1586: void 1586: _M_insert_dispatch(iterator __pos, _InputIterator __first, 1586: _InputIterator __last, __false_type) 1586: { 1586: _M_range_insert(__pos, __first, __last, 1586: std::__iterator_category(__first)); 1586: } 1586: 1586: 1586: template 1586: void 1586: _M_range_insert(iterator __pos, _InputIterator __first, 1586: _InputIterator __last, std::input_iterator_tag); 1586: 1586: 1586: template 1586: void 1586: _M_range_insert(iterator __pos, _ForwardIterator __first, 1586: _ForwardIterator __last, std::forward_iterator_tag); 1586: 1586: 1586: 1586: void 1586: _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); 1586: 1586: 1586: 1586: void 1586: _M_default_append(size_type __n); 1586: 1586: bool 1586: _M_shrink_to_fit(); 1586: # 1702 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: struct _Temporary_value 1586: { 1586: template 1586: explicit 1586: _Temporary_value(vector* __vec, _Args&&... __args) : _M_this(__vec) 1586: { 1586: _Alloc_traits::construct(_M_this->_M_impl, _M_ptr(), 1586: std::forward<_Args>(__args)...); 1586: } 1586: 1586: ~_Temporary_value() 1586: { _Alloc_traits::destroy(_M_this->_M_impl, _M_ptr()); } 1586: 1586: value_type& 1586: _M_val() { return *_M_ptr(); } 1586: 1586: private: 1586: _Tp* 1586: _M_ptr() { return reinterpret_cast<_Tp*>(&__buf); } 1586: 1586: vector* _M_this; 1586: typename aligned_storage::type __buf; 1586: }; 1586: 1586: 1586: 1586: template 1586: void 1586: _M_insert_aux(iterator __position, _Arg&& __arg); 1586: 1586: template 1586: void 1586: _M_realloc_insert(iterator __position, _Args&&... __args); 1586: 1586: 1586: iterator 1586: _M_insert_rval(const_iterator __position, value_type&& __v); 1586: 1586: 1586: template 1586: iterator 1586: _M_emplace_aux(const_iterator __position, _Args&&... __args); 1586: 1586: 1586: iterator 1586: _M_emplace_aux(const_iterator __position, value_type&& __v) 1586: { return _M_insert_rval(__position, std::move(__v)); } 1586: 1586: 1586: 1586: size_type 1586: _M_check_len(size_type __n, const char* __s) const 1586: { 1586: if (max_size() - size() < __n) 1586: __throw_length_error((__s)); 1586: 1586: const size_type __len = size() + (std::max)(size(), __n); 1586: return (__len < size() || __len > max_size()) ? max_size() : __len; 1586: } 1586: 1586: 1586: static size_type 1586: _S_check_init_len(size_type __n, const allocator_type& __a) 1586: { 1586: if (__n > _S_max_size(_Tp_alloc_type(__a))) 1586: __throw_length_error( 1586: ("cannot create std::vector larger than max_size()")); 1586: return __n; 1586: } 1586: 1586: static size_type 1586: _S_max_size(const _Tp_alloc_type& __a) noexcept 1586: { 1586: 1586: 1586: 1586: const size_t __diffmax 1586: = __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); 1586: const size_t __allocmax = _Alloc_traits::max_size(__a); 1586: return (std::min)(__diffmax, __allocmax); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: void 1586: _M_erase_at_end(pointer __pos) noexcept 1586: { 1586: if (size_type __n = this->_M_impl._M_finish - __pos) 1586: { 1586: std::_Destroy(__pos, this->_M_impl._M_finish, 1586: _M_get_Tp_allocator()); 1586: this->_M_impl._M_finish = __pos; 1586: ; 1586: } 1586: } 1586: 1586: iterator 1586: _M_erase(iterator __position); 1586: 1586: iterator 1586: _M_erase(iterator __first, iterator __last); 1586: 1586: 1586: private: 1586: 1586: 1586: 1586: void 1586: _M_move_assign(vector&& __x, true_type) noexcept 1586: { 1586: vector __tmp(get_allocator()); 1586: this->_M_impl._M_swap_data(__x._M_impl); 1586: __tmp._M_impl._M_swap_data(__x._M_impl); 1586: std::__alloc_on_move(_M_get_Tp_allocator(), __x._M_get_Tp_allocator()); 1586: } 1586: 1586: 1586: 1586: void 1586: _M_move_assign(vector&& __x, false_type) 1586: { 1586: if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator()) 1586: _M_move_assign(std::move(__x), true_type()); 1586: else 1586: { 1586: 1586: 1586: this->assign(std::__make_move_if_noexcept_iterator(__x.begin()), 1586: std::__make_move_if_noexcept_iterator(__x.end())); 1586: __x.clear(); 1586: } 1586: } 1586: 1586: 1586: template 1586: _Up* 1586: _M_data_ptr(_Up* __ptr) const noexcept 1586: { return __ptr; } 1586: 1586: 1586: template 1586: typename std::pointer_traits<_Ptr>::element_type* 1586: _M_data_ptr(_Ptr __ptr) const 1586: { return empty() ? nullptr : std::__to_address(__ptr); } 1586: # 1864 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: }; 1586: # 1886 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: template 1586: inline bool 1586: operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 1586: { return (__x.size() == __y.size() 1586: && std::equal(__x.begin(), __x.end(), __y.begin())); } 1586: # 1903 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: template 1586: inline bool 1586: operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 1586: { return std::lexicographical_compare(__x.begin(), __x.end(), 1586: __y.begin(), __y.end()); } 1586: 1586: 1586: template 1586: inline bool 1586: operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 1586: { return !(__x == __y); } 1586: 1586: 1586: template 1586: inline bool 1586: operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 1586: { return __y < __x; } 1586: 1586: 1586: template 1586: inline bool 1586: operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 1586: { return !(__y < __x); } 1586: 1586: 1586: template 1586: inline bool 1586: operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 1586: { return !(__x < __y); } 1586: 1586: 1586: template 1586: inline void 1586: swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y) 1586: noexcept(noexcept(__x.swap(__y))) 1586: { __x.swap(__y); } 1586: 1586: 1586: # 1956 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_vector.h" 3 1586: 1586: } 1586: # 68 "/usr/mipsel-linux-gnu/include/c++/9/vector" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_bvector.h" 1 3 1586: # 64 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_bvector.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: typedef unsigned long _Bit_type; 1586: enum { _S_word_bit = int(8 * sizeof(_Bit_type)) }; 1586: 1586: struct _Bit_reference 1586: { 1586: _Bit_type * _M_p; 1586: _Bit_type _M_mask; 1586: 1586: _Bit_reference(_Bit_type * __x, _Bit_type __y) 1586: : _M_p(__x), _M_mask(__y) { } 1586: 1586: _Bit_reference() noexcept : _M_p(0), _M_mask(0) { } 1586: 1586: 1586: _Bit_reference(const _Bit_reference&) = default; 1586: 1586: 1586: operator bool() const noexcept 1586: { return !!(*_M_p & _M_mask); } 1586: 1586: _Bit_reference& 1586: operator=(bool __x) noexcept 1586: { 1586: if (__x) 1586: *_M_p |= _M_mask; 1586: else 1586: *_M_p &= ~_M_mask; 1586: return *this; 1586: } 1586: 1586: _Bit_reference& 1586: operator=(const _Bit_reference& __x) noexcept 1586: { return *this = bool(__x); } 1586: 1586: bool 1586: operator==(const _Bit_reference& __x) const 1586: { return bool(*this) == bool(__x); } 1586: 1586: bool 1586: operator<(const _Bit_reference& __x) const 1586: { return !bool(*this) && bool(__x); } 1586: 1586: void 1586: flip() noexcept 1586: { *_M_p ^= _M_mask; } 1586: }; 1586: 1586: 1586: inline void 1586: swap(_Bit_reference __x, _Bit_reference __y) noexcept 1586: { 1586: bool __tmp = __x; 1586: __x = __y; 1586: __y = __tmp; 1586: } 1586: 1586: inline void 1586: swap(_Bit_reference __x, bool& __y) noexcept 1586: { 1586: bool __tmp = __x; 1586: __x = __y; 1586: __y = __tmp; 1586: } 1586: 1586: inline void 1586: swap(bool& __x, _Bit_reference __y) noexcept 1586: { 1586: bool __tmp = __x; 1586: __x = __y; 1586: __y = __tmp; 1586: } 1586: 1586: 1586: struct _Bit_iterator_base 1586: : public std::iterator 1586: { 1586: _Bit_type * _M_p; 1586: unsigned int _M_offset; 1586: 1586: _Bit_iterator_base(_Bit_type * __x, unsigned int __y) 1586: : _M_p(__x), _M_offset(__y) { } 1586: 1586: void 1586: _M_bump_up() 1586: { 1586: if (_M_offset++ == int(_S_word_bit) - 1) 1586: { 1586: _M_offset = 0; 1586: ++_M_p; 1586: } 1586: } 1586: 1586: void 1586: _M_bump_down() 1586: { 1586: if (_M_offset-- == 0) 1586: { 1586: _M_offset = int(_S_word_bit) - 1; 1586: --_M_p; 1586: } 1586: } 1586: 1586: void 1586: _M_incr(ptrdiff_t __i) 1586: { 1586: difference_type __n = __i + _M_offset; 1586: _M_p += __n / int(_S_word_bit); 1586: __n = __n % int(_S_word_bit); 1586: if (__n < 0) 1586: { 1586: __n += int(_S_word_bit); 1586: --_M_p; 1586: } 1586: _M_offset = static_cast(__n); 1586: } 1586: 1586: bool 1586: operator==(const _Bit_iterator_base& __i) const 1586: { return _M_p == __i._M_p && _M_offset == __i._M_offset; } 1586: 1586: bool 1586: operator<(const _Bit_iterator_base& __i) const 1586: { 1586: return _M_p < __i._M_p 1586: || (_M_p == __i._M_p && _M_offset < __i._M_offset); 1586: } 1586: 1586: bool 1586: operator!=(const _Bit_iterator_base& __i) const 1586: { return !(*this == __i); } 1586: 1586: bool 1586: operator>(const _Bit_iterator_base& __i) const 1586: { return __i < *this; } 1586: 1586: bool 1586: operator<=(const _Bit_iterator_base& __i) const 1586: { return !(__i < *this); } 1586: 1586: bool 1586: operator>=(const _Bit_iterator_base& __i) const 1586: { return !(*this < __i); } 1586: }; 1586: 1586: inline ptrdiff_t 1586: operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 1586: { 1586: return (int(_S_word_bit) * (__x._M_p - __y._M_p) 1586: + __x._M_offset - __y._M_offset); 1586: } 1586: 1586: struct _Bit_iterator : public _Bit_iterator_base 1586: { 1586: typedef _Bit_reference reference; 1586: typedef _Bit_reference* pointer; 1586: typedef _Bit_iterator iterator; 1586: 1586: _Bit_iterator() : _Bit_iterator_base(0, 0) { } 1586: 1586: _Bit_iterator(_Bit_type * __x, unsigned int __y) 1586: : _Bit_iterator_base(__x, __y) { } 1586: 1586: iterator 1586: _M_const_cast() const 1586: { return *this; } 1586: 1586: reference 1586: operator*() const 1586: { return reference(_M_p, 1UL << _M_offset); } 1586: 1586: iterator& 1586: operator++() 1586: { 1586: _M_bump_up(); 1586: return *this; 1586: } 1586: 1586: iterator 1586: operator++(int) 1586: { 1586: iterator __tmp = *this; 1586: _M_bump_up(); 1586: return __tmp; 1586: } 1586: 1586: iterator& 1586: operator--() 1586: { 1586: _M_bump_down(); 1586: return *this; 1586: } 1586: 1586: iterator 1586: operator--(int) 1586: { 1586: iterator __tmp = *this; 1586: _M_bump_down(); 1586: return __tmp; 1586: } 1586: 1586: iterator& 1586: operator+=(difference_type __i) 1586: { 1586: _M_incr(__i); 1586: return *this; 1586: } 1586: 1586: iterator& 1586: operator-=(difference_type __i) 1586: { 1586: *this += -__i; 1586: return *this; 1586: } 1586: 1586: iterator 1586: operator+(difference_type __i) const 1586: { 1586: iterator __tmp = *this; 1586: return __tmp += __i; 1586: } 1586: 1586: iterator 1586: operator-(difference_type __i) const 1586: { 1586: iterator __tmp = *this; 1586: return __tmp -= __i; 1586: } 1586: 1586: reference 1586: operator[](difference_type __i) const 1586: { return *(*this + __i); } 1586: }; 1586: 1586: inline _Bit_iterator 1586: operator+(ptrdiff_t __n, const _Bit_iterator& __x) 1586: { return __x + __n; } 1586: 1586: struct _Bit_const_iterator : public _Bit_iterator_base 1586: { 1586: typedef bool reference; 1586: typedef bool const_reference; 1586: typedef const bool* pointer; 1586: typedef _Bit_const_iterator const_iterator; 1586: 1586: _Bit_const_iterator() : _Bit_iterator_base(0, 0) { } 1586: 1586: _Bit_const_iterator(_Bit_type * __x, unsigned int __y) 1586: : _Bit_iterator_base(__x, __y) { } 1586: 1586: _Bit_const_iterator(const _Bit_iterator& __x) 1586: : _Bit_iterator_base(__x._M_p, __x._M_offset) { } 1586: 1586: _Bit_iterator 1586: _M_const_cast() const 1586: { return _Bit_iterator(_M_p, _M_offset); } 1586: 1586: const_reference 1586: operator*() const 1586: { return _Bit_reference(_M_p, 1UL << _M_offset); } 1586: 1586: const_iterator& 1586: operator++() 1586: { 1586: _M_bump_up(); 1586: return *this; 1586: } 1586: 1586: const_iterator 1586: operator++(int) 1586: { 1586: const_iterator __tmp = *this; 1586: _M_bump_up(); 1586: return __tmp; 1586: } 1586: 1586: const_iterator& 1586: operator--() 1586: { 1586: _M_bump_down(); 1586: return *this; 1586: } 1586: 1586: const_iterator 1586: operator--(int) 1586: { 1586: const_iterator __tmp = *this; 1586: _M_bump_down(); 1586: return __tmp; 1586: } 1586: 1586: const_iterator& 1586: operator+=(difference_type __i) 1586: { 1586: _M_incr(__i); 1586: return *this; 1586: } 1586: 1586: const_iterator& 1586: operator-=(difference_type __i) 1586: { 1586: *this += -__i; 1586: return *this; 1586: } 1586: 1586: const_iterator 1586: operator+(difference_type __i) const 1586: { 1586: const_iterator __tmp = *this; 1586: return __tmp += __i; 1586: } 1586: 1586: const_iterator 1586: operator-(difference_type __i) const 1586: { 1586: const_iterator __tmp = *this; 1586: return __tmp -= __i; 1586: } 1586: 1586: const_reference 1586: operator[](difference_type __i) const 1586: { return *(*this + __i); } 1586: }; 1586: 1586: inline _Bit_const_iterator 1586: operator+(ptrdiff_t __n, const _Bit_const_iterator& __x) 1586: { return __x + __n; } 1586: 1586: inline void 1586: __fill_bvector(_Bit_type * __v, 1586: unsigned int __first, unsigned int __last, bool __x) 1586: { 1586: const _Bit_type __fmask = ~0ul << __first; 1586: const _Bit_type __lmask = ~0ul >> (_S_word_bit - __last); 1586: const _Bit_type __mask = __fmask & __lmask; 1586: 1586: if (__x) 1586: *__v |= __mask; 1586: else 1586: *__v &= ~__mask; 1586: } 1586: 1586: inline void 1586: fill(_Bit_iterator __first, _Bit_iterator __last, const bool& __x) 1586: { 1586: if (__first._M_p != __last._M_p) 1586: { 1586: _Bit_type* __first_p = __first._M_p; 1586: if (__first._M_offset != 0) 1586: __fill_bvector(__first_p++, __first._M_offset, _S_word_bit, __x); 1586: 1586: __builtin_memset(__first_p, __x ? ~0 : 0, 1586: (__last._M_p - __first_p) * sizeof(_Bit_type)); 1586: 1586: if (__last._M_offset != 0) 1586: __fill_bvector(__last._M_p, 0, __last._M_offset, __x); 1586: } 1586: else if (__first._M_offset != __last._M_offset) 1586: __fill_bvector(__first._M_p, __first._M_offset, __last._M_offset, __x); 1586: } 1586: 1586: template 1586: struct _Bvector_base 1586: { 1586: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 1586: rebind<_Bit_type>::other _Bit_alloc_type; 1586: typedef typename __gnu_cxx::__alloc_traits<_Bit_alloc_type> 1586: _Bit_alloc_traits; 1586: typedef typename _Bit_alloc_traits::pointer _Bit_pointer; 1586: 1586: struct _Bvector_impl_data 1586: { 1586: _Bit_iterator _M_start; 1586: _Bit_iterator _M_finish; 1586: _Bit_pointer _M_end_of_storage; 1586: 1586: _Bvector_impl_data() noexcept 1586: : _M_start(), _M_finish(), _M_end_of_storage() 1586: { } 1586: 1586: 1586: _Bvector_impl_data(_Bvector_impl_data&& __x) noexcept 1586: : _M_start(__x._M_start), _M_finish(__x._M_finish) 1586: , _M_end_of_storage(__x._M_end_of_storage) 1586: { __x._M_reset(); } 1586: 1586: void 1586: _M_move_data(_Bvector_impl_data&& __x) noexcept 1586: { 1586: this->_M_start = __x._M_start; 1586: this->_M_finish = __x._M_finish; 1586: this->_M_end_of_storage = __x._M_end_of_storage; 1586: __x._M_reset(); 1586: } 1586: 1586: 1586: void 1586: _M_reset() noexcept 1586: { 1586: _M_start = _M_finish = _Bit_iterator(); 1586: _M_end_of_storage = _Bit_pointer(); 1586: } 1586: }; 1586: 1586: struct _Bvector_impl 1586: : public _Bit_alloc_type, public _Bvector_impl_data 1586: { 1586: public: 1586: _Bvector_impl() noexcept(is_nothrow_default_constructible<_Bit_alloc_type>::value) 1586: 1586: : _Bit_alloc_type() 1586: { } 1586: 1586: _Bvector_impl(const _Bit_alloc_type& __a) noexcept 1586: : _Bit_alloc_type(__a) 1586: { } 1586: 1586: 1586: _Bvector_impl(_Bvector_impl&&) = default; 1586: 1586: 1586: _Bit_type* 1586: _M_end_addr() const noexcept 1586: { 1586: if (this->_M_end_of_storage) 1586: return std::__addressof(this->_M_end_of_storage[-1]) + 1; 1586: return 0; 1586: } 1586: }; 1586: 1586: public: 1586: typedef _Alloc allocator_type; 1586: 1586: _Bit_alloc_type& 1586: _M_get_Bit_allocator() noexcept 1586: { return this->_M_impl; } 1586: 1586: const _Bit_alloc_type& 1586: _M_get_Bit_allocator() const noexcept 1586: { return this->_M_impl; } 1586: 1586: allocator_type 1586: get_allocator() const noexcept 1586: { return allocator_type(_M_get_Bit_allocator()); } 1586: 1586: 1586: _Bvector_base() = default; 1586: 1586: 1586: 1586: 1586: _Bvector_base(const allocator_type& __a) 1586: : _M_impl(__a) { } 1586: 1586: 1586: _Bvector_base(_Bvector_base&&) = default; 1586: 1586: 1586: ~_Bvector_base() 1586: { this->_M_deallocate(); } 1586: 1586: protected: 1586: _Bvector_impl _M_impl; 1586: 1586: _Bit_pointer 1586: _M_allocate(size_t __n) 1586: { return _Bit_alloc_traits::allocate(_M_impl, _S_nword(__n)); } 1586: 1586: void 1586: _M_deallocate() 1586: { 1586: if (_M_impl._M_start._M_p) 1586: { 1586: const size_t __n = _M_impl._M_end_addr() - _M_impl._M_start._M_p; 1586: _Bit_alloc_traits::deallocate(_M_impl, 1586: _M_impl._M_end_of_storage - __n, 1586: __n); 1586: _M_impl._M_reset(); 1586: } 1586: } 1586: 1586: 1586: void 1586: _M_move_data(_Bvector_base&& __x) noexcept 1586: { _M_impl._M_move_data(std::move(__x._M_impl)); } 1586: 1586: 1586: static size_t 1586: _S_nword(size_t __n) 1586: { return (__n + int(_S_word_bit) - 1) / int(_S_word_bit); } 1586: }; 1586: 1586: 1586: 1586: } 1586: 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: # 591 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_bvector.h" 3 1586: template 1586: class vector : protected _Bvector_base<_Alloc> 1586: { 1586: typedef _Bvector_base<_Alloc> _Base; 1586: typedef typename _Base::_Bit_pointer _Bit_pointer; 1586: typedef typename _Base::_Bit_alloc_traits _Bit_alloc_traits; 1586: 1586: 1586: friend struct std::hash; 1586: 1586: 1586: public: 1586: typedef bool value_type; 1586: typedef size_t size_type; 1586: typedef ptrdiff_t difference_type; 1586: typedef _Bit_reference reference; 1586: typedef bool const_reference; 1586: typedef _Bit_reference* pointer; 1586: typedef const bool* const_pointer; 1586: typedef _Bit_iterator iterator; 1586: typedef _Bit_const_iterator const_iterator; 1586: typedef std::reverse_iterator const_reverse_iterator; 1586: typedef std::reverse_iterator reverse_iterator; 1586: typedef _Alloc allocator_type; 1586: 1586: allocator_type 1586: get_allocator() const 1586: { return _Base::get_allocator(); } 1586: 1586: protected: 1586: using _Base::_M_allocate; 1586: using _Base::_M_deallocate; 1586: using _Base::_S_nword; 1586: using _Base::_M_get_Bit_allocator; 1586: 1586: public: 1586: 1586: vector() = default; 1586: 1586: 1586: 1586: 1586: explicit 1586: vector(const allocator_type& __a) 1586: : _Base(__a) { } 1586: 1586: 1586: explicit 1586: vector(size_type __n, const allocator_type& __a = allocator_type()) 1586: : vector(__n, false, __a) 1586: { } 1586: 1586: vector(size_type __n, const bool& __value, 1586: const allocator_type& __a = allocator_type()) 1586: 1586: 1586: 1586: 1586: 1586: : _Base(__a) 1586: { 1586: _M_initialize(__n); 1586: _M_initialize_value(__value); 1586: } 1586: 1586: vector(const vector& __x) 1586: : _Base(_Bit_alloc_traits::_S_select_on_copy(__x._M_get_Bit_allocator())) 1586: { 1586: _M_initialize(__x.size()); 1586: _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); 1586: } 1586: 1586: 1586: vector(vector&&) = default; 1586: 1586: vector(vector&& __x, const allocator_type& __a) 1586: noexcept(_Bit_alloc_traits::_S_always_equal()) 1586: : _Base(__a) 1586: { 1586: if (__x.get_allocator() == __a) 1586: this->_M_move_data(std::move(__x)); 1586: else 1586: { 1586: _M_initialize(__x.size()); 1586: _M_copy_aligned(__x.begin(), __x.end(), begin()); 1586: __x.clear(); 1586: } 1586: } 1586: 1586: vector(const vector& __x, const allocator_type& __a) 1586: : _Base(__a) 1586: { 1586: _M_initialize(__x.size()); 1586: _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); 1586: } 1586: 1586: vector(initializer_list __l, 1586: const allocator_type& __a = allocator_type()) 1586: : _Base(__a) 1586: { 1586: _M_initialize_range(__l.begin(), __l.end(), 1586: random_access_iterator_tag()); 1586: } 1586: 1586: 1586: 1586: template> 1586: vector(_InputIterator __first, _InputIterator __last, 1586: const allocator_type& __a = allocator_type()) 1586: : _Base(__a) 1586: { _M_initialize_dispatch(__first, __last, __false_type()); } 1586: # 714 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_bvector.h" 3 1586: ~vector() noexcept { } 1586: 1586: vector& 1586: operator=(const vector& __x) 1586: { 1586: if (&__x == this) 1586: return *this; 1586: 1586: if (_Bit_alloc_traits::_S_propagate_on_copy_assign()) 1586: { 1586: if (this->_M_get_Bit_allocator() != __x._M_get_Bit_allocator()) 1586: { 1586: this->_M_deallocate(); 1586: std::__alloc_on_copy(_M_get_Bit_allocator(), 1586: __x._M_get_Bit_allocator()); 1586: _M_initialize(__x.size()); 1586: } 1586: else 1586: std::__alloc_on_copy(_M_get_Bit_allocator(), 1586: __x._M_get_Bit_allocator()); 1586: } 1586: 1586: if (__x.size() > capacity()) 1586: { 1586: this->_M_deallocate(); 1586: _M_initialize(__x.size()); 1586: } 1586: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 1586: begin()); 1586: return *this; 1586: } 1586: 1586: 1586: vector& 1586: operator=(vector&& __x) noexcept(_Bit_alloc_traits::_S_nothrow_move()) 1586: { 1586: if (_Bit_alloc_traits::_S_propagate_on_move_assign() 1586: || this->_M_get_Bit_allocator() == __x._M_get_Bit_allocator()) 1586: { 1586: this->_M_deallocate(); 1586: this->_M_move_data(std::move(__x)); 1586: std::__alloc_on_move(_M_get_Bit_allocator(), 1586: __x._M_get_Bit_allocator()); 1586: } 1586: else 1586: { 1586: if (__x.size() > capacity()) 1586: { 1586: this->_M_deallocate(); 1586: _M_initialize(__x.size()); 1586: } 1586: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 1586: begin()); 1586: __x.clear(); 1586: } 1586: return *this; 1586: } 1586: 1586: vector& 1586: operator=(initializer_list __l) 1586: { 1586: this->assign (__l.begin(), __l.end()); 1586: return *this; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: void 1586: assign(size_type __n, const bool& __x) 1586: { _M_fill_assign(__n, __x); } 1586: 1586: 1586: template> 1586: void 1586: assign(_InputIterator __first, _InputIterator __last) 1586: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 1586: # 805 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_bvector.h" 3 1586: void 1586: assign(initializer_list __l) 1586: { _M_assign_aux(__l.begin(), __l.end(), random_access_iterator_tag()); } 1586: 1586: 1586: iterator 1586: begin() noexcept 1586: { return iterator(this->_M_impl._M_start._M_p, 0); } 1586: 1586: const_iterator 1586: begin() const noexcept 1586: { return const_iterator(this->_M_impl._M_start._M_p, 0); } 1586: 1586: iterator 1586: end() noexcept 1586: { return this->_M_impl._M_finish; } 1586: 1586: const_iterator 1586: end() const noexcept 1586: { return this->_M_impl._M_finish; } 1586: 1586: reverse_iterator 1586: rbegin() noexcept 1586: { return reverse_iterator(end()); } 1586: 1586: const_reverse_iterator 1586: rbegin() const noexcept 1586: { return const_reverse_iterator(end()); } 1586: 1586: reverse_iterator 1586: rend() noexcept 1586: { return reverse_iterator(begin()); } 1586: 1586: const_reverse_iterator 1586: rend() const noexcept 1586: { return const_reverse_iterator(begin()); } 1586: 1586: 1586: const_iterator 1586: cbegin() const noexcept 1586: { return const_iterator(this->_M_impl._M_start._M_p, 0); } 1586: 1586: const_iterator 1586: cend() const noexcept 1586: { return this->_M_impl._M_finish; } 1586: 1586: const_reverse_iterator 1586: crbegin() const noexcept 1586: { return const_reverse_iterator(end()); } 1586: 1586: const_reverse_iterator 1586: crend() const noexcept 1586: { return const_reverse_iterator(begin()); } 1586: 1586: 1586: size_type 1586: size() const noexcept 1586: { return size_type(end() - begin()); } 1586: 1586: size_type 1586: max_size() const noexcept 1586: { 1586: const size_type __isize = 1586: __gnu_cxx::__numeric_traits::__max 1586: - int(_S_word_bit) + 1; 1586: const size_type __asize 1586: = _Bit_alloc_traits::max_size(_M_get_Bit_allocator()); 1586: return (__asize <= __isize / int(_S_word_bit) 1586: ? __asize * int(_S_word_bit) : __isize); 1586: } 1586: 1586: size_type 1586: capacity() const noexcept 1586: { return size_type(const_iterator(this->_M_impl._M_end_addr(), 0) 1586: - begin()); } 1586: 1586: bool 1586: empty() const noexcept 1586: { return begin() == end(); } 1586: 1586: reference 1586: operator[](size_type __n) 1586: { 1586: return *iterator(this->_M_impl._M_start._M_p 1586: + __n / int(_S_word_bit), __n % int(_S_word_bit)); 1586: } 1586: 1586: const_reference 1586: operator[](size_type __n) const 1586: { 1586: return *const_iterator(this->_M_impl._M_start._M_p 1586: + __n / int(_S_word_bit), __n % int(_S_word_bit)); 1586: } 1586: 1586: protected: 1586: void 1586: _M_range_check(size_type __n) const 1586: { 1586: if (__n >= this->size()) 1586: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 1586: 1586: , 1586: __n, this->size()); 1586: } 1586: 1586: public: 1586: reference 1586: at(size_type __n) 1586: { _M_range_check(__n); return (*this)[__n]; } 1586: 1586: const_reference 1586: at(size_type __n) const 1586: { _M_range_check(__n); return (*this)[__n]; } 1586: 1586: void 1586: reserve(size_type __n) 1586: { 1586: if (__n > max_size()) 1586: __throw_length_error(("vector::reserve")); 1586: if (capacity() < __n) 1586: _M_reallocate(__n); 1586: } 1586: 1586: reference 1586: front() 1586: { return *begin(); } 1586: 1586: const_reference 1586: front() const 1586: { return *begin(); } 1586: 1586: reference 1586: back() 1586: { return *(end() - 1); } 1586: 1586: const_reference 1586: back() const 1586: { return *(end() - 1); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: void 1586: data() noexcept { } 1586: 1586: void 1586: push_back(bool __x) 1586: { 1586: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 1586: *this->_M_impl._M_finish++ = __x; 1586: else 1586: _M_insert_aux(end(), __x); 1586: } 1586: 1586: void 1586: swap(vector& __x) noexcept 1586: { 1586: std::swap(this->_M_impl._M_start, __x._M_impl._M_start); 1586: std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); 1586: std::swap(this->_M_impl._M_end_of_storage, 1586: __x._M_impl._M_end_of_storage); 1586: _Bit_alloc_traits::_S_on_swap(_M_get_Bit_allocator(), 1586: __x._M_get_Bit_allocator()); 1586: } 1586: 1586: 1586: static void 1586: swap(reference __x, reference __y) noexcept 1586: { 1586: bool __tmp = __x; 1586: __x = __y; 1586: __y = __tmp; 1586: } 1586: 1586: iterator 1586: 1586: insert(const_iterator __position, const bool& __x = bool()) 1586: 1586: 1586: 1586: { 1586: const difference_type __n = __position - begin(); 1586: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr() 1586: && __position == end()) 1586: *this->_M_impl._M_finish++ = __x; 1586: else 1586: _M_insert_aux(__position._M_const_cast(), __x); 1586: return begin() + __n; 1586: } 1586: 1586: 1586: template> 1586: iterator 1586: insert(const_iterator __position, 1586: _InputIterator __first, _InputIterator __last) 1586: { 1586: difference_type __offset = __position - cbegin(); 1586: _M_insert_dispatch(__position._M_const_cast(), 1586: __first, __last, __false_type()); 1586: return begin() + __offset; 1586: } 1586: # 1021 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_bvector.h" 3 1586: iterator 1586: insert(const_iterator __position, size_type __n, const bool& __x) 1586: { 1586: difference_type __offset = __position - cbegin(); 1586: _M_fill_insert(__position._M_const_cast(), __n, __x); 1586: return begin() + __offset; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: iterator 1586: insert(const_iterator __p, initializer_list __l) 1586: { return this->insert(__p, __l.begin(), __l.end()); } 1586: 1586: 1586: void 1586: pop_back() 1586: { --this->_M_impl._M_finish; } 1586: 1586: iterator 1586: 1586: erase(const_iterator __position) 1586: 1586: 1586: 1586: { return _M_erase(__position._M_const_cast()); } 1586: 1586: iterator 1586: 1586: erase(const_iterator __first, const_iterator __last) 1586: 1586: 1586: 1586: { return _M_erase(__first._M_const_cast(), __last._M_const_cast()); } 1586: 1586: void 1586: resize(size_type __new_size, bool __x = bool()) 1586: { 1586: if (__new_size < size()) 1586: _M_erase_at_end(begin() + difference_type(__new_size)); 1586: else 1586: insert(end(), __new_size - size(), __x); 1586: } 1586: 1586: 1586: void 1586: shrink_to_fit() 1586: { _M_shrink_to_fit(); } 1586: 1586: 1586: void 1586: flip() noexcept 1586: { 1586: _Bit_type * const __end = this->_M_impl._M_end_addr(); 1586: for (_Bit_type * __p = this->_M_impl._M_start._M_p; __p != __end; ++__p) 1586: *__p = ~*__p; 1586: } 1586: 1586: void 1586: clear() noexcept 1586: { _M_erase_at_end(begin()); } 1586: 1586: 1586: template 1586: 1586: 1586: 1586: void 1586: 1586: emplace_back(_Args&&... __args) 1586: { 1586: push_back(bool(__args...)); 1586: 1586: 1586: 1586: } 1586: 1586: template 1586: iterator 1586: emplace(const_iterator __pos, _Args&&... __args) 1586: { return insert(__pos, bool(__args...)); } 1586: 1586: 1586: protected: 1586: 1586: iterator 1586: _M_copy_aligned(const_iterator __first, const_iterator __last, 1586: iterator __result) 1586: { 1586: _Bit_type* __q = std::copy(__first._M_p, __last._M_p, __result._M_p); 1586: return std::copy(const_iterator(__last._M_p, 0), __last, 1586: iterator(__q, 0)); 1586: } 1586: 1586: void 1586: _M_initialize(size_type __n) 1586: { 1586: if (__n) 1586: { 1586: _Bit_pointer __q = this->_M_allocate(__n); 1586: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 1586: this->_M_impl._M_start = iterator(std::__addressof(*__q), 0); 1586: } 1586: else 1586: { 1586: this->_M_impl._M_end_of_storage = _Bit_pointer(); 1586: this->_M_impl._M_start = iterator(0, 0); 1586: } 1586: this->_M_impl._M_finish = this->_M_impl._M_start + difference_type(__n); 1586: 1586: } 1586: 1586: void 1586: _M_initialize_value(bool __x) 1586: { 1586: if (_Bit_type* __p = this->_M_impl._M_start._M_p) 1586: __builtin_memset(__p, __x ? ~0 : 0, 1586: (this->_M_impl._M_end_addr() - __p) 1586: * sizeof(_Bit_type)); 1586: } 1586: 1586: void 1586: _M_reallocate(size_type __n); 1586: 1586: 1586: bool 1586: _M_shrink_to_fit(); 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: void 1586: _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) 1586: { 1586: _M_initialize(static_cast(__n)); 1586: _M_initialize_value(__x); 1586: } 1586: 1586: template 1586: void 1586: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 1586: __false_type) 1586: { _M_initialize_range(__first, __last, 1586: std::__iterator_category(__first)); } 1586: 1586: template 1586: void 1586: _M_initialize_range(_InputIterator __first, _InputIterator __last, 1586: std::input_iterator_tag) 1586: { 1586: for (; __first != __last; ++__first) 1586: push_back(*__first); 1586: } 1586: 1586: template 1586: void 1586: _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, 1586: std::forward_iterator_tag) 1586: { 1586: const size_type __n = std::distance(__first, __last); 1586: _M_initialize(__n); 1586: std::copy(__first, __last, this->_M_impl._M_start); 1586: } 1586: # 1207 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_bvector.h" 3 1586: void 1586: _M_fill_assign(size_t __n, bool __x) 1586: { 1586: if (__n > size()) 1586: { 1586: _M_initialize_value(__x); 1586: insert(end(), __n - size(), __x); 1586: } 1586: else 1586: { 1586: _M_erase_at_end(begin() + __n); 1586: _M_initialize_value(__x); 1586: } 1586: } 1586: 1586: template 1586: void 1586: _M_assign_aux(_InputIterator __first, _InputIterator __last, 1586: std::input_iterator_tag) 1586: { 1586: iterator __cur = begin(); 1586: for (; __first != __last && __cur != end(); ++__cur, (void)++__first) 1586: *__cur = *__first; 1586: if (__first == __last) 1586: _M_erase_at_end(__cur); 1586: else 1586: insert(end(), __first, __last); 1586: } 1586: 1586: template 1586: void 1586: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 1586: std::forward_iterator_tag) 1586: { 1586: const size_type __len = std::distance(__first, __last); 1586: if (__len < size()) 1586: _M_erase_at_end(std::copy(__first, __last, begin())); 1586: else 1586: { 1586: _ForwardIterator __mid = __first; 1586: std::advance(__mid, size()); 1586: std::copy(__first, __mid, begin()); 1586: insert(end(), __mid, __last); 1586: } 1586: } 1586: 1586: 1586: 1586: 1586: 1586: template 1586: void 1586: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, 1586: __true_type) 1586: { _M_fill_insert(__pos, __n, __x); } 1586: 1586: template 1586: void 1586: _M_insert_dispatch(iterator __pos, 1586: _InputIterator __first, _InputIterator __last, 1586: __false_type) 1586: { _M_insert_range(__pos, __first, __last, 1586: std::__iterator_category(__first)); } 1586: 1586: void 1586: _M_fill_insert(iterator __position, size_type __n, bool __x); 1586: 1586: template 1586: void 1586: _M_insert_range(iterator __pos, _InputIterator __first, 1586: _InputIterator __last, std::input_iterator_tag) 1586: { 1586: for (; __first != __last; ++__first) 1586: { 1586: __pos = insert(__pos, *__first); 1586: ++__pos; 1586: } 1586: } 1586: 1586: template 1586: void 1586: _M_insert_range(iterator __position, _ForwardIterator __first, 1586: _ForwardIterator __last, std::forward_iterator_tag); 1586: 1586: void 1586: _M_insert_aux(iterator __position, bool __x); 1586: 1586: size_type 1586: _M_check_len(size_type __n, const char* __s) const 1586: { 1586: if (max_size() - size() < __n) 1586: __throw_length_error((__s)); 1586: 1586: const size_type __len = size() + std::max(size(), __n); 1586: return (__len < size() || __len > max_size()) ? max_size() : __len; 1586: } 1586: 1586: void 1586: _M_erase_at_end(iterator __pos) 1586: { this->_M_impl._M_finish = __pos; } 1586: 1586: iterator 1586: _M_erase(iterator __pos); 1586: 1586: iterator 1586: _M_erase(iterator __first, iterator __last); 1586: }; 1586: 1586: 1586: 1586: } 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: template 1586: struct hash> 1586: : public __hash_base> 1586: { 1586: size_t 1586: operator()(const std::vector&) const noexcept; 1586: }; 1586: 1586: 1586: } 1586: # 69 "/usr/mipsel-linux-gnu/include/c++/9/vector" 2 3 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/vector.tcc" 1 3 1586: # 59 "/usr/mipsel-linux-gnu/include/c++/9/bits/vector.tcc" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: template 1586: void 1586: vector<_Tp, _Alloc>:: 1586: reserve(size_type __n) 1586: { 1586: if (__n > this->max_size()) 1586: __throw_length_error(("vector::reserve")); 1586: if (this->capacity() < __n) 1586: { 1586: const size_type __old_size = size(); 1586: pointer __tmp; 1586: 1586: if (_S_use_relocate()) 1586: { 1586: __tmp = this->_M_allocate(__n); 1586: _S_relocate(this->_M_impl._M_start, this->_M_impl._M_finish, 1586: __tmp, _M_get_Tp_allocator()); 1586: } 1586: else 1586: 1586: { 1586: __tmp = _M_allocate_and_copy(__n, 1586: std::__make_move_if_noexcept_iterator(this->_M_impl._M_start), 1586: std::__make_move_if_noexcept_iterator(this->_M_impl._M_finish)); 1586: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 1586: _M_get_Tp_allocator()); 1586: } 1586: ; 1586: _M_deallocate(this->_M_impl._M_start, 1586: this->_M_impl._M_end_of_storage 1586: - this->_M_impl._M_start); 1586: this->_M_impl._M_start = __tmp; 1586: this->_M_impl._M_finish = __tmp + __old_size; 1586: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 1586: } 1586: } 1586: 1586: 1586: template 1586: template 1586: 1586: 1586: 1586: void 1586: 1586: vector<_Tp, _Alloc>:: 1586: emplace_back(_Args&&... __args) 1586: { 1586: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 1586: { 1586: ; 1586: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 1586: std::forward<_Args>(__args)...); 1586: ++this->_M_impl._M_finish; 1586: ; 1586: } 1586: else 1586: _M_realloc_insert(end(), std::forward<_Args>(__args)...); 1586: 1586: 1586: 1586: } 1586: 1586: 1586: template 1586: typename vector<_Tp, _Alloc>::iterator 1586: vector<_Tp, _Alloc>:: 1586: 1586: insert(const_iterator __position, const value_type& __x) 1586: 1586: 1586: 1586: { 1586: const size_type __n = __position - begin(); 1586: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 1586: if (__position == end()) 1586: { 1586: ; 1586: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 1586: __x); 1586: ++this->_M_impl._M_finish; 1586: ; 1586: } 1586: else 1586: { 1586: 1586: const auto __pos = begin() + (__position - cbegin()); 1586: 1586: 1586: _Temporary_value __x_copy(this, __x); 1586: _M_insert_aux(__pos, std::move(__x_copy._M_val())); 1586: 1586: 1586: 1586: } 1586: else 1586: 1586: _M_realloc_insert(begin() + (__position - cbegin()), __x); 1586: 1586: 1586: 1586: 1586: return iterator(this->_M_impl._M_start + __n); 1586: } 1586: 1586: template 1586: typename vector<_Tp, _Alloc>::iterator 1586: vector<_Tp, _Alloc>:: 1586: _M_erase(iterator __position) 1586: { 1586: if (__position + 1 != end()) 1586: std::move(__position + 1, end(), __position); 1586: --this->_M_impl._M_finish; 1586: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 1586: ; 1586: return __position; 1586: } 1586: 1586: template 1586: typename vector<_Tp, _Alloc>::iterator 1586: vector<_Tp, _Alloc>:: 1586: _M_erase(iterator __first, iterator __last) 1586: { 1586: if (__first != __last) 1586: { 1586: if (__last != end()) 1586: std::move(__last, end(), __first); 1586: _M_erase_at_end(__first.base() + (end() - __last)); 1586: } 1586: return __first; 1586: } 1586: 1586: template 1586: vector<_Tp, _Alloc>& 1586: vector<_Tp, _Alloc>:: 1586: operator=(const vector<_Tp, _Alloc>& __x) 1586: { 1586: if (&__x != this) 1586: { 1586: ; 1586: 1586: if (_Alloc_traits::_S_propagate_on_copy_assign()) 1586: { 1586: if (!_Alloc_traits::_S_always_equal() 1586: && _M_get_Tp_allocator() != __x._M_get_Tp_allocator()) 1586: { 1586: 1586: this->clear(); 1586: _M_deallocate(this->_M_impl._M_start, 1586: this->_M_impl._M_end_of_storage 1586: - this->_M_impl._M_start); 1586: this->_M_impl._M_start = nullptr; 1586: this->_M_impl._M_finish = nullptr; 1586: this->_M_impl._M_end_of_storage = nullptr; 1586: } 1586: std::__alloc_on_copy(_M_get_Tp_allocator(), 1586: __x._M_get_Tp_allocator()); 1586: } 1586: 1586: const size_type __xlen = __x.size(); 1586: if (__xlen > capacity()) 1586: { 1586: pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), 1586: __x.end()); 1586: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 1586: _M_get_Tp_allocator()); 1586: _M_deallocate(this->_M_impl._M_start, 1586: this->_M_impl._M_end_of_storage 1586: - this->_M_impl._M_start); 1586: this->_M_impl._M_start = __tmp; 1586: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen; 1586: } 1586: else if (size() >= __xlen) 1586: { 1586: std::_Destroy(std::copy(__x.begin(), __x.end(), begin()), 1586: end(), _M_get_Tp_allocator()); 1586: } 1586: else 1586: { 1586: std::copy(__x._M_impl._M_start, __x._M_impl._M_start + size(), 1586: this->_M_impl._M_start); 1586: std::__uninitialized_copy_a(__x._M_impl._M_start + size(), 1586: __x._M_impl._M_finish, 1586: this->_M_impl._M_finish, 1586: _M_get_Tp_allocator()); 1586: } 1586: this->_M_impl._M_finish = this->_M_impl._M_start + __xlen; 1586: } 1586: return *this; 1586: } 1586: 1586: template 1586: void 1586: vector<_Tp, _Alloc>:: 1586: _M_fill_assign(size_t __n, const value_type& __val) 1586: { 1586: if (__n > capacity()) 1586: { 1586: vector __tmp(__n, __val, _M_get_Tp_allocator()); 1586: __tmp._M_impl._M_swap_data(this->_M_impl); 1586: } 1586: else if (__n > size()) 1586: { 1586: std::fill(begin(), end(), __val); 1586: const size_type __add = __n - size(); 1586: ; 1586: this->_M_impl._M_finish = 1586: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 1586: __add, __val, _M_get_Tp_allocator()); 1586: ; 1586: } 1586: else 1586: _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val)); 1586: } 1586: 1586: template 1586: template 1586: void 1586: vector<_Tp, _Alloc>:: 1586: _M_assign_aux(_InputIterator __first, _InputIterator __last, 1586: std::input_iterator_tag) 1586: { 1586: pointer __cur(this->_M_impl._M_start); 1586: for (; __first != __last && __cur != this->_M_impl._M_finish; 1586: ++__cur, (void)++__first) 1586: *__cur = *__first; 1586: if (__first == __last) 1586: _M_erase_at_end(__cur); 1586: else 1586: _M_range_insert(end(), __first, __last, 1586: std::__iterator_category(__first)); 1586: } 1586: 1586: template 1586: template 1586: void 1586: vector<_Tp, _Alloc>:: 1586: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 1586: std::forward_iterator_tag) 1586: { 1586: const size_type __len = std::distance(__first, __last); 1586: 1586: if (__len > capacity()) 1586: { 1586: _S_check_init_len(__len, _M_get_Tp_allocator()); 1586: pointer __tmp(_M_allocate_and_copy(__len, __first, __last)); 1586: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 1586: _M_get_Tp_allocator()); 1586: ; 1586: _M_deallocate(this->_M_impl._M_start, 1586: this->_M_impl._M_end_of_storage 1586: - this->_M_impl._M_start); 1586: this->_M_impl._M_start = __tmp; 1586: this->_M_impl._M_finish = this->_M_impl._M_start + __len; 1586: this->_M_impl._M_end_of_storage = this->_M_impl._M_finish; 1586: } 1586: else if (size() >= __len) 1586: _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start)); 1586: else 1586: { 1586: _ForwardIterator __mid = __first; 1586: std::advance(__mid, size()); 1586: std::copy(__first, __mid, this->_M_impl._M_start); 1586: const size_type __attribute__((__unused__)) __n = __len - size(); 1586: ; 1586: this->_M_impl._M_finish = 1586: std::__uninitialized_copy_a(__mid, __last, 1586: this->_M_impl._M_finish, 1586: _M_get_Tp_allocator()); 1586: ; 1586: } 1586: } 1586: 1586: 1586: template 1586: auto 1586: vector<_Tp, _Alloc>:: 1586: _M_insert_rval(const_iterator __position, value_type&& __v) -> iterator 1586: { 1586: const auto __n = __position - cbegin(); 1586: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 1586: if (__position == cend()) 1586: { 1586: ; 1586: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 1586: std::move(__v)); 1586: ++this->_M_impl._M_finish; 1586: ; 1586: } 1586: else 1586: _M_insert_aux(begin() + __n, std::move(__v)); 1586: else 1586: _M_realloc_insert(begin() + __n, std::move(__v)); 1586: 1586: return iterator(this->_M_impl._M_start + __n); 1586: } 1586: 1586: template 1586: template 1586: auto 1586: vector<_Tp, _Alloc>:: 1586: _M_emplace_aux(const_iterator __position, _Args&&... __args) 1586: -> iterator 1586: { 1586: const auto __n = __position - cbegin(); 1586: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 1586: if (__position == cend()) 1586: { 1586: ; 1586: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 1586: std::forward<_Args>(__args)...); 1586: ++this->_M_impl._M_finish; 1586: ; 1586: } 1586: else 1586: { 1586: 1586: 1586: 1586: _Temporary_value __tmp(this, std::forward<_Args>(__args)...); 1586: _M_insert_aux(begin() + __n, std::move(__tmp._M_val())); 1586: } 1586: else 1586: _M_realloc_insert(begin() + __n, std::forward<_Args>(__args)...); 1586: 1586: return iterator(this->_M_impl._M_start + __n); 1586: } 1586: 1586: template 1586: template 1586: void 1586: vector<_Tp, _Alloc>:: 1586: _M_insert_aux(iterator __position, _Arg&& __arg) 1586: 1586: 1586: 1586: 1586: 1586: 1586: { 1586: ; 1586: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 1586: std::move(*(this->_M_impl._M_finish - 1))); 1586: ++this->_M_impl._M_finish; 1586: ; 1586: 1586: 1586: 1586: std::move_backward(__position.base(), this->_M_impl._M_finish - 2, this->_M_impl._M_finish - 1) 1586: 1586: ; 1586: 1586: 1586: 1586: *__position = std::forward<_Arg>(__arg); 1586: 1586: } 1586: 1586: 1586: template 1586: template 1586: void 1586: vector<_Tp, _Alloc>:: 1586: _M_realloc_insert(iterator __position, _Args&&... __args) 1586: 1586: 1586: 1586: 1586: 1586: 1586: { 1586: const size_type __len = 1586: _M_check_len(size_type(1), "vector::_M_realloc_insert"); 1586: pointer __old_start = this->_M_impl._M_start; 1586: pointer __old_finish = this->_M_impl._M_finish; 1586: const size_type __elems_before = __position - begin(); 1586: pointer __new_start(this->_M_allocate(__len)); 1586: pointer __new_finish(__new_start); 1586: try 1586: { 1586: 1586: 1586: 1586: 1586: 1586: _Alloc_traits::construct(this->_M_impl, 1586: __new_start + __elems_before, 1586: 1586: std::forward<_Args>(__args)...); 1586: 1586: 1586: 1586: __new_finish = pointer(); 1586: 1586: 1586: if (_S_use_relocate()) 1586: { 1586: __new_finish = _S_relocate(__old_start, __position.base(), 1586: __new_start, _M_get_Tp_allocator()); 1586: 1586: ++__new_finish; 1586: 1586: __new_finish = _S_relocate(__position.base(), __old_finish, 1586: __new_finish, _M_get_Tp_allocator()); 1586: } 1586: else 1586: 1586: { 1586: __new_finish 1586: = std::__uninitialized_move_if_noexcept_a 1586: (__old_start, __position.base(), 1586: __new_start, _M_get_Tp_allocator()); 1586: 1586: ++__new_finish; 1586: 1586: __new_finish 1586: = std::__uninitialized_move_if_noexcept_a 1586: (__position.base(), __old_finish, 1586: __new_finish, _M_get_Tp_allocator()); 1586: } 1586: } 1586: catch(...) 1586: { 1586: if (!__new_finish) 1586: _Alloc_traits::destroy(this->_M_impl, 1586: __new_start + __elems_before); 1586: else 1586: std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); 1586: _M_deallocate(__new_start, __len); 1586: throw; 1586: } 1586: 1586: if (!_S_use_relocate()) 1586: 1586: std::_Destroy(__old_start, __old_finish, _M_get_Tp_allocator()); 1586: ; 1586: _M_deallocate(__old_start, 1586: this->_M_impl._M_end_of_storage - __old_start); 1586: this->_M_impl._M_start = __new_start; 1586: this->_M_impl._M_finish = __new_finish; 1586: this->_M_impl._M_end_of_storage = __new_start + __len; 1586: } 1586: 1586: template 1586: void 1586: vector<_Tp, _Alloc>:: 1586: _M_fill_insert(iterator __position, size_type __n, const value_type& __x) 1586: { 1586: if (__n != 0) 1586: { 1586: if (size_type(this->_M_impl._M_end_of_storage 1586: - this->_M_impl._M_finish) >= __n) 1586: { 1586: 1586: 1586: 1586: _Temporary_value __tmp(this, __x); 1586: value_type& __x_copy = __tmp._M_val(); 1586: 1586: const size_type __elems_after = end() - __position; 1586: pointer __old_finish(this->_M_impl._M_finish); 1586: if (__elems_after > __n) 1586: { 1586: ; 1586: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 1586: this->_M_impl._M_finish, 1586: this->_M_impl._M_finish, 1586: _M_get_Tp_allocator()); 1586: this->_M_impl._M_finish += __n; 1586: ; 1586: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 1586: ; 1586: std::fill(__position.base(), __position.base() + __n, 1586: __x_copy); 1586: } 1586: else 1586: { 1586: ; 1586: this->_M_impl._M_finish = 1586: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 1586: __n - __elems_after, 1586: __x_copy, 1586: _M_get_Tp_allocator()); 1586: ; 1586: std::__uninitialized_move_a(__position.base(), __old_finish, 1586: this->_M_impl._M_finish, 1586: _M_get_Tp_allocator()); 1586: this->_M_impl._M_finish += __elems_after; 1586: ; 1586: std::fill(__position.base(), __old_finish, __x_copy); 1586: } 1586: } 1586: else 1586: { 1586: const size_type __len = 1586: _M_check_len(__n, "vector::_M_fill_insert"); 1586: const size_type __elems_before = __position - begin(); 1586: pointer __new_start(this->_M_allocate(__len)); 1586: pointer __new_finish(__new_start); 1586: try 1586: { 1586: 1586: std::__uninitialized_fill_n_a(__new_start + __elems_before, 1586: __n, __x, 1586: _M_get_Tp_allocator()); 1586: __new_finish = pointer(); 1586: 1586: __new_finish 1586: = std::__uninitialized_move_if_noexcept_a 1586: (this->_M_impl._M_start, __position.base(), 1586: __new_start, _M_get_Tp_allocator()); 1586: 1586: __new_finish += __n; 1586: 1586: __new_finish 1586: = std::__uninitialized_move_if_noexcept_a 1586: (__position.base(), this->_M_impl._M_finish, 1586: __new_finish, _M_get_Tp_allocator()); 1586: } 1586: catch(...) 1586: { 1586: if (!__new_finish) 1586: std::_Destroy(__new_start + __elems_before, 1586: __new_start + __elems_before + __n, 1586: _M_get_Tp_allocator()); 1586: else 1586: std::_Destroy(__new_start, __new_finish, 1586: _M_get_Tp_allocator()); 1586: _M_deallocate(__new_start, __len); 1586: throw; 1586: } 1586: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 1586: _M_get_Tp_allocator()); 1586: ; 1586: _M_deallocate(this->_M_impl._M_start, 1586: this->_M_impl._M_end_of_storage 1586: - this->_M_impl._M_start); 1586: this->_M_impl._M_start = __new_start; 1586: this->_M_impl._M_finish = __new_finish; 1586: this->_M_impl._M_end_of_storage = __new_start + __len; 1586: } 1586: } 1586: } 1586: 1586: 1586: template 1586: void 1586: vector<_Tp, _Alloc>:: 1586: _M_default_append(size_type __n) 1586: { 1586: if (__n != 0) 1586: { 1586: const size_type __size = size(); 1586: size_type __navail = size_type(this->_M_impl._M_end_of_storage 1586: - this->_M_impl._M_finish); 1586: 1586: if (__size > max_size() || __navail > max_size() - __size) 1586: __builtin_unreachable(); 1586: 1586: if (__navail >= __n) 1586: { 1586: ; 1586: this->_M_impl._M_finish = 1586: std::__uninitialized_default_n_a(this->_M_impl._M_finish, 1586: __n, _M_get_Tp_allocator()); 1586: ; 1586: } 1586: else 1586: { 1586: const size_type __len = 1586: _M_check_len(__n, "vector::_M_default_append"); 1586: pointer __new_start(this->_M_allocate(__len)); 1586: if (_S_use_relocate()) 1586: { 1586: try 1586: { 1586: std::__uninitialized_default_n_a(__new_start + __size, 1586: __n, _M_get_Tp_allocator()); 1586: } 1586: catch(...) 1586: { 1586: _M_deallocate(__new_start, __len); 1586: throw; 1586: } 1586: _S_relocate(this->_M_impl._M_start, this->_M_impl._M_finish, 1586: __new_start, _M_get_Tp_allocator()); 1586: } 1586: else 1586: { 1586: pointer __destroy_from = pointer(); 1586: try 1586: { 1586: std::__uninitialized_default_n_a(__new_start + __size, 1586: __n, _M_get_Tp_allocator()); 1586: __destroy_from = __new_start + __size; 1586: std::__uninitialized_move_if_noexcept_a( 1586: this->_M_impl._M_start, this->_M_impl._M_finish, 1586: __new_start, _M_get_Tp_allocator()); 1586: } 1586: catch(...) 1586: { 1586: if (__destroy_from) 1586: std::_Destroy(__destroy_from, __destroy_from + __n, 1586: _M_get_Tp_allocator()); 1586: _M_deallocate(__new_start, __len); 1586: throw; 1586: } 1586: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 1586: _M_get_Tp_allocator()); 1586: } 1586: ; 1586: _M_deallocate(this->_M_impl._M_start, 1586: this->_M_impl._M_end_of_storage 1586: - this->_M_impl._M_start); 1586: this->_M_impl._M_start = __new_start; 1586: this->_M_impl._M_finish = __new_start + __size + __n; 1586: this->_M_impl._M_end_of_storage = __new_start + __len; 1586: } 1586: } 1586: } 1586: 1586: template 1586: bool 1586: vector<_Tp, _Alloc>:: 1586: _M_shrink_to_fit() 1586: { 1586: if (capacity() == size()) 1586: return false; 1586: ; 1586: return std::__shrink_to_fit_aux::_S_do_it(*this); 1586: } 1586: 1586: 1586: template 1586: template 1586: void 1586: vector<_Tp, _Alloc>:: 1586: _M_range_insert(iterator __pos, _InputIterator __first, 1586: _InputIterator __last, std::input_iterator_tag) 1586: { 1586: if (__pos == end()) 1586: { 1586: for (; __first != __last; ++__first) 1586: insert(end(), *__first); 1586: } 1586: else if (__first != __last) 1586: { 1586: vector __tmp(__first, __last, _M_get_Tp_allocator()); 1586: insert(__pos, 1586: std::make_move_iterator(__tmp.begin()), 1586: std::make_move_iterator(__tmp.end())); 1586: } 1586: } 1586: 1586: template 1586: template 1586: void 1586: vector<_Tp, _Alloc>:: 1586: _M_range_insert(iterator __position, _ForwardIterator __first, 1586: _ForwardIterator __last, std::forward_iterator_tag) 1586: { 1586: if (__first != __last) 1586: { 1586: const size_type __n = std::distance(__first, __last); 1586: if (size_type(this->_M_impl._M_end_of_storage 1586: - this->_M_impl._M_finish) >= __n) 1586: { 1586: const size_type __elems_after = end() - __position; 1586: pointer __old_finish(this->_M_impl._M_finish); 1586: if (__elems_after > __n) 1586: { 1586: ; 1586: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 1586: this->_M_impl._M_finish, 1586: this->_M_impl._M_finish, 1586: _M_get_Tp_allocator()); 1586: this->_M_impl._M_finish += __n; 1586: ; 1586: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 1586: ; 1586: std::copy(__first, __last, __position); 1586: } 1586: else 1586: { 1586: _ForwardIterator __mid = __first; 1586: std::advance(__mid, __elems_after); 1586: ; 1586: std::__uninitialized_copy_a(__mid, __last, 1586: this->_M_impl._M_finish, 1586: _M_get_Tp_allocator()); 1586: this->_M_impl._M_finish += __n - __elems_after; 1586: ; 1586: std::__uninitialized_move_a(__position.base(), 1586: __old_finish, 1586: this->_M_impl._M_finish, 1586: _M_get_Tp_allocator()); 1586: this->_M_impl._M_finish += __elems_after; 1586: ; 1586: std::copy(__first, __mid, __position); 1586: } 1586: } 1586: else 1586: { 1586: const size_type __len = 1586: _M_check_len(__n, "vector::_M_range_insert"); 1586: pointer __new_start(this->_M_allocate(__len)); 1586: pointer __new_finish(__new_start); 1586: try 1586: { 1586: __new_finish 1586: = std::__uninitialized_move_if_noexcept_a 1586: (this->_M_impl._M_start, __position.base(), 1586: __new_start, _M_get_Tp_allocator()); 1586: __new_finish 1586: = std::__uninitialized_copy_a(__first, __last, 1586: __new_finish, 1586: _M_get_Tp_allocator()); 1586: __new_finish 1586: = std::__uninitialized_move_if_noexcept_a 1586: (__position.base(), this->_M_impl._M_finish, 1586: __new_finish, _M_get_Tp_allocator()); 1586: } 1586: catch(...) 1586: { 1586: std::_Destroy(__new_start, __new_finish, 1586: _M_get_Tp_allocator()); 1586: _M_deallocate(__new_start, __len); 1586: throw; 1586: } 1586: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 1586: _M_get_Tp_allocator()); 1586: ; 1586: _M_deallocate(this->_M_impl._M_start, 1586: this->_M_impl._M_end_of_storage 1586: - this->_M_impl._M_start); 1586: this->_M_impl._M_start = __new_start; 1586: this->_M_impl._M_finish = __new_finish; 1586: this->_M_impl._M_end_of_storage = __new_start + __len; 1586: } 1586: } 1586: } 1586: 1586: 1586: 1586: template 1586: void 1586: vector:: 1586: _M_reallocate(size_type __n) 1586: { 1586: _Bit_pointer __q = this->_M_allocate(__n); 1586: iterator __start(std::__addressof(*__q), 0); 1586: iterator __finish(_M_copy_aligned(begin(), end(), __start)); 1586: this->_M_deallocate(); 1586: this->_M_impl._M_start = __start; 1586: this->_M_impl._M_finish = __finish; 1586: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 1586: } 1586: 1586: template 1586: void 1586: vector:: 1586: _M_fill_insert(iterator __position, size_type __n, bool __x) 1586: { 1586: if (__n == 0) 1586: return; 1586: if (capacity() - size() >= __n) 1586: { 1586: std::copy_backward(__position, end(), 1586: this->_M_impl._M_finish + difference_type(__n)); 1586: std::fill(__position, __position + difference_type(__n), __x); 1586: this->_M_impl._M_finish += difference_type(__n); 1586: } 1586: else 1586: { 1586: const size_type __len = 1586: _M_check_len(__n, "vector::_M_fill_insert"); 1586: _Bit_pointer __q = this->_M_allocate(__len); 1586: iterator __start(std::__addressof(*__q), 0); 1586: iterator __i = _M_copy_aligned(begin(), __position, __start); 1586: std::fill(__i, __i + difference_type(__n), __x); 1586: iterator __finish = std::copy(__position, end(), 1586: __i + difference_type(__n)); 1586: this->_M_deallocate(); 1586: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 1586: this->_M_impl._M_start = __start; 1586: this->_M_impl._M_finish = __finish; 1586: } 1586: } 1586: 1586: template 1586: template 1586: void 1586: vector:: 1586: _M_insert_range(iterator __position, _ForwardIterator __first, 1586: _ForwardIterator __last, std::forward_iterator_tag) 1586: { 1586: if (__first != __last) 1586: { 1586: size_type __n = std::distance(__first, __last); 1586: if (capacity() - size() >= __n) 1586: { 1586: std::copy_backward(__position, end(), 1586: this->_M_impl._M_finish 1586: + difference_type(__n)); 1586: std::copy(__first, __last, __position); 1586: this->_M_impl._M_finish += difference_type(__n); 1586: } 1586: else 1586: { 1586: const size_type __len = 1586: _M_check_len(__n, "vector::_M_insert_range"); 1586: _Bit_pointer __q = this->_M_allocate(__len); 1586: iterator __start(std::__addressof(*__q), 0); 1586: iterator __i = _M_copy_aligned(begin(), __position, __start); 1586: __i = std::copy(__first, __last, __i); 1586: iterator __finish = std::copy(__position, end(), __i); 1586: this->_M_deallocate(); 1586: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 1586: this->_M_impl._M_start = __start; 1586: this->_M_impl._M_finish = __finish; 1586: } 1586: } 1586: } 1586: 1586: template 1586: void 1586: vector:: 1586: _M_insert_aux(iterator __position, bool __x) 1586: { 1586: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 1586: { 1586: std::copy_backward(__position, this->_M_impl._M_finish, 1586: this->_M_impl._M_finish + 1); 1586: *__position = __x; 1586: ++this->_M_impl._M_finish; 1586: } 1586: else 1586: { 1586: const size_type __len = 1586: _M_check_len(size_type(1), "vector::_M_insert_aux"); 1586: _Bit_pointer __q = this->_M_allocate(__len); 1586: iterator __start(std::__addressof(*__q), 0); 1586: iterator __i = _M_copy_aligned(begin(), __position, __start); 1586: *__i++ = __x; 1586: iterator __finish = std::copy(__position, end(), __i); 1586: this->_M_deallocate(); 1586: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 1586: this->_M_impl._M_start = __start; 1586: this->_M_impl._M_finish = __finish; 1586: } 1586: } 1586: 1586: template 1586: typename vector::iterator 1586: vector:: 1586: _M_erase(iterator __position) 1586: { 1586: if (__position + 1 != end()) 1586: std::copy(__position + 1, end(), __position); 1586: --this->_M_impl._M_finish; 1586: return __position; 1586: } 1586: 1586: template 1586: typename vector::iterator 1586: vector:: 1586: _M_erase(iterator __first, iterator __last) 1586: { 1586: if (__first != __last) 1586: _M_erase_at_end(std::copy(__last, end(), __first)); 1586: return __first; 1586: } 1586: 1586: 1586: template 1586: bool 1586: vector:: 1586: _M_shrink_to_fit() 1586: { 1586: if (capacity() - size() < int(_S_word_bit)) 1586: return false; 1586: try 1586: { 1586: _M_reallocate(size()); 1586: return true; 1586: } 1586: catch(...) 1586: { return false; } 1586: } 1586: 1586: 1586: 1586: 1586: } 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: template 1586: size_t 1586: hash>:: 1586: operator()(const std::vector& __b) const noexcept 1586: { 1586: size_t __hash = 0; 1586: using std::_S_word_bit; 1586: using std::_Bit_type; 1586: 1586: const size_t __words = __b.size() / _S_word_bit; 1586: if (__words) 1586: { 1586: const size_t __clength = __words * sizeof(_Bit_type); 1586: __hash = std::_Hash_impl::hash(__b._M_impl._M_start._M_p, __clength); 1586: } 1586: 1586: const size_t __extrabits = __b.size() % _S_word_bit; 1586: if (__extrabits) 1586: { 1586: _Bit_type __hiword = *__b._M_impl._M_finish._M_p; 1586: __hiword &= ~((~static_cast<_Bit_type>(0)) << __extrabits); 1586: 1586: const size_t __clength 1586: = (__extrabits + 8 - 1) / 8; 1586: if (__words) 1586: __hash = std::_Hash_impl::hash(&__hiword, __clength, __hash); 1586: else 1586: __hash = std::_Hash_impl::hash(&__hiword, __clength); 1586: } 1586: 1586: return __hash; 1586: } 1586: 1586: 1586: } 1586: # 73 "/usr/mipsel-linux-gnu/include/c++/9/vector" 2 3 1586: # 16 "/<>/include/HepMC3/GenParticle_fwd.h" 2 1586: 1586: 1586: # 17 "/<>/include/HepMC3/GenParticle_fwd.h" 1586: namespace HepMC3 { 1586: 1586: class GenParticle; 1586: 1586: using GenParticlePtr = std::shared_ptr; 1586: using ConstGenParticlePtr = std::shared_ptr; 1586: 1586: using GenParticles = std::vector; 1586: using ConstGenParticles = std::vector; 1586: 1586: 1586: 1586: 1586: template 1586: using GenParticles_type = typename std::conditional::value, ConstGenParticles, GenParticles>::type; 1586: 1586: } 1586: # 21 "/<>/include/HepMC3/GenParticle.h" 2 1586: # 1 "/<>/include/HepMC3/GenVertex_fwd.h" 1 1586: # 16 "/<>/include/HepMC3/GenVertex_fwd.h" 1586: namespace HepMC3 { 1586: 1586: class GenVertex; 1586: 1586: using GenVertexPtr = std::shared_ptr; 1586: using ConstGenVertexPtr = std::shared_ptr; 1586: 1586: template 1586: using GenVertex_type = typename std::conditional::value, ConstGenVertexPtr, GenVertexPtr>::type; 1586: 1586: } 1586: # 22 "/<>/include/HepMC3/GenParticle.h" 2 1586: 1586: namespace HepMC3 { 1586: 1586: 1586: using namespace std; 1586: 1586: class GenEvent; 1586: class Attribute; 1586: 1586: class GenParticle : public std::enable_shared_from_this { 1586: 1586: friend class GenVertex; 1586: friend class GenEvent; 1586: 1586: 1586: 1586: 1586: public: 1586: 1586: GenParticle( const FourVector &momentum = FourVector::ZERO_VECTOR(), int pid = 0, int status = 0 ); 1586: 1586: 1586: GenParticle( const GenParticleData &data ); 1586: 1586: 1586: 1586: 1586: public: 1586: 1586: bool in_event() const { return (bool)(m_event); } 1586: 1586: 1586: 1586: 1586: public: 1586: 1586: GenEvent* parent_event() { return m_event; } 1586: const GenEvent* parent_event() const { return m_event; } 1586: int id() const { return m_id; } 1586: const GenParticleData& data() const { return m_data; } 1586: 1586: 1586: ConstGenVertexPtr production_vertex() const; 1586: ConstGenVertexPtr end_vertex() const; 1586: 1586: GenVertexPtr production_vertex(); 1586: GenVertexPtr end_vertex(); 1586: 1586: 1586: 1586: vector parents(); 1586: 1586: 1586: 1586: vector parents() const; 1586: 1586: 1586: 1586: vector children(); 1586: 1586: 1586: 1586: vector children() const; 1586: 1586: int pid() const { return m_data.pid; } 1586: int abs_pid() const { return abs(pid()); } 1586: int status() const { return m_data.status; } 1586: const FourVector& momentum() const { return m_data.momentum; } 1586: bool is_generated_mass_set() const { return m_data.is_mass_set; } 1586: 1586: 1586: 1586: 1586: 1586: double generated_mass() const; 1586: 1586: 1586: void set_pid(int pid); 1586: void set_status(int status); 1586: void set_momentum(const FourVector& momentum); 1586: void set_generated_mass(double m); 1586: void unset_generated_mass(); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: bool add_attribute(const string& name, shared_ptr att); 1586: 1586: 1586: vector attribute_names() const; 1586: 1586: 1586: void remove_attribute(const string& name); 1586: 1586: 1586: template 1586: shared_ptr attribute(const string& name) const; 1586: 1586: 1586: string attribute_as_string(const string& name) const; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: int pdg_id() const { return pid(); } 1586: 1586: 1586: 1586: void set_pdg_id(const int& pidin) { set_pid(pidin); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: private: 1586: GenEvent *m_event; 1586: int m_id; 1586: GenParticleData m_data; 1586: 1586: weak_ptr m_production_vertex; 1586: weak_ptr m_end_vertex; 1586: 1586: }; 1586: 1586: } 1586: 1586: # 1 "/<>/include/HepMC3/GenEvent.h" 1 1586: # 13 "/<>/include/HepMC3/GenEvent.h" 1586: # 1 "/<>/include/HepMC3/Units.h" 1 1586: # 19 "/<>/include/HepMC3/Units.h" 1586: # 1 "/<>/include/HepMC3/Errors.h" 1 1586: # 13 "/<>/include/HepMC3/Errors.h" 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/iostream" 1 3 1586: # 36 "/usr/mipsel-linux-gnu/include/c++/9/iostream" 3 1586: 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/iostream" 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 1 3 1586: # 36 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/ios" 1 3 1586: # 36 "/usr/mipsel-linux-gnu/include/c++/9/ios" 3 1586: 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/ios" 3 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 1 3 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: 1586: # 38 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 1 3 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: 1586: # 38 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: # 43 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 62 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: class locale 1586: { 1586: public: 1586: 1586: 1586: typedef int category; 1586: 1586: 1586: class facet; 1586: class id; 1586: class _Impl; 1586: 1586: friend class facet; 1586: friend class _Impl; 1586: 1586: template 1586: friend bool 1586: has_facet(const locale&) throw(); 1586: 1586: template 1586: friend const _Facet& 1586: use_facet(const locale&); 1586: 1586: template 1586: friend struct __use_cache; 1586: # 98 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: static const category none = 0; 1586: static const category ctype = 1L << 0; 1586: static const category numeric = 1L << 1; 1586: static const category collate = 1L << 2; 1586: static const category time = 1L << 3; 1586: static const category monetary = 1L << 4; 1586: static const category messages = 1L << 5; 1586: static const category all = (ctype | numeric | collate | 1586: time | monetary | messages); 1586: # 117 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: locale() throw(); 1586: # 126 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: locale(const locale& __other) throw(); 1586: # 136 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: explicit 1586: locale(const char* __s); 1586: # 151 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: locale(const locale& __base, const char* __s, category __cat); 1586: # 162 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: explicit 1586: locale(const std::string& __s) : locale(__s.c_str()) { } 1586: # 177 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: locale(const locale& __base, const std::string& __s, category __cat) 1586: : locale(__base, __s.c_str(), __cat) { } 1586: # 192 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: locale(const locale& __base, const locale& __add, category __cat); 1586: # 205 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: template 1586: locale(const locale& __other, _Facet* __f); 1586: 1586: 1586: ~locale() throw(); 1586: # 219 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: const locale& 1586: operator=(const locale& __other) throw(); 1586: # 234 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: template 1586: locale 1586: combine(const locale& __other) const; 1586: 1586: 1586: 1586: 1586: 1586: 1586: __attribute ((__abi_tag__ ("cxx11"))) 1586: string 1586: name() const; 1586: # 254 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: bool 1586: operator==(const locale& __other) const throw(); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: bool 1586: operator!=(const locale& __other) const throw() 1586: { return !(this->operator==(__other)); } 1586: # 282 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: template 1586: bool 1586: operator()(const basic_string<_Char, _Traits, _Alloc>& __s1, 1586: const basic_string<_Char, _Traits, _Alloc>& __s2) const; 1586: # 298 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: static locale 1586: global(const locale& __loc); 1586: 1586: 1586: 1586: 1586: static const locale& 1586: classic(); 1586: 1586: private: 1586: 1586: _Impl* _M_impl; 1586: 1586: 1586: static _Impl* _S_classic; 1586: 1586: 1586: static _Impl* _S_global; 1586: 1586: 1586: 1586: 1586: 1586: static const char* const* const _S_categories; 1586: # 333 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: enum { _S_categories_size = 6 + 6 }; 1586: 1586: 1586: static __gthread_once_t _S_once; 1586: 1586: 1586: explicit 1586: locale(_Impl*) throw(); 1586: 1586: static void 1586: _S_initialize(); 1586: 1586: static void 1586: _S_initialize_once() throw(); 1586: 1586: static category 1586: _S_normalize_category(category); 1586: 1586: void 1586: _M_coalesce(const locale& __base, const locale& __add, category __cat); 1586: 1586: 1586: static const id* const _S_twinned_facets[]; 1586: 1586: }; 1586: # 371 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: class locale::facet 1586: { 1586: private: 1586: friend class locale; 1586: friend class locale::_Impl; 1586: 1586: mutable _Atomic_word _M_refcount; 1586: 1586: 1586: static __c_locale _S_c_locale; 1586: 1586: 1586: static const char _S_c_name[2]; 1586: 1586: 1586: static __gthread_once_t _S_once; 1586: 1586: 1586: static void 1586: _S_initialize_once(); 1586: 1586: protected: 1586: # 402 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: explicit 1586: facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0) 1586: { } 1586: 1586: 1586: virtual 1586: ~facet(); 1586: 1586: static void 1586: _S_create_c_locale(__c_locale& __cloc, const char* __s, 1586: __c_locale __old = 0); 1586: 1586: static __c_locale 1586: _S_clone_c_locale(__c_locale& __cloc) throw(); 1586: 1586: static void 1586: _S_destroy_c_locale(__c_locale& __cloc); 1586: 1586: static __c_locale 1586: _S_lc_ctype_c_locale(__c_locale __cloc, const char* __s); 1586: 1586: 1586: 1586: static __c_locale 1586: _S_get_c_locale(); 1586: 1586: __attribute__ ((__const__)) static const char* 1586: _S_get_c_name() throw(); 1586: # 438 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: facet(const facet&) = delete; 1586: 1586: facet& 1586: operator=(const facet&) = delete; 1586: 1586: 1586: private: 1586: void 1586: _M_add_reference() const throw() 1586: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 1586: 1586: void 1586: _M_remove_reference() const throw() 1586: { 1586: 1586: ; 1586: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 1586: { 1586: ; 1586: try 1586: { delete this; } 1586: catch(...) 1586: { } 1586: } 1586: } 1586: 1586: const facet* _M_sso_shim(const id*) const; 1586: const facet* _M_cow_shim(const id*) const; 1586: 1586: protected: 1586: class __shim; 1586: }; 1586: # 483 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: class locale::id 1586: { 1586: private: 1586: friend class locale; 1586: friend class locale::_Impl; 1586: 1586: template 1586: friend const _Facet& 1586: use_facet(const locale&); 1586: 1586: template 1586: friend bool 1586: has_facet(const locale&) throw(); 1586: 1586: 1586: 1586: 1586: mutable size_t _M_index; 1586: 1586: 1586: static _Atomic_word _S_refcount; 1586: 1586: void 1586: operator=(const id&); 1586: 1586: id(const id&); 1586: 1586: public: 1586: 1586: 1586: 1586: id() { } 1586: 1586: size_t 1586: _M_id() const throw(); 1586: }; 1586: 1586: 1586: 1586: class locale::_Impl 1586: { 1586: public: 1586: 1586: friend class locale; 1586: friend class locale::facet; 1586: 1586: template 1586: friend bool 1586: has_facet(const locale&) throw(); 1586: 1586: template 1586: friend const _Facet& 1586: use_facet(const locale&); 1586: 1586: template 1586: friend struct __use_cache; 1586: 1586: private: 1586: 1586: _Atomic_word _M_refcount; 1586: const facet** _M_facets; 1586: size_t _M_facets_size; 1586: const facet** _M_caches; 1586: char** _M_names; 1586: static const locale::id* const _S_id_ctype[]; 1586: static const locale::id* const _S_id_numeric[]; 1586: static const locale::id* const _S_id_collate[]; 1586: static const locale::id* const _S_id_time[]; 1586: static const locale::id* const _S_id_monetary[]; 1586: static const locale::id* const _S_id_messages[]; 1586: static const locale::id* const* const _S_facet_categories[]; 1586: 1586: void 1586: _M_add_reference() throw() 1586: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 1586: 1586: void 1586: _M_remove_reference() throw() 1586: { 1586: 1586: ; 1586: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 1586: { 1586: ; 1586: try 1586: { delete this; } 1586: catch(...) 1586: { } 1586: } 1586: } 1586: 1586: _Impl(const _Impl&, size_t); 1586: _Impl(const char*, size_t); 1586: _Impl(size_t) throw(); 1586: 1586: ~_Impl() throw(); 1586: 1586: _Impl(const _Impl&); 1586: 1586: void 1586: operator=(const _Impl&); 1586: 1586: bool 1586: _M_check_same_name() 1586: { 1586: bool __ret = true; 1586: if (_M_names[1]) 1586: 1586: for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i) 1586: __ret = __builtin_strcmp(_M_names[__i], _M_names[__i + 1]) == 0; 1586: return __ret; 1586: } 1586: 1586: void 1586: _M_replace_categories(const _Impl*, category); 1586: 1586: void 1586: _M_replace_category(const _Impl*, const locale::id* const*); 1586: 1586: void 1586: _M_replace_facet(const _Impl*, const locale::id*); 1586: 1586: void 1586: _M_install_facet(const locale::id*, const facet*); 1586: 1586: template 1586: void 1586: _M_init_facet(_Facet* __facet) 1586: { _M_install_facet(&_Facet::id, __facet); } 1586: 1586: template 1586: void 1586: _M_init_facet_unchecked(_Facet* __facet) 1586: { 1586: __facet->_M_add_reference(); 1586: _M_facets[_Facet::id._M_id()] = __facet; 1586: } 1586: 1586: void 1586: _M_install_cache(const facet*, size_t); 1586: 1586: void _M_init_extra(facet**); 1586: void _M_init_extra(void*, void*, const char*, const char*); 1586: }; 1586: # 641 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: template 1586: class __cxx11:: collate : public locale::facet 1586: { 1586: public: 1586: 1586: 1586: 1586: typedef _CharT char_type; 1586: typedef basic_string<_CharT> string_type; 1586: 1586: 1586: protected: 1586: 1586: 1586: __c_locale _M_c_locale_collate; 1586: 1586: public: 1586: 1586: static locale::id id; 1586: # 668 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: explicit 1586: collate(size_t __refs = 0) 1586: : facet(__refs), _M_c_locale_collate(_S_get_c_locale()) 1586: { } 1586: # 682 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: explicit 1586: collate(__c_locale __cloc, size_t __refs = 0) 1586: : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc)) 1586: { } 1586: # 699 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: int 1586: compare(const _CharT* __lo1, const _CharT* __hi1, 1586: const _CharT* __lo2, const _CharT* __hi2) const 1586: { return this->do_compare(__lo1, __hi1, __lo2, __hi2); } 1586: # 718 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: string_type 1586: transform(const _CharT* __lo, const _CharT* __hi) const 1586: { return this->do_transform(__lo, __hi); } 1586: # 732 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: long 1586: hash(const _CharT* __lo, const _CharT* __hi) const 1586: { return this->do_hash(__lo, __hi); } 1586: 1586: 1586: int 1586: _M_compare(const _CharT*, const _CharT*) const throw(); 1586: 1586: size_t 1586: _M_transform(_CharT*, const _CharT*, size_t) const throw(); 1586: 1586: protected: 1586: 1586: virtual 1586: ~collate() 1586: { _S_destroy_c_locale(_M_c_locale_collate); } 1586: # 761 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: virtual int 1586: do_compare(const _CharT* __lo1, const _CharT* __hi1, 1586: const _CharT* __lo2, const _CharT* __hi2) const; 1586: # 775 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: virtual string_type 1586: do_transform(const _CharT* __lo, const _CharT* __hi) const; 1586: # 788 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 3 1586: virtual long 1586: do_hash(const _CharT* __lo, const _CharT* __hi) const; 1586: }; 1586: 1586: template 1586: locale::id collate<_CharT>::id; 1586: 1586: 1586: template<> 1586: int 1586: collate::_M_compare(const char*, const char*) const throw(); 1586: 1586: template<> 1586: size_t 1586: collate::_M_transform(char*, const char*, size_t) const throw(); 1586: 1586: 1586: template<> 1586: int 1586: collate::_M_compare(const wchar_t*, const wchar_t*) const throw(); 1586: 1586: template<> 1586: size_t 1586: collate::_M_transform(wchar_t*, const wchar_t*, size_t) const throw(); 1586: 1586: 1586: 1586: template 1586: class __cxx11:: collate_byname : public collate<_CharT> 1586: { 1586: public: 1586: 1586: 1586: typedef _CharT char_type; 1586: typedef basic_string<_CharT> string_type; 1586: 1586: 1586: explicit 1586: collate_byname(const char* __s, size_t __refs = 0) 1586: : collate<_CharT>(__refs) 1586: { 1586: if (__builtin_strcmp(__s, "C") != 0 1586: && __builtin_strcmp(__s, "POSIX") != 0) 1586: { 1586: this->_S_destroy_c_locale(this->_M_c_locale_collate); 1586: this->_S_create_c_locale(this->_M_c_locale_collate, __s); 1586: } 1586: } 1586: 1586: 1586: explicit 1586: collate_byname(const string& __s, size_t __refs = 0) 1586: : collate_byname(__s.c_str(), __refs) { } 1586: 1586: 1586: protected: 1586: virtual 1586: ~collate_byname() { } 1586: }; 1586: 1586: 1586: } 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.tcc" 1 3 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.tcc" 3 1586: 1586: # 38 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.tcc" 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: template 1586: locale:: 1586: locale(const locale& __other, _Facet* __f) 1586: { 1586: _M_impl = new _Impl(*__other._M_impl, 1); 1586: 1586: try 1586: { _M_impl->_M_install_facet(&_Facet::id, __f); } 1586: catch(...) 1586: { 1586: _M_impl->_M_remove_reference(); 1586: throw; 1586: } 1586: delete [] _M_impl->_M_names[0]; 1586: _M_impl->_M_names[0] = 0; 1586: } 1586: 1586: template 1586: locale 1586: locale:: 1586: combine(const locale& __other) const 1586: { 1586: _Impl* __tmp = new _Impl(*_M_impl, 1); 1586: try 1586: { 1586: __tmp->_M_replace_facet(__other._M_impl, &_Facet::id); 1586: } 1586: catch(...) 1586: { 1586: __tmp->_M_remove_reference(); 1586: throw; 1586: } 1586: return locale(__tmp); 1586: } 1586: 1586: template 1586: bool 1586: locale:: 1586: operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1, 1586: const basic_string<_CharT, _Traits, _Alloc>& __s2) const 1586: { 1586: typedef std::collate<_CharT> __collate_type; 1586: const __collate_type& __collate = use_facet<__collate_type>(*this); 1586: return (__collate.compare(__s1.data(), __s1.data() + __s1.length(), 1586: __s2.data(), __s2.data() + __s2.length()) < 0); 1586: } 1586: # 102 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.tcc" 3 1586: template 1586: bool 1586: has_facet(const locale& __loc) throw() 1586: { 1586: const size_t __i = _Facet::id._M_id(); 1586: const locale::facet** __facets = __loc._M_impl->_M_facets; 1586: return (__i < __loc._M_impl->_M_facets_size 1586: 1586: && dynamic_cast(__facets[__i])); 1586: 1586: 1586: 1586: } 1586: # 130 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.tcc" 3 1586: template 1586: const _Facet& 1586: use_facet(const locale& __loc) 1586: { 1586: const size_t __i = _Facet::id._M_id(); 1586: const locale::facet** __facets = __loc._M_impl->_M_facets; 1586: if (__i >= __loc._M_impl->_M_facets_size || !__facets[__i]) 1586: __throw_bad_cast(); 1586: 1586: return dynamic_cast(*__facets[__i]); 1586: 1586: 1586: 1586: } 1586: 1586: 1586: 1586: template 1586: int 1586: collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const throw () 1586: { return 0; } 1586: 1586: 1586: template 1586: size_t 1586: collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const throw () 1586: { return 0; } 1586: 1586: template 1586: int 1586: collate<_CharT>:: 1586: do_compare(const _CharT* __lo1, const _CharT* __hi1, 1586: const _CharT* __lo2, const _CharT* __hi2) const 1586: { 1586: 1586: 1586: const string_type __one(__lo1, __hi1); 1586: const string_type __two(__lo2, __hi2); 1586: 1586: const _CharT* __p = __one.c_str(); 1586: const _CharT* __pend = __one.data() + __one.length(); 1586: const _CharT* __q = __two.c_str(); 1586: const _CharT* __qend = __two.data() + __two.length(); 1586: 1586: 1586: 1586: 1586: for (;;) 1586: { 1586: const int __res = _M_compare(__p, __q); 1586: if (__res) 1586: return __res; 1586: 1586: __p += char_traits<_CharT>::length(__p); 1586: __q += char_traits<_CharT>::length(__q); 1586: if (__p == __pend && __q == __qend) 1586: return 0; 1586: else if (__p == __pend) 1586: return -1; 1586: else if (__q == __qend) 1586: return 1; 1586: 1586: __p++; 1586: __q++; 1586: } 1586: } 1586: 1586: template 1586: typename collate<_CharT>::string_type 1586: collate<_CharT>:: 1586: do_transform(const _CharT* __lo, const _CharT* __hi) const 1586: { 1586: string_type __ret; 1586: 1586: 1586: const string_type __str(__lo, __hi); 1586: 1586: const _CharT* __p = __str.c_str(); 1586: const _CharT* __pend = __str.data() + __str.length(); 1586: 1586: size_t __len = (__hi - __lo) * 2; 1586: 1586: _CharT* __c = new _CharT[__len]; 1586: 1586: try 1586: { 1586: 1586: 1586: 1586: for (;;) 1586: { 1586: 1586: size_t __res = _M_transform(__c, __p, __len); 1586: 1586: 1586: if (__res >= __len) 1586: { 1586: __len = __res + 1; 1586: delete [] __c, __c = 0; 1586: __c = new _CharT[__len]; 1586: __res = _M_transform(__c, __p, __len); 1586: } 1586: 1586: __ret.append(__c, __res); 1586: __p += char_traits<_CharT>::length(__p); 1586: if (__p == __pend) 1586: break; 1586: 1586: __p++; 1586: __ret.push_back(_CharT()); 1586: } 1586: } 1586: catch(...) 1586: { 1586: delete [] __c; 1586: throw; 1586: } 1586: 1586: delete [] __c; 1586: 1586: return __ret; 1586: } 1586: 1586: template 1586: long 1586: collate<_CharT>:: 1586: do_hash(const _CharT* __lo, const _CharT* __hi) const 1586: { 1586: unsigned long __val = 0; 1586: for (; __lo < __hi; ++__lo) 1586: __val = 1586: *__lo + ((__val << 7) 1586: | (__val >> (__gnu_cxx::__numeric_traits:: 1586: __digits - 7))); 1586: return static_cast(__val); 1586: } 1586: 1586: 1586: 1586: 1586: extern template class collate; 1586: extern template class collate_byname; 1586: 1586: extern template 1586: const collate& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: 1586: extern template class collate; 1586: extern template class collate_byname; 1586: 1586: extern template 1586: const collate& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: 1586: 1586: 1586: } 1586: # 852 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_classes.h" 2 3 1586: # 42 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 2 3 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/system_error" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/c++/9/system_error" 3 1586: 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/system_error" 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/error_constants.h" 1 3 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/error_constants.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/cerrno" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/cerrno" 3 1586: 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/cerrno" 3 1586: # 35 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/error_constants.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: enum class errc 1586: { 1586: address_family_not_supported = 124, 1586: address_in_use = 125, 1586: address_not_available = 126, 1586: already_connected = 133, 1586: argument_list_too_long = 7, 1586: argument_out_of_domain = 33, 1586: bad_address = 14, 1586: bad_file_descriptor = 9, 1586: 1586: 1586: bad_message = 77, 1586: 1586: 1586: broken_pipe = 32, 1586: connection_aborted = 130, 1586: connection_already_in_progress = 149, 1586: connection_refused = 146, 1586: connection_reset = 131, 1586: cross_device_link = 18, 1586: destination_address_required = 96, 1586: device_or_resource_busy = 16, 1586: directory_not_empty = 93, 1586: executable_format_error = 8, 1586: file_exists = 17, 1586: file_too_large = 27, 1586: filename_too_long = 78, 1586: function_not_supported = 89, 1586: host_unreachable = 148, 1586: 1586: 1586: identifier_removed = 36, 1586: 1586: 1586: illegal_byte_sequence = 88, 1586: inappropriate_io_control_operation = 25, 1586: interrupted = 4, 1586: invalid_argument = 22, 1586: invalid_seek = 29, 1586: io_error = 5, 1586: is_a_directory = 21, 1586: message_size = 97, 1586: network_down = 127, 1586: network_reset = 129, 1586: network_unreachable = 128, 1586: no_buffer_space = 132, 1586: no_child_process = 10, 1586: 1586: 1586: no_link = 67, 1586: 1586: 1586: no_lock_available = 46, 1586: 1586: 1586: no_message_available = 61, 1586: 1586: 1586: no_message = 35, 1586: no_protocol_option = 99, 1586: no_space_on_device = 28, 1586: 1586: 1586: no_stream_resources = 63, 1586: 1586: 1586: no_such_device_or_address = 6, 1586: no_such_device = 19, 1586: no_such_file_or_directory = 2, 1586: no_such_process = 3, 1586: not_a_directory = 20, 1586: not_a_socket = 95, 1586: 1586: 1586: not_a_stream = 60, 1586: 1586: 1586: not_connected = 134, 1586: not_enough_memory = 12, 1586: 1586: 1586: not_supported = 122, 1586: 1586: 1586: 1586: operation_canceled = 158, 1586: 1586: 1586: operation_in_progress = 150, 1586: operation_not_permitted = 1, 1586: operation_not_supported = 122, 1586: operation_would_block = 11, 1586: 1586: 1586: owner_dead = 165, 1586: 1586: 1586: permission_denied = 13, 1586: 1586: 1586: protocol_error = 71, 1586: 1586: 1586: protocol_not_supported = 120, 1586: read_only_file_system = 30, 1586: resource_deadlock_would_occur = 45, 1586: resource_unavailable_try_again = 11, 1586: result_out_of_range = 34, 1586: 1586: 1586: state_not_recoverable = 166, 1586: 1586: 1586: 1586: stream_timeout = 62, 1586: 1586: 1586: 1586: text_file_busy = 26, 1586: 1586: 1586: timed_out = 145, 1586: too_many_files_open_in_system = 23, 1586: too_many_files_open = 24, 1586: too_many_links = 31, 1586: too_many_symbolic_link_levels = 90, 1586: 1586: 1586: value_too_large = 79, 1586: 1586: 1586: wrong_protocol_type = 98 1586: }; 1586: 1586: 1586: } 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/system_error" 2 3 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: class error_code; 1586: class error_condition; 1586: class system_error; 1586: 1586: 1586: template 1586: struct is_error_code_enum : public false_type { }; 1586: 1586: 1586: template 1586: struct is_error_condition_enum : public false_type { }; 1586: 1586: template<> 1586: struct is_error_condition_enum 1586: : public true_type { }; 1586: # 71 "/usr/mipsel-linux-gnu/include/c++/9/system_error" 3 1586: inline namespace _V2 { 1586: 1586: 1586: class error_category 1586: { 1586: public: 1586: constexpr error_category() noexcept = default; 1586: 1586: virtual ~error_category(); 1586: 1586: error_category(const error_category&) = delete; 1586: error_category& operator=(const error_category&) = delete; 1586: 1586: virtual const char* 1586: name() const noexcept = 0; 1586: 1586: 1586: 1586: 1586: 1586: 1586: private: 1586: __attribute ((__abi_tag__ ("cxx11"))) 1586: virtual __cow_string 1586: _M_message(int) const; 1586: 1586: public: 1586: __attribute ((__abi_tag__ ("cxx11"))) 1586: virtual string 1586: message(int) const = 0; 1586: # 110 "/usr/mipsel-linux-gnu/include/c++/9/system_error" 3 1586: public: 1586: virtual error_condition 1586: default_error_condition(int __i) const noexcept; 1586: 1586: virtual bool 1586: equivalent(int __i, const error_condition& __cond) const noexcept; 1586: 1586: virtual bool 1586: equivalent(const error_code& __code, int __i) const noexcept; 1586: 1586: bool 1586: operator<(const error_category& __other) const noexcept 1586: { return less()(this, &__other); } 1586: 1586: bool 1586: operator==(const error_category& __other) const noexcept 1586: { return this == &__other; } 1586: 1586: bool 1586: operator!=(const error_category& __other) const noexcept 1586: { return this != &__other; } 1586: }; 1586: 1586: 1586: __attribute__ ((__const__)) const error_category& system_category() noexcept; 1586: __attribute__ ((__const__)) const error_category& generic_category() noexcept; 1586: 1586: } 1586: 1586: error_code make_error_code(errc) noexcept; 1586: 1586: template 1586: struct hash; 1586: 1586: 1586: 1586: struct error_code 1586: { 1586: error_code() noexcept 1586: : _M_value(0), _M_cat(&system_category()) { } 1586: 1586: error_code(int __v, const error_category& __cat) noexcept 1586: : _M_value(__v), _M_cat(&__cat) { } 1586: 1586: template::value>::type> 1586: error_code(_ErrorCodeEnum __e) noexcept 1586: { *this = make_error_code(__e); } 1586: 1586: void 1586: assign(int __v, const error_category& __cat) noexcept 1586: { 1586: _M_value = __v; 1586: _M_cat = &__cat; 1586: } 1586: 1586: void 1586: clear() noexcept 1586: { assign(0, system_category()); } 1586: 1586: 1586: template 1586: typename enable_if::value, 1586: error_code&>::type 1586: operator=(_ErrorCodeEnum __e) noexcept 1586: { return *this = make_error_code(__e); } 1586: 1586: int 1586: value() const noexcept { return _M_value; } 1586: 1586: const error_category& 1586: category() const noexcept { return *_M_cat; } 1586: 1586: error_condition 1586: default_error_condition() const noexcept; 1586: 1586: __attribute ((__abi_tag__ ("cxx11"))) 1586: string 1586: message() const 1586: { return category().message(value()); } 1586: 1586: explicit operator bool() const noexcept 1586: { return _M_value != 0; } 1586: 1586: 1586: private: 1586: friend class hash; 1586: 1586: int _M_value; 1586: const error_category* _M_cat; 1586: }; 1586: 1586: 1586: inline error_code 1586: make_error_code(errc __e) noexcept 1586: { return error_code(static_cast(__e), generic_category()); } 1586: 1586: inline bool 1586: operator<(const error_code& __lhs, const error_code& __rhs) noexcept 1586: { 1586: return (__lhs.category() < __rhs.category() 1586: || (__lhs.category() == __rhs.category() 1586: && __lhs.value() < __rhs.value())); 1586: } 1586: 1586: template 1586: basic_ostream<_CharT, _Traits>& 1586: operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e) 1586: { return (__os << __e.category().name() << ':' << __e.value()); } 1586: 1586: error_condition make_error_condition(errc) noexcept; 1586: 1586: 1586: 1586: struct error_condition 1586: { 1586: error_condition() noexcept 1586: : _M_value(0), _M_cat(&generic_category()) { } 1586: 1586: error_condition(int __v, const error_category& __cat) noexcept 1586: : _M_value(__v), _M_cat(&__cat) { } 1586: 1586: template::value>::type> 1586: error_condition(_ErrorConditionEnum __e) noexcept 1586: { *this = make_error_condition(__e); } 1586: 1586: void 1586: assign(int __v, const error_category& __cat) noexcept 1586: { 1586: _M_value = __v; 1586: _M_cat = &__cat; 1586: } 1586: 1586: 1586: template 1586: typename enable_if::value, error_condition&>::type 1586: operator=(_ErrorConditionEnum __e) noexcept 1586: { return *this = make_error_condition(__e); } 1586: 1586: void 1586: clear() noexcept 1586: { assign(0, generic_category()); } 1586: 1586: 1586: int 1586: value() const noexcept { return _M_value; } 1586: 1586: const error_category& 1586: category() const noexcept { return *_M_cat; } 1586: 1586: __attribute ((__abi_tag__ ("cxx11"))) 1586: string 1586: message() const 1586: { return category().message(value()); } 1586: 1586: explicit operator bool() const noexcept 1586: { return _M_value != 0; } 1586: 1586: 1586: private: 1586: int _M_value; 1586: const error_category* _M_cat; 1586: }; 1586: 1586: 1586: inline error_condition 1586: make_error_condition(errc __e) noexcept 1586: { return error_condition(static_cast(__e), generic_category()); } 1586: 1586: inline bool 1586: operator<(const error_condition& __lhs, 1586: const error_condition& __rhs) noexcept 1586: { 1586: return (__lhs.category() < __rhs.category() 1586: || (__lhs.category() == __rhs.category() 1586: && __lhs.value() < __rhs.value())); 1586: } 1586: 1586: 1586: inline bool 1586: operator==(const error_code& __lhs, const error_code& __rhs) noexcept 1586: { return (__lhs.category() == __rhs.category() 1586: && __lhs.value() == __rhs.value()); } 1586: 1586: inline bool 1586: operator==(const error_code& __lhs, const error_condition& __rhs) noexcept 1586: { 1586: return (__lhs.category().equivalent(__lhs.value(), __rhs) 1586: || __rhs.category().equivalent(__lhs, __rhs.value())); 1586: } 1586: 1586: inline bool 1586: operator==(const error_condition& __lhs, const error_code& __rhs) noexcept 1586: { 1586: return (__rhs.category().equivalent(__rhs.value(), __lhs) 1586: || __lhs.category().equivalent(__rhs, __lhs.value())); 1586: } 1586: 1586: inline bool 1586: operator==(const error_condition& __lhs, 1586: const error_condition& __rhs) noexcept 1586: { 1586: return (__lhs.category() == __rhs.category() 1586: && __lhs.value() == __rhs.value()); 1586: } 1586: 1586: inline bool 1586: operator!=(const error_code& __lhs, const error_code& __rhs) noexcept 1586: { return !(__lhs == __rhs); } 1586: 1586: inline bool 1586: operator!=(const error_code& __lhs, const error_condition& __rhs) noexcept 1586: { return !(__lhs == __rhs); } 1586: 1586: inline bool 1586: operator!=(const error_condition& __lhs, const error_code& __rhs) noexcept 1586: { return !(__lhs == __rhs); } 1586: 1586: inline bool 1586: operator!=(const error_condition& __lhs, 1586: const error_condition& __rhs) noexcept 1586: { return !(__lhs == __rhs); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: class system_error : public std::runtime_error 1586: { 1586: private: 1586: error_code _M_code; 1586: 1586: public: 1586: system_error(error_code __ec = error_code()) 1586: : runtime_error(__ec.message()), _M_code(__ec) { } 1586: 1586: system_error(error_code __ec, const string& __what) 1586: : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { } 1586: 1586: system_error(error_code __ec, const char* __what) 1586: : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { } 1586: 1586: system_error(int __v, const error_category& __ecat, const char* __what) 1586: : system_error(error_code(__v, __ecat), __what) { } 1586: 1586: system_error(int __v, const error_category& __ecat) 1586: : runtime_error(error_code(__v, __ecat).message()), 1586: _M_code(__v, __ecat) { } 1586: 1586: system_error(int __v, const error_category& __ecat, const string& __what) 1586: : runtime_error(__what + ": " + error_code(__v, __ecat).message()), 1586: _M_code(__v, __ecat) { } 1586: 1586: 1586: system_error (const system_error &) = default; 1586: system_error &operator= (const system_error &) = default; 1586: 1586: 1586: virtual ~system_error() noexcept; 1586: 1586: const error_code& 1586: code() const noexcept { return _M_code; } 1586: }; 1586: 1586: 1586: } 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: template<> 1586: struct hash 1586: : public __hash_base 1586: { 1586: size_t 1586: operator()(const error_code& __e) const noexcept 1586: { 1586: const size_t __tmp = std::_Hash_impl::hash(__e._M_value); 1586: return std::_Hash_impl::__hash_combine(__e._M_cat, __tmp); 1586: } 1586: }; 1586: # 419 "/usr/mipsel-linux-gnu/include/c++/9/system_error" 3 1586: 1586: } 1586: # 47 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 2 3 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: enum _Ios_Fmtflags 1586: { 1586: _S_boolalpha = 1L << 0, 1586: _S_dec = 1L << 1, 1586: _S_fixed = 1L << 2, 1586: _S_hex = 1L << 3, 1586: _S_internal = 1L << 4, 1586: _S_left = 1L << 5, 1586: _S_oct = 1L << 6, 1586: _S_right = 1L << 7, 1586: _S_scientific = 1L << 8, 1586: _S_showbase = 1L << 9, 1586: _S_showpoint = 1L << 10, 1586: _S_showpos = 1L << 11, 1586: _S_skipws = 1L << 12, 1586: _S_unitbuf = 1L << 13, 1586: _S_uppercase = 1L << 14, 1586: _S_adjustfield = _S_left | _S_right | _S_internal, 1586: _S_basefield = _S_dec | _S_oct | _S_hex, 1586: _S_floatfield = _S_scientific | _S_fixed, 1586: _S_ios_fmtflags_end = 1L << 16, 1586: _S_ios_fmtflags_max = 0x7fffffff, 1586: _S_ios_fmtflags_min = ~0x7fffffff 1586: }; 1586: 1586: inline constexpr _Ios_Fmtflags 1586: operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 1586: { return _Ios_Fmtflags(static_cast(__a) & static_cast(__b)); } 1586: 1586: inline constexpr _Ios_Fmtflags 1586: operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 1586: { return _Ios_Fmtflags(static_cast(__a) | static_cast(__b)); } 1586: 1586: inline constexpr _Ios_Fmtflags 1586: operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 1586: { return _Ios_Fmtflags(static_cast(__a) ^ static_cast(__b)); } 1586: 1586: inline constexpr _Ios_Fmtflags 1586: operator~(_Ios_Fmtflags __a) 1586: { return _Ios_Fmtflags(~static_cast(__a)); } 1586: 1586: inline const _Ios_Fmtflags& 1586: operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 1586: { return __a = __a | __b; } 1586: 1586: inline const _Ios_Fmtflags& 1586: operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 1586: { return __a = __a & __b; } 1586: 1586: inline const _Ios_Fmtflags& 1586: operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 1586: { return __a = __a ^ __b; } 1586: 1586: 1586: enum _Ios_Openmode 1586: { 1586: _S_app = 1L << 0, 1586: _S_ate = 1L << 1, 1586: _S_bin = 1L << 2, 1586: _S_in = 1L << 3, 1586: _S_out = 1L << 4, 1586: _S_trunc = 1L << 5, 1586: _S_ios_openmode_end = 1L << 16, 1586: _S_ios_openmode_max = 0x7fffffff, 1586: _S_ios_openmode_min = ~0x7fffffff 1586: }; 1586: 1586: inline constexpr _Ios_Openmode 1586: operator&(_Ios_Openmode __a, _Ios_Openmode __b) 1586: { return _Ios_Openmode(static_cast(__a) & static_cast(__b)); } 1586: 1586: inline constexpr _Ios_Openmode 1586: operator|(_Ios_Openmode __a, _Ios_Openmode __b) 1586: { return _Ios_Openmode(static_cast(__a) | static_cast(__b)); } 1586: 1586: inline constexpr _Ios_Openmode 1586: operator^(_Ios_Openmode __a, _Ios_Openmode __b) 1586: { return _Ios_Openmode(static_cast(__a) ^ static_cast(__b)); } 1586: 1586: inline constexpr _Ios_Openmode 1586: operator~(_Ios_Openmode __a) 1586: { return _Ios_Openmode(~static_cast(__a)); } 1586: 1586: inline const _Ios_Openmode& 1586: operator|=(_Ios_Openmode& __a, _Ios_Openmode __b) 1586: { return __a = __a | __b; } 1586: 1586: inline const _Ios_Openmode& 1586: operator&=(_Ios_Openmode& __a, _Ios_Openmode __b) 1586: { return __a = __a & __b; } 1586: 1586: inline const _Ios_Openmode& 1586: operator^=(_Ios_Openmode& __a, _Ios_Openmode __b) 1586: { return __a = __a ^ __b; } 1586: 1586: 1586: enum _Ios_Iostate 1586: { 1586: _S_goodbit = 0, 1586: _S_badbit = 1L << 0, 1586: _S_eofbit = 1L << 1, 1586: _S_failbit = 1L << 2, 1586: _S_ios_iostate_end = 1L << 16, 1586: _S_ios_iostate_max = 0x7fffffff, 1586: _S_ios_iostate_min = ~0x7fffffff 1586: }; 1586: 1586: inline constexpr _Ios_Iostate 1586: operator&(_Ios_Iostate __a, _Ios_Iostate __b) 1586: { return _Ios_Iostate(static_cast(__a) & static_cast(__b)); } 1586: 1586: inline constexpr _Ios_Iostate 1586: operator|(_Ios_Iostate __a, _Ios_Iostate __b) 1586: { return _Ios_Iostate(static_cast(__a) | static_cast(__b)); } 1586: 1586: inline constexpr _Ios_Iostate 1586: operator^(_Ios_Iostate __a, _Ios_Iostate __b) 1586: { return _Ios_Iostate(static_cast(__a) ^ static_cast(__b)); } 1586: 1586: inline constexpr _Ios_Iostate 1586: operator~(_Ios_Iostate __a) 1586: { return _Ios_Iostate(~static_cast(__a)); } 1586: 1586: inline const _Ios_Iostate& 1586: operator|=(_Ios_Iostate& __a, _Ios_Iostate __b) 1586: { return __a = __a | __b; } 1586: 1586: inline const _Ios_Iostate& 1586: operator&=(_Ios_Iostate& __a, _Ios_Iostate __b) 1586: { return __a = __a & __b; } 1586: 1586: inline const _Ios_Iostate& 1586: operator^=(_Ios_Iostate& __a, _Ios_Iostate __b) 1586: { return __a = __a ^ __b; } 1586: 1586: 1586: enum _Ios_Seekdir 1586: { 1586: _S_beg = 0, 1586: _S_cur = 1, 1586: _S_end = 2, 1586: _S_ios_seekdir_end = 1L << 16 1586: }; 1586: 1586: 1586: 1586: enum class io_errc { stream = 1 }; 1586: 1586: template <> struct is_error_code_enum : public true_type { }; 1586: 1586: const error_category& iostream_category() noexcept; 1586: 1586: inline error_code 1586: make_error_code(io_errc __e) noexcept 1586: { return error_code(static_cast(__e), iostream_category()); } 1586: 1586: inline error_condition 1586: make_error_condition(io_errc __e) noexcept 1586: { return error_condition(static_cast(__e), iostream_category()); } 1586: # 228 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: class ios_base 1586: { 1586: # 246 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: public: 1586: # 255 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: class __attribute ((__abi_tag__ ("cxx11"))) failure : public system_error 1586: { 1586: public: 1586: explicit 1586: failure(const string& __str); 1586: 1586: 1586: explicit 1586: failure(const string&, const error_code&); 1586: 1586: explicit 1586: failure(const char*, const error_code& = io_errc::stream); 1586: 1586: 1586: virtual 1586: ~failure() throw(); 1586: 1586: virtual const char* 1586: what() const throw(); 1586: }; 1586: # 323 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: typedef _Ios_Fmtflags fmtflags; 1586: 1586: 1586: static const fmtflags boolalpha = _S_boolalpha; 1586: 1586: 1586: static const fmtflags dec = _S_dec; 1586: 1586: 1586: static const fmtflags fixed = _S_fixed; 1586: 1586: 1586: static const fmtflags hex = _S_hex; 1586: 1586: 1586: 1586: 1586: static const fmtflags internal = _S_internal; 1586: 1586: 1586: 1586: static const fmtflags left = _S_left; 1586: 1586: 1586: static const fmtflags oct = _S_oct; 1586: 1586: 1586: 1586: static const fmtflags right = _S_right; 1586: 1586: 1586: static const fmtflags scientific = _S_scientific; 1586: 1586: 1586: 1586: static const fmtflags showbase = _S_showbase; 1586: 1586: 1586: 1586: static const fmtflags showpoint = _S_showpoint; 1586: 1586: 1586: static const fmtflags showpos = _S_showpos; 1586: 1586: 1586: static const fmtflags skipws = _S_skipws; 1586: 1586: 1586: static const fmtflags unitbuf = _S_unitbuf; 1586: 1586: 1586: 1586: static const fmtflags uppercase = _S_uppercase; 1586: 1586: 1586: static const fmtflags adjustfield = _S_adjustfield; 1586: 1586: 1586: static const fmtflags basefield = _S_basefield; 1586: 1586: 1586: static const fmtflags floatfield = _S_floatfield; 1586: # 398 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: typedef _Ios_Iostate iostate; 1586: 1586: 1586: 1586: static const iostate badbit = _S_badbit; 1586: 1586: 1586: static const iostate eofbit = _S_eofbit; 1586: 1586: 1586: 1586: 1586: static const iostate failbit = _S_failbit; 1586: 1586: 1586: static const iostate goodbit = _S_goodbit; 1586: # 429 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: typedef _Ios_Openmode openmode; 1586: 1586: 1586: static const openmode app = _S_app; 1586: 1586: 1586: static const openmode ate = _S_ate; 1586: 1586: 1586: 1586: 1586: static const openmode binary = _S_bin; 1586: 1586: 1586: static const openmode in = _S_in; 1586: 1586: 1586: static const openmode out = _S_out; 1586: 1586: 1586: static const openmode trunc = _S_trunc; 1586: # 461 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: typedef _Ios_Seekdir seekdir; 1586: 1586: 1586: static const seekdir beg = _S_beg; 1586: 1586: 1586: static const seekdir cur = _S_cur; 1586: 1586: 1586: static const seekdir end = _S_end; 1586: 1586: 1586: 1586: typedef int io_state; 1586: typedef int open_mode; 1586: typedef int seek_dir; 1586: 1586: typedef std::streampos streampos; 1586: typedef std::streamoff streamoff; 1586: # 489 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: enum event 1586: { 1586: erase_event, 1586: imbue_event, 1586: copyfmt_event 1586: }; 1586: # 506 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: typedef void (*event_callback) (event __e, ios_base& __b, int __i); 1586: # 518 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: void 1586: register_callback(event_callback __fn, int __index); 1586: 1586: protected: 1586: streamsize _M_precision; 1586: streamsize _M_width; 1586: fmtflags _M_flags; 1586: iostate _M_exception; 1586: iostate _M_streambuf_state; 1586: 1586: 1586: 1586: struct _Callback_list 1586: { 1586: 1586: _Callback_list* _M_next; 1586: ios_base::event_callback _M_fn; 1586: int _M_index; 1586: _Atomic_word _M_refcount; 1586: 1586: _Callback_list(ios_base::event_callback __fn, int __index, 1586: _Callback_list* __cb) 1586: : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { } 1586: 1586: void 1586: _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 1586: 1586: 1586: int 1586: _M_remove_reference() 1586: { 1586: 1586: ; 1586: int __res = __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1); 1586: if (__res == 0) 1586: { 1586: ; 1586: } 1586: return __res; 1586: } 1586: }; 1586: 1586: _Callback_list* _M_callbacks; 1586: 1586: void 1586: _M_call_callbacks(event __ev) throw(); 1586: 1586: void 1586: _M_dispose_callbacks(void) throw(); 1586: 1586: 1586: struct _Words 1586: { 1586: void* _M_pword; 1586: long _M_iword; 1586: _Words() : _M_pword(0), _M_iword(0) { } 1586: }; 1586: 1586: 1586: _Words _M_word_zero; 1586: 1586: 1586: 1586: enum { _S_local_word_size = 8 }; 1586: _Words _M_local_word[_S_local_word_size]; 1586: 1586: 1586: int _M_word_size; 1586: _Words* _M_word; 1586: 1586: _Words& 1586: _M_grow_words(int __index, bool __iword); 1586: 1586: 1586: locale _M_ios_locale; 1586: 1586: void 1586: _M_init() throw(); 1586: 1586: public: 1586: 1586: 1586: 1586: 1586: 1586: class Init 1586: { 1586: friend class ios_base; 1586: public: 1586: Init(); 1586: ~Init(); 1586: 1586: 1586: Init(const Init&) = default; 1586: Init& operator=(const Init&) = default; 1586: 1586: 1586: private: 1586: static _Atomic_word _S_refcount; 1586: static bool _S_synced_with_stdio; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: fmtflags 1586: flags() const 1586: { return _M_flags; } 1586: # 636 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: fmtflags 1586: flags(fmtflags __fmtfl) 1586: { 1586: fmtflags __old = _M_flags; 1586: _M_flags = __fmtfl; 1586: return __old; 1586: } 1586: # 652 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: fmtflags 1586: setf(fmtflags __fmtfl) 1586: { 1586: fmtflags __old = _M_flags; 1586: _M_flags |= __fmtfl; 1586: return __old; 1586: } 1586: # 669 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: fmtflags 1586: setf(fmtflags __fmtfl, fmtflags __mask) 1586: { 1586: fmtflags __old = _M_flags; 1586: _M_flags &= ~__mask; 1586: _M_flags |= (__fmtfl & __mask); 1586: return __old; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: void 1586: unsetf(fmtflags __mask) 1586: { _M_flags &= ~__mask; } 1586: # 695 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: streamsize 1586: precision() const 1586: { return _M_precision; } 1586: 1586: 1586: 1586: 1586: 1586: 1586: streamsize 1586: precision(streamsize __prec) 1586: { 1586: streamsize __old = _M_precision; 1586: _M_precision = __prec; 1586: return __old; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: streamsize 1586: width() const 1586: { return _M_width; } 1586: 1586: 1586: 1586: 1586: 1586: 1586: streamsize 1586: width(streamsize __wide) 1586: { 1586: streamsize __old = _M_width; 1586: _M_width = __wide; 1586: return __old; 1586: } 1586: # 746 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: static bool 1586: sync_with_stdio(bool __sync = true); 1586: # 758 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: locale 1586: imbue(const locale& __loc) throw(); 1586: # 769 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: locale 1586: getloc() const 1586: { return _M_ios_locale; } 1586: # 780 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: const locale& 1586: _M_getloc() const 1586: { return _M_ios_locale; } 1586: # 799 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: static int 1586: xalloc() throw(); 1586: # 815 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: long& 1586: iword(int __ix) 1586: { 1586: _Words& __word = ((unsigned)__ix < (unsigned)_M_word_size) 1586: ? _M_word[__ix] : _M_grow_words(__ix, true); 1586: return __word._M_iword; 1586: } 1586: # 836 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: void*& 1586: pword(int __ix) 1586: { 1586: _Words& __word = ((unsigned)__ix < (unsigned)_M_word_size) 1586: ? _M_word[__ix] : _M_grow_words(__ix, false); 1586: return __word._M_pword; 1586: } 1586: # 853 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: virtual ~ios_base(); 1586: 1586: protected: 1586: ios_base() throw (); 1586: # 867 "/usr/mipsel-linux-gnu/include/c++/9/bits/ios_base.h" 3 1586: public: 1586: ios_base(const ios_base&) = delete; 1586: 1586: ios_base& 1586: operator=(const ios_base&) = delete; 1586: 1586: protected: 1586: void 1586: _M_move(ios_base&) noexcept; 1586: 1586: void 1586: _M_swap(ios_base& __rhs) noexcept; 1586: 1586: }; 1586: 1586: 1586: 1586: inline ios_base& 1586: boolalpha(ios_base& __base) 1586: { 1586: __base.setf(ios_base::boolalpha); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: noboolalpha(ios_base& __base) 1586: { 1586: __base.unsetf(ios_base::boolalpha); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: showbase(ios_base& __base) 1586: { 1586: __base.setf(ios_base::showbase); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: noshowbase(ios_base& __base) 1586: { 1586: __base.unsetf(ios_base::showbase); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: showpoint(ios_base& __base) 1586: { 1586: __base.setf(ios_base::showpoint); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: noshowpoint(ios_base& __base) 1586: { 1586: __base.unsetf(ios_base::showpoint); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: showpos(ios_base& __base) 1586: { 1586: __base.setf(ios_base::showpos); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: noshowpos(ios_base& __base) 1586: { 1586: __base.unsetf(ios_base::showpos); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: skipws(ios_base& __base) 1586: { 1586: __base.setf(ios_base::skipws); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: noskipws(ios_base& __base) 1586: { 1586: __base.unsetf(ios_base::skipws); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: uppercase(ios_base& __base) 1586: { 1586: __base.setf(ios_base::uppercase); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: nouppercase(ios_base& __base) 1586: { 1586: __base.unsetf(ios_base::uppercase); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: unitbuf(ios_base& __base) 1586: { 1586: __base.setf(ios_base::unitbuf); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: nounitbuf(ios_base& __base) 1586: { 1586: __base.unsetf(ios_base::unitbuf); 1586: return __base; 1586: } 1586: 1586: 1586: 1586: inline ios_base& 1586: internal(ios_base& __base) 1586: { 1586: __base.setf(ios_base::internal, ios_base::adjustfield); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: left(ios_base& __base) 1586: { 1586: __base.setf(ios_base::left, ios_base::adjustfield); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: right(ios_base& __base) 1586: { 1586: __base.setf(ios_base::right, ios_base::adjustfield); 1586: return __base; 1586: } 1586: 1586: 1586: 1586: inline ios_base& 1586: dec(ios_base& __base) 1586: { 1586: __base.setf(ios_base::dec, ios_base::basefield); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: hex(ios_base& __base) 1586: { 1586: __base.setf(ios_base::hex, ios_base::basefield); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: oct(ios_base& __base) 1586: { 1586: __base.setf(ios_base::oct, ios_base::basefield); 1586: return __base; 1586: } 1586: 1586: 1586: 1586: inline ios_base& 1586: fixed(ios_base& __base) 1586: { 1586: __base.setf(ios_base::fixed, ios_base::floatfield); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: scientific(ios_base& __base) 1586: { 1586: __base.setf(ios_base::scientific, ios_base::floatfield); 1586: return __base; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: inline ios_base& 1586: hexfloat(ios_base& __base) 1586: { 1586: __base.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield); 1586: return __base; 1586: } 1586: 1586: 1586: inline ios_base& 1586: defaultfloat(ios_base& __base) 1586: { 1586: __base.unsetf(ios_base::floatfield); 1586: return __base; 1586: } 1586: 1586: 1586: 1586: } 1586: # 43 "/usr/mipsel-linux-gnu/include/c++/9/ios" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 1 3 1586: # 36 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: # 45 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: template 1586: streamsize 1586: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*, 1586: basic_streambuf<_CharT, _Traits>*, bool&); 1586: # 121 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: template 1586: class basic_streambuf 1586: { 1586: public: 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef _CharT char_type; 1586: typedef _Traits traits_type; 1586: typedef typename traits_type::int_type int_type; 1586: typedef typename traits_type::pos_type pos_type; 1586: typedef typename traits_type::off_type off_type; 1586: 1586: 1586: 1586: 1586: typedef basic_streambuf __streambuf_type; 1586: 1586: 1586: friend class basic_ios; 1586: friend class basic_istream; 1586: friend class basic_ostream; 1586: friend class istreambuf_iterator; 1586: friend class ostreambuf_iterator; 1586: 1586: friend streamsize 1586: __copy_streambufs_eof<>(basic_streambuf*, basic_streambuf*, bool&); 1586: 1586: template 1586: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 1586: _CharT2*>::__type 1586: __copy_move_a2(istreambuf_iterator<_CharT2>, 1586: istreambuf_iterator<_CharT2>, _CharT2*); 1586: 1586: template 1586: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 1586: istreambuf_iterator<_CharT2> >::__type 1586: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 1586: const _CharT2&); 1586: 1586: template 1586: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 1586: void>::__type 1586: advance(istreambuf_iterator<_CharT2>&, _Distance); 1586: 1586: template 1586: friend basic_istream<_CharT2, _Traits2>& 1586: operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*); 1586: 1586: template 1586: friend basic_istream<_CharT2, _Traits2>& 1586: operator>>(basic_istream<_CharT2, _Traits2>&, 1586: basic_string<_CharT2, _Traits2, _Alloc>&); 1586: 1586: template 1586: friend basic_istream<_CharT2, _Traits2>& 1586: getline(basic_istream<_CharT2, _Traits2>&, 1586: basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2); 1586: 1586: protected: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: char_type* _M_in_beg; 1586: char_type* _M_in_cur; 1586: char_type* _M_in_end; 1586: char_type* _M_out_beg; 1586: char_type* _M_out_cur; 1586: char_type* _M_out_end; 1586: 1586: 1586: locale _M_buf_locale; 1586: 1586: public: 1586: 1586: virtual 1586: ~basic_streambuf() 1586: { } 1586: # 215 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: locale 1586: pubimbue(const locale& __loc) 1586: { 1586: locale __tmp(this->getloc()); 1586: this->imbue(__loc); 1586: _M_buf_locale = __loc; 1586: return __tmp; 1586: } 1586: # 232 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: locale 1586: getloc() const 1586: { return _M_buf_locale; } 1586: # 245 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: basic_streambuf* 1586: pubsetbuf(char_type* __s, streamsize __n) 1586: { return this->setbuf(__s, __n); } 1586: # 257 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: pos_type 1586: pubseekoff(off_type __off, ios_base::seekdir __way, 1586: ios_base::openmode __mode = ios_base::in | ios_base::out) 1586: { return this->seekoff(__off, __way, __mode); } 1586: # 269 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: pos_type 1586: pubseekpos(pos_type __sp, 1586: ios_base::openmode __mode = ios_base::in | ios_base::out) 1586: { return this->seekpos(__sp, __mode); } 1586: 1586: 1586: 1586: 1586: int 1586: pubsync() { return this->sync(); } 1586: # 290 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: streamsize 1586: in_avail() 1586: { 1586: const streamsize __ret = this->egptr() - this->gptr(); 1586: return __ret ? __ret : this->showmanyc(); 1586: } 1586: # 304 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: int_type 1586: snextc() 1586: { 1586: int_type __ret = traits_type::eof(); 1586: if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(), 1586: __ret), true)) 1586: __ret = this->sgetc(); 1586: return __ret; 1586: } 1586: # 322 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: int_type 1586: sbumpc() 1586: { 1586: int_type __ret; 1586: if (__builtin_expect(this->gptr() < this->egptr(), true)) 1586: { 1586: __ret = traits_type::to_int_type(*this->gptr()); 1586: this->gbump(1); 1586: } 1586: else 1586: __ret = this->uflow(); 1586: return __ret; 1586: } 1586: # 344 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: int_type 1586: sgetc() 1586: { 1586: int_type __ret; 1586: if (__builtin_expect(this->gptr() < this->egptr(), true)) 1586: __ret = traits_type::to_int_type(*this->gptr()); 1586: else 1586: __ret = this->underflow(); 1586: return __ret; 1586: } 1586: # 363 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: streamsize 1586: sgetn(char_type* __s, streamsize __n) 1586: { return this->xsgetn(__s, __n); } 1586: # 378 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: int_type 1586: sputbackc(char_type __c) 1586: { 1586: int_type __ret; 1586: const bool __testpos = this->eback() < this->gptr(); 1586: if (__builtin_expect(!__testpos || 1586: !traits_type::eq(__c, this->gptr()[-1]), false)) 1586: __ret = this->pbackfail(traits_type::to_int_type(__c)); 1586: else 1586: { 1586: this->gbump(-1); 1586: __ret = traits_type::to_int_type(*this->gptr()); 1586: } 1586: return __ret; 1586: } 1586: # 403 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: int_type 1586: sungetc() 1586: { 1586: int_type __ret; 1586: if (__builtin_expect(this->eback() < this->gptr(), true)) 1586: { 1586: this->gbump(-1); 1586: __ret = traits_type::to_int_type(*this->gptr()); 1586: } 1586: else 1586: __ret = this->pbackfail(); 1586: return __ret; 1586: } 1586: # 430 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: int_type 1586: sputc(char_type __c) 1586: { 1586: int_type __ret; 1586: if (__builtin_expect(this->pptr() < this->epptr(), true)) 1586: { 1586: *this->pptr() = __c; 1586: this->pbump(1); 1586: __ret = traits_type::to_int_type(__c); 1586: } 1586: else 1586: __ret = this->overflow(traits_type::to_int_type(__c)); 1586: return __ret; 1586: } 1586: # 456 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: streamsize 1586: sputn(const char_type* __s, streamsize __n) 1586: { return this->xsputn(__s, __n); } 1586: 1586: protected: 1586: # 470 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: basic_streambuf() 1586: : _M_in_beg(0), _M_in_cur(0), _M_in_end(0), 1586: _M_out_beg(0), _M_out_cur(0), _M_out_end(0), 1586: _M_buf_locale(locale()) 1586: { } 1586: # 488 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: char_type* 1586: eback() const { return _M_in_beg; } 1586: 1586: char_type* 1586: gptr() const { return _M_in_cur; } 1586: 1586: char_type* 1586: egptr() const { return _M_in_end; } 1586: # 504 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: void 1586: gbump(int __n) { _M_in_cur += __n; } 1586: # 515 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: void 1586: setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) 1586: { 1586: _M_in_beg = __gbeg; 1586: _M_in_cur = __gnext; 1586: _M_in_end = __gend; 1586: } 1586: # 535 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: char_type* 1586: pbase() const { return _M_out_beg; } 1586: 1586: char_type* 1586: pptr() const { return _M_out_cur; } 1586: 1586: char_type* 1586: epptr() const { return _M_out_end; } 1586: # 551 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: void 1586: pbump(int __n) { _M_out_cur += __n; } 1586: # 561 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: void 1586: setp(char_type* __pbeg, char_type* __pend) 1586: { 1586: _M_out_beg = _M_out_cur = __pbeg; 1586: _M_out_end = __pend; 1586: } 1586: # 582 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: virtual void 1586: imbue(const locale& __loc __attribute__ ((__unused__))) 1586: { } 1586: # 597 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: virtual basic_streambuf* 1586: setbuf(char_type*, streamsize) 1586: { return this; } 1586: # 608 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: virtual pos_type 1586: seekoff(off_type, ios_base::seekdir, 1586: ios_base::openmode = ios_base::in | ios_base::out) 1586: { return pos_type(off_type(-1)); } 1586: # 620 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: virtual pos_type 1586: seekpos(pos_type, 1586: ios_base::openmode = ios_base::in | ios_base::out) 1586: { return pos_type(off_type(-1)); } 1586: # 633 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: virtual int 1586: sync() { return 0; } 1586: # 655 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: virtual streamsize 1586: showmanyc() { return 0; } 1586: # 671 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: virtual streamsize 1586: xsgetn(char_type* __s, streamsize __n); 1586: # 693 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: virtual int_type 1586: underflow() 1586: { return traits_type::eof(); } 1586: # 706 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: virtual int_type 1586: uflow() 1586: { 1586: int_type __ret = traits_type::eof(); 1586: const bool __testeof = traits_type::eq_int_type(this->underflow(), 1586: __ret); 1586: if (!__testeof) 1586: { 1586: __ret = traits_type::to_int_type(*this->gptr()); 1586: this->gbump(1); 1586: } 1586: return __ret; 1586: } 1586: # 730 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: virtual int_type 1586: pbackfail(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 1586: { return traits_type::eof(); } 1586: # 748 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: virtual streamsize 1586: xsputn(const char_type* __s, streamsize __n); 1586: # 774 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: virtual int_type 1586: overflow(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 1586: { return traits_type::eof(); } 1586: 1586: 1586: 1586: public: 1586: # 790 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 3 1586: [[__deprecated__("stossc is deprecated, use sbumpc instead")]] 1586: 1586: void 1586: stossc() 1586: { 1586: if (this->gptr() < this->egptr()) 1586: this->gbump(1); 1586: else 1586: this->uflow(); 1586: } 1586: 1586: 1586: 1586: void 1586: __safe_gbump(streamsize __n) { _M_in_cur += __n; } 1586: 1586: void 1586: __safe_pbump(streamsize __n) { _M_out_cur += __n; } 1586: 1586: 1586: 1586: 1586: protected: 1586: 1586: basic_streambuf(const basic_streambuf&); 1586: 1586: basic_streambuf& 1586: operator=(const basic_streambuf&); 1586: 1586: 1586: void 1586: swap(basic_streambuf& __sb) 1586: { 1586: std::swap(_M_in_beg, __sb._M_in_beg); 1586: std::swap(_M_in_cur, __sb._M_in_cur); 1586: std::swap(_M_in_end, __sb._M_in_end); 1586: std::swap(_M_out_beg, __sb._M_out_beg); 1586: std::swap(_M_out_cur, __sb._M_out_cur); 1586: std::swap(_M_out_end, __sb._M_out_end); 1586: std::swap(_M_buf_locale, __sb._M_buf_locale); 1586: } 1586: 1586: }; 1586: 1586: 1586: template 1586: std::basic_streambuf<_CharT, _Traits>:: 1586: basic_streambuf(const basic_streambuf&) = default; 1586: 1586: template 1586: std::basic_streambuf<_CharT, _Traits>& 1586: std::basic_streambuf<_CharT, _Traits>:: 1586: operator=(const basic_streambuf&) = default; 1586: 1586: 1586: 1586: template<> 1586: streamsize 1586: __copy_streambufs_eof(basic_streambuf* __sbin, 1586: basic_streambuf* __sbout, bool& __ineof); 1586: 1586: template<> 1586: streamsize 1586: __copy_streambufs_eof(basic_streambuf* __sbin, 1586: basic_streambuf* __sbout, bool& __ineof); 1586: 1586: 1586: 1586: 1586: 1586: } 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/streambuf.tcc" 1 3 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/bits/streambuf.tcc" 3 1586: 1586: # 38 "/usr/mipsel-linux-gnu/include/c++/9/bits/streambuf.tcc" 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: template 1586: streamsize 1586: basic_streambuf<_CharT, _Traits>:: 1586: xsgetn(char_type* __s, streamsize __n) 1586: { 1586: streamsize __ret = 0; 1586: while (__ret < __n) 1586: { 1586: const streamsize __buf_len = this->egptr() - this->gptr(); 1586: if (__buf_len) 1586: { 1586: const streamsize __remaining = __n - __ret; 1586: const streamsize __len = std::min(__buf_len, __remaining); 1586: traits_type::copy(__s, this->gptr(), __len); 1586: __ret += __len; 1586: __s += __len; 1586: this->__safe_gbump(__len); 1586: } 1586: 1586: if (__ret < __n) 1586: { 1586: const int_type __c = this->uflow(); 1586: if (!traits_type::eq_int_type(__c, traits_type::eof())) 1586: { 1586: traits_type::assign(*__s++, traits_type::to_char_type(__c)); 1586: ++__ret; 1586: } 1586: else 1586: break; 1586: } 1586: } 1586: return __ret; 1586: } 1586: 1586: template 1586: streamsize 1586: basic_streambuf<_CharT, _Traits>:: 1586: xsputn(const char_type* __s, streamsize __n) 1586: { 1586: streamsize __ret = 0; 1586: while (__ret < __n) 1586: { 1586: const streamsize __buf_len = this->epptr() - this->pptr(); 1586: if (__buf_len) 1586: { 1586: const streamsize __remaining = __n - __ret; 1586: const streamsize __len = std::min(__buf_len, __remaining); 1586: traits_type::copy(this->pptr(), __s, __len); 1586: __ret += __len; 1586: __s += __len; 1586: this->__safe_pbump(__len); 1586: } 1586: 1586: if (__ret < __n) 1586: { 1586: int_type __c = this->overflow(traits_type::to_int_type(*__s)); 1586: if (!traits_type::eq_int_type(__c, traits_type::eof())) 1586: { 1586: ++__ret; 1586: ++__s; 1586: } 1586: else 1586: break; 1586: } 1586: } 1586: return __ret; 1586: } 1586: 1586: 1586: 1586: 1586: template 1586: streamsize 1586: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin, 1586: basic_streambuf<_CharT, _Traits>* __sbout, 1586: bool& __ineof) 1586: { 1586: streamsize __ret = 0; 1586: __ineof = true; 1586: typename _Traits::int_type __c = __sbin->sgetc(); 1586: while (!_Traits::eq_int_type(__c, _Traits::eof())) 1586: { 1586: __c = __sbout->sputc(_Traits::to_char_type(__c)); 1586: if (_Traits::eq_int_type(__c, _Traits::eof())) 1586: { 1586: __ineof = false; 1586: break; 1586: } 1586: ++__ret; 1586: __c = __sbin->snextc(); 1586: } 1586: return __ret; 1586: } 1586: 1586: template 1586: inline streamsize 1586: __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin, 1586: basic_streambuf<_CharT, _Traits>* __sbout) 1586: { 1586: bool __ineof; 1586: return __copy_streambufs_eof(__sbin, __sbout, __ineof); 1586: } 1586: 1586: 1586: 1586: 1586: extern template class basic_streambuf; 1586: extern template 1586: streamsize 1586: __copy_streambufs(basic_streambuf*, 1586: basic_streambuf*); 1586: extern template 1586: streamsize 1586: __copy_streambufs_eof(basic_streambuf*, 1586: basic_streambuf*, bool&); 1586: 1586: 1586: extern template class basic_streambuf; 1586: extern template 1586: streamsize 1586: __copy_streambufs(basic_streambuf*, 1586: basic_streambuf*); 1586: extern template 1586: streamsize 1586: __copy_streambufs_eof(basic_streambuf*, 1586: basic_streambuf*, bool&); 1586: 1586: 1586: 1586: 1586: } 1586: # 863 "/usr/mipsel-linux-gnu/include/c++/9/streambuf" 2 3 1586: # 44 "/usr/mipsel-linux-gnu/include/c++/9/ios" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 3 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 1 3 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: 1586: # 38 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/cwctype" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/cwctype" 3 1586: 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/cwctype" 3 1586: # 50 "/usr/mipsel-linux-gnu/include/c++/9/cwctype" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/wctype.h" 1 3 1586: # 38 "/usr/mipsel-linux-gnu/include/wctype.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/bits/wctype-wchar.h" 1 3 1586: # 38 "/usr/mipsel-linux-gnu/include/bits/wctype-wchar.h" 3 1586: typedef unsigned long int wctype_t; 1586: # 56 "/usr/mipsel-linux-gnu/include/bits/wctype-wchar.h" 3 1586: enum 1586: { 1586: __ISwupper = 0, 1586: __ISwlower = 1, 1586: __ISwalpha = 2, 1586: __ISwdigit = 3, 1586: __ISwxdigit = 4, 1586: __ISwspace = 5, 1586: __ISwprint = 6, 1586: __ISwgraph = 7, 1586: __ISwblank = 8, 1586: __ISwcntrl = 9, 1586: __ISwpunct = 10, 1586: __ISwalnum = 11, 1586: 1586: _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))), 1586: _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))), 1586: _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))), 1586: _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))), 1586: _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))), 1586: _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))), 1586: _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))), 1586: _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))), 1586: _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))), 1586: _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))), 1586: _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))), 1586: _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24)))) 1586: }; 1586: 1586: 1586: 1586: extern "C" { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int iswalnum (wint_t __wc) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern int iswalpha (wint_t __wc) throw (); 1586: 1586: 1586: extern int iswcntrl (wint_t __wc) throw (); 1586: 1586: 1586: 1586: extern int iswdigit (wint_t __wc) throw (); 1586: 1586: 1586: 1586: extern int iswgraph (wint_t __wc) throw (); 1586: 1586: 1586: 1586: 1586: extern int iswlower (wint_t __wc) throw (); 1586: 1586: 1586: extern int iswprint (wint_t __wc) throw (); 1586: 1586: 1586: 1586: 1586: extern int iswpunct (wint_t __wc) throw (); 1586: 1586: 1586: 1586: 1586: extern int iswspace (wint_t __wc) throw (); 1586: 1586: 1586: 1586: 1586: extern int iswupper (wint_t __wc) throw (); 1586: 1586: 1586: 1586: 1586: extern int iswxdigit (wint_t __wc) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern int iswblank (wint_t __wc) throw (); 1586: # 155 "/usr/mipsel-linux-gnu/include/bits/wctype-wchar.h" 3 1586: extern wctype_t wctype (const char *__property) throw (); 1586: 1586: 1586: 1586: extern int iswctype (wint_t __wc, wctype_t __desc) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern wint_t towlower (wint_t __wc) throw (); 1586: 1586: 1586: extern wint_t towupper (wint_t __wc) throw (); 1586: 1586: } 1586: # 39 "/usr/mipsel-linux-gnu/include/wctype.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: extern "C" { 1586: 1586: 1586: 1586: typedef const __int32_t *wctrans_t; 1586: 1586: 1586: 1586: extern wctrans_t wctrans (const char *__property) throw (); 1586: 1586: 1586: extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern int iswalnum_l (wint_t __wc, locale_t __locale) throw (); 1586: 1586: 1586: 1586: 1586: 1586: extern int iswalpha_l (wint_t __wc, locale_t __locale) throw (); 1586: 1586: 1586: extern int iswcntrl_l (wint_t __wc, locale_t __locale) throw (); 1586: 1586: 1586: 1586: extern int iswdigit_l (wint_t __wc, locale_t __locale) throw (); 1586: 1586: 1586: 1586: extern int iswgraph_l (wint_t __wc, locale_t __locale) throw (); 1586: 1586: 1586: 1586: 1586: extern int iswlower_l (wint_t __wc, locale_t __locale) throw (); 1586: 1586: 1586: extern int iswprint_l (wint_t __wc, locale_t __locale) throw (); 1586: 1586: 1586: 1586: 1586: extern int iswpunct_l (wint_t __wc, locale_t __locale) throw (); 1586: 1586: 1586: 1586: 1586: extern int iswspace_l (wint_t __wc, locale_t __locale) throw (); 1586: 1586: 1586: 1586: 1586: extern int iswupper_l (wint_t __wc, locale_t __locale) throw (); 1586: 1586: 1586: 1586: 1586: extern int iswxdigit_l (wint_t __wc, locale_t __locale) throw (); 1586: 1586: 1586: 1586: 1586: extern int iswblank_l (wint_t __wc, locale_t __locale) throw (); 1586: 1586: 1586: 1586: extern wctype_t wctype_l (const char *__property, locale_t __locale) 1586: throw (); 1586: 1586: 1586: 1586: extern int iswctype_l (wint_t __wc, wctype_t __desc, locale_t __locale) 1586: throw (); 1586: 1586: 1586: 1586: 1586: 1586: 1586: extern wint_t towlower_l (wint_t __wc, locale_t __locale) throw (); 1586: 1586: 1586: extern wint_t towupper_l (wint_t __wc, locale_t __locale) throw (); 1586: 1586: 1586: 1586: extern wctrans_t wctrans_l (const char *__property, locale_t __locale) 1586: throw (); 1586: 1586: 1586: extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc, 1586: locale_t __locale) throw (); 1586: 1586: 1586: 1586: } 1586: # 51 "/usr/mipsel-linux-gnu/include/c++/9/cwctype" 2 3 1586: # 80 "/usr/mipsel-linux-gnu/include/c++/9/cwctype" 3 1586: namespace std 1586: { 1586: using ::wctrans_t; 1586: using ::wctype_t; 1586: using ::wint_t; 1586: 1586: using ::iswalnum; 1586: using ::iswalpha; 1586: 1586: using ::iswblank; 1586: 1586: using ::iswcntrl; 1586: using ::iswctype; 1586: using ::iswdigit; 1586: using ::iswgraph; 1586: using ::iswlower; 1586: using ::iswprint; 1586: using ::iswpunct; 1586: using ::iswspace; 1586: using ::iswupper; 1586: using ::iswxdigit; 1586: using ::towctrans; 1586: using ::towlower; 1586: using ::towupper; 1586: using ::wctrans; 1586: using ::wctype; 1586: } 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/cctype" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/cctype" 3 1586: 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/cctype" 3 1586: # 41 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/ctype_base.h" 1 3 1586: # 36 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/ctype_base.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: struct ctype_base 1586: { 1586: 1586: typedef const int* __to_type; 1586: 1586: 1586: 1586: typedef unsigned short mask; 1586: static const mask upper = _ISupper; 1586: static const mask lower = _ISlower; 1586: static const mask alpha = _ISalpha; 1586: static const mask digit = _ISdigit; 1586: static const mask xdigit = _ISxdigit; 1586: static const mask space = _ISspace; 1586: static const mask print = _ISprint; 1586: static const mask graph = _ISalpha | _ISdigit | _ISpunct; 1586: static const mask cntrl = _IScntrl; 1586: static const mask punct = _ISpunct; 1586: static const mask alnum = _ISalpha | _ISdigit; 1586: 1586: static const mask blank = _ISblank; 1586: 1586: }; 1586: 1586: 1586: } 1586: # 42 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 2 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/streambuf_iterator.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/streambuf_iterator.h" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/streambuf_iterator.h" 3 1586: 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 49 "/usr/mipsel-linux-gnu/include/c++/9/bits/streambuf_iterator.h" 3 1586: template 1586: class istreambuf_iterator 1586: : public iterator 1586: 1586: 1586: 1586: { 1586: public: 1586: 1586: 1586: 1586: typedef _CharT char_type; 1586: typedef _Traits traits_type; 1586: typedef typename _Traits::int_type int_type; 1586: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 1586: typedef basic_istream<_CharT, _Traits> istream_type; 1586: 1586: 1586: template 1586: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 1586: ostreambuf_iterator<_CharT2> >::__type 1586: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 1586: ostreambuf_iterator<_CharT2>); 1586: 1586: template 1586: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 1586: _CharT2*>::__type 1586: __copy_move_a2(istreambuf_iterator<_CharT2>, 1586: istreambuf_iterator<_CharT2>, _CharT2*); 1586: 1586: template 1586: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 1586: istreambuf_iterator<_CharT2> >::__type 1586: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 1586: const _CharT2&); 1586: 1586: template 1586: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 1586: void>::__type 1586: advance(istreambuf_iterator<_CharT2>&, _Distance); 1586: 1586: private: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: mutable streambuf_type* _M_sbuf; 1586: int_type _M_c; 1586: 1586: public: 1586: 1586: constexpr istreambuf_iterator() noexcept 1586: : _M_sbuf(0), _M_c(traits_type::eof()) { } 1586: 1586: 1586: istreambuf_iterator(const istreambuf_iterator&) noexcept = default; 1586: 1586: ~istreambuf_iterator() = default; 1586: 1586: 1586: 1586: istreambuf_iterator(istream_type& __s) noexcept 1586: : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { } 1586: 1586: 1586: istreambuf_iterator(streambuf_type* __s) noexcept 1586: : _M_sbuf(__s), _M_c(traits_type::eof()) { } 1586: 1586: 1586: istreambuf_iterator& 1586: operator=(const istreambuf_iterator&) noexcept = default; 1586: 1586: 1586: 1586: 1586: 1586: char_type 1586: operator*() const 1586: { 1586: int_type __c = _M_get(); 1586: # 144 "/usr/mipsel-linux-gnu/include/c++/9/bits/streambuf_iterator.h" 3 1586: return traits_type::to_char_type(__c); 1586: } 1586: 1586: 1586: istreambuf_iterator& 1586: operator++() 1586: { 1586: 1586: 1586: 1586: ; 1586: 1586: _M_sbuf->sbumpc(); 1586: _M_c = traits_type::eof(); 1586: return *this; 1586: } 1586: 1586: 1586: istreambuf_iterator 1586: operator++(int) 1586: { 1586: 1586: 1586: 1586: ; 1586: 1586: istreambuf_iterator __old = *this; 1586: __old._M_c = _M_sbuf->sbumpc(); 1586: _M_c = traits_type::eof(); 1586: return __old; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: bool 1586: equal(const istreambuf_iterator& __b) const 1586: { return _M_at_eof() == __b._M_at_eof(); } 1586: 1586: private: 1586: int_type 1586: _M_get() const 1586: { 1586: int_type __ret = _M_c; 1586: if (_M_sbuf && _S_is_eof(__ret) && _S_is_eof(__ret = _M_sbuf->sgetc())) 1586: _M_sbuf = 0; 1586: return __ret; 1586: } 1586: 1586: bool 1586: _M_at_eof() const 1586: { return _S_is_eof(_M_get()); } 1586: 1586: static bool 1586: _S_is_eof(int_type __c) 1586: { 1586: const int_type __eof = traits_type::eof(); 1586: return traits_type::eq_int_type(__c, __eof); 1586: } 1586: }; 1586: 1586: template 1586: inline bool 1586: operator==(const istreambuf_iterator<_CharT, _Traits>& __a, 1586: const istreambuf_iterator<_CharT, _Traits>& __b) 1586: { return __a.equal(__b); } 1586: 1586: template 1586: inline bool 1586: operator!=(const istreambuf_iterator<_CharT, _Traits>& __a, 1586: const istreambuf_iterator<_CharT, _Traits>& __b) 1586: { return !__a.equal(__b); } 1586: 1586: 1586: template 1586: class ostreambuf_iterator 1586: : public iterator 1586: { 1586: public: 1586: 1586: 1586: 1586: typedef _CharT char_type; 1586: typedef _Traits traits_type; 1586: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 1586: typedef basic_ostream<_CharT, _Traits> ostream_type; 1586: 1586: 1586: template 1586: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 1586: ostreambuf_iterator<_CharT2> >::__type 1586: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 1586: ostreambuf_iterator<_CharT2>); 1586: 1586: private: 1586: streambuf_type* _M_sbuf; 1586: bool _M_failed; 1586: 1586: public: 1586: 1586: ostreambuf_iterator(ostream_type& __s) noexcept 1586: : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { } 1586: 1586: 1586: ostreambuf_iterator(streambuf_type* __s) noexcept 1586: : _M_sbuf(__s), _M_failed(!_M_sbuf) { } 1586: 1586: 1586: ostreambuf_iterator& 1586: operator=(_CharT __c) 1586: { 1586: if (!_M_failed && 1586: _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof())) 1586: _M_failed = true; 1586: return *this; 1586: } 1586: 1586: 1586: ostreambuf_iterator& 1586: operator*() 1586: { return *this; } 1586: 1586: 1586: ostreambuf_iterator& 1586: operator++(int) 1586: { return *this; } 1586: 1586: 1586: ostreambuf_iterator& 1586: operator++() 1586: { return *this; } 1586: 1586: 1586: bool 1586: failed() const noexcept 1586: { return _M_failed; } 1586: 1586: ostreambuf_iterator& 1586: _M_put(const _CharT* __ws, streamsize __len) 1586: { 1586: if (__builtin_expect(!_M_failed, true) 1586: && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len, 1586: false)) 1586: _M_failed = true; 1586: return *this; 1586: } 1586: }; 1586: 1586: 1586: template 1586: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1586: ostreambuf_iterator<_CharT> >::__type 1586: copy(istreambuf_iterator<_CharT> __first, 1586: istreambuf_iterator<_CharT> __last, 1586: ostreambuf_iterator<_CharT> __result) 1586: { 1586: if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed) 1586: { 1586: bool __ineof; 1586: __copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof); 1586: if (!__ineof) 1586: __result._M_failed = true; 1586: } 1586: return __result; 1586: } 1586: 1586: template 1586: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1586: ostreambuf_iterator<_CharT> >::__type 1586: __copy_move_a2(_CharT* __first, _CharT* __last, 1586: ostreambuf_iterator<_CharT> __result) 1586: { 1586: const streamsize __num = __last - __first; 1586: if (__num > 0) 1586: __result._M_put(__first, __num); 1586: return __result; 1586: } 1586: 1586: template 1586: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1586: ostreambuf_iterator<_CharT> >::__type 1586: __copy_move_a2(const _CharT* __first, const _CharT* __last, 1586: ostreambuf_iterator<_CharT> __result) 1586: { 1586: const streamsize __num = __last - __first; 1586: if (__num > 0) 1586: __result._M_put(__first, __num); 1586: return __result; 1586: } 1586: 1586: template 1586: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1586: _CharT*>::__type 1586: __copy_move_a2(istreambuf_iterator<_CharT> __first, 1586: istreambuf_iterator<_CharT> __last, _CharT* __result) 1586: { 1586: typedef istreambuf_iterator<_CharT> __is_iterator_type; 1586: typedef typename __is_iterator_type::traits_type traits_type; 1586: typedef typename __is_iterator_type::streambuf_type streambuf_type; 1586: typedef typename traits_type::int_type int_type; 1586: 1586: if (__first._M_sbuf && !__last._M_sbuf) 1586: { 1586: streambuf_type* __sb = __first._M_sbuf; 1586: int_type __c = __sb->sgetc(); 1586: while (!traits_type::eq_int_type(__c, traits_type::eof())) 1586: { 1586: const streamsize __n = __sb->egptr() - __sb->gptr(); 1586: if (__n > 1) 1586: { 1586: traits_type::copy(__result, __sb->gptr(), __n); 1586: __sb->__safe_gbump(__n); 1586: __result += __n; 1586: __c = __sb->underflow(); 1586: } 1586: else 1586: { 1586: *__result++ = traits_type::to_char_type(__c); 1586: __c = __sb->snextc(); 1586: } 1586: } 1586: } 1586: return __result; 1586: } 1586: 1586: template 1586: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1586: istreambuf_iterator<_CharT> >::__type 1586: find(istreambuf_iterator<_CharT> __first, 1586: istreambuf_iterator<_CharT> __last, const _CharT& __val) 1586: { 1586: typedef istreambuf_iterator<_CharT> __is_iterator_type; 1586: typedef typename __is_iterator_type::traits_type traits_type; 1586: typedef typename __is_iterator_type::streambuf_type streambuf_type; 1586: typedef typename traits_type::int_type int_type; 1586: const int_type __eof = traits_type::eof(); 1586: 1586: if (__first._M_sbuf && !__last._M_sbuf) 1586: { 1586: const int_type __ival = traits_type::to_int_type(__val); 1586: streambuf_type* __sb = __first._M_sbuf; 1586: int_type __c = __sb->sgetc(); 1586: while (!traits_type::eq_int_type(__c, __eof) 1586: && !traits_type::eq_int_type(__c, __ival)) 1586: { 1586: streamsize __n = __sb->egptr() - __sb->gptr(); 1586: if (__n > 1) 1586: { 1586: const _CharT* __p = traits_type::find(__sb->gptr(), 1586: __n, __val); 1586: if (__p) 1586: __n = __p - __sb->gptr(); 1586: __sb->__safe_gbump(__n); 1586: __c = __sb->sgetc(); 1586: } 1586: else 1586: __c = __sb->snextc(); 1586: } 1586: 1586: __first._M_c = __eof; 1586: } 1586: 1586: return __first; 1586: } 1586: 1586: template 1586: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 1586: void>::__type 1586: advance(istreambuf_iterator<_CharT>& __i, _Distance __n) 1586: { 1586: if (__n == 0) 1586: return; 1586: 1586: ; 1586: 1586: 1586: ; 1586: 1586: typedef istreambuf_iterator<_CharT> __is_iterator_type; 1586: typedef typename __is_iterator_type::traits_type traits_type; 1586: typedef typename __is_iterator_type::streambuf_type streambuf_type; 1586: typedef typename traits_type::int_type int_type; 1586: const int_type __eof = traits_type::eof(); 1586: 1586: streambuf_type* __sb = __i._M_sbuf; 1586: while (__n > 0) 1586: { 1586: streamsize __size = __sb->egptr() - __sb->gptr(); 1586: if (__size > __n) 1586: { 1586: __sb->__safe_gbump(__n); 1586: break; 1586: } 1586: 1586: __sb->__safe_gbump(__size); 1586: __n -= __size; 1586: if (traits_type::eq_int_type(__sb->underflow(), __eof)) 1586: { 1586: 1586: 1586: ; 1586: break; 1586: } 1586: } 1586: 1586: __i._M_c = __eof; 1586: } 1586: 1586: 1586: 1586: 1586: } 1586: # 49 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 71 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: template 1586: void 1586: __convert_to_v(const char*, _Tp&, ios_base::iostate&, 1586: const __c_locale&) throw(); 1586: 1586: 1586: template<> 1586: void 1586: __convert_to_v(const char*, float&, ios_base::iostate&, 1586: const __c_locale&) throw(); 1586: 1586: template<> 1586: void 1586: __convert_to_v(const char*, double&, ios_base::iostate&, 1586: const __c_locale&) throw(); 1586: 1586: template<> 1586: void 1586: __convert_to_v(const char*, long double&, ios_base::iostate&, 1586: const __c_locale&) throw(); 1586: 1586: 1586: 1586: template 1586: struct __pad 1586: { 1586: static void 1586: _S_pad(ios_base& __io, _CharT __fill, _CharT* __news, 1586: const _CharT* __olds, streamsize __newlen, streamsize __oldlen); 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: _CharT* 1586: __add_grouping(_CharT* __s, _CharT __sep, 1586: const char* __gbeg, size_t __gsize, 1586: const _CharT* __first, const _CharT* __last); 1586: 1586: 1586: 1586: 1586: template 1586: inline 1586: ostreambuf_iterator<_CharT> 1586: __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len) 1586: { 1586: __s._M_put(__ws, __len); 1586: return __s; 1586: } 1586: 1586: 1586: template 1586: inline 1586: _OutIter 1586: __write(_OutIter __s, const _CharT* __ws, int __len) 1586: { 1586: for (int __j = 0; __j < __len; __j++, ++__s) 1586: *__s = __ws[__j]; 1586: return __s; 1586: } 1586: # 149 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: template 1586: class __ctype_abstract_base : public locale::facet, public ctype_base 1586: { 1586: public: 1586: 1586: 1586: typedef _CharT char_type; 1586: # 168 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: bool 1586: is(mask __m, char_type __c) const 1586: { return this->do_is(__m, __c); } 1586: # 185 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: const char_type* 1586: is(const char_type *__lo, const char_type *__hi, mask *__vec) const 1586: { return this->do_is(__lo, __hi, __vec); } 1586: # 201 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: const char_type* 1586: scan_is(mask __m, const char_type* __lo, const char_type* __hi) const 1586: { return this->do_scan_is(__m, __lo, __hi); } 1586: # 217 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: const char_type* 1586: scan_not(mask __m, const char_type* __lo, const char_type* __hi) const 1586: { return this->do_scan_not(__m, __lo, __hi); } 1586: # 231 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: char_type 1586: toupper(char_type __c) const 1586: { return this->do_toupper(__c); } 1586: # 246 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: const char_type* 1586: toupper(char_type *__lo, const char_type* __hi) const 1586: { return this->do_toupper(__lo, __hi); } 1586: # 260 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: char_type 1586: tolower(char_type __c) const 1586: { return this->do_tolower(__c); } 1586: # 275 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: const char_type* 1586: tolower(char_type* __lo, const char_type* __hi) const 1586: { return this->do_tolower(__lo, __hi); } 1586: # 292 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: char_type 1586: widen(char __c) const 1586: { return this->do_widen(__c); } 1586: # 311 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: const char* 1586: widen(const char* __lo, const char* __hi, char_type* __to) const 1586: { return this->do_widen(__lo, __hi, __to); } 1586: # 330 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: char 1586: narrow(char_type __c, char __dfault) const 1586: { return this->do_narrow(__c, __dfault); } 1586: # 352 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: const char_type* 1586: narrow(const char_type* __lo, const char_type* __hi, 1586: char __dfault, char* __to) const 1586: { return this->do_narrow(__lo, __hi, __dfault, __to); } 1586: 1586: protected: 1586: explicit 1586: __ctype_abstract_base(size_t __refs = 0): facet(__refs) { } 1586: 1586: virtual 1586: ~__ctype_abstract_base() { } 1586: # 377 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual bool 1586: do_is(mask __m, char_type __c) const = 0; 1586: # 396 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual const char_type* 1586: do_is(const char_type* __lo, const char_type* __hi, 1586: mask* __vec) const = 0; 1586: # 415 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual const char_type* 1586: do_scan_is(mask __m, const char_type* __lo, 1586: const char_type* __hi) const = 0; 1586: # 434 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual const char_type* 1586: do_scan_not(mask __m, const char_type* __lo, 1586: const char_type* __hi) const = 0; 1586: # 452 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual char_type 1586: do_toupper(char_type __c) const = 0; 1586: # 469 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual const char_type* 1586: do_toupper(char_type* __lo, const char_type* __hi) const = 0; 1586: # 485 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual char_type 1586: do_tolower(char_type __c) const = 0; 1586: # 502 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual const char_type* 1586: do_tolower(char_type* __lo, const char_type* __hi) const = 0; 1586: # 521 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual char_type 1586: do_widen(char __c) const = 0; 1586: # 542 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual const char* 1586: do_widen(const char* __lo, const char* __hi, char_type* __to) const = 0; 1586: # 563 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual char 1586: do_narrow(char_type __c, char __dfault) const = 0; 1586: # 588 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual const char_type* 1586: do_narrow(const char_type* __lo, const char_type* __hi, 1586: char __dfault, char* __to) const = 0; 1586: }; 1586: # 611 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: template 1586: class ctype : public __ctype_abstract_base<_CharT> 1586: { 1586: public: 1586: 1586: typedef _CharT char_type; 1586: typedef typename __ctype_abstract_base<_CharT>::mask mask; 1586: 1586: 1586: static locale::id id; 1586: 1586: explicit 1586: ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { } 1586: 1586: protected: 1586: virtual 1586: ~ctype(); 1586: 1586: virtual bool 1586: do_is(mask __m, char_type __c) const; 1586: 1586: virtual const char_type* 1586: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 1586: 1586: virtual const char_type* 1586: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 1586: 1586: virtual const char_type* 1586: do_scan_not(mask __m, const char_type* __lo, 1586: const char_type* __hi) const; 1586: 1586: virtual char_type 1586: do_toupper(char_type __c) const; 1586: 1586: virtual const char_type* 1586: do_toupper(char_type* __lo, const char_type* __hi) const; 1586: 1586: virtual char_type 1586: do_tolower(char_type __c) const; 1586: 1586: virtual const char_type* 1586: do_tolower(char_type* __lo, const char_type* __hi) const; 1586: 1586: virtual char_type 1586: do_widen(char __c) const; 1586: 1586: virtual const char* 1586: do_widen(const char* __lo, const char* __hi, char_type* __dest) const; 1586: 1586: virtual char 1586: do_narrow(char_type, char __dfault) const; 1586: 1586: virtual const char_type* 1586: do_narrow(const char_type* __lo, const char_type* __hi, 1586: char __dfault, char* __to) const; 1586: }; 1586: 1586: template 1586: locale::id ctype<_CharT>::id; 1586: # 680 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: template<> 1586: class ctype : public locale::facet, public ctype_base 1586: { 1586: public: 1586: 1586: 1586: typedef char char_type; 1586: 1586: protected: 1586: 1586: __c_locale _M_c_locale_ctype; 1586: bool _M_del; 1586: __to_type _M_toupper; 1586: __to_type _M_tolower; 1586: const mask* _M_table; 1586: mutable char _M_widen_ok; 1586: mutable char _M_widen[1 + static_cast(-1)]; 1586: mutable char _M_narrow[1 + static_cast(-1)]; 1586: mutable char _M_narrow_ok; 1586: 1586: 1586: public: 1586: 1586: static locale::id id; 1586: 1586: static const size_t table_size = 1 + static_cast(-1); 1586: # 717 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: explicit 1586: ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0); 1586: # 730 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: explicit 1586: ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false, 1586: size_t __refs = 0); 1586: # 743 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: inline bool 1586: is(mask __m, char __c) const; 1586: # 758 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: inline const char* 1586: is(const char* __lo, const char* __hi, mask* __vec) const; 1586: # 772 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: inline const char* 1586: scan_is(mask __m, const char* __lo, const char* __hi) const; 1586: # 786 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: inline const char* 1586: scan_not(mask __m, const char* __lo, const char* __hi) const; 1586: # 801 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: char_type 1586: toupper(char_type __c) const 1586: { return this->do_toupper(__c); } 1586: # 818 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: const char_type* 1586: toupper(char_type *__lo, const char_type* __hi) const 1586: { return this->do_toupper(__lo, __hi); } 1586: # 834 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: char_type 1586: tolower(char_type __c) const 1586: { return this->do_tolower(__c); } 1586: # 851 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: const char_type* 1586: tolower(char_type* __lo, const char_type* __hi) const 1586: { return this->do_tolower(__lo, __hi); } 1586: # 871 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: char_type 1586: widen(char __c) const 1586: { 1586: if (_M_widen_ok) 1586: return _M_widen[static_cast(__c)]; 1586: this->_M_widen_init(); 1586: return this->do_widen(__c); 1586: } 1586: # 898 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: const char* 1586: widen(const char* __lo, const char* __hi, char_type* __to) const 1586: { 1586: if (_M_widen_ok == 1) 1586: { 1586: if (__builtin_expect(__hi != __lo, true)) 1586: __builtin_memcpy(__to, __lo, __hi - __lo); 1586: return __hi; 1586: } 1586: if (!_M_widen_ok) 1586: _M_widen_init(); 1586: return this->do_widen(__lo, __hi, __to); 1586: } 1586: # 930 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: char 1586: narrow(char_type __c, char __dfault) const 1586: { 1586: if (_M_narrow[static_cast(__c)]) 1586: return _M_narrow[static_cast(__c)]; 1586: const char __t = do_narrow(__c, __dfault); 1586: if (__t != __dfault) 1586: _M_narrow[static_cast(__c)] = __t; 1586: return __t; 1586: } 1586: # 963 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: const char_type* 1586: narrow(const char_type* __lo, const char_type* __hi, 1586: char __dfault, char* __to) const 1586: { 1586: if (__builtin_expect(_M_narrow_ok == 1, true)) 1586: { 1586: if (__builtin_expect(__hi != __lo, true)) 1586: __builtin_memcpy(__to, __lo, __hi - __lo); 1586: return __hi; 1586: } 1586: if (!_M_narrow_ok) 1586: _M_narrow_init(); 1586: return this->do_narrow(__lo, __hi, __dfault, __to); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: const mask* 1586: table() const throw() 1586: { return _M_table; } 1586: 1586: 1586: static const mask* 1586: classic_table() throw(); 1586: protected: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: virtual 1586: ~ctype(); 1586: # 1013 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual char_type 1586: do_toupper(char_type __c) const; 1586: # 1030 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual const char_type* 1586: do_toupper(char_type* __lo, const char_type* __hi) const; 1586: # 1046 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual char_type 1586: do_tolower(char_type __c) const; 1586: # 1063 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual const char_type* 1586: do_tolower(char_type* __lo, const char_type* __hi) const; 1586: # 1083 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual char_type 1586: do_widen(char __c) const 1586: { return __c; } 1586: # 1106 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual const char* 1586: do_widen(const char* __lo, const char* __hi, char_type* __to) const 1586: { 1586: if (__builtin_expect(__hi != __lo, true)) 1586: __builtin_memcpy(__to, __lo, __hi - __lo); 1586: return __hi; 1586: } 1586: # 1133 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual char 1586: do_narrow(char_type __c, char __dfault __attribute__((__unused__))) const 1586: { return __c; } 1586: # 1159 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual const char_type* 1586: do_narrow(const char_type* __lo, const char_type* __hi, 1586: char __dfault __attribute__((__unused__)), char* __to) const 1586: { 1586: if (__builtin_expect(__hi != __lo, true)) 1586: __builtin_memcpy(__to, __lo, __hi - __lo); 1586: return __hi; 1586: } 1586: 1586: private: 1586: void _M_narrow_init() const; 1586: void _M_widen_init() const; 1586: }; 1586: # 1185 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: template<> 1586: class ctype : public __ctype_abstract_base 1586: { 1586: public: 1586: 1586: 1586: typedef wchar_t char_type; 1586: typedef wctype_t __wmask_type; 1586: 1586: protected: 1586: __c_locale _M_c_locale_ctype; 1586: 1586: 1586: bool _M_narrow_ok; 1586: char _M_narrow[128]; 1586: wint_t _M_widen[1 + static_cast(-1)]; 1586: 1586: 1586: mask _M_bit[16]; 1586: __wmask_type _M_wmask[16]; 1586: 1586: public: 1586: 1586: 1586: static locale::id id; 1586: # 1218 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: explicit 1586: ctype(size_t __refs = 0); 1586: # 1229 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: explicit 1586: ctype(__c_locale __cloc, size_t __refs = 0); 1586: 1586: protected: 1586: __wmask_type 1586: _M_convert_to_wmask(const mask __m) const throw(); 1586: 1586: 1586: virtual 1586: ~ctype(); 1586: # 1253 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual bool 1586: do_is(mask __m, char_type __c) const; 1586: # 1272 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual const char_type* 1586: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 1586: # 1290 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual const char_type* 1586: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 1586: # 1308 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual const char_type* 1586: do_scan_not(mask __m, const char_type* __lo, 1586: const char_type* __hi) const; 1586: # 1325 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual char_type 1586: do_toupper(char_type __c) const; 1586: # 1342 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual const char_type* 1586: do_toupper(char_type* __lo, const char_type* __hi) const; 1586: # 1358 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual char_type 1586: do_tolower(char_type __c) const; 1586: # 1375 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual const char_type* 1586: do_tolower(char_type* __lo, const char_type* __hi) const; 1586: # 1395 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual char_type 1586: do_widen(char __c) const; 1586: # 1417 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual const char* 1586: do_widen(const char* __lo, const char* __hi, char_type* __to) const; 1586: # 1440 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual char 1586: do_narrow(char_type __c, char __dfault) const; 1586: # 1466 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual const char_type* 1586: do_narrow(const char_type* __lo, const char_type* __hi, 1586: char __dfault, char* __to) const; 1586: 1586: 1586: void 1586: _M_initialize_ctype() throw(); 1586: }; 1586: 1586: 1586: 1586: template 1586: class ctype_byname : public ctype<_CharT> 1586: { 1586: public: 1586: typedef typename ctype<_CharT>::mask mask; 1586: 1586: explicit 1586: ctype_byname(const char* __s, size_t __refs = 0); 1586: 1586: 1586: explicit 1586: ctype_byname(const string& __s, size_t __refs = 0) 1586: : ctype_byname(__s.c_str(), __refs) { } 1586: 1586: 1586: protected: 1586: virtual 1586: ~ctype_byname() { } 1586: }; 1586: 1586: 1586: template<> 1586: class ctype_byname : public ctype 1586: { 1586: public: 1586: explicit 1586: ctype_byname(const char* __s, size_t __refs = 0); 1586: 1586: 1586: explicit 1586: ctype_byname(const string& __s, size_t __refs = 0); 1586: 1586: 1586: protected: 1586: virtual 1586: ~ctype_byname(); 1586: }; 1586: 1586: 1586: template<> 1586: class ctype_byname : public ctype 1586: { 1586: public: 1586: explicit 1586: ctype_byname(const char* __s, size_t __refs = 0); 1586: 1586: 1586: explicit 1586: ctype_byname(const string& __s, size_t __refs = 0); 1586: 1586: 1586: protected: 1586: virtual 1586: ~ctype_byname(); 1586: }; 1586: 1586: 1586: 1586: } 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/ctype_inline.h" 1 3 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/ctype_inline.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: bool 1586: ctype:: 1586: is(mask __m, char __c) const 1586: { return _M_table[static_cast(__c)] & __m; } 1586: 1586: const char* 1586: ctype:: 1586: is(const char* __low, const char* __high, mask* __vec) const 1586: { 1586: while (__low < __high) 1586: *__vec++ = _M_table[static_cast(*__low++)]; 1586: return __high; 1586: } 1586: 1586: const char* 1586: ctype:: 1586: scan_is(mask __m, const char* __low, const char* __high) const 1586: { 1586: while (__low < __high 1586: && !(_M_table[static_cast(*__low)] & __m)) 1586: ++__low; 1586: return __low; 1586: } 1586: 1586: const char* 1586: ctype:: 1586: scan_not(mask __m, const char* __low, const char* __high) const 1586: { 1586: while (__low < __high 1586: && (_M_table[static_cast(*__low)] & __m) != 0) 1586: ++__low; 1586: return __low; 1586: } 1586: 1586: 1586: } 1586: # 1539 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: class __num_base 1586: { 1586: public: 1586: 1586: 1586: enum 1586: { 1586: _S_ominus, 1586: _S_oplus, 1586: _S_ox, 1586: _S_oX, 1586: _S_odigits, 1586: _S_odigits_end = _S_odigits + 16, 1586: _S_oudigits = _S_odigits_end, 1586: _S_oudigits_end = _S_oudigits + 16, 1586: _S_oe = _S_odigits + 14, 1586: _S_oE = _S_oudigits + 14, 1586: _S_oend = _S_oudigits_end 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: static const char* _S_atoms_out; 1586: 1586: 1586: 1586: static const char* _S_atoms_in; 1586: 1586: enum 1586: { 1586: _S_iminus, 1586: _S_iplus, 1586: _S_ix, 1586: _S_iX, 1586: _S_izero, 1586: _S_ie = _S_izero + 14, 1586: _S_iE = _S_izero + 20, 1586: _S_iend = 26 1586: }; 1586: 1586: 1586: 1586: static void 1586: _S_format_float(const ios_base& __io, char* __fptr, char __mod) throw(); 1586: }; 1586: 1586: template 1586: struct __numpunct_cache : public locale::facet 1586: { 1586: const char* _M_grouping; 1586: size_t _M_grouping_size; 1586: bool _M_use_grouping; 1586: const _CharT* _M_truename; 1586: size_t _M_truename_size; 1586: const _CharT* _M_falsename; 1586: size_t _M_falsename_size; 1586: _CharT _M_decimal_point; 1586: _CharT _M_thousands_sep; 1586: 1586: 1586: 1586: 1586: 1586: _CharT _M_atoms_out[__num_base::_S_oend]; 1586: 1586: 1586: 1586: 1586: 1586: _CharT _M_atoms_in[__num_base::_S_iend]; 1586: 1586: bool _M_allocated; 1586: 1586: __numpunct_cache(size_t __refs = 0) 1586: : facet(__refs), _M_grouping(0), _M_grouping_size(0), 1586: _M_use_grouping(false), 1586: _M_truename(0), _M_truename_size(0), _M_falsename(0), 1586: _M_falsename_size(0), _M_decimal_point(_CharT()), 1586: _M_thousands_sep(_CharT()), _M_allocated(false) 1586: { } 1586: 1586: ~__numpunct_cache(); 1586: 1586: void 1586: _M_cache(const locale& __loc); 1586: 1586: private: 1586: __numpunct_cache& 1586: operator=(const __numpunct_cache&); 1586: 1586: explicit 1586: __numpunct_cache(const __numpunct_cache&); 1586: }; 1586: 1586: template 1586: __numpunct_cache<_CharT>::~__numpunct_cache() 1586: { 1586: if (_M_allocated) 1586: { 1586: delete [] _M_grouping; 1586: delete [] _M_truename; 1586: delete [] _M_falsename; 1586: } 1586: } 1586: 1586: namespace __cxx11 { 1586: # 1669 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: template 1586: class numpunct : public locale::facet 1586: { 1586: public: 1586: 1586: 1586: 1586: typedef _CharT char_type; 1586: typedef basic_string<_CharT> string_type; 1586: 1586: typedef __numpunct_cache<_CharT> __cache_type; 1586: 1586: protected: 1586: __cache_type* _M_data; 1586: 1586: public: 1586: 1586: static locale::id id; 1586: 1586: 1586: 1586: 1586: 1586: 1586: explicit 1586: numpunct(size_t __refs = 0) 1586: : facet(__refs), _M_data(0) 1586: { _M_initialize_numpunct(); } 1586: # 1707 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: explicit 1586: numpunct(__cache_type* __cache, size_t __refs = 0) 1586: : facet(__refs), _M_data(__cache) 1586: { _M_initialize_numpunct(); } 1586: # 1721 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: explicit 1586: numpunct(__c_locale __cloc, size_t __refs = 0) 1586: : facet(__refs), _M_data(0) 1586: { _M_initialize_numpunct(__cloc); } 1586: # 1735 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: char_type 1586: decimal_point() const 1586: { return this->do_decimal_point(); } 1586: # 1748 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: char_type 1586: thousands_sep() const 1586: { return this->do_thousands_sep(); } 1586: # 1779 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: string 1586: grouping() const 1586: { return this->do_grouping(); } 1586: # 1792 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: string_type 1586: truename() const 1586: { return this->do_truename(); } 1586: # 1805 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: string_type 1586: falsename() const 1586: { return this->do_falsename(); } 1586: 1586: protected: 1586: 1586: virtual 1586: ~numpunct(); 1586: # 1822 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual char_type 1586: do_decimal_point() const 1586: { return _M_data->_M_decimal_point; } 1586: # 1834 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual char_type 1586: do_thousands_sep() const 1586: { return _M_data->_M_thousands_sep; } 1586: # 1847 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual string 1586: do_grouping() const 1586: { return _M_data->_M_grouping; } 1586: # 1860 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual string_type 1586: do_truename() const 1586: { return _M_data->_M_truename; } 1586: # 1873 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual string_type 1586: do_falsename() const 1586: { return _M_data->_M_falsename; } 1586: 1586: 1586: void 1586: _M_initialize_numpunct(__c_locale __cloc = 0); 1586: }; 1586: 1586: template 1586: locale::id numpunct<_CharT>::id; 1586: 1586: template<> 1586: numpunct::~numpunct(); 1586: 1586: template<> 1586: void 1586: numpunct::_M_initialize_numpunct(__c_locale __cloc); 1586: 1586: 1586: template<> 1586: numpunct::~numpunct(); 1586: 1586: template<> 1586: void 1586: numpunct::_M_initialize_numpunct(__c_locale __cloc); 1586: 1586: 1586: 1586: template 1586: class numpunct_byname : public numpunct<_CharT> 1586: { 1586: public: 1586: typedef _CharT char_type; 1586: typedef basic_string<_CharT> string_type; 1586: 1586: explicit 1586: numpunct_byname(const char* __s, size_t __refs = 0) 1586: : numpunct<_CharT>(__refs) 1586: { 1586: if (__builtin_strcmp(__s, "C") != 0 1586: && __builtin_strcmp(__s, "POSIX") != 0) 1586: { 1586: __c_locale __tmp; 1586: this->_S_create_c_locale(__tmp, __s); 1586: this->_M_initialize_numpunct(__tmp); 1586: this->_S_destroy_c_locale(__tmp); 1586: } 1586: } 1586: 1586: 1586: explicit 1586: numpunct_byname(const string& __s, size_t __refs = 0) 1586: : numpunct_byname(__s.c_str(), __refs) { } 1586: 1586: 1586: protected: 1586: virtual 1586: ~numpunct_byname() { } 1586: }; 1586: 1586: } 1586: 1586: 1586: # 1951 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: template 1586: class num_get : public locale::facet 1586: { 1586: public: 1586: 1586: 1586: 1586: typedef _CharT char_type; 1586: typedef _InIter iter_type; 1586: 1586: 1586: 1586: static locale::id id; 1586: # 1972 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: explicit 1586: num_get(size_t __refs = 0) : facet(__refs) { } 1586: # 1998 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: iter_type 1586: get(iter_type __in, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, bool& __v) const 1586: { return this->do_get(__in, __end, __io, __err, __v); } 1586: # 2035 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: iter_type 1586: get(iter_type __in, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, long& __v) const 1586: { return this->do_get(__in, __end, __io, __err, __v); } 1586: 1586: iter_type 1586: get(iter_type __in, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, unsigned short& __v) const 1586: { return this->do_get(__in, __end, __io, __err, __v); } 1586: 1586: iter_type 1586: get(iter_type __in, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, unsigned int& __v) const 1586: { return this->do_get(__in, __end, __io, __err, __v); } 1586: 1586: iter_type 1586: get(iter_type __in, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, unsigned long& __v) const 1586: { return this->do_get(__in, __end, __io, __err, __v); } 1586: 1586: 1586: iter_type 1586: get(iter_type __in, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, long long& __v) const 1586: { return this->do_get(__in, __end, __io, __err, __v); } 1586: 1586: iter_type 1586: get(iter_type __in, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, unsigned long long& __v) const 1586: { return this->do_get(__in, __end, __io, __err, __v); } 1586: # 2095 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: iter_type 1586: get(iter_type __in, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, float& __v) const 1586: { return this->do_get(__in, __end, __io, __err, __v); } 1586: 1586: iter_type 1586: get(iter_type __in, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, double& __v) const 1586: { return this->do_get(__in, __end, __io, __err, __v); } 1586: 1586: iter_type 1586: get(iter_type __in, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, long double& __v) const 1586: { return this->do_get(__in, __end, __io, __err, __v); } 1586: # 2138 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: iter_type 1586: get(iter_type __in, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, void*& __v) const 1586: { return this->do_get(__in, __end, __io, __err, __v); } 1586: 1586: protected: 1586: 1586: virtual ~num_get() { } 1586: 1586: __attribute ((__abi_tag__ ("cxx11"))) 1586: iter_type 1586: _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&, 1586: string&) const; 1586: 1586: template 1586: __attribute ((__abi_tag__ ("cxx11"))) 1586: iter_type 1586: _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&, 1586: _ValueT&) const; 1586: 1586: template 1586: typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type 1586: _M_find(const _CharT2*, size_t __len, _CharT2 __c) const 1586: { 1586: int __ret = -1; 1586: if (__len <= 10) 1586: { 1586: if (__c >= _CharT2('0') && __c < _CharT2(_CharT2('0') + __len)) 1586: __ret = __c - _CharT2('0'); 1586: } 1586: else 1586: { 1586: if (__c >= _CharT2('0') && __c <= _CharT2('9')) 1586: __ret = __c - _CharT2('0'); 1586: else if (__c >= _CharT2('a') && __c <= _CharT2('f')) 1586: __ret = 10 + (__c - _CharT2('a')); 1586: else if (__c >= _CharT2('A') && __c <= _CharT2('F')) 1586: __ret = 10 + (__c - _CharT2('A')); 1586: } 1586: return __ret; 1586: } 1586: 1586: template 1586: typename __gnu_cxx::__enable_if::__value, 1586: int>::__type 1586: _M_find(const _CharT2* __zero, size_t __len, _CharT2 __c) const 1586: { 1586: int __ret = -1; 1586: const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c); 1586: if (__q) 1586: { 1586: __ret = __q - __zero; 1586: if (__ret > 15) 1586: __ret -= 6; 1586: } 1586: return __ret; 1586: } 1586: # 2211 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual iter_type 1586: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const; 1586: 1586: virtual iter_type 1586: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, long& __v) const 1586: { return _M_extract_int(__beg, __end, __io, __err, __v); } 1586: 1586: virtual iter_type 1586: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, unsigned short& __v) const 1586: { return _M_extract_int(__beg, __end, __io, __err, __v); } 1586: 1586: virtual iter_type 1586: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, unsigned int& __v) const 1586: { return _M_extract_int(__beg, __end, __io, __err, __v); } 1586: 1586: virtual iter_type 1586: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, unsigned long& __v) const 1586: { return _M_extract_int(__beg, __end, __io, __err, __v); } 1586: 1586: 1586: virtual iter_type 1586: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, long long& __v) const 1586: { return _M_extract_int(__beg, __end, __io, __err, __v); } 1586: 1586: virtual iter_type 1586: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, unsigned long long& __v) const 1586: { return _M_extract_int(__beg, __end, __io, __err, __v); } 1586: 1586: 1586: virtual iter_type 1586: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, float&) const; 1586: 1586: virtual iter_type 1586: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 1586: double&) const; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: virtual iter_type 1586: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 1586: long double&) const; 1586: 1586: 1586: virtual iter_type 1586: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, void*&) const; 1586: # 2274 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: }; 1586: 1586: template 1586: locale::id num_get<_CharT, _InIter>::id; 1586: # 2292 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: template 1586: class num_put : public locale::facet 1586: { 1586: public: 1586: 1586: 1586: 1586: typedef _CharT char_type; 1586: typedef _OutIter iter_type; 1586: 1586: 1586: 1586: static locale::id id; 1586: # 2313 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: explicit 1586: num_put(size_t __refs = 0) : facet(__refs) { } 1586: # 2331 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: iter_type 1586: put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 1586: { return this->do_put(__s, __io, __fill, __v); } 1586: # 2373 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: iter_type 1586: put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 1586: { return this->do_put(__s, __io, __fill, __v); } 1586: 1586: iter_type 1586: put(iter_type __s, ios_base& __io, char_type __fill, 1586: unsigned long __v) const 1586: { return this->do_put(__s, __io, __fill, __v); } 1586: 1586: 1586: iter_type 1586: put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const 1586: { return this->do_put(__s, __io, __fill, __v); } 1586: 1586: iter_type 1586: put(iter_type __s, ios_base& __io, char_type __fill, 1586: unsigned long long __v) const 1586: { return this->do_put(__s, __io, __fill, __v); } 1586: # 2436 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: iter_type 1586: put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 1586: { return this->do_put(__s, __io, __fill, __v); } 1586: 1586: iter_type 1586: put(iter_type __s, ios_base& __io, char_type __fill, 1586: long double __v) const 1586: { return this->do_put(__s, __io, __fill, __v); } 1586: # 2461 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: iter_type 1586: put(iter_type __s, ios_base& __io, char_type __fill, 1586: const void* __v) const 1586: { return this->do_put(__s, __io, __fill, __v); } 1586: 1586: protected: 1586: template 1586: iter_type 1586: _M_insert_float(iter_type, ios_base& __io, char_type __fill, 1586: char __mod, _ValueT __v) const; 1586: 1586: void 1586: _M_group_float(const char* __grouping, size_t __grouping_size, 1586: char_type __sep, const char_type* __p, char_type* __new, 1586: char_type* __cs, int& __len) const; 1586: 1586: template 1586: iter_type 1586: _M_insert_int(iter_type, ios_base& __io, char_type __fill, 1586: _ValueT __v) const; 1586: 1586: void 1586: _M_group_int(const char* __grouping, size_t __grouping_size, 1586: char_type __sep, ios_base& __io, char_type* __new, 1586: char_type* __cs, int& __len) const; 1586: 1586: void 1586: _M_pad(char_type __fill, streamsize __w, ios_base& __io, 1586: char_type* __new, const char_type* __cs, int& __len) const; 1586: 1586: 1586: virtual 1586: ~num_put() { } 1586: # 2509 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 3 1586: virtual iter_type 1586: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const; 1586: 1586: virtual iter_type 1586: do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 1586: { return _M_insert_int(__s, __io, __fill, __v); } 1586: 1586: virtual iter_type 1586: do_put(iter_type __s, ios_base& __io, char_type __fill, 1586: unsigned long __v) const 1586: { return _M_insert_int(__s, __io, __fill, __v); } 1586: 1586: 1586: virtual iter_type 1586: do_put(iter_type __s, ios_base& __io, char_type __fill, 1586: long long __v) const 1586: { return _M_insert_int(__s, __io, __fill, __v); } 1586: 1586: virtual iter_type 1586: do_put(iter_type __s, ios_base& __io, char_type __fill, 1586: unsigned long long __v) const 1586: { return _M_insert_int(__s, __io, __fill, __v); } 1586: 1586: 1586: virtual iter_type 1586: do_put(iter_type, ios_base&, char_type, double) const; 1586: 1586: 1586: 1586: 1586: 1586: 1586: virtual iter_type 1586: do_put(iter_type, ios_base&, char_type, long double) const; 1586: 1586: 1586: virtual iter_type 1586: do_put(iter_type, ios_base&, char_type, const void*) const; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: }; 1586: 1586: template 1586: locale::id num_put<_CharT, _OutIter>::id; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline bool 1586: isspace(_CharT __c, const locale& __loc) 1586: { return use_facet >(__loc).is(ctype_base::space, __c); } 1586: 1586: 1586: template 1586: inline bool 1586: isprint(_CharT __c, const locale& __loc) 1586: { return use_facet >(__loc).is(ctype_base::print, __c); } 1586: 1586: 1586: template 1586: inline bool 1586: iscntrl(_CharT __c, const locale& __loc) 1586: { return use_facet >(__loc).is(ctype_base::cntrl, __c); } 1586: 1586: 1586: template 1586: inline bool 1586: isupper(_CharT __c, const locale& __loc) 1586: { return use_facet >(__loc).is(ctype_base::upper, __c); } 1586: 1586: 1586: template 1586: inline bool 1586: islower(_CharT __c, const locale& __loc) 1586: { return use_facet >(__loc).is(ctype_base::lower, __c); } 1586: 1586: 1586: template 1586: inline bool 1586: isalpha(_CharT __c, const locale& __loc) 1586: { return use_facet >(__loc).is(ctype_base::alpha, __c); } 1586: 1586: 1586: template 1586: inline bool 1586: isdigit(_CharT __c, const locale& __loc) 1586: { return use_facet >(__loc).is(ctype_base::digit, __c); } 1586: 1586: 1586: template 1586: inline bool 1586: ispunct(_CharT __c, const locale& __loc) 1586: { return use_facet >(__loc).is(ctype_base::punct, __c); } 1586: 1586: 1586: template 1586: inline bool 1586: isxdigit(_CharT __c, const locale& __loc) 1586: { return use_facet >(__loc).is(ctype_base::xdigit, __c); } 1586: 1586: 1586: template 1586: inline bool 1586: isalnum(_CharT __c, const locale& __loc) 1586: { return use_facet >(__loc).is(ctype_base::alnum, __c); } 1586: 1586: 1586: template 1586: inline bool 1586: isgraph(_CharT __c, const locale& __loc) 1586: { return use_facet >(__loc).is(ctype_base::graph, __c); } 1586: 1586: 1586: 1586: template 1586: inline bool 1586: isblank(_CharT __c, const locale& __loc) 1586: { return use_facet >(__loc).is(ctype_base::blank, __c); } 1586: 1586: 1586: 1586: template 1586: inline _CharT 1586: toupper(_CharT __c, const locale& __loc) 1586: { return use_facet >(__loc).toupper(__c); } 1586: 1586: 1586: template 1586: inline _CharT 1586: tolower(_CharT __c, const locale& __loc) 1586: { return use_facet >(__loc).tolower(__c); } 1586: 1586: 1586: } 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.tcc" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.tcc" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.tcc" 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: template 1586: struct __use_cache 1586: { 1586: const _Facet* 1586: operator() (const locale& __loc) const; 1586: }; 1586: 1586: 1586: template 1586: struct __use_cache<__numpunct_cache<_CharT> > 1586: { 1586: const __numpunct_cache<_CharT>* 1586: operator() (const locale& __loc) const 1586: { 1586: const size_t __i = numpunct<_CharT>::id._M_id(); 1586: const locale::facet** __caches = __loc._M_impl->_M_caches; 1586: if (!__caches[__i]) 1586: { 1586: __numpunct_cache<_CharT>* __tmp = 0; 1586: try 1586: { 1586: __tmp = new __numpunct_cache<_CharT>; 1586: __tmp->_M_cache(__loc); 1586: } 1586: catch(...) 1586: { 1586: delete __tmp; 1586: throw; 1586: } 1586: __loc._M_impl->_M_install_cache(__tmp, __i); 1586: } 1586: return static_cast*>(__caches[__i]); 1586: } 1586: }; 1586: 1586: template 1586: void 1586: __numpunct_cache<_CharT>::_M_cache(const locale& __loc) 1586: { 1586: const numpunct<_CharT>& __np = use_facet >(__loc); 1586: 1586: char* __grouping = 0; 1586: _CharT* __truename = 0; 1586: _CharT* __falsename = 0; 1586: try 1586: { 1586: const string& __g = __np.grouping(); 1586: _M_grouping_size = __g.size(); 1586: __grouping = new char[_M_grouping_size]; 1586: __g.copy(__grouping, _M_grouping_size); 1586: _M_use_grouping = (_M_grouping_size 1586: && static_cast(__grouping[0]) > 0 1586: && (__grouping[0] 1586: != __gnu_cxx::__numeric_traits::__max)); 1586: 1586: const basic_string<_CharT>& __tn = __np.truename(); 1586: _M_truename_size = __tn.size(); 1586: __truename = new _CharT[_M_truename_size]; 1586: __tn.copy(__truename, _M_truename_size); 1586: 1586: const basic_string<_CharT>& __fn = __np.falsename(); 1586: _M_falsename_size = __fn.size(); 1586: __falsename = new _CharT[_M_falsename_size]; 1586: __fn.copy(__falsename, _M_falsename_size); 1586: 1586: _M_decimal_point = __np.decimal_point(); 1586: _M_thousands_sep = __np.thousands_sep(); 1586: 1586: const ctype<_CharT>& __ct = use_facet >(__loc); 1586: __ct.widen(__num_base::_S_atoms_out, 1586: __num_base::_S_atoms_out 1586: + __num_base::_S_oend, _M_atoms_out); 1586: __ct.widen(__num_base::_S_atoms_in, 1586: __num_base::_S_atoms_in 1586: + __num_base::_S_iend, _M_atoms_in); 1586: 1586: _M_grouping = __grouping; 1586: _M_truename = __truename; 1586: _M_falsename = __falsename; 1586: _M_allocated = true; 1586: } 1586: catch(...) 1586: { 1586: delete [] __grouping; 1586: delete [] __truename; 1586: delete [] __falsename; 1586: throw; 1586: } 1586: } 1586: # 139 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.tcc" 3 1586: __attribute__ ((__pure__)) bool 1586: __verify_grouping(const char* __grouping, size_t __grouping_size, 1586: const string& __grouping_tmp) throw (); 1586: 1586: 1586: 1586: template 1586: __attribute ((__abi_tag__ ("cxx11"))) 1586: _InIter 1586: num_get<_CharT, _InIter>:: 1586: _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io, 1586: ios_base::iostate& __err, string& __xtrc) const 1586: { 1586: typedef char_traits<_CharT> __traits_type; 1586: typedef __numpunct_cache<_CharT> __cache_type; 1586: __use_cache<__cache_type> __uc; 1586: const locale& __loc = __io._M_getloc(); 1586: const __cache_type* __lc = __uc(__loc); 1586: const _CharT* __lit = __lc->_M_atoms_in; 1586: char_type __c = char_type(); 1586: 1586: 1586: bool __testeof = __beg == __end; 1586: 1586: 1586: if (!__testeof) 1586: { 1586: __c = *__beg; 1586: const bool __plus = __c == __lit[__num_base::_S_iplus]; 1586: if ((__plus || __c == __lit[__num_base::_S_iminus]) 1586: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 1586: && !(__c == __lc->_M_decimal_point)) 1586: { 1586: __xtrc += __plus ? '+' : '-'; 1586: if (++__beg != __end) 1586: __c = *__beg; 1586: else 1586: __testeof = true; 1586: } 1586: } 1586: 1586: 1586: bool __found_mantissa = false; 1586: int __sep_pos = 0; 1586: while (!__testeof) 1586: { 1586: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 1586: || __c == __lc->_M_decimal_point) 1586: break; 1586: else if (__c == __lit[__num_base::_S_izero]) 1586: { 1586: if (!__found_mantissa) 1586: { 1586: __xtrc += '0'; 1586: __found_mantissa = true; 1586: } 1586: ++__sep_pos; 1586: 1586: if (++__beg != __end) 1586: __c = *__beg; 1586: else 1586: __testeof = true; 1586: } 1586: else 1586: break; 1586: } 1586: 1586: 1586: bool __found_dec = false; 1586: bool __found_sci = false; 1586: string __found_grouping; 1586: if (__lc->_M_use_grouping) 1586: __found_grouping.reserve(32); 1586: const char_type* __lit_zero = __lit + __num_base::_S_izero; 1586: 1586: if (!__lc->_M_allocated) 1586: 1586: while (!__testeof) 1586: { 1586: const int __digit = _M_find(__lit_zero, 10, __c); 1586: if (__digit != -1) 1586: { 1586: __xtrc += '0' + __digit; 1586: __found_mantissa = true; 1586: } 1586: else if (__c == __lc->_M_decimal_point 1586: && !__found_dec && !__found_sci) 1586: { 1586: __xtrc += '.'; 1586: __found_dec = true; 1586: } 1586: else if ((__c == __lit[__num_base::_S_ie] 1586: || __c == __lit[__num_base::_S_iE]) 1586: && !__found_sci && __found_mantissa) 1586: { 1586: 1586: __xtrc += 'e'; 1586: __found_sci = true; 1586: 1586: 1586: if (++__beg != __end) 1586: { 1586: __c = *__beg; 1586: const bool __plus = __c == __lit[__num_base::_S_iplus]; 1586: if (__plus || __c == __lit[__num_base::_S_iminus]) 1586: __xtrc += __plus ? '+' : '-'; 1586: else 1586: continue; 1586: } 1586: else 1586: { 1586: __testeof = true; 1586: break; 1586: } 1586: } 1586: else 1586: break; 1586: 1586: if (++__beg != __end) 1586: __c = *__beg; 1586: else 1586: __testeof = true; 1586: } 1586: else 1586: while (!__testeof) 1586: { 1586: 1586: 1586: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 1586: { 1586: if (!__found_dec && !__found_sci) 1586: { 1586: 1586: 1586: if (__sep_pos) 1586: { 1586: __found_grouping += static_cast(__sep_pos); 1586: __sep_pos = 0; 1586: } 1586: else 1586: { 1586: 1586: 1586: __xtrc.clear(); 1586: break; 1586: } 1586: } 1586: else 1586: break; 1586: } 1586: else if (__c == __lc->_M_decimal_point) 1586: { 1586: if (!__found_dec && !__found_sci) 1586: { 1586: 1586: 1586: 1586: if (__found_grouping.size()) 1586: __found_grouping += static_cast(__sep_pos); 1586: __xtrc += '.'; 1586: __found_dec = true; 1586: } 1586: else 1586: break; 1586: } 1586: else 1586: { 1586: const char_type* __q = 1586: __traits_type::find(__lit_zero, 10, __c); 1586: if (__q) 1586: { 1586: __xtrc += '0' + (__q - __lit_zero); 1586: __found_mantissa = true; 1586: ++__sep_pos; 1586: } 1586: else if ((__c == __lit[__num_base::_S_ie] 1586: || __c == __lit[__num_base::_S_iE]) 1586: && !__found_sci && __found_mantissa) 1586: { 1586: 1586: if (__found_grouping.size() && !__found_dec) 1586: __found_grouping += static_cast(__sep_pos); 1586: __xtrc += 'e'; 1586: __found_sci = true; 1586: 1586: 1586: if (++__beg != __end) 1586: { 1586: __c = *__beg; 1586: const bool __plus = __c == __lit[__num_base::_S_iplus]; 1586: if ((__plus || __c == __lit[__num_base::_S_iminus]) 1586: && !(__lc->_M_use_grouping 1586: && __c == __lc->_M_thousands_sep) 1586: && !(__c == __lc->_M_decimal_point)) 1586: __xtrc += __plus ? '+' : '-'; 1586: else 1586: continue; 1586: } 1586: else 1586: { 1586: __testeof = true; 1586: break; 1586: } 1586: } 1586: else 1586: break; 1586: } 1586: 1586: if (++__beg != __end) 1586: __c = *__beg; 1586: else 1586: __testeof = true; 1586: } 1586: 1586: 1586: 1586: if (__found_grouping.size()) 1586: { 1586: 1586: if (!__found_dec && !__found_sci) 1586: __found_grouping += static_cast(__sep_pos); 1586: 1586: if (!std::__verify_grouping(__lc->_M_grouping, 1586: __lc->_M_grouping_size, 1586: __found_grouping)) 1586: __err = ios_base::failbit; 1586: } 1586: 1586: return __beg; 1586: } 1586: 1586: template 1586: template 1586: __attribute ((__abi_tag__ ("cxx11"))) 1586: _InIter 1586: num_get<_CharT, _InIter>:: 1586: _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io, 1586: ios_base::iostate& __err, _ValueT& __v) const 1586: { 1586: typedef char_traits<_CharT> __traits_type; 1586: using __gnu_cxx::__add_unsigned; 1586: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 1586: typedef __numpunct_cache<_CharT> __cache_type; 1586: __use_cache<__cache_type> __uc; 1586: const locale& __loc = __io._M_getloc(); 1586: const __cache_type* __lc = __uc(__loc); 1586: const _CharT* __lit = __lc->_M_atoms_in; 1586: char_type __c = char_type(); 1586: 1586: 1586: const ios_base::fmtflags __basefield = __io.flags() 1586: & ios_base::basefield; 1586: const bool __oct = __basefield == ios_base::oct; 1586: int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10); 1586: 1586: 1586: bool __testeof = __beg == __end; 1586: 1586: 1586: bool __negative = false; 1586: if (!__testeof) 1586: { 1586: __c = *__beg; 1586: __negative = __c == __lit[__num_base::_S_iminus]; 1586: if ((__negative || __c == __lit[__num_base::_S_iplus]) 1586: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 1586: && !(__c == __lc->_M_decimal_point)) 1586: { 1586: if (++__beg != __end) 1586: __c = *__beg; 1586: else 1586: __testeof = true; 1586: } 1586: } 1586: 1586: 1586: 1586: bool __found_zero = false; 1586: int __sep_pos = 0; 1586: while (!__testeof) 1586: { 1586: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 1586: || __c == __lc->_M_decimal_point) 1586: break; 1586: else if (__c == __lit[__num_base::_S_izero] 1586: && (!__found_zero || __base == 10)) 1586: { 1586: __found_zero = true; 1586: ++__sep_pos; 1586: if (__basefield == 0) 1586: __base = 8; 1586: if (__base == 8) 1586: __sep_pos = 0; 1586: } 1586: else if (__found_zero 1586: && (__c == __lit[__num_base::_S_ix] 1586: || __c == __lit[__num_base::_S_iX])) 1586: { 1586: if (__basefield == 0) 1586: __base = 16; 1586: if (__base == 16) 1586: { 1586: __found_zero = false; 1586: __sep_pos = 0; 1586: } 1586: else 1586: break; 1586: } 1586: else 1586: break; 1586: 1586: if (++__beg != __end) 1586: { 1586: __c = *__beg; 1586: if (!__found_zero) 1586: break; 1586: } 1586: else 1586: __testeof = true; 1586: } 1586: 1586: 1586: 1586: const size_t __len = (__base == 16 ? __num_base::_S_iend 1586: - __num_base::_S_izero : __base); 1586: 1586: 1586: typedef __gnu_cxx::__numeric_traits<_ValueT> __num_traits; 1586: string __found_grouping; 1586: if (__lc->_M_use_grouping) 1586: __found_grouping.reserve(32); 1586: bool __testfail = false; 1586: bool __testoverflow = false; 1586: const __unsigned_type __max = 1586: (__negative && __num_traits::__is_signed) 1586: ? -static_cast<__unsigned_type>(__num_traits::__min) 1586: : __num_traits::__max; 1586: const __unsigned_type __smax = __max / __base; 1586: __unsigned_type __result = 0; 1586: int __digit = 0; 1586: const char_type* __lit_zero = __lit + __num_base::_S_izero; 1586: 1586: if (!__lc->_M_allocated) 1586: 1586: while (!__testeof) 1586: { 1586: __digit = _M_find(__lit_zero, __len, __c); 1586: if (__digit == -1) 1586: break; 1586: 1586: if (__result > __smax) 1586: __testoverflow = true; 1586: else 1586: { 1586: __result *= __base; 1586: __testoverflow |= __result > __max - __digit; 1586: __result += __digit; 1586: ++__sep_pos; 1586: } 1586: 1586: if (++__beg != __end) 1586: __c = *__beg; 1586: else 1586: __testeof = true; 1586: } 1586: else 1586: while (!__testeof) 1586: { 1586: 1586: 1586: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 1586: { 1586: 1586: 1586: if (__sep_pos) 1586: { 1586: __found_grouping += static_cast(__sep_pos); 1586: __sep_pos = 0; 1586: } 1586: else 1586: { 1586: __testfail = true; 1586: break; 1586: } 1586: } 1586: else if (__c == __lc->_M_decimal_point) 1586: break; 1586: else 1586: { 1586: const char_type* __q = 1586: __traits_type::find(__lit_zero, __len, __c); 1586: if (!__q) 1586: break; 1586: 1586: __digit = __q - __lit_zero; 1586: if (__digit > 15) 1586: __digit -= 6; 1586: if (__result > __smax) 1586: __testoverflow = true; 1586: else 1586: { 1586: __result *= __base; 1586: __testoverflow |= __result > __max - __digit; 1586: __result += __digit; 1586: ++__sep_pos; 1586: } 1586: } 1586: 1586: if (++__beg != __end) 1586: __c = *__beg; 1586: else 1586: __testeof = true; 1586: } 1586: 1586: 1586: 1586: if (__found_grouping.size()) 1586: { 1586: 1586: __found_grouping += static_cast(__sep_pos); 1586: 1586: if (!std::__verify_grouping(__lc->_M_grouping, 1586: __lc->_M_grouping_size, 1586: __found_grouping)) 1586: __err = ios_base::failbit; 1586: } 1586: 1586: 1586: 1586: if ((!__sep_pos && !__found_zero && !__found_grouping.size()) 1586: || __testfail) 1586: { 1586: __v = 0; 1586: __err = ios_base::failbit; 1586: } 1586: else if (__testoverflow) 1586: { 1586: if (__negative && __num_traits::__is_signed) 1586: __v = __num_traits::__min; 1586: else 1586: __v = __num_traits::__max; 1586: __err = ios_base::failbit; 1586: } 1586: else 1586: __v = __negative ? -__result : __result; 1586: 1586: if (__testeof) 1586: __err |= ios_base::eofbit; 1586: return __beg; 1586: } 1586: 1586: 1586: 1586: template 1586: _InIter 1586: num_get<_CharT, _InIter>:: 1586: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, bool& __v) const 1586: { 1586: if (!(__io.flags() & ios_base::boolalpha)) 1586: { 1586: 1586: 1586: 1586: long __l = -1; 1586: __beg = _M_extract_int(__beg, __end, __io, __err, __l); 1586: if (__l == 0 || __l == 1) 1586: __v = bool(__l); 1586: else 1586: { 1586: 1586: 1586: __v = true; 1586: __err = ios_base::failbit; 1586: if (__beg == __end) 1586: __err |= ios_base::eofbit; 1586: } 1586: } 1586: else 1586: { 1586: 1586: typedef __numpunct_cache<_CharT> __cache_type; 1586: __use_cache<__cache_type> __uc; 1586: const locale& __loc = __io._M_getloc(); 1586: const __cache_type* __lc = __uc(__loc); 1586: 1586: bool __testf = true; 1586: bool __testt = true; 1586: bool __donef = __lc->_M_falsename_size == 0; 1586: bool __donet = __lc->_M_truename_size == 0; 1586: bool __testeof = false; 1586: size_t __n = 0; 1586: while (!__donef || !__donet) 1586: { 1586: if (__beg == __end) 1586: { 1586: __testeof = true; 1586: break; 1586: } 1586: 1586: const char_type __c = *__beg; 1586: 1586: if (!__donef) 1586: __testf = __c == __lc->_M_falsename[__n]; 1586: 1586: if (!__testf && __donet) 1586: break; 1586: 1586: if (!__donet) 1586: __testt = __c == __lc->_M_truename[__n]; 1586: 1586: if (!__testt && __donef) 1586: break; 1586: 1586: if (!__testt && !__testf) 1586: break; 1586: 1586: ++__n; 1586: ++__beg; 1586: 1586: __donef = !__testf || __n >= __lc->_M_falsename_size; 1586: __donet = !__testt || __n >= __lc->_M_truename_size; 1586: } 1586: if (__testf && __n == __lc->_M_falsename_size && __n) 1586: { 1586: __v = false; 1586: if (__testt && __n == __lc->_M_truename_size) 1586: __err = ios_base::failbit; 1586: else 1586: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 1586: } 1586: else if (__testt && __n == __lc->_M_truename_size && __n) 1586: { 1586: __v = true; 1586: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 1586: } 1586: else 1586: { 1586: 1586: 1586: __v = false; 1586: __err = ios_base::failbit; 1586: if (__testeof) 1586: __err |= ios_base::eofbit; 1586: } 1586: } 1586: return __beg; 1586: } 1586: 1586: template 1586: _InIter 1586: num_get<_CharT, _InIter>:: 1586: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, float& __v) const 1586: { 1586: string __xtrc; 1586: __xtrc.reserve(32); 1586: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 1586: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 1586: if (__beg == __end) 1586: __err |= ios_base::eofbit; 1586: return __beg; 1586: } 1586: 1586: template 1586: _InIter 1586: num_get<_CharT, _InIter>:: 1586: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, double& __v) const 1586: { 1586: string __xtrc; 1586: __xtrc.reserve(32); 1586: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 1586: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 1586: if (__beg == __end) 1586: __err |= ios_base::eofbit; 1586: return __beg; 1586: } 1586: # 735 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.tcc" 3 1586: template 1586: _InIter 1586: num_get<_CharT, _InIter>:: 1586: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, long double& __v) const 1586: { 1586: string __xtrc; 1586: __xtrc.reserve(32); 1586: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 1586: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 1586: if (__beg == __end) 1586: __err |= ios_base::eofbit; 1586: return __beg; 1586: } 1586: 1586: template 1586: _InIter 1586: num_get<_CharT, _InIter>:: 1586: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, void*& __v) const 1586: { 1586: 1586: typedef ios_base::fmtflags fmtflags; 1586: const fmtflags __fmt = __io.flags(); 1586: __io.flags((__fmt & ~ios_base::basefield) | ios_base::hex); 1586: 1586: typedef __gnu_cxx::__conditional_type<(sizeof(void*) 1586: <= sizeof(unsigned long)), 1586: unsigned long, unsigned long long>::__type _UIntPtrType; 1586: 1586: _UIntPtrType __ul; 1586: __beg = _M_extract_int(__beg, __end, __io, __err, __ul); 1586: 1586: 1586: __io.flags(__fmt); 1586: 1586: __v = reinterpret_cast(__ul); 1586: return __beg; 1586: } 1586: 1586: 1586: 1586: template 1586: void 1586: num_put<_CharT, _OutIter>:: 1586: _M_pad(_CharT __fill, streamsize __w, ios_base& __io, 1586: _CharT* __new, const _CharT* __cs, int& __len) const 1586: { 1586: 1586: 1586: __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, 1586: __cs, __w, __len); 1586: __len = static_cast(__w); 1586: } 1586: 1586: 1586: 1586: template 1586: int 1586: __int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit, 1586: ios_base::fmtflags __flags, bool __dec) 1586: { 1586: _CharT* __buf = __bufend; 1586: if (__builtin_expect(__dec, true)) 1586: { 1586: 1586: do 1586: { 1586: *--__buf = __lit[(__v % 10) + __num_base::_S_odigits]; 1586: __v /= 10; 1586: } 1586: while (__v != 0); 1586: } 1586: else if ((__flags & ios_base::basefield) == ios_base::oct) 1586: { 1586: 1586: do 1586: { 1586: *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits]; 1586: __v >>= 3; 1586: } 1586: while (__v != 0); 1586: } 1586: else 1586: { 1586: 1586: const bool __uppercase = __flags & ios_base::uppercase; 1586: const int __case_offset = __uppercase ? __num_base::_S_oudigits 1586: : __num_base::_S_odigits; 1586: do 1586: { 1586: *--__buf = __lit[(__v & 0xf) + __case_offset]; 1586: __v >>= 4; 1586: } 1586: while (__v != 0); 1586: } 1586: return __bufend - __buf; 1586: } 1586: 1586: 1586: 1586: template 1586: void 1586: num_put<_CharT, _OutIter>:: 1586: _M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep, 1586: ios_base&, _CharT* __new, _CharT* __cs, int& __len) const 1586: { 1586: _CharT* __p = std::__add_grouping(__new, __sep, __grouping, 1586: __grouping_size, __cs, __cs + __len); 1586: __len = __p - __new; 1586: } 1586: 1586: template 1586: template 1586: _OutIter 1586: num_put<_CharT, _OutIter>:: 1586: _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill, 1586: _ValueT __v) const 1586: { 1586: using __gnu_cxx::__add_unsigned; 1586: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 1586: typedef __numpunct_cache<_CharT> __cache_type; 1586: __use_cache<__cache_type> __uc; 1586: const locale& __loc = __io._M_getloc(); 1586: const __cache_type* __lc = __uc(__loc); 1586: const _CharT* __lit = __lc->_M_atoms_out; 1586: const ios_base::fmtflags __flags = __io.flags(); 1586: 1586: 1586: const int __ilen = 5 * sizeof(_ValueT); 1586: _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 1586: * __ilen)); 1586: 1586: 1586: 1586: const ios_base::fmtflags __basefield = __flags & ios_base::basefield; 1586: const bool __dec = (__basefield != ios_base::oct 1586: && __basefield != ios_base::hex); 1586: const __unsigned_type __u = ((__v > 0 || !__dec) 1586: ? __unsigned_type(__v) 1586: : -__unsigned_type(__v)); 1586: int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec); 1586: __cs += __ilen - __len; 1586: 1586: 1586: if (__lc->_M_use_grouping) 1586: { 1586: 1586: 1586: _CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 1586: * (__len + 1) 1586: * 2)); 1586: _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size, 1586: __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len); 1586: __cs = __cs2 + 2; 1586: } 1586: 1586: 1586: if (__builtin_expect(__dec, true)) 1586: { 1586: 1586: if (__v >= 0) 1586: { 1586: if (bool(__flags & ios_base::showpos) 1586: && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) 1586: *--__cs = __lit[__num_base::_S_oplus], ++__len; 1586: } 1586: else 1586: *--__cs = __lit[__num_base::_S_ominus], ++__len; 1586: } 1586: else if (bool(__flags & ios_base::showbase) && __v) 1586: { 1586: if (__basefield == ios_base::oct) 1586: *--__cs = __lit[__num_base::_S_odigits], ++__len; 1586: else 1586: { 1586: 1586: const bool __uppercase = __flags & ios_base::uppercase; 1586: *--__cs = __lit[__num_base::_S_ox + __uppercase]; 1586: 1586: *--__cs = __lit[__num_base::_S_odigits]; 1586: __len += 2; 1586: } 1586: } 1586: 1586: 1586: const streamsize __w = __io.width(); 1586: if (__w > static_cast(__len)) 1586: { 1586: _CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 1586: * __w)); 1586: _M_pad(__fill, __w, __io, __cs3, __cs, __len); 1586: __cs = __cs3; 1586: } 1586: __io.width(0); 1586: 1586: 1586: 1586: return std::__write(__s, __cs, __len); 1586: } 1586: 1586: template 1586: void 1586: num_put<_CharT, _OutIter>:: 1586: _M_group_float(const char* __grouping, size_t __grouping_size, 1586: _CharT __sep, const _CharT* __p, _CharT* __new, 1586: _CharT* __cs, int& __len) const 1586: { 1586: 1586: 1586: 1586: const int __declen = __p ? __p - __cs : __len; 1586: _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping, 1586: __grouping_size, 1586: __cs, __cs + __declen); 1586: 1586: 1586: int __newlen = __p2 - __new; 1586: if (__p) 1586: { 1586: char_traits<_CharT>::copy(__p2, __p, __len - __declen); 1586: __newlen += __len - __declen; 1586: } 1586: __len = __newlen; 1586: } 1586: # 971 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.tcc" 3 1586: template 1586: template 1586: _OutIter 1586: num_put<_CharT, _OutIter>:: 1586: _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod, 1586: _ValueT __v) const 1586: { 1586: typedef __numpunct_cache<_CharT> __cache_type; 1586: __use_cache<__cache_type> __uc; 1586: const locale& __loc = __io._M_getloc(); 1586: const __cache_type* __lc = __uc(__loc); 1586: 1586: 1586: const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision(); 1586: 1586: const int __max_digits = 1586: __gnu_cxx::__numeric_traits<_ValueT>::__digits10; 1586: 1586: 1586: int __len; 1586: 1586: char __fbuf[16]; 1586: __num_base::_S_format_float(__io, __fbuf, __mod); 1586: 1586: 1586: 1586: const bool __use_prec = 1586: (__io.flags() & ios_base::floatfield) != ios_base::floatfield; 1586: 1586: 1586: 1586: int __cs_size = __max_digits * 3; 1586: char* __cs = static_cast(__builtin_alloca(__cs_size)); 1586: if (__use_prec) 1586: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 1586: __fbuf, __prec, __v); 1586: else 1586: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 1586: __fbuf, __v); 1586: 1586: 1586: if (__len >= __cs_size) 1586: { 1586: __cs_size = __len + 1; 1586: __cs = static_cast(__builtin_alloca(__cs_size)); 1586: if (__use_prec) 1586: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 1586: __fbuf, __prec, __v); 1586: else 1586: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 1586: __fbuf, __v); 1586: } 1586: # 1044 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.tcc" 3 1586: const ctype<_CharT>& __ctype = use_facet >(__loc); 1586: 1586: _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 1586: * __len)); 1586: __ctype.widen(__cs, __cs + __len, __ws); 1586: 1586: 1586: _CharT* __wp = 0; 1586: const char* __p = char_traits::find(__cs, __len, '.'); 1586: if (__p) 1586: { 1586: __wp = __ws + (__p - __cs); 1586: *__wp = __lc->_M_decimal_point; 1586: } 1586: 1586: 1586: 1586: 1586: if (__lc->_M_use_grouping 1586: && (__wp || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9' 1586: && __cs[1] >= '0' && __cs[2] >= '0'))) 1586: { 1586: 1586: 1586: _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 1586: * __len * 2)); 1586: 1586: streamsize __off = 0; 1586: if (__cs[0] == '-' || __cs[0] == '+') 1586: { 1586: __off = 1; 1586: __ws2[0] = __ws[0]; 1586: __len -= 1; 1586: } 1586: 1586: _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size, 1586: __lc->_M_thousands_sep, __wp, __ws2 + __off, 1586: __ws + __off, __len); 1586: __len += __off; 1586: 1586: __ws = __ws2; 1586: } 1586: 1586: 1586: const streamsize __w = __io.width(); 1586: if (__w > static_cast(__len)) 1586: { 1586: _CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 1586: * __w)); 1586: _M_pad(__fill, __w, __io, __ws3, __ws, __len); 1586: __ws = __ws3; 1586: } 1586: __io.width(0); 1586: 1586: 1586: 1586: return std::__write(__s, __ws, __len); 1586: } 1586: 1586: template 1586: _OutIter 1586: num_put<_CharT, _OutIter>:: 1586: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 1586: { 1586: const ios_base::fmtflags __flags = __io.flags(); 1586: if ((__flags & ios_base::boolalpha) == 0) 1586: { 1586: const long __l = __v; 1586: __s = _M_insert_int(__s, __io, __fill, __l); 1586: } 1586: else 1586: { 1586: typedef __numpunct_cache<_CharT> __cache_type; 1586: __use_cache<__cache_type> __uc; 1586: const locale& __loc = __io._M_getloc(); 1586: const __cache_type* __lc = __uc(__loc); 1586: 1586: const _CharT* __name = __v ? __lc->_M_truename 1586: : __lc->_M_falsename; 1586: int __len = __v ? __lc->_M_truename_size 1586: : __lc->_M_falsename_size; 1586: 1586: const streamsize __w = __io.width(); 1586: if (__w > static_cast(__len)) 1586: { 1586: const streamsize __plen = __w - __len; 1586: _CharT* __ps 1586: = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 1586: * __plen)); 1586: 1586: char_traits<_CharT>::assign(__ps, __plen, __fill); 1586: __io.width(0); 1586: 1586: if ((__flags & ios_base::adjustfield) == ios_base::left) 1586: { 1586: __s = std::__write(__s, __name, __len); 1586: __s = std::__write(__s, __ps, __plen); 1586: } 1586: else 1586: { 1586: __s = std::__write(__s, __ps, __plen); 1586: __s = std::__write(__s, __name, __len); 1586: } 1586: return __s; 1586: } 1586: __io.width(0); 1586: __s = std::__write(__s, __name, __len); 1586: } 1586: return __s; 1586: } 1586: 1586: template 1586: _OutIter 1586: num_put<_CharT, _OutIter>:: 1586: do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 1586: { return _M_insert_float(__s, __io, __fill, char(), __v); } 1586: # 1169 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.tcc" 3 1586: template 1586: _OutIter 1586: num_put<_CharT, _OutIter>:: 1586: do_put(iter_type __s, ios_base& __io, char_type __fill, 1586: long double __v) const 1586: { return _M_insert_float(__s, __io, __fill, 'L', __v); } 1586: 1586: template 1586: _OutIter 1586: num_put<_CharT, _OutIter>:: 1586: do_put(iter_type __s, ios_base& __io, char_type __fill, 1586: const void* __v) const 1586: { 1586: const ios_base::fmtflags __flags = __io.flags(); 1586: const ios_base::fmtflags __fmt = ~(ios_base::basefield 1586: | ios_base::uppercase); 1586: __io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase)); 1586: 1586: typedef __gnu_cxx::__conditional_type<(sizeof(const void*) 1586: <= sizeof(unsigned long)), 1586: unsigned long, unsigned long long>::__type _UIntPtrType; 1586: 1586: __s = _M_insert_int(__s, __io, __fill, 1586: reinterpret_cast<_UIntPtrType>(__v)); 1586: __io.flags(__flags); 1586: return __s; 1586: } 1586: 1586: 1586: # 1206 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.tcc" 3 1586: template 1586: void 1586: __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill, 1586: _CharT* __news, const _CharT* __olds, 1586: streamsize __newlen, streamsize __oldlen) 1586: { 1586: const size_t __plen = static_cast(__newlen - __oldlen); 1586: const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield; 1586: 1586: 1586: if (__adjust == ios_base::left) 1586: { 1586: _Traits::copy(__news, __olds, __oldlen); 1586: _Traits::assign(__news + __oldlen, __plen, __fill); 1586: return; 1586: } 1586: 1586: size_t __mod = 0; 1586: if (__adjust == ios_base::internal) 1586: { 1586: 1586: 1586: 1586: const locale& __loc = __io._M_getloc(); 1586: const ctype<_CharT>& __ctype = use_facet >(__loc); 1586: 1586: if (__ctype.widen('-') == __olds[0] 1586: || __ctype.widen('+') == __olds[0]) 1586: { 1586: __news[0] = __olds[0]; 1586: __mod = 1; 1586: ++__news; 1586: } 1586: else if (__ctype.widen('0') == __olds[0] 1586: && __oldlen > 1 1586: && (__ctype.widen('x') == __olds[1] 1586: || __ctype.widen('X') == __olds[1])) 1586: { 1586: __news[0] = __olds[0]; 1586: __news[1] = __olds[1]; 1586: __mod = 2; 1586: __news += 2; 1586: } 1586: 1586: } 1586: _Traits::assign(__news, __plen, __fill); 1586: _Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod); 1586: } 1586: 1586: template 1586: _CharT* 1586: __add_grouping(_CharT* __s, _CharT __sep, 1586: const char* __gbeg, size_t __gsize, 1586: const _CharT* __first, const _CharT* __last) 1586: { 1586: size_t __idx = 0; 1586: size_t __ctr = 0; 1586: 1586: while (__last - __first > __gbeg[__idx] 1586: && static_cast(__gbeg[__idx]) > 0 1586: && __gbeg[__idx] != __gnu_cxx::__numeric_traits::__max) 1586: { 1586: __last -= __gbeg[__idx]; 1586: __idx < __gsize - 1 ? ++__idx : ++__ctr; 1586: } 1586: 1586: while (__first != __last) 1586: *__s++ = *__first++; 1586: 1586: while (__ctr--) 1586: { 1586: *__s++ = __sep; 1586: for (char __i = __gbeg[__idx]; __i > 0; --__i) 1586: *__s++ = *__first++; 1586: } 1586: 1586: while (__idx--) 1586: { 1586: *__s++ = __sep; 1586: for (char __i = __gbeg[__idx]; __i > 0; --__i) 1586: *__s++ = *__first++; 1586: } 1586: 1586: return __s; 1586: } 1586: 1586: 1586: 1586: 1586: extern template class __cxx11:: numpunct; 1586: extern template class __cxx11:: numpunct_byname; 1586: extern template class num_get; 1586: extern template class num_put; 1586: extern template class ctype_byname; 1586: 1586: extern template 1586: const ctype& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: const numpunct& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: const num_put& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: const num_get& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: 1586: extern template class __cxx11:: numpunct; 1586: extern template class __cxx11:: numpunct_byname; 1586: extern template class num_get; 1586: extern template class num_put; 1586: extern template class ctype_byname; 1586: 1586: extern template 1586: const ctype& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: const numpunct& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: const num_put& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: const num_get& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: 1586: 1586: 1586: } 1586: # 2656 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets.h" 2 3 1586: # 38 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 2 3 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: template 1586: inline const _Facet& 1586: __check_facet(const _Facet* __f) 1586: { 1586: if (!__f) 1586: __throw_bad_cast(); 1586: return *__f; 1586: } 1586: # 66 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 3 1586: template 1586: class basic_ios : public ios_base 1586: { 1586: public: 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef _CharT char_type; 1586: typedef typename _Traits::int_type int_type; 1586: typedef typename _Traits::pos_type pos_type; 1586: typedef typename _Traits::off_type off_type; 1586: typedef _Traits traits_type; 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef ctype<_CharT> __ctype_type; 1586: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 1586: __num_put_type; 1586: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 1586: __num_get_type; 1586: 1586: 1586: 1586: protected: 1586: basic_ostream<_CharT, _Traits>* _M_tie; 1586: mutable char_type _M_fill; 1586: mutable bool _M_fill_init; 1586: basic_streambuf<_CharT, _Traits>* _M_streambuf; 1586: 1586: 1586: const __ctype_type* _M_ctype; 1586: 1586: const __num_put_type* _M_num_put; 1586: 1586: const __num_get_type* _M_num_get; 1586: 1586: public: 1586: # 117 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 3 1586: explicit operator bool() const 1586: { return !this->fail(); } 1586: 1586: 1586: 1586: 1586: 1586: bool 1586: operator!() const 1586: { return this->fail(); } 1586: # 136 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 3 1586: iostate 1586: rdstate() const 1586: { return _M_streambuf_state; } 1586: # 147 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 3 1586: void 1586: clear(iostate __state = goodbit); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: void 1586: setstate(iostate __state) 1586: { this->clear(this->rdstate() | __state); } 1586: 1586: 1586: 1586: 1586: void 1586: _M_setstate(iostate __state) 1586: { 1586: 1586: 1586: _M_streambuf_state |= __state; 1586: if (this->exceptions() & __state) 1586: throw; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: bool 1586: good() const 1586: { return this->rdstate() == 0; } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: bool 1586: eof() const 1586: { return (this->rdstate() & eofbit) != 0; } 1586: # 200 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 3 1586: bool 1586: fail() const 1586: { return (this->rdstate() & (badbit | failbit)) != 0; } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: bool 1586: bad() const 1586: { return (this->rdstate() & badbit) != 0; } 1586: # 221 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 3 1586: iostate 1586: exceptions() const 1586: { return _M_exception; } 1586: # 256 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 3 1586: void 1586: exceptions(iostate __except) 1586: { 1586: _M_exception = __except; 1586: this->clear(_M_streambuf_state); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: explicit 1586: basic_ios(basic_streambuf<_CharT, _Traits>* __sb) 1586: : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0), 1586: _M_ctype(0), _M_num_put(0), _M_num_get(0) 1586: { this->init(__sb); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: virtual 1586: ~basic_ios() { } 1586: # 294 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 3 1586: basic_ostream<_CharT, _Traits>* 1586: tie() const 1586: { return _M_tie; } 1586: # 306 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 3 1586: basic_ostream<_CharT, _Traits>* 1586: tie(basic_ostream<_CharT, _Traits>* __tiestr) 1586: { 1586: basic_ostream<_CharT, _Traits>* __old = _M_tie; 1586: _M_tie = __tiestr; 1586: return __old; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: basic_streambuf<_CharT, _Traits>* 1586: rdbuf() const 1586: { return _M_streambuf; } 1586: # 346 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 3 1586: basic_streambuf<_CharT, _Traits>* 1586: rdbuf(basic_streambuf<_CharT, _Traits>* __sb); 1586: # 360 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 3 1586: basic_ios& 1586: copyfmt(const basic_ios& __rhs); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: char_type 1586: fill() const 1586: { 1586: if (!_M_fill_init) 1586: { 1586: _M_fill = this->widen(' '); 1586: _M_fill_init = true; 1586: } 1586: return _M_fill; 1586: } 1586: # 389 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 3 1586: char_type 1586: fill(char_type __ch) 1586: { 1586: char_type __old = this->fill(); 1586: _M_fill = __ch; 1586: return __old; 1586: } 1586: # 409 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 3 1586: locale 1586: imbue(const locale& __loc); 1586: # 429 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 3 1586: char 1586: narrow(char_type __c, char __dfault) const 1586: { return __check_facet(_M_ctype).narrow(__c, __dfault); } 1586: # 448 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 3 1586: char_type 1586: widen(char __c) const 1586: { return __check_facet(_M_ctype).widen(__c); } 1586: 1586: protected: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: basic_ios() 1586: : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false), 1586: _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0) 1586: { } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: void 1586: init(basic_streambuf<_CharT, _Traits>* __sb); 1586: 1586: 1586: basic_ios(const basic_ios&) = delete; 1586: basic_ios& operator=(const basic_ios&) = delete; 1586: 1586: void 1586: move(basic_ios& __rhs) 1586: { 1586: ios_base::_M_move(__rhs); 1586: _M_cache_locale(_M_ios_locale); 1586: this->tie(__rhs.tie(nullptr)); 1586: _M_fill = __rhs._M_fill; 1586: _M_fill_init = __rhs._M_fill_init; 1586: _M_streambuf = nullptr; 1586: } 1586: 1586: void 1586: move(basic_ios&& __rhs) 1586: { this->move(__rhs); } 1586: 1586: void 1586: swap(basic_ios& __rhs) noexcept 1586: { 1586: ios_base::_M_swap(__rhs); 1586: _M_cache_locale(_M_ios_locale); 1586: __rhs._M_cache_locale(__rhs._M_ios_locale); 1586: std::swap(_M_tie, __rhs._M_tie); 1586: std::swap(_M_fill, __rhs._M_fill); 1586: std::swap(_M_fill_init, __rhs._M_fill_init); 1586: } 1586: 1586: void 1586: set_rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 1586: { _M_streambuf = __sb; } 1586: 1586: 1586: void 1586: _M_cache_locale(const locale& __loc); 1586: }; 1586: 1586: 1586: } 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.tcc" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.tcc" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.tcc" 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: template 1586: void 1586: basic_ios<_CharT, _Traits>::clear(iostate __state) 1586: { 1586: if (this->rdbuf()) 1586: _M_streambuf_state = __state; 1586: else 1586: _M_streambuf_state = __state | badbit; 1586: if (this->exceptions() & this->rdstate()) 1586: __throw_ios_failure(("basic_ios::clear")); 1586: } 1586: 1586: template 1586: basic_streambuf<_CharT, _Traits>* 1586: basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 1586: { 1586: basic_streambuf<_CharT, _Traits>* __old = _M_streambuf; 1586: _M_streambuf = __sb; 1586: this->clear(); 1586: return __old; 1586: } 1586: 1586: template 1586: basic_ios<_CharT, _Traits>& 1586: basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs) 1586: { 1586: 1586: 1586: if (this != &__rhs) 1586: { 1586: 1586: 1586: 1586: 1586: _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ? 1586: _M_local_word : new _Words[__rhs._M_word_size]; 1586: 1586: 1586: _Callback_list* __cb = __rhs._M_callbacks; 1586: if (__cb) 1586: __cb->_M_add_reference(); 1586: _M_call_callbacks(erase_event); 1586: if (_M_word != _M_local_word) 1586: { 1586: delete [] _M_word; 1586: _M_word = 0; 1586: } 1586: _M_dispose_callbacks(); 1586: 1586: 1586: _M_callbacks = __cb; 1586: for (int __i = 0; __i < __rhs._M_word_size; ++__i) 1586: __words[__i] = __rhs._M_word[__i]; 1586: _M_word = __words; 1586: _M_word_size = __rhs._M_word_size; 1586: 1586: this->flags(__rhs.flags()); 1586: this->width(__rhs.width()); 1586: this->precision(__rhs.precision()); 1586: this->tie(__rhs.tie()); 1586: this->fill(__rhs.fill()); 1586: _M_ios_locale = __rhs.getloc(); 1586: _M_cache_locale(_M_ios_locale); 1586: 1586: _M_call_callbacks(copyfmt_event); 1586: 1586: 1586: this->exceptions(__rhs.exceptions()); 1586: } 1586: return *this; 1586: } 1586: 1586: 1586: template 1586: locale 1586: basic_ios<_CharT, _Traits>::imbue(const locale& __loc) 1586: { 1586: locale __old(this->getloc()); 1586: ios_base::imbue(__loc); 1586: _M_cache_locale(__loc); 1586: if (this->rdbuf() != 0) 1586: this->rdbuf()->pubimbue(__loc); 1586: return __old; 1586: } 1586: 1586: template 1586: void 1586: basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb) 1586: { 1586: 1586: ios_base::_M_init(); 1586: 1586: 1586: _M_cache_locale(_M_ios_locale); 1586: # 146 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.tcc" 3 1586: _M_fill = _CharT(); 1586: _M_fill_init = false; 1586: 1586: _M_tie = 0; 1586: _M_exception = goodbit; 1586: _M_streambuf = __sb; 1586: _M_streambuf_state = __sb ? goodbit : badbit; 1586: } 1586: 1586: template 1586: void 1586: basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc) 1586: { 1586: if (__builtin_expect(has_facet<__ctype_type>(__loc), true)) 1586: _M_ctype = std::__addressof(use_facet<__ctype_type>(__loc)); 1586: else 1586: _M_ctype = 0; 1586: 1586: if (__builtin_expect(has_facet<__num_put_type>(__loc), true)) 1586: _M_num_put = std::__addressof(use_facet<__num_put_type>(__loc)); 1586: else 1586: _M_num_put = 0; 1586: 1586: if (__builtin_expect(has_facet<__num_get_type>(__loc), true)) 1586: _M_num_get = std::__addressof(use_facet<__num_get_type>(__loc)); 1586: else 1586: _M_num_get = 0; 1586: } 1586: 1586: 1586: 1586: 1586: extern template class basic_ios; 1586: 1586: 1586: extern template class basic_ios; 1586: 1586: 1586: 1586: 1586: } 1586: # 517 "/usr/mipsel-linux-gnu/include/c++/9/bits/basic_ios.h" 2 3 1586: # 45 "/usr/mipsel-linux-gnu/include/c++/9/ios" 2 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 2 3 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 57 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: template 1586: class basic_ostream : virtual public basic_ios<_CharT, _Traits> 1586: { 1586: public: 1586: 1586: typedef _CharT char_type; 1586: typedef typename _Traits::int_type int_type; 1586: typedef typename _Traits::pos_type pos_type; 1586: typedef typename _Traits::off_type off_type; 1586: typedef _Traits traits_type; 1586: 1586: 1586: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 1586: typedef basic_ios<_CharT, _Traits> __ios_type; 1586: typedef basic_ostream<_CharT, _Traits> __ostream_type; 1586: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 1586: __num_put_type; 1586: typedef ctype<_CharT> __ctype_type; 1586: # 83 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: explicit 1586: basic_ostream(__streambuf_type* __sb) 1586: { this->init(__sb); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: virtual 1586: ~basic_ostream() { } 1586: 1586: 1586: class sentry; 1586: friend class sentry; 1586: # 107 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: __ostream_type& 1586: operator<<(__ostream_type& (*__pf)(__ostream_type&)) 1586: { 1586: 1586: 1586: 1586: return __pf(*this); 1586: } 1586: 1586: __ostream_type& 1586: operator<<(__ios_type& (*__pf)(__ios_type&)) 1586: { 1586: 1586: 1586: 1586: __pf(*this); 1586: return *this; 1586: } 1586: 1586: __ostream_type& 1586: operator<<(ios_base& (*__pf) (ios_base&)) 1586: { 1586: 1586: 1586: 1586: __pf(*this); 1586: return *this; 1586: } 1586: # 165 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: __ostream_type& 1586: operator<<(long __n) 1586: { return _M_insert(__n); } 1586: 1586: __ostream_type& 1586: operator<<(unsigned long __n) 1586: { return _M_insert(__n); } 1586: 1586: __ostream_type& 1586: operator<<(bool __n) 1586: { return _M_insert(__n); } 1586: 1586: __ostream_type& 1586: operator<<(short __n); 1586: 1586: __ostream_type& 1586: operator<<(unsigned short __n) 1586: { 1586: 1586: 1586: return _M_insert(static_cast(__n)); 1586: } 1586: 1586: __ostream_type& 1586: operator<<(int __n); 1586: 1586: __ostream_type& 1586: operator<<(unsigned int __n) 1586: { 1586: 1586: 1586: return _M_insert(static_cast(__n)); 1586: } 1586: 1586: 1586: __ostream_type& 1586: operator<<(long long __n) 1586: { return _M_insert(__n); } 1586: 1586: __ostream_type& 1586: operator<<(unsigned long long __n) 1586: { return _M_insert(__n); } 1586: # 219 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: __ostream_type& 1586: operator<<(double __f) 1586: { return _M_insert(__f); } 1586: 1586: __ostream_type& 1586: operator<<(float __f) 1586: { 1586: 1586: 1586: return _M_insert(static_cast(__f)); 1586: } 1586: 1586: __ostream_type& 1586: operator<<(long double __f) 1586: { return _M_insert(__f); } 1586: # 244 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: __ostream_type& 1586: operator<<(const void* __p) 1586: { return _M_insert(__p); } 1586: # 275 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: __ostream_type& 1586: operator<<(__streambuf_type* __sb); 1586: # 308 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: __ostream_type& 1586: put(char_type __c); 1586: 1586: 1586: 1586: 1586: 1586: 1586: void 1586: _M_write(const char_type* __s, streamsize __n) 1586: { 1586: const streamsize __put = this->rdbuf()->sputn(__s, __n); 1586: if (__put != __n) 1586: this->setstate(ios_base::badbit); 1586: } 1586: # 340 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: __ostream_type& 1586: write(const char_type* __s, streamsize __n); 1586: # 353 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: __ostream_type& 1586: flush(); 1586: # 363 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: pos_type 1586: tellp(); 1586: # 374 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: __ostream_type& 1586: seekp(pos_type); 1586: # 386 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: __ostream_type& 1586: seekp(off_type, ios_base::seekdir); 1586: 1586: protected: 1586: basic_ostream() 1586: { this->init(0); } 1586: 1586: 1586: 1586: basic_ostream(basic_iostream<_CharT, _Traits>&) { } 1586: 1586: basic_ostream(const basic_ostream&) = delete; 1586: 1586: basic_ostream(basic_ostream&& __rhs) 1586: : __ios_type() 1586: { __ios_type::move(__rhs); } 1586: 1586: 1586: 1586: basic_ostream& operator=(const basic_ostream&) = delete; 1586: 1586: basic_ostream& 1586: operator=(basic_ostream&& __rhs) 1586: { 1586: swap(__rhs); 1586: return *this; 1586: } 1586: 1586: void 1586: swap(basic_ostream& __rhs) 1586: { __ios_type::swap(__rhs); } 1586: 1586: 1586: template 1586: __ostream_type& 1586: _M_insert(_ValueT __v); 1586: }; 1586: # 431 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: template 1586: class basic_ostream<_CharT, _Traits>::sentry 1586: { 1586: 1586: bool _M_ok; 1586: basic_ostream<_CharT, _Traits>& _M_os; 1586: 1586: public: 1586: # 450 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: explicit 1586: sentry(basic_ostream<_CharT, _Traits>& __os); 1586: 1586: #pragma GCC diagnostic push 1586: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ~sentry() 1586: { 1586: 1586: if (bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception()) 1586: { 1586: 1586: if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1) 1586: _M_os.setstate(ios_base::badbit); 1586: } 1586: } 1586: #pragma GCC diagnostic pop 1586: # 482 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: explicit 1586: 1586: operator bool() const 1586: { return _M_ok; } 1586: }; 1586: # 504 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: template 1586: inline basic_ostream<_CharT, _Traits>& 1586: operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c) 1586: { return __ostream_insert(__out, &__c, 1); } 1586: 1586: template 1586: inline basic_ostream<_CharT, _Traits>& 1586: operator<<(basic_ostream<_CharT, _Traits>& __out, char __c) 1586: { return (__out << __out.widen(__c)); } 1586: 1586: 1586: template 1586: inline basic_ostream& 1586: operator<<(basic_ostream& __out, char __c) 1586: { return __ostream_insert(__out, &__c, 1); } 1586: 1586: 1586: template 1586: inline basic_ostream& 1586: operator<<(basic_ostream& __out, signed char __c) 1586: { return (__out << static_cast(__c)); } 1586: 1586: template 1586: inline basic_ostream& 1586: operator<<(basic_ostream& __out, unsigned char __c) 1586: { return (__out << static_cast(__c)); } 1586: # 546 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: template 1586: inline basic_ostream<_CharT, _Traits>& 1586: operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s) 1586: { 1586: if (!__s) 1586: __out.setstate(ios_base::badbit); 1586: else 1586: __ostream_insert(__out, __s, 1586: static_cast(_Traits::length(__s))); 1586: return __out; 1586: } 1586: 1586: template 1586: basic_ostream<_CharT, _Traits> & 1586: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s); 1586: 1586: 1586: template 1586: inline basic_ostream& 1586: operator<<(basic_ostream& __out, const char* __s) 1586: { 1586: if (!__s) 1586: __out.setstate(ios_base::badbit); 1586: else 1586: __ostream_insert(__out, __s, 1586: static_cast(_Traits::length(__s))); 1586: return __out; 1586: } 1586: 1586: 1586: template 1586: inline basic_ostream& 1586: operator<<(basic_ostream& __out, const signed char* __s) 1586: { return (__out << reinterpret_cast(__s)); } 1586: 1586: template 1586: inline basic_ostream & 1586: operator<<(basic_ostream& __out, const unsigned char* __s) 1586: { return (__out << reinterpret_cast(__s)); } 1586: # 597 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: template 1586: inline basic_ostream<_CharT, _Traits>& 1586: endl(basic_ostream<_CharT, _Traits>& __os) 1586: { return flush(__os.put(__os.widen('\n'))); } 1586: # 609 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: template 1586: inline basic_ostream<_CharT, _Traits>& 1586: ends(basic_ostream<_CharT, _Traits>& __os) 1586: { return __os.put(_CharT()); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline basic_ostream<_CharT, _Traits>& 1586: flush(basic_ostream<_CharT, _Traits>& __os) 1586: { return __os.flush(); } 1586: 1586: 1586: template 1586: basic_ostream<_Ch, _Up>& 1586: __is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*); 1586: 1586: template 1586: struct __is_convertible_to_basic_ostream_impl 1586: { 1586: using __ostream_type = void; 1586: }; 1586: 1586: template 1586: using __do_is_convertible_to_basic_ostream_impl = 1586: decltype(__is_convertible_to_basic_ostream_test 1586: (declval::type*>())); 1586: 1586: template 1586: struct __is_convertible_to_basic_ostream_impl 1586: <_Tp, 1586: __void_t<__do_is_convertible_to_basic_ostream_impl<_Tp>>> 1586: { 1586: using __ostream_type = 1586: __do_is_convertible_to_basic_ostream_impl<_Tp>; 1586: }; 1586: 1586: template 1586: struct __is_convertible_to_basic_ostream 1586: : __is_convertible_to_basic_ostream_impl<_Tp> 1586: { 1586: public: 1586: using type = __not_::__ostream_type>>; 1586: constexpr static bool value = type::value; 1586: }; 1586: 1586: template 1586: struct __is_insertable : false_type {}; 1586: 1586: template 1586: struct __is_insertable<_Ostream, _Tp, 1586: __void_t() 1586: << declval())>> 1586: : true_type {}; 1586: 1586: template 1586: using __rvalue_ostream_type = 1586: typename __is_convertible_to_basic_ostream< 1586: _Ostream>::__ostream_type; 1586: # 683 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 3 1586: template 1586: inline 1586: typename enable_if<__and_<__not_>, 1586: __is_convertible_to_basic_ostream<_Ostream>, 1586: __is_insertable< 1586: __rvalue_ostream_type<_Ostream>, 1586: const _Tp&>>::value, 1586: __rvalue_ostream_type<_Ostream>>::type 1586: operator<<(_Ostream&& __os, const _Tp& __x) 1586: { 1586: __rvalue_ostream_type<_Ostream> __ret_os = __os; 1586: __ret_os << __x; 1586: return __ret_os; 1586: } 1586: 1586: 1586: 1586: } 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/ostream.tcc" 1 3 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/bits/ostream.tcc" 3 1586: 1586: # 38 "/usr/mipsel-linux-gnu/include/c++/9/bits/ostream.tcc" 3 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: template 1586: basic_ostream<_CharT, _Traits>::sentry:: 1586: sentry(basic_ostream<_CharT, _Traits>& __os) 1586: : _M_ok(false), _M_os(__os) 1586: { 1586: 1586: if (__os.tie() && __os.good()) 1586: __os.tie()->flush(); 1586: 1586: if (__os.good()) 1586: _M_ok = true; 1586: else 1586: __os.setstate(ios_base::failbit); 1586: } 1586: 1586: template 1586: template 1586: basic_ostream<_CharT, _Traits>& 1586: basic_ostream<_CharT, _Traits>:: 1586: _M_insert(_ValueT __v) 1586: { 1586: sentry __cerb(*this); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: const __num_put_type& __np = __check_facet(this->_M_num_put); 1586: if (__np.put(*this, *this, this->fill(), __v).failed()) 1586: __err |= ios_base::badbit; 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: } 1586: return *this; 1586: } 1586: 1586: template 1586: basic_ostream<_CharT, _Traits>& 1586: basic_ostream<_CharT, _Traits>:: 1586: operator<<(short __n) 1586: { 1586: 1586: 1586: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 1586: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 1586: return _M_insert(static_cast(static_cast(__n))); 1586: else 1586: return _M_insert(static_cast(__n)); 1586: } 1586: 1586: template 1586: basic_ostream<_CharT, _Traits>& 1586: basic_ostream<_CharT, _Traits>:: 1586: operator<<(int __n) 1586: { 1586: 1586: 1586: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 1586: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 1586: return _M_insert(static_cast(static_cast(__n))); 1586: else 1586: return _M_insert(static_cast(__n)); 1586: } 1586: 1586: template 1586: basic_ostream<_CharT, _Traits>& 1586: basic_ostream<_CharT, _Traits>:: 1586: operator<<(__streambuf_type* __sbin) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: sentry __cerb(*this); 1586: if (__cerb && __sbin) 1586: { 1586: try 1586: { 1586: if (!__copy_streambufs(__sbin, this->rdbuf())) 1586: __err |= ios_base::failbit; 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::failbit); } 1586: } 1586: else if (!__sbin) 1586: __err |= ios_base::badbit; 1586: if (__err) 1586: this->setstate(__err); 1586: return *this; 1586: } 1586: 1586: template 1586: basic_ostream<_CharT, _Traits>& 1586: basic_ostream<_CharT, _Traits>:: 1586: put(char_type __c) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: sentry __cerb(*this); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: const int_type __put = this->rdbuf()->sputc(__c); 1586: if (traits_type::eq_int_type(__put, traits_type::eof())) 1586: __err |= ios_base::badbit; 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: } 1586: return *this; 1586: } 1586: 1586: template 1586: basic_ostream<_CharT, _Traits>& 1586: basic_ostream<_CharT, _Traits>:: 1586: write(const _CharT* __s, streamsize __n) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: sentry __cerb(*this); 1586: if (__cerb) 1586: { 1586: try 1586: { _M_write(__s, __n); } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: } 1586: return *this; 1586: } 1586: 1586: template 1586: basic_ostream<_CharT, _Traits>& 1586: basic_ostream<_CharT, _Traits>:: 1586: flush() 1586: { 1586: 1586: 1586: 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: if (this->rdbuf() && this->rdbuf()->pubsync() == -1) 1586: __err |= ios_base::badbit; 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: return *this; 1586: } 1586: 1586: template 1586: typename basic_ostream<_CharT, _Traits>::pos_type 1586: basic_ostream<_CharT, _Traits>:: 1586: tellp() 1586: { 1586: pos_type __ret = pos_type(-1); 1586: try 1586: { 1586: if (!this->fail()) 1586: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out); 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: return __ret; 1586: } 1586: 1586: template 1586: basic_ostream<_CharT, _Traits>& 1586: basic_ostream<_CharT, _Traits>:: 1586: seekp(pos_type __pos) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: if (!this->fail()) 1586: { 1586: 1586: 1586: const pos_type __p = this->rdbuf()->pubseekpos(__pos, 1586: ios_base::out); 1586: 1586: 1586: if (__p == pos_type(off_type(-1))) 1586: __err |= ios_base::failbit; 1586: } 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: return *this; 1586: } 1586: 1586: template 1586: basic_ostream<_CharT, _Traits>& 1586: basic_ostream<_CharT, _Traits>:: 1586: seekp(off_type __off, ios_base::seekdir __dir) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: if (!this->fail()) 1586: { 1586: 1586: 1586: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 1586: ios_base::out); 1586: 1586: 1586: if (__p == pos_type(off_type(-1))) 1586: __err |= ios_base::failbit; 1586: } 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: return *this; 1586: } 1586: 1586: template 1586: basic_ostream<_CharT, _Traits>& 1586: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s) 1586: { 1586: if (!__s) 1586: __out.setstate(ios_base::badbit); 1586: else 1586: { 1586: 1586: 1586: const size_t __clen = char_traits::length(__s); 1586: try 1586: { 1586: struct __ptr_guard 1586: { 1586: _CharT *__p; 1586: __ptr_guard (_CharT *__ip): __p(__ip) { } 1586: ~__ptr_guard() { delete[] __p; } 1586: _CharT* __get() { return __p; } 1586: } __pg (new _CharT[__clen]); 1586: 1586: _CharT *__ws = __pg.__get(); 1586: for (size_t __i = 0; __i < __clen; ++__i) 1586: __ws[__i] = __out.widen(__s[__i]); 1586: __ostream_insert(__out, __ws, __clen); 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: __out._M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { __out._M_setstate(ios_base::badbit); } 1586: } 1586: return __out; 1586: } 1586: 1586: 1586: 1586: 1586: extern template class basic_ostream; 1586: extern template ostream& endl(ostream&); 1586: extern template ostream& ends(ostream&); 1586: extern template ostream& flush(ostream&); 1586: extern template ostream& operator<<(ostream&, char); 1586: extern template ostream& operator<<(ostream&, unsigned char); 1586: extern template ostream& operator<<(ostream&, signed char); 1586: extern template ostream& operator<<(ostream&, const char*); 1586: extern template ostream& operator<<(ostream&, const unsigned char*); 1586: extern template ostream& operator<<(ostream&, const signed char*); 1586: 1586: extern template ostream& ostream::_M_insert(long); 1586: extern template ostream& ostream::_M_insert(unsigned long); 1586: extern template ostream& ostream::_M_insert(bool); 1586: 1586: extern template ostream& ostream::_M_insert(long long); 1586: extern template ostream& ostream::_M_insert(unsigned long long); 1586: 1586: extern template ostream& ostream::_M_insert(double); 1586: extern template ostream& ostream::_M_insert(long double); 1586: extern template ostream& ostream::_M_insert(const void*); 1586: 1586: 1586: extern template class basic_ostream; 1586: extern template wostream& endl(wostream&); 1586: extern template wostream& ends(wostream&); 1586: extern template wostream& flush(wostream&); 1586: extern template wostream& operator<<(wostream&, wchar_t); 1586: extern template wostream& operator<<(wostream&, char); 1586: extern template wostream& operator<<(wostream&, const wchar_t*); 1586: extern template wostream& operator<<(wostream&, const char*); 1586: 1586: extern template wostream& wostream::_M_insert(long); 1586: extern template wostream& wostream::_M_insert(unsigned long); 1586: extern template wostream& wostream::_M_insert(bool); 1586: 1586: extern template wostream& wostream::_M_insert(long long); 1586: extern template wostream& wostream::_M_insert(unsigned long long); 1586: 1586: extern template wostream& wostream::_M_insert(double); 1586: extern template wostream& wostream::_M_insert(long double); 1586: extern template wostream& wostream::_M_insert(const void*); 1586: 1586: 1586: 1586: 1586: } 1586: # 703 "/usr/mipsel-linux-gnu/include/c++/9/ostream" 2 3 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/iostream" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/istream" 1 3 1586: # 36 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 57 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: template 1586: class basic_istream : virtual public basic_ios<_CharT, _Traits> 1586: { 1586: public: 1586: 1586: typedef _CharT char_type; 1586: typedef typename _Traits::int_type int_type; 1586: typedef typename _Traits::pos_type pos_type; 1586: typedef typename _Traits::off_type off_type; 1586: typedef _Traits traits_type; 1586: 1586: 1586: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 1586: typedef basic_ios<_CharT, _Traits> __ios_type; 1586: typedef basic_istream<_CharT, _Traits> __istream_type; 1586: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 1586: __num_get_type; 1586: typedef ctype<_CharT> __ctype_type; 1586: 1586: protected: 1586: 1586: 1586: 1586: 1586: 1586: streamsize _M_gcount; 1586: 1586: public: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: explicit 1586: basic_istream(__streambuf_type* __sb) 1586: : _M_gcount(streamsize(0)) 1586: { this->init(__sb); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: virtual 1586: ~basic_istream() 1586: { _M_gcount = streamsize(0); } 1586: 1586: 1586: class sentry; 1586: friend class sentry; 1586: # 119 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: __istream_type& 1586: operator>>(__istream_type& (*__pf)(__istream_type&)) 1586: { return __pf(*this); } 1586: 1586: __istream_type& 1586: operator>>(__ios_type& (*__pf)(__ios_type&)) 1586: { 1586: __pf(*this); 1586: return *this; 1586: } 1586: 1586: __istream_type& 1586: operator>>(ios_base& (*__pf)(ios_base&)) 1586: { 1586: __pf(*this); 1586: return *this; 1586: } 1586: # 167 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: __istream_type& 1586: operator>>(bool& __n) 1586: { return _M_extract(__n); } 1586: 1586: __istream_type& 1586: operator>>(short& __n); 1586: 1586: __istream_type& 1586: operator>>(unsigned short& __n) 1586: { return _M_extract(__n); } 1586: 1586: __istream_type& 1586: operator>>(int& __n); 1586: 1586: __istream_type& 1586: operator>>(unsigned int& __n) 1586: { return _M_extract(__n); } 1586: 1586: __istream_type& 1586: operator>>(long& __n) 1586: { return _M_extract(__n); } 1586: 1586: __istream_type& 1586: operator>>(unsigned long& __n) 1586: { return _M_extract(__n); } 1586: 1586: 1586: __istream_type& 1586: operator>>(long long& __n) 1586: { return _M_extract(__n); } 1586: 1586: __istream_type& 1586: operator>>(unsigned long long& __n) 1586: { return _M_extract(__n); } 1586: # 213 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: __istream_type& 1586: operator>>(float& __f) 1586: { return _M_extract(__f); } 1586: 1586: __istream_type& 1586: operator>>(double& __f) 1586: { return _M_extract(__f); } 1586: 1586: __istream_type& 1586: operator>>(long double& __f) 1586: { return _M_extract(__f); } 1586: # 234 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: __istream_type& 1586: operator>>(void*& __p) 1586: { return _M_extract(__p); } 1586: # 258 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: __istream_type& 1586: operator>>(__streambuf_type* __sb); 1586: # 268 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: streamsize 1586: gcount() const 1586: { return _M_gcount; } 1586: # 301 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: int_type 1586: get(); 1586: # 315 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: __istream_type& 1586: get(char_type& __c); 1586: # 342 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: __istream_type& 1586: get(char_type* __s, streamsize __n, char_type __delim); 1586: # 353 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: __istream_type& 1586: get(char_type* __s, streamsize __n) 1586: { return this->get(__s, __n, this->widen('\n')); } 1586: # 376 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: __istream_type& 1586: get(__streambuf_type& __sb, char_type __delim); 1586: # 386 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: __istream_type& 1586: get(__streambuf_type& __sb) 1586: { return this->get(__sb, this->widen('\n')); } 1586: # 415 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: __istream_type& 1586: getline(char_type* __s, streamsize __n, char_type __delim); 1586: # 426 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: __istream_type& 1586: getline(char_type* __s, streamsize __n) 1586: { return this->getline(__s, __n, this->widen('\n')); } 1586: # 450 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: __istream_type& 1586: ignore(streamsize __n, int_type __delim); 1586: 1586: __istream_type& 1586: ignore(streamsize __n); 1586: 1586: __istream_type& 1586: ignore(); 1586: # 467 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: int_type 1586: peek(); 1586: # 485 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: __istream_type& 1586: read(char_type* __s, streamsize __n); 1586: # 504 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: streamsize 1586: readsome(char_type* __s, streamsize __n); 1586: # 521 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: __istream_type& 1586: putback(char_type __c); 1586: # 537 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: __istream_type& 1586: unget(); 1586: # 555 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: int 1586: sync(); 1586: # 570 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: pos_type 1586: tellg(); 1586: # 585 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: __istream_type& 1586: seekg(pos_type); 1586: # 601 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: __istream_type& 1586: seekg(off_type, ios_base::seekdir); 1586: 1586: 1586: protected: 1586: basic_istream() 1586: : _M_gcount(streamsize(0)) 1586: { this->init(0); } 1586: 1586: 1586: basic_istream(const basic_istream&) = delete; 1586: 1586: basic_istream(basic_istream&& __rhs) 1586: : __ios_type(), _M_gcount(__rhs._M_gcount) 1586: { 1586: __ios_type::move(__rhs); 1586: __rhs._M_gcount = 0; 1586: } 1586: 1586: 1586: 1586: basic_istream& operator=(const basic_istream&) = delete; 1586: 1586: basic_istream& 1586: operator=(basic_istream&& __rhs) 1586: { 1586: swap(__rhs); 1586: return *this; 1586: } 1586: 1586: void 1586: swap(basic_istream& __rhs) 1586: { 1586: __ios_type::swap(__rhs); 1586: std::swap(_M_gcount, __rhs._M_gcount); 1586: } 1586: 1586: 1586: template 1586: __istream_type& 1586: _M_extract(_ValueT& __v); 1586: }; 1586: 1586: 1586: template<> 1586: basic_istream& 1586: basic_istream:: 1586: getline(char_type* __s, streamsize __n, char_type __delim); 1586: 1586: template<> 1586: basic_istream& 1586: basic_istream:: 1586: ignore(streamsize __n); 1586: 1586: template<> 1586: basic_istream& 1586: basic_istream:: 1586: ignore(streamsize __n, int_type __delim); 1586: 1586: 1586: template<> 1586: basic_istream& 1586: basic_istream:: 1586: getline(char_type* __s, streamsize __n, char_type __delim); 1586: 1586: template<> 1586: basic_istream& 1586: basic_istream:: 1586: ignore(streamsize __n); 1586: 1586: template<> 1586: basic_istream& 1586: basic_istream:: 1586: ignore(streamsize __n, int_type __delim); 1586: # 685 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: template 1586: class basic_istream<_CharT, _Traits>::sentry 1586: { 1586: 1586: bool _M_ok; 1586: 1586: public: 1586: 1586: typedef _Traits traits_type; 1586: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 1586: typedef basic_istream<_CharT, _Traits> __istream_type; 1586: typedef typename __istream_type::__ctype_type __ctype_type; 1586: typedef typename _Traits::int_type __int_type; 1586: # 721 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: explicit 1586: sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false); 1586: # 732 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: explicit 1586: 1586: operator bool() const 1586: { return _M_ok; } 1586: }; 1586: # 750 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c); 1586: 1586: template 1586: inline basic_istream& 1586: operator>>(basic_istream& __in, unsigned char& __c) 1586: { return (__in >> reinterpret_cast(__c)); } 1586: 1586: template 1586: inline basic_istream& 1586: operator>>(basic_istream& __in, signed char& __c) 1586: { return (__in >> reinterpret_cast(__c)); } 1586: # 792 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s); 1586: 1586: 1586: template<> 1586: basic_istream& 1586: operator>>(basic_istream& __in, char* __s); 1586: 1586: template 1586: inline basic_istream& 1586: operator>>(basic_istream& __in, unsigned char* __s) 1586: { return (__in >> reinterpret_cast(__s)); } 1586: 1586: template 1586: inline basic_istream& 1586: operator>>(basic_istream& __in, signed char* __s) 1586: { return (__in >> reinterpret_cast(__s)); } 1586: # 823 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: template 1586: class basic_iostream 1586: : public basic_istream<_CharT, _Traits>, 1586: public basic_ostream<_CharT, _Traits> 1586: { 1586: public: 1586: 1586: 1586: 1586: typedef _CharT char_type; 1586: typedef typename _Traits::int_type int_type; 1586: typedef typename _Traits::pos_type pos_type; 1586: typedef typename _Traits::off_type off_type; 1586: typedef _Traits traits_type; 1586: 1586: 1586: typedef basic_istream<_CharT, _Traits> __istream_type; 1586: typedef basic_ostream<_CharT, _Traits> __ostream_type; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: explicit 1586: basic_iostream(basic_streambuf<_CharT, _Traits>* __sb) 1586: : __istream_type(__sb), __ostream_type(__sb) { } 1586: 1586: 1586: 1586: 1586: virtual 1586: ~basic_iostream() { } 1586: 1586: protected: 1586: basic_iostream() 1586: : __istream_type(), __ostream_type() { } 1586: 1586: 1586: basic_iostream(const basic_iostream&) = delete; 1586: 1586: basic_iostream(basic_iostream&& __rhs) 1586: : __istream_type(std::move(__rhs)), __ostream_type(*this) 1586: { } 1586: 1586: 1586: 1586: basic_iostream& operator=(const basic_iostream&) = delete; 1586: 1586: basic_iostream& 1586: operator=(basic_iostream&& __rhs) 1586: { 1586: swap(__rhs); 1586: return *this; 1586: } 1586: 1586: void 1586: swap(basic_iostream& __rhs) 1586: { __istream_type::swap(__rhs); } 1586: 1586: }; 1586: # 906 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: ws(basic_istream<_CharT, _Traits>& __is); 1586: 1586: 1586: template 1586: basic_istream<_Ch, _Up>& 1586: __is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*); 1586: 1586: template 1586: struct __is_convertible_to_basic_istream_impl 1586: { 1586: using __istream_type = void; 1586: }; 1586: 1586: template 1586: using __do_is_convertible_to_basic_istream_impl = 1586: decltype(__is_convertible_to_basic_istream_test 1586: (declval::type*>())); 1586: 1586: template 1586: struct __is_convertible_to_basic_istream_impl 1586: <_Tp, 1586: __void_t<__do_is_convertible_to_basic_istream_impl<_Tp>>> 1586: { 1586: using __istream_type = 1586: __do_is_convertible_to_basic_istream_impl<_Tp>; 1586: }; 1586: 1586: template 1586: struct __is_convertible_to_basic_istream 1586: : __is_convertible_to_basic_istream_impl<_Tp> 1586: { 1586: public: 1586: using type = __not_::__istream_type>>; 1586: constexpr static bool value = type::value; 1586: }; 1586: 1586: template 1586: struct __is_extractable : false_type {}; 1586: 1586: template 1586: struct __is_extractable<_Istream, _Tp, 1586: __void_t() 1586: >> declval<_Tp>())>> 1586: : true_type {}; 1586: 1586: template 1586: using __rvalue_istream_type = 1586: typename __is_convertible_to_basic_istream< 1586: _Istream>::__istream_type; 1586: # 972 "/usr/mipsel-linux-gnu/include/c++/9/istream" 3 1586: template 1586: inline 1586: typename enable_if<__and_<__not_>, 1586: __is_convertible_to_basic_istream<_Istream>, 1586: __is_extractable< 1586: __rvalue_istream_type<_Istream>, 1586: _Tp&&>>::value, 1586: __rvalue_istream_type<_Istream>>::type 1586: operator>>(_Istream&& __is, _Tp&& __x) 1586: { 1586: __rvalue_istream_type<_Istream> __ret_is = __is; 1586: __ret_is >> std::forward<_Tp>(__x); 1586: return __ret_is; 1586: } 1586: 1586: 1586: 1586: } 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/istream.tcc" 1 3 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/bits/istream.tcc" 3 1586: 1586: # 38 "/usr/mipsel-linux-gnu/include/c++/9/bits/istream.tcc" 3 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: template 1586: basic_istream<_CharT, _Traits>::sentry:: 1586: sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: if (__in.good()) 1586: try 1586: { 1586: if (__in.tie()) 1586: __in.tie()->flush(); 1586: if (!__noskip && bool(__in.flags() & ios_base::skipws)) 1586: { 1586: const __int_type __eof = traits_type::eof(); 1586: __streambuf_type* __sb = __in.rdbuf(); 1586: __int_type __c = __sb->sgetc(); 1586: 1586: const __ctype_type& __ct = __check_facet(__in._M_ctype); 1586: while (!traits_type::eq_int_type(__c, __eof) 1586: && __ct.is(ctype_base::space, 1586: traits_type::to_char_type(__c))) 1586: __c = __sb->snextc(); 1586: 1586: 1586: 1586: 1586: if (traits_type::eq_int_type(__c, __eof)) 1586: __err |= ios_base::eofbit; 1586: } 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: __in._M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { __in._M_setstate(ios_base::badbit); } 1586: 1586: if (__in.good() && __err == ios_base::goodbit) 1586: _M_ok = true; 1586: else 1586: { 1586: __err |= ios_base::failbit; 1586: __in.setstate(__err); 1586: } 1586: } 1586: 1586: template 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: basic_istream<_CharT, _Traits>:: 1586: _M_extract(_ValueT& __v) 1586: { 1586: sentry __cerb(*this, false); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: const __num_get_type& __ng = __check_facet(this->_M_num_get); 1586: __ng.get(*this, 0, *this, __err, __v); 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: } 1586: return *this; 1586: } 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: basic_istream<_CharT, _Traits>:: 1586: operator>>(short& __n) 1586: { 1586: 1586: 1586: sentry __cerb(*this, false); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: long __l; 1586: const __num_get_type& __ng = __check_facet(this->_M_num_get); 1586: __ng.get(*this, 0, *this, __err, __l); 1586: 1586: 1586: 1586: if (__l < __gnu_cxx::__numeric_traits::__min) 1586: { 1586: __err |= ios_base::failbit; 1586: __n = __gnu_cxx::__numeric_traits::__min; 1586: } 1586: else if (__l > __gnu_cxx::__numeric_traits::__max) 1586: { 1586: __err |= ios_base::failbit; 1586: __n = __gnu_cxx::__numeric_traits::__max; 1586: } 1586: else 1586: __n = short(__l); 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: } 1586: return *this; 1586: } 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: basic_istream<_CharT, _Traits>:: 1586: operator>>(int& __n) 1586: { 1586: 1586: 1586: sentry __cerb(*this, false); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: long __l; 1586: const __num_get_type& __ng = __check_facet(this->_M_num_get); 1586: __ng.get(*this, 0, *this, __err, __l); 1586: 1586: 1586: 1586: if (__l < __gnu_cxx::__numeric_traits::__min) 1586: { 1586: __err |= ios_base::failbit; 1586: __n = __gnu_cxx::__numeric_traits::__min; 1586: } 1586: else if (__l > __gnu_cxx::__numeric_traits::__max) 1586: { 1586: __err |= ios_base::failbit; 1586: __n = __gnu_cxx::__numeric_traits::__max; 1586: } 1586: else 1586: __n = int(__l); 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: } 1586: return *this; 1586: } 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: basic_istream<_CharT, _Traits>:: 1586: operator>>(__streambuf_type* __sbout) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: sentry __cerb(*this, false); 1586: if (__cerb && __sbout) 1586: { 1586: try 1586: { 1586: bool __ineof; 1586: if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof)) 1586: __err |= ios_base::failbit; 1586: if (__ineof) 1586: __err |= ios_base::eofbit; 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::failbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::failbit); } 1586: } 1586: else if (!__sbout) 1586: __err |= ios_base::failbit; 1586: if (__err) 1586: this->setstate(__err); 1586: return *this; 1586: } 1586: 1586: template 1586: typename basic_istream<_CharT, _Traits>::int_type 1586: basic_istream<_CharT, _Traits>:: 1586: get(void) 1586: { 1586: const int_type __eof = traits_type::eof(); 1586: int_type __c = __eof; 1586: _M_gcount = 0; 1586: ios_base::iostate __err = ios_base::goodbit; 1586: sentry __cerb(*this, true); 1586: if (__cerb) 1586: { 1586: try 1586: { 1586: __c = this->rdbuf()->sbumpc(); 1586: 1586: if (!traits_type::eq_int_type(__c, __eof)) 1586: _M_gcount = 1; 1586: else 1586: __err |= ios_base::eofbit; 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: } 1586: if (!_M_gcount) 1586: __err |= ios_base::failbit; 1586: if (__err) 1586: this->setstate(__err); 1586: return __c; 1586: } 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: basic_istream<_CharT, _Traits>:: 1586: get(char_type& __c) 1586: { 1586: _M_gcount = 0; 1586: ios_base::iostate __err = ios_base::goodbit; 1586: sentry __cerb(*this, true); 1586: if (__cerb) 1586: { 1586: try 1586: { 1586: const int_type __cb = this->rdbuf()->sbumpc(); 1586: 1586: if (!traits_type::eq_int_type(__cb, traits_type::eof())) 1586: { 1586: _M_gcount = 1; 1586: __c = traits_type::to_char_type(__cb); 1586: } 1586: else 1586: __err |= ios_base::eofbit; 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: } 1586: if (!_M_gcount) 1586: __err |= ios_base::failbit; 1586: if (__err) 1586: this->setstate(__err); 1586: return *this; 1586: } 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: basic_istream<_CharT, _Traits>:: 1586: get(char_type* __s, streamsize __n, char_type __delim) 1586: { 1586: _M_gcount = 0; 1586: ios_base::iostate __err = ios_base::goodbit; 1586: sentry __cerb(*this, true); 1586: if (__cerb) 1586: { 1586: try 1586: { 1586: const int_type __idelim = traits_type::to_int_type(__delim); 1586: const int_type __eof = traits_type::eof(); 1586: __streambuf_type* __sb = this->rdbuf(); 1586: int_type __c = __sb->sgetc(); 1586: 1586: while (_M_gcount + 1 < __n 1586: && !traits_type::eq_int_type(__c, __eof) 1586: && !traits_type::eq_int_type(__c, __idelim)) 1586: { 1586: *__s++ = traits_type::to_char_type(__c); 1586: ++_M_gcount; 1586: __c = __sb->snextc(); 1586: } 1586: if (traits_type::eq_int_type(__c, __eof)) 1586: __err |= ios_base::eofbit; 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: } 1586: 1586: 1586: if (__n > 0) 1586: *__s = char_type(); 1586: if (!_M_gcount) 1586: __err |= ios_base::failbit; 1586: if (__err) 1586: this->setstate(__err); 1586: return *this; 1586: } 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: basic_istream<_CharT, _Traits>:: 1586: get(__streambuf_type& __sb, char_type __delim) 1586: { 1586: _M_gcount = 0; 1586: ios_base::iostate __err = ios_base::goodbit; 1586: sentry __cerb(*this, true); 1586: if (__cerb) 1586: { 1586: try 1586: { 1586: const int_type __idelim = traits_type::to_int_type(__delim); 1586: const int_type __eof = traits_type::eof(); 1586: __streambuf_type* __this_sb = this->rdbuf(); 1586: int_type __c = __this_sb->sgetc(); 1586: char_type __c2 = traits_type::to_char_type(__c); 1586: 1586: while (!traits_type::eq_int_type(__c, __eof) 1586: && !traits_type::eq_int_type(__c, __idelim) 1586: && !traits_type::eq_int_type(__sb.sputc(__c2), __eof)) 1586: { 1586: ++_M_gcount; 1586: __c = __this_sb->snextc(); 1586: __c2 = traits_type::to_char_type(__c); 1586: } 1586: if (traits_type::eq_int_type(__c, __eof)) 1586: __err |= ios_base::eofbit; 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: } 1586: if (!_M_gcount) 1586: __err |= ios_base::failbit; 1586: if (__err) 1586: this->setstate(__err); 1586: return *this; 1586: } 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: basic_istream<_CharT, _Traits>:: 1586: getline(char_type* __s, streamsize __n, char_type __delim) 1586: { 1586: _M_gcount = 0; 1586: ios_base::iostate __err = ios_base::goodbit; 1586: sentry __cerb(*this, true); 1586: if (__cerb) 1586: { 1586: try 1586: { 1586: const int_type __idelim = traits_type::to_int_type(__delim); 1586: const int_type __eof = traits_type::eof(); 1586: __streambuf_type* __sb = this->rdbuf(); 1586: int_type __c = __sb->sgetc(); 1586: 1586: while (_M_gcount + 1 < __n 1586: && !traits_type::eq_int_type(__c, __eof) 1586: && !traits_type::eq_int_type(__c, __idelim)) 1586: { 1586: *__s++ = traits_type::to_char_type(__c); 1586: __c = __sb->snextc(); 1586: ++_M_gcount; 1586: } 1586: if (traits_type::eq_int_type(__c, __eof)) 1586: __err |= ios_base::eofbit; 1586: else 1586: { 1586: if (traits_type::eq_int_type(__c, __idelim)) 1586: { 1586: __sb->sbumpc(); 1586: ++_M_gcount; 1586: } 1586: else 1586: __err |= ios_base::failbit; 1586: } 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: } 1586: 1586: 1586: if (__n > 0) 1586: *__s = char_type(); 1586: if (!_M_gcount) 1586: __err |= ios_base::failbit; 1586: if (__err) 1586: this->setstate(__err); 1586: return *this; 1586: } 1586: 1586: 1586: 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: basic_istream<_CharT, _Traits>:: 1586: ignore(void) 1586: { 1586: _M_gcount = 0; 1586: sentry __cerb(*this, true); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: const int_type __eof = traits_type::eof(); 1586: __streambuf_type* __sb = this->rdbuf(); 1586: 1586: if (traits_type::eq_int_type(__sb->sbumpc(), __eof)) 1586: __err |= ios_base::eofbit; 1586: else 1586: _M_gcount = 1; 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: } 1586: return *this; 1586: } 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: basic_istream<_CharT, _Traits>:: 1586: ignore(streamsize __n) 1586: { 1586: _M_gcount = 0; 1586: sentry __cerb(*this, true); 1586: if (__cerb && __n > 0) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: const int_type __eof = traits_type::eof(); 1586: __streambuf_type* __sb = this->rdbuf(); 1586: int_type __c = __sb->sgetc(); 1586: # 521 "/usr/mipsel-linux-gnu/include/c++/9/bits/istream.tcc" 3 1586: bool __large_ignore = false; 1586: while (true) 1586: { 1586: while (_M_gcount < __n 1586: && !traits_type::eq_int_type(__c, __eof)) 1586: { 1586: ++_M_gcount; 1586: __c = __sb->snextc(); 1586: } 1586: if (__n == __gnu_cxx::__numeric_traits::__max 1586: && !traits_type::eq_int_type(__c, __eof)) 1586: { 1586: _M_gcount = 1586: __gnu_cxx::__numeric_traits::__min; 1586: __large_ignore = true; 1586: } 1586: else 1586: break; 1586: } 1586: 1586: if (__large_ignore) 1586: _M_gcount = __gnu_cxx::__numeric_traits::__max; 1586: 1586: if (traits_type::eq_int_type(__c, __eof)) 1586: __err |= ios_base::eofbit; 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: } 1586: return *this; 1586: } 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: basic_istream<_CharT, _Traits>:: 1586: ignore(streamsize __n, int_type __delim) 1586: { 1586: _M_gcount = 0; 1586: sentry __cerb(*this, true); 1586: if (__cerb && __n > 0) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: const int_type __eof = traits_type::eof(); 1586: __streambuf_type* __sb = this->rdbuf(); 1586: int_type __c = __sb->sgetc(); 1586: 1586: 1586: bool __large_ignore = false; 1586: while (true) 1586: { 1586: while (_M_gcount < __n 1586: && !traits_type::eq_int_type(__c, __eof) 1586: && !traits_type::eq_int_type(__c, __delim)) 1586: { 1586: ++_M_gcount; 1586: __c = __sb->snextc(); 1586: } 1586: if (__n == __gnu_cxx::__numeric_traits::__max 1586: && !traits_type::eq_int_type(__c, __eof) 1586: && !traits_type::eq_int_type(__c, __delim)) 1586: { 1586: _M_gcount = 1586: __gnu_cxx::__numeric_traits::__min; 1586: __large_ignore = true; 1586: } 1586: else 1586: break; 1586: } 1586: 1586: if (__large_ignore) 1586: _M_gcount = __gnu_cxx::__numeric_traits::__max; 1586: 1586: if (traits_type::eq_int_type(__c, __eof)) 1586: __err |= ios_base::eofbit; 1586: else if (traits_type::eq_int_type(__c, __delim)) 1586: { 1586: if (_M_gcount 1586: < __gnu_cxx::__numeric_traits::__max) 1586: ++_M_gcount; 1586: __sb->sbumpc(); 1586: } 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: } 1586: return *this; 1586: } 1586: 1586: template 1586: typename basic_istream<_CharT, _Traits>::int_type 1586: basic_istream<_CharT, _Traits>:: 1586: peek(void) 1586: { 1586: int_type __c = traits_type::eof(); 1586: _M_gcount = 0; 1586: sentry __cerb(*this, true); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: __c = this->rdbuf()->sgetc(); 1586: if (traits_type::eq_int_type(__c, traits_type::eof())) 1586: __err |= ios_base::eofbit; 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: } 1586: return __c; 1586: } 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: basic_istream<_CharT, _Traits>:: 1586: read(char_type* __s, streamsize __n) 1586: { 1586: _M_gcount = 0; 1586: sentry __cerb(*this, true); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: _M_gcount = this->rdbuf()->sgetn(__s, __n); 1586: if (_M_gcount != __n) 1586: __err |= (ios_base::eofbit | ios_base::failbit); 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: } 1586: return *this; 1586: } 1586: 1586: template 1586: streamsize 1586: basic_istream<_CharT, _Traits>:: 1586: readsome(char_type* __s, streamsize __n) 1586: { 1586: _M_gcount = 0; 1586: sentry __cerb(*this, true); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: 1586: const streamsize __num = this->rdbuf()->in_avail(); 1586: if (__num > 0) 1586: _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n)); 1586: else if (__num == -1) 1586: __err |= ios_base::eofbit; 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: } 1586: return _M_gcount; 1586: } 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: basic_istream<_CharT, _Traits>:: 1586: putback(char_type __c) 1586: { 1586: 1586: 1586: _M_gcount = 0; 1586: 1586: this->clear(this->rdstate() & ~ios_base::eofbit); 1586: sentry __cerb(*this, true); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: const int_type __eof = traits_type::eof(); 1586: __streambuf_type* __sb = this->rdbuf(); 1586: if (!__sb 1586: || traits_type::eq_int_type(__sb->sputbackc(__c), __eof)) 1586: __err |= ios_base::badbit; 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: } 1586: return *this; 1586: } 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: basic_istream<_CharT, _Traits>:: 1586: unget(void) 1586: { 1586: 1586: 1586: _M_gcount = 0; 1586: 1586: this->clear(this->rdstate() & ~ios_base::eofbit); 1586: sentry __cerb(*this, true); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: const int_type __eof = traits_type::eof(); 1586: __streambuf_type* __sb = this->rdbuf(); 1586: if (!__sb 1586: || traits_type::eq_int_type(__sb->sungetc(), __eof)) 1586: __err |= ios_base::badbit; 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: } 1586: return *this; 1586: } 1586: 1586: template 1586: int 1586: basic_istream<_CharT, _Traits>:: 1586: sync(void) 1586: { 1586: 1586: 1586: int __ret = -1; 1586: sentry __cerb(*this, true); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: __streambuf_type* __sb = this->rdbuf(); 1586: if (__sb) 1586: { 1586: if (__sb->pubsync() == -1) 1586: __err |= ios_base::badbit; 1586: else 1586: __ret = 0; 1586: } 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: } 1586: return __ret; 1586: } 1586: 1586: template 1586: typename basic_istream<_CharT, _Traits>::pos_type 1586: basic_istream<_CharT, _Traits>:: 1586: tellg(void) 1586: { 1586: 1586: 1586: pos_type __ret = pos_type(-1); 1586: sentry __cerb(*this, true); 1586: if (__cerb) 1586: { 1586: try 1586: { 1586: if (!this->fail()) 1586: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, 1586: ios_base::in); 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: } 1586: return __ret; 1586: } 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: basic_istream<_CharT, _Traits>:: 1586: seekg(pos_type __pos) 1586: { 1586: 1586: 1586: 1586: this->clear(this->rdstate() & ~ios_base::eofbit); 1586: sentry __cerb(*this, true); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: if (!this->fail()) 1586: { 1586: 1586: const pos_type __p = this->rdbuf()->pubseekpos(__pos, 1586: ios_base::in); 1586: 1586: 1586: if (__p == pos_type(off_type(-1))) 1586: __err |= ios_base::failbit; 1586: } 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: } 1586: return *this; 1586: } 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: basic_istream<_CharT, _Traits>:: 1586: seekg(off_type __off, ios_base::seekdir __dir) 1586: { 1586: 1586: 1586: 1586: this->clear(this->rdstate() & ~ios_base::eofbit); 1586: sentry __cerb(*this, true); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: if (!this->fail()) 1586: { 1586: 1586: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 1586: ios_base::in); 1586: 1586: 1586: if (__p == pos_type(off_type(-1))) 1586: __err |= ios_base::failbit; 1586: } 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: this->_M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { this->_M_setstate(ios_base::badbit); } 1586: if (__err) 1586: this->setstate(__err); 1586: } 1586: return *this; 1586: } 1586: 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c) 1586: { 1586: typedef basic_istream<_CharT, _Traits> __istream_type; 1586: typedef typename __istream_type::int_type __int_type; 1586: 1586: typename __istream_type::sentry __cerb(__in, false); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: const __int_type __cb = __in.rdbuf()->sbumpc(); 1586: if (!_Traits::eq_int_type(__cb, _Traits::eof())) 1586: __c = _Traits::to_char_type(__cb); 1586: else 1586: __err |= (ios_base::eofbit | ios_base::failbit); 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: __in._M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { __in._M_setstate(ios_base::badbit); } 1586: if (__err) 1586: __in.setstate(__err); 1586: } 1586: return __in; 1586: } 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s) 1586: { 1586: typedef basic_istream<_CharT, _Traits> __istream_type; 1586: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 1586: typedef typename _Traits::int_type int_type; 1586: typedef _CharT char_type; 1586: typedef ctype<_CharT> __ctype_type; 1586: 1586: streamsize __extracted = 0; 1586: ios_base::iostate __err = ios_base::goodbit; 1586: typename __istream_type::sentry __cerb(__in, false); 1586: if (__cerb) 1586: { 1586: try 1586: { 1586: 1586: streamsize __num = __in.width(); 1586: if (__num <= 0) 1586: __num = __gnu_cxx::__numeric_traits::__max; 1586: 1586: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 1586: 1586: const int_type __eof = _Traits::eof(); 1586: __streambuf_type* __sb = __in.rdbuf(); 1586: int_type __c = __sb->sgetc(); 1586: 1586: while (__extracted < __num - 1 1586: && !_Traits::eq_int_type(__c, __eof) 1586: && !__ct.is(ctype_base::space, 1586: _Traits::to_char_type(__c))) 1586: { 1586: *__s++ = _Traits::to_char_type(__c); 1586: ++__extracted; 1586: __c = __sb->snextc(); 1586: } 1586: if (_Traits::eq_int_type(__c, __eof)) 1586: __err |= ios_base::eofbit; 1586: 1586: 1586: 1586: *__s = char_type(); 1586: __in.width(0); 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: __in._M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { __in._M_setstate(ios_base::badbit); } 1586: } 1586: if (!__extracted) 1586: __err |= ios_base::failbit; 1586: if (__err) 1586: __in.setstate(__err); 1586: return __in; 1586: } 1586: 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: ws(basic_istream<_CharT, _Traits>& __in) 1586: { 1586: typedef basic_istream<_CharT, _Traits> __istream_type; 1586: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 1586: typedef typename __istream_type::int_type __int_type; 1586: typedef ctype<_CharT> __ctype_type; 1586: 1586: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 1586: const __int_type __eof = _Traits::eof(); 1586: __streambuf_type* __sb = __in.rdbuf(); 1586: __int_type __c = __sb->sgetc(); 1586: 1586: while (!_Traits::eq_int_type(__c, __eof) 1586: && __ct.is(ctype_base::space, _Traits::to_char_type(__c))) 1586: __c = __sb->snextc(); 1586: 1586: if (_Traits::eq_int_type(__c, __eof)) 1586: __in.setstate(ios_base::eofbit); 1586: return __in; 1586: } 1586: 1586: 1586: 1586: 1586: extern template class basic_istream; 1586: extern template istream& ws(istream&); 1586: extern template istream& operator>>(istream&, char&); 1586: extern template istream& operator>>(istream&, char*); 1586: extern template istream& operator>>(istream&, unsigned char&); 1586: extern template istream& operator>>(istream&, signed char&); 1586: extern template istream& operator>>(istream&, unsigned char*); 1586: extern template istream& operator>>(istream&, signed char*); 1586: 1586: extern template istream& istream::_M_extract(unsigned short&); 1586: extern template istream& istream::_M_extract(unsigned int&); 1586: extern template istream& istream::_M_extract(long&); 1586: extern template istream& istream::_M_extract(unsigned long&); 1586: extern template istream& istream::_M_extract(bool&); 1586: 1586: extern template istream& istream::_M_extract(long long&); 1586: extern template istream& istream::_M_extract(unsigned long long&); 1586: 1586: extern template istream& istream::_M_extract(float&); 1586: extern template istream& istream::_M_extract(double&); 1586: extern template istream& istream::_M_extract(long double&); 1586: extern template istream& istream::_M_extract(void*&); 1586: 1586: extern template class basic_iostream; 1586: 1586: 1586: extern template class basic_istream; 1586: extern template wistream& ws(wistream&); 1586: extern template wistream& operator>>(wistream&, wchar_t&); 1586: extern template wistream& operator>>(wistream&, wchar_t*); 1586: 1586: extern template wistream& wistream::_M_extract(unsigned short&); 1586: extern template wistream& wistream::_M_extract(unsigned int&); 1586: extern template wistream& wistream::_M_extract(long&); 1586: extern template wistream& wistream::_M_extract(unsigned long&); 1586: extern template wistream& wistream::_M_extract(bool&); 1586: 1586: extern template wistream& wistream::_M_extract(long long&); 1586: extern template wistream& wistream::_M_extract(unsigned long long&); 1586: 1586: extern template wistream& wistream::_M_extract(float&); 1586: extern template wistream& wistream::_M_extract(double&); 1586: extern template wistream& wistream::_M_extract(long double&); 1586: extern template wistream& wistream::_M_extract(void*&); 1586: 1586: extern template class basic_iostream; 1586: 1586: 1586: 1586: 1586: } 1586: # 992 "/usr/mipsel-linux-gnu/include/c++/9/istream" 2 3 1586: # 41 "/usr/mipsel-linux-gnu/include/c++/9/iostream" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 60 "/usr/mipsel-linux-gnu/include/c++/9/iostream" 3 1586: extern istream cin; 1586: extern ostream cout; 1586: extern ostream cerr; 1586: extern ostream clog; 1586: 1586: 1586: extern wistream wcin; 1586: extern wostream wcout; 1586: extern wostream wcerr; 1586: extern wostream wclog; 1586: 1586: 1586: 1586: 1586: static ios_base::Init __ioinit; 1586: 1586: 1586: } 1586: # 14 "/<>/include/HepMC3/Errors.h" 2 1586: 1586: 1586: 1586: # 16 "/<>/include/HepMC3/Errors.h" 1586: namespace HepMC3 { 1586: # 51 "/<>/include/HepMC3/Errors.h" 1586: struct Exception : public std::runtime_error { 1586: Exception(const std::string& msg) : std::runtime_error(msg) {} 1586: }; 1586: 1586: 1586: struct WeightError : public Exception { 1586: WeightError(const std::string& msg) : Exception(msg) {} 1586: }; 1586: 1586: 1586: 1586: 1586: } 1586: # 20 "/<>/include/HepMC3/Units.h" 2 1586: # 1 "/<>/include/HepMC3/Setup.h" 1 1586: # 14 "/<>/include/HepMC3/Setup.h" 1586: namespace HepMC3 { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: class Setup { 1586: 1586: 1586: Setup() {} 1586: 1586: ~Setup() {} 1586: 1586: 1586: public: 1586: 1586: 1586: 1586: 1586: 1586: static bool print_errors(); 1586: 1586: static void set_print_errors(const bool flag); 1586: 1586: 1586: static bool print_warnings(); 1586: 1586: static void set_print_warnings(const bool flag); 1586: 1586: 1586: static int debug_level(); 1586: 1586: static void set_debug_level(const int level); 1586: 1586: 1586: 1586: 1586: 1586: static const unsigned int DEFAULT_DOUBLE_ALMOST_EQUAL_MAXULPS; 1586: 1586: 1586: static const double DOUBLE_EPSILON; 1586: 1586: 1586: 1586: 1586: private: 1586: 1586: static bool m_is_printing_errors; 1586: static bool m_is_printing_warnings; 1586: static int m_debug_level; 1586: }; 1586: 1586: 1586: } 1586: # 21 "/<>/include/HepMC3/Units.h" 2 1586: 1586: 1586: namespace HepMC3 { 1586: 1586: 1586: class Units { 1586: public: 1586: 1586: enum MomentumUnit { MEV, GEV }; 1586: 1586: 1586: enum LengthUnit { MM, CM }; 1586: 1586: public: 1586: 1586: static MomentumUnit momentum_unit( const std::string& name ) { 1586: if( name.compare(0,3,"GEV") == 0 ) return GEV; 1586: if( name.compare(0,3,"MEV") == 0 ) return MEV; 1586: 1586: if ( Setup::print_errors() ) { std::cerr << "ERROR::" << "Units::momentum_unit: unrecognised unit name: '" << name <<"', setting to GEV" << std::endl; } 1586: 1586: return GEV; 1586: } 1586: 1586: 1586: static LengthUnit length_unit( const std::string& name ) { 1586: if( name.compare(0,2,"CM") == 0 ) return CM; 1586: if( name.compare(0,2,"MM") == 0 ) return MM; 1586: 1586: if ( Setup::print_errors() ) { std::cerr << "ERROR::" << "Units::length_unit: unrecognised unit name: '" << name <<"', setting to CM" << std::endl; } 1586: 1586: return CM; 1586: } 1586: 1586: 1586: static std::string name( MomentumUnit u ) { 1586: switch(u) { 1586: case MEV: 1586: return "MEV"; 1586: case GEV: 1586: return "GEV"; 1586: } 1586: 1586: return ""; 1586: } 1586: 1586: 1586: static std::string name( LengthUnit u ) { 1586: switch(u) { 1586: case MM: 1586: return "MM"; 1586: case CM: 1586: return "CM"; 1586: } 1586: 1586: return ""; 1586: } 1586: 1586: 1586: template 1586: static void convert( T &m, MomentumUnit from, MomentumUnit to ) { 1586: if( from == to ) return; 1586: 1586: if( from == GEV ) { 1586: 1586: m *= 1000.; 1586: } 1586: else if( from == MEV ) { 1586: 1586: m *= 0.001; 1586: } 1586: } 1586: 1586: 1586: template 1586: static void convert( T &m, LengthUnit from, LengthUnit to ) { 1586: if( from == to ) return; 1586: 1586: if( from == CM ) { 1586: 1586: m *= 10.0; 1586: } 1586: else if( from == MM ) { 1586: 1586: m *= 0.1; 1586: } 1586: } 1586: 1586: }; 1586: 1586: } 1586: # 14 "/<>/include/HepMC3/GenEvent.h" 2 1586: 1586: 1586: # 1 "/<>/include/HepMC3/GenPdfInfo_fwd.h" 1 1586: # 16 "/<>/include/HepMC3/GenPdfInfo_fwd.h" 1586: namespace HepMC3 { 1586: 1586: class GenPdfInfo; 1586: 1586: using GenPdfInfoPtr = std::shared_ptr; 1586: using ConstGenPdfInfoPtr = std::shared_ptr; 1586: 1586: } 1586: # 17 "/<>/include/HepMC3/GenEvent.h" 2 1586: # 1 "/<>/include/HepMC3/GenHeavyIon_fwd.h" 1 1586: # 16 "/<>/include/HepMC3/GenHeavyIon_fwd.h" 1586: namespace HepMC3 { 1586: 1586: class GenHeavyIon; 1586: 1586: using GenHeavyIonPtr = std::shared_ptr; 1586: using ConstGenHeavyIonPtr = std::shared_ptr; 1586: 1586: } 1586: # 18 "/<>/include/HepMC3/GenEvent.h" 2 1586: # 1 "/<>/include/HepMC3/GenCrossSection_fwd.h" 1 1586: # 16 "/<>/include/HepMC3/GenCrossSection_fwd.h" 1586: namespace HepMC3 { 1586: 1586: class GenCrossSection; 1586: 1586: using GenCrossSectionPtr = std::shared_ptr; 1586: using ConstGenCrossSectionPtr = std::shared_ptr; 1586: 1586: } 1586: # 19 "/<>/include/HepMC3/GenEvent.h" 2 1586: 1586: 1586: 1586: # 1 "/<>/include/HepMC3/GenHeavyIon.h" 1 1586: # 21 "/<>/include/HepMC3/GenHeavyIon.h" 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/map" 1 3 1586: # 58 "/usr/mipsel-linux-gnu/include/c++/9/map" 3 1586: 1586: # 59 "/usr/mipsel-linux-gnu/include/c++/9/map" 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tree.h" 1 3 1586: # 61 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tree.h" 3 1586: 1586: # 62 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tree.h" 3 1586: # 75 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tree.h" 3 1586: 1586: # 75 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tree.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 99 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tree.h" 3 1586: enum _Rb_tree_color { _S_red = false, _S_black = true }; 1586: 1586: struct _Rb_tree_node_base 1586: { 1586: typedef _Rb_tree_node_base* _Base_ptr; 1586: typedef const _Rb_tree_node_base* _Const_Base_ptr; 1586: 1586: _Rb_tree_color _M_color; 1586: _Base_ptr _M_parent; 1586: _Base_ptr _M_left; 1586: _Base_ptr _M_right; 1586: 1586: static _Base_ptr 1586: _S_minimum(_Base_ptr __x) noexcept 1586: { 1586: while (__x->_M_left != 0) __x = __x->_M_left; 1586: return __x; 1586: } 1586: 1586: static _Const_Base_ptr 1586: _S_minimum(_Const_Base_ptr __x) noexcept 1586: { 1586: while (__x->_M_left != 0) __x = __x->_M_left; 1586: return __x; 1586: } 1586: 1586: static _Base_ptr 1586: _S_maximum(_Base_ptr __x) noexcept 1586: { 1586: while (__x->_M_right != 0) __x = __x->_M_right; 1586: return __x; 1586: } 1586: 1586: static _Const_Base_ptr 1586: _S_maximum(_Const_Base_ptr __x) noexcept 1586: { 1586: while (__x->_M_right != 0) __x = __x->_M_right; 1586: return __x; 1586: } 1586: }; 1586: 1586: 1586: template 1586: struct _Rb_tree_key_compare 1586: { 1586: _Key_compare _M_key_compare; 1586: 1586: _Rb_tree_key_compare() 1586: noexcept(is_nothrow_default_constructible<_Key_compare>::value) 1586: 1586: : _M_key_compare() 1586: { } 1586: 1586: _Rb_tree_key_compare(const _Key_compare& __comp) 1586: : _M_key_compare(__comp) 1586: { } 1586: 1586: 1586: 1586: _Rb_tree_key_compare(const _Rb_tree_key_compare&) = default; 1586: 1586: _Rb_tree_key_compare(_Rb_tree_key_compare&& __x) 1586: noexcept(is_nothrow_copy_constructible<_Key_compare>::value) 1586: : _M_key_compare(__x._M_key_compare) 1586: { } 1586: 1586: }; 1586: 1586: 1586: struct _Rb_tree_header 1586: { 1586: _Rb_tree_node_base _M_header; 1586: size_t _M_node_count; 1586: 1586: _Rb_tree_header() noexcept 1586: { 1586: _M_header._M_color = _S_red; 1586: _M_reset(); 1586: } 1586: 1586: 1586: _Rb_tree_header(_Rb_tree_header&& __x) noexcept 1586: { 1586: if (__x._M_header._M_parent != nullptr) 1586: _M_move_data(__x); 1586: else 1586: { 1586: _M_header._M_color = _S_red; 1586: _M_reset(); 1586: } 1586: } 1586: 1586: 1586: void 1586: _M_move_data(_Rb_tree_header& __from) 1586: { 1586: _M_header._M_color = __from._M_header._M_color; 1586: _M_header._M_parent = __from._M_header._M_parent; 1586: _M_header._M_left = __from._M_header._M_left; 1586: _M_header._M_right = __from._M_header._M_right; 1586: _M_header._M_parent->_M_parent = &_M_header; 1586: _M_node_count = __from._M_node_count; 1586: 1586: __from._M_reset(); 1586: } 1586: 1586: void 1586: _M_reset() 1586: { 1586: _M_header._M_parent = 0; 1586: _M_header._M_left = &_M_header; 1586: _M_header._M_right = &_M_header; 1586: _M_node_count = 0; 1586: } 1586: }; 1586: 1586: template 1586: struct _Rb_tree_node : public _Rb_tree_node_base 1586: { 1586: typedef _Rb_tree_node<_Val>* _Link_type; 1586: # 231 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tree.h" 3 1586: __gnu_cxx::__aligned_membuf<_Val> _M_storage; 1586: 1586: _Val* 1586: _M_valptr() 1586: { return _M_storage._M_ptr(); } 1586: 1586: const _Val* 1586: _M_valptr() const 1586: { return _M_storage._M_ptr(); } 1586: 1586: }; 1586: 1586: __attribute__ ((__pure__)) _Rb_tree_node_base* 1586: _Rb_tree_increment(_Rb_tree_node_base* __x) throw (); 1586: 1586: __attribute__ ((__pure__)) const _Rb_tree_node_base* 1586: _Rb_tree_increment(const _Rb_tree_node_base* __x) throw (); 1586: 1586: __attribute__ ((__pure__)) _Rb_tree_node_base* 1586: _Rb_tree_decrement(_Rb_tree_node_base* __x) throw (); 1586: 1586: __attribute__ ((__pure__)) const _Rb_tree_node_base* 1586: _Rb_tree_decrement(const _Rb_tree_node_base* __x) throw (); 1586: 1586: template 1586: struct _Rb_tree_iterator 1586: { 1586: typedef _Tp value_type; 1586: typedef _Tp& reference; 1586: typedef _Tp* pointer; 1586: 1586: typedef bidirectional_iterator_tag iterator_category; 1586: typedef ptrdiff_t difference_type; 1586: 1586: typedef _Rb_tree_iterator<_Tp> _Self; 1586: typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; 1586: typedef _Rb_tree_node<_Tp>* _Link_type; 1586: 1586: _Rb_tree_iterator() noexcept 1586: : _M_node() { } 1586: 1586: explicit 1586: _Rb_tree_iterator(_Base_ptr __x) noexcept 1586: : _M_node(__x) { } 1586: 1586: reference 1586: operator*() const noexcept 1586: { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } 1586: 1586: pointer 1586: operator->() const noexcept 1586: { return static_cast<_Link_type> (_M_node)->_M_valptr(); } 1586: 1586: _Self& 1586: operator++() noexcept 1586: { 1586: _M_node = _Rb_tree_increment(_M_node); 1586: return *this; 1586: } 1586: 1586: _Self 1586: operator++(int) noexcept 1586: { 1586: _Self __tmp = *this; 1586: _M_node = _Rb_tree_increment(_M_node); 1586: return __tmp; 1586: } 1586: 1586: _Self& 1586: operator--() noexcept 1586: { 1586: _M_node = _Rb_tree_decrement(_M_node); 1586: return *this; 1586: } 1586: 1586: _Self 1586: operator--(int) noexcept 1586: { 1586: _Self __tmp = *this; 1586: _M_node = _Rb_tree_decrement(_M_node); 1586: return __tmp; 1586: } 1586: 1586: friend bool 1586: operator==(const _Self& __x, const _Self& __y) noexcept 1586: { return __x._M_node == __y._M_node; } 1586: 1586: friend bool 1586: operator!=(const _Self& __x, const _Self& __y) noexcept 1586: { return __x._M_node != __y._M_node; } 1586: 1586: _Base_ptr _M_node; 1586: }; 1586: 1586: template 1586: struct _Rb_tree_const_iterator 1586: { 1586: typedef _Tp value_type; 1586: typedef const _Tp& reference; 1586: typedef const _Tp* pointer; 1586: 1586: typedef _Rb_tree_iterator<_Tp> iterator; 1586: 1586: typedef bidirectional_iterator_tag iterator_category; 1586: typedef ptrdiff_t difference_type; 1586: 1586: typedef _Rb_tree_const_iterator<_Tp> _Self; 1586: typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr; 1586: typedef const _Rb_tree_node<_Tp>* _Link_type; 1586: 1586: _Rb_tree_const_iterator() noexcept 1586: : _M_node() { } 1586: 1586: explicit 1586: _Rb_tree_const_iterator(_Base_ptr __x) noexcept 1586: : _M_node(__x) { } 1586: 1586: _Rb_tree_const_iterator(const iterator& __it) noexcept 1586: : _M_node(__it._M_node) { } 1586: 1586: iterator 1586: _M_const_cast() const noexcept 1586: { return iterator(const_cast(_M_node)); } 1586: 1586: reference 1586: operator*() const noexcept 1586: { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } 1586: 1586: pointer 1586: operator->() const noexcept 1586: { return static_cast<_Link_type>(_M_node)->_M_valptr(); } 1586: 1586: _Self& 1586: operator++() noexcept 1586: { 1586: _M_node = _Rb_tree_increment(_M_node); 1586: return *this; 1586: } 1586: 1586: _Self 1586: operator++(int) noexcept 1586: { 1586: _Self __tmp = *this; 1586: _M_node = _Rb_tree_increment(_M_node); 1586: return __tmp; 1586: } 1586: 1586: _Self& 1586: operator--() noexcept 1586: { 1586: _M_node = _Rb_tree_decrement(_M_node); 1586: return *this; 1586: } 1586: 1586: _Self 1586: operator--(int) noexcept 1586: { 1586: _Self __tmp = *this; 1586: _M_node = _Rb_tree_decrement(_M_node); 1586: return __tmp; 1586: } 1586: 1586: friend bool 1586: operator==(const _Self& __x, const _Self& __y) noexcept 1586: { return __x._M_node == __y._M_node; } 1586: 1586: friend bool 1586: operator!=(const _Self& __x, const _Self& __y) noexcept 1586: { return __x._M_node != __y._M_node; } 1586: 1586: _Base_ptr _M_node; 1586: }; 1586: 1586: void 1586: _Rb_tree_insert_and_rebalance(const bool __insert_left, 1586: _Rb_tree_node_base* __x, 1586: _Rb_tree_node_base* __p, 1586: _Rb_tree_node_base& __header) throw (); 1586: 1586: _Rb_tree_node_base* 1586: _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z, 1586: _Rb_tree_node_base& __header) throw (); 1586: # 434 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tree.h" 3 1586: template > 1586: class _Rb_tree 1586: { 1586: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 1586: rebind<_Rb_tree_node<_Val> >::other _Node_allocator; 1586: 1586: typedef __gnu_cxx::__alloc_traits<_Node_allocator> _Alloc_traits; 1586: 1586: protected: 1586: typedef _Rb_tree_node_base* _Base_ptr; 1586: typedef const _Rb_tree_node_base* _Const_Base_ptr; 1586: typedef _Rb_tree_node<_Val>* _Link_type; 1586: typedef const _Rb_tree_node<_Val>* _Const_Link_type; 1586: 1586: private: 1586: 1586: 1586: struct _Reuse_or_alloc_node 1586: { 1586: _Reuse_or_alloc_node(_Rb_tree& __t) 1586: : _M_root(__t._M_root()), _M_nodes(__t._M_rightmost()), _M_t(__t) 1586: { 1586: if (_M_root) 1586: { 1586: _M_root->_M_parent = 0; 1586: 1586: if (_M_nodes->_M_left) 1586: _M_nodes = _M_nodes->_M_left; 1586: } 1586: else 1586: _M_nodes = 0; 1586: } 1586: 1586: 1586: _Reuse_or_alloc_node(const _Reuse_or_alloc_node&) = delete; 1586: 1586: 1586: ~_Reuse_or_alloc_node() 1586: { _M_t._M_erase(static_cast<_Link_type>(_M_root)); } 1586: 1586: template 1586: _Link_type 1586: 1586: 1586: 1586: operator()(_Arg&& __arg) 1586: 1586: { 1586: _Link_type __node = static_cast<_Link_type>(_M_extract()); 1586: if (__node) 1586: { 1586: _M_t._M_destroy_node(__node); 1586: _M_t._M_construct_node(__node, std::forward<_Arg>(__arg)); 1586: return __node; 1586: } 1586: 1586: return _M_t._M_create_node(std::forward<_Arg>(__arg)); 1586: } 1586: 1586: private: 1586: _Base_ptr 1586: _M_extract() 1586: { 1586: if (!_M_nodes) 1586: return _M_nodes; 1586: 1586: _Base_ptr __node = _M_nodes; 1586: _M_nodes = _M_nodes->_M_parent; 1586: if (_M_nodes) 1586: { 1586: if (_M_nodes->_M_right == __node) 1586: { 1586: _M_nodes->_M_right = 0; 1586: 1586: if (_M_nodes->_M_left) 1586: { 1586: _M_nodes = _M_nodes->_M_left; 1586: 1586: while (_M_nodes->_M_right) 1586: _M_nodes = _M_nodes->_M_right; 1586: 1586: if (_M_nodes->_M_left) 1586: _M_nodes = _M_nodes->_M_left; 1586: } 1586: } 1586: else 1586: _M_nodes->_M_left = 0; 1586: } 1586: else 1586: _M_root = 0; 1586: 1586: return __node; 1586: } 1586: 1586: _Base_ptr _M_root; 1586: _Base_ptr _M_nodes; 1586: _Rb_tree& _M_t; 1586: }; 1586: 1586: 1586: 1586: struct _Alloc_node 1586: { 1586: _Alloc_node(_Rb_tree& __t) 1586: : _M_t(__t) { } 1586: 1586: template 1586: _Link_type 1586: 1586: 1586: 1586: operator()(_Arg&& __arg) const 1586: 1586: { return _M_t._M_create_node(std::forward<_Arg>(__arg)); } 1586: 1586: private: 1586: _Rb_tree& _M_t; 1586: }; 1586: 1586: public: 1586: typedef _Key key_type; 1586: typedef _Val value_type; 1586: typedef value_type* pointer; 1586: typedef const value_type* const_pointer; 1586: typedef value_type& reference; 1586: typedef const value_type& const_reference; 1586: typedef size_t size_type; 1586: typedef ptrdiff_t difference_type; 1586: typedef _Alloc allocator_type; 1586: 1586: _Node_allocator& 1586: _M_get_Node_allocator() noexcept 1586: { return this->_M_impl; } 1586: 1586: const _Node_allocator& 1586: _M_get_Node_allocator() const noexcept 1586: { return this->_M_impl; } 1586: 1586: allocator_type 1586: get_allocator() const noexcept 1586: { return allocator_type(_M_get_Node_allocator()); } 1586: 1586: protected: 1586: _Link_type 1586: _M_get_node() 1586: { return _Alloc_traits::allocate(_M_get_Node_allocator(), 1); } 1586: 1586: void 1586: _M_put_node(_Link_type __p) noexcept 1586: { _Alloc_traits::deallocate(_M_get_Node_allocator(), __p, 1); } 1586: # 607 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tree.h" 3 1586: template 1586: void 1586: _M_construct_node(_Link_type __node, _Args&&... __args) 1586: { 1586: try 1586: { 1586: ::new(__node) _Rb_tree_node<_Val>; 1586: _Alloc_traits::construct(_M_get_Node_allocator(), 1586: __node->_M_valptr(), 1586: std::forward<_Args>(__args)...); 1586: } 1586: catch(...) 1586: { 1586: __node->~_Rb_tree_node<_Val>(); 1586: _M_put_node(__node); 1586: throw; 1586: } 1586: } 1586: 1586: template 1586: _Link_type 1586: _M_create_node(_Args&&... __args) 1586: { 1586: _Link_type __tmp = _M_get_node(); 1586: _M_construct_node(__tmp, std::forward<_Args>(__args)...); 1586: return __tmp; 1586: } 1586: 1586: 1586: void 1586: _M_destroy_node(_Link_type __p) noexcept 1586: { 1586: 1586: 1586: 1586: _Alloc_traits::destroy(_M_get_Node_allocator(), __p->_M_valptr()); 1586: __p->~_Rb_tree_node<_Val>(); 1586: 1586: } 1586: 1586: void 1586: _M_drop_node(_Link_type __p) noexcept 1586: { 1586: _M_destroy_node(__p); 1586: _M_put_node(__p); 1586: } 1586: 1586: template 1586: _Link_type 1586: _M_clone_node(_Const_Link_type __x, _NodeGen& __node_gen) 1586: { 1586: _Link_type __tmp = __node_gen(*__x->_M_valptr()); 1586: __tmp->_M_color = __x->_M_color; 1586: __tmp->_M_left = 0; 1586: __tmp->_M_right = 0; 1586: return __tmp; 1586: } 1586: 1586: protected: 1586: 1586: 1586: 1586: 1586: template 1586: 1586: struct _Rb_tree_impl 1586: : public _Node_allocator 1586: , public _Rb_tree_key_compare<_Key_compare> 1586: , public _Rb_tree_header 1586: { 1586: typedef _Rb_tree_key_compare<_Key_compare> _Base_key_compare; 1586: 1586: _Rb_tree_impl() 1586: noexcept(is_nothrow_default_constructible<_Node_allocator>::value && is_nothrow_default_constructible<_Base_key_compare>::value) 1586: 1586: 1586: : _Node_allocator() 1586: { } 1586: 1586: _Rb_tree_impl(const _Rb_tree_impl& __x) 1586: : _Node_allocator(_Alloc_traits::_S_select_on_copy(__x)) 1586: , _Base_key_compare(__x._M_key_compare) 1586: { } 1586: 1586: 1586: 1586: 1586: 1586: 1586: _Rb_tree_impl(_Rb_tree_impl&&) = default; 1586: 1586: explicit 1586: _Rb_tree_impl(_Node_allocator&& __a) 1586: : _Node_allocator(std::move(__a)) 1586: { } 1586: 1586: _Rb_tree_impl(_Rb_tree_impl&& __x, _Node_allocator&& __a) 1586: : _Node_allocator(std::move(__a)), 1586: _Base_key_compare(std::move(__x)), 1586: _Rb_tree_header(std::move(__x)) 1586: { } 1586: 1586: _Rb_tree_impl(const _Key_compare& __comp, _Node_allocator&& __a) 1586: : _Node_allocator(std::move(__a)), _Base_key_compare(__comp) 1586: { } 1586: 1586: }; 1586: 1586: _Rb_tree_impl<_Compare> _M_impl; 1586: 1586: protected: 1586: _Base_ptr& 1586: _M_root() noexcept 1586: { return this->_M_impl._M_header._M_parent; } 1586: 1586: _Const_Base_ptr 1586: _M_root() const noexcept 1586: { return this->_M_impl._M_header._M_parent; } 1586: 1586: _Base_ptr& 1586: _M_leftmost() noexcept 1586: { return this->_M_impl._M_header._M_left; } 1586: 1586: _Const_Base_ptr 1586: _M_leftmost() const noexcept 1586: { return this->_M_impl._M_header._M_left; } 1586: 1586: _Base_ptr& 1586: _M_rightmost() noexcept 1586: { return this->_M_impl._M_header._M_right; } 1586: 1586: _Const_Base_ptr 1586: _M_rightmost() const noexcept 1586: { return this->_M_impl._M_header._M_right; } 1586: 1586: _Link_type 1586: _M_begin() noexcept 1586: { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } 1586: 1586: _Const_Link_type 1586: _M_begin() const noexcept 1586: { 1586: return static_cast<_Const_Link_type> 1586: (this->_M_impl._M_header._M_parent); 1586: } 1586: 1586: _Base_ptr 1586: _M_end() noexcept 1586: { return &this->_M_impl._M_header; } 1586: 1586: _Const_Base_ptr 1586: _M_end() const noexcept 1586: { return &this->_M_impl._M_header; } 1586: 1586: static const_reference 1586: _S_value(_Const_Link_type __x) 1586: { return *__x->_M_valptr(); } 1586: 1586: static const _Key& 1586: _S_key(_Const_Link_type __x) 1586: { 1586: 1586: 1586: 1586: static_assert(__is_invocable<_Compare&, const _Key&, const _Key&>{}, 1586: "comparison object must be invocable " 1586: "with two arguments of key type"); 1586: # 785 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tree.h" 3 1586: return _KeyOfValue()(*__x->_M_valptr()); 1586: } 1586: 1586: static _Link_type 1586: _S_left(_Base_ptr __x) noexcept 1586: { return static_cast<_Link_type>(__x->_M_left); } 1586: 1586: static _Const_Link_type 1586: _S_left(_Const_Base_ptr __x) noexcept 1586: { return static_cast<_Const_Link_type>(__x->_M_left); } 1586: 1586: static _Link_type 1586: _S_right(_Base_ptr __x) noexcept 1586: { return static_cast<_Link_type>(__x->_M_right); } 1586: 1586: static _Const_Link_type 1586: _S_right(_Const_Base_ptr __x) noexcept 1586: { return static_cast<_Const_Link_type>(__x->_M_right); } 1586: 1586: static const_reference 1586: _S_value(_Const_Base_ptr __x) 1586: { return *static_cast<_Const_Link_type>(__x)->_M_valptr(); } 1586: 1586: static const _Key& 1586: _S_key(_Const_Base_ptr __x) 1586: { return _S_key(static_cast<_Const_Link_type>(__x)); } 1586: 1586: static _Base_ptr 1586: _S_minimum(_Base_ptr __x) noexcept 1586: { return _Rb_tree_node_base::_S_minimum(__x); } 1586: 1586: static _Const_Base_ptr 1586: _S_minimum(_Const_Base_ptr __x) noexcept 1586: { return _Rb_tree_node_base::_S_minimum(__x); } 1586: 1586: static _Base_ptr 1586: _S_maximum(_Base_ptr __x) noexcept 1586: { return _Rb_tree_node_base::_S_maximum(__x); } 1586: 1586: static _Const_Base_ptr 1586: _S_maximum(_Const_Base_ptr __x) noexcept 1586: { return _Rb_tree_node_base::_S_maximum(__x); } 1586: 1586: public: 1586: typedef _Rb_tree_iterator iterator; 1586: typedef _Rb_tree_const_iterator const_iterator; 1586: 1586: typedef std::reverse_iterator reverse_iterator; 1586: typedef std::reverse_iterator const_reverse_iterator; 1586: # 842 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tree.h" 3 1586: pair<_Base_ptr, _Base_ptr> 1586: _M_get_insert_unique_pos(const key_type& __k); 1586: 1586: pair<_Base_ptr, _Base_ptr> 1586: _M_get_insert_equal_pos(const key_type& __k); 1586: 1586: pair<_Base_ptr, _Base_ptr> 1586: _M_get_insert_hint_unique_pos(const_iterator __pos, 1586: const key_type& __k); 1586: 1586: pair<_Base_ptr, _Base_ptr> 1586: _M_get_insert_hint_equal_pos(const_iterator __pos, 1586: const key_type& __k); 1586: 1586: private: 1586: 1586: template 1586: iterator 1586: _M_insert_(_Base_ptr __x, _Base_ptr __y, _Arg&& __v, _NodeGen&); 1586: 1586: iterator 1586: _M_insert_node(_Base_ptr __x, _Base_ptr __y, _Link_type __z); 1586: 1586: template 1586: iterator 1586: _M_insert_lower(_Base_ptr __y, _Arg&& __v); 1586: 1586: template 1586: iterator 1586: _M_insert_equal_lower(_Arg&& __x); 1586: 1586: iterator 1586: _M_insert_lower_node(_Base_ptr __p, _Link_type __z); 1586: 1586: iterator 1586: _M_insert_equal_lower_node(_Link_type __z); 1586: # 893 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tree.h" 3 1586: template 1586: _Link_type 1586: _M_copy(_Const_Link_type __x, _Base_ptr __p, _NodeGen&); 1586: 1586: template 1586: _Link_type 1586: _M_copy(const _Rb_tree& __x, _NodeGen& __gen) 1586: { 1586: _Link_type __root = _M_copy(__x._M_begin(), _M_end(), __gen); 1586: _M_leftmost() = _S_minimum(__root); 1586: _M_rightmost() = _S_maximum(__root); 1586: _M_impl._M_node_count = __x._M_impl._M_node_count; 1586: return __root; 1586: } 1586: 1586: _Link_type 1586: _M_copy(const _Rb_tree& __x) 1586: { 1586: _Alloc_node __an(*this); 1586: return _M_copy(__x, __an); 1586: } 1586: 1586: void 1586: _M_erase(_Link_type __x); 1586: 1586: iterator 1586: _M_lower_bound(_Link_type __x, _Base_ptr __y, 1586: const _Key& __k); 1586: 1586: const_iterator 1586: _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y, 1586: const _Key& __k) const; 1586: 1586: iterator 1586: _M_upper_bound(_Link_type __x, _Base_ptr __y, 1586: const _Key& __k); 1586: 1586: const_iterator 1586: _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y, 1586: const _Key& __k) const; 1586: 1586: public: 1586: 1586: 1586: 1586: 1586: _Rb_tree() = default; 1586: 1586: 1586: _Rb_tree(const _Compare& __comp, 1586: const allocator_type& __a = allocator_type()) 1586: : _M_impl(__comp, _Node_allocator(__a)) { } 1586: 1586: _Rb_tree(const _Rb_tree& __x) 1586: : _M_impl(__x._M_impl) 1586: { 1586: if (__x._M_root() != 0) 1586: _M_root() = _M_copy(__x); 1586: } 1586: 1586: 1586: _Rb_tree(const allocator_type& __a) 1586: : _M_impl(_Node_allocator(__a)) 1586: { } 1586: 1586: _Rb_tree(const _Rb_tree& __x, const allocator_type& __a) 1586: : _M_impl(__x._M_impl._M_key_compare, _Node_allocator(__a)) 1586: { 1586: if (__x._M_root() != nullptr) 1586: _M_root() = _M_copy(__x); 1586: } 1586: 1586: _Rb_tree(_Rb_tree&&) = default; 1586: 1586: _Rb_tree(_Rb_tree&& __x, const allocator_type& __a) 1586: : _Rb_tree(std::move(__x), _Node_allocator(__a)) 1586: { } 1586: 1586: private: 1586: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a, true_type) 1586: noexcept(is_nothrow_default_constructible<_Compare>::value) 1586: : _M_impl(std::move(__x._M_impl), std::move(__a)) 1586: { } 1586: 1586: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a, false_type) 1586: : _M_impl(__x._M_impl._M_key_compare, std::move(__a)) 1586: { 1586: if (__x._M_root() != nullptr) 1586: _M_move_data(__x, false_type{}); 1586: } 1586: 1586: public: 1586: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a) 1586: noexcept( noexcept( 1586: _Rb_tree(std::declval<_Rb_tree&&>(), std::declval<_Node_allocator&&>(), 1586: std::declval())) ) 1586: : _Rb_tree(std::move(__x), std::move(__a), 1586: typename _Alloc_traits::is_always_equal{}) 1586: { } 1586: 1586: 1586: ~_Rb_tree() noexcept 1586: { _M_erase(_M_begin()); } 1586: 1586: _Rb_tree& 1586: operator=(const _Rb_tree& __x); 1586: 1586: 1586: _Compare 1586: key_comp() const 1586: { return _M_impl._M_key_compare; } 1586: 1586: iterator 1586: begin() noexcept 1586: { return iterator(this->_M_impl._M_header._M_left); } 1586: 1586: const_iterator 1586: begin() const noexcept 1586: { return const_iterator(this->_M_impl._M_header._M_left); } 1586: 1586: iterator 1586: end() noexcept 1586: { return iterator(&this->_M_impl._M_header); } 1586: 1586: const_iterator 1586: end() const noexcept 1586: { return const_iterator(&this->_M_impl._M_header); } 1586: 1586: reverse_iterator 1586: rbegin() noexcept 1586: { return reverse_iterator(end()); } 1586: 1586: const_reverse_iterator 1586: rbegin() const noexcept 1586: { return const_reverse_iterator(end()); } 1586: 1586: reverse_iterator 1586: rend() noexcept 1586: { return reverse_iterator(begin()); } 1586: 1586: const_reverse_iterator 1586: rend() const noexcept 1586: { return const_reverse_iterator(begin()); } 1586: 1586: bool 1586: empty() const noexcept 1586: { return _M_impl._M_node_count == 0; } 1586: 1586: size_type 1586: size() const noexcept 1586: { return _M_impl._M_node_count; } 1586: 1586: size_type 1586: max_size() const noexcept 1586: { return _Alloc_traits::max_size(_M_get_Node_allocator()); } 1586: 1586: void 1586: swap(_Rb_tree& __t) 1586: noexcept(__is_nothrow_swappable<_Compare>::value); 1586: 1586: 1586: 1586: template 1586: pair 1586: _M_insert_unique(_Arg&& __x); 1586: 1586: template 1586: iterator 1586: _M_insert_equal(_Arg&& __x); 1586: 1586: template 1586: iterator 1586: _M_insert_unique_(const_iterator __pos, _Arg&& __x, _NodeGen&); 1586: 1586: template 1586: iterator 1586: _M_insert_unique_(const_iterator __pos, _Arg&& __x) 1586: { 1586: _Alloc_node __an(*this); 1586: return _M_insert_unique_(__pos, std::forward<_Arg>(__x), __an); 1586: } 1586: 1586: template 1586: iterator 1586: _M_insert_equal_(const_iterator __pos, _Arg&& __x, _NodeGen&); 1586: 1586: template 1586: iterator 1586: _M_insert_equal_(const_iterator __pos, _Arg&& __x) 1586: { 1586: _Alloc_node __an(*this); 1586: return _M_insert_equal_(__pos, std::forward<_Arg>(__x), __an); 1586: } 1586: 1586: template 1586: pair 1586: _M_emplace_unique(_Args&&... __args); 1586: 1586: template 1586: iterator 1586: _M_emplace_equal(_Args&&... __args); 1586: 1586: template 1586: iterator 1586: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args); 1586: 1586: template 1586: iterator 1586: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args); 1586: 1586: template 1586: using __same_value_type 1586: = is_same::value_type>; 1586: 1586: template 1586: __enable_if_t<__same_value_type<_InputIterator>::value> 1586: _M_insert_range_unique(_InputIterator __first, _InputIterator __last) 1586: { 1586: _Alloc_node __an(*this); 1586: for (; __first != __last; ++__first) 1586: _M_insert_unique_(end(), *__first, __an); 1586: } 1586: 1586: template 1586: __enable_if_t::value> 1586: _M_insert_range_unique(_InputIterator __first, _InputIterator __last) 1586: { 1586: for (; __first != __last; ++__first) 1586: _M_emplace_unique(*__first); 1586: } 1586: 1586: template 1586: __enable_if_t<__same_value_type<_InputIterator>::value> 1586: _M_insert_range_equal(_InputIterator __first, _InputIterator __last) 1586: { 1586: _Alloc_node __an(*this); 1586: for (; __first != __last; ++__first) 1586: _M_insert_equal_(end(), *__first, __an); 1586: } 1586: 1586: template 1586: __enable_if_t::value> 1586: _M_insert_range_equal(_InputIterator __first, _InputIterator __last) 1586: { 1586: _Alloc_node __an(*this); 1586: for (; __first != __last; ++__first) 1586: _M_emplace_equal(*__first); 1586: } 1586: # 1190 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tree.h" 3 1586: private: 1586: void 1586: _M_erase_aux(const_iterator __position); 1586: 1586: void 1586: _M_erase_aux(const_iterator __first, const_iterator __last); 1586: 1586: public: 1586: 1586: 1586: 1586: __attribute ((__abi_tag__ ("cxx11"))) 1586: iterator 1586: erase(const_iterator __position) 1586: { 1586: ; 1586: const_iterator __result = __position; 1586: ++__result; 1586: _M_erase_aux(__position); 1586: return __result._M_const_cast(); 1586: } 1586: 1586: 1586: __attribute ((__abi_tag__ ("cxx11"))) 1586: iterator 1586: erase(iterator __position) 1586: { 1586: ; 1586: iterator __result = __position; 1586: ++__result; 1586: _M_erase_aux(__position); 1586: return __result; 1586: } 1586: # 1238 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tree.h" 3 1586: size_type 1586: erase(const key_type& __x); 1586: 1586: 1586: 1586: 1586: __attribute ((__abi_tag__ ("cxx11"))) 1586: iterator 1586: erase(const_iterator __first, const_iterator __last) 1586: { 1586: _M_erase_aux(__first, __last); 1586: return __last._M_const_cast(); 1586: } 1586: # 1260 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tree.h" 3 1586: void 1586: erase(const key_type* __first, const key_type* __last); 1586: 1586: void 1586: clear() noexcept 1586: { 1586: _M_erase(_M_begin()); 1586: _M_impl._M_reset(); 1586: } 1586: 1586: 1586: iterator 1586: find(const key_type& __k); 1586: 1586: const_iterator 1586: find(const key_type& __k) const; 1586: 1586: size_type 1586: count(const key_type& __k) const; 1586: 1586: iterator 1586: lower_bound(const key_type& __k) 1586: { return _M_lower_bound(_M_begin(), _M_end(), __k); } 1586: 1586: const_iterator 1586: lower_bound(const key_type& __k) const 1586: { return _M_lower_bound(_M_begin(), _M_end(), __k); } 1586: 1586: iterator 1586: upper_bound(const key_type& __k) 1586: { return _M_upper_bound(_M_begin(), _M_end(), __k); } 1586: 1586: const_iterator 1586: upper_bound(const key_type& __k) const 1586: { return _M_upper_bound(_M_begin(), _M_end(), __k); } 1586: 1586: pair 1586: equal_range(const key_type& __k); 1586: 1586: pair 1586: equal_range(const key_type& __k) const; 1586: # 1411 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tree.h" 3 1586: bool 1586: __rb_verify() const; 1586: 1586: 1586: _Rb_tree& 1586: operator=(_Rb_tree&&) 1586: noexcept(_Alloc_traits::_S_nothrow_move() 1586: && is_nothrow_move_assignable<_Compare>::value); 1586: 1586: template 1586: void 1586: _M_assign_unique(_Iterator, _Iterator); 1586: 1586: template 1586: void 1586: _M_assign_equal(_Iterator, _Iterator); 1586: 1586: private: 1586: 1586: void 1586: _M_move_data(_Rb_tree& __x, true_type) 1586: { _M_impl._M_move_data(__x._M_impl); } 1586: 1586: 1586: 1586: void 1586: _M_move_data(_Rb_tree&, false_type); 1586: 1586: 1586: void 1586: _M_move_assign(_Rb_tree&, true_type); 1586: 1586: 1586: 1586: void 1586: _M_move_assign(_Rb_tree&, false_type); 1586: # 1615 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tree.h" 3 1586: friend bool 1586: operator==(const _Rb_tree& __x, const _Rb_tree& __y) 1586: { 1586: return __x.size() == __y.size() 1586: && std::equal(__x.begin(), __x.end(), __y.begin()); 1586: } 1586: 1586: friend bool 1586: operator<(const _Rb_tree& __x, const _Rb_tree& __y) 1586: { 1586: return std::lexicographical_compare(__x.begin(), __x.end(), 1586: __y.begin(), __y.end()); 1586: } 1586: 1586: friend bool __attribute__ ((__deprecated__)) 1586: operator!=(const _Rb_tree& __x, const _Rb_tree& __y) 1586: { return !(__x == __y); } 1586: 1586: friend bool __attribute__ ((__deprecated__)) 1586: operator>(const _Rb_tree& __x, const _Rb_tree& __y) 1586: { return __y < __x; } 1586: 1586: friend bool __attribute__ ((__deprecated__)) 1586: operator<=(const _Rb_tree& __x, const _Rb_tree& __y) 1586: { return !(__y < __x); } 1586: 1586: friend bool __attribute__ ((__deprecated__)) 1586: operator>=(const _Rb_tree& __x, const _Rb_tree& __y) 1586: { return !(__x < __y); } 1586: }; 1586: 1586: template 1586: inline void 1586: swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 1586: { __x.swap(__y); } 1586: 1586: 1586: template 1586: void 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_move_data(_Rb_tree& __x, false_type) 1586: { 1586: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 1586: _M_move_data(__x, true_type()); 1586: else 1586: { 1586: _Alloc_node __an(*this); 1586: auto __lbd = 1586: [&__an](const value_type& __cval) 1586: { 1586: auto& __val = const_cast(__cval); 1586: return __an(std::move_if_noexcept(__val)); 1586: }; 1586: _M_root() = _M_copy(__x, __lbd); 1586: } 1586: } 1586: 1586: template 1586: inline void 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_move_assign(_Rb_tree& __x, true_type) 1586: { 1586: clear(); 1586: if (__x._M_root() != nullptr) 1586: _M_move_data(__x, true_type()); 1586: std::__alloc_on_move(_M_get_Node_allocator(), 1586: __x._M_get_Node_allocator()); 1586: } 1586: 1586: template 1586: void 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_move_assign(_Rb_tree& __x, false_type) 1586: { 1586: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 1586: return _M_move_assign(__x, true_type{}); 1586: 1586: 1586: 1586: _Reuse_or_alloc_node __roan(*this); 1586: _M_impl._M_reset(); 1586: if (__x._M_root() != nullptr) 1586: { 1586: auto __lbd = 1586: [&__roan](const value_type& __cval) 1586: { 1586: auto& __val = const_cast(__cval); 1586: return __roan(std::move_if_noexcept(__val)); 1586: }; 1586: _M_root() = _M_copy(__x, __lbd); 1586: __x.clear(); 1586: } 1586: } 1586: 1586: template 1586: inline _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: operator=(_Rb_tree&& __x) 1586: noexcept(_Alloc_traits::_S_nothrow_move() 1586: && is_nothrow_move_assignable<_Compare>::value) 1586: { 1586: _M_impl._M_key_compare = std::move(__x._M_impl._M_key_compare); 1586: _M_move_assign(__x, __bool_constant<_Alloc_traits::_S_nothrow_move()>()); 1586: return *this; 1586: } 1586: 1586: template 1586: template 1586: void 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_assign_unique(_Iterator __first, _Iterator __last) 1586: { 1586: _Reuse_or_alloc_node __roan(*this); 1586: _M_impl._M_reset(); 1586: for (; __first != __last; ++__first) 1586: _M_insert_unique_(end(), *__first, __roan); 1586: } 1586: 1586: template 1586: template 1586: void 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_assign_equal(_Iterator __first, _Iterator __last) 1586: { 1586: _Reuse_or_alloc_node __roan(*this); 1586: _M_impl._M_reset(); 1586: for (; __first != __last; ++__first) 1586: _M_insert_equal_(end(), *__first, __roan); 1586: } 1586: 1586: 1586: template 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: operator=(const _Rb_tree& __x) 1586: { 1586: if (this != &__x) 1586: { 1586: 1586: 1586: if (_Alloc_traits::_S_propagate_on_copy_assign()) 1586: { 1586: auto& __this_alloc = this->_M_get_Node_allocator(); 1586: auto& __that_alloc = __x._M_get_Node_allocator(); 1586: if (!_Alloc_traits::_S_always_equal() 1586: && __this_alloc != __that_alloc) 1586: { 1586: 1586: 1586: clear(); 1586: std::__alloc_on_copy(__this_alloc, __that_alloc); 1586: } 1586: } 1586: 1586: 1586: _Reuse_or_alloc_node __roan(*this); 1586: _M_impl._M_reset(); 1586: _M_impl._M_key_compare = __x._M_impl._M_key_compare; 1586: if (__x._M_root() != 0) 1586: _M_root() = _M_copy(__x, __roan); 1586: } 1586: 1586: return *this; 1586: } 1586: 1586: template 1586: 1586: template 1586: 1586: 1586: 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_insert_(_Base_ptr __x, _Base_ptr __p, 1586: 1586: _Arg&& __v, 1586: 1586: 1586: 1586: _NodeGen& __node_gen) 1586: { 1586: bool __insert_left = (__x != 0 || __p == _M_end() 1586: || _M_impl._M_key_compare(_KeyOfValue()(__v), 1586: _S_key(__p))); 1586: 1586: _Link_type __z = __node_gen(std::forward<_Arg>(__v)); 1586: 1586: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 1586: this->_M_impl._M_header); 1586: ++_M_impl._M_node_count; 1586: return iterator(__z); 1586: } 1586: 1586: template 1586: 1586: template 1586: 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: 1586: _M_insert_lower(_Base_ptr __p, _Arg&& __v) 1586: 1586: 1586: 1586: { 1586: bool __insert_left = (__p == _M_end() 1586: || !_M_impl._M_key_compare(_S_key(__p), 1586: _KeyOfValue()(__v))); 1586: 1586: _Link_type __z = _M_create_node(std::forward<_Arg>(__v)); 1586: 1586: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 1586: this->_M_impl._M_header); 1586: ++_M_impl._M_node_count; 1586: return iterator(__z); 1586: } 1586: 1586: template 1586: 1586: template 1586: 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: 1586: _M_insert_equal_lower(_Arg&& __v) 1586: 1586: 1586: 1586: { 1586: _Link_type __x = _M_begin(); 1586: _Base_ptr __y = _M_end(); 1586: while (__x != 0) 1586: { 1586: __y = __x; 1586: __x = !_M_impl._M_key_compare(_S_key(__x), _KeyOfValue()(__v)) ? 1586: _S_left(__x) : _S_right(__x); 1586: } 1586: return _M_insert_lower(__y, std::forward<_Arg>(__v)); 1586: } 1586: 1586: template 1586: template 1586: typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type 1586: _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>:: 1586: _M_copy(_Const_Link_type __x, _Base_ptr __p, _NodeGen& __node_gen) 1586: { 1586: 1586: _Link_type __top = _M_clone_node(__x, __node_gen); 1586: __top->_M_parent = __p; 1586: 1586: try 1586: { 1586: if (__x->_M_right) 1586: __top->_M_right = _M_copy(_S_right(__x), __top, __node_gen); 1586: __p = __top; 1586: __x = _S_left(__x); 1586: 1586: while (__x != 0) 1586: { 1586: _Link_type __y = _M_clone_node(__x, __node_gen); 1586: __p->_M_left = __y; 1586: __y->_M_parent = __p; 1586: if (__x->_M_right) 1586: __y->_M_right = _M_copy(_S_right(__x), __y, __node_gen); 1586: __p = __y; 1586: __x = _S_left(__x); 1586: } 1586: } 1586: catch(...) 1586: { 1586: _M_erase(__top); 1586: throw; 1586: } 1586: return __top; 1586: } 1586: 1586: template 1586: void 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_erase(_Link_type __x) 1586: { 1586: 1586: while (__x != 0) 1586: { 1586: _M_erase(_S_right(__x)); 1586: _Link_type __y = _S_left(__x); 1586: _M_drop_node(__x); 1586: __x = __y; 1586: } 1586: } 1586: 1586: template 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1586: _Compare, _Alloc>::iterator 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_lower_bound(_Link_type __x, _Base_ptr __y, 1586: const _Key& __k) 1586: { 1586: while (__x != 0) 1586: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 1586: __y = __x, __x = _S_left(__x); 1586: else 1586: __x = _S_right(__x); 1586: return iterator(__y); 1586: } 1586: 1586: template 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1586: _Compare, _Alloc>::const_iterator 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y, 1586: const _Key& __k) const 1586: { 1586: while (__x != 0) 1586: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 1586: __y = __x, __x = _S_left(__x); 1586: else 1586: __x = _S_right(__x); 1586: return const_iterator(__y); 1586: } 1586: 1586: template 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1586: _Compare, _Alloc>::iterator 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_upper_bound(_Link_type __x, _Base_ptr __y, 1586: const _Key& __k) 1586: { 1586: while (__x != 0) 1586: if (_M_impl._M_key_compare(__k, _S_key(__x))) 1586: __y = __x, __x = _S_left(__x); 1586: else 1586: __x = _S_right(__x); 1586: return iterator(__y); 1586: } 1586: 1586: template 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1586: _Compare, _Alloc>::const_iterator 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y, 1586: const _Key& __k) const 1586: { 1586: while (__x != 0) 1586: if (_M_impl._M_key_compare(__k, _S_key(__x))) 1586: __y = __x, __x = _S_left(__x); 1586: else 1586: __x = _S_right(__x); 1586: return const_iterator(__y); 1586: } 1586: 1586: template 1586: pair::iterator, 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1586: _Compare, _Alloc>::iterator> 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: equal_range(const _Key& __k) 1586: { 1586: _Link_type __x = _M_begin(); 1586: _Base_ptr __y = _M_end(); 1586: while (__x != 0) 1586: { 1586: if (_M_impl._M_key_compare(_S_key(__x), __k)) 1586: __x = _S_right(__x); 1586: else if (_M_impl._M_key_compare(__k, _S_key(__x))) 1586: __y = __x, __x = _S_left(__x); 1586: else 1586: { 1586: _Link_type __xu(__x); 1586: _Base_ptr __yu(__y); 1586: __y = __x, __x = _S_left(__x); 1586: __xu = _S_right(__xu); 1586: return pair(_M_lower_bound(__x, __y, __k), 1586: _M_upper_bound(__xu, __yu, __k)); 1586: } 1586: } 1586: return pair(iterator(__y), 1586: iterator(__y)); 1586: } 1586: 1586: template 1586: pair::const_iterator, 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1586: _Compare, _Alloc>::const_iterator> 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: equal_range(const _Key& __k) const 1586: { 1586: _Const_Link_type __x = _M_begin(); 1586: _Const_Base_ptr __y = _M_end(); 1586: while (__x != 0) 1586: { 1586: if (_M_impl._M_key_compare(_S_key(__x), __k)) 1586: __x = _S_right(__x); 1586: else if (_M_impl._M_key_compare(__k, _S_key(__x))) 1586: __y = __x, __x = _S_left(__x); 1586: else 1586: { 1586: _Const_Link_type __xu(__x); 1586: _Const_Base_ptr __yu(__y); 1586: __y = __x, __x = _S_left(__x); 1586: __xu = _S_right(__xu); 1586: return pair(_M_lower_bound(__x, __y, __k), 1586: _M_upper_bound(__xu, __yu, __k)); 1586: } 1586: } 1586: return pair(const_iterator(__y), 1586: const_iterator(__y)); 1586: } 1586: 1586: template 1586: void 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: swap(_Rb_tree& __t) 1586: noexcept(__is_nothrow_swappable<_Compare>::value) 1586: { 1586: if (_M_root() == 0) 1586: { 1586: if (__t._M_root() != 0) 1586: _M_impl._M_move_data(__t._M_impl); 1586: } 1586: else if (__t._M_root() == 0) 1586: __t._M_impl._M_move_data(_M_impl); 1586: else 1586: { 1586: std::swap(_M_root(),__t._M_root()); 1586: std::swap(_M_leftmost(),__t._M_leftmost()); 1586: std::swap(_M_rightmost(),__t._M_rightmost()); 1586: 1586: _M_root()->_M_parent = _M_end(); 1586: __t._M_root()->_M_parent = __t._M_end(); 1586: std::swap(this->_M_impl._M_node_count, __t._M_impl._M_node_count); 1586: } 1586: 1586: std::swap(this->_M_impl._M_key_compare, __t._M_impl._M_key_compare); 1586: 1586: _Alloc_traits::_S_on_swap(_M_get_Node_allocator(), 1586: __t._M_get_Node_allocator()); 1586: } 1586: 1586: template 1586: pair::_Base_ptr, 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1586: _Compare, _Alloc>::_Base_ptr> 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_get_insert_unique_pos(const key_type& __k) 1586: { 1586: typedef pair<_Base_ptr, _Base_ptr> _Res; 1586: _Link_type __x = _M_begin(); 1586: _Base_ptr __y = _M_end(); 1586: bool __comp = true; 1586: while (__x != 0) 1586: { 1586: __y = __x; 1586: __comp = _M_impl._M_key_compare(__k, _S_key(__x)); 1586: __x = __comp ? _S_left(__x) : _S_right(__x); 1586: } 1586: iterator __j = iterator(__y); 1586: if (__comp) 1586: { 1586: if (__j == begin()) 1586: return _Res(__x, __y); 1586: else 1586: --__j; 1586: } 1586: if (_M_impl._M_key_compare(_S_key(__j._M_node), __k)) 1586: return _Res(__x, __y); 1586: return _Res(__j._M_node, 0); 1586: } 1586: 1586: template 1586: pair::_Base_ptr, 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1586: _Compare, _Alloc>::_Base_ptr> 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_get_insert_equal_pos(const key_type& __k) 1586: { 1586: typedef pair<_Base_ptr, _Base_ptr> _Res; 1586: _Link_type __x = _M_begin(); 1586: _Base_ptr __y = _M_end(); 1586: while (__x != 0) 1586: { 1586: __y = __x; 1586: __x = _M_impl._M_key_compare(__k, _S_key(__x)) ? 1586: _S_left(__x) : _S_right(__x); 1586: } 1586: return _Res(__x, __y); 1586: } 1586: 1586: template 1586: 1586: template 1586: 1586: pair::iterator, bool> 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: 1586: _M_insert_unique(_Arg&& __v) 1586: 1586: 1586: 1586: { 1586: typedef pair _Res; 1586: pair<_Base_ptr, _Base_ptr> __res 1586: = _M_get_insert_unique_pos(_KeyOfValue()(__v)); 1586: 1586: if (__res.second) 1586: { 1586: _Alloc_node __an(*this); 1586: return _Res(_M_insert_(__res.first, __res.second, 1586: std::forward<_Arg>(__v), __an), 1586: true); 1586: } 1586: 1586: return _Res(iterator(__res.first), false); 1586: } 1586: 1586: template 1586: 1586: template 1586: 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: 1586: _M_insert_equal(_Arg&& __v) 1586: 1586: 1586: 1586: { 1586: pair<_Base_ptr, _Base_ptr> __res 1586: = _M_get_insert_equal_pos(_KeyOfValue()(__v)); 1586: _Alloc_node __an(*this); 1586: return _M_insert_(__res.first, __res.second, 1586: std::forward<_Arg>(__v), __an); 1586: } 1586: 1586: template 1586: pair::_Base_ptr, 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1586: _Compare, _Alloc>::_Base_ptr> 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_get_insert_hint_unique_pos(const_iterator __position, 1586: const key_type& __k) 1586: { 1586: iterator __pos = __position._M_const_cast(); 1586: typedef pair<_Base_ptr, _Base_ptr> _Res; 1586: 1586: 1586: if (__pos._M_node == _M_end()) 1586: { 1586: if (size() > 0 1586: && _M_impl._M_key_compare(_S_key(_M_rightmost()), __k)) 1586: return _Res(0, _M_rightmost()); 1586: else 1586: return _M_get_insert_unique_pos(__k); 1586: } 1586: else if (_M_impl._M_key_compare(__k, _S_key(__pos._M_node))) 1586: { 1586: 1586: iterator __before = __pos; 1586: if (__pos._M_node == _M_leftmost()) 1586: return _Res(_M_leftmost(), _M_leftmost()); 1586: else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), __k)) 1586: { 1586: if (_S_right(__before._M_node) == 0) 1586: return _Res(0, __before._M_node); 1586: else 1586: return _Res(__pos._M_node, __pos._M_node); 1586: } 1586: else 1586: return _M_get_insert_unique_pos(__k); 1586: } 1586: else if (_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) 1586: { 1586: 1586: iterator __after = __pos; 1586: if (__pos._M_node == _M_rightmost()) 1586: return _Res(0, _M_rightmost()); 1586: else if (_M_impl._M_key_compare(__k, _S_key((++__after)._M_node))) 1586: { 1586: if (_S_right(__pos._M_node) == 0) 1586: return _Res(0, __pos._M_node); 1586: else 1586: return _Res(__after._M_node, __after._M_node); 1586: } 1586: else 1586: return _M_get_insert_unique_pos(__k); 1586: } 1586: else 1586: 1586: return _Res(__pos._M_node, 0); 1586: } 1586: 1586: template 1586: 1586: template 1586: 1586: 1586: 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_insert_unique_(const_iterator __position, 1586: 1586: _Arg&& __v, 1586: 1586: 1586: 1586: _NodeGen& __node_gen) 1586: { 1586: pair<_Base_ptr, _Base_ptr> __res 1586: = _M_get_insert_hint_unique_pos(__position, _KeyOfValue()(__v)); 1586: 1586: if (__res.second) 1586: return _M_insert_(__res.first, __res.second, 1586: std::forward<_Arg>(__v), 1586: __node_gen); 1586: return iterator(__res.first); 1586: } 1586: 1586: template 1586: pair::_Base_ptr, 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1586: _Compare, _Alloc>::_Base_ptr> 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_get_insert_hint_equal_pos(const_iterator __position, const key_type& __k) 1586: { 1586: iterator __pos = __position._M_const_cast(); 1586: typedef pair<_Base_ptr, _Base_ptr> _Res; 1586: 1586: 1586: if (__pos._M_node == _M_end()) 1586: { 1586: if (size() > 0 1586: && !_M_impl._M_key_compare(__k, _S_key(_M_rightmost()))) 1586: return _Res(0, _M_rightmost()); 1586: else 1586: return _M_get_insert_equal_pos(__k); 1586: } 1586: else if (!_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) 1586: { 1586: 1586: iterator __before = __pos; 1586: if (__pos._M_node == _M_leftmost()) 1586: return _Res(_M_leftmost(), _M_leftmost()); 1586: else if (!_M_impl._M_key_compare(__k, _S_key((--__before)._M_node))) 1586: { 1586: if (_S_right(__before._M_node) == 0) 1586: return _Res(0, __before._M_node); 1586: else 1586: return _Res(__pos._M_node, __pos._M_node); 1586: } 1586: else 1586: return _M_get_insert_equal_pos(__k); 1586: } 1586: else 1586: { 1586: 1586: iterator __after = __pos; 1586: if (__pos._M_node == _M_rightmost()) 1586: return _Res(0, _M_rightmost()); 1586: else if (!_M_impl._M_key_compare(_S_key((++__after)._M_node), __k)) 1586: { 1586: if (_S_right(__pos._M_node) == 0) 1586: return _Res(0, __pos._M_node); 1586: else 1586: return _Res(__after._M_node, __after._M_node); 1586: } 1586: else 1586: return _Res(0, 0); 1586: } 1586: } 1586: 1586: template 1586: 1586: template 1586: 1586: 1586: 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_insert_equal_(const_iterator __position, 1586: 1586: _Arg&& __v, 1586: 1586: 1586: 1586: _NodeGen& __node_gen) 1586: { 1586: pair<_Base_ptr, _Base_ptr> __res 1586: = _M_get_insert_hint_equal_pos(__position, _KeyOfValue()(__v)); 1586: 1586: if (__res.second) 1586: return _M_insert_(__res.first, __res.second, 1586: std::forward<_Arg>(__v), 1586: __node_gen); 1586: 1586: return _M_insert_equal_lower(std::forward<_Arg>(__v)); 1586: } 1586: 1586: 1586: template 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_insert_node(_Base_ptr __x, _Base_ptr __p, _Link_type __z) 1586: { 1586: bool __insert_left = (__x != 0 || __p == _M_end() 1586: || _M_impl._M_key_compare(_S_key(__z), 1586: _S_key(__p))); 1586: 1586: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 1586: this->_M_impl._M_header); 1586: ++_M_impl._M_node_count; 1586: return iterator(__z); 1586: } 1586: 1586: template 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_insert_lower_node(_Base_ptr __p, _Link_type __z) 1586: { 1586: bool __insert_left = (__p == _M_end() 1586: || !_M_impl._M_key_compare(_S_key(__p), 1586: _S_key(__z))); 1586: 1586: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 1586: this->_M_impl._M_header); 1586: ++_M_impl._M_node_count; 1586: return iterator(__z); 1586: } 1586: 1586: template 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_insert_equal_lower_node(_Link_type __z) 1586: { 1586: _Link_type __x = _M_begin(); 1586: _Base_ptr __y = _M_end(); 1586: while (__x != 0) 1586: { 1586: __y = __x; 1586: __x = !_M_impl._M_key_compare(_S_key(__x), _S_key(__z)) ? 1586: _S_left(__x) : _S_right(__x); 1586: } 1586: return _M_insert_lower_node(__y, __z); 1586: } 1586: 1586: template 1586: template 1586: pair::iterator, bool> 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_emplace_unique(_Args&&... __args) 1586: { 1586: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 1586: 1586: try 1586: { 1586: typedef pair _Res; 1586: auto __res = _M_get_insert_unique_pos(_S_key(__z)); 1586: if (__res.second) 1586: return _Res(_M_insert_node(__res.first, __res.second, __z), true); 1586: 1586: _M_drop_node(__z); 1586: return _Res(iterator(__res.first), false); 1586: } 1586: catch(...) 1586: { 1586: _M_drop_node(__z); 1586: throw; 1586: } 1586: } 1586: 1586: template 1586: template 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_emplace_equal(_Args&&... __args) 1586: { 1586: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 1586: 1586: try 1586: { 1586: auto __res = _M_get_insert_equal_pos(_S_key(__z)); 1586: return _M_insert_node(__res.first, __res.second, __z); 1586: } 1586: catch(...) 1586: { 1586: _M_drop_node(__z); 1586: throw; 1586: } 1586: } 1586: 1586: template 1586: template 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args) 1586: { 1586: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 1586: 1586: try 1586: { 1586: auto __res = _M_get_insert_hint_unique_pos(__pos, _S_key(__z)); 1586: 1586: if (__res.second) 1586: return _M_insert_node(__res.first, __res.second, __z); 1586: 1586: _M_drop_node(__z); 1586: return iterator(__res.first); 1586: } 1586: catch(...) 1586: { 1586: _M_drop_node(__z); 1586: throw; 1586: } 1586: } 1586: 1586: template 1586: template 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args) 1586: { 1586: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 1586: 1586: try 1586: { 1586: auto __res = _M_get_insert_hint_equal_pos(__pos, _S_key(__z)); 1586: 1586: if (__res.second) 1586: return _M_insert_node(__res.first, __res.second, __z); 1586: 1586: return _M_insert_equal_lower_node(__z); 1586: } 1586: catch(...) 1586: { 1586: _M_drop_node(__z); 1586: throw; 1586: } 1586: } 1586: 1586: 1586: 1586: template 1586: void 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_erase_aux(const_iterator __position) 1586: { 1586: _Link_type __y = 1586: static_cast<_Link_type>(_Rb_tree_rebalance_for_erase 1586: (const_cast<_Base_ptr>(__position._M_node), 1586: this->_M_impl._M_header)); 1586: _M_drop_node(__y); 1586: --_M_impl._M_node_count; 1586: } 1586: 1586: template 1586: void 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: _M_erase_aux(const_iterator __first, const_iterator __last) 1586: { 1586: if (__first == begin() && __last == end()) 1586: clear(); 1586: else 1586: while (__first != __last) 1586: _M_erase_aux(__first++); 1586: } 1586: 1586: template 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: erase(const _Key& __x) 1586: { 1586: pair __p = equal_range(__x); 1586: const size_type __old_size = size(); 1586: _M_erase_aux(__p.first, __p.second); 1586: return __old_size - size(); 1586: } 1586: 1586: template 1586: void 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: erase(const _Key* __first, const _Key* __last) 1586: { 1586: while (__first != __last) 1586: erase(*__first++); 1586: } 1586: 1586: template 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1586: _Compare, _Alloc>::iterator 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: find(const _Key& __k) 1586: { 1586: iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 1586: return (__j == end() 1586: || _M_impl._M_key_compare(__k, 1586: _S_key(__j._M_node))) ? end() : __j; 1586: } 1586: 1586: template 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, 1586: _Compare, _Alloc>::const_iterator 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: find(const _Key& __k) const 1586: { 1586: const_iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 1586: return (__j == end() 1586: || _M_impl._M_key_compare(__k, 1586: _S_key(__j._M_node))) ? end() : __j; 1586: } 1586: 1586: template 1586: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 1586: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 1586: count(const _Key& __k) const 1586: { 1586: pair __p = equal_range(__k); 1586: const size_type __n = std::distance(__p.first, __p.second); 1586: return __n; 1586: } 1586: 1586: __attribute__ ((__pure__)) unsigned int 1586: _Rb_tree_black_count(const _Rb_tree_node_base* __node, 1586: const _Rb_tree_node_base* __root) throw (); 1586: 1586: template 1586: bool 1586: _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const 1586: { 1586: if (_M_impl._M_node_count == 0 || begin() == end()) 1586: return _M_impl._M_node_count == 0 && begin() == end() 1586: && this->_M_impl._M_header._M_left == _M_end() 1586: && this->_M_impl._M_header._M_right == _M_end(); 1586: 1586: unsigned int __len = _Rb_tree_black_count(_M_leftmost(), _M_root()); 1586: for (const_iterator __it = begin(); __it != end(); ++__it) 1586: { 1586: _Const_Link_type __x = static_cast<_Const_Link_type>(__it._M_node); 1586: _Const_Link_type __L = _S_left(__x); 1586: _Const_Link_type __R = _S_right(__x); 1586: 1586: if (__x->_M_color == _S_red) 1586: if ((__L && __L->_M_color == _S_red) 1586: || (__R && __R->_M_color == _S_red)) 1586: return false; 1586: 1586: if (__L && _M_impl._M_key_compare(_S_key(__x), _S_key(__L))) 1586: return false; 1586: if (__R && _M_impl._M_key_compare(_S_key(__R), _S_key(__x))) 1586: return false; 1586: 1586: if (!__L && !__R && _Rb_tree_black_count(__x, _M_root()) != __len) 1586: return false; 1586: } 1586: 1586: if (_M_leftmost() != _Rb_tree_node_base::_S_minimum(_M_root())) 1586: return false; 1586: if (_M_rightmost() != _Rb_tree_node_base::_S_maximum(_M_root())) 1586: return false; 1586: return true; 1586: } 1586: # 2645 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_tree.h" 3 1586: 1586: } 1586: # 61 "/usr/mipsel-linux-gnu/include/c++/9/map" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 1 3 1586: # 66 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: template 1586: class multimap; 1586: # 98 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: template , 1586: typename _Alloc = std::allocator > > 1586: class map 1586: { 1586: public: 1586: typedef _Key key_type; 1586: typedef _Tp mapped_type; 1586: typedef std::pair value_type; 1586: typedef _Compare key_compare; 1586: typedef _Alloc allocator_type; 1586: 1586: private: 1586: # 122 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: static_assert(is_same::value, 1586: "std::map must have the same value_type as its allocator"); 1586: 1586: 1586: public: 1586: class value_compare 1586: : public std::binary_function 1586: { 1586: friend class map<_Key, _Tp, _Compare, _Alloc>; 1586: protected: 1586: _Compare comp; 1586: 1586: value_compare(_Compare __c) 1586: : comp(__c) { } 1586: 1586: public: 1586: bool operator()(const value_type& __x, const value_type& __y) const 1586: { return comp(__x.first, __y.first); } 1586: }; 1586: 1586: private: 1586: 1586: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 1586: rebind::other _Pair_alloc_type; 1586: 1586: typedef _Rb_tree, 1586: key_compare, _Pair_alloc_type> _Rep_type; 1586: 1586: 1586: _Rep_type _M_t; 1586: 1586: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 1586: 1586: public: 1586: 1586: 1586: typedef typename _Alloc_traits::pointer pointer; 1586: typedef typename _Alloc_traits::const_pointer const_pointer; 1586: typedef typename _Alloc_traits::reference reference; 1586: typedef typename _Alloc_traits::const_reference const_reference; 1586: typedef typename _Rep_type::iterator iterator; 1586: typedef typename _Rep_type::const_iterator const_iterator; 1586: typedef typename _Rep_type::size_type size_type; 1586: typedef typename _Rep_type::difference_type difference_type; 1586: typedef typename _Rep_type::reverse_iterator reverse_iterator; 1586: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 1586: # 183 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: map() = default; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: explicit 1586: map(const _Compare& __comp, 1586: const allocator_type& __a = allocator_type()) 1586: : _M_t(__comp, _Pair_alloc_type(__a)) { } 1586: # 205 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: map(const map&) = default; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: map(map&&) = default; 1586: # 226 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: map(initializer_list __l, 1586: const _Compare& __comp = _Compare(), 1586: const allocator_type& __a = allocator_type()) 1586: : _M_t(__comp, _Pair_alloc_type(__a)) 1586: { _M_t._M_insert_range_unique(__l.begin(), __l.end()); } 1586: 1586: 1586: explicit 1586: map(const allocator_type& __a) 1586: : _M_t(_Pair_alloc_type(__a)) { } 1586: 1586: 1586: map(const map& __m, const allocator_type& __a) 1586: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 1586: 1586: 1586: map(map&& __m, const allocator_type& __a) 1586: noexcept(is_nothrow_copy_constructible<_Compare>::value 1586: && _Alloc_traits::_S_always_equal()) 1586: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 1586: 1586: 1586: map(initializer_list __l, const allocator_type& __a) 1586: : _M_t(_Pair_alloc_type(__a)) 1586: { _M_t._M_insert_range_unique(__l.begin(), __l.end()); } 1586: 1586: 1586: template 1586: map(_InputIterator __first, _InputIterator __last, 1586: const allocator_type& __a) 1586: : _M_t(_Pair_alloc_type(__a)) 1586: { _M_t._M_insert_range_unique(__first, __last); } 1586: # 270 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: template 1586: map(_InputIterator __first, _InputIterator __last) 1586: : _M_t() 1586: { _M_t._M_insert_range_unique(__first, __last); } 1586: # 287 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: template 1586: map(_InputIterator __first, _InputIterator __last, 1586: const _Compare& __comp, 1586: const allocator_type& __a = allocator_type()) 1586: : _M_t(__comp, _Pair_alloc_type(__a)) 1586: { _M_t._M_insert_range_unique(__first, __last); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ~map() = default; 1586: # 316 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: map& 1586: operator=(const map&) = default; 1586: 1586: 1586: map& 1586: operator=(map&&) = default; 1586: # 334 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: map& 1586: operator=(initializer_list __l) 1586: { 1586: _M_t._M_assign_unique(__l.begin(), __l.end()); 1586: return *this; 1586: } 1586: 1586: 1586: 1586: allocator_type 1586: get_allocator() const noexcept 1586: { return allocator_type(_M_t.get_allocator()); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: iterator 1586: begin() noexcept 1586: { return _M_t.begin(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_iterator 1586: begin() const noexcept 1586: { return _M_t.begin(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: iterator 1586: end() noexcept 1586: { return _M_t.end(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_iterator 1586: end() const noexcept 1586: { return _M_t.end(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: reverse_iterator 1586: rbegin() noexcept 1586: { return _M_t.rbegin(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_reverse_iterator 1586: rbegin() const noexcept 1586: { return _M_t.rbegin(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: reverse_iterator 1586: rend() noexcept 1586: { return _M_t.rend(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_reverse_iterator 1586: rend() const noexcept 1586: { return _M_t.rend(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_iterator 1586: cbegin() const noexcept 1586: { return _M_t.begin(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_iterator 1586: cend() const noexcept 1586: { return _M_t.end(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_reverse_iterator 1586: crbegin() const noexcept 1586: { return _M_t.rbegin(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_reverse_iterator 1586: crend() const noexcept 1586: { return _M_t.rend(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: bool 1586: empty() const noexcept 1586: { return _M_t.empty(); } 1586: 1586: 1586: size_type 1586: size() const noexcept 1586: { return _M_t.size(); } 1586: 1586: 1586: size_type 1586: max_size() const noexcept 1586: { return _M_t.max_size(); } 1586: # 489 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: mapped_type& 1586: operator[](const key_type& __k) 1586: { 1586: 1586: 1586: 1586: iterator __i = lower_bound(__k); 1586: 1586: if (__i == end() || key_comp()(__k, (*__i).first)) 1586: 1586: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 1586: std::tuple(__k), 1586: std::tuple<>()); 1586: 1586: 1586: 1586: return (*__i).second; 1586: } 1586: 1586: 1586: mapped_type& 1586: operator[](key_type&& __k) 1586: { 1586: 1586: 1586: 1586: iterator __i = lower_bound(__k); 1586: 1586: if (__i == end() || key_comp()(__k, (*__i).first)) 1586: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 1586: std::forward_as_tuple(std::move(__k)), 1586: std::tuple<>()); 1586: return (*__i).second; 1586: } 1586: # 534 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: mapped_type& 1586: at(const key_type& __k) 1586: { 1586: iterator __i = lower_bound(__k); 1586: if (__i == end() || key_comp()(__k, (*__i).first)) 1586: __throw_out_of_range(("map::at")); 1586: return (*__i).second; 1586: } 1586: 1586: const mapped_type& 1586: at(const key_type& __k) const 1586: { 1586: const_iterator __i = lower_bound(__k); 1586: if (__i == end() || key_comp()(__k, (*__i).first)) 1586: __throw_out_of_range(("map::at")); 1586: return (*__i).second; 1586: } 1586: # 572 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: template 1586: std::pair 1586: emplace(_Args&&... __args) 1586: { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); } 1586: # 602 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: template 1586: iterator 1586: emplace_hint(const_iterator __pos, _Args&&... __args) 1586: { 1586: return _M_t._M_emplace_hint_unique(__pos, 1586: std::forward<_Args>(__args)...); 1586: } 1586: # 800 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: std::pair 1586: insert(const value_type& __x) 1586: { return _M_t._M_insert_unique(__x); } 1586: 1586: 1586: 1586: 1586: std::pair 1586: insert(value_type&& __x) 1586: { return _M_t._M_insert_unique(std::move(__x)); } 1586: 1586: template 1586: __enable_if_t::value, 1586: pair> 1586: insert(_Pair&& __x) 1586: { return _M_t._M_emplace_unique(std::forward<_Pair>(__x)); } 1586: # 827 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: void 1586: insert(std::initializer_list __list) 1586: { insert(__list.begin(), __list.end()); } 1586: # 856 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: iterator 1586: 1586: insert(const_iterator __position, const value_type& __x) 1586: 1586: 1586: 1586: { return _M_t._M_insert_unique_(__position, __x); } 1586: 1586: 1586: 1586: 1586: iterator 1586: insert(const_iterator __position, value_type&& __x) 1586: { return _M_t._M_insert_unique_(__position, std::move(__x)); } 1586: 1586: template 1586: __enable_if_t::value, iterator> 1586: insert(const_iterator __position, _Pair&& __x) 1586: { 1586: return _M_t._M_emplace_hint_unique(__position, 1586: std::forward<_Pair>(__x)); 1586: } 1586: # 889 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: template 1586: void 1586: insert(_InputIterator __first, _InputIterator __last) 1586: { _M_t._M_insert_range_unique(__first, __last); } 1586: # 1029 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: iterator 1586: erase(const_iterator __position) 1586: { return _M_t.erase(__position); } 1586: 1586: 1586: __attribute ((__abi_tag__ ("cxx11"))) 1586: iterator 1586: erase(iterator __position) 1586: { return _M_t.erase(__position); } 1586: # 1066 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: size_type 1586: erase(const key_type& __x) 1586: { return _M_t.erase(__x); } 1586: # 1086 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: iterator 1586: erase(const_iterator __first, const_iterator __last) 1586: { return _M_t.erase(__first, __last); } 1586: # 1120 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: void 1586: swap(map& __x) 1586: noexcept(__is_nothrow_swappable<_Compare>::value) 1586: { _M_t.swap(__x._M_t); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: void 1586: clear() noexcept 1586: { _M_t.clear(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: key_compare 1586: key_comp() const 1586: { return _M_t.key_comp(); } 1586: 1586: 1586: 1586: 1586: 1586: value_compare 1586: value_comp() const 1586: { return value_compare(_M_t.key_comp()); } 1586: # 1167 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: iterator 1586: find(const key_type& __x) 1586: { return _M_t.find(__x); } 1586: # 1192 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: const_iterator 1586: find(const key_type& __x) const 1586: { return _M_t.find(__x); } 1586: # 1213 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: size_type 1586: count(const key_type& __x) const 1586: { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } 1586: # 1256 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: iterator 1586: lower_bound(const key_type& __x) 1586: { return _M_t.lower_bound(__x); } 1586: # 1281 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: const_iterator 1586: lower_bound(const key_type& __x) const 1586: { return _M_t.lower_bound(__x); } 1586: # 1301 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: iterator 1586: upper_bound(const key_type& __x) 1586: { return _M_t.upper_bound(__x); } 1586: # 1321 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: const_iterator 1586: upper_bound(const key_type& __x) const 1586: { return _M_t.upper_bound(__x); } 1586: # 1350 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: std::pair 1586: equal_range(const key_type& __x) 1586: { return _M_t.equal_range(__x); } 1586: # 1379 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: std::pair 1586: equal_range(const key_type& __x) const 1586: { return _M_t.equal_range(__x); } 1586: # 1396 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: template 1586: friend bool 1586: operator==(const map<_K1, _T1, _C1, _A1>&, 1586: const map<_K1, _T1, _C1, _A1>&); 1586: 1586: template 1586: friend bool 1586: operator<(const map<_K1, _T1, _C1, _A1>&, 1586: const map<_K1, _T1, _C1, _A1>&); 1586: }; 1586: # 1453 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: template 1586: inline bool 1586: operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x, 1586: const map<_Key, _Tp, _Compare, _Alloc>& __y) 1586: { return __x._M_t == __y._M_t; } 1586: # 1470 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: template 1586: inline bool 1586: operator<(const map<_Key, _Tp, _Compare, _Alloc>& __x, 1586: const map<_Key, _Tp, _Compare, _Alloc>& __y) 1586: { return __x._M_t < __y._M_t; } 1586: 1586: 1586: template 1586: inline bool 1586: operator!=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 1586: const map<_Key, _Tp, _Compare, _Alloc>& __y) 1586: { return !(__x == __y); } 1586: 1586: 1586: template 1586: inline bool 1586: operator>(const map<_Key, _Tp, _Compare, _Alloc>& __x, 1586: const map<_Key, _Tp, _Compare, _Alloc>& __y) 1586: { return __y < __x; } 1586: 1586: 1586: template 1586: inline bool 1586: operator<=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 1586: const map<_Key, _Tp, _Compare, _Alloc>& __y) 1586: { return !(__y < __x); } 1586: 1586: 1586: template 1586: inline bool 1586: operator>=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 1586: const map<_Key, _Tp, _Compare, _Alloc>& __y) 1586: { return !(__x < __y); } 1586: 1586: 1586: template 1586: inline void 1586: swap(map<_Key, _Tp, _Compare, _Alloc>& __x, 1586: map<_Key, _Tp, _Compare, _Alloc>& __y) 1586: noexcept(noexcept(__x.swap(__y))) 1586: { __x.swap(__y); } 1586: 1586: 1586: # 1535 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_map.h" 3 1586: 1586: } 1586: # 62 "/usr/mipsel-linux-gnu/include/c++/9/map" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 1 3 1586: # 64 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: template 1586: class map; 1586: # 96 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: template , 1586: typename _Alloc = std::allocator > > 1586: class multimap 1586: { 1586: public: 1586: typedef _Key key_type; 1586: typedef _Tp mapped_type; 1586: typedef std::pair value_type; 1586: typedef _Compare key_compare; 1586: typedef _Alloc allocator_type; 1586: 1586: private: 1586: # 121 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: static_assert(is_same::value, 1586: "std::multimap must have the same value_type as its allocator"); 1586: 1586: 1586: public: 1586: class value_compare 1586: : public std::binary_function 1586: { 1586: friend class multimap<_Key, _Tp, _Compare, _Alloc>; 1586: protected: 1586: _Compare comp; 1586: 1586: value_compare(_Compare __c) 1586: : comp(__c) { } 1586: 1586: public: 1586: bool operator()(const value_type& __x, const value_type& __y) const 1586: { return comp(__x.first, __y.first); } 1586: }; 1586: 1586: private: 1586: 1586: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 1586: rebind::other _Pair_alloc_type; 1586: 1586: typedef _Rb_tree, 1586: key_compare, _Pair_alloc_type> _Rep_type; 1586: 1586: _Rep_type _M_t; 1586: 1586: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 1586: 1586: public: 1586: 1586: 1586: typedef typename _Alloc_traits::pointer pointer; 1586: typedef typename _Alloc_traits::const_pointer const_pointer; 1586: typedef typename _Alloc_traits::reference reference; 1586: typedef typename _Alloc_traits::const_reference const_reference; 1586: typedef typename _Rep_type::iterator iterator; 1586: typedef typename _Rep_type::const_iterator const_iterator; 1586: typedef typename _Rep_type::size_type size_type; 1586: typedef typename _Rep_type::difference_type difference_type; 1586: typedef typename _Rep_type::reverse_iterator reverse_iterator; 1586: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 1586: # 180 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: multimap() = default; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: explicit 1586: multimap(const _Compare& __comp, 1586: const allocator_type& __a = allocator_type()) 1586: : _M_t(__comp, _Pair_alloc_type(__a)) { } 1586: # 202 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: multimap(const multimap&) = default; 1586: # 211 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: multimap(multimap&&) = default; 1586: # 223 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: multimap(initializer_list __l, 1586: const _Compare& __comp = _Compare(), 1586: const allocator_type& __a = allocator_type()) 1586: : _M_t(__comp, _Pair_alloc_type(__a)) 1586: { _M_t._M_insert_range_equal(__l.begin(), __l.end()); } 1586: 1586: 1586: explicit 1586: multimap(const allocator_type& __a) 1586: : _M_t(_Pair_alloc_type(__a)) { } 1586: 1586: 1586: multimap(const multimap& __m, const allocator_type& __a) 1586: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 1586: 1586: 1586: multimap(multimap&& __m, const allocator_type& __a) 1586: noexcept(is_nothrow_copy_constructible<_Compare>::value 1586: && _Alloc_traits::_S_always_equal()) 1586: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 1586: 1586: 1586: multimap(initializer_list __l, const allocator_type& __a) 1586: : _M_t(_Pair_alloc_type(__a)) 1586: { _M_t._M_insert_range_equal(__l.begin(), __l.end()); } 1586: 1586: 1586: template 1586: multimap(_InputIterator __first, _InputIterator __last, 1586: const allocator_type& __a) 1586: : _M_t(_Pair_alloc_type(__a)) 1586: { _M_t._M_insert_range_equal(__first, __last); } 1586: # 266 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: template 1586: multimap(_InputIterator __first, _InputIterator __last) 1586: : _M_t() 1586: { _M_t._M_insert_range_equal(__first, __last); } 1586: # 282 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: template 1586: multimap(_InputIterator __first, _InputIterator __last, 1586: const _Compare& __comp, 1586: const allocator_type& __a = allocator_type()) 1586: : _M_t(__comp, _Pair_alloc_type(__a)) 1586: { _M_t._M_insert_range_equal(__first, __last); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ~multimap() = default; 1586: # 311 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: multimap& 1586: operator=(const multimap&) = default; 1586: 1586: 1586: multimap& 1586: operator=(multimap&&) = default; 1586: # 329 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: multimap& 1586: operator=(initializer_list __l) 1586: { 1586: _M_t._M_assign_equal(__l.begin(), __l.end()); 1586: return *this; 1586: } 1586: 1586: 1586: 1586: allocator_type 1586: get_allocator() const noexcept 1586: { return allocator_type(_M_t.get_allocator()); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: iterator 1586: begin() noexcept 1586: { return _M_t.begin(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_iterator 1586: begin() const noexcept 1586: { return _M_t.begin(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: iterator 1586: end() noexcept 1586: { return _M_t.end(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_iterator 1586: end() const noexcept 1586: { return _M_t.end(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: reverse_iterator 1586: rbegin() noexcept 1586: { return _M_t.rbegin(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_reverse_iterator 1586: rbegin() const noexcept 1586: { return _M_t.rbegin(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: reverse_iterator 1586: rend() noexcept 1586: { return _M_t.rend(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_reverse_iterator 1586: rend() const noexcept 1586: { return _M_t.rend(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_iterator 1586: cbegin() const noexcept 1586: { return _M_t.begin(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_iterator 1586: cend() const noexcept 1586: { return _M_t.end(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_reverse_iterator 1586: crbegin() const noexcept 1586: { return _M_t.rbegin(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: const_reverse_iterator 1586: crend() const noexcept 1586: { return _M_t.rend(); } 1586: 1586: 1586: 1586: 1586: bool 1586: empty() const noexcept 1586: { return _M_t.empty(); } 1586: 1586: 1586: size_type 1586: size() const noexcept 1586: { return _M_t.size(); } 1586: 1586: 1586: size_type 1586: max_size() const noexcept 1586: { return _M_t.max_size(); } 1586: # 487 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: template 1586: iterator 1586: emplace(_Args&&... __args) 1586: { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); } 1586: # 514 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: template 1586: iterator 1586: emplace_hint(const_iterator __pos, _Args&&... __args) 1586: { 1586: return _M_t._M_emplace_hint_equal(__pos, 1586: std::forward<_Args>(__args)...); 1586: } 1586: # 536 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: iterator 1586: insert(const value_type& __x) 1586: { return _M_t._M_insert_equal(__x); } 1586: 1586: 1586: 1586: 1586: iterator 1586: insert(value_type&& __x) 1586: { return _M_t._M_insert_equal(std::move(__x)); } 1586: 1586: template 1586: __enable_if_t::value, iterator> 1586: insert(_Pair&& __x) 1586: { return _M_t._M_emplace_equal(std::forward<_Pair>(__x)); } 1586: # 575 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: iterator 1586: 1586: insert(const_iterator __position, const value_type& __x) 1586: 1586: 1586: 1586: { return _M_t._M_insert_equal_(__position, __x); } 1586: 1586: 1586: 1586: 1586: iterator 1586: insert(const_iterator __position, value_type&& __x) 1586: { return _M_t._M_insert_equal_(__position, std::move(__x)); } 1586: 1586: template 1586: __enable_if_t::value, iterator> 1586: insert(const_iterator __position, _Pair&& __x) 1586: { 1586: return _M_t._M_emplace_hint_equal(__position, 1586: std::forward<_Pair>(__x)); 1586: } 1586: # 609 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: template 1586: void 1586: insert(_InputIterator __first, _InputIterator __last) 1586: { _M_t._M_insert_range_equal(__first, __last); } 1586: # 622 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: void 1586: insert(initializer_list __l) 1586: { this->insert(__l.begin(), __l.end()); } 1586: # 699 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: iterator 1586: erase(const_iterator __position) 1586: { return _M_t.erase(__position); } 1586: 1586: 1586: __attribute ((__abi_tag__ ("cxx11"))) 1586: iterator 1586: erase(iterator __position) 1586: { return _M_t.erase(__position); } 1586: # 736 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: size_type 1586: erase(const key_type& __x) 1586: { return _M_t.erase(__x); } 1586: # 757 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: iterator 1586: erase(const_iterator __first, const_iterator __last) 1586: { return _M_t.erase(__first, __last); } 1586: # 794 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: void 1586: swap(multimap& __x) 1586: noexcept(__is_nothrow_swappable<_Compare>::value) 1586: { _M_t.swap(__x._M_t); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: void 1586: clear() noexcept 1586: { _M_t.clear(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: key_compare 1586: key_comp() const 1586: { return _M_t.key_comp(); } 1586: 1586: 1586: 1586: 1586: 1586: value_compare 1586: value_comp() const 1586: { return value_compare(_M_t.key_comp()); } 1586: # 840 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: iterator 1586: find(const key_type& __x) 1586: { return _M_t.find(__x); } 1586: # 864 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: const_iterator 1586: find(const key_type& __x) const 1586: { return _M_t.find(__x); } 1586: # 882 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: size_type 1586: count(const key_type& __x) const 1586: { return _M_t.count(__x); } 1586: # 925 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: iterator 1586: lower_bound(const key_type& __x) 1586: { return _M_t.lower_bound(__x); } 1586: # 950 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: const_iterator 1586: lower_bound(const key_type& __x) const 1586: { return _M_t.lower_bound(__x); } 1586: # 970 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: iterator 1586: upper_bound(const key_type& __x) 1586: { return _M_t.upper_bound(__x); } 1586: # 990 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: const_iterator 1586: upper_bound(const key_type& __x) const 1586: { return _M_t.upper_bound(__x); } 1586: # 1017 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: std::pair 1586: equal_range(const key_type& __x) 1586: { return _M_t.equal_range(__x); } 1586: # 1044 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: std::pair 1586: equal_range(const key_type& __x) const 1586: { return _M_t.equal_range(__x); } 1586: # 1061 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: template 1586: friend bool 1586: operator==(const multimap<_K1, _T1, _C1, _A1>&, 1586: const multimap<_K1, _T1, _C1, _A1>&); 1586: 1586: template 1586: friend bool 1586: operator<(const multimap<_K1, _T1, _C1, _A1>&, 1586: const multimap<_K1, _T1, _C1, _A1>&); 1586: }; 1586: # 1117 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: template 1586: inline bool 1586: operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 1586: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 1586: { return __x._M_t == __y._M_t; } 1586: # 1134 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: template 1586: inline bool 1586: operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 1586: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 1586: { return __x._M_t < __y._M_t; } 1586: 1586: 1586: template 1586: inline bool 1586: operator!=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 1586: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 1586: { return !(__x == __y); } 1586: 1586: 1586: template 1586: inline bool 1586: operator>(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 1586: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 1586: { return __y < __x; } 1586: 1586: 1586: template 1586: inline bool 1586: operator<=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 1586: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 1586: { return !(__y < __x); } 1586: 1586: 1586: template 1586: inline bool 1586: operator>=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 1586: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 1586: { return !(__x < __y); } 1586: 1586: 1586: template 1586: inline void 1586: swap(multimap<_Key, _Tp, _Compare, _Alloc>& __x, 1586: multimap<_Key, _Tp, _Compare, _Alloc>& __y) 1586: noexcept(noexcept(__x.swap(__y))) 1586: { __x.swap(__y); } 1586: 1586: 1586: # 1199 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_multimap.h" 3 1586: 1586: } 1586: # 63 "/usr/mipsel-linux-gnu/include/c++/9/map" 2 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/erase_if.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/erase_if.h" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/erase_if.h" 3 1586: # 65 "/usr/mipsel-linux-gnu/include/c++/9/map" 2 3 1586: # 22 "/<>/include/HepMC3/GenHeavyIon.h" 2 1586: # 1 "/<>/include/HepMC3/Attribute.h" 1 1586: # 22 "/<>/include/HepMC3/Attribute.h" 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/cstdio" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/cstdio" 3 1586: 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/cstdio" 3 1586: # 23 "/<>/include/HepMC3/Attribute.h" 2 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/limits" 1 3 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/limits" 3 1586: 1586: # 41 "/usr/mipsel-linux-gnu/include/c++/9/limits" 3 1586: # 158 "/usr/mipsel-linux-gnu/include/c++/9/limits" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: enum float_round_style 1586: { 1586: round_indeterminate = -1, 1586: round_toward_zero = 0, 1586: round_to_nearest = 1, 1586: round_toward_infinity = 2, 1586: round_toward_neg_infinity = 3 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: enum float_denorm_style 1586: { 1586: 1586: denorm_indeterminate = -1, 1586: 1586: denorm_absent = 0, 1586: 1586: denorm_present = 1 1586: }; 1586: # 202 "/usr/mipsel-linux-gnu/include/c++/9/limits" 3 1586: struct __numeric_limits_base 1586: { 1586: 1586: 1586: static constexpr bool is_specialized = false; 1586: 1586: 1586: 1586: 1586: static constexpr int digits = 0; 1586: 1586: 1586: static constexpr int digits10 = 0; 1586: 1586: 1586: 1586: 1586: static constexpr int max_digits10 = 0; 1586: 1586: 1586: 1586: static constexpr bool is_signed = false; 1586: 1586: 1586: static constexpr bool is_integer = false; 1586: 1586: 1586: 1586: 1586: static constexpr bool is_exact = false; 1586: 1586: 1586: 1586: static constexpr int radix = 0; 1586: 1586: 1586: 1586: static constexpr int min_exponent = 0; 1586: 1586: 1586: 1586: static constexpr int min_exponent10 = 0; 1586: 1586: 1586: 1586: 1586: static constexpr int max_exponent = 0; 1586: 1586: 1586: 1586: static constexpr int max_exponent10 = 0; 1586: 1586: 1586: static constexpr bool has_infinity = false; 1586: 1586: 1586: 1586: static constexpr bool has_quiet_NaN = false; 1586: 1586: 1586: 1586: static constexpr bool has_signaling_NaN = false; 1586: 1586: 1586: static constexpr float_denorm_style has_denorm = denorm_absent; 1586: 1586: 1586: 1586: static constexpr bool has_denorm_loss = false; 1586: 1586: 1586: 1586: static constexpr bool is_iec559 = false; 1586: 1586: 1586: 1586: 1586: static constexpr bool is_bounded = false; 1586: # 288 "/usr/mipsel-linux-gnu/include/c++/9/limits" 3 1586: static constexpr bool is_modulo = false; 1586: 1586: 1586: static constexpr bool traps = false; 1586: 1586: 1586: static constexpr bool tinyness_before = false; 1586: 1586: 1586: 1586: 1586: static constexpr float_round_style round_style = 1586: round_toward_zero; 1586: }; 1586: # 311 "/usr/mipsel-linux-gnu/include/c++/9/limits" 3 1586: template 1586: struct numeric_limits : public __numeric_limits_base 1586: { 1586: 1586: 1586: static constexpr _Tp 1586: min() noexcept { return _Tp(); } 1586: 1586: 1586: static constexpr _Tp 1586: max() noexcept { return _Tp(); } 1586: 1586: 1586: 1586: 1586: static constexpr _Tp 1586: lowest() noexcept { return _Tp(); } 1586: 1586: 1586: 1586: 1586: static constexpr _Tp 1586: epsilon() noexcept { return _Tp(); } 1586: 1586: 1586: static constexpr _Tp 1586: round_error() noexcept { return _Tp(); } 1586: 1586: 1586: static constexpr _Tp 1586: infinity() noexcept { return _Tp(); } 1586: 1586: 1586: 1586: static constexpr _Tp 1586: quiet_NaN() noexcept { return _Tp(); } 1586: 1586: 1586: 1586: static constexpr _Tp 1586: signaling_NaN() noexcept { return _Tp(); } 1586: 1586: 1586: 1586: 1586: static constexpr _Tp 1586: denorm_min() noexcept { return _Tp(); } 1586: }; 1586: 1586: 1586: 1586: 1586: template 1586: struct numeric_limits 1586: : public numeric_limits<_Tp> { }; 1586: 1586: template 1586: struct numeric_limits 1586: : public numeric_limits<_Tp> { }; 1586: 1586: template 1586: struct numeric_limits 1586: : public numeric_limits<_Tp> { }; 1586: # 383 "/usr/mipsel-linux-gnu/include/c++/9/limits" 3 1586: template<> 1586: struct numeric_limits 1586: { 1586: static constexpr bool is_specialized = true; 1586: 1586: static constexpr bool 1586: min() noexcept { return false; } 1586: 1586: static constexpr bool 1586: max() noexcept { return true; } 1586: 1586: 1586: static constexpr bool 1586: lowest() noexcept { return min(); } 1586: 1586: static constexpr int digits = 1; 1586: static constexpr int digits10 = 0; 1586: 1586: static constexpr int max_digits10 = 0; 1586: 1586: static constexpr bool is_signed = false; 1586: static constexpr bool is_integer = true; 1586: static constexpr bool is_exact = true; 1586: static constexpr int radix = 2; 1586: 1586: static constexpr bool 1586: epsilon() noexcept { return false; } 1586: 1586: static constexpr bool 1586: round_error() noexcept { return false; } 1586: 1586: static constexpr int min_exponent = 0; 1586: static constexpr int min_exponent10 = 0; 1586: static constexpr int max_exponent = 0; 1586: static constexpr int max_exponent10 = 0; 1586: 1586: static constexpr bool has_infinity = false; 1586: static constexpr bool has_quiet_NaN = false; 1586: static constexpr bool has_signaling_NaN = false; 1586: static constexpr float_denorm_style has_denorm 1586: = denorm_absent; 1586: static constexpr bool has_denorm_loss = false; 1586: 1586: static constexpr bool 1586: infinity() noexcept { return false; } 1586: 1586: static constexpr bool 1586: quiet_NaN() noexcept { return false; } 1586: 1586: static constexpr bool 1586: signaling_NaN() noexcept { return false; } 1586: 1586: static constexpr bool 1586: denorm_min() noexcept { return false; } 1586: 1586: static constexpr bool is_iec559 = false; 1586: static constexpr bool is_bounded = true; 1586: static constexpr bool is_modulo = false; 1586: 1586: 1586: 1586: 1586: static constexpr bool traps = true; 1586: static constexpr bool tinyness_before = false; 1586: static constexpr float_round_style round_style 1586: = round_toward_zero; 1586: }; 1586: 1586: 1586: template<> 1586: struct numeric_limits 1586: { 1586: static constexpr bool is_specialized = true; 1586: 1586: static constexpr char 1586: 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); } 1586: 1586: static constexpr char 1586: max() noexcept { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); } 1586: 1586: 1586: static constexpr char 1586: lowest() noexcept { return min(); } 1586: 1586: 1586: static constexpr int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); 1586: static constexpr int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643L / 2136); 1586: 1586: static constexpr int max_digits10 = 0; 1586: 1586: static constexpr bool is_signed = ((char)(-1) < 0); 1586: static constexpr bool is_integer = true; 1586: static constexpr bool is_exact = true; 1586: static constexpr int radix = 2; 1586: 1586: static constexpr char 1586: epsilon() noexcept { return 0; } 1586: 1586: static constexpr char 1586: round_error() noexcept { return 0; } 1586: 1586: static constexpr int min_exponent = 0; 1586: static constexpr int min_exponent10 = 0; 1586: static constexpr int max_exponent = 0; 1586: static constexpr int max_exponent10 = 0; 1586: 1586: static constexpr bool has_infinity = false; 1586: static constexpr bool has_quiet_NaN = false; 1586: static constexpr bool has_signaling_NaN = false; 1586: static constexpr float_denorm_style has_denorm 1586: = denorm_absent; 1586: static constexpr bool has_denorm_loss = false; 1586: 1586: static constexpr 1586: char infinity() noexcept { return char(); } 1586: 1586: static constexpr char 1586: quiet_NaN() noexcept { return char(); } 1586: 1586: static constexpr char 1586: signaling_NaN() noexcept { return char(); } 1586: 1586: static constexpr char 1586: denorm_min() noexcept { return static_cast(0); } 1586: 1586: static constexpr bool is_iec559 = false; 1586: static constexpr bool is_bounded = true; 1586: static constexpr bool is_modulo = !is_signed; 1586: 1586: static constexpr bool traps = true; 1586: static constexpr bool tinyness_before = false; 1586: static constexpr float_round_style round_style 1586: = round_toward_zero; 1586: }; 1586: 1586: 1586: template<> 1586: struct numeric_limits 1586: { 1586: static constexpr bool is_specialized = true; 1586: 1586: static constexpr signed char 1586: min() noexcept { return -0x7f - 1; } 1586: 1586: static constexpr signed char 1586: max() noexcept { return 0x7f; } 1586: 1586: 1586: static constexpr signed char 1586: lowest() noexcept { return min(); } 1586: 1586: 1586: static constexpr int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); 1586: static constexpr int digits10 1586: = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643L / 2136); 1586: 1586: static constexpr int max_digits10 = 0; 1586: 1586: static constexpr bool is_signed = true; 1586: static constexpr bool is_integer = true; 1586: static constexpr bool is_exact = true; 1586: static constexpr int radix = 2; 1586: 1586: static constexpr signed char 1586: epsilon() noexcept { return 0; } 1586: 1586: static constexpr signed char 1586: round_error() noexcept { return 0; } 1586: 1586: static constexpr int min_exponent = 0; 1586: static constexpr int min_exponent10 = 0; 1586: static constexpr int max_exponent = 0; 1586: static constexpr int max_exponent10 = 0; 1586: 1586: static constexpr bool has_infinity = false; 1586: static constexpr bool has_quiet_NaN = false; 1586: static constexpr bool has_signaling_NaN = false; 1586: static constexpr float_denorm_style has_denorm 1586: = denorm_absent; 1586: static constexpr bool has_denorm_loss = false; 1586: 1586: static constexpr signed char 1586: infinity() noexcept { return static_cast(0); } 1586: 1586: static constexpr signed char 1586: quiet_NaN() noexcept { return static_cast(0); } 1586: 1586: static constexpr signed char 1586: signaling_NaN() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr signed char 1586: denorm_min() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr bool is_iec559 = false; 1586: static constexpr bool is_bounded = true; 1586: static constexpr bool is_modulo = false; 1586: 1586: static constexpr bool traps = true; 1586: static constexpr bool tinyness_before = false; 1586: static constexpr float_round_style round_style 1586: = round_toward_zero; 1586: }; 1586: 1586: 1586: template<> 1586: struct numeric_limits 1586: { 1586: static constexpr bool is_specialized = true; 1586: 1586: static constexpr unsigned char 1586: min() noexcept { return 0; } 1586: 1586: static constexpr unsigned char 1586: max() noexcept { return 0x7f * 2U + 1; } 1586: 1586: 1586: static constexpr unsigned char 1586: lowest() noexcept { return min(); } 1586: 1586: 1586: static constexpr int digits 1586: = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); 1586: static constexpr int digits10 1586: = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643L / 2136); 1586: 1586: static constexpr int max_digits10 = 0; 1586: 1586: static constexpr bool is_signed = false; 1586: static constexpr bool is_integer = true; 1586: static constexpr bool is_exact = true; 1586: static constexpr int radix = 2; 1586: 1586: static constexpr unsigned char 1586: epsilon() noexcept { return 0; } 1586: 1586: static constexpr unsigned char 1586: round_error() noexcept { return 0; } 1586: 1586: static constexpr int min_exponent = 0; 1586: static constexpr int min_exponent10 = 0; 1586: static constexpr int max_exponent = 0; 1586: static constexpr int max_exponent10 = 0; 1586: 1586: static constexpr bool has_infinity = false; 1586: static constexpr bool has_quiet_NaN = false; 1586: static constexpr bool has_signaling_NaN = false; 1586: static constexpr float_denorm_style has_denorm 1586: = denorm_absent; 1586: static constexpr bool has_denorm_loss = false; 1586: 1586: static constexpr unsigned char 1586: infinity() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr unsigned char 1586: quiet_NaN() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr unsigned char 1586: signaling_NaN() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr unsigned char 1586: denorm_min() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr bool is_iec559 = false; 1586: static constexpr bool is_bounded = true; 1586: static constexpr bool is_modulo = true; 1586: 1586: static constexpr bool traps = true; 1586: static constexpr bool tinyness_before = false; 1586: static constexpr float_round_style round_style 1586: = round_toward_zero; 1586: }; 1586: 1586: 1586: template<> 1586: struct numeric_limits 1586: { 1586: static constexpr bool is_specialized = true; 1586: 1586: static constexpr wchar_t 1586: 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); } 1586: 1586: static constexpr wchar_t 1586: 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); } 1586: 1586: 1586: static constexpr wchar_t 1586: lowest() noexcept { return min(); } 1586: 1586: 1586: static constexpr int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); 1586: static constexpr int digits10 1586: = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643L / 2136); 1586: 1586: static constexpr int max_digits10 = 0; 1586: 1586: static constexpr bool is_signed = ((wchar_t)(-1) < 0); 1586: static constexpr bool is_integer = true; 1586: static constexpr bool is_exact = true; 1586: static constexpr int radix = 2; 1586: 1586: static constexpr wchar_t 1586: epsilon() noexcept { return 0; } 1586: 1586: static constexpr wchar_t 1586: round_error() noexcept { return 0; } 1586: 1586: static constexpr int min_exponent = 0; 1586: static constexpr int min_exponent10 = 0; 1586: static constexpr int max_exponent = 0; 1586: static constexpr int max_exponent10 = 0; 1586: 1586: static constexpr bool has_infinity = false; 1586: static constexpr bool has_quiet_NaN = false; 1586: static constexpr bool has_signaling_NaN = false; 1586: static constexpr float_denorm_style has_denorm 1586: = denorm_absent; 1586: static constexpr bool has_denorm_loss = false; 1586: 1586: static constexpr wchar_t 1586: infinity() noexcept { return wchar_t(); } 1586: 1586: static constexpr wchar_t 1586: quiet_NaN() noexcept { return wchar_t(); } 1586: 1586: static constexpr wchar_t 1586: signaling_NaN() noexcept { return wchar_t(); } 1586: 1586: static constexpr wchar_t 1586: denorm_min() noexcept { return wchar_t(); } 1586: 1586: static constexpr bool is_iec559 = false; 1586: static constexpr bool is_bounded = true; 1586: static constexpr bool is_modulo = !is_signed; 1586: 1586: static constexpr bool traps = true; 1586: static constexpr bool tinyness_before = false; 1586: static constexpr float_round_style round_style 1586: = round_toward_zero; 1586: }; 1586: # 796 "/usr/mipsel-linux-gnu/include/c++/9/limits" 3 1586: template<> 1586: struct numeric_limits 1586: { 1586: static constexpr bool is_specialized = true; 1586: 1586: static constexpr char16_t 1586: 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); } 1586: 1586: static constexpr char16_t 1586: 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); } 1586: 1586: static constexpr char16_t 1586: lowest() noexcept { return min(); } 1586: 1586: static constexpr int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)); 1586: static constexpr int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136); 1586: static constexpr int max_digits10 = 0; 1586: static constexpr bool is_signed = ((char16_t)(-1) < 0); 1586: static constexpr bool is_integer = true; 1586: static constexpr bool is_exact = true; 1586: static constexpr int radix = 2; 1586: 1586: static constexpr char16_t 1586: epsilon() noexcept { return 0; } 1586: 1586: static constexpr char16_t 1586: round_error() noexcept { return 0; } 1586: 1586: static constexpr int min_exponent = 0; 1586: static constexpr int min_exponent10 = 0; 1586: static constexpr int max_exponent = 0; 1586: static constexpr int max_exponent10 = 0; 1586: 1586: static constexpr bool has_infinity = false; 1586: static constexpr bool has_quiet_NaN = false; 1586: static constexpr bool has_signaling_NaN = false; 1586: static constexpr float_denorm_style has_denorm = denorm_absent; 1586: static constexpr bool has_denorm_loss = false; 1586: 1586: static constexpr char16_t 1586: infinity() noexcept { return char16_t(); } 1586: 1586: static constexpr char16_t 1586: quiet_NaN() noexcept { return char16_t(); } 1586: 1586: static constexpr char16_t 1586: signaling_NaN() noexcept { return char16_t(); } 1586: 1586: static constexpr char16_t 1586: denorm_min() noexcept { return char16_t(); } 1586: 1586: static constexpr bool is_iec559 = false; 1586: static constexpr bool is_bounded = true; 1586: static constexpr bool is_modulo = !is_signed; 1586: 1586: static constexpr bool traps = true; 1586: static constexpr bool tinyness_before = false; 1586: static constexpr float_round_style round_style = round_toward_zero; 1586: }; 1586: 1586: 1586: template<> 1586: struct numeric_limits 1586: { 1586: static constexpr bool is_specialized = true; 1586: 1586: static constexpr char32_t 1586: 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); } 1586: 1586: static constexpr char32_t 1586: 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); } 1586: 1586: static constexpr char32_t 1586: lowest() noexcept { return min(); } 1586: 1586: static constexpr int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)); 1586: static constexpr int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136); 1586: static constexpr int max_digits10 = 0; 1586: static constexpr bool is_signed = ((char32_t)(-1) < 0); 1586: static constexpr bool is_integer = true; 1586: static constexpr bool is_exact = true; 1586: static constexpr int radix = 2; 1586: 1586: static constexpr char32_t 1586: epsilon() noexcept { return 0; } 1586: 1586: static constexpr char32_t 1586: round_error() noexcept { return 0; } 1586: 1586: static constexpr int min_exponent = 0; 1586: static constexpr int min_exponent10 = 0; 1586: static constexpr int max_exponent = 0; 1586: static constexpr int max_exponent10 = 0; 1586: 1586: static constexpr bool has_infinity = false; 1586: static constexpr bool has_quiet_NaN = false; 1586: static constexpr bool has_signaling_NaN = false; 1586: static constexpr float_denorm_style has_denorm = denorm_absent; 1586: static constexpr bool has_denorm_loss = false; 1586: 1586: static constexpr char32_t 1586: infinity() noexcept { return char32_t(); } 1586: 1586: static constexpr char32_t 1586: quiet_NaN() noexcept { return char32_t(); } 1586: 1586: static constexpr char32_t 1586: signaling_NaN() noexcept { return char32_t(); } 1586: 1586: static constexpr char32_t 1586: denorm_min() noexcept { return char32_t(); } 1586: 1586: static constexpr bool is_iec559 = false; 1586: static constexpr bool is_bounded = true; 1586: static constexpr bool is_modulo = !is_signed; 1586: 1586: static constexpr bool traps = true; 1586: static constexpr bool tinyness_before = false; 1586: static constexpr float_round_style round_style = round_toward_zero; 1586: }; 1586: 1586: 1586: 1586: template<> 1586: struct numeric_limits 1586: { 1586: static constexpr bool is_specialized = true; 1586: 1586: static constexpr short 1586: min() noexcept { return -0x7fff - 1; } 1586: 1586: static constexpr short 1586: max() noexcept { return 0x7fff; } 1586: 1586: 1586: static constexpr short 1586: lowest() noexcept { return min(); } 1586: 1586: 1586: static constexpr int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); 1586: static constexpr int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643L / 2136); 1586: 1586: static constexpr int max_digits10 = 0; 1586: 1586: static constexpr bool is_signed = true; 1586: static constexpr bool is_integer = true; 1586: static constexpr bool is_exact = true; 1586: static constexpr int radix = 2; 1586: 1586: static constexpr short 1586: epsilon() noexcept { return 0; } 1586: 1586: static constexpr short 1586: round_error() noexcept { return 0; } 1586: 1586: static constexpr int min_exponent = 0; 1586: static constexpr int min_exponent10 = 0; 1586: static constexpr int max_exponent = 0; 1586: static constexpr int max_exponent10 = 0; 1586: 1586: static constexpr bool has_infinity = false; 1586: static constexpr bool has_quiet_NaN = false; 1586: static constexpr bool has_signaling_NaN = false; 1586: static constexpr float_denorm_style has_denorm 1586: = denorm_absent; 1586: static constexpr bool has_denorm_loss = false; 1586: 1586: static constexpr short 1586: infinity() noexcept { return short(); } 1586: 1586: static constexpr short 1586: quiet_NaN() noexcept { return short(); } 1586: 1586: static constexpr short 1586: signaling_NaN() noexcept { return short(); } 1586: 1586: static constexpr short 1586: denorm_min() noexcept { return short(); } 1586: 1586: static constexpr bool is_iec559 = false; 1586: static constexpr bool is_bounded = true; 1586: static constexpr bool is_modulo = false; 1586: 1586: static constexpr bool traps = true; 1586: static constexpr bool tinyness_before = false; 1586: static constexpr float_round_style round_style 1586: = round_toward_zero; 1586: }; 1586: 1586: 1586: template<> 1586: struct numeric_limits 1586: { 1586: static constexpr bool is_specialized = true; 1586: 1586: static constexpr unsigned short 1586: min() noexcept { return 0; } 1586: 1586: static constexpr unsigned short 1586: max() noexcept { return 0x7fff * 2U + 1; } 1586: 1586: 1586: static constexpr unsigned short 1586: lowest() noexcept { return min(); } 1586: 1586: 1586: static constexpr int digits 1586: = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); 1586: static constexpr int digits10 1586: = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643L / 2136); 1586: 1586: static constexpr int max_digits10 = 0; 1586: 1586: static constexpr bool is_signed = false; 1586: static constexpr bool is_integer = true; 1586: static constexpr bool is_exact = true; 1586: static constexpr int radix = 2; 1586: 1586: static constexpr unsigned short 1586: epsilon() noexcept { return 0; } 1586: 1586: static constexpr unsigned short 1586: round_error() noexcept { return 0; } 1586: 1586: static constexpr int min_exponent = 0; 1586: static constexpr int min_exponent10 = 0; 1586: static constexpr int max_exponent = 0; 1586: static constexpr int max_exponent10 = 0; 1586: 1586: static constexpr bool has_infinity = false; 1586: static constexpr bool has_quiet_NaN = false; 1586: static constexpr bool has_signaling_NaN = false; 1586: static constexpr float_denorm_style has_denorm 1586: = denorm_absent; 1586: static constexpr bool has_denorm_loss = false; 1586: 1586: static constexpr unsigned short 1586: infinity() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr unsigned short 1586: quiet_NaN() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr unsigned short 1586: signaling_NaN() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr unsigned short 1586: denorm_min() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr bool is_iec559 = false; 1586: static constexpr bool is_bounded = true; 1586: static constexpr bool is_modulo = true; 1586: 1586: static constexpr bool traps = true; 1586: static constexpr bool tinyness_before = false; 1586: static constexpr float_round_style round_style 1586: = round_toward_zero; 1586: }; 1586: 1586: 1586: template<> 1586: struct numeric_limits 1586: { 1586: static constexpr bool is_specialized = true; 1586: 1586: static constexpr int 1586: min() noexcept { return -0x7fffffff - 1; } 1586: 1586: static constexpr int 1586: max() noexcept { return 0x7fffffff; } 1586: 1586: 1586: static constexpr int 1586: lowest() noexcept { return min(); } 1586: 1586: 1586: static constexpr int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); 1586: static constexpr int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643L / 2136); 1586: 1586: static constexpr int max_digits10 = 0; 1586: 1586: static constexpr bool is_signed = true; 1586: static constexpr bool is_integer = true; 1586: static constexpr bool is_exact = true; 1586: static constexpr int radix = 2; 1586: 1586: static constexpr int 1586: epsilon() noexcept { return 0; } 1586: 1586: static constexpr int 1586: round_error() noexcept { return 0; } 1586: 1586: static constexpr int min_exponent = 0; 1586: static constexpr int min_exponent10 = 0; 1586: static constexpr int max_exponent = 0; 1586: static constexpr int max_exponent10 = 0; 1586: 1586: static constexpr bool has_infinity = false; 1586: static constexpr bool has_quiet_NaN = false; 1586: static constexpr bool has_signaling_NaN = false; 1586: static constexpr float_denorm_style has_denorm 1586: = denorm_absent; 1586: static constexpr bool has_denorm_loss = false; 1586: 1586: static constexpr int 1586: infinity() noexcept { return static_cast(0); } 1586: 1586: static constexpr int 1586: quiet_NaN() noexcept { return static_cast(0); } 1586: 1586: static constexpr int 1586: signaling_NaN() noexcept { return static_cast(0); } 1586: 1586: static constexpr int 1586: denorm_min() noexcept { return static_cast(0); } 1586: 1586: static constexpr bool is_iec559 = false; 1586: static constexpr bool is_bounded = true; 1586: static constexpr bool is_modulo = false; 1586: 1586: static constexpr bool traps = true; 1586: static constexpr bool tinyness_before = false; 1586: static constexpr float_round_style round_style 1586: = round_toward_zero; 1586: }; 1586: 1586: 1586: template<> 1586: struct numeric_limits 1586: { 1586: static constexpr bool is_specialized = true; 1586: 1586: static constexpr unsigned int 1586: min() noexcept { return 0; } 1586: 1586: static constexpr unsigned int 1586: max() noexcept { return 0x7fffffff * 2U + 1; } 1586: 1586: 1586: static constexpr unsigned int 1586: lowest() noexcept { return min(); } 1586: 1586: 1586: static constexpr int digits 1586: = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); 1586: static constexpr int digits10 1586: = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643L / 2136); 1586: 1586: static constexpr int max_digits10 = 0; 1586: 1586: static constexpr bool is_signed = false; 1586: static constexpr bool is_integer = true; 1586: static constexpr bool is_exact = true; 1586: static constexpr int radix = 2; 1586: 1586: static constexpr unsigned int 1586: epsilon() noexcept { return 0; } 1586: 1586: static constexpr unsigned int 1586: round_error() noexcept { return 0; } 1586: 1586: static constexpr int min_exponent = 0; 1586: static constexpr int min_exponent10 = 0; 1586: static constexpr int max_exponent = 0; 1586: static constexpr int max_exponent10 = 0; 1586: 1586: static constexpr bool has_infinity = false; 1586: static constexpr bool has_quiet_NaN = false; 1586: static constexpr bool has_signaling_NaN = false; 1586: static constexpr float_denorm_style has_denorm 1586: = denorm_absent; 1586: static constexpr bool has_denorm_loss = false; 1586: 1586: static constexpr unsigned int 1586: infinity() noexcept { return static_cast(0); } 1586: 1586: static constexpr unsigned int 1586: quiet_NaN() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr unsigned int 1586: signaling_NaN() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr unsigned int 1586: denorm_min() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr bool is_iec559 = false; 1586: static constexpr bool is_bounded = true; 1586: static constexpr bool is_modulo = true; 1586: 1586: static constexpr bool traps = true; 1586: static constexpr bool tinyness_before = false; 1586: static constexpr float_round_style round_style 1586: = round_toward_zero; 1586: }; 1586: 1586: 1586: template<> 1586: struct numeric_limits 1586: { 1586: static constexpr bool is_specialized = true; 1586: 1586: static constexpr long 1586: min() noexcept { return -0x7fffffffL - 1; } 1586: 1586: static constexpr long 1586: max() noexcept { return 0x7fffffffL; } 1586: 1586: 1586: static constexpr long 1586: lowest() noexcept { return min(); } 1586: 1586: 1586: static constexpr int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); 1586: static constexpr int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643L / 2136); 1586: 1586: static constexpr int max_digits10 = 0; 1586: 1586: static constexpr bool is_signed = true; 1586: static constexpr bool is_integer = true; 1586: static constexpr bool is_exact = true; 1586: static constexpr int radix = 2; 1586: 1586: static constexpr long 1586: epsilon() noexcept { return 0; } 1586: 1586: static constexpr long 1586: round_error() noexcept { return 0; } 1586: 1586: static constexpr int min_exponent = 0; 1586: static constexpr int min_exponent10 = 0; 1586: static constexpr int max_exponent = 0; 1586: static constexpr int max_exponent10 = 0; 1586: 1586: static constexpr bool has_infinity = false; 1586: static constexpr bool has_quiet_NaN = false; 1586: static constexpr bool has_signaling_NaN = false; 1586: static constexpr float_denorm_style has_denorm 1586: = denorm_absent; 1586: static constexpr bool has_denorm_loss = false; 1586: 1586: static constexpr long 1586: infinity() noexcept { return static_cast(0); } 1586: 1586: static constexpr long 1586: quiet_NaN() noexcept { return static_cast(0); } 1586: 1586: static constexpr long 1586: signaling_NaN() noexcept { return static_cast(0); } 1586: 1586: static constexpr long 1586: denorm_min() noexcept { return static_cast(0); } 1586: 1586: static constexpr bool is_iec559 = false; 1586: static constexpr bool is_bounded = true; 1586: static constexpr bool is_modulo = false; 1586: 1586: static constexpr bool traps = true; 1586: static constexpr bool tinyness_before = false; 1586: static constexpr float_round_style round_style 1586: = round_toward_zero; 1586: }; 1586: 1586: 1586: template<> 1586: struct numeric_limits 1586: { 1586: static constexpr bool is_specialized = true; 1586: 1586: static constexpr unsigned long 1586: min() noexcept { return 0; } 1586: 1586: static constexpr unsigned long 1586: max() noexcept { return 0x7fffffffL * 2UL + 1; } 1586: 1586: 1586: static constexpr unsigned long 1586: lowest() noexcept { return min(); } 1586: 1586: 1586: static constexpr int digits 1586: = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); 1586: static constexpr int digits10 1586: = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643L / 2136); 1586: 1586: static constexpr int max_digits10 = 0; 1586: 1586: static constexpr bool is_signed = false; 1586: static constexpr bool is_integer = true; 1586: static constexpr bool is_exact = true; 1586: static constexpr int radix = 2; 1586: 1586: static constexpr unsigned long 1586: epsilon() noexcept { return 0; } 1586: 1586: static constexpr unsigned long 1586: round_error() noexcept { return 0; } 1586: 1586: static constexpr int min_exponent = 0; 1586: static constexpr int min_exponent10 = 0; 1586: static constexpr int max_exponent = 0; 1586: static constexpr int max_exponent10 = 0; 1586: 1586: static constexpr bool has_infinity = false; 1586: static constexpr bool has_quiet_NaN = false; 1586: static constexpr bool has_signaling_NaN = false; 1586: static constexpr float_denorm_style has_denorm 1586: = denorm_absent; 1586: static constexpr bool has_denorm_loss = false; 1586: 1586: static constexpr unsigned long 1586: infinity() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr unsigned long 1586: quiet_NaN() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr unsigned long 1586: signaling_NaN() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr unsigned long 1586: denorm_min() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr bool is_iec559 = false; 1586: static constexpr bool is_bounded = true; 1586: static constexpr bool is_modulo = true; 1586: 1586: static constexpr bool traps = true; 1586: static constexpr bool tinyness_before = false; 1586: static constexpr float_round_style round_style 1586: = round_toward_zero; 1586: }; 1586: 1586: 1586: template<> 1586: struct numeric_limits 1586: { 1586: static constexpr bool is_specialized = true; 1586: 1586: static constexpr long long 1586: min() noexcept { return -0x7fffffffffffffffLL - 1; } 1586: 1586: static constexpr long long 1586: max() noexcept { return 0x7fffffffffffffffLL; } 1586: 1586: 1586: static constexpr long long 1586: lowest() noexcept { return min(); } 1586: 1586: 1586: static constexpr int digits 1586: = (sizeof(long long) * 8 - ((long long)(-1) < 0)); 1586: static constexpr int digits10 1586: = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643L / 2136); 1586: 1586: static constexpr int max_digits10 = 0; 1586: 1586: static constexpr bool is_signed = true; 1586: static constexpr bool is_integer = true; 1586: static constexpr bool is_exact = true; 1586: static constexpr int radix = 2; 1586: 1586: static constexpr long long 1586: epsilon() noexcept { return 0; } 1586: 1586: static constexpr long long 1586: round_error() noexcept { return 0; } 1586: 1586: static constexpr int min_exponent = 0; 1586: static constexpr int min_exponent10 = 0; 1586: static constexpr int max_exponent = 0; 1586: static constexpr int max_exponent10 = 0; 1586: 1586: static constexpr bool has_infinity = false; 1586: static constexpr bool has_quiet_NaN = false; 1586: static constexpr bool has_signaling_NaN = false; 1586: static constexpr float_denorm_style has_denorm 1586: = denorm_absent; 1586: static constexpr bool has_denorm_loss = false; 1586: 1586: static constexpr long long 1586: infinity() noexcept { return static_cast(0); } 1586: 1586: static constexpr long long 1586: quiet_NaN() noexcept { return static_cast(0); } 1586: 1586: static constexpr long long 1586: signaling_NaN() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr long long 1586: denorm_min() noexcept { return static_cast(0); } 1586: 1586: static constexpr bool is_iec559 = false; 1586: static constexpr bool is_bounded = true; 1586: static constexpr bool is_modulo = false; 1586: 1586: static constexpr bool traps = true; 1586: static constexpr bool tinyness_before = false; 1586: static constexpr float_round_style round_style 1586: = round_toward_zero; 1586: }; 1586: 1586: 1586: template<> 1586: struct numeric_limits 1586: { 1586: static constexpr bool is_specialized = true; 1586: 1586: static constexpr unsigned long long 1586: min() noexcept { return 0; } 1586: 1586: static constexpr unsigned long long 1586: max() noexcept { return 0x7fffffffffffffffLL * 2ULL + 1; } 1586: 1586: 1586: static constexpr unsigned long long 1586: lowest() noexcept { return min(); } 1586: 1586: 1586: static constexpr int digits 1586: = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); 1586: static constexpr int digits10 1586: = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643L / 2136); 1586: 1586: static constexpr int max_digits10 = 0; 1586: 1586: static constexpr bool is_signed = false; 1586: static constexpr bool is_integer = true; 1586: static constexpr bool is_exact = true; 1586: static constexpr int radix = 2; 1586: 1586: static constexpr unsigned long long 1586: epsilon() noexcept { return 0; } 1586: 1586: static constexpr unsigned long long 1586: round_error() noexcept { return 0; } 1586: 1586: static constexpr int min_exponent = 0; 1586: static constexpr int min_exponent10 = 0; 1586: static constexpr int max_exponent = 0; 1586: static constexpr int max_exponent10 = 0; 1586: 1586: static constexpr bool has_infinity = false; 1586: static constexpr bool has_quiet_NaN = false; 1586: static constexpr bool has_signaling_NaN = false; 1586: static constexpr float_denorm_style has_denorm 1586: = denorm_absent; 1586: static constexpr bool has_denorm_loss = false; 1586: 1586: static constexpr unsigned long long 1586: infinity() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr unsigned long long 1586: quiet_NaN() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr unsigned long long 1586: signaling_NaN() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr unsigned long long 1586: denorm_min() noexcept 1586: { return static_cast(0); } 1586: 1586: static constexpr bool is_iec559 = false; 1586: static constexpr bool is_bounded = true; 1586: static constexpr bool is_modulo = true; 1586: 1586: static constexpr bool traps = true; 1586: static constexpr bool tinyness_before = false; 1586: static constexpr float_round_style round_style 1586: = round_toward_zero; 1586: }; 1586: # 1659 "/usr/mipsel-linux-gnu/include/c++/9/limits" 3 1586: template<> 1586: struct numeric_limits 1586: { 1586: static constexpr bool is_specialized = true; 1586: 1586: static constexpr float 1586: min() noexcept { return 1.1754943508222875e-38F; } 1586: 1586: static constexpr float 1586: max() noexcept { return 3.4028234663852886e+38F; } 1586: 1586: 1586: static constexpr float 1586: lowest() noexcept { return -3.4028234663852886e+38F; } 1586: 1586: 1586: static constexpr int digits = 24; 1586: static constexpr int digits10 = 6; 1586: 1586: static constexpr int max_digits10 1586: = (2 + (24) * 643L / 2136); 1586: 1586: static constexpr bool is_signed = true; 1586: static constexpr bool is_integer = false; 1586: static constexpr bool is_exact = false; 1586: static constexpr int radix = 2; 1586: 1586: static constexpr float 1586: epsilon() noexcept { return 1.1920928955078125e-7F; } 1586: 1586: static constexpr float 1586: round_error() noexcept { return 0.5F; } 1586: 1586: static constexpr int min_exponent = (-125); 1586: static constexpr int min_exponent10 = (-37); 1586: static constexpr int max_exponent = 128; 1586: static constexpr int max_exponent10 = 38; 1586: 1586: static constexpr bool has_infinity = 1; 1586: static constexpr bool has_quiet_NaN = 1; 1586: static constexpr bool has_signaling_NaN = has_quiet_NaN; 1586: static constexpr float_denorm_style has_denorm 1586: = bool(1) ? denorm_present : denorm_absent; 1586: static constexpr bool has_denorm_loss 1586: = false; 1586: 1586: static constexpr float 1586: infinity() noexcept { return __builtin_huge_valf(); } 1586: 1586: static constexpr float 1586: quiet_NaN() noexcept { return __builtin_nanf(""); } 1586: 1586: static constexpr float 1586: signaling_NaN() noexcept { return __builtin_nansf(""); } 1586: 1586: static constexpr float 1586: denorm_min() noexcept { return 1.4012984643248171e-45F; } 1586: 1586: static constexpr bool is_iec559 1586: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 1586: static constexpr bool is_bounded = true; 1586: static constexpr bool is_modulo = false; 1586: 1586: static constexpr bool traps = false; 1586: static constexpr bool tinyness_before 1586: = false; 1586: static constexpr float_round_style round_style 1586: = round_to_nearest; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template<> 1586: struct numeric_limits 1586: { 1586: static constexpr bool is_specialized = true; 1586: 1586: static constexpr double 1586: min() noexcept { return double(2.2250738585072014e-308L); } 1586: 1586: static constexpr double 1586: max() noexcept { return double(1.7976931348623157e+308L); } 1586: 1586: 1586: static constexpr double 1586: lowest() noexcept { return -double(1.7976931348623157e+308L); } 1586: 1586: 1586: static constexpr int digits = 53; 1586: static constexpr int digits10 = 15; 1586: 1586: static constexpr int max_digits10 1586: = (2 + (53) * 643L / 2136); 1586: 1586: static constexpr bool is_signed = true; 1586: static constexpr bool is_integer = false; 1586: static constexpr bool is_exact = false; 1586: static constexpr int radix = 2; 1586: 1586: static constexpr double 1586: epsilon() noexcept { return double(2.2204460492503131e-16L); } 1586: 1586: static constexpr double 1586: round_error() noexcept { return 0.5; } 1586: 1586: static constexpr int min_exponent = (-1021); 1586: static constexpr int min_exponent10 = (-307); 1586: static constexpr int max_exponent = 1024; 1586: static constexpr int max_exponent10 = 308; 1586: 1586: static constexpr bool has_infinity = 1; 1586: static constexpr bool has_quiet_NaN = 1; 1586: static constexpr bool has_signaling_NaN = has_quiet_NaN; 1586: static constexpr float_denorm_style has_denorm 1586: = bool(1) ? denorm_present : denorm_absent; 1586: static constexpr bool has_denorm_loss 1586: = false; 1586: 1586: static constexpr double 1586: infinity() noexcept { return __builtin_huge_val(); } 1586: 1586: static constexpr double 1586: quiet_NaN() noexcept { return __builtin_nan(""); } 1586: 1586: static constexpr double 1586: signaling_NaN() noexcept { return __builtin_nans(""); } 1586: 1586: static constexpr double 1586: denorm_min() noexcept { return double(4.9406564584124654e-324L); } 1586: 1586: static constexpr bool is_iec559 1586: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 1586: static constexpr bool is_bounded = true; 1586: static constexpr bool is_modulo = false; 1586: 1586: static constexpr bool traps = false; 1586: static constexpr bool tinyness_before 1586: = false; 1586: static constexpr float_round_style round_style 1586: = round_to_nearest; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template<> 1586: struct numeric_limits 1586: { 1586: static constexpr bool is_specialized = true; 1586: 1586: static constexpr long double 1586: min() noexcept { return 2.2250738585072014e-308L; } 1586: 1586: static constexpr long double 1586: max() noexcept { return 1.7976931348623157e+308L; } 1586: 1586: 1586: static constexpr long double 1586: lowest() noexcept { return -1.7976931348623157e+308L; } 1586: 1586: 1586: static constexpr int digits = 53; 1586: static constexpr int digits10 = 15; 1586: 1586: static constexpr int max_digits10 1586: = (2 + (53) * 643L / 2136); 1586: 1586: static constexpr bool is_signed = true; 1586: static constexpr bool is_integer = false; 1586: static constexpr bool is_exact = false; 1586: static constexpr int radix = 2; 1586: 1586: static constexpr long double 1586: epsilon() noexcept { return 2.2204460492503131e-16L; } 1586: 1586: static constexpr long double 1586: round_error() noexcept { return 0.5L; } 1586: 1586: static constexpr int min_exponent = (-1021); 1586: static constexpr int min_exponent10 = (-307); 1586: static constexpr int max_exponent = 1024; 1586: static constexpr int max_exponent10 = 308; 1586: 1586: static constexpr bool has_infinity = 1; 1586: static constexpr bool has_quiet_NaN = 1; 1586: static constexpr bool has_signaling_NaN = has_quiet_NaN; 1586: static constexpr float_denorm_style has_denorm 1586: = bool(1) ? denorm_present : denorm_absent; 1586: static constexpr bool has_denorm_loss 1586: = false; 1586: 1586: static constexpr long double 1586: infinity() noexcept { return __builtin_huge_vall(); } 1586: 1586: static constexpr long double 1586: quiet_NaN() noexcept { return __builtin_nanl(""); } 1586: 1586: static constexpr long double 1586: signaling_NaN() noexcept { return __builtin_nansl(""); } 1586: 1586: static constexpr long double 1586: denorm_min() noexcept { return 4.9406564584124654e-324L; } 1586: 1586: static constexpr bool is_iec559 1586: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 1586: static constexpr bool is_bounded = true; 1586: static constexpr bool is_modulo = false; 1586: 1586: static constexpr bool traps = false; 1586: static constexpr bool tinyness_before = 1586: false; 1586: static constexpr float_round_style round_style = 1586: round_to_nearest; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: } 1586: # 25 "/<>/include/HepMC3/Attribute.h" 2 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 1 3 1586: # 36 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: namespace __cxx11 { 1586: # 64 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: template 1586: class basic_stringbuf : public basic_streambuf<_CharT, _Traits> 1586: { 1586: struct __xfer_bufptrs; 1586: public: 1586: 1586: typedef _CharT char_type; 1586: typedef _Traits traits_type; 1586: 1586: 1586: typedef _Alloc allocator_type; 1586: typedef typename traits_type::int_type int_type; 1586: typedef typename traits_type::pos_type pos_type; 1586: typedef typename traits_type::off_type off_type; 1586: 1586: typedef basic_streambuf __streambuf_type; 1586: typedef basic_string __string_type; 1586: typedef typename __string_type::size_type __size_type; 1586: 1586: protected: 1586: 1586: ios_base::openmode _M_mode; 1586: 1586: 1586: __string_type _M_string; 1586: 1586: public: 1586: # 99 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: basic_stringbuf() 1586: : __streambuf_type(), _M_mode(ios_base::in | ios_base::out), _M_string() 1586: { } 1586: # 110 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: explicit 1586: basic_stringbuf(ios_base::openmode __mode) 1586: : __streambuf_type(), _M_mode(__mode), _M_string() 1586: { } 1586: # 123 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: explicit 1586: basic_stringbuf(const __string_type& __str, 1586: ios_base::openmode __mode = ios_base::in | ios_base::out) 1586: : __streambuf_type(), _M_mode(), 1586: _M_string(__str.data(), __str.size(), __str.get_allocator()) 1586: { _M_stringbuf_init(__mode); } 1586: 1586: 1586: basic_stringbuf(const basic_stringbuf&) = delete; 1586: 1586: basic_stringbuf(basic_stringbuf&& __rhs) 1586: : basic_stringbuf(std::move(__rhs), __xfer_bufptrs(__rhs, this)) 1586: { __rhs._M_sync(const_cast(__rhs._M_string.data()), 0, 0); } 1586: 1586: 1586: 1586: basic_stringbuf& 1586: operator=(const basic_stringbuf&) = delete; 1586: 1586: basic_stringbuf& 1586: operator=(basic_stringbuf&& __rhs) 1586: { 1586: __xfer_bufptrs __st{__rhs, this}; 1586: const __streambuf_type& __base = __rhs; 1586: __streambuf_type::operator=(__base); 1586: this->pubimbue(__rhs.getloc()); 1586: _M_mode = __rhs._M_mode; 1586: _M_string = std::move(__rhs._M_string); 1586: __rhs._M_sync(const_cast(__rhs._M_string.data()), 0, 0); 1586: return *this; 1586: } 1586: 1586: void 1586: swap(basic_stringbuf& __rhs) 1586: { 1586: __xfer_bufptrs __l_st{*this, std::__addressof(__rhs)}; 1586: __xfer_bufptrs __r_st{__rhs, this}; 1586: __streambuf_type& __base = __rhs; 1586: __streambuf_type::swap(__base); 1586: __rhs.pubimbue(this->pubimbue(__rhs.getloc())); 1586: std::swap(_M_mode, __rhs._M_mode); 1586: std::swap(_M_string, __rhs._M_string); 1586: } 1586: # 177 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: __string_type 1586: str() const 1586: { 1586: __string_type __ret(_M_string.get_allocator()); 1586: if (this->pptr()) 1586: { 1586: 1586: if (this->pptr() > this->egptr()) 1586: __ret.assign(this->pbase(), this->pptr()); 1586: else 1586: __ret.assign(this->pbase(), this->egptr()); 1586: } 1586: else 1586: __ret = _M_string; 1586: return __ret; 1586: } 1586: # 201 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: void 1586: str(const __string_type& __s) 1586: { 1586: 1586: 1586: _M_string.assign(__s.data(), __s.size()); 1586: _M_stringbuf_init(_M_mode); 1586: } 1586: 1586: protected: 1586: 1586: void 1586: _M_stringbuf_init(ios_base::openmode __mode) 1586: { 1586: _M_mode = __mode; 1586: __size_type __len = 0; 1586: if (_M_mode & (ios_base::ate | ios_base::app)) 1586: __len = _M_string.size(); 1586: _M_sync(const_cast(_M_string.data()), 0, __len); 1586: } 1586: 1586: virtual streamsize 1586: showmanyc() 1586: { 1586: streamsize __ret = -1; 1586: if (_M_mode & ios_base::in) 1586: { 1586: _M_update_egptr(); 1586: __ret = this->egptr() - this->gptr(); 1586: } 1586: return __ret; 1586: } 1586: 1586: virtual int_type 1586: underflow(); 1586: 1586: virtual int_type 1586: pbackfail(int_type __c = traits_type::eof()); 1586: 1586: virtual int_type 1586: overflow(int_type __c = traits_type::eof()); 1586: # 254 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: virtual __streambuf_type* 1586: setbuf(char_type* __s, streamsize __n) 1586: { 1586: if (__s && __n >= 0) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: _M_string.clear(); 1586: 1586: 1586: _M_sync(__s, __n, 0); 1586: } 1586: return this; 1586: } 1586: 1586: virtual pos_type 1586: seekoff(off_type __off, ios_base::seekdir __way, 1586: ios_base::openmode __mode = ios_base::in | ios_base::out); 1586: 1586: virtual pos_type 1586: seekpos(pos_type __sp, 1586: ios_base::openmode __mode = ios_base::in | ios_base::out); 1586: 1586: 1586: 1586: 1586: void 1586: _M_sync(char_type* __base, __size_type __i, __size_type __o); 1586: 1586: 1586: 1586: void 1586: _M_update_egptr() 1586: { 1586: const bool __testin = _M_mode & ios_base::in; 1586: if (this->pptr() && this->pptr() > this->egptr()) 1586: { 1586: if (__testin) 1586: this->setg(this->eback(), this->gptr(), this->pptr()); 1586: else 1586: this->setg(this->pptr(), this->pptr(), this->pptr()); 1586: } 1586: } 1586: 1586: 1586: 1586: void 1586: _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off); 1586: 1586: private: 1586: 1586: 1586: 1586: 1586: struct __xfer_bufptrs 1586: { 1586: __xfer_bufptrs(const basic_stringbuf& __from, basic_stringbuf* __to) 1586: : _M_to{__to}, _M_goff{-1, -1, -1}, _M_poff{-1, -1, -1} 1586: { 1586: const _CharT* const __str = __from._M_string.data(); 1586: const _CharT* __end = nullptr; 1586: if (__from.eback()) 1586: { 1586: _M_goff[0] = __from.eback() - __str; 1586: _M_goff[1] = __from.gptr() - __str; 1586: _M_goff[2] = __from.egptr() - __str; 1586: __end = __from.egptr(); 1586: } 1586: if (__from.pbase()) 1586: { 1586: _M_poff[0] = __from.pbase() - __str; 1586: _M_poff[1] = __from.pptr() - __from.pbase(); 1586: _M_poff[2] = __from.epptr() - __str; 1586: if (__from.pptr() > __end) 1586: __end = __from.pptr(); 1586: } 1586: 1586: 1586: if (__end) 1586: { 1586: 1586: 1586: auto& __mut_from = const_cast(__from); 1586: __mut_from._M_string._M_length(__end - __str); 1586: } 1586: } 1586: 1586: ~__xfer_bufptrs() 1586: { 1586: char_type* __str = const_cast(_M_to->_M_string.data()); 1586: if (_M_goff[0] != -1) 1586: _M_to->setg(__str+_M_goff[0], __str+_M_goff[1], __str+_M_goff[2]); 1586: if (_M_poff[0] != -1) 1586: _M_to->_M_pbump(__str+_M_poff[0], __str+_M_poff[2], _M_poff[1]); 1586: } 1586: 1586: basic_stringbuf* _M_to; 1586: off_type _M_goff[3]; 1586: off_type _M_poff[3]; 1586: }; 1586: # 368 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: basic_stringbuf(basic_stringbuf&& __rhs, __xfer_bufptrs&&) 1586: : __streambuf_type(static_cast(__rhs)), 1586: _M_mode(__rhs._M_mode), _M_string(std::move(__rhs._M_string)) 1586: { } 1586: 1586: }; 1586: # 391 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: template 1586: class basic_istringstream : public basic_istream<_CharT, _Traits> 1586: { 1586: public: 1586: 1586: typedef _CharT char_type; 1586: typedef _Traits traits_type; 1586: 1586: 1586: typedef _Alloc allocator_type; 1586: typedef typename traits_type::int_type int_type; 1586: typedef typename traits_type::pos_type pos_type; 1586: typedef typename traits_type::off_type off_type; 1586: 1586: 1586: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 1586: typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; 1586: typedef basic_istream __istream_type; 1586: 1586: private: 1586: __stringbuf_type _M_stringbuf; 1586: 1586: public: 1586: # 425 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: basic_istringstream() 1586: : __istream_type(), _M_stringbuf(ios_base::in) 1586: { this->init(&_M_stringbuf); } 1586: # 441 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: explicit 1586: basic_istringstream(ios_base::openmode __mode) 1586: : __istream_type(), _M_stringbuf(__mode | ios_base::in) 1586: { this->init(&_M_stringbuf); } 1586: # 459 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: explicit 1586: basic_istringstream(const __string_type& __str, 1586: ios_base::openmode __mode = ios_base::in) 1586: : __istream_type(), _M_stringbuf(__str, __mode | ios_base::in) 1586: { this->init(&_M_stringbuf); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ~basic_istringstream() 1586: { } 1586: 1586: 1586: basic_istringstream(const basic_istringstream&) = delete; 1586: 1586: basic_istringstream(basic_istringstream&& __rhs) 1586: : __istream_type(std::move(__rhs)), 1586: _M_stringbuf(std::move(__rhs._M_stringbuf)) 1586: { __istream_type::set_rdbuf(&_M_stringbuf); } 1586: 1586: 1586: 1586: basic_istringstream& 1586: operator=(const basic_istringstream&) = delete; 1586: 1586: basic_istringstream& 1586: operator=(basic_istringstream&& __rhs) 1586: { 1586: __istream_type::operator=(std::move(__rhs)); 1586: _M_stringbuf = std::move(__rhs._M_stringbuf); 1586: return *this; 1586: } 1586: 1586: void 1586: swap(basic_istringstream& __rhs) 1586: { 1586: __istream_type::swap(__rhs); 1586: _M_stringbuf.swap(__rhs._M_stringbuf); 1586: } 1586: # 510 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: __stringbuf_type* 1586: rdbuf() const 1586: { return const_cast<__stringbuf_type*>(&_M_stringbuf); } 1586: 1586: 1586: 1586: 1586: 1586: __string_type 1586: str() const 1586: { return _M_stringbuf.str(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: void 1586: str(const __string_type& __s) 1586: { _M_stringbuf.str(__s); } 1586: }; 1586: # 549 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: template 1586: class basic_ostringstream : public basic_ostream<_CharT, _Traits> 1586: { 1586: public: 1586: 1586: typedef _CharT char_type; 1586: typedef _Traits traits_type; 1586: 1586: 1586: typedef _Alloc allocator_type; 1586: typedef typename traits_type::int_type int_type; 1586: typedef typename traits_type::pos_type pos_type; 1586: typedef typename traits_type::off_type off_type; 1586: 1586: 1586: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 1586: typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; 1586: typedef basic_ostream __ostream_type; 1586: 1586: private: 1586: __stringbuf_type _M_stringbuf; 1586: 1586: public: 1586: # 583 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: basic_ostringstream() 1586: : __ostream_type(), _M_stringbuf(ios_base::out) 1586: { this->init(&_M_stringbuf); } 1586: # 599 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: explicit 1586: basic_ostringstream(ios_base::openmode __mode) 1586: : __ostream_type(), _M_stringbuf(__mode | ios_base::out) 1586: { this->init(&_M_stringbuf); } 1586: # 617 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: explicit 1586: basic_ostringstream(const __string_type& __str, 1586: ios_base::openmode __mode = ios_base::out) 1586: : __ostream_type(), _M_stringbuf(__str, __mode | ios_base::out) 1586: { this->init(&_M_stringbuf); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ~basic_ostringstream() 1586: { } 1586: 1586: 1586: basic_ostringstream(const basic_ostringstream&) = delete; 1586: 1586: basic_ostringstream(basic_ostringstream&& __rhs) 1586: : __ostream_type(std::move(__rhs)), 1586: _M_stringbuf(std::move(__rhs._M_stringbuf)) 1586: { __ostream_type::set_rdbuf(&_M_stringbuf); } 1586: 1586: 1586: 1586: basic_ostringstream& 1586: operator=(const basic_ostringstream&) = delete; 1586: 1586: basic_ostringstream& 1586: operator=(basic_ostringstream&& __rhs) 1586: { 1586: __ostream_type::operator=(std::move(__rhs)); 1586: _M_stringbuf = std::move(__rhs._M_stringbuf); 1586: return *this; 1586: } 1586: 1586: void 1586: swap(basic_ostringstream& __rhs) 1586: { 1586: __ostream_type::swap(__rhs); 1586: _M_stringbuf.swap(__rhs._M_stringbuf); 1586: } 1586: # 668 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: __stringbuf_type* 1586: rdbuf() const 1586: { return const_cast<__stringbuf_type*>(&_M_stringbuf); } 1586: 1586: 1586: 1586: 1586: 1586: __string_type 1586: str() const 1586: { return _M_stringbuf.str(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: void 1586: str(const __string_type& __s) 1586: { _M_stringbuf.str(__s); } 1586: }; 1586: # 707 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: template 1586: class basic_stringstream : public basic_iostream<_CharT, _Traits> 1586: { 1586: public: 1586: 1586: typedef _CharT char_type; 1586: typedef _Traits traits_type; 1586: 1586: 1586: typedef _Alloc allocator_type; 1586: typedef typename traits_type::int_type int_type; 1586: typedef typename traits_type::pos_type pos_type; 1586: typedef typename traits_type::off_type off_type; 1586: 1586: 1586: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 1586: typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; 1586: typedef basic_iostream __iostream_type; 1586: 1586: private: 1586: __stringbuf_type _M_stringbuf; 1586: 1586: public: 1586: # 741 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: basic_stringstream() 1586: : __iostream_type(), _M_stringbuf(ios_base::out | ios_base::in) 1586: { this->init(&_M_stringbuf); } 1586: # 755 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: explicit 1586: basic_stringstream(ios_base::openmode __m) 1586: : __iostream_type(), _M_stringbuf(__m) 1586: { this->init(&_M_stringbuf); } 1586: # 771 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: explicit 1586: basic_stringstream(const __string_type& __str, 1586: ios_base::openmode __m = ios_base::out | ios_base::in) 1586: : __iostream_type(), _M_stringbuf(__str, __m) 1586: { this->init(&_M_stringbuf); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ~basic_stringstream() 1586: { } 1586: 1586: 1586: basic_stringstream(const basic_stringstream&) = delete; 1586: 1586: basic_stringstream(basic_stringstream&& __rhs) 1586: : __iostream_type(std::move(__rhs)), 1586: _M_stringbuf(std::move(__rhs._M_stringbuf)) 1586: { __iostream_type::set_rdbuf(&_M_stringbuf); } 1586: 1586: 1586: 1586: basic_stringstream& 1586: operator=(const basic_stringstream&) = delete; 1586: 1586: basic_stringstream& 1586: operator=(basic_stringstream&& __rhs) 1586: { 1586: __iostream_type::operator=(std::move(__rhs)); 1586: _M_stringbuf = std::move(__rhs._M_stringbuf); 1586: return *this; 1586: } 1586: 1586: void 1586: swap(basic_stringstream& __rhs) 1586: { 1586: __iostream_type::swap(__rhs); 1586: _M_stringbuf.swap(__rhs._M_stringbuf); 1586: } 1586: # 822 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 3 1586: __stringbuf_type* 1586: rdbuf() const 1586: { return const_cast<__stringbuf_type*>(&_M_stringbuf); } 1586: 1586: 1586: 1586: 1586: 1586: __string_type 1586: str() const 1586: { return _M_stringbuf.str(); } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: void 1586: str(const __string_type& __s) 1586: { _M_stringbuf.str(__s); } 1586: }; 1586: 1586: 1586: 1586: template 1586: inline void 1586: swap(basic_stringbuf<_CharT, _Traits, _Allocator>& __x, 1586: basic_stringbuf<_CharT, _Traits, _Allocator>& __y) 1586: { __x.swap(__y); } 1586: 1586: 1586: template 1586: inline void 1586: swap(basic_istringstream<_CharT, _Traits, _Allocator>& __x, 1586: basic_istringstream<_CharT, _Traits, _Allocator>& __y) 1586: { __x.swap(__y); } 1586: 1586: 1586: template 1586: inline void 1586: swap(basic_ostringstream<_CharT, _Traits, _Allocator>& __x, 1586: basic_ostringstream<_CharT, _Traits, _Allocator>& __y) 1586: { __x.swap(__y); } 1586: 1586: 1586: template 1586: inline void 1586: swap(basic_stringstream<_CharT, _Traits, _Allocator>& __x, 1586: basic_stringstream<_CharT, _Traits, _Allocator>& __y) 1586: { __x.swap(__y); } 1586: 1586: 1586: } 1586: 1586: } 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/sstream.tcc" 1 3 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/bits/sstream.tcc" 3 1586: 1586: # 38 "/usr/mipsel-linux-gnu/include/c++/9/bits/sstream.tcc" 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: template 1586: typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type 1586: basic_stringbuf<_CharT, _Traits, _Alloc>:: 1586: pbackfail(int_type __c) 1586: { 1586: int_type __ret = traits_type::eof(); 1586: if (this->eback() < this->gptr()) 1586: { 1586: 1586: 1586: const bool __testeof = traits_type::eq_int_type(__c, __ret); 1586: if (!__testeof) 1586: { 1586: const bool __testeq = traits_type::eq(traits_type:: 1586: to_char_type(__c), 1586: this->gptr()[-1]); 1586: const bool __testout = this->_M_mode & ios_base::out; 1586: if (__testeq || __testout) 1586: { 1586: this->gbump(-1); 1586: if (!__testeq) 1586: *this->gptr() = traits_type::to_char_type(__c); 1586: __ret = __c; 1586: } 1586: } 1586: else 1586: { 1586: this->gbump(-1); 1586: __ret = traits_type::not_eof(__c); 1586: } 1586: } 1586: return __ret; 1586: } 1586: 1586: template 1586: typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type 1586: basic_stringbuf<_CharT, _Traits, _Alloc>:: 1586: overflow(int_type __c) 1586: { 1586: const bool __testout = this->_M_mode & ios_base::out; 1586: if (__builtin_expect(!__testout, false)) 1586: return traits_type::eof(); 1586: 1586: const bool __testeof = traits_type::eq_int_type(__c, traits_type::eof()); 1586: if (__builtin_expect(__testeof, false)) 1586: return traits_type::not_eof(__c); 1586: 1586: const __size_type __capacity = _M_string.capacity(); 1586: 1586: 1586: if ((this->epptr() - this->pbase()) < __capacity) 1586: { 1586: 1586: char_type* __base = const_cast(_M_string.data()); 1586: _M_pbump(__base, __base + __capacity, this->pptr() - this->pbase()); 1586: if (_M_mode & ios_base::in) 1586: { 1586: const __size_type __nget = this->gptr() - this->eback(); 1586: const __size_type __eget = this->egptr() - this->eback(); 1586: this->setg(__base, __base + __nget, __base + __eget + 1); 1586: } 1586: *this->pptr() = traits_type::to_char_type(__c); 1586: this->pbump(1); 1586: return __c; 1586: } 1586: 1586: 1586: const __size_type __max_size = _M_string.max_size(); 1586: const bool __testput = this->pptr() < this->epptr(); 1586: if (__builtin_expect(!__testput && __capacity == __max_size, false)) 1586: return traits_type::eof(); 1586: 1586: 1586: 1586: const char_type __conv = traits_type::to_char_type(__c); 1586: if (!__testput) 1586: { 1586: # 129 "/usr/mipsel-linux-gnu/include/c++/9/bits/sstream.tcc" 3 1586: const __size_type __opt_len = std::max(__size_type(2 * __capacity), 1586: __size_type(512)); 1586: const __size_type __len = std::min(__opt_len, __max_size); 1586: __string_type __tmp(_M_string.get_allocator()); 1586: __tmp.reserve(__len); 1586: if (this->pbase()) 1586: __tmp.assign(this->pbase(), this->epptr() - this->pbase()); 1586: __tmp.push_back(__conv); 1586: _M_string.swap(__tmp); 1586: _M_sync(const_cast(_M_string.data()), 1586: this->gptr() - this->eback(), this->pptr() - this->pbase()); 1586: } 1586: else 1586: *this->pptr() = __conv; 1586: this->pbump(1); 1586: return __c; 1586: } 1586: 1586: template 1586: typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type 1586: basic_stringbuf<_CharT, _Traits, _Alloc>:: 1586: underflow() 1586: { 1586: int_type __ret = traits_type::eof(); 1586: const bool __testin = this->_M_mode & ios_base::in; 1586: if (__testin) 1586: { 1586: 1586: _M_update_egptr(); 1586: 1586: if (this->gptr() < this->egptr()) 1586: __ret = traits_type::to_int_type(*this->gptr()); 1586: } 1586: return __ret; 1586: } 1586: 1586: template 1586: typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type 1586: basic_stringbuf<_CharT, _Traits, _Alloc>:: 1586: seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode) 1586: { 1586: pos_type __ret = pos_type(off_type(-1)); 1586: bool __testin = (ios_base::in & this->_M_mode & __mode) != 0; 1586: bool __testout = (ios_base::out & this->_M_mode & __mode) != 0; 1586: const bool __testboth = __testin && __testout && __way != ios_base::cur; 1586: __testin &= !(__mode & ios_base::out); 1586: __testout &= !(__mode & ios_base::in); 1586: 1586: 1586: 1586: const char_type* __beg = __testin ? this->eback() : this->pbase(); 1586: if ((__beg || !__off) && (__testin || __testout || __testboth)) 1586: { 1586: _M_update_egptr(); 1586: 1586: off_type __newoffi = __off; 1586: off_type __newoffo = __newoffi; 1586: if (__way == ios_base::cur) 1586: { 1586: __newoffi += this->gptr() - __beg; 1586: __newoffo += this->pptr() - __beg; 1586: } 1586: else if (__way == ios_base::end) 1586: __newoffo = __newoffi += this->egptr() - __beg; 1586: 1586: if ((__testin || __testboth) 1586: && __newoffi >= 0 1586: && this->egptr() - __beg >= __newoffi) 1586: { 1586: this->setg(this->eback(), this->eback() + __newoffi, 1586: this->egptr()); 1586: __ret = pos_type(__newoffi); 1586: } 1586: if ((__testout || __testboth) 1586: && __newoffo >= 0 1586: && this->egptr() - __beg >= __newoffo) 1586: { 1586: _M_pbump(this->pbase(), this->epptr(), __newoffo); 1586: __ret = pos_type(__newoffo); 1586: } 1586: } 1586: return __ret; 1586: } 1586: 1586: template 1586: typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type 1586: basic_stringbuf<_CharT, _Traits, _Alloc>:: 1586: seekpos(pos_type __sp, ios_base::openmode __mode) 1586: { 1586: pos_type __ret = pos_type(off_type(-1)); 1586: const bool __testin = (ios_base::in & this->_M_mode & __mode) != 0; 1586: const bool __testout = (ios_base::out & this->_M_mode & __mode) != 0; 1586: 1586: const char_type* __beg = __testin ? this->eback() : this->pbase(); 1586: if ((__beg || !off_type(__sp)) && (__testin || __testout)) 1586: { 1586: _M_update_egptr(); 1586: 1586: const off_type __pos(__sp); 1586: const bool __testpos = (0 <= __pos 1586: && __pos <= this->egptr() - __beg); 1586: if (__testpos) 1586: { 1586: if (__testin) 1586: this->setg(this->eback(), this->eback() + __pos, 1586: this->egptr()); 1586: if (__testout) 1586: _M_pbump(this->pbase(), this->epptr(), __pos); 1586: __ret = __sp; 1586: } 1586: } 1586: return __ret; 1586: } 1586: 1586: template 1586: void 1586: basic_stringbuf<_CharT, _Traits, _Alloc>:: 1586: _M_sync(char_type* __base, __size_type __i, __size_type __o) 1586: { 1586: const bool __testin = _M_mode & ios_base::in; 1586: const bool __testout = _M_mode & ios_base::out; 1586: char_type* __endg = __base + _M_string.size(); 1586: char_type* __endp = __base + _M_string.capacity(); 1586: 1586: if (__base != _M_string.data()) 1586: { 1586: 1586: __endg += __i; 1586: __i = 0; 1586: __endp = __endg; 1586: } 1586: 1586: if (__testin) 1586: this->setg(__base, __base + __i, __endg); 1586: if (__testout) 1586: { 1586: _M_pbump(__base, __endp, __o); 1586: 1586: 1586: 1586: if (!__testin) 1586: this->setg(__endg, __endg, __endg); 1586: } 1586: } 1586: 1586: template 1586: void 1586: basic_stringbuf<_CharT, _Traits, _Alloc>:: 1586: _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off) 1586: { 1586: this->setp(__pbeg, __pend); 1586: while (__off > __gnu_cxx::__numeric_traits::__max) 1586: { 1586: this->pbump(__gnu_cxx::__numeric_traits::__max); 1586: __off -= __gnu_cxx::__numeric_traits::__max; 1586: } 1586: this->pbump(__off); 1586: } 1586: 1586: 1586: 1586: 1586: extern template class basic_stringbuf; 1586: extern template class basic_istringstream; 1586: extern template class basic_ostringstream; 1586: extern template class basic_stringstream; 1586: 1586: 1586: extern template class basic_stringbuf; 1586: extern template class basic_istringstream; 1586: extern template class basic_ostringstream; 1586: extern template class basic_stringstream; 1586: 1586: 1586: 1586: 1586: } 1586: # 880 "/usr/mipsel-linux-gnu/include/c++/9/sstream" 2 3 1586: # 26 "/<>/include/HepMC3/Attribute.h" 2 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/iomanip" 1 3 1586: # 36 "/usr/mipsel-linux-gnu/include/c++/9/iomanip" 3 1586: 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/iomanip" 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/locale" 1 3 1586: # 36 "/usr/mipsel-linux-gnu/include/c++/9/locale" 3 1586: 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/locale" 3 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 1 3 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: 1586: # 38 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/ctime" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/ctime" 3 1586: 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/ctime" 3 1586: # 58 "/usr/mipsel-linux-gnu/include/c++/9/ctime" 3 1586: namespace std 1586: { 1586: using ::clock_t; 1586: using ::time_t; 1586: using ::tm; 1586: 1586: using ::clock; 1586: using ::difftime; 1586: using ::mktime; 1586: using ::time; 1586: using ::asctime; 1586: using ::ctime; 1586: using ::gmtime; 1586: using ::localtime; 1586: using ::strftime; 1586: } 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 52 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: class time_base 1586: { 1586: public: 1586: enum dateorder { no_order, dmy, mdy, ymd, ydm }; 1586: }; 1586: 1586: template 1586: struct __timepunct_cache : public locale::facet 1586: { 1586: 1586: static const _CharT* _S_timezones[14]; 1586: 1586: const _CharT* _M_date_format; 1586: const _CharT* _M_date_era_format; 1586: const _CharT* _M_time_format; 1586: const _CharT* _M_time_era_format; 1586: const _CharT* _M_date_time_format; 1586: const _CharT* _M_date_time_era_format; 1586: const _CharT* _M_am; 1586: const _CharT* _M_pm; 1586: const _CharT* _M_am_pm_format; 1586: 1586: 1586: const _CharT* _M_day1; 1586: const _CharT* _M_day2; 1586: const _CharT* _M_day3; 1586: const _CharT* _M_day4; 1586: const _CharT* _M_day5; 1586: const _CharT* _M_day6; 1586: const _CharT* _M_day7; 1586: 1586: 1586: const _CharT* _M_aday1; 1586: const _CharT* _M_aday2; 1586: const _CharT* _M_aday3; 1586: const _CharT* _M_aday4; 1586: const _CharT* _M_aday5; 1586: const _CharT* _M_aday6; 1586: const _CharT* _M_aday7; 1586: 1586: 1586: const _CharT* _M_month01; 1586: const _CharT* _M_month02; 1586: const _CharT* _M_month03; 1586: const _CharT* _M_month04; 1586: const _CharT* _M_month05; 1586: const _CharT* _M_month06; 1586: const _CharT* _M_month07; 1586: const _CharT* _M_month08; 1586: const _CharT* _M_month09; 1586: const _CharT* _M_month10; 1586: const _CharT* _M_month11; 1586: const _CharT* _M_month12; 1586: 1586: 1586: const _CharT* _M_amonth01; 1586: const _CharT* _M_amonth02; 1586: const _CharT* _M_amonth03; 1586: const _CharT* _M_amonth04; 1586: const _CharT* _M_amonth05; 1586: const _CharT* _M_amonth06; 1586: const _CharT* _M_amonth07; 1586: const _CharT* _M_amonth08; 1586: const _CharT* _M_amonth09; 1586: const _CharT* _M_amonth10; 1586: const _CharT* _M_amonth11; 1586: const _CharT* _M_amonth12; 1586: 1586: bool _M_allocated; 1586: 1586: __timepunct_cache(size_t __refs = 0) : facet(__refs), 1586: _M_date_format(0), _M_date_era_format(0), _M_time_format(0), 1586: _M_time_era_format(0), _M_date_time_format(0), 1586: _M_date_time_era_format(0), _M_am(0), _M_pm(0), 1586: _M_am_pm_format(0), _M_day1(0), _M_day2(0), _M_day3(0), 1586: _M_day4(0), _M_day5(0), _M_day6(0), _M_day7(0), 1586: _M_aday1(0), _M_aday2(0), _M_aday3(0), _M_aday4(0), 1586: _M_aday5(0), _M_aday6(0), _M_aday7(0), _M_month01(0), 1586: _M_month02(0), _M_month03(0), _M_month04(0), _M_month05(0), 1586: _M_month06(0), _M_month07(0), _M_month08(0), _M_month09(0), 1586: _M_month10(0), _M_month11(0), _M_month12(0), _M_amonth01(0), 1586: _M_amonth02(0), _M_amonth03(0), _M_amonth04(0), 1586: _M_amonth05(0), _M_amonth06(0), _M_amonth07(0), 1586: _M_amonth08(0), _M_amonth09(0), _M_amonth10(0), 1586: _M_amonth11(0), _M_amonth12(0), _M_allocated(false) 1586: { } 1586: 1586: ~__timepunct_cache(); 1586: 1586: private: 1586: __timepunct_cache& 1586: operator=(const __timepunct_cache&); 1586: 1586: explicit 1586: __timepunct_cache(const __timepunct_cache&); 1586: }; 1586: 1586: template 1586: __timepunct_cache<_CharT>::~__timepunct_cache() 1586: { 1586: if (_M_allocated) 1586: { 1586: 1586: } 1586: } 1586: 1586: 1586: template<> 1586: const char* 1586: __timepunct_cache::_S_timezones[14]; 1586: 1586: 1586: template<> 1586: const wchar_t* 1586: __timepunct_cache::_S_timezones[14]; 1586: 1586: 1586: 1586: template 1586: const _CharT* __timepunct_cache<_CharT>::_S_timezones[14]; 1586: 1586: template 1586: class __timepunct : public locale::facet 1586: { 1586: public: 1586: 1586: typedef _CharT __char_type; 1586: typedef __timepunct_cache<_CharT> __cache_type; 1586: 1586: protected: 1586: __cache_type* _M_data; 1586: __c_locale _M_c_locale_timepunct; 1586: const char* _M_name_timepunct; 1586: 1586: public: 1586: 1586: static locale::id id; 1586: 1586: explicit 1586: __timepunct(size_t __refs = 0); 1586: 1586: explicit 1586: __timepunct(__cache_type* __cache, size_t __refs = 0); 1586: # 206 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: explicit 1586: __timepunct(__c_locale __cloc, const char* __s, size_t __refs = 0); 1586: 1586: 1586: 1586: void 1586: _M_put(_CharT* __s, size_t __maxlen, const _CharT* __format, 1586: const tm* __tm) const throw (); 1586: 1586: void 1586: _M_date_formats(const _CharT** __date) const 1586: { 1586: 1586: __date[0] = _M_data->_M_date_format; 1586: __date[1] = _M_data->_M_date_era_format; 1586: } 1586: 1586: void 1586: _M_time_formats(const _CharT** __time) const 1586: { 1586: 1586: __time[0] = _M_data->_M_time_format; 1586: __time[1] = _M_data->_M_time_era_format; 1586: } 1586: 1586: void 1586: _M_date_time_formats(const _CharT** __dt) const 1586: { 1586: 1586: __dt[0] = _M_data->_M_date_time_format; 1586: __dt[1] = _M_data->_M_date_time_era_format; 1586: } 1586: 1586: 1586: void 1586: _M_am_pm_format(const _CharT*) const 1586: { } 1586: 1586: 1586: void 1586: _M_am_pm(const _CharT** __ampm) const 1586: { 1586: __ampm[0] = _M_data->_M_am; 1586: __ampm[1] = _M_data->_M_pm; 1586: } 1586: 1586: void 1586: _M_days(const _CharT** __days) const 1586: { 1586: __days[0] = _M_data->_M_day1; 1586: __days[1] = _M_data->_M_day2; 1586: __days[2] = _M_data->_M_day3; 1586: __days[3] = _M_data->_M_day4; 1586: __days[4] = _M_data->_M_day5; 1586: __days[5] = _M_data->_M_day6; 1586: __days[6] = _M_data->_M_day7; 1586: } 1586: 1586: void 1586: _M_days_abbreviated(const _CharT** __days) const 1586: { 1586: __days[0] = _M_data->_M_aday1; 1586: __days[1] = _M_data->_M_aday2; 1586: __days[2] = _M_data->_M_aday3; 1586: __days[3] = _M_data->_M_aday4; 1586: __days[4] = _M_data->_M_aday5; 1586: __days[5] = _M_data->_M_aday6; 1586: __days[6] = _M_data->_M_aday7; 1586: } 1586: 1586: void 1586: _M_months(const _CharT** __months) const 1586: { 1586: __months[0] = _M_data->_M_month01; 1586: __months[1] = _M_data->_M_month02; 1586: __months[2] = _M_data->_M_month03; 1586: __months[3] = _M_data->_M_month04; 1586: __months[4] = _M_data->_M_month05; 1586: __months[5] = _M_data->_M_month06; 1586: __months[6] = _M_data->_M_month07; 1586: __months[7] = _M_data->_M_month08; 1586: __months[8] = _M_data->_M_month09; 1586: __months[9] = _M_data->_M_month10; 1586: __months[10] = _M_data->_M_month11; 1586: __months[11] = _M_data->_M_month12; 1586: } 1586: 1586: void 1586: _M_months_abbreviated(const _CharT** __months) const 1586: { 1586: __months[0] = _M_data->_M_amonth01; 1586: __months[1] = _M_data->_M_amonth02; 1586: __months[2] = _M_data->_M_amonth03; 1586: __months[3] = _M_data->_M_amonth04; 1586: __months[4] = _M_data->_M_amonth05; 1586: __months[5] = _M_data->_M_amonth06; 1586: __months[6] = _M_data->_M_amonth07; 1586: __months[7] = _M_data->_M_amonth08; 1586: __months[8] = _M_data->_M_amonth09; 1586: __months[9] = _M_data->_M_amonth10; 1586: __months[10] = _M_data->_M_amonth11; 1586: __months[11] = _M_data->_M_amonth12; 1586: } 1586: 1586: protected: 1586: virtual 1586: ~__timepunct(); 1586: 1586: 1586: void 1586: _M_initialize_timepunct(__c_locale __cloc = 0); 1586: }; 1586: 1586: template 1586: locale::id __timepunct<_CharT>::id; 1586: 1586: 1586: template<> 1586: void 1586: __timepunct::_M_initialize_timepunct(__c_locale __cloc); 1586: 1586: template<> 1586: void 1586: __timepunct::_M_put(char*, size_t, const char*, const tm*) const throw (); 1586: 1586: 1586: template<> 1586: void 1586: __timepunct::_M_initialize_timepunct(__c_locale __cloc); 1586: 1586: template<> 1586: void 1586: __timepunct::_M_put(wchar_t*, size_t, const wchar_t*, 1586: const tm*) const throw (); 1586: 1586: 1586: 1586: } 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/time_members.h" 1 3 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/time_members.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: template 1586: __timepunct<_CharT>::__timepunct(size_t __refs) 1586: : facet(__refs), _M_data(0), _M_c_locale_timepunct(0), 1586: _M_name_timepunct(_S_get_c_name()) 1586: { _M_initialize_timepunct(); } 1586: 1586: template 1586: __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) 1586: : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(0), 1586: _M_name_timepunct(_S_get_c_name()) 1586: { _M_initialize_timepunct(); } 1586: 1586: template 1586: __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s, 1586: size_t __refs) 1586: : facet(__refs), _M_data(0), _M_c_locale_timepunct(0), 1586: _M_name_timepunct(0) 1586: { 1586: if (__builtin_strcmp(__s, _S_get_c_name()) != 0) 1586: { 1586: const size_t __len = __builtin_strlen(__s) + 1; 1586: char* __tmp = new char[__len]; 1586: __builtin_memcpy(__tmp, __s, __len); 1586: _M_name_timepunct = __tmp; 1586: } 1586: else 1586: _M_name_timepunct = _S_get_c_name(); 1586: 1586: try 1586: { _M_initialize_timepunct(__cloc); } 1586: catch(...) 1586: { 1586: if (_M_name_timepunct != _S_get_c_name()) 1586: delete [] _M_name_timepunct; 1586: throw; 1586: } 1586: } 1586: 1586: template 1586: __timepunct<_CharT>::~__timepunct() 1586: { 1586: if (_M_name_timepunct != _S_get_c_name()) 1586: delete [] _M_name_timepunct; 1586: delete _M_data; 1586: _S_destroy_c_locale(_M_c_locale_timepunct); 1586: } 1586: 1586: 1586: } 1586: # 347 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: namespace __cxx11 { 1586: # 367 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: template 1586: class time_get : public locale::facet, public time_base 1586: { 1586: public: 1586: 1586: 1586: 1586: typedef _CharT char_type; 1586: typedef _InIter iter_type; 1586: 1586: 1586: 1586: static locale::id id; 1586: # 388 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: explicit 1586: time_get(size_t __refs = 0) 1586: : facet (__refs) { } 1586: # 405 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: dateorder 1586: date_order() const 1586: { return this->do_date_order(); } 1586: # 429 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: iter_type 1586: get_time(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, tm* __tm) const 1586: { return this->do_get_time(__beg, __end, __io, __err, __tm); } 1586: # 454 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: iter_type 1586: get_date(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, tm* __tm) const 1586: { return this->do_get_date(__beg, __end, __io, __err, __tm); } 1586: # 482 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: iter_type 1586: get_weekday(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, tm* __tm) const 1586: { return this->do_get_weekday(__beg, __end, __io, __err, __tm); } 1586: # 511 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: iter_type 1586: get_monthname(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, tm* __tm) const 1586: { return this->do_get_monthname(__beg, __end, __io, __err, __tm); } 1586: # 537 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: iter_type 1586: get_year(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, tm* __tm) const 1586: { return this->do_get_year(__beg, __end, __io, __err, __tm); } 1586: # 558 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: inline 1586: iter_type get(iter_type __s, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, tm* __tm, char __format, 1586: char __modifier = 0) const 1586: { 1586: return this->do_get(__s, __end, __io, __err, __tm, __format, 1586: __modifier); 1586: } 1586: # 585 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: iter_type get(iter_type __s, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, tm* __tm, const char_type* __fmt, 1586: const char_type* __fmtend) const; 1586: 1586: 1586: protected: 1586: 1586: virtual 1586: ~time_get() { } 1586: # 605 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual dateorder 1586: do_date_order() const; 1586: # 623 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual iter_type 1586: do_get_time(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, tm* __tm) const; 1586: # 642 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual iter_type 1586: do_get_date(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, tm* __tm) const; 1586: # 661 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual iter_type 1586: do_get_weekday(iter_type __beg, iter_type __end, ios_base&, 1586: ios_base::iostate& __err, tm* __tm) const; 1586: # 680 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual iter_type 1586: do_get_monthname(iter_type __beg, iter_type __end, ios_base&, 1586: ios_base::iostate& __err, tm* __tm) const; 1586: # 699 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual iter_type 1586: do_get_year(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, tm* __tm) const; 1586: # 722 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual 1586: 1586: iter_type 1586: do_get(iter_type __s, iter_type __end, ios_base& __f, 1586: ios_base::iostate& __err, tm* __tm, 1586: char __format, char __modifier) const; 1586: 1586: 1586: 1586: iter_type 1586: _M_extract_num(iter_type __beg, iter_type __end, int& __member, 1586: int __min, int __max, size_t __len, 1586: ios_base& __io, ios_base::iostate& __err) const; 1586: 1586: 1586: iter_type 1586: _M_extract_name(iter_type __beg, iter_type __end, int& __member, 1586: const _CharT** __names, size_t __indexlen, 1586: ios_base& __io, ios_base::iostate& __err) const; 1586: 1586: 1586: iter_type 1586: _M_extract_wday_or_month(iter_type __beg, iter_type __end, int& __member, 1586: const _CharT** __names, size_t __indexlen, 1586: ios_base& __io, ios_base::iostate& __err) const; 1586: 1586: 1586: iter_type 1586: _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, tm* __tm, 1586: const _CharT* __format) const; 1586: }; 1586: 1586: template 1586: locale::id time_get<_CharT, _InIter>::id; 1586: 1586: 1586: template 1586: class time_get_byname : public time_get<_CharT, _InIter> 1586: { 1586: public: 1586: 1586: typedef _CharT char_type; 1586: typedef _InIter iter_type; 1586: 1586: explicit 1586: time_get_byname(const char*, size_t __refs = 0) 1586: : time_get<_CharT, _InIter>(__refs) { } 1586: 1586: 1586: explicit 1586: time_get_byname(const string& __s, size_t __refs = 0) 1586: : time_get_byname(__s.c_str(), __refs) { } 1586: 1586: 1586: protected: 1586: virtual 1586: ~time_get_byname() { } 1586: }; 1586: 1586: } 1586: # 796 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: template 1586: class time_put : public locale::facet 1586: { 1586: public: 1586: 1586: 1586: 1586: typedef _CharT char_type; 1586: typedef _OutIter iter_type; 1586: 1586: 1586: 1586: static locale::id id; 1586: # 817 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: explicit 1586: time_put(size_t __refs = 0) 1586: : facet(__refs) { } 1586: # 836 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: iter_type 1586: put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, 1586: const _CharT* __beg, const _CharT* __end) const; 1586: # 856 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: iter_type 1586: put(iter_type __s, ios_base& __io, char_type __fill, 1586: const tm* __tm, char __format, char __mod = 0) const 1586: { return this->do_put(__s, __io, __fill, __tm, __format, __mod); } 1586: 1586: protected: 1586: 1586: virtual 1586: ~time_put() 1586: { } 1586: # 883 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual iter_type 1586: do_put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, 1586: char __format, char __mod) const; 1586: }; 1586: 1586: template 1586: locale::id time_put<_CharT, _OutIter>::id; 1586: 1586: 1586: template 1586: class time_put_byname : public time_put<_CharT, _OutIter> 1586: { 1586: public: 1586: 1586: typedef _CharT char_type; 1586: typedef _OutIter iter_type; 1586: 1586: explicit 1586: time_put_byname(const char*, size_t __refs = 0) 1586: : time_put<_CharT, _OutIter>(__refs) 1586: { } 1586: 1586: 1586: explicit 1586: time_put_byname(const string& __s, size_t __refs = 0) 1586: : time_put_byname(__s.c_str(), __refs) { } 1586: 1586: 1586: protected: 1586: virtual 1586: ~time_put_byname() { } 1586: }; 1586: # 928 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: class money_base 1586: { 1586: public: 1586: enum part { none, space, symbol, sign, value }; 1586: struct pattern { char field[4]; }; 1586: 1586: static const pattern _S_default_pattern; 1586: 1586: enum 1586: { 1586: _S_minus, 1586: _S_zero, 1586: _S_end = 11 1586: }; 1586: 1586: 1586: 1586: static const char* _S_atoms; 1586: 1586: 1586: 1586: __attribute__ ((__const__)) static pattern 1586: _S_construct_pattern(char __precedes, char __space, char __posn) throw (); 1586: }; 1586: 1586: template 1586: struct __moneypunct_cache : public locale::facet 1586: { 1586: const char* _M_grouping; 1586: size_t _M_grouping_size; 1586: bool _M_use_grouping; 1586: _CharT _M_decimal_point; 1586: _CharT _M_thousands_sep; 1586: const _CharT* _M_curr_symbol; 1586: size_t _M_curr_symbol_size; 1586: const _CharT* _M_positive_sign; 1586: size_t _M_positive_sign_size; 1586: const _CharT* _M_negative_sign; 1586: size_t _M_negative_sign_size; 1586: int _M_frac_digits; 1586: money_base::pattern _M_pos_format; 1586: money_base::pattern _M_neg_format; 1586: 1586: 1586: 1586: 1586: _CharT _M_atoms[money_base::_S_end]; 1586: 1586: bool _M_allocated; 1586: 1586: __moneypunct_cache(size_t __refs = 0) : facet(__refs), 1586: _M_grouping(0), _M_grouping_size(0), _M_use_grouping(false), 1586: _M_decimal_point(_CharT()), _M_thousands_sep(_CharT()), 1586: _M_curr_symbol(0), _M_curr_symbol_size(0), 1586: _M_positive_sign(0), _M_positive_sign_size(0), 1586: _M_negative_sign(0), _M_negative_sign_size(0), 1586: _M_frac_digits(0), 1586: _M_pos_format(money_base::pattern()), 1586: _M_neg_format(money_base::pattern()), _M_allocated(false) 1586: { } 1586: 1586: ~__moneypunct_cache(); 1586: 1586: void 1586: _M_cache(const locale& __loc); 1586: 1586: private: 1586: __moneypunct_cache& 1586: operator=(const __moneypunct_cache&); 1586: 1586: explicit 1586: __moneypunct_cache(const __moneypunct_cache&); 1586: }; 1586: 1586: template 1586: __moneypunct_cache<_CharT, _Intl>::~__moneypunct_cache() 1586: { 1586: if (_M_allocated) 1586: { 1586: delete [] _M_grouping; 1586: delete [] _M_curr_symbol; 1586: delete [] _M_positive_sign; 1586: delete [] _M_negative_sign; 1586: } 1586: } 1586: 1586: namespace __cxx11 { 1586: # 1023 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: template 1586: class moneypunct : public locale::facet, public money_base 1586: { 1586: public: 1586: 1586: 1586: 1586: typedef _CharT char_type; 1586: typedef basic_string<_CharT> string_type; 1586: 1586: typedef __moneypunct_cache<_CharT, _Intl> __cache_type; 1586: 1586: private: 1586: __cache_type* _M_data; 1586: 1586: public: 1586: 1586: 1586: static const bool intl = _Intl; 1586: 1586: static locale::id id; 1586: # 1052 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: explicit 1586: moneypunct(size_t __refs = 0) 1586: : facet(__refs), _M_data(0) 1586: { _M_initialize_moneypunct(); } 1586: # 1065 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: explicit 1586: moneypunct(__cache_type* __cache, size_t __refs = 0) 1586: : facet(__refs), _M_data(__cache) 1586: { _M_initialize_moneypunct(); } 1586: # 1080 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: explicit 1586: moneypunct(__c_locale __cloc, const char* __s, size_t __refs = 0) 1586: : facet(__refs), _M_data(0) 1586: { _M_initialize_moneypunct(__cloc, __s); } 1586: # 1094 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: char_type 1586: decimal_point() const 1586: { return this->do_decimal_point(); } 1586: # 1107 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: char_type 1586: thousands_sep() const 1586: { return this->do_thousands_sep(); } 1586: # 1137 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: string 1586: grouping() const 1586: { return this->do_grouping(); } 1586: # 1150 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: string_type 1586: curr_symbol() const 1586: { return this->do_curr_symbol(); } 1586: # 1167 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: string_type 1586: positive_sign() const 1586: { return this->do_positive_sign(); } 1586: # 1184 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: string_type 1586: negative_sign() const 1586: { return this->do_negative_sign(); } 1586: # 1200 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: int 1586: frac_digits() const 1586: { return this->do_frac_digits(); } 1586: # 1236 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: pattern 1586: pos_format() const 1586: { return this->do_pos_format(); } 1586: 1586: pattern 1586: neg_format() const 1586: { return this->do_neg_format(); } 1586: 1586: 1586: protected: 1586: 1586: virtual 1586: ~moneypunct(); 1586: # 1258 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual char_type 1586: do_decimal_point() const 1586: { return _M_data->_M_decimal_point; } 1586: # 1270 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual char_type 1586: do_thousands_sep() const 1586: { return _M_data->_M_thousands_sep; } 1586: # 1283 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual string 1586: do_grouping() const 1586: { return _M_data->_M_grouping; } 1586: # 1296 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual string_type 1586: do_curr_symbol() const 1586: { return _M_data->_M_curr_symbol; } 1586: # 1309 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual string_type 1586: do_positive_sign() const 1586: { return _M_data->_M_positive_sign; } 1586: # 1322 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual string_type 1586: do_negative_sign() const 1586: { return _M_data->_M_negative_sign; } 1586: # 1336 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual int 1586: do_frac_digits() const 1586: { return _M_data->_M_frac_digits; } 1586: # 1350 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual pattern 1586: do_pos_format() const 1586: { return _M_data->_M_pos_format; } 1586: # 1364 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual pattern 1586: do_neg_format() const 1586: { return _M_data->_M_neg_format; } 1586: 1586: 1586: void 1586: _M_initialize_moneypunct(__c_locale __cloc = 0, 1586: const char* __name = 0); 1586: }; 1586: 1586: template 1586: locale::id moneypunct<_CharT, _Intl>::id; 1586: 1586: template 1586: const bool moneypunct<_CharT, _Intl>::intl; 1586: 1586: template<> 1586: moneypunct::~moneypunct(); 1586: 1586: template<> 1586: moneypunct::~moneypunct(); 1586: 1586: template<> 1586: void 1586: moneypunct::_M_initialize_moneypunct(__c_locale, const char*); 1586: 1586: template<> 1586: void 1586: moneypunct::_M_initialize_moneypunct(__c_locale, const char*); 1586: 1586: 1586: template<> 1586: moneypunct::~moneypunct(); 1586: 1586: template<> 1586: moneypunct::~moneypunct(); 1586: 1586: template<> 1586: void 1586: moneypunct::_M_initialize_moneypunct(__c_locale, 1586: const char*); 1586: 1586: template<> 1586: void 1586: moneypunct::_M_initialize_moneypunct(__c_locale, 1586: const char*); 1586: 1586: 1586: 1586: template 1586: class moneypunct_byname : public moneypunct<_CharT, _Intl> 1586: { 1586: public: 1586: typedef _CharT char_type; 1586: typedef basic_string<_CharT> string_type; 1586: 1586: static const bool intl = _Intl; 1586: 1586: explicit 1586: moneypunct_byname(const char* __s, size_t __refs = 0) 1586: : moneypunct<_CharT, _Intl>(__refs) 1586: { 1586: if (__builtin_strcmp(__s, "C") != 0 1586: && __builtin_strcmp(__s, "POSIX") != 0) 1586: { 1586: __c_locale __tmp; 1586: this->_S_create_c_locale(__tmp, __s); 1586: this->_M_initialize_moneypunct(__tmp); 1586: this->_S_destroy_c_locale(__tmp); 1586: } 1586: } 1586: 1586: 1586: explicit 1586: moneypunct_byname(const string& __s, size_t __refs = 0) 1586: : moneypunct_byname(__s.c_str(), __refs) { } 1586: 1586: 1586: protected: 1586: virtual 1586: ~moneypunct_byname() { } 1586: }; 1586: 1586: template 1586: const bool moneypunct_byname<_CharT, _Intl>::intl; 1586: 1586: } 1586: 1586: namespace __cxx11 { 1586: # 1467 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: template 1586: class money_get : public locale::facet 1586: { 1586: public: 1586: 1586: 1586: 1586: typedef _CharT char_type; 1586: typedef _InIter iter_type; 1586: typedef basic_string<_CharT> string_type; 1586: 1586: 1586: 1586: static locale::id id; 1586: # 1489 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: explicit 1586: money_get(size_t __refs = 0) : facet(__refs) { } 1586: # 1519 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: iter_type 1586: get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 1586: ios_base::iostate& __err, long double& __units) const 1586: { return this->do_get(__s, __end, __intl, __io, __err, __units); } 1586: # 1550 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: iter_type 1586: get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 1586: ios_base::iostate& __err, string_type& __digits) const 1586: { return this->do_get(__s, __end, __intl, __io, __err, __digits); } 1586: 1586: protected: 1586: 1586: virtual 1586: ~money_get() { } 1586: # 1574 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual iter_type 1586: do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 1586: ios_base::iostate& __err, long double& __units) const; 1586: # 1586 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual iter_type 1586: do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, 1586: ios_base::iostate& __err, string_type& __digits) const; 1586: # 1598 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: template 1586: iter_type 1586: _M_extract(iter_type __s, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, string& __digits) const; 1586: }; 1586: 1586: template 1586: locale::id money_get<_CharT, _InIter>::id; 1586: # 1620 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: template 1586: class money_put : public locale::facet 1586: { 1586: public: 1586: 1586: 1586: typedef _CharT char_type; 1586: typedef _OutIter iter_type; 1586: typedef basic_string<_CharT> string_type; 1586: 1586: 1586: 1586: static locale::id id; 1586: # 1641 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: explicit 1586: money_put(size_t __refs = 0) : facet(__refs) { } 1586: # 1661 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: iter_type 1586: put(iter_type __s, bool __intl, ios_base& __io, 1586: char_type __fill, long double __units) const 1586: { return this->do_put(__s, __intl, __io, __fill, __units); } 1586: # 1684 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: iter_type 1586: put(iter_type __s, bool __intl, ios_base& __io, 1586: char_type __fill, const string_type& __digits) const 1586: { return this->do_put(__s, __intl, __io, __fill, __digits); } 1586: 1586: protected: 1586: 1586: virtual 1586: ~money_put() { } 1586: # 1719 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual iter_type 1586: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 1586: long double __units) const; 1586: # 1743 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual iter_type 1586: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 1586: const string_type& __digits) const; 1586: # 1755 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: template 1586: iter_type 1586: _M_insert(iter_type __s, ios_base& __io, char_type __fill, 1586: const string_type& __digits) const; 1586: }; 1586: 1586: template 1586: locale::id money_put<_CharT, _OutIter>::id; 1586: 1586: } 1586: 1586: 1586: 1586: 1586: 1586: struct messages_base 1586: { 1586: typedef int catalog; 1586: }; 1586: 1586: namespace __cxx11 { 1586: # 1798 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: template 1586: class messages : public locale::facet, public messages_base 1586: { 1586: public: 1586: 1586: 1586: 1586: typedef _CharT char_type; 1586: typedef basic_string<_CharT> string_type; 1586: 1586: 1586: protected: 1586: 1586: 1586: __c_locale _M_c_locale_messages; 1586: const char* _M_name_messages; 1586: 1586: public: 1586: 1586: static locale::id id; 1586: # 1826 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: explicit 1586: messages(size_t __refs = 0); 1586: # 1840 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: explicit 1586: messages(__c_locale __cloc, const char* __s, size_t __refs = 0); 1586: # 1853 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: catalog 1586: open(const basic_string& __s, const locale& __loc) const 1586: { return this->do_open(__s, __loc); } 1586: # 1871 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: catalog 1586: open(const basic_string&, const locale&, const char*) const; 1586: # 1889 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: string_type 1586: get(catalog __c, int __set, int __msgid, const string_type& __s) const 1586: { return this->do_get(__c, __set, __msgid, __s); } 1586: # 1900 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: void 1586: close(catalog __c) const 1586: { return this->do_close(__c); } 1586: 1586: protected: 1586: 1586: virtual 1586: ~messages(); 1586: # 1920 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual catalog 1586: do_open(const basic_string&, const locale&) const; 1586: # 1939 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 3 1586: virtual string_type 1586: do_get(catalog, int, int, const string_type& __dfault) const; 1586: 1586: 1586: 1586: 1586: 1586: 1586: virtual void 1586: do_close(catalog) const; 1586: 1586: 1586: char* 1586: _M_convert_to_char(const string_type& __msg) const 1586: { 1586: 1586: return reinterpret_cast(const_cast<_CharT*>(__msg.c_str())); 1586: } 1586: 1586: 1586: string_type 1586: _M_convert_from_char(char*) const 1586: { 1586: 1586: return string_type(); 1586: } 1586: }; 1586: 1586: template 1586: locale::id messages<_CharT>::id; 1586: 1586: 1586: template<> 1586: string 1586: messages::do_get(catalog, int, int, const string&) const; 1586: 1586: 1586: template<> 1586: wstring 1586: messages::do_get(catalog, int, int, const wstring&) const; 1586: 1586: 1586: 1586: template 1586: class messages_byname : public messages<_CharT> 1586: { 1586: public: 1586: typedef _CharT char_type; 1586: typedef basic_string<_CharT> string_type; 1586: 1586: explicit 1586: messages_byname(const char* __s, size_t __refs = 0); 1586: 1586: 1586: explicit 1586: messages_byname(const string& __s, size_t __refs = 0) 1586: : messages_byname(__s.c_str(), __refs) { } 1586: 1586: 1586: protected: 1586: virtual 1586: ~messages_byname() 1586: { } 1586: }; 1586: 1586: } 1586: 1586: 1586: } 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/messages_members.h" 1 3 1586: # 36 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/messages_members.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/libintl.h" 1 3 1586: # 34 "/usr/mipsel-linux-gnu/include/libintl.h" 3 1586: extern "C" { 1586: 1586: 1586: 1586: 1586: extern char *gettext (const char *__msgid) 1586: throw () __attribute__ ((__format_arg__ (1))); 1586: 1586: 1586: 1586: extern char *dgettext (const char *__domainname, const char *__msgid) 1586: throw () __attribute__ ((__format_arg__ (2))); 1586: extern char *__dgettext (const char *__domainname, const char *__msgid) 1586: throw () __attribute__ ((__format_arg__ (2))); 1586: 1586: 1586: 1586: extern char *dcgettext (const char *__domainname, 1586: const char *__msgid, int __category) 1586: throw () __attribute__ ((__format_arg__ (2))); 1586: extern char *__dcgettext (const char *__domainname, 1586: const char *__msgid, int __category) 1586: throw () __attribute__ ((__format_arg__ (2))); 1586: 1586: 1586: 1586: 1586: extern char *ngettext (const char *__msgid1, const char *__msgid2, 1586: unsigned long int __n) 1586: throw () __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2))); 1586: 1586: 1586: 1586: extern char *dngettext (const char *__domainname, const char *__msgid1, 1586: const char *__msgid2, unsigned long int __n) 1586: throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); 1586: 1586: 1586: 1586: extern char *dcngettext (const char *__domainname, const char *__msgid1, 1586: const char *__msgid2, unsigned long int __n, 1586: int __category) 1586: throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); 1586: 1586: 1586: 1586: 1586: 1586: extern char *textdomain (const char *__domainname) throw (); 1586: 1586: 1586: 1586: extern char *bindtextdomain (const char *__domainname, 1586: const char *__dirname) throw (); 1586: 1586: 1586: 1586: extern char *bind_textdomain_codeset (const char *__domainname, 1586: const char *__codeset) throw (); 1586: # 121 "/usr/mipsel-linux-gnu/include/libintl.h" 3 1586: } 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/mipsel-linux-gnu/bits/messages_members.h" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: template 1586: messages<_CharT>::messages(size_t __refs) 1586: : facet(__refs), _M_c_locale_messages(_S_get_c_locale()), 1586: _M_name_messages(_S_get_c_name()) 1586: { } 1586: 1586: template 1586: messages<_CharT>::messages(__c_locale __cloc, const char* __s, 1586: size_t __refs) 1586: : facet(__refs), _M_c_locale_messages(0), _M_name_messages(0) 1586: { 1586: if (__builtin_strcmp(__s, _S_get_c_name()) != 0) 1586: { 1586: const size_t __len = __builtin_strlen(__s) + 1; 1586: char* __tmp = new char[__len]; 1586: __builtin_memcpy(__tmp, __s, __len); 1586: _M_name_messages = __tmp; 1586: } 1586: else 1586: _M_name_messages = _S_get_c_name(); 1586: 1586: 1586: _M_c_locale_messages = _S_clone_c_locale(__cloc); 1586: } 1586: 1586: template 1586: typename messages<_CharT>::catalog 1586: messages<_CharT>::open(const basic_string& __s, const locale& __loc, 1586: const char* __dir) const 1586: { 1586: bindtextdomain(__s.c_str(), __dir); 1586: return this->do_open(__s, __loc); 1586: } 1586: 1586: 1586: template 1586: messages<_CharT>::~messages() 1586: { 1586: if (_M_name_messages != _S_get_c_name()) 1586: delete [] _M_name_messages; 1586: _S_destroy_c_locale(_M_c_locale_messages); 1586: } 1586: 1586: template 1586: typename messages<_CharT>::catalog 1586: messages<_CharT>::do_open(const basic_string& __s, 1586: const locale&) const 1586: { 1586: 1586: 1586: textdomain(__s.c_str()); 1586: return 0; 1586: } 1586: 1586: template 1586: void 1586: messages<_CharT>::do_close(catalog) const 1586: { } 1586: 1586: 1586: template 1586: messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) 1586: : messages<_CharT>(__refs) 1586: { 1586: if (this->_M_name_messages != locale::facet::_S_get_c_name()) 1586: { 1586: delete [] this->_M_name_messages; 1586: if (__builtin_strcmp(__s, locale::facet::_S_get_c_name()) != 0) 1586: { 1586: const size_t __len = __builtin_strlen(__s) + 1; 1586: char* __tmp = new char[__len]; 1586: __builtin_memcpy(__tmp, __s, __len); 1586: this->_M_name_messages = __tmp; 1586: } 1586: else 1586: this->_M_name_messages = locale::facet::_S_get_c_name(); 1586: } 1586: 1586: if (__builtin_strcmp(__s, "C") != 0 1586: && __builtin_strcmp(__s, "POSIX") != 0) 1586: { 1586: this->_S_destroy_c_locale(this->_M_c_locale_messages); 1586: this->_S_create_c_locale(this->_M_c_locale_messages, __s); 1586: } 1586: } 1586: 1586: 1586: template<> 1586: typename messages::catalog 1586: messages::do_open(const basic_string&, 1586: const locale&) const; 1586: 1586: template<> 1586: void 1586: messages::do_close(catalog) const; 1586: 1586: 1586: template<> 1586: typename messages::catalog 1586: messages::do_open(const basic_string&, 1586: const locale&) const; 1586: 1586: template<> 1586: void 1586: messages::do_close(catalog) const; 1586: 1586: 1586: 1586: } 1586: # 2011 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 2 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/codecvt.h" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/bits/codecvt.h" 3 1586: 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/bits/codecvt.h" 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: class codecvt_base 1586: { 1586: public: 1586: enum result 1586: { 1586: ok, 1586: partial, 1586: error, 1586: noconv 1586: }; 1586: }; 1586: # 67 "/usr/mipsel-linux-gnu/include/c++/9/bits/codecvt.h" 3 1586: template 1586: class __codecvt_abstract_base 1586: : public locale::facet, public codecvt_base 1586: { 1586: public: 1586: 1586: typedef codecvt_base::result result; 1586: typedef _InternT intern_type; 1586: typedef _ExternT extern_type; 1586: typedef _StateT state_type; 1586: # 115 "/usr/mipsel-linux-gnu/include/c++/9/bits/codecvt.h" 3 1586: result 1586: out(state_type& __state, const intern_type* __from, 1586: const intern_type* __from_end, const intern_type*& __from_next, 1586: extern_type* __to, extern_type* __to_end, 1586: extern_type*& __to_next) const 1586: { 1586: return this->do_out(__state, __from, __from_end, __from_next, 1586: __to, __to_end, __to_next); 1586: } 1586: # 154 "/usr/mipsel-linux-gnu/include/c++/9/bits/codecvt.h" 3 1586: result 1586: unshift(state_type& __state, extern_type* __to, extern_type* __to_end, 1586: extern_type*& __to_next) const 1586: { return this->do_unshift(__state, __to,__to_end,__to_next); } 1586: # 195 "/usr/mipsel-linux-gnu/include/c++/9/bits/codecvt.h" 3 1586: result 1586: in(state_type& __state, const extern_type* __from, 1586: const extern_type* __from_end, const extern_type*& __from_next, 1586: intern_type* __to, intern_type* __to_end, 1586: intern_type*& __to_next) const 1586: { 1586: return this->do_in(__state, __from, __from_end, __from_next, 1586: __to, __to_end, __to_next); 1586: } 1586: 1586: int 1586: encoding() const throw() 1586: { return this->do_encoding(); } 1586: 1586: bool 1586: always_noconv() const throw() 1586: { return this->do_always_noconv(); } 1586: 1586: int 1586: length(state_type& __state, const extern_type* __from, 1586: const extern_type* __end, size_t __max) const 1586: { return this->do_length(__state, __from, __end, __max); } 1586: 1586: int 1586: max_length() const throw() 1586: { return this->do_max_length(); } 1586: 1586: protected: 1586: explicit 1586: __codecvt_abstract_base(size_t __refs = 0) : locale::facet(__refs) { } 1586: 1586: virtual 1586: ~__codecvt_abstract_base() { } 1586: # 236 "/usr/mipsel-linux-gnu/include/c++/9/bits/codecvt.h" 3 1586: virtual result 1586: do_out(state_type& __state, const intern_type* __from, 1586: const intern_type* __from_end, const intern_type*& __from_next, 1586: extern_type* __to, extern_type* __to_end, 1586: extern_type*& __to_next) const = 0; 1586: 1586: virtual result 1586: do_unshift(state_type& __state, extern_type* __to, 1586: extern_type* __to_end, extern_type*& __to_next) const = 0; 1586: 1586: virtual result 1586: do_in(state_type& __state, const extern_type* __from, 1586: const extern_type* __from_end, const extern_type*& __from_next, 1586: intern_type* __to, intern_type* __to_end, 1586: intern_type*& __to_next) const = 0; 1586: 1586: virtual int 1586: do_encoding() const throw() = 0; 1586: 1586: virtual bool 1586: do_always_noconv() const throw() = 0; 1586: 1586: virtual int 1586: do_length(state_type&, const extern_type* __from, 1586: const extern_type* __end, size_t __max) const = 0; 1586: 1586: virtual int 1586: do_max_length() const throw() = 0; 1586: }; 1586: # 273 "/usr/mipsel-linux-gnu/include/c++/9/bits/codecvt.h" 3 1586: template 1586: class codecvt 1586: : public __codecvt_abstract_base<_InternT, _ExternT, _StateT> 1586: { 1586: public: 1586: 1586: typedef codecvt_base::result result; 1586: typedef _InternT intern_type; 1586: typedef _ExternT extern_type; 1586: typedef _StateT state_type; 1586: 1586: protected: 1586: __c_locale _M_c_locale_codecvt; 1586: 1586: public: 1586: static locale::id id; 1586: 1586: explicit 1586: codecvt(size_t __refs = 0) 1586: : __codecvt_abstract_base<_InternT, _ExternT, _StateT> (__refs), 1586: _M_c_locale_codecvt(0) 1586: { } 1586: 1586: explicit 1586: codecvt(__c_locale __cloc, size_t __refs = 0); 1586: 1586: protected: 1586: virtual 1586: ~codecvt() { } 1586: 1586: virtual result 1586: do_out(state_type& __state, const intern_type* __from, 1586: const intern_type* __from_end, const intern_type*& __from_next, 1586: extern_type* __to, extern_type* __to_end, 1586: extern_type*& __to_next) const; 1586: 1586: virtual result 1586: do_unshift(state_type& __state, extern_type* __to, 1586: extern_type* __to_end, extern_type*& __to_next) const; 1586: 1586: virtual result 1586: do_in(state_type& __state, const extern_type* __from, 1586: const extern_type* __from_end, const extern_type*& __from_next, 1586: intern_type* __to, intern_type* __to_end, 1586: intern_type*& __to_next) const; 1586: 1586: virtual int 1586: do_encoding() const throw(); 1586: 1586: virtual bool 1586: do_always_noconv() const throw(); 1586: 1586: virtual int 1586: do_length(state_type&, const extern_type* __from, 1586: const extern_type* __end, size_t __max) const; 1586: 1586: virtual int 1586: do_max_length() const throw(); 1586: }; 1586: 1586: template 1586: locale::id codecvt<_InternT, _ExternT, _StateT>::id; 1586: 1586: 1586: template<> 1586: class codecvt 1586: : public __codecvt_abstract_base 1586: { 1586: friend class messages; 1586: 1586: public: 1586: 1586: typedef char intern_type; 1586: typedef char extern_type; 1586: typedef mbstate_t state_type; 1586: 1586: protected: 1586: __c_locale _M_c_locale_codecvt; 1586: 1586: public: 1586: static locale::id id; 1586: 1586: explicit 1586: codecvt(size_t __refs = 0); 1586: 1586: explicit 1586: codecvt(__c_locale __cloc, size_t __refs = 0); 1586: 1586: protected: 1586: virtual 1586: ~codecvt(); 1586: 1586: virtual result 1586: do_out(state_type& __state, const intern_type* __from, 1586: const intern_type* __from_end, const intern_type*& __from_next, 1586: extern_type* __to, extern_type* __to_end, 1586: extern_type*& __to_next) const; 1586: 1586: virtual result 1586: do_unshift(state_type& __state, extern_type* __to, 1586: extern_type* __to_end, extern_type*& __to_next) const; 1586: 1586: virtual result 1586: do_in(state_type& __state, const extern_type* __from, 1586: const extern_type* __from_end, const extern_type*& __from_next, 1586: intern_type* __to, intern_type* __to_end, 1586: intern_type*& __to_next) const; 1586: 1586: virtual int 1586: do_encoding() const throw(); 1586: 1586: virtual bool 1586: do_always_noconv() const throw(); 1586: 1586: virtual int 1586: do_length(state_type&, const extern_type* __from, 1586: const extern_type* __end, size_t __max) const; 1586: 1586: virtual int 1586: do_max_length() const throw(); 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template<> 1586: class codecvt 1586: : public __codecvt_abstract_base 1586: { 1586: friend class messages; 1586: 1586: public: 1586: 1586: typedef wchar_t intern_type; 1586: typedef char extern_type; 1586: typedef mbstate_t state_type; 1586: 1586: protected: 1586: __c_locale _M_c_locale_codecvt; 1586: 1586: public: 1586: static locale::id id; 1586: 1586: explicit 1586: codecvt(size_t __refs = 0); 1586: 1586: explicit 1586: codecvt(__c_locale __cloc, size_t __refs = 0); 1586: 1586: protected: 1586: virtual 1586: ~codecvt(); 1586: 1586: virtual result 1586: do_out(state_type& __state, const intern_type* __from, 1586: const intern_type* __from_end, const intern_type*& __from_next, 1586: extern_type* __to, extern_type* __to_end, 1586: extern_type*& __to_next) const; 1586: 1586: virtual result 1586: do_unshift(state_type& __state, 1586: extern_type* __to, extern_type* __to_end, 1586: extern_type*& __to_next) const; 1586: 1586: virtual result 1586: do_in(state_type& __state, 1586: const extern_type* __from, const extern_type* __from_end, 1586: const extern_type*& __from_next, 1586: intern_type* __to, intern_type* __to_end, 1586: intern_type*& __to_next) const; 1586: 1586: virtual 1586: int do_encoding() const throw(); 1586: 1586: virtual 1586: bool do_always_noconv() const throw(); 1586: 1586: virtual 1586: int do_length(state_type&, const extern_type* __from, 1586: const extern_type* __end, size_t __max) const; 1586: 1586: virtual int 1586: do_max_length() const throw(); 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template<> 1586: class codecvt 1586: : public __codecvt_abstract_base 1586: { 1586: public: 1586: 1586: typedef char16_t intern_type; 1586: typedef char extern_type; 1586: typedef mbstate_t state_type; 1586: 1586: public: 1586: static locale::id id; 1586: 1586: explicit 1586: codecvt(size_t __refs = 0) 1586: : __codecvt_abstract_base(__refs) { } 1586: 1586: protected: 1586: virtual 1586: ~codecvt(); 1586: 1586: virtual result 1586: do_out(state_type& __state, const intern_type* __from, 1586: const intern_type* __from_end, const intern_type*& __from_next, 1586: extern_type* __to, extern_type* __to_end, 1586: extern_type*& __to_next) const; 1586: 1586: virtual result 1586: do_unshift(state_type& __state, 1586: extern_type* __to, extern_type* __to_end, 1586: extern_type*& __to_next) const; 1586: 1586: virtual result 1586: do_in(state_type& __state, 1586: const extern_type* __from, const extern_type* __from_end, 1586: const extern_type*& __from_next, 1586: intern_type* __to, intern_type* __to_end, 1586: intern_type*& __to_next) const; 1586: 1586: virtual 1586: int do_encoding() const throw(); 1586: 1586: virtual 1586: bool do_always_noconv() const throw(); 1586: 1586: virtual 1586: int do_length(state_type&, const extern_type* __from, 1586: const extern_type* __end, size_t __max) const; 1586: 1586: virtual int 1586: do_max_length() const throw(); 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: template<> 1586: class codecvt 1586: : public __codecvt_abstract_base 1586: { 1586: public: 1586: 1586: typedef char32_t intern_type; 1586: typedef char extern_type; 1586: typedef mbstate_t state_type; 1586: 1586: public: 1586: static locale::id id; 1586: 1586: explicit 1586: codecvt(size_t __refs = 0) 1586: : __codecvt_abstract_base(__refs) { } 1586: 1586: protected: 1586: virtual 1586: ~codecvt(); 1586: 1586: virtual result 1586: do_out(state_type& __state, const intern_type* __from, 1586: const intern_type* __from_end, const intern_type*& __from_next, 1586: extern_type* __to, extern_type* __to_end, 1586: extern_type*& __to_next) const; 1586: 1586: virtual result 1586: do_unshift(state_type& __state, 1586: extern_type* __to, extern_type* __to_end, 1586: extern_type*& __to_next) const; 1586: 1586: virtual result 1586: do_in(state_type& __state, 1586: const extern_type* __from, const extern_type* __from_end, 1586: const extern_type*& __from_next, 1586: intern_type* __to, intern_type* __to_end, 1586: intern_type*& __to_next) const; 1586: 1586: virtual 1586: int do_encoding() const throw(); 1586: 1586: virtual 1586: bool do_always_noconv() const throw(); 1586: 1586: virtual 1586: int do_length(state_type&, const extern_type* __from, 1586: const extern_type* __end, size_t __max) const; 1586: 1586: virtual int 1586: do_max_length() const throw(); 1586: }; 1586: # 695 "/usr/mipsel-linux-gnu/include/c++/9/bits/codecvt.h" 3 1586: template 1586: class codecvt_byname : public codecvt<_InternT, _ExternT, _StateT> 1586: { 1586: public: 1586: explicit 1586: codecvt_byname(const char* __s, size_t __refs = 0) 1586: : codecvt<_InternT, _ExternT, _StateT>(__refs) 1586: { 1586: if (__builtin_strcmp(__s, "C") != 0 1586: && __builtin_strcmp(__s, "POSIX") != 0) 1586: { 1586: this->_S_destroy_c_locale(this->_M_c_locale_codecvt); 1586: this->_S_create_c_locale(this->_M_c_locale_codecvt, __s); 1586: } 1586: } 1586: 1586: 1586: explicit 1586: codecvt_byname(const string& __s, size_t __refs = 0) 1586: : codecvt_byname(__s.c_str(), __refs) { } 1586: 1586: 1586: protected: 1586: virtual 1586: ~codecvt_byname() { } 1586: }; 1586: 1586: 1586: template<> 1586: class codecvt_byname 1586: : public codecvt 1586: { 1586: public: 1586: explicit 1586: codecvt_byname(const char*, size_t __refs = 0) 1586: : codecvt(__refs) { } 1586: 1586: explicit 1586: codecvt_byname(const string& __s, size_t __refs = 0) 1586: : codecvt_byname(__s.c_str(), __refs) { } 1586: 1586: protected: 1586: virtual 1586: ~codecvt_byname() { } 1586: }; 1586: 1586: template<> 1586: class codecvt_byname 1586: : public codecvt 1586: { 1586: public: 1586: explicit 1586: codecvt_byname(const char*, size_t __refs = 0) 1586: : codecvt(__refs) { } 1586: 1586: explicit 1586: codecvt_byname(const string& __s, size_t __refs = 0) 1586: : codecvt_byname(__s.c_str(), __refs) { } 1586: 1586: protected: 1586: virtual 1586: ~codecvt_byname() { } 1586: }; 1586: # 802 "/usr/mipsel-linux-gnu/include/c++/9/bits/codecvt.h" 3 1586: extern template class codecvt_byname; 1586: 1586: extern template 1586: const codecvt& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: 1586: extern template class codecvt_byname; 1586: 1586: extern template 1586: const codecvt& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: 1586: 1586: extern template class codecvt_byname; 1586: extern template class codecvt_byname; 1586: # 837 "/usr/mipsel-linux-gnu/include/c++/9/bits/codecvt.h" 3 1586: 1586: } 1586: # 2014 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 2 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.tcc" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.tcc" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.tcc" 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: template 1586: struct __use_cache<__moneypunct_cache<_CharT, _Intl> > 1586: { 1586: const __moneypunct_cache<_CharT, _Intl>* 1586: operator() (const locale& __loc) const 1586: { 1586: const size_t __i = moneypunct<_CharT, _Intl>::id._M_id(); 1586: const locale::facet** __caches = __loc._M_impl->_M_caches; 1586: if (!__caches[__i]) 1586: { 1586: __moneypunct_cache<_CharT, _Intl>* __tmp = 0; 1586: try 1586: { 1586: __tmp = new __moneypunct_cache<_CharT, _Intl>; 1586: __tmp->_M_cache(__loc); 1586: } 1586: catch(...) 1586: { 1586: delete __tmp; 1586: throw; 1586: } 1586: __loc._M_impl->_M_install_cache(__tmp, __i); 1586: } 1586: return static_cast< 1586: const __moneypunct_cache<_CharT, _Intl>*>(__caches[__i]); 1586: } 1586: }; 1586: 1586: template 1586: void 1586: __moneypunct_cache<_CharT, _Intl>::_M_cache(const locale& __loc) 1586: { 1586: const moneypunct<_CharT, _Intl>& __mp = 1586: use_facet >(__loc); 1586: 1586: _M_decimal_point = __mp.decimal_point(); 1586: _M_thousands_sep = __mp.thousands_sep(); 1586: _M_frac_digits = __mp.frac_digits(); 1586: 1586: char* __grouping = 0; 1586: _CharT* __curr_symbol = 0; 1586: _CharT* __positive_sign = 0; 1586: _CharT* __negative_sign = 0; 1586: try 1586: { 1586: const string& __g = __mp.grouping(); 1586: _M_grouping_size = __g.size(); 1586: __grouping = new char[_M_grouping_size]; 1586: __g.copy(__grouping, _M_grouping_size); 1586: _M_use_grouping = (_M_grouping_size 1586: && static_cast(__grouping[0]) > 0 1586: && (__grouping[0] 1586: != __gnu_cxx::__numeric_traits::__max)); 1586: 1586: const basic_string<_CharT>& __cs = __mp.curr_symbol(); 1586: _M_curr_symbol_size = __cs.size(); 1586: __curr_symbol = new _CharT[_M_curr_symbol_size]; 1586: __cs.copy(__curr_symbol, _M_curr_symbol_size); 1586: 1586: const basic_string<_CharT>& __ps = __mp.positive_sign(); 1586: _M_positive_sign_size = __ps.size(); 1586: __positive_sign = new _CharT[_M_positive_sign_size]; 1586: __ps.copy(__positive_sign, _M_positive_sign_size); 1586: 1586: const basic_string<_CharT>& __ns = __mp.negative_sign(); 1586: _M_negative_sign_size = __ns.size(); 1586: __negative_sign = new _CharT[_M_negative_sign_size]; 1586: __ns.copy(__negative_sign, _M_negative_sign_size); 1586: 1586: _M_pos_format = __mp.pos_format(); 1586: _M_neg_format = __mp.neg_format(); 1586: 1586: const ctype<_CharT>& __ct = use_facet >(__loc); 1586: __ct.widen(money_base::_S_atoms, 1586: money_base::_S_atoms + money_base::_S_end, _M_atoms); 1586: 1586: _M_grouping = __grouping; 1586: _M_curr_symbol = __curr_symbol; 1586: _M_positive_sign = __positive_sign; 1586: _M_negative_sign = __negative_sign; 1586: _M_allocated = true; 1586: } 1586: catch(...) 1586: { 1586: delete [] __grouping; 1586: delete [] __curr_symbol; 1586: delete [] __positive_sign; 1586: delete [] __negative_sign; 1586: throw; 1586: } 1586: } 1586: 1586: namespace __cxx11 { 1586: 1586: template 1586: template 1586: _InIter 1586: money_get<_CharT, _InIter>:: 1586: _M_extract(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, string& __units) const 1586: { 1586: typedef char_traits<_CharT> __traits_type; 1586: typedef typename string_type::size_type size_type; 1586: typedef money_base::part part; 1586: typedef __moneypunct_cache<_CharT, _Intl> __cache_type; 1586: 1586: const locale& __loc = __io._M_getloc(); 1586: const ctype<_CharT>& __ctype = use_facet >(__loc); 1586: 1586: __use_cache<__cache_type> __uc; 1586: const __cache_type* __lc = __uc(__loc); 1586: const char_type* __lit = __lc->_M_atoms; 1586: 1586: 1586: bool __negative = false; 1586: 1586: size_type __sign_size = 0; 1586: 1586: const bool __mandatory_sign = (__lc->_M_positive_sign_size 1586: && __lc->_M_negative_sign_size); 1586: 1586: string __grouping_tmp; 1586: if (__lc->_M_use_grouping) 1586: __grouping_tmp.reserve(32); 1586: 1586: int __last_pos = 0; 1586: 1586: int __n = 0; 1586: 1586: bool __testvalid = true; 1586: 1586: bool __testdecfound = false; 1586: 1586: 1586: string __res; 1586: __res.reserve(32); 1586: 1586: const char_type* __lit_zero = __lit + money_base::_S_zero; 1586: const money_base::pattern __p = __lc->_M_neg_format; 1586: for (int __i = 0; __i < 4 && __testvalid; ++__i) 1586: { 1586: const part __which = static_cast(__p.field[__i]); 1586: switch (__which) 1586: { 1586: case money_base::symbol: 1586: 1586: 1586: 1586: 1586: if (__io.flags() & ios_base::showbase || __sign_size > 1 1586: || __i == 0 1586: || (__i == 1 && (__mandatory_sign 1586: || (static_cast(__p.field[0]) 1586: == money_base::sign) 1586: || (static_cast(__p.field[2]) 1586: == money_base::space))) 1586: || (__i == 2 && ((static_cast(__p.field[3]) 1586: == money_base::value) 1586: || (__mandatory_sign 1586: && (static_cast(__p.field[3]) 1586: == money_base::sign))))) 1586: { 1586: const size_type __len = __lc->_M_curr_symbol_size; 1586: size_type __j = 0; 1586: for (; __beg != __end && __j < __len 1586: && *__beg == __lc->_M_curr_symbol[__j]; 1586: ++__beg, (void)++__j); 1586: if (__j != __len 1586: && (__j || __io.flags() & ios_base::showbase)) 1586: __testvalid = false; 1586: } 1586: break; 1586: case money_base::sign: 1586: 1586: if (__lc->_M_positive_sign_size && __beg != __end 1586: && *__beg == __lc->_M_positive_sign[0]) 1586: { 1586: __sign_size = __lc->_M_positive_sign_size; 1586: ++__beg; 1586: } 1586: else if (__lc->_M_negative_sign_size && __beg != __end 1586: && *__beg == __lc->_M_negative_sign[0]) 1586: { 1586: __negative = true; 1586: __sign_size = __lc->_M_negative_sign_size; 1586: ++__beg; 1586: } 1586: else if (__lc->_M_positive_sign_size 1586: && !__lc->_M_negative_sign_size) 1586: 1586: 1586: __negative = true; 1586: else if (__mandatory_sign) 1586: __testvalid = false; 1586: break; 1586: case money_base::value: 1586: 1586: 1586: for (; __beg != __end; ++__beg) 1586: { 1586: const char_type __c = *__beg; 1586: const char_type* __q = __traits_type::find(__lit_zero, 1586: 10, __c); 1586: if (__q != 0) 1586: { 1586: __res += money_base::_S_atoms[__q - __lit]; 1586: ++__n; 1586: } 1586: else if (__c == __lc->_M_decimal_point 1586: && !__testdecfound) 1586: { 1586: if (__lc->_M_frac_digits <= 0) 1586: break; 1586: 1586: __last_pos = __n; 1586: __n = 0; 1586: __testdecfound = true; 1586: } 1586: else if (__lc->_M_use_grouping 1586: && __c == __lc->_M_thousands_sep 1586: && !__testdecfound) 1586: { 1586: if (__n) 1586: { 1586: 1586: __grouping_tmp += static_cast(__n); 1586: __n = 0; 1586: } 1586: else 1586: { 1586: __testvalid = false; 1586: break; 1586: } 1586: } 1586: else 1586: break; 1586: } 1586: if (__res.empty()) 1586: __testvalid = false; 1586: break; 1586: case money_base::space: 1586: 1586: if (__beg != __end && __ctype.is(ctype_base::space, *__beg)) 1586: ++__beg; 1586: else 1586: __testvalid = false; 1586: 1586: case money_base::none: 1586: 1586: if (__i != 3) 1586: for (; __beg != __end 1586: && __ctype.is(ctype_base::space, *__beg); ++__beg); 1586: break; 1586: } 1586: } 1586: 1586: 1586: if (__sign_size > 1 && __testvalid) 1586: { 1586: const char_type* __sign = __negative ? __lc->_M_negative_sign 1586: : __lc->_M_positive_sign; 1586: size_type __i = 1; 1586: for (; __beg != __end && __i < __sign_size 1586: && *__beg == __sign[__i]; ++__beg, (void)++__i); 1586: 1586: if (__i != __sign_size) 1586: __testvalid = false; 1586: } 1586: 1586: if (__testvalid) 1586: { 1586: 1586: if (__res.size() > 1) 1586: { 1586: const size_type __first = __res.find_first_not_of('0'); 1586: const bool __only_zeros = __first == string::npos; 1586: if (__first) 1586: __res.erase(0, __only_zeros ? __res.size() - 1 : __first); 1586: } 1586: 1586: 1586: if (__negative && __res[0] != '0') 1586: __res.insert(__res.begin(), '-'); 1586: 1586: 1586: if (__grouping_tmp.size()) 1586: { 1586: 1586: __grouping_tmp += static_cast(__testdecfound ? __last_pos 1586: : __n); 1586: if (!std::__verify_grouping(__lc->_M_grouping, 1586: __lc->_M_grouping_size, 1586: __grouping_tmp)) 1586: __err |= ios_base::failbit; 1586: } 1586: 1586: 1586: if (__testdecfound && __n != __lc->_M_frac_digits) 1586: __testvalid = false; 1586: } 1586: 1586: 1586: if (!__testvalid) 1586: __err |= ios_base::failbit; 1586: else 1586: __units.swap(__res); 1586: 1586: 1586: if (__beg == __end) 1586: __err |= ios_base::eofbit; 1586: return __beg; 1586: } 1586: # 368 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.tcc" 3 1586: template 1586: _InIter 1586: money_get<_CharT, _InIter>:: 1586: do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io, 1586: ios_base::iostate& __err, long double& __units) const 1586: { 1586: string __str; 1586: __beg = __intl ? _M_extract(__beg, __end, __io, __err, __str) 1586: : _M_extract(__beg, __end, __io, __err, __str); 1586: std::__convert_to_v(__str.c_str(), __units, __err, _S_get_c_locale()); 1586: return __beg; 1586: } 1586: 1586: template 1586: _InIter 1586: money_get<_CharT, _InIter>:: 1586: do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io, 1586: ios_base::iostate& __err, string_type& __digits) const 1586: { 1586: typedef typename string::size_type size_type; 1586: 1586: const locale& __loc = __io._M_getloc(); 1586: const ctype<_CharT>& __ctype = use_facet >(__loc); 1586: 1586: string __str; 1586: __beg = __intl ? _M_extract(__beg, __end, __io, __err, __str) 1586: : _M_extract(__beg, __end, __io, __err, __str); 1586: const size_type __len = __str.size(); 1586: if (__len) 1586: { 1586: __digits.resize(__len); 1586: __ctype.widen(__str.data(), __str.data() + __len, &__digits[0]); 1586: } 1586: return __beg; 1586: } 1586: 1586: template 1586: template 1586: _OutIter 1586: money_put<_CharT, _OutIter>:: 1586: _M_insert(iter_type __s, ios_base& __io, char_type __fill, 1586: const string_type& __digits) const 1586: { 1586: typedef typename string_type::size_type size_type; 1586: typedef money_base::part part; 1586: typedef __moneypunct_cache<_CharT, _Intl> __cache_type; 1586: 1586: const locale& __loc = __io._M_getloc(); 1586: const ctype<_CharT>& __ctype = use_facet >(__loc); 1586: 1586: __use_cache<__cache_type> __uc; 1586: const __cache_type* __lc = __uc(__loc); 1586: const char_type* __lit = __lc->_M_atoms; 1586: 1586: 1586: 1586: const char_type* __beg = __digits.data(); 1586: 1586: money_base::pattern __p; 1586: const char_type* __sign; 1586: size_type __sign_size; 1586: if (!(*__beg == __lit[money_base::_S_minus])) 1586: { 1586: __p = __lc->_M_pos_format; 1586: __sign = __lc->_M_positive_sign; 1586: __sign_size = __lc->_M_positive_sign_size; 1586: } 1586: else 1586: { 1586: __p = __lc->_M_neg_format; 1586: __sign = __lc->_M_negative_sign; 1586: __sign_size = __lc->_M_negative_sign_size; 1586: if (__digits.size()) 1586: ++__beg; 1586: } 1586: 1586: 1586: size_type __len = __ctype.scan_not(ctype_base::digit, __beg, 1586: __beg + __digits.size()) - __beg; 1586: if (__len) 1586: { 1586: 1586: 1586: 1586: string_type __value; 1586: __value.reserve(2 * __len); 1586: 1586: 1586: 1586: long __paddec = __len - __lc->_M_frac_digits; 1586: if (__paddec > 0) 1586: { 1586: if (__lc->_M_frac_digits < 0) 1586: __paddec = __len; 1586: if (__lc->_M_grouping_size) 1586: { 1586: __value.assign(2 * __paddec, char_type()); 1586: _CharT* __vend = 1586: std::__add_grouping(&__value[0], __lc->_M_thousands_sep, 1586: __lc->_M_grouping, 1586: __lc->_M_grouping_size, 1586: __beg, __beg + __paddec); 1586: __value.erase(__vend - &__value[0]); 1586: } 1586: else 1586: __value.assign(__beg, __paddec); 1586: } 1586: 1586: 1586: if (__lc->_M_frac_digits > 0) 1586: { 1586: __value += __lc->_M_decimal_point; 1586: if (__paddec >= 0) 1586: __value.append(__beg + __paddec, __lc->_M_frac_digits); 1586: else 1586: { 1586: 1586: __value.append(-__paddec, __lit[money_base::_S_zero]); 1586: __value.append(__beg, __len); 1586: } 1586: } 1586: 1586: 1586: const ios_base::fmtflags __f = __io.flags() 1586: & ios_base::adjustfield; 1586: __len = __value.size() + __sign_size; 1586: __len += ((__io.flags() & ios_base::showbase) 1586: ? __lc->_M_curr_symbol_size : 0); 1586: 1586: string_type __res; 1586: __res.reserve(2 * __len); 1586: 1586: const size_type __width = static_cast(__io.width()); 1586: const bool __testipad = (__f == ios_base::internal 1586: && __len < __width); 1586: 1586: for (int __i = 0; __i < 4; ++__i) 1586: { 1586: const part __which = static_cast(__p.field[__i]); 1586: switch (__which) 1586: { 1586: case money_base::symbol: 1586: if (__io.flags() & ios_base::showbase) 1586: __res.append(__lc->_M_curr_symbol, 1586: __lc->_M_curr_symbol_size); 1586: break; 1586: case money_base::sign: 1586: 1586: 1586: 1586: if (__sign_size) 1586: __res += __sign[0]; 1586: break; 1586: case money_base::value: 1586: __res += __value; 1586: break; 1586: case money_base::space: 1586: 1586: 1586: 1586: if (__testipad) 1586: __res.append(__width - __len, __fill); 1586: else 1586: __res += __fill; 1586: break; 1586: case money_base::none: 1586: if (__testipad) 1586: __res.append(__width - __len, __fill); 1586: break; 1586: } 1586: } 1586: 1586: 1586: if (__sign_size > 1) 1586: __res.append(__sign + 1, __sign_size - 1); 1586: 1586: 1586: __len = __res.size(); 1586: if (__width > __len) 1586: { 1586: if (__f == ios_base::left) 1586: 1586: __res.append(__width - __len, __fill); 1586: else 1586: 1586: __res.insert(0, __width - __len, __fill); 1586: __len = __width; 1586: } 1586: 1586: 1586: __s = std::__write(__s, __res.data(), __len); 1586: } 1586: __io.width(0); 1586: return __s; 1586: } 1586: # 574 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.tcc" 3 1586: template 1586: _OutIter 1586: money_put<_CharT, _OutIter>:: 1586: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 1586: long double __units) const 1586: { 1586: const locale __loc = __io.getloc(); 1586: const ctype<_CharT>& __ctype = use_facet >(__loc); 1586: 1586: 1586: int __cs_size = 64; 1586: char* __cs = static_cast(__builtin_alloca(__cs_size)); 1586: 1586: 1586: int __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 1586: "%.*Lf", 0, __units); 1586: 1586: if (__len >= __cs_size) 1586: { 1586: __cs_size = __len + 1; 1586: __cs = static_cast(__builtin_alloca(__cs_size)); 1586: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 1586: "%.*Lf", 0, __units); 1586: } 1586: # 606 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.tcc" 3 1586: string_type __digits(__len, char_type()); 1586: __ctype.widen(__cs, __cs + __len, &__digits[0]); 1586: return __intl ? _M_insert(__s, __io, __fill, __digits) 1586: : _M_insert(__s, __io, __fill, __digits); 1586: } 1586: 1586: template 1586: _OutIter 1586: money_put<_CharT, _OutIter>:: 1586: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, 1586: const string_type& __digits) const 1586: { return __intl ? _M_insert(__s, __io, __fill, __digits) 1586: : _M_insert(__s, __io, __fill, __digits); } 1586: 1586: } 1586: 1586: 1586: 1586: 1586: template 1586: time_base::dateorder 1586: time_get<_CharT, _InIter>::do_date_order() const 1586: { return time_base::no_order; } 1586: 1586: 1586: 1586: template 1586: _InIter 1586: time_get<_CharT, _InIter>:: 1586: _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, tm* __tm, 1586: const _CharT* __format) const 1586: { 1586: const locale& __loc = __io._M_getloc(); 1586: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 1586: const ctype<_CharT>& __ctype = use_facet >(__loc); 1586: const size_t __len = char_traits<_CharT>::length(__format); 1586: 1586: ios_base::iostate __tmperr = ios_base::goodbit; 1586: size_t __i = 0; 1586: for (; __beg != __end && __i < __len && !__tmperr; ++__i) 1586: { 1586: if (__ctype.narrow(__format[__i], 0) == '%') 1586: { 1586: 1586: char __c = __ctype.narrow(__format[++__i], 0); 1586: int __mem = 0; 1586: if (__c == 'E' || __c == 'O') 1586: __c = __ctype.narrow(__format[++__i], 0); 1586: switch (__c) 1586: { 1586: const char* __cs; 1586: _CharT __wcs[10]; 1586: case 'a': 1586: 1586: const char_type* __days1[7]; 1586: __tp._M_days_abbreviated(__days1); 1586: __beg = _M_extract_name(__beg, __end, __mem, __days1, 1586: 7, __io, __tmperr); 1586: if (!__tmperr) 1586: __tm->tm_wday = __mem; 1586: break; 1586: case 'A': 1586: 1586: const char_type* __days2[7]; 1586: __tp._M_days(__days2); 1586: __beg = _M_extract_name(__beg, __end, __mem, __days2, 1586: 7, __io, __tmperr); 1586: if (!__tmperr) 1586: __tm->tm_wday = __mem; 1586: break; 1586: case 'h': 1586: case 'b': 1586: 1586: const char_type* __months1[12]; 1586: __tp._M_months_abbreviated(__months1); 1586: __beg = _M_extract_name(__beg, __end, __mem, 1586: __months1, 12, __io, __tmperr); 1586: if (!__tmperr) 1586: __tm->tm_mon = __mem; 1586: break; 1586: case 'B': 1586: 1586: const char_type* __months2[12]; 1586: __tp._M_months(__months2); 1586: __beg = _M_extract_name(__beg, __end, __mem, 1586: __months2, 12, __io, __tmperr); 1586: if (!__tmperr) 1586: __tm->tm_mon = __mem; 1586: break; 1586: case 'c': 1586: 1586: const char_type* __dt[2]; 1586: __tp._M_date_time_formats(__dt); 1586: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 1586: __tm, __dt[0]); 1586: break; 1586: case 'd': 1586: 1586: __beg = _M_extract_num(__beg, __end, __mem, 1, 31, 2, 1586: __io, __tmperr); 1586: if (!__tmperr) 1586: __tm->tm_mday = __mem; 1586: break; 1586: case 'e': 1586: 1586: 1586: if (__ctype.is(ctype_base::space, *__beg)) 1586: __beg = _M_extract_num(++__beg, __end, __mem, 1, 9, 1586: 1, __io, __tmperr); 1586: else 1586: __beg = _M_extract_num(__beg, __end, __mem, 10, 31, 1586: 2, __io, __tmperr); 1586: if (!__tmperr) 1586: __tm->tm_mday = __mem; 1586: break; 1586: case 'D': 1586: 1586: __cs = "%m/%d/%y"; 1586: __ctype.widen(__cs, __cs + 9, __wcs); 1586: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 1586: __tm, __wcs); 1586: break; 1586: case 'H': 1586: 1586: __beg = _M_extract_num(__beg, __end, __mem, 0, 23, 2, 1586: __io, __tmperr); 1586: if (!__tmperr) 1586: __tm->tm_hour = __mem; 1586: break; 1586: case 'I': 1586: 1586: __beg = _M_extract_num(__beg, __end, __mem, 1, 12, 2, 1586: __io, __tmperr); 1586: if (!__tmperr) 1586: __tm->tm_hour = __mem; 1586: break; 1586: case 'm': 1586: 1586: __beg = _M_extract_num(__beg, __end, __mem, 1, 12, 2, 1586: __io, __tmperr); 1586: if (!__tmperr) 1586: __tm->tm_mon = __mem - 1; 1586: break; 1586: case 'M': 1586: 1586: __beg = _M_extract_num(__beg, __end, __mem, 0, 59, 2, 1586: __io, __tmperr); 1586: if (!__tmperr) 1586: __tm->tm_min = __mem; 1586: break; 1586: case 'n': 1586: if (__ctype.narrow(*__beg, 0) == '\n') 1586: ++__beg; 1586: else 1586: __tmperr |= ios_base::failbit; 1586: break; 1586: case 'R': 1586: 1586: __cs = "%H:%M"; 1586: __ctype.widen(__cs, __cs + 6, __wcs); 1586: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 1586: __tm, __wcs); 1586: break; 1586: case 'S': 1586: 1586: 1586: 1586: __beg = _M_extract_num(__beg, __end, __mem, 0, 60, 2, 1586: 1586: 1586: 1586: __io, __tmperr); 1586: if (!__tmperr) 1586: __tm->tm_sec = __mem; 1586: break; 1586: case 't': 1586: if (__ctype.narrow(*__beg, 0) == '\t') 1586: ++__beg; 1586: else 1586: __tmperr |= ios_base::failbit; 1586: break; 1586: case 'T': 1586: 1586: __cs = "%H:%M:%S"; 1586: __ctype.widen(__cs, __cs + 9, __wcs); 1586: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 1586: __tm, __wcs); 1586: break; 1586: case 'x': 1586: 1586: const char_type* __dates[2]; 1586: __tp._M_date_formats(__dates); 1586: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 1586: __tm, __dates[0]); 1586: break; 1586: case 'X': 1586: 1586: const char_type* __times[2]; 1586: __tp._M_time_formats(__times); 1586: __beg = _M_extract_via_format(__beg, __end, __io, __tmperr, 1586: __tm, __times[0]); 1586: break; 1586: case 'y': 1586: case 'C': 1586: 1586: case 'Y': 1586: 1586: 1586: 1586: 1586: __beg = _M_extract_num(__beg, __end, __mem, 0, 9999, 4, 1586: __io, __tmperr); 1586: if (!__tmperr) 1586: __tm->tm_year = __mem < 0 ? __mem + 100 : __mem - 1900; 1586: break; 1586: case 'Z': 1586: 1586: if (__ctype.is(ctype_base::upper, *__beg)) 1586: { 1586: int __tmp; 1586: __beg = _M_extract_name(__beg, __end, __tmp, 1586: __timepunct_cache<_CharT>::_S_timezones, 1586: 14, __io, __tmperr); 1586: 1586: 1586: if (__beg != __end && !__tmperr && __tmp == 0 1586: && (*__beg == __ctype.widen('-') 1586: || *__beg == __ctype.widen('+'))) 1586: { 1586: __beg = _M_extract_num(__beg, __end, __tmp, 0, 23, 2, 1586: __io, __tmperr); 1586: __beg = _M_extract_num(__beg, __end, __tmp, 0, 59, 2, 1586: __io, __tmperr); 1586: } 1586: } 1586: else 1586: __tmperr |= ios_base::failbit; 1586: break; 1586: default: 1586: 1586: __tmperr |= ios_base::failbit; 1586: } 1586: } 1586: else 1586: { 1586: 1586: if (__format[__i] == *__beg) 1586: ++__beg; 1586: else 1586: __tmperr |= ios_base::failbit; 1586: } 1586: } 1586: 1586: if (__tmperr || __i != __len) 1586: __err |= ios_base::failbit; 1586: 1586: return __beg; 1586: } 1586: 1586: template 1586: _InIter 1586: time_get<_CharT, _InIter>:: 1586: _M_extract_num(iter_type __beg, iter_type __end, int& __member, 1586: int __min, int __max, size_t __len, 1586: ios_base& __io, ios_base::iostate& __err) const 1586: { 1586: const locale& __loc = __io._M_getloc(); 1586: const ctype<_CharT>& __ctype = use_facet >(__loc); 1586: 1586: 1586: int __mult = __len == 2 ? 10 : (__len == 4 ? 1000 : 1); 1586: 1586: ++__min; 1586: size_t __i = 0; 1586: int __value = 0; 1586: for (; __beg != __end && __i < __len; ++__beg, (void)++__i) 1586: { 1586: const char __c = __ctype.narrow(*__beg, '*'); 1586: if (__c >= '0' && __c <= '9') 1586: { 1586: __value = __value * 10 + (__c - '0'); 1586: const int __valuec = __value * __mult; 1586: if (__valuec > __max || __valuec + __mult < __min) 1586: break; 1586: __mult /= 10; 1586: } 1586: else 1586: break; 1586: } 1586: if (__i == __len) 1586: __member = __value; 1586: 1586: else if (__len == 4 && __i == 2) 1586: __member = __value - 100; 1586: else 1586: __err |= ios_base::failbit; 1586: 1586: return __beg; 1586: } 1586: 1586: 1586: 1586: template 1586: _InIter 1586: time_get<_CharT, _InIter>:: 1586: _M_extract_name(iter_type __beg, iter_type __end, int& __member, 1586: const _CharT** __names, size_t __indexlen, 1586: ios_base& __io, ios_base::iostate& __err) const 1586: { 1586: typedef char_traits<_CharT> __traits_type; 1586: const locale& __loc = __io._M_getloc(); 1586: const ctype<_CharT>& __ctype = use_facet >(__loc); 1586: 1586: int* __matches = static_cast(__builtin_alloca(sizeof(int) 1586: * __indexlen)); 1586: size_t __nmatches = 0; 1586: size_t __pos = 0; 1586: bool __testvalid = true; 1586: const char_type* __name; 1586: 1586: 1586: 1586: 1586: 1586: if (__beg != __end) 1586: { 1586: const char_type __c = *__beg; 1586: for (size_t __i1 = 0; __i1 < __indexlen; ++__i1) 1586: if (__c == __names[__i1][0] 1586: || __c == __ctype.toupper(__names[__i1][0])) 1586: __matches[__nmatches++] = __i1; 1586: } 1586: 1586: while (__nmatches > 1) 1586: { 1586: 1586: size_t __minlen = __traits_type::length(__names[__matches[0]]); 1586: for (size_t __i2 = 1; __i2 < __nmatches; ++__i2) 1586: __minlen = std::min(__minlen, 1586: __traits_type::length(__names[__matches[__i2]])); 1586: ++__beg; 1586: ++__pos; 1586: if (__pos < __minlen && __beg != __end) 1586: for (size_t __i3 = 0; __i3 < __nmatches;) 1586: { 1586: __name = __names[__matches[__i3]]; 1586: if (!(__name[__pos] == *__beg)) 1586: __matches[__i3] = __matches[--__nmatches]; 1586: else 1586: ++__i3; 1586: } 1586: else 1586: break; 1586: } 1586: 1586: if (__nmatches == 1) 1586: { 1586: 1586: ++__beg; 1586: ++__pos; 1586: __name = __names[__matches[0]]; 1586: const size_t __len = __traits_type::length(__name); 1586: while (__pos < __len && __beg != __end && __name[__pos] == *__beg) 1586: ++__beg, (void)++__pos; 1586: 1586: if (__len == __pos) 1586: __member = __matches[0]; 1586: else 1586: __testvalid = false; 1586: } 1586: else 1586: __testvalid = false; 1586: if (!__testvalid) 1586: __err |= ios_base::failbit; 1586: 1586: return __beg; 1586: } 1586: 1586: template 1586: _InIter 1586: time_get<_CharT, _InIter>:: 1586: _M_extract_wday_or_month(iter_type __beg, iter_type __end, int& __member, 1586: const _CharT** __names, size_t __indexlen, 1586: ios_base& __io, ios_base::iostate& __err) const 1586: { 1586: typedef char_traits<_CharT> __traits_type; 1586: const locale& __loc = __io._M_getloc(); 1586: const ctype<_CharT>& __ctype = use_facet >(__loc); 1586: 1586: int* __matches = static_cast(__builtin_alloca(2 * sizeof(int) 1586: * __indexlen)); 1586: size_t __nmatches = 0; 1586: size_t* __matches_lengths = 0; 1586: size_t __pos = 0; 1586: 1586: if (__beg != __end) 1586: { 1586: const char_type __c = *__beg; 1586: for (size_t __i = 0; __i < 2 * __indexlen; ++__i) 1586: if (__c == __names[__i][0] 1586: || __c == __ctype.toupper(__names[__i][0])) 1586: __matches[__nmatches++] = __i; 1586: } 1586: 1586: if (__nmatches) 1586: { 1586: ++__beg; 1586: ++__pos; 1586: 1586: __matches_lengths 1586: = static_cast(__builtin_alloca(sizeof(size_t) 1586: * __nmatches)); 1586: for (size_t __i = 0; __i < __nmatches; ++__i) 1586: __matches_lengths[__i] 1586: = __traits_type::length(__names[__matches[__i]]); 1586: } 1586: 1586: for (; __beg != __end; ++__beg, (void)++__pos) 1586: { 1586: size_t __nskipped = 0; 1586: const char_type __c = *__beg; 1586: for (size_t __i = 0; __i < __nmatches;) 1586: { 1586: const char_type* __name = __names[__matches[__i]]; 1586: if (__pos >= __matches_lengths[__i]) 1586: ++__nskipped, ++__i; 1586: else if (!(__name[__pos] == __c)) 1586: { 1586: --__nmatches; 1586: __matches[__i] = __matches[__nmatches]; 1586: __matches_lengths[__i] = __matches_lengths[__nmatches]; 1586: } 1586: else 1586: ++__i; 1586: } 1586: if (__nskipped == __nmatches) 1586: break; 1586: } 1586: 1586: if ((__nmatches == 1 && __matches_lengths[0] == __pos) 1586: || (__nmatches == 2 && (__matches_lengths[0] == __pos 1586: || __matches_lengths[1] == __pos))) 1586: __member = (__matches[0] >= __indexlen 1586: ? __matches[0] - __indexlen : __matches[0]); 1586: else 1586: __err |= ios_base::failbit; 1586: 1586: return __beg; 1586: } 1586: 1586: template 1586: _InIter 1586: time_get<_CharT, _InIter>:: 1586: do_get_time(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, tm* __tm) const 1586: { 1586: const locale& __loc = __io._M_getloc(); 1586: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 1586: const char_type* __times[2]; 1586: __tp._M_time_formats(__times); 1586: __beg = _M_extract_via_format(__beg, __end, __io, __err, 1586: __tm, __times[0]); 1586: if (__beg == __end) 1586: __err |= ios_base::eofbit; 1586: return __beg; 1586: } 1586: 1586: template 1586: _InIter 1586: time_get<_CharT, _InIter>:: 1586: do_get_date(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, tm* __tm) const 1586: { 1586: const locale& __loc = __io._M_getloc(); 1586: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 1586: const char_type* __dates[2]; 1586: __tp._M_date_formats(__dates); 1586: __beg = _M_extract_via_format(__beg, __end, __io, __err, 1586: __tm, __dates[0]); 1586: if (__beg == __end) 1586: __err |= ios_base::eofbit; 1586: return __beg; 1586: } 1586: 1586: template 1586: _InIter 1586: time_get<_CharT, _InIter>:: 1586: do_get_weekday(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, tm* __tm) const 1586: { 1586: const locale& __loc = __io._M_getloc(); 1586: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 1586: const char_type* __days[14]; 1586: __tp._M_days_abbreviated(__days); 1586: __tp._M_days(__days + 7); 1586: int __tmpwday; 1586: ios_base::iostate __tmperr = ios_base::goodbit; 1586: 1586: __beg = _M_extract_wday_or_month(__beg, __end, __tmpwday, __days, 7, 1586: __io, __tmperr); 1586: if (!__tmperr) 1586: __tm->tm_wday = __tmpwday; 1586: else 1586: __err |= ios_base::failbit; 1586: 1586: if (__beg == __end) 1586: __err |= ios_base::eofbit; 1586: return __beg; 1586: } 1586: 1586: template 1586: _InIter 1586: time_get<_CharT, _InIter>:: 1586: do_get_monthname(iter_type __beg, iter_type __end, 1586: ios_base& __io, ios_base::iostate& __err, tm* __tm) const 1586: { 1586: const locale& __loc = __io._M_getloc(); 1586: const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); 1586: const char_type* __months[24]; 1586: __tp._M_months_abbreviated(__months); 1586: __tp._M_months(__months + 12); 1586: int __tmpmon; 1586: ios_base::iostate __tmperr = ios_base::goodbit; 1586: 1586: __beg = _M_extract_wday_or_month(__beg, __end, __tmpmon, __months, 12, 1586: __io, __tmperr); 1586: if (!__tmperr) 1586: __tm->tm_mon = __tmpmon; 1586: else 1586: __err |= ios_base::failbit; 1586: 1586: if (__beg == __end) 1586: __err |= ios_base::eofbit; 1586: return __beg; 1586: } 1586: 1586: template 1586: _InIter 1586: time_get<_CharT, _InIter>:: 1586: do_get_year(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, tm* __tm) const 1586: { 1586: int __tmpyear; 1586: ios_base::iostate __tmperr = ios_base::goodbit; 1586: 1586: __beg = _M_extract_num(__beg, __end, __tmpyear, 0, 9999, 4, 1586: __io, __tmperr); 1586: if (!__tmperr) 1586: __tm->tm_year = __tmpyear < 0 ? __tmpyear + 100 : __tmpyear - 1900; 1586: else 1586: __err |= ios_base::failbit; 1586: 1586: if (__beg == __end) 1586: __err |= ios_base::eofbit; 1586: return __beg; 1586: } 1586: 1586: 1586: template 1586: inline 1586: _InIter 1586: time_get<_CharT, _InIter>:: 1586: get(iter_type __s, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, tm* __tm, const char_type* __fmt, 1586: const char_type* __fmtend) const 1586: { 1586: const locale& __loc = __io._M_getloc(); 1586: ctype<_CharT> const& __ctype = use_facet >(__loc); 1586: __err = ios_base::goodbit; 1586: while (__fmt != __fmtend && 1586: __err == ios_base::goodbit) 1586: { 1586: if (__s == __end) 1586: { 1586: __err = ios_base::eofbit | ios_base::failbit; 1586: break; 1586: } 1586: else if (__ctype.narrow(*__fmt, 0) == '%') 1586: { 1586: char __format; 1586: char __mod = 0; 1586: if (++__fmt == __fmtend) 1586: { 1586: __err = ios_base::failbit; 1586: break; 1586: } 1586: const char __c = __ctype.narrow(*__fmt, 0); 1586: if (__c != 'E' && __c != 'O') 1586: __format = __c; 1586: else if (++__fmt != __fmtend) 1586: { 1586: __mod = __c; 1586: __format = __ctype.narrow(*__fmt, 0); 1586: } 1586: else 1586: { 1586: __err = ios_base::failbit; 1586: break; 1586: } 1586: __s = this->do_get(__s, __end, __io, __err, __tm, __format, 1586: __mod); 1586: ++__fmt; 1586: } 1586: else if (__ctype.is(ctype_base::space, *__fmt)) 1586: { 1586: ++__fmt; 1586: while (__fmt != __fmtend && 1586: __ctype.is(ctype_base::space, *__fmt)) 1586: ++__fmt; 1586: 1586: while (__s != __end && 1586: __ctype.is(ctype_base::space, *__s)) 1586: ++__s; 1586: } 1586: 1586: else if (__ctype.tolower(*__s) == __ctype.tolower(*__fmt) || 1586: __ctype.toupper(*__s) == __ctype.toupper(*__fmt)) 1586: { 1586: ++__s; 1586: ++__fmt; 1586: } 1586: else 1586: { 1586: __err = ios_base::failbit; 1586: break; 1586: } 1586: } 1586: return __s; 1586: } 1586: 1586: template 1586: inline 1586: _InIter 1586: time_get<_CharT, _InIter>:: 1586: do_get(iter_type __beg, iter_type __end, ios_base& __io, 1586: ios_base::iostate& __err, tm* __tm, 1586: char __format, char __mod) const 1586: { 1586: const locale& __loc = __io._M_getloc(); 1586: ctype<_CharT> const& __ctype = use_facet >(__loc); 1586: __err = ios_base::goodbit; 1586: 1586: char_type __fmt[4]; 1586: __fmt[0] = __ctype.widen('%'); 1586: if (!__mod) 1586: { 1586: __fmt[1] = __format; 1586: __fmt[2] = char_type(); 1586: } 1586: else 1586: { 1586: __fmt[1] = __mod; 1586: __fmt[2] = __format; 1586: __fmt[3] = char_type(); 1586: } 1586: 1586: __beg = _M_extract_via_format(__beg, __end, __io, __err, __tm, __fmt); 1586: if (__beg == __end) 1586: __err |= ios_base::eofbit; 1586: return __beg; 1586: } 1586: 1586: 1586: 1586: template 1586: _OutIter 1586: time_put<_CharT, _OutIter>:: 1586: put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, 1586: const _CharT* __beg, const _CharT* __end) const 1586: { 1586: const locale& __loc = __io._M_getloc(); 1586: ctype<_CharT> const& __ctype = use_facet >(__loc); 1586: for (; __beg != __end; ++__beg) 1586: if (__ctype.narrow(*__beg, 0) != '%') 1586: { 1586: *__s = *__beg; 1586: ++__s; 1586: } 1586: else if (++__beg != __end) 1586: { 1586: char __format; 1586: char __mod = 0; 1586: const char __c = __ctype.narrow(*__beg, 0); 1586: if (__c != 'E' && __c != 'O') 1586: __format = __c; 1586: else if (++__beg != __end) 1586: { 1586: __mod = __c; 1586: __format = __ctype.narrow(*__beg, 0); 1586: } 1586: else 1586: break; 1586: __s = this->do_put(__s, __io, __fill, __tm, __format, __mod); 1586: } 1586: else 1586: break; 1586: return __s; 1586: } 1586: 1586: template 1586: _OutIter 1586: time_put<_CharT, _OutIter>:: 1586: do_put(iter_type __s, ios_base& __io, char_type, const tm* __tm, 1586: char __format, char __mod) const 1586: { 1586: const locale& __loc = __io._M_getloc(); 1586: ctype<_CharT> const& __ctype = use_facet >(__loc); 1586: __timepunct<_CharT> const& __tp = use_facet<__timepunct<_CharT> >(__loc); 1586: 1586: 1586: 1586: const size_t __maxlen = 128; 1586: char_type __res[__maxlen]; 1586: 1586: 1586: 1586: 1586: 1586: 1586: char_type __fmt[4]; 1586: __fmt[0] = __ctype.widen('%'); 1586: if (!__mod) 1586: { 1586: __fmt[1] = __format; 1586: __fmt[2] = char_type(); 1586: } 1586: else 1586: { 1586: __fmt[1] = __mod; 1586: __fmt[2] = __format; 1586: __fmt[3] = char_type(); 1586: } 1586: 1586: __tp._M_put(__res, __maxlen, __fmt, __tm); 1586: 1586: 1586: return std::__write(__s, __res, char_traits::length(__res)); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: extern template class moneypunct; 1586: extern template class moneypunct; 1586: extern template class moneypunct_byname; 1586: extern template class moneypunct_byname; 1586: extern template class __cxx11:: money_get; 1586: extern template class __cxx11:: money_put; 1586: extern template class __timepunct; 1586: extern template class time_put; 1586: extern template class time_put_byname; 1586: extern template class time_get; 1586: extern template class time_get_byname; 1586: extern template class messages; 1586: extern template class messages_byname; 1586: 1586: extern template 1586: const moneypunct& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: const moneypunct& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: const money_put& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: const money_get& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: const __timepunct& 1586: use_facet<__timepunct >(const locale&); 1586: 1586: extern template 1586: const time_put& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: const time_get& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: const messages& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet<__timepunct >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: 1586: extern template class moneypunct; 1586: extern template class moneypunct; 1586: extern template class moneypunct_byname; 1586: extern template class moneypunct_byname; 1586: extern template class __cxx11:: money_get; 1586: extern template class __cxx11:: money_put; 1586: extern template class __timepunct; 1586: extern template class time_put; 1586: extern template class time_put_byname; 1586: extern template class time_get; 1586: extern template class time_get_byname; 1586: extern template class messages; 1586: extern template class messages_byname; 1586: 1586: extern template 1586: const moneypunct& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: const moneypunct& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: const money_put& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: const money_get& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: const __timepunct& 1586: use_facet<__timepunct >(const locale&); 1586: 1586: extern template 1586: const time_put& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: const time_get& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: const messages& 1586: use_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet<__timepunct >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: extern template 1586: bool 1586: has_facet >(const locale&); 1586: 1586: 1586: 1586: 1586: } 1586: # 2016 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_facets_nonio.h" 2 3 1586: # 42 "/usr/mipsel-linux-gnu/include/c++/9/locale" 2 3 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_conv.h" 1 3 1586: # 43 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_conv.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: bool 1586: __do_str_codecvt(const _InChar* __first, const _InChar* __last, 1586: _OutStr& __outstr, const _Codecvt& __cvt, _State& __state, 1586: size_t& __count, _Fn __fn) 1586: { 1586: if (__first == __last) 1586: { 1586: __outstr.clear(); 1586: __count = 0; 1586: return true; 1586: } 1586: 1586: size_t __outchars = 0; 1586: auto __next = __first; 1586: const auto __maxlen = __cvt.max_length() + 1; 1586: 1586: codecvt_base::result __result; 1586: do 1586: { 1586: __outstr.resize(__outstr.size() + (__last - __next) * __maxlen); 1586: auto __outnext = &__outstr.front() + __outchars; 1586: auto const __outlast = &__outstr.back() + 1; 1586: __result = (__cvt.*__fn)(__state, __next, __last, __next, 1586: __outnext, __outlast, __outnext); 1586: __outchars = __outnext - &__outstr.front(); 1586: } 1586: while (__result == codecvt_base::partial && __next != __last 1586: && (__outstr.size() - __outchars) < __maxlen); 1586: 1586: if (__result == codecvt_base::error) 1586: { 1586: __count = __next - __first; 1586: return false; 1586: } 1586: 1586: 1586: 1586: if (is_same()) 1586: if (__result == codecvt_base::noconv) 1586: { 1586: __outstr.assign(__first, __last); 1586: __count = __last - __first; 1586: return true; 1586: } 1586: 1586: __outstr.resize(__outchars); 1586: __count = __next - __first; 1586: return true; 1586: } 1586: 1586: 1586: template 1586: inline bool 1586: __str_codecvt_in(const char* __first, const char* __last, 1586: basic_string<_CharT, _Traits, _Alloc>& __outstr, 1586: const codecvt<_CharT, char, _State>& __cvt, 1586: _State& __state, size_t& __count) 1586: { 1586: using _Codecvt = codecvt<_CharT, char, _State>; 1586: using _ConvFn 1586: = codecvt_base::result 1586: (_Codecvt::*)(_State&, const char*, const char*, const char*&, 1586: _CharT*, _CharT*, _CharT*&) const; 1586: _ConvFn __fn = &codecvt<_CharT, char, _State>::in; 1586: return __do_str_codecvt(__first, __last, __outstr, __cvt, __state, 1586: __count, __fn); 1586: } 1586: 1586: 1586: template 1586: inline bool 1586: __str_codecvt_in(const char* __first, const char* __last, 1586: basic_string<_CharT, _Traits, _Alloc>& __outstr, 1586: const codecvt<_CharT, char, _State>& __cvt) 1586: { 1586: _State __state = {}; 1586: size_t __n; 1586: return __str_codecvt_in(__first, __last, __outstr, __cvt, __state, __n); 1586: } 1586: 1586: 1586: template 1586: inline bool 1586: __str_codecvt_in_all(const char* __first, const char* __last, 1586: basic_string<_CharT, _Traits, _Alloc>& __outstr, 1586: const codecvt<_CharT, char, _State>& __cvt) 1586: { 1586: _State __state = {}; 1586: size_t __n; 1586: return __str_codecvt_in(__first, __last, __outstr, __cvt, __state, __n) 1586: && (__n == (__last - __first)); 1586: } 1586: 1586: 1586: template 1586: inline bool 1586: __str_codecvt_out(const _CharT* __first, const _CharT* __last, 1586: basic_string& __outstr, 1586: const codecvt<_CharT, char, _State>& __cvt, 1586: _State& __state, size_t& __count) 1586: { 1586: using _Codecvt = codecvt<_CharT, char, _State>; 1586: using _ConvFn 1586: = codecvt_base::result 1586: (_Codecvt::*)(_State&, const _CharT*, const _CharT*, const _CharT*&, 1586: char*, char*, char*&) const; 1586: _ConvFn __fn = &codecvt<_CharT, char, _State>::out; 1586: return __do_str_codecvt(__first, __last, __outstr, __cvt, __state, 1586: __count, __fn); 1586: } 1586: 1586: 1586: template 1586: inline bool 1586: __str_codecvt_out(const _CharT* __first, const _CharT* __last, 1586: basic_string& __outstr, 1586: const codecvt<_CharT, char, _State>& __cvt) 1586: { 1586: _State __state = {}; 1586: size_t __n; 1586: return __str_codecvt_out(__first, __last, __outstr, __cvt, __state, __n); 1586: } 1586: 1586: 1586: template 1586: inline bool 1586: __str_codecvt_out_all(const _CharT* __first, const _CharT* __last, 1586: basic_string& __outstr, 1586: const codecvt<_CharT, char, _State>& __cvt) 1586: { 1586: _State __state = {}; 1586: size_t __n; 1586: return __str_codecvt_out(__first, __last, __outstr, __cvt, __state, __n) 1586: && (__n == (__last - __first)); 1586: } 1586: # 226 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_conv.h" 3 1586: namespace __cxx11 { 1586: 1586: 1586: template, 1586: typename _Byte_alloc = allocator> 1586: class wstring_convert 1586: { 1586: public: 1586: typedef basic_string, _Byte_alloc> byte_string; 1586: typedef basic_string<_Elem, char_traits<_Elem>, _Wide_alloc> wide_string; 1586: typedef typename _Codecvt::state_type state_type; 1586: typedef typename wide_string::traits_type::int_type int_type; 1586: 1586: 1586: wstring_convert() : _M_cvt(new _Codecvt()) { } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: explicit 1586: wstring_convert(_Codecvt* __pcvt) : _M_cvt(__pcvt) 1586: { 1586: if (!_M_cvt) 1586: __throw_logic_error("wstring_convert"); 1586: } 1586: # 264 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_conv.h" 3 1586: wstring_convert(_Codecvt* __pcvt, state_type __state) 1586: : _M_cvt(__pcvt), _M_state(__state), _M_with_cvtstate(true) 1586: { 1586: if (!_M_cvt) 1586: __throw_logic_error("wstring_convert"); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: explicit 1586: wstring_convert(const byte_string& __byte_err, 1586: const wide_string& __wide_err = wide_string()) 1586: : _M_cvt(new _Codecvt), 1586: _M_byte_err_string(__byte_err), _M_wide_err_string(__wide_err), 1586: _M_with_strings(true) 1586: { 1586: if (!_M_cvt) 1586: __throw_logic_error("wstring_convert"); 1586: } 1586: 1586: ~wstring_convert() = default; 1586: 1586: 1586: 1586: wstring_convert(const wstring_convert&) = delete; 1586: wstring_convert& operator=(const wstring_convert&) = delete; 1586: 1586: 1586: wide_string 1586: from_bytes(char __byte) 1586: { 1586: char __bytes[2] = { __byte }; 1586: return from_bytes(__bytes, __bytes+1); 1586: } 1586: 1586: wide_string 1586: from_bytes(const char* __ptr) 1586: { return from_bytes(__ptr, __ptr+char_traits::length(__ptr)); } 1586: 1586: wide_string 1586: from_bytes(const byte_string& __str) 1586: { 1586: auto __ptr = __str.data(); 1586: return from_bytes(__ptr, __ptr + __str.size()); 1586: } 1586: 1586: wide_string 1586: from_bytes(const char* __first, const char* __last) 1586: { 1586: if (!_M_with_cvtstate) 1586: _M_state = state_type(); 1586: wide_string __out{ _M_wide_err_string.get_allocator() }; 1586: if (__str_codecvt_in(__first, __last, __out, *_M_cvt, _M_state, 1586: _M_count)) 1586: return __out; 1586: if (_M_with_strings) 1586: return _M_wide_err_string; 1586: __throw_range_error("wstring_convert::from_bytes"); 1586: } 1586: 1586: 1586: 1586: byte_string 1586: to_bytes(_Elem __wchar) 1586: { 1586: _Elem __wchars[2] = { __wchar }; 1586: return to_bytes(__wchars, __wchars+1); 1586: } 1586: 1586: byte_string 1586: to_bytes(const _Elem* __ptr) 1586: { 1586: return to_bytes(__ptr, __ptr+wide_string::traits_type::length(__ptr)); 1586: } 1586: 1586: byte_string 1586: to_bytes(const wide_string& __wstr) 1586: { 1586: auto __ptr = __wstr.data(); 1586: return to_bytes(__ptr, __ptr + __wstr.size()); 1586: } 1586: 1586: byte_string 1586: to_bytes(const _Elem* __first, const _Elem* __last) 1586: { 1586: if (!_M_with_cvtstate) 1586: _M_state = state_type(); 1586: byte_string __out{ _M_byte_err_string.get_allocator() }; 1586: if (__str_codecvt_out(__first, __last, __out, *_M_cvt, _M_state, 1586: _M_count)) 1586: return __out; 1586: if (_M_with_strings) 1586: return _M_byte_err_string; 1586: __throw_range_error("wstring_convert::to_bytes"); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: size_t converted() const noexcept { return _M_count; } 1586: 1586: 1586: state_type state() const { return _M_state; } 1586: 1586: private: 1586: unique_ptr<_Codecvt> _M_cvt; 1586: byte_string _M_byte_err_string; 1586: wide_string _M_wide_err_string; 1586: state_type _M_state = state_type(); 1586: size_t _M_count = 0; 1586: bool _M_with_cvtstate = false; 1586: bool _M_with_strings = false; 1586: }; 1586: 1586: } 1586: 1586: 1586: template> 1586: class wbuffer_convert : public basic_streambuf<_Elem, _Tr> 1586: { 1586: typedef basic_streambuf<_Elem, _Tr> _Wide_streambuf; 1586: 1586: public: 1586: typedef typename _Codecvt::state_type state_type; 1586: 1586: 1586: wbuffer_convert() : wbuffer_convert(nullptr) { } 1586: # 405 "/usr/mipsel-linux-gnu/include/c++/9/bits/locale_conv.h" 3 1586: explicit 1586: wbuffer_convert(streambuf* __bytebuf, _Codecvt* __pcvt = new _Codecvt, 1586: state_type __state = state_type()) 1586: : _M_buf(__bytebuf), _M_cvt(__pcvt), _M_state(__state) 1586: { 1586: if (!_M_cvt) 1586: __throw_logic_error("wbuffer_convert"); 1586: 1586: _M_always_noconv = _M_cvt->always_noconv(); 1586: 1586: if (_M_buf) 1586: { 1586: this->setp(_M_put_area, _M_put_area + _S_buffer_length); 1586: this->setg(_M_get_area + _S_putback_length, 1586: _M_get_area + _S_putback_length, 1586: _M_get_area + _S_putback_length); 1586: } 1586: } 1586: 1586: ~wbuffer_convert() = default; 1586: 1586: 1586: 1586: wbuffer_convert(const wbuffer_convert&) = delete; 1586: wbuffer_convert& operator=(const wbuffer_convert&) = delete; 1586: 1586: streambuf* rdbuf() const noexcept { return _M_buf; } 1586: 1586: streambuf* 1586: rdbuf(streambuf *__bytebuf) noexcept 1586: { 1586: auto __prev = _M_buf; 1586: _M_buf = __bytebuf; 1586: return __prev; 1586: } 1586: 1586: 1586: state_type state() const noexcept { return _M_state; } 1586: 1586: protected: 1586: int 1586: sync() 1586: { return _M_buf && _M_conv_put() && !_M_buf->pubsync() ? 0 : -1; } 1586: 1586: typename _Wide_streambuf::int_type 1586: overflow(typename _Wide_streambuf::int_type __out) 1586: { 1586: if (!_M_buf || !_M_conv_put()) 1586: return _Tr::eof(); 1586: else if (!_Tr::eq_int_type(__out, _Tr::eof())) 1586: return this->sputc(__out); 1586: return _Tr::not_eof(__out); 1586: } 1586: 1586: typename _Wide_streambuf::int_type 1586: underflow() 1586: { 1586: if (!_M_buf) 1586: return _Tr::eof(); 1586: 1586: if (this->gptr() < this->egptr() || (_M_buf && _M_conv_get())) 1586: return _Tr::to_int_type(*this->gptr()); 1586: else 1586: return _Tr::eof(); 1586: } 1586: 1586: streamsize 1586: xsputn(const typename _Wide_streambuf::char_type* __s, streamsize __n) 1586: { 1586: if (!_M_buf || __n == 0) 1586: return 0; 1586: streamsize __done = 0; 1586: do 1586: { 1586: auto __nn = std::min(this->epptr() - this->pptr(), 1586: __n - __done); 1586: _Tr::copy(this->pptr(), __s + __done, __nn); 1586: this->pbump(__nn); 1586: __done += __nn; 1586: } while (__done < __n && _M_conv_put()); 1586: return __done; 1586: } 1586: 1586: private: 1586: 1586: bool 1586: _M_conv_get() 1586: { 1586: const streamsize __pb1 = this->gptr() - this->eback(); 1586: const streamsize __pb2 = _S_putback_length; 1586: const streamsize __npb = std::min(__pb1, __pb2); 1586: 1586: _Tr::move(_M_get_area + _S_putback_length - __npb, 1586: this->gptr() - __npb, __npb); 1586: 1586: streamsize __nbytes = sizeof(_M_get_buf) - _M_unconv; 1586: __nbytes = std::min(__nbytes, _M_buf->in_avail()); 1586: if (__nbytes < 1) 1586: __nbytes = 1; 1586: __nbytes = _M_buf->sgetn(_M_get_buf + _M_unconv, __nbytes); 1586: if (__nbytes < 1) 1586: return false; 1586: __nbytes += _M_unconv; 1586: 1586: 1586: 1586: _Elem* __outbuf = _M_get_area + _S_putback_length; 1586: _Elem* __outnext = __outbuf; 1586: const char* __bnext = _M_get_buf; 1586: 1586: codecvt_base::result __result; 1586: if (_M_always_noconv) 1586: __result = codecvt_base::noconv; 1586: else 1586: { 1586: _Elem* __outend = _M_get_area + _S_buffer_length; 1586: 1586: __result = _M_cvt->in(_M_state, 1586: __bnext, __bnext + __nbytes, __bnext, 1586: __outbuf, __outend, __outnext); 1586: } 1586: 1586: if (__result == codecvt_base::noconv) 1586: { 1586: 1586: auto __get_buf = reinterpret_cast(_M_get_buf); 1586: _Tr::copy(__outbuf, __get_buf, __nbytes); 1586: _M_unconv = 0; 1586: return true; 1586: } 1586: 1586: if ((_M_unconv = _M_get_buf + __nbytes - __bnext)) 1586: char_traits::move(_M_get_buf, __bnext, _M_unconv); 1586: 1586: this->setg(__outbuf, __outbuf, __outnext); 1586: 1586: return __result != codecvt_base::error; 1586: } 1586: 1586: 1586: bool 1586: _M_put(...) 1586: { return false; } 1586: 1586: bool 1586: _M_put(const char* __p, streamsize __n) 1586: { 1586: if (_M_buf->sputn(__p, __n) < __n) 1586: return false; 1586: return true; 1586: } 1586: 1586: 1586: bool 1586: _M_conv_put() 1586: { 1586: _Elem* const __first = this->pbase(); 1586: const _Elem* const __last = this->pptr(); 1586: const streamsize __pending = __last - __first; 1586: 1586: if (_M_always_noconv) 1586: return _M_put(__first, __pending); 1586: 1586: char __outbuf[2 * _S_buffer_length]; 1586: 1586: const _Elem* __next = __first; 1586: const _Elem* __start; 1586: do 1586: { 1586: __start = __next; 1586: char* __outnext = __outbuf; 1586: char* const __outlast = __outbuf + sizeof(__outbuf); 1586: auto __result = _M_cvt->out(_M_state, __next, __last, __next, 1586: __outnext, __outlast, __outnext); 1586: if (__result == codecvt_base::error) 1586: return false; 1586: else if (__result == codecvt_base::noconv) 1586: return _M_put(__next, __pending); 1586: 1586: if (!_M_put(__outbuf, __outnext - __outbuf)) 1586: return false; 1586: } 1586: while (__next != __last && __next != __start); 1586: 1586: if (__next != __last) 1586: _Tr::move(__first, __next, __last - __next); 1586: 1586: this->pbump(__first - __next); 1586: return __next != __first; 1586: } 1586: 1586: streambuf* _M_buf; 1586: unique_ptr<_Codecvt> _M_cvt; 1586: state_type _M_state; 1586: 1586: static const streamsize _S_buffer_length = 32; 1586: static const streamsize _S_putback_length = 3; 1586: _Elem _M_put_area[_S_buffer_length]; 1586: _Elem _M_get_area[_S_buffer_length]; 1586: streamsize _M_unconv = 0; 1586: char _M_get_buf[_S_buffer_length-_S_putback_length]; 1586: bool _M_always_noconv; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: } 1586: # 44 "/usr/mipsel-linux-gnu/include/c++/9/locale" 2 3 1586: # 44 "/usr/mipsel-linux-gnu/include/c++/9/iomanip" 2 3 1586: 1586: 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: struct _Resetiosflags { ios_base::fmtflags _M_mask; }; 1586: # 65 "/usr/mipsel-linux-gnu/include/c++/9/iomanip" 3 1586: inline _Resetiosflags 1586: resetiosflags(ios_base::fmtflags __mask) 1586: { return { __mask }; } 1586: 1586: template 1586: inline basic_istream<_CharT, _Traits>& 1586: operator>>(basic_istream<_CharT, _Traits>& __is, _Resetiosflags __f) 1586: { 1586: __is.setf(ios_base::fmtflags(0), __f._M_mask); 1586: return __is; 1586: } 1586: 1586: template 1586: inline basic_ostream<_CharT, _Traits>& 1586: operator<<(basic_ostream<_CharT, _Traits>& __os, _Resetiosflags __f) 1586: { 1586: __os.setf(ios_base::fmtflags(0), __f._M_mask); 1586: return __os; 1586: } 1586: 1586: 1586: struct _Setiosflags { ios_base::fmtflags _M_mask; }; 1586: # 95 "/usr/mipsel-linux-gnu/include/c++/9/iomanip" 3 1586: inline _Setiosflags 1586: setiosflags(ios_base::fmtflags __mask) 1586: { return { __mask }; } 1586: 1586: template 1586: inline basic_istream<_CharT, _Traits>& 1586: operator>>(basic_istream<_CharT, _Traits>& __is, _Setiosflags __f) 1586: { 1586: __is.setf(__f._M_mask); 1586: return __is; 1586: } 1586: 1586: template 1586: inline basic_ostream<_CharT, _Traits>& 1586: operator<<(basic_ostream<_CharT, _Traits>& __os, _Setiosflags __f) 1586: { 1586: __os.setf(__f._M_mask); 1586: return __os; 1586: } 1586: 1586: 1586: struct _Setbase { int _M_base; }; 1586: # 126 "/usr/mipsel-linux-gnu/include/c++/9/iomanip" 3 1586: inline _Setbase 1586: setbase(int __base) 1586: { return { __base }; } 1586: 1586: template 1586: inline basic_istream<_CharT, _Traits>& 1586: operator>>(basic_istream<_CharT, _Traits>& __is, _Setbase __f) 1586: { 1586: __is.setf(__f._M_base == 8 ? ios_base::oct : 1586: __f._M_base == 10 ? ios_base::dec : 1586: __f._M_base == 16 ? ios_base::hex : 1586: ios_base::fmtflags(0), ios_base::basefield); 1586: return __is; 1586: } 1586: 1586: template 1586: inline basic_ostream<_CharT, _Traits>& 1586: operator<<(basic_ostream<_CharT, _Traits>& __os, _Setbase __f) 1586: { 1586: __os.setf(__f._M_base == 8 ? ios_base::oct : 1586: __f._M_base == 10 ? ios_base::dec : 1586: __f._M_base == 16 ? ios_base::hex : 1586: ios_base::fmtflags(0), ios_base::basefield); 1586: return __os; 1586: } 1586: 1586: 1586: template 1586: struct _Setfill { _CharT _M_c; }; 1586: # 163 "/usr/mipsel-linux-gnu/include/c++/9/iomanip" 3 1586: template 1586: inline _Setfill<_CharT> 1586: setfill(_CharT __c) 1586: { return { __c }; } 1586: 1586: template 1586: inline basic_istream<_CharT, _Traits>& 1586: operator>>(basic_istream<_CharT, _Traits>& __is, _Setfill<_CharT> __f) 1586: { 1586: __is.fill(__f._M_c); 1586: return __is; 1586: } 1586: 1586: template 1586: inline basic_ostream<_CharT, _Traits>& 1586: operator<<(basic_ostream<_CharT, _Traits>& __os, _Setfill<_CharT> __f) 1586: { 1586: __os.fill(__f._M_c); 1586: return __os; 1586: } 1586: 1586: 1586: struct _Setprecision { int _M_n; }; 1586: # 194 "/usr/mipsel-linux-gnu/include/c++/9/iomanip" 3 1586: inline _Setprecision 1586: setprecision(int __n) 1586: { return { __n }; } 1586: 1586: template 1586: inline basic_istream<_CharT, _Traits>& 1586: operator>>(basic_istream<_CharT, _Traits>& __is, _Setprecision __f) 1586: { 1586: __is.precision(__f._M_n); 1586: return __is; 1586: } 1586: 1586: template 1586: inline basic_ostream<_CharT, _Traits>& 1586: operator<<(basic_ostream<_CharT, _Traits>& __os, _Setprecision __f) 1586: { 1586: __os.precision(__f._M_n); 1586: return __os; 1586: } 1586: 1586: 1586: struct _Setw { int _M_n; }; 1586: # 224 "/usr/mipsel-linux-gnu/include/c++/9/iomanip" 3 1586: inline _Setw 1586: setw(int __n) 1586: { return { __n }; } 1586: 1586: template 1586: inline basic_istream<_CharT, _Traits>& 1586: operator>>(basic_istream<_CharT, _Traits>& __is, _Setw __f) 1586: { 1586: __is.width(__f._M_n); 1586: return __is; 1586: } 1586: 1586: template 1586: inline basic_ostream<_CharT, _Traits>& 1586: operator<<(basic_ostream<_CharT, _Traits>& __os, _Setw __f) 1586: { 1586: __os.width(__f._M_n); 1586: return __os; 1586: } 1586: 1586: 1586: 1586: template 1586: struct _Get_money { _MoneyT& _M_mon; bool _M_intl; }; 1586: # 257 "/usr/mipsel-linux-gnu/include/c++/9/iomanip" 3 1586: template 1586: inline _Get_money<_MoneyT> 1586: get_money(_MoneyT& __mon, bool __intl = false) 1586: { return { __mon, __intl }; } 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: operator>>(basic_istream<_CharT, _Traits>& __is, _Get_money<_MoneyT> __f) 1586: { 1586: typename basic_istream<_CharT, _Traits>::sentry __cerb(__is, false); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: typedef istreambuf_iterator<_CharT, _Traits> _Iter; 1586: typedef money_get<_CharT, _Iter> _MoneyGet; 1586: 1586: const _MoneyGet& __mg = use_facet<_MoneyGet>(__is.getloc()); 1586: __mg.get(_Iter(__is.rdbuf()), _Iter(), __f._M_intl, 1586: __is, __err, __f._M_mon); 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: __is._M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { __is._M_setstate(ios_base::badbit); } 1586: if (__err) 1586: __is.setstate(__err); 1586: } 1586: return __is; 1586: } 1586: 1586: 1586: template 1586: struct _Put_money { const _MoneyT& _M_mon; bool _M_intl; }; 1586: # 304 "/usr/mipsel-linux-gnu/include/c++/9/iomanip" 3 1586: template 1586: inline _Put_money<_MoneyT> 1586: put_money(const _MoneyT& __mon, bool __intl = false) 1586: { return { __mon, __intl }; } 1586: 1586: template 1586: basic_ostream<_CharT, _Traits>& 1586: operator<<(basic_ostream<_CharT, _Traits>& __os, _Put_money<_MoneyT> __f) 1586: { 1586: typename basic_ostream<_CharT, _Traits>::sentry __cerb(__os); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: typedef ostreambuf_iterator<_CharT, _Traits> _Iter; 1586: typedef money_put<_CharT, _Iter> _MoneyPut; 1586: 1586: const _MoneyPut& __mp = use_facet<_MoneyPut>(__os.getloc()); 1586: if (__mp.put(_Iter(__os.rdbuf()), __f._M_intl, __os, 1586: __os.fill(), __f._M_mon).failed()) 1586: __err |= ios_base::badbit; 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: __os._M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { __os._M_setstate(ios_base::badbit); } 1586: if (__err) 1586: __os.setstate(__err); 1586: } 1586: return __os; 1586: } 1586: 1586: template 1586: struct _Put_time 1586: { 1586: const std::tm* _M_tmb; 1586: const _CharT* _M_fmt; 1586: }; 1586: # 356 "/usr/mipsel-linux-gnu/include/c++/9/iomanip" 3 1586: template 1586: inline _Put_time<_CharT> 1586: put_time(const std::tm* __tmb, const _CharT* __fmt) 1586: { return { __tmb, __fmt }; } 1586: 1586: template 1586: basic_ostream<_CharT, _Traits>& 1586: operator<<(basic_ostream<_CharT, _Traits>& __os, _Put_time<_CharT> __f) 1586: { 1586: typename basic_ostream<_CharT, _Traits>::sentry __cerb(__os); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: typedef ostreambuf_iterator<_CharT, _Traits> _Iter; 1586: typedef time_put<_CharT, _Iter> _TimePut; 1586: 1586: const _CharT* const __fmt_end = __f._M_fmt + 1586: _Traits::length(__f._M_fmt); 1586: 1586: const _TimePut& __mp = use_facet<_TimePut>(__os.getloc()); 1586: if (__mp.put(_Iter(__os.rdbuf()), __os, __os.fill(), 1586: __f._M_tmb, __f._M_fmt, __fmt_end).failed()) 1586: __err |= ios_base::badbit; 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: __os._M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { __os._M_setstate(ios_base::badbit); } 1586: if (__err) 1586: __os.setstate(__err); 1586: } 1586: return __os; 1586: } 1586: 1586: template 1586: struct _Get_time 1586: { 1586: std::tm* _M_tmb; 1586: const _CharT* _M_fmt; 1586: }; 1586: # 411 "/usr/mipsel-linux-gnu/include/c++/9/iomanip" 3 1586: template 1586: inline _Get_time<_CharT> 1586: get_time(std::tm* __tmb, const _CharT* __fmt) 1586: { return { __tmb, __fmt }; } 1586: 1586: template 1586: basic_istream<_CharT, _Traits>& 1586: operator>>(basic_istream<_CharT, _Traits>& __is, _Get_time<_CharT> __f) 1586: { 1586: typename basic_istream<_CharT, _Traits>::sentry __cerb(__is, false); 1586: if (__cerb) 1586: { 1586: ios_base::iostate __err = ios_base::goodbit; 1586: try 1586: { 1586: typedef istreambuf_iterator<_CharT, _Traits> _Iter; 1586: typedef time_get<_CharT, _Iter> _TimeGet; 1586: 1586: const _CharT* const __fmt_end = __f._M_fmt + 1586: _Traits::length(__f._M_fmt); 1586: 1586: const _TimeGet& __mg = use_facet<_TimeGet>(__is.getloc()); 1586: __mg.get(_Iter(__is.rdbuf()), _Iter(), __is, 1586: __err, __f._M_tmb, __f._M_fmt, __fmt_end); 1586: } 1586: catch(__cxxabiv1::__forced_unwind&) 1586: { 1586: __is._M_setstate(ios_base::badbit); 1586: throw; 1586: } 1586: catch(...) 1586: { __is._M_setstate(ios_base::badbit); } 1586: if (__err) 1586: __is.setstate(__err); 1586: } 1586: return __is; 1586: } 1586: # 508 "/usr/mipsel-linux-gnu/include/c++/9/iomanip" 3 1586: extern template ostream& operator<<(ostream&, _Setfill); 1586: extern template ostream& operator<<(ostream&, _Setiosflags); 1586: extern template ostream& operator<<(ostream&, _Resetiosflags); 1586: extern template ostream& operator<<(ostream&, _Setbase); 1586: extern template ostream& operator<<(ostream&, _Setprecision); 1586: extern template ostream& operator<<(ostream&, _Setw); 1586: extern template istream& operator>>(istream&, _Setfill); 1586: extern template istream& operator>>(istream&, _Setiosflags); 1586: extern template istream& operator>>(istream&, _Resetiosflags); 1586: extern template istream& operator>>(istream&, _Setbase); 1586: extern template istream& operator>>(istream&, _Setprecision); 1586: extern template istream& operator>>(istream&, _Setw); 1586: 1586: 1586: extern template wostream& operator<<(wostream&, _Setfill); 1586: extern template wostream& operator<<(wostream&, _Setiosflags); 1586: extern template wostream& operator<<(wostream&, _Resetiosflags); 1586: extern template wostream& operator<<(wostream&, _Setbase); 1586: extern template wostream& operator<<(wostream&, _Setprecision); 1586: extern template wostream& operator<<(wostream&, _Setw); 1586: extern template wistream& operator>>(wistream&, _Setfill); 1586: extern template wistream& operator>>(wistream&, _Setiosflags); 1586: extern template wistream& operator>>(wistream&, _Resetiosflags); 1586: extern template wistream& operator>>(wistream&, _Setbase); 1586: extern template wistream& operator>>(wistream&, _Setprecision); 1586: extern template wistream& operator>>(wistream&, _Setw); 1586: 1586: 1586: 1586: 1586: } 1586: # 27 "/<>/include/HepMC3/Attribute.h" 2 1586: 1586: 1586: 1586: 1586: 1586: 1586: # 32 "/<>/include/HepMC3/Attribute.h" 1586: using std::string; 1586: 1586: namespace HepMC3 { 1586: 1586: 1586: class GenEvent; 1586: 1586: 1586: class GenRunInfo; 1586: 1586: 1586: 1586: 1586: class Attribute { 1586: 1586: 1586: 1586: public: 1586: 1586: 1586: Attribute():m_is_parsed(true) { m_event=nullptr; } 1586: 1586: 1586: virtual ~Attribute() {} 1586: 1586: protected: 1586: # 67 "/<>/include/HepMC3/Attribute.h" 1586: explicit Attribute(const string &st):m_is_parsed(false),m_string(st) { m_event=nullptr; } 1586: 1586: 1586: friend class GenEvent; 1586: 1586: 1586: 1586: 1586: public: 1586: 1586: 1586: virtual bool from_string(const string & att) = 0; 1586: 1586: 1586: 1586: virtual bool init() { 1586: return true; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: virtual bool init(const GenRunInfo & ) { 1586: return true; 1586: } 1586: 1586: 1586: virtual bool to_string(string &att) const = 0; 1586: 1586: 1586: 1586: 1586: public: 1586: 1586: bool is_parsed() const { return m_is_parsed; } 1586: 1586: 1586: const string& unparsed_string() const { return m_string; } 1586: 1586: 1586: const GenEvent * event() const { 1586: return m_event; 1586: } 1586: 1586: 1586: GenParticlePtr particle() { 1586: return m_particle; 1586: } 1586: 1586: 1586: ConstGenParticlePtr particle() const { 1586: return std::const_pointer_cast(m_particle); 1586: } 1586: 1586: 1586: GenVertexPtr vertex() { 1586: return m_vertex; 1586: } 1586: 1586: 1586: ConstGenVertexPtr vertex() const { 1586: return std::const_pointer_cast(m_vertex); 1586: } 1586: 1586: protected: 1586: 1586: void set_is_parsed(bool flag) { m_is_parsed = flag; } 1586: 1586: 1586: void set_unparsed_string(const string &st) { m_string = st; } 1586: 1586: 1586: 1586: 1586: private: 1586: bool m_is_parsed; 1586: string m_string; 1586: const GenEvent * m_event; 1586: 1586: GenParticlePtr m_particle; 1586: GenVertexPtr m_vertex; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: class IntAttribute : public Attribute { 1586: public: 1586: 1586: 1586: IntAttribute():Attribute(),m_val(0) {} 1586: 1586: 1586: IntAttribute(int val):Attribute(),m_val(val) {} 1586: 1586: 1586: bool from_string(const string &att) { 1586: m_val = atoi( att.c_str() ); 1586: return true; 1586: } 1586: 1586: 1586: bool to_string(string &att) const { 1586: att = std::to_string(m_val); 1586: return true; 1586: } 1586: 1586: 1586: int value() const { 1586: return m_val; 1586: } 1586: 1586: 1586: void set_value(const int& i) { 1586: m_val = i; 1586: } 1586: 1586: private: 1586: int m_val; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: class LongAttribute : public Attribute { 1586: public: 1586: 1586: 1586: LongAttribute(): Attribute(), m_val(0) {} 1586: 1586: 1586: LongAttribute(long val): Attribute(), m_val(val) {} 1586: 1586: 1586: bool from_string(const string &att) { 1586: m_val = atol( att.c_str() ); 1586: return true; 1586: } 1586: 1586: 1586: bool to_string(string &att) const { 1586: att = std::to_string(m_val); 1586: return true; 1586: } 1586: 1586: 1586: long value() const { 1586: return m_val; 1586: } 1586: 1586: 1586: void set_value(const long& l) { 1586: m_val = l; 1586: } 1586: 1586: private: 1586: 1586: long m_val; 1586: 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: class DoubleAttribute : public Attribute { 1586: public: 1586: 1586: 1586: DoubleAttribute(): Attribute(), m_val(0.0) {} 1586: 1586: 1586: DoubleAttribute(double val): Attribute(), m_val(val) {} 1586: 1586: 1586: bool from_string(const string &att) { 1586: m_val = atof( att.c_str() ); 1586: return true; 1586: } 1586: 1586: 1586: bool to_string(string &att) const { 1586: std::ostringstream oss; 1586: oss << std::setprecision(std::numeric_limits::digits10) 1586: << m_val; 1586: att = oss.str(); 1586: return true; 1586: } 1586: 1586: 1586: double value() const { 1586: return m_val; 1586: } 1586: 1586: 1586: void set_value(const double& d) { 1586: m_val = d; 1586: } 1586: 1586: private: 1586: 1586: double m_val; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: class FloatAttribute : public Attribute { 1586: public: 1586: 1586: 1586: FloatAttribute(): Attribute(), m_val(0.0) {} 1586: 1586: 1586: FloatAttribute(float val): Attribute(), m_val(val) {} 1586: 1586: 1586: bool from_string(const string &att) { 1586: m_val = float(atof( att.c_str() )); 1586: return true; 1586: } 1586: 1586: 1586: bool to_string(string &att) const { 1586: std::ostringstream oss; 1586: oss << std::setprecision(std::numeric_limits::digits10) 1586: << m_val; 1586: att = oss.str(); 1586: return true; 1586: } 1586: 1586: 1586: float value() const { 1586: return m_val; 1586: } 1586: 1586: 1586: void set_value(const float& f) { 1586: m_val = f; 1586: } 1586: 1586: private: 1586: 1586: float m_val; 1586: }; 1586: # 336 "/<>/include/HepMC3/Attribute.h" 1586: class StringAttribute : public Attribute { 1586: public: 1586: 1586: 1586: StringAttribute():Attribute() {} 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: StringAttribute(const string &st):Attribute(st) {} 1586: 1586: 1586: bool from_string(const string &att) { 1586: set_unparsed_string(att); 1586: return true; 1586: } 1586: 1586: 1586: bool to_string(string &att) const { 1586: att = unparsed_string(); 1586: return true; 1586: } 1586: 1586: 1586: string value() const { 1586: return unparsed_string(); 1586: } 1586: 1586: 1586: void set_value(const string& s) { 1586: set_unparsed_string(s); 1586: } 1586: 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: class CharAttribute : public Attribute { 1586: public: 1586: 1586: 1586: CharAttribute():Attribute(),m_val(0) {} 1586: 1586: 1586: CharAttribute(char val):Attribute(),m_val(val) {} 1586: 1586: 1586: bool from_string(const string &att) { 1586: if (att.size()) 1586: { 1586: m_val = att.at(0); 1586: return true; 1586: } 1586: return false; 1586: } 1586: 1586: 1586: bool to_string(string &att) const { 1586: att = std::to_string(m_val); 1586: return true; 1586: } 1586: 1586: 1586: char value() const { 1586: return m_val; 1586: } 1586: 1586: 1586: void set_value(const char& i) { 1586: m_val = i; 1586: } 1586: 1586: private: 1586: char m_val; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: class LongLongAttribute : public Attribute { 1586: public: 1586: 1586: 1586: LongLongAttribute(): Attribute(), m_val(0) {} 1586: 1586: 1586: LongLongAttribute(long long val): Attribute(), m_val(val) {} 1586: 1586: 1586: bool from_string(const string &att) { 1586: m_val = atoll( att.c_str() ); 1586: return true; 1586: } 1586: 1586: 1586: bool to_string(string &att) const { 1586: att = std::to_string(m_val); 1586: return true; 1586: } 1586: 1586: 1586: long long value() const { 1586: return m_val; 1586: } 1586: 1586: 1586: void set_value(const long long& l) { 1586: m_val = l; 1586: } 1586: 1586: private: 1586: 1586: long long m_val; 1586: 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: class LongDoubleAttribute : public Attribute { 1586: public: 1586: 1586: 1586: LongDoubleAttribute(): Attribute(), m_val(0.0) {} 1586: 1586: 1586: LongDoubleAttribute(long double val): Attribute(), m_val(val) {} 1586: 1586: 1586: bool from_string(const string &att) { 1586: m_val = strtold( att.c_str(), 1586: # 479 "/<>/include/HepMC3/Attribute.h" 3 4 1586: __null 1586: # 479 "/<>/include/HepMC3/Attribute.h" 1586: ); 1586: return true; 1586: } 1586: 1586: 1586: bool to_string(string &att) const { 1586: std::ostringstream oss; 1586: oss << std::setprecision(std::numeric_limits::digits10) 1586: << m_val; 1586: att = oss.str(); 1586: return true; 1586: } 1586: 1586: 1586: long double value() const { 1586: return m_val; 1586: } 1586: 1586: 1586: void set_value(const long double& d) { 1586: m_val = d; 1586: } 1586: 1586: private: 1586: 1586: long double m_val; 1586: }; 1586: # 515 "/<>/include/HepMC3/Attribute.h" 1586: class UIntAttribute : public Attribute { 1586: public: 1586: 1586: 1586: UIntAttribute():Attribute(),m_val(0) {} 1586: 1586: 1586: UIntAttribute(unsigned int val):Attribute(),m_val(val) {} 1586: 1586: 1586: bool from_string(const string &att) { 1586: m_val = strtoul(att.c_str(), 1586: # 526 "/<>/include/HepMC3/Attribute.h" 3 4 1586: __null 1586: # 526 "/<>/include/HepMC3/Attribute.h" 1586: , 0); 1586: return true; 1586: } 1586: 1586: 1586: bool to_string(string &att) const { 1586: att = std::to_string(m_val); 1586: return true; 1586: } 1586: 1586: 1586: unsigned int value() const { 1586: return m_val; 1586: } 1586: 1586: 1586: void set_value(const unsigned int& i) { 1586: m_val = i; 1586: } 1586: 1586: private: 1586: unsigned int m_val; 1586: }; 1586: # 558 "/<>/include/HepMC3/Attribute.h" 1586: class ULongAttribute : public Attribute { 1586: public: 1586: 1586: 1586: ULongAttribute():Attribute(),m_val(0) {} 1586: 1586: 1586: ULongAttribute(unsigned long val):Attribute(),m_val(val) {} 1586: 1586: 1586: bool from_string(const string &att) { 1586: m_val = strtoul(att.c_str(), 1586: # 569 "/<>/include/HepMC3/Attribute.h" 3 4 1586: __null 1586: # 569 "/<>/include/HepMC3/Attribute.h" 1586: , 0); 1586: return true; 1586: } 1586: 1586: 1586: bool to_string(string &att) const { 1586: att = std::to_string(m_val); 1586: return true; 1586: } 1586: 1586: 1586: unsigned long value() const { 1586: return m_val; 1586: } 1586: 1586: 1586: void set_value(const unsigned long& i) { 1586: m_val = i; 1586: } 1586: 1586: private: 1586: unsigned long m_val; 1586: }; 1586: # 600 "/<>/include/HepMC3/Attribute.h" 1586: class ULongLongAttribute : public Attribute { 1586: public: 1586: 1586: 1586: ULongLongAttribute():Attribute(),m_val(0) {} 1586: 1586: 1586: ULongLongAttribute(unsigned long long val):Attribute(),m_val(val) {} 1586: 1586: 1586: bool from_string(const string &att) { 1586: m_val = strtoull(att.c_str(), 1586: # 611 "/<>/include/HepMC3/Attribute.h" 3 4 1586: __null 1586: # 611 "/<>/include/HepMC3/Attribute.h" 1586: , 0); 1586: return true; 1586: } 1586: 1586: 1586: bool to_string(string &att) const { 1586: att = std::to_string(m_val); 1586: return true; 1586: } 1586: 1586: 1586: unsigned long long value() const { 1586: return m_val; 1586: } 1586: 1586: 1586: void set_value(const unsigned long long& i) { 1586: m_val = i; 1586: } 1586: 1586: private: 1586: unsigned long long m_val; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: class BoolAttribute : public Attribute { 1586: public: 1586: 1586: 1586: BoolAttribute():Attribute(),m_val(false) {} 1586: 1586: 1586: BoolAttribute(bool val):Attribute(),m_val(val) {} 1586: 1586: 1586: bool from_string(const string &att) { 1586: if (att.size()!=1) return false; 1586: if(att==std::string("1")) {m_val = true; return true;} 1586: if(att==std::string("0")) {m_val = false; return true;} 1586: return false; 1586: } 1586: 1586: 1586: bool to_string(string &att) const { 1586: att = std::to_string(m_val); 1586: return true; 1586: } 1586: 1586: 1586: bool value() const { 1586: return m_val; 1586: } 1586: 1586: 1586: void set_value(const bool& i) { 1586: m_val = i; 1586: } 1586: 1586: private: 1586: bool m_val; 1586: }; 1586: 1586: 1586: } 1586: # 23 "/<>/include/HepMC3/GenHeavyIon.h" 2 1586: 1586: namespace HepMC3 { 1586: using namespace std; 1586: 1586: class GenHeavyIon : public Attribute { 1586: 1586: public: 1586: 1586: 1586: GenHeavyIon() 1586: : Ncoll_hard(-1), Npart_proj(-1), Npart_targ(-1), Ncoll(-1), 1586: 1586: spectator_neutrons(-1), spectator_protons(-1), 1586: 1586: N_Nwounded_collisions(-1), Nwounded_N_collisions(-1), 1586: Nwounded_Nwounded_collisions(-1), impact_parameter(-1.0), 1586: event_plane_angle(-1.0), 1586: 1586: eccentricity(-1.0), 1586: 1586: sigma_inel_NN(-1.0), centrality(-1.0), user_cent_estimate(-1.0), 1586: Nspec_proj_n(-1), Nspec_targ_n(-1), 1586: Nspec_proj_p(-1), Nspec_targ_p(-1), forceoldformat(false) {} 1586: 1586: 1586: 1586: 1586: public: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: int Ncoll_hard; 1586: 1586: 1586: 1586: 1586: 1586: 1586: int Npart_proj; 1586: 1586: 1586: 1586: 1586: 1586: 1586: int Npart_targ; 1586: # 81 "/<>/include/HepMC3/GenHeavyIon.h" 1586: int Ncoll; 1586: 1586: 1586: 1586: 1586: 1586: int spectator_neutrons; 1586: 1586: 1586: 1586: 1586: int spectator_protons; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: int N_Nwounded_collisions; 1586: 1586: 1586: 1586: 1586: 1586: 1586: int Nwounded_N_collisions; 1586: 1586: 1586: 1586: 1586: 1586: 1586: int Nwounded_Nwounded_collisions; 1586: 1586: 1586: 1586: 1586: 1586: double impact_parameter; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: double event_plane_angle; 1586: 1586: 1586: 1586: 1586: 1586: double eccentricity; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: double sigma_inel_NN; 1586: 1586: 1586: 1586: 1586: 1586: 1586: double centrality; 1586: # 158 "/<>/include/HepMC3/GenHeavyIon.h" 1586: double user_cent_estimate; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: int Nspec_proj_n; 1586: 1586: 1586: 1586: 1586: 1586: 1586: int Nspec_targ_n; 1586: 1586: 1586: 1586: 1586: 1586: 1586: int Nspec_proj_p; 1586: 1586: 1586: 1586: 1586: 1586: 1586: int Nspec_targ_p; 1586: 1586: 1586: 1586: 1586: 1586: 1586: map participant_plane_angles; 1586: 1586: 1586: 1586: 1586: 1586: map eccentricities; 1586: 1586: 1586: 1586: 1586: public: 1586: 1586: 1586: bool from_string(const string &att); 1586: 1586: 1586: bool to_string(string &att) const; 1586: 1586: 1586: 1586: 1586: 1586: bool operator==( const GenHeavyIon& ) const; 1586: 1586: 1586: bool operator!=( const GenHeavyIon& ) const; 1586: 1586: 1586: 1586: 1586: 1586: void set( const int&nh, const int&np, const int&nt, const int&nc, const int&ns, const int&nsp, 1586: const int&nnw=0, const int&nwn=0, const int&nwnw=0, 1586: const double& im=0., const double& pl=0., const double& ec=0., const double& s=0., const double& cent=0., const double& ucent=0. ); 1586: 1586: 1586: 1586: 1586: 1586: bool is_valid() const; 1586: 1586: 1586: 1586: 1586: bool forceoldformat; 1586: 1586: 1586: 1586: }; 1586: 1586: 1586: 1586: typedef GenHeavyIon HeavyIon; 1586: 1586: 1586: 1586: } 1586: # 23 "/<>/include/HepMC3/GenEvent.h" 2 1586: # 1 "/<>/include/HepMC3/GenPdfInfo.h" 1 1586: # 30 "/<>/include/HepMC3/GenPdfInfo.h" 1586: namespace HepMC3 { 1586: 1586: class GenPdfInfo : public Attribute { 1586: 1586: 1586: 1586: 1586: public: 1586: int parton_id[2]; 1586: int pdf_id[2]; 1586: double scale; 1586: double x[2]; 1586: double xf[2]; 1586: 1586: 1586: 1586: 1586: public: 1586: 1586: bool from_string(const string &att); 1586: 1586: 1586: bool to_string(string &att) const; 1586: 1586: 1586: void set( const int& parton_id1, const int& parton_id2, const double& x1, const double& x2, 1586: const double& scale_in, const double& xf1, const double& xf2, 1586: const int& pdf_id1 = 0, const int& pdf_id2 = 0 ); 1586: 1586: bool operator==( const GenPdfInfo& ) const; 1586: bool operator!=( const GenPdfInfo& ) const; 1586: bool is_valid() const; 1586: }; 1586: 1586: } 1586: # 24 "/<>/include/HepMC3/GenEvent.h" 2 1586: # 1 "/<>/include/HepMC3/GenCrossSection.h" 1 1586: # 35 "/<>/include/HepMC3/GenCrossSection.h" 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/algorithm" 1 3 1586: # 58 "/usr/mipsel-linux-gnu/include/c++/9/algorithm" 3 1586: 1586: # 59 "/usr/mipsel-linux-gnu/include/c++/9/algorithm" 3 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 1 3 1586: # 59 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/cstdlib" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/cstdlib" 3 1586: 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/cstdlib" 3 1586: # 60 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/algorithmfwd.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/algorithmfwd.h" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/algorithmfwd.h" 3 1586: # 42 "/usr/mipsel-linux-gnu/include/c++/9/bits/algorithmfwd.h" 3 1586: 1586: # 42 "/usr/mipsel-linux-gnu/include/c++/9/bits/algorithmfwd.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 195 "/usr/mipsel-linux-gnu/include/c++/9/bits/algorithmfwd.h" 3 1586: template 1586: bool 1586: all_of(_IIter, _IIter, _Predicate); 1586: 1586: template 1586: bool 1586: any_of(_IIter, _IIter, _Predicate); 1586: 1586: 1586: template 1586: bool 1586: binary_search(_FIter, _FIter, const _Tp&); 1586: 1586: template 1586: bool 1586: binary_search(_FIter, _FIter, const _Tp&, _Compare); 1586: # 224 "/usr/mipsel-linux-gnu/include/c++/9/bits/algorithmfwd.h" 3 1586: template 1586: _OIter 1586: copy(_IIter, _IIter, _OIter); 1586: 1586: template 1586: _BIter2 1586: copy_backward(_BIter1, _BIter1, _BIter2); 1586: 1586: 1586: template 1586: _OIter 1586: copy_if(_IIter, _IIter, _OIter, _Predicate); 1586: 1586: template 1586: _OIter 1586: copy_n(_IIter, _Size, _OIter); 1586: 1586: 1586: 1586: 1586: 1586: template 1586: pair<_FIter, _FIter> 1586: equal_range(_FIter, _FIter, const _Tp&); 1586: 1586: template 1586: pair<_FIter, _FIter> 1586: equal_range(_FIter, _FIter, const _Tp&, _Compare); 1586: 1586: template 1586: void 1586: fill(_FIter, _FIter, const _Tp&); 1586: 1586: template 1586: _OIter 1586: fill_n(_OIter, _Size, const _Tp&); 1586: 1586: 1586: 1586: template 1586: _FIter1 1586: find_end(_FIter1, _FIter1, _FIter2, _FIter2); 1586: 1586: template 1586: _FIter1 1586: find_end(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 1586: 1586: 1586: 1586: 1586: 1586: template 1586: _IIter 1586: find_if_not(_IIter, _IIter, _Predicate); 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: bool 1586: includes(_IIter1, _IIter1, _IIter2, _IIter2); 1586: 1586: template 1586: bool 1586: includes(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); 1586: 1586: template 1586: void 1586: inplace_merge(_BIter, _BIter, _BIter); 1586: 1586: template 1586: void 1586: inplace_merge(_BIter, _BIter, _BIter, _Compare); 1586: 1586: 1586: template 1586: bool 1586: is_heap(_RAIter, _RAIter); 1586: 1586: template 1586: bool 1586: is_heap(_RAIter, _RAIter, _Compare); 1586: 1586: template 1586: _RAIter 1586: is_heap_until(_RAIter, _RAIter); 1586: 1586: template 1586: _RAIter 1586: is_heap_until(_RAIter, _RAIter, _Compare); 1586: 1586: template 1586: bool 1586: is_partitioned(_IIter, _IIter, _Predicate); 1586: 1586: template 1586: bool 1586: is_permutation(_FIter1, _FIter1, _FIter2); 1586: 1586: template 1586: bool 1586: is_permutation(_FIter1, _FIter1, _FIter2, _BinaryPredicate); 1586: 1586: template 1586: bool 1586: is_sorted(_FIter, _FIter); 1586: 1586: template 1586: bool 1586: is_sorted(_FIter, _FIter, _Compare); 1586: 1586: template 1586: _FIter 1586: is_sorted_until(_FIter, _FIter); 1586: 1586: template 1586: _FIter 1586: is_sorted_until(_FIter, _FIter, _Compare); 1586: 1586: 1586: template 1586: void 1586: iter_swap(_FIter1, _FIter2); 1586: 1586: template 1586: _FIter 1586: lower_bound(_FIter, _FIter, const _Tp&); 1586: 1586: template 1586: _FIter 1586: lower_bound(_FIter, _FIter, const _Tp&, _Compare); 1586: 1586: template 1586: void 1586: make_heap(_RAIter, _RAIter); 1586: 1586: template 1586: void 1586: make_heap(_RAIter, _RAIter, _Compare); 1586: 1586: template 1586: 1586: const _Tp& 1586: max(const _Tp&, const _Tp&); 1586: 1586: template 1586: 1586: const _Tp& 1586: max(const _Tp&, const _Tp&, _Compare); 1586: 1586: 1586: 1586: 1586: template 1586: 1586: const _Tp& 1586: min(const _Tp&, const _Tp&); 1586: 1586: template 1586: 1586: const _Tp& 1586: min(const _Tp&, const _Tp&, _Compare); 1586: 1586: 1586: 1586: 1586: template 1586: 1586: pair 1586: minmax(const _Tp&, const _Tp&); 1586: 1586: template 1586: 1586: pair 1586: minmax(const _Tp&, const _Tp&, _Compare); 1586: 1586: template 1586: 1586: pair<_FIter, _FIter> 1586: minmax_element(_FIter, _FIter); 1586: 1586: template 1586: 1586: pair<_FIter, _FIter> 1586: minmax_element(_FIter, _FIter, _Compare); 1586: 1586: template 1586: 1586: _Tp 1586: min(initializer_list<_Tp>); 1586: 1586: template 1586: 1586: _Tp 1586: min(initializer_list<_Tp>, _Compare); 1586: 1586: template 1586: 1586: _Tp 1586: max(initializer_list<_Tp>); 1586: 1586: template 1586: 1586: _Tp 1586: max(initializer_list<_Tp>, _Compare); 1586: 1586: template 1586: 1586: pair<_Tp, _Tp> 1586: minmax(initializer_list<_Tp>); 1586: 1586: template 1586: 1586: pair<_Tp, _Tp> 1586: minmax(initializer_list<_Tp>, _Compare); 1586: 1586: 1586: 1586: 1586: template 1586: bool 1586: next_permutation(_BIter, _BIter); 1586: 1586: template 1586: bool 1586: next_permutation(_BIter, _BIter, _Compare); 1586: 1586: 1586: template 1586: bool 1586: none_of(_IIter, _IIter, _Predicate); 1586: 1586: 1586: 1586: 1586: 1586: template 1586: _RAIter 1586: partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter); 1586: 1586: template 1586: _RAIter 1586: partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter, _Compare); 1586: 1586: 1586: 1586: 1586: template 1586: pair<_OIter1, _OIter2> 1586: partition_copy(_IIter, _IIter, _OIter1, _OIter2, _Predicate); 1586: 1586: template 1586: _FIter 1586: partition_point(_FIter, _FIter, _Predicate); 1586: 1586: 1586: template 1586: void 1586: pop_heap(_RAIter, _RAIter); 1586: 1586: template 1586: void 1586: pop_heap(_RAIter, _RAIter, _Compare); 1586: 1586: template 1586: bool 1586: prev_permutation(_BIter, _BIter); 1586: 1586: template 1586: bool 1586: prev_permutation(_BIter, _BIter, _Compare); 1586: 1586: template 1586: void 1586: push_heap(_RAIter, _RAIter); 1586: 1586: template 1586: void 1586: push_heap(_RAIter, _RAIter, _Compare); 1586: 1586: 1586: 1586: template 1586: _FIter 1586: remove(_FIter, _FIter, const _Tp&); 1586: 1586: template 1586: _FIter 1586: remove_if(_FIter, _FIter, _Predicate); 1586: 1586: template 1586: _OIter 1586: remove_copy(_IIter, _IIter, _OIter, const _Tp&); 1586: 1586: template 1586: _OIter 1586: remove_copy_if(_IIter, _IIter, _OIter, _Predicate); 1586: 1586: 1586: 1586: template 1586: _OIter 1586: replace_copy(_IIter, _IIter, _OIter, const _Tp&, const _Tp&); 1586: 1586: template 1586: _OIter 1586: replace_copy_if(_Iter, _Iter, _OIter, _Predicate, const _Tp&); 1586: 1586: 1586: 1586: template 1586: void 1586: reverse(_BIter, _BIter); 1586: 1586: template 1586: _OIter 1586: reverse_copy(_BIter, _BIter, _OIter); 1586: 1586: inline namespace _V2 1586: { 1586: template 1586: _FIter 1586: rotate(_FIter, _FIter, _FIter); 1586: } 1586: 1586: template 1586: _OIter 1586: rotate_copy(_FIter, _FIter, _FIter, _OIter); 1586: # 565 "/usr/mipsel-linux-gnu/include/c++/9/bits/algorithmfwd.h" 3 1586: template 1586: void 1586: shuffle(_RAIter, _RAIter, _UGenerator&&); 1586: 1586: 1586: template 1586: void 1586: sort_heap(_RAIter, _RAIter); 1586: 1586: template 1586: void 1586: sort_heap(_RAIter, _RAIter, _Compare); 1586: 1586: template 1586: _BIter 1586: stable_partition(_BIter, _BIter, _Predicate); 1586: # 594 "/usr/mipsel-linux-gnu/include/c++/9/bits/algorithmfwd.h" 3 1586: template 1586: _FIter2 1586: swap_ranges(_FIter1, _FIter1, _FIter2); 1586: 1586: 1586: 1586: template 1586: _FIter 1586: unique(_FIter, _FIter); 1586: 1586: template 1586: _FIter 1586: unique(_FIter, _FIter, _BinaryPredicate); 1586: 1586: 1586: 1586: template 1586: _FIter 1586: upper_bound(_FIter, _FIter, const _Tp&); 1586: 1586: template 1586: _FIter 1586: upper_bound(_FIter, _FIter, const _Tp&, _Compare); 1586: 1586: 1586: 1586: template 1586: _FIter 1586: adjacent_find(_FIter, _FIter); 1586: 1586: template 1586: _FIter 1586: adjacent_find(_FIter, _FIter, _BinaryPredicate); 1586: 1586: template 1586: typename iterator_traits<_IIter>::difference_type 1586: count(_IIter, _IIter, const _Tp&); 1586: 1586: template 1586: typename iterator_traits<_IIter>::difference_type 1586: count_if(_IIter, _IIter, _Predicate); 1586: 1586: template 1586: bool 1586: equal(_IIter1, _IIter1, _IIter2); 1586: 1586: template 1586: bool 1586: equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate); 1586: 1586: template 1586: _IIter 1586: find(_IIter, _IIter, const _Tp&); 1586: 1586: template 1586: _FIter1 1586: find_first_of(_FIter1, _FIter1, _FIter2, _FIter2); 1586: 1586: template 1586: _FIter1 1586: find_first_of(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 1586: 1586: template 1586: _IIter 1586: find_if(_IIter, _IIter, _Predicate); 1586: 1586: template 1586: _Funct 1586: for_each(_IIter, _IIter, _Funct); 1586: 1586: template 1586: void 1586: generate(_FIter, _FIter, _Generator); 1586: 1586: template 1586: _OIter 1586: generate_n(_OIter, _Size, _Generator); 1586: 1586: template 1586: bool 1586: lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2); 1586: 1586: template 1586: bool 1586: lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); 1586: 1586: template 1586: 1586: _FIter 1586: max_element(_FIter, _FIter); 1586: 1586: template 1586: 1586: _FIter 1586: max_element(_FIter, _FIter, _Compare); 1586: 1586: template 1586: _OIter 1586: merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 1586: 1586: template 1586: _OIter 1586: merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 1586: 1586: template 1586: 1586: _FIter 1586: min_element(_FIter, _FIter); 1586: 1586: template 1586: 1586: _FIter 1586: min_element(_FIter, _FIter, _Compare); 1586: 1586: template 1586: pair<_IIter1, _IIter2> 1586: mismatch(_IIter1, _IIter1, _IIter2); 1586: 1586: template 1586: pair<_IIter1, _IIter2> 1586: mismatch(_IIter1, _IIter1, _IIter2, _BinaryPredicate); 1586: 1586: template 1586: void 1586: nth_element(_RAIter, _RAIter, _RAIter); 1586: 1586: template 1586: void 1586: nth_element(_RAIter, _RAIter, _RAIter, _Compare); 1586: 1586: template 1586: void 1586: partial_sort(_RAIter, _RAIter, _RAIter); 1586: 1586: template 1586: void 1586: partial_sort(_RAIter, _RAIter, _RAIter, _Compare); 1586: 1586: template 1586: _BIter 1586: partition(_BIter, _BIter, _Predicate); 1586: 1586: template 1586: void 1586: random_shuffle(_RAIter, _RAIter); 1586: 1586: template 1586: void 1586: random_shuffle(_RAIter, _RAIter, 1586: 1586: _Generator&&); 1586: 1586: 1586: 1586: 1586: template 1586: void 1586: replace(_FIter, _FIter, const _Tp&, const _Tp&); 1586: 1586: template 1586: void 1586: replace_if(_FIter, _FIter, _Predicate, const _Tp&); 1586: 1586: template 1586: _FIter1 1586: search(_FIter1, _FIter1, _FIter2, _FIter2); 1586: 1586: template 1586: _FIter1 1586: search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 1586: 1586: template 1586: _FIter 1586: search_n(_FIter, _FIter, _Size, const _Tp&); 1586: 1586: template 1586: _FIter 1586: search_n(_FIter, _FIter, _Size, const _Tp&, _BinaryPredicate); 1586: 1586: template 1586: _OIter 1586: set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 1586: 1586: template 1586: _OIter 1586: set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 1586: 1586: template 1586: _OIter 1586: set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 1586: 1586: template 1586: _OIter 1586: set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 1586: 1586: template 1586: _OIter 1586: set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 1586: 1586: template 1586: _OIter 1586: set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, 1586: _OIter, _Compare); 1586: 1586: template 1586: _OIter 1586: set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 1586: 1586: template 1586: _OIter 1586: set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 1586: 1586: template 1586: void 1586: sort(_RAIter, _RAIter); 1586: 1586: template 1586: void 1586: sort(_RAIter, _RAIter, _Compare); 1586: 1586: template 1586: void 1586: stable_sort(_RAIter, _RAIter); 1586: 1586: template 1586: void 1586: stable_sort(_RAIter, _RAIter, _Compare); 1586: 1586: template 1586: _OIter 1586: transform(_IIter, _IIter, _OIter, _UnaryOperation); 1586: 1586: template 1586: _OIter 1586: transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation); 1586: 1586: template 1586: _OIter 1586: unique_copy(_IIter, _IIter, _OIter); 1586: 1586: template 1586: _OIter 1586: unique_copy(_IIter, _IIter, _OIter, _BinaryPredicate); 1586: 1586: 1586: 1586: } 1586: # 61 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_heap.h" 1 3 1586: # 62 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_heap.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: _Distance 1586: __is_heap_until(_RandomAccessIterator __first, _Distance __n, 1586: _Compare& __comp) 1586: { 1586: _Distance __parent = 0; 1586: for (_Distance __child = 1; __child < __n; ++__child) 1586: { 1586: if (__comp(__first + __parent, __first + __child)) 1586: return __child; 1586: if ((__child & 1) == 0) 1586: ++__parent; 1586: } 1586: return __n; 1586: } 1586: 1586: 1586: 1586: template 1586: inline bool 1586: __is_heap(_RandomAccessIterator __first, _Distance __n) 1586: { 1586: __gnu_cxx::__ops::_Iter_less_iter __comp; 1586: return std::__is_heap_until(__first, __n, __comp) == __n; 1586: } 1586: 1586: template 1586: inline bool 1586: __is_heap(_RandomAccessIterator __first, _Compare __comp, _Distance __n) 1586: { 1586: typedef __decltype(__comp) _Cmp; 1586: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 1586: return std::__is_heap_until(__first, __n, __cmp) == __n; 1586: } 1586: 1586: template 1586: inline bool 1586: __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 1586: { return std::__is_heap(__first, std::distance(__first, __last)); } 1586: 1586: template 1586: inline bool 1586: __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 1586: _Compare __comp) 1586: { 1586: return std::__is_heap(__first, std::move(__comp), 1586: std::distance(__first, __last)); 1586: } 1586: 1586: 1586: 1586: 1586: template 1586: void 1586: __push_heap(_RandomAccessIterator __first, 1586: _Distance __holeIndex, _Distance __topIndex, _Tp __value, 1586: _Compare& __comp) 1586: { 1586: _Distance __parent = (__holeIndex - 1) / 2; 1586: while (__holeIndex > __topIndex && __comp(__first + __parent, __value)) 1586: { 1586: *(__first + __holeIndex) = std::move(*(__first + __parent)); 1586: __holeIndex = __parent; 1586: __parent = (__holeIndex - 1) / 2; 1586: } 1586: *(__first + __holeIndex) = std::move(__value); 1586: } 1586: # 152 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_heap.h" 3 1586: template 1586: inline void 1586: push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 1586: { 1586: typedef typename iterator_traits<_RandomAccessIterator>::value_type 1586: _ValueType; 1586: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 1586: _DistanceType; 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: 1586: __gnu_cxx::__ops::_Iter_less_val __comp; 1586: _ValueType __value = std::move(*(__last - 1)); 1586: std::__push_heap(__first, _DistanceType((__last - __first) - 1), 1586: _DistanceType(0), std::move(__value), __comp); 1586: } 1586: # 187 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_heap.h" 3 1586: template 1586: inline void 1586: push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 1586: _Compare __comp) 1586: { 1586: typedef typename iterator_traits<_RandomAccessIterator>::value_type 1586: _ValueType; 1586: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 1586: _DistanceType; 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: 1586: __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) 1586: __cmp(std::move(__comp)); 1586: _ValueType __value = std::move(*(__last - 1)); 1586: std::__push_heap(__first, _DistanceType((__last - __first) - 1), 1586: _DistanceType(0), std::move(__value), __cmp); 1586: } 1586: 1586: template 1586: void 1586: __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, 1586: _Distance __len, _Tp __value, _Compare __comp) 1586: { 1586: const _Distance __topIndex = __holeIndex; 1586: _Distance __secondChild = __holeIndex; 1586: while (__secondChild < (__len - 1) / 2) 1586: { 1586: __secondChild = 2 * (__secondChild + 1); 1586: if (__comp(__first + __secondChild, 1586: __first + (__secondChild - 1))) 1586: __secondChild--; 1586: *(__first + __holeIndex) = std::move(*(__first + __secondChild)); 1586: __holeIndex = __secondChild; 1586: } 1586: if ((__len & 1) == 0 && __secondChild == (__len - 2) / 2) 1586: { 1586: __secondChild = 2 * (__secondChild + 1); 1586: *(__first + __holeIndex) = std::move(*(__first + (__secondChild - 1))) 1586: ; 1586: __holeIndex = __secondChild - 1; 1586: } 1586: __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) 1586: __cmp(std::move(__comp)); 1586: std::__push_heap(__first, __holeIndex, __topIndex, 1586: std::move(__value), __cmp); 1586: } 1586: 1586: template 1586: inline void 1586: __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 1586: _RandomAccessIterator __result, _Compare& __comp) 1586: { 1586: typedef typename iterator_traits<_RandomAccessIterator>::value_type 1586: _ValueType; 1586: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 1586: _DistanceType; 1586: 1586: _ValueType __value = std::move(*__result); 1586: *__result = std::move(*__first); 1586: std::__adjust_heap(__first, _DistanceType(0), 1586: _DistanceType(__last - __first), 1586: std::move(__value), __comp); 1586: } 1586: # 269 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_heap.h" 3 1586: template 1586: inline void 1586: pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: ; 1586: 1586: if (__last - __first > 1) 1586: { 1586: --__last; 1586: __gnu_cxx::__ops::_Iter_less_iter __comp; 1586: std::__pop_heap(__first, __last, __last, __comp); 1586: } 1586: } 1586: # 302 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_heap.h" 3 1586: template 1586: inline void 1586: pop_heap(_RandomAccessIterator __first, 1586: _RandomAccessIterator __last, _Compare __comp) 1586: { 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: ; 1586: 1586: if (__last - __first > 1) 1586: { 1586: typedef __decltype(__comp) _Cmp; 1586: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 1586: --__last; 1586: std::__pop_heap(__first, __last, __last, __cmp); 1586: } 1586: } 1586: 1586: template 1586: void 1586: __make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 1586: _Compare& __comp) 1586: { 1586: typedef typename iterator_traits<_RandomAccessIterator>::value_type 1586: _ValueType; 1586: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 1586: _DistanceType; 1586: 1586: if (__last - __first < 2) 1586: return; 1586: 1586: const _DistanceType __len = __last - __first; 1586: _DistanceType __parent = (__len - 2) / 2; 1586: while (true) 1586: { 1586: _ValueType __value = std::move(*(__first + __parent)); 1586: std::__adjust_heap(__first, __parent, __len, std::move(__value), 1586: __comp); 1586: if (__parent == 0) 1586: return; 1586: __parent--; 1586: } 1586: } 1586: # 358 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_heap.h" 3 1586: template 1586: inline void 1586: make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: __gnu_cxx::__ops::_Iter_less_iter __comp; 1586: std::__make_heap(__first, __last, __comp); 1586: } 1586: # 384 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_heap.h" 3 1586: template 1586: inline void 1586: make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 1586: _Compare __comp) 1586: { 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: typedef __decltype(__comp) _Cmp; 1586: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 1586: std::__make_heap(__first, __last, __cmp); 1586: } 1586: 1586: template 1586: void 1586: __sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 1586: _Compare& __comp) 1586: { 1586: while (__last - __first > 1) 1586: { 1586: --__last; 1586: std::__pop_heap(__first, __last, __last, __comp); 1586: } 1586: } 1586: # 420 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_heap.h" 3 1586: template 1586: inline void 1586: sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: 1586: __gnu_cxx::__ops::_Iter_less_iter __comp; 1586: std::__sort_heap(__first, __last, __comp); 1586: } 1586: # 447 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_heap.h" 3 1586: template 1586: inline void 1586: sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 1586: _Compare __comp) 1586: { 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: 1586: typedef __decltype(__comp) _Cmp; 1586: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 1586: std::__sort_heap(__first, __last, __cmp); 1586: } 1586: # 475 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_heap.h" 3 1586: template 1586: inline _RandomAccessIterator 1586: is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: __gnu_cxx::__ops::_Iter_less_iter __comp; 1586: return __first + 1586: std::__is_heap_until(__first, std::distance(__first, __last), __comp); 1586: } 1586: # 503 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_heap.h" 3 1586: template 1586: inline _RandomAccessIterator 1586: is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last, 1586: _Compare __comp) 1586: { 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: typedef __decltype(__comp) _Cmp; 1586: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 1586: return __first 1586: + std::__is_heap_until(__first, std::distance(__first, __last), __cmp); 1586: } 1586: # 527 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_heap.h" 3 1586: template 1586: inline bool 1586: is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 1586: { return std::is_heap_until(__first, __last) == __last; } 1586: # 540 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_heap.h" 3 1586: template 1586: inline bool 1586: is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 1586: _Compare __comp) 1586: { 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: const auto __dist = std::distance(__first, __last); 1586: typedef __decltype(__comp) _Cmp; 1586: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 1586: return std::__is_heap_until(__first, __dist, __cmp) == __dist; 1586: } 1586: 1586: 1586: 1586: } 1586: # 62 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 2 3 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/uniform_int_dist.h" 1 3 1586: # 37 "/usr/mipsel-linux-gnu/include/c++/9/bits/uniform_int_dist.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: namespace __detail 1586: { 1586: 1586: template 1586: inline bool 1586: _Power_of_2(_Tp __x) 1586: { 1586: return ((__x - 1) & __x) == 0; 1586: } 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: class uniform_int_distribution 1586: { 1586: static_assert(std::is_integral<_IntType>::value, 1586: "template argument must be an integral type"); 1586: 1586: public: 1586: 1586: typedef _IntType result_type; 1586: 1586: struct param_type 1586: { 1586: typedef uniform_int_distribution<_IntType> distribution_type; 1586: 1586: param_type() : param_type(0) { } 1586: 1586: explicit 1586: param_type(_IntType __a, 1586: _IntType __b = numeric_limits<_IntType>::max()) 1586: : _M_a(__a), _M_b(__b) 1586: { 1586: ; 1586: } 1586: 1586: result_type 1586: a() const 1586: { return _M_a; } 1586: 1586: result_type 1586: b() const 1586: { return _M_b; } 1586: 1586: friend bool 1586: operator==(const param_type& __p1, const param_type& __p2) 1586: { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } 1586: 1586: friend bool 1586: operator!=(const param_type& __p1, const param_type& __p2) 1586: { return !(__p1 == __p2); } 1586: 1586: private: 1586: _IntType _M_a; 1586: _IntType _M_b; 1586: }; 1586: 1586: public: 1586: 1586: 1586: 1586: uniform_int_distribution() : uniform_int_distribution(0) { } 1586: 1586: 1586: 1586: 1586: explicit 1586: uniform_int_distribution(_IntType __a, 1586: _IntType __b = numeric_limits<_IntType>::max()) 1586: : _M_param(__a, __b) 1586: { } 1586: 1586: explicit 1586: uniform_int_distribution(const param_type& __p) 1586: : _M_param(__p) 1586: { } 1586: 1586: 1586: 1586: 1586: 1586: 1586: void 1586: reset() { } 1586: 1586: result_type 1586: a() const 1586: { return _M_param.a(); } 1586: 1586: result_type 1586: b() const 1586: { return _M_param.b(); } 1586: 1586: 1586: 1586: 1586: param_type 1586: param() const 1586: { return _M_param; } 1586: 1586: 1586: 1586: 1586: 1586: void 1586: param(const param_type& __param) 1586: { _M_param = __param; } 1586: 1586: 1586: 1586: 1586: result_type 1586: min() const 1586: { return this->a(); } 1586: 1586: 1586: 1586: 1586: result_type 1586: max() const 1586: { return this->b(); } 1586: 1586: 1586: 1586: 1586: template 1586: result_type 1586: operator()(_UniformRandomNumberGenerator& __urng) 1586: { return this->operator()(__urng, _M_param); } 1586: 1586: template 1586: result_type 1586: operator()(_UniformRandomNumberGenerator& __urng, 1586: const param_type& __p); 1586: 1586: template 1586: void 1586: __generate(_ForwardIterator __f, _ForwardIterator __t, 1586: _UniformRandomNumberGenerator& __urng) 1586: { this->__generate(__f, __t, __urng, _M_param); } 1586: 1586: template 1586: void 1586: __generate(_ForwardIterator __f, _ForwardIterator __t, 1586: _UniformRandomNumberGenerator& __urng, 1586: const param_type& __p) 1586: { this->__generate_impl(__f, __t, __urng, __p); } 1586: 1586: template 1586: void 1586: __generate(result_type* __f, result_type* __t, 1586: _UniformRandomNumberGenerator& __urng, 1586: const param_type& __p) 1586: { this->__generate_impl(__f, __t, __urng, __p); } 1586: 1586: 1586: 1586: 1586: 1586: friend bool 1586: operator==(const uniform_int_distribution& __d1, 1586: const uniform_int_distribution& __d2) 1586: { return __d1._M_param == __d2._M_param; } 1586: 1586: private: 1586: template 1586: void 1586: __generate_impl(_ForwardIterator __f, _ForwardIterator __t, 1586: _UniformRandomNumberGenerator& __urng, 1586: const param_type& __p); 1586: 1586: param_type _M_param; 1586: }; 1586: 1586: template 1586: template 1586: typename uniform_int_distribution<_IntType>::result_type 1586: uniform_int_distribution<_IntType>:: 1586: operator()(_UniformRandomNumberGenerator& __urng, 1586: const param_type& __param) 1586: { 1586: typedef typename _UniformRandomNumberGenerator::result_type 1586: _Gresult_type; 1586: typedef typename std::make_unsigned::type __utype; 1586: typedef typename std::common_type<_Gresult_type, __utype>::type 1586: __uctype; 1586: 1586: const __uctype __urngmin = __urng.min(); 1586: const __uctype __urngmax = __urng.max(); 1586: const __uctype __urngrange = __urngmax - __urngmin; 1586: const __uctype __urange 1586: = __uctype(__param.b()) - __uctype(__param.a()); 1586: 1586: __uctype __ret; 1586: 1586: if (__urngrange > __urange) 1586: { 1586: 1586: const __uctype __uerange = __urange + 1; 1586: const __uctype __scaling = __urngrange / __uerange; 1586: const __uctype __past = __uerange * __scaling; 1586: do 1586: __ret = __uctype(__urng()) - __urngmin; 1586: while (__ret >= __past); 1586: __ret /= __scaling; 1586: } 1586: else if (__urngrange < __urange) 1586: { 1586: # 271 "/usr/mipsel-linux-gnu/include/c++/9/bits/uniform_int_dist.h" 3 1586: __uctype __tmp; 1586: do 1586: { 1586: const __uctype __uerngrange = __urngrange + 1; 1586: __tmp = (__uerngrange * operator() 1586: (__urng, param_type(0, __urange / __uerngrange))); 1586: __ret = __tmp + (__uctype(__urng()) - __urngmin); 1586: } 1586: while (__ret > __urange || __ret < __tmp); 1586: } 1586: else 1586: __ret = __uctype(__urng()) - __urngmin; 1586: 1586: return __ret + __param.a(); 1586: } 1586: 1586: 1586: template 1586: template 1586: void 1586: uniform_int_distribution<_IntType>:: 1586: __generate_impl(_ForwardIterator __f, _ForwardIterator __t, 1586: _UniformRandomNumberGenerator& __urng, 1586: const param_type& __param) 1586: { 1586: 1586: typedef typename _UniformRandomNumberGenerator::result_type 1586: _Gresult_type; 1586: typedef typename std::make_unsigned::type __utype; 1586: typedef typename std::common_type<_Gresult_type, __utype>::type 1586: __uctype; 1586: 1586: const __uctype __urngmin = __urng.min(); 1586: const __uctype __urngmax = __urng.max(); 1586: const __uctype __urngrange = __urngmax - __urngmin; 1586: const __uctype __urange 1586: = __uctype(__param.b()) - __uctype(__param.a()); 1586: 1586: __uctype __ret; 1586: 1586: if (__urngrange > __urange) 1586: { 1586: if (__detail::_Power_of_2(__urngrange + 1) 1586: && __detail::_Power_of_2(__urange + 1)) 1586: { 1586: while (__f != __t) 1586: { 1586: __ret = __uctype(__urng()) - __urngmin; 1586: *__f++ = (__ret & __urange) + __param.a(); 1586: } 1586: } 1586: else 1586: { 1586: 1586: const __uctype __uerange = __urange + 1; 1586: const __uctype __scaling = __urngrange / __uerange; 1586: const __uctype __past = __uerange * __scaling; 1586: while (__f != __t) 1586: { 1586: do 1586: __ret = __uctype(__urng()) - __urngmin; 1586: while (__ret >= __past); 1586: *__f++ = __ret / __scaling + __param.a(); 1586: } 1586: } 1586: } 1586: else if (__urngrange < __urange) 1586: { 1586: # 355 "/usr/mipsel-linux-gnu/include/c++/9/bits/uniform_int_dist.h" 3 1586: __uctype __tmp; 1586: while (__f != __t) 1586: { 1586: do 1586: { 1586: const __uctype __uerngrange = __urngrange + 1; 1586: __tmp = (__uerngrange * operator() 1586: (__urng, param_type(0, __urange / __uerngrange))); 1586: __ret = __tmp + (__uctype(__urng()) - __urngmin); 1586: } 1586: while (__ret > __urange || __ret < __tmp); 1586: *__f++ = __ret; 1586: } 1586: } 1586: else 1586: while (__f != __t) 1586: *__f++ = __uctype(__urng()) - __urngmin + __param.a(); 1586: } 1586: 1586: 1586: 1586: 1586: } 1586: # 67 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 2 3 1586: 1586: 1586: 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: template 1586: void 1586: __move_median_to_first(_Iterator __result,_Iterator __a, _Iterator __b, 1586: _Iterator __c, _Compare __comp) 1586: { 1586: if (__comp(__a, __b)) 1586: { 1586: if (__comp(__b, __c)) 1586: std::iter_swap(__result, __b); 1586: else if (__comp(__a, __c)) 1586: std::iter_swap(__result, __c); 1586: else 1586: std::iter_swap(__result, __a); 1586: } 1586: else if (__comp(__a, __c)) 1586: std::iter_swap(__result, __a); 1586: else if (__comp(__b, __c)) 1586: std::iter_swap(__result, __c); 1586: else 1586: std::iter_swap(__result, __b); 1586: } 1586: 1586: 1586: template 1586: inline _InputIterator 1586: __find_if(_InputIterator __first, _InputIterator __last, 1586: _Predicate __pred, input_iterator_tag) 1586: { 1586: while (__first != __last && !__pred(__first)) 1586: ++__first; 1586: return __first; 1586: } 1586: 1586: 1586: template 1586: _RandomAccessIterator 1586: __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, 1586: _Predicate __pred, random_access_iterator_tag) 1586: { 1586: typename iterator_traits<_RandomAccessIterator>::difference_type 1586: __trip_count = (__last - __first) >> 2; 1586: 1586: for (; __trip_count > 0; --__trip_count) 1586: { 1586: if (__pred(__first)) 1586: return __first; 1586: ++__first; 1586: 1586: if (__pred(__first)) 1586: return __first; 1586: ++__first; 1586: 1586: if (__pred(__first)) 1586: return __first; 1586: ++__first; 1586: 1586: if (__pred(__first)) 1586: return __first; 1586: ++__first; 1586: } 1586: 1586: switch (__last - __first) 1586: { 1586: case 3: 1586: if (__pred(__first)) 1586: return __first; 1586: ++__first; 1586: case 2: 1586: if (__pred(__first)) 1586: return __first; 1586: ++__first; 1586: case 1: 1586: if (__pred(__first)) 1586: return __first; 1586: ++__first; 1586: case 0: 1586: default: 1586: return __last; 1586: } 1586: } 1586: 1586: template 1586: inline _Iterator 1586: __find_if(_Iterator __first, _Iterator __last, _Predicate __pred) 1586: { 1586: return __find_if(__first, __last, __pred, 1586: std::__iterator_category(__first)); 1586: } 1586: 1586: 1586: template 1586: inline _InputIterator 1586: __find_if_not(_InputIterator __first, _InputIterator __last, 1586: _Predicate __pred) 1586: { 1586: return std::__find_if(__first, __last, 1586: __gnu_cxx::__ops::__negate(__pred), 1586: std::__iterator_category(__first)); 1586: } 1586: 1586: 1586: 1586: 1586: template 1586: _InputIterator 1586: __find_if_not_n(_InputIterator __first, _Distance& __len, _Predicate __pred) 1586: { 1586: for (; __len; --__len, (void) ++__first) 1586: if (!__pred(__first)) 1586: break; 1586: return __first; 1586: } 1586: # 202 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: _ForwardIterator1 1586: __search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 1586: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 1586: _BinaryPredicate __predicate) 1586: { 1586: 1586: if (__first1 == __last1 || __first2 == __last2) 1586: return __first1; 1586: 1586: 1586: _ForwardIterator2 __p1(__first2); 1586: if (++__p1 == __last2) 1586: return std::__find_if(__first1, __last1, 1586: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 1586: 1586: 1586: _ForwardIterator2 __p; 1586: _ForwardIterator1 __current = __first1; 1586: 1586: for (;;) 1586: { 1586: __first1 = 1586: std::__find_if(__first1, __last1, 1586: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 1586: 1586: if (__first1 == __last1) 1586: return __last1; 1586: 1586: __p = __p1; 1586: __current = __first1; 1586: if (++__current == __last1) 1586: return __last1; 1586: 1586: while (__predicate(__current, __p)) 1586: { 1586: if (++__p == __last2) 1586: return __first1; 1586: if (++__current == __last1) 1586: return __last1; 1586: } 1586: ++__first1; 1586: } 1586: return __first1; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: _ForwardIterator 1586: __search_n_aux(_ForwardIterator __first, _ForwardIterator __last, 1586: _Integer __count, _UnaryPredicate __unary_pred, 1586: std::forward_iterator_tag) 1586: { 1586: __first = std::__find_if(__first, __last, __unary_pred); 1586: while (__first != __last) 1586: { 1586: typename iterator_traits<_ForwardIterator>::difference_type 1586: __n = __count; 1586: _ForwardIterator __i = __first; 1586: ++__i; 1586: while (__i != __last && __n != 1 && __unary_pred(__i)) 1586: { 1586: ++__i; 1586: --__n; 1586: } 1586: if (__n == 1) 1586: return __first; 1586: if (__i == __last) 1586: return __last; 1586: __first = std::__find_if(++__i, __last, __unary_pred); 1586: } 1586: return __last; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: template 1586: _RandomAccessIter 1586: __search_n_aux(_RandomAccessIter __first, _RandomAccessIter __last, 1586: _Integer __count, _UnaryPredicate __unary_pred, 1586: std::random_access_iterator_tag) 1586: { 1586: typedef typename std::iterator_traits<_RandomAccessIter>::difference_type 1586: _DistanceType; 1586: 1586: _DistanceType __tailSize = __last - __first; 1586: _DistanceType __remainder = __count; 1586: 1586: while (__remainder <= __tailSize) 1586: { 1586: __first += __remainder; 1586: __tailSize -= __remainder; 1586: 1586: 1586: _RandomAccessIter __backTrack = __first; 1586: while (__unary_pred(--__backTrack)) 1586: { 1586: if (--__remainder == 0) 1586: return (__first - __count); 1586: } 1586: __remainder = __count + 1 - (__first - __backTrack); 1586: } 1586: return __last; 1586: } 1586: 1586: template 1586: _ForwardIterator 1586: __search_n(_ForwardIterator __first, _ForwardIterator __last, 1586: _Integer __count, 1586: _UnaryPredicate __unary_pred) 1586: { 1586: if (__count <= 0) 1586: return __first; 1586: 1586: if (__count == 1) 1586: return std::__find_if(__first, __last, __unary_pred); 1586: 1586: return std::__search_n_aux(__first, __last, __count, __unary_pred, 1586: std::__iterator_category(__first)); 1586: } 1586: 1586: 1586: template 1586: _ForwardIterator1 1586: __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 1586: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 1586: forward_iterator_tag, forward_iterator_tag, 1586: _BinaryPredicate __comp) 1586: { 1586: if (__first2 == __last2) 1586: return __last1; 1586: 1586: _ForwardIterator1 __result = __last1; 1586: while (1) 1586: { 1586: _ForwardIterator1 __new_result 1586: = std::__search(__first1, __last1, __first2, __last2, __comp); 1586: if (__new_result == __last1) 1586: return __result; 1586: else 1586: { 1586: __result = __new_result; 1586: __first1 = __new_result; 1586: ++__first1; 1586: } 1586: } 1586: } 1586: 1586: 1586: template 1586: _BidirectionalIterator1 1586: __find_end(_BidirectionalIterator1 __first1, 1586: _BidirectionalIterator1 __last1, 1586: _BidirectionalIterator2 __first2, 1586: _BidirectionalIterator2 __last2, 1586: bidirectional_iterator_tag, bidirectional_iterator_tag, 1586: _BinaryPredicate __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1; 1586: typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2; 1586: 1586: _RevIterator1 __rlast1(__first1); 1586: _RevIterator2 __rlast2(__first2); 1586: _RevIterator1 __rresult = std::__search(_RevIterator1(__last1), __rlast1, 1586: _RevIterator2(__last2), __rlast2, 1586: __comp); 1586: 1586: if (__rresult == __rlast1) 1586: return __last1; 1586: else 1586: { 1586: _BidirectionalIterator1 __result = __rresult.base(); 1586: std::advance(__result, -std::distance(__first2, __last2)); 1586: return __result; 1586: } 1586: } 1586: # 423 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator1 1586: find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 1586: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__find_end(__first1, __last1, __first2, __last2, 1586: std::__iterator_category(__first1), 1586: std::__iterator_category(__first2), 1586: __gnu_cxx::__ops::__iter_equal_to_iter()); 1586: } 1586: # 471 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator1 1586: find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 1586: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 1586: _BinaryPredicate __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__find_end(__first1, __last1, __first2, __last2, 1586: std::__iterator_category(__first1), 1586: std::__iterator_category(__first2), 1586: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: # 506 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline bool 1586: all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 1586: { return __last == std::find_if_not(__first, __last, __pred); } 1586: # 523 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline bool 1586: none_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 1586: { return __last == std::find_if(__first, __last, __pred); } 1586: # 541 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline bool 1586: any_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 1586: { return !std::none_of(__first, __last, __pred); } 1586: # 556 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _InputIterator 1586: find_if_not(_InputIterator __first, _InputIterator __last, 1586: _Predicate __pred) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: return std::__find_if_not(__first, __last, 1586: __gnu_cxx::__ops::__pred_iter(__pred)); 1586: } 1586: # 580 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline bool 1586: is_partitioned(_InputIterator __first, _InputIterator __last, 1586: _Predicate __pred) 1586: { 1586: __first = std::find_if_not(__first, __last, __pred); 1586: if (__first == __last) 1586: return true; 1586: ++__first; 1586: return std::none_of(__first, __last, __pred); 1586: } 1586: # 601 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: _ForwardIterator 1586: partition_point(_ForwardIterator __first, _ForwardIterator __last, 1586: _Predicate __pred) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: typedef typename iterator_traits<_ForwardIterator>::difference_type 1586: _DistanceType; 1586: 1586: _DistanceType __len = std::distance(__first, __last); 1586: _DistanceType __half; 1586: _ForwardIterator __middle; 1586: 1586: while (__len > 0) 1586: { 1586: __half = __len >> 1; 1586: __middle = __first; 1586: std::advance(__middle, __half); 1586: if (__pred(*__middle)) 1586: { 1586: __first = __middle; 1586: ++__first; 1586: __len = __len - __half - 1; 1586: } 1586: else 1586: __len = __half; 1586: } 1586: return __first; 1586: } 1586: 1586: 1586: template 1586: _OutputIterator 1586: __remove_copy_if(_InputIterator __first, _InputIterator __last, 1586: _OutputIterator __result, _Predicate __pred) 1586: { 1586: for (; __first != __last; ++__first) 1586: if (!__pred(__first)) 1586: { 1586: *__result = *__first; 1586: ++__result; 1586: } 1586: return __result; 1586: } 1586: # 668 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _OutputIterator 1586: remove_copy(_InputIterator __first, _InputIterator __last, 1586: _OutputIterator __result, const _Tp& __value) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__remove_copy_if(__first, __last, __result, 1586: __gnu_cxx::__ops::__iter_equals_val(__value)); 1586: } 1586: # 700 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _OutputIterator 1586: remove_copy_if(_InputIterator __first, _InputIterator __last, 1586: _OutputIterator __result, _Predicate __pred) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__remove_copy_if(__first, __last, __result, 1586: __gnu_cxx::__ops::__pred_iter(__pred)); 1586: } 1586: # 734 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: _OutputIterator 1586: copy_if(_InputIterator __first, _InputIterator __last, 1586: _OutputIterator __result, _Predicate __pred) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: for (; __first != __last; ++__first) 1586: if (__pred(*__first)) 1586: { 1586: *__result = *__first; 1586: ++__result; 1586: } 1586: return __result; 1586: } 1586: 1586: template 1586: _OutputIterator 1586: __copy_n(_InputIterator __first, _Size __n, 1586: _OutputIterator __result, input_iterator_tag) 1586: { 1586: if (__n > 0) 1586: { 1586: while (true) 1586: { 1586: *__result = *__first; 1586: ++__result; 1586: if (--__n > 0) 1586: ++__first; 1586: else 1586: break; 1586: } 1586: } 1586: return __result; 1586: } 1586: 1586: template 1586: inline _OutputIterator 1586: __copy_n(_RandomAccessIterator __first, _Size __n, 1586: _OutputIterator __result, random_access_iterator_tag) 1586: { return std::copy(__first, __first + __n, __result); } 1586: # 797 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _OutputIterator 1586: copy_n(_InputIterator __first, _Size __n, _OutputIterator __result) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: return std::__copy_n(__first, __n, __result, 1586: std::__iterator_category(__first)); 1586: } 1586: # 825 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: pair<_OutputIterator1, _OutputIterator2> 1586: partition_copy(_InputIterator __first, _InputIterator __last, 1586: _OutputIterator1 __out_true, _OutputIterator2 __out_false, 1586: _Predicate __pred) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: for (; __first != __last; ++__first) 1586: if (__pred(*__first)) 1586: { 1586: *__out_true = *__first; 1586: ++__out_true; 1586: } 1586: else 1586: { 1586: *__out_false = *__first; 1586: ++__out_false; 1586: } 1586: 1586: return pair<_OutputIterator1, _OutputIterator2>(__out_true, __out_false); 1586: } 1586: 1586: 1586: template 1586: _ForwardIterator 1586: __remove_if(_ForwardIterator __first, _ForwardIterator __last, 1586: _Predicate __pred) 1586: { 1586: __first = std::__find_if(__first, __last, __pred); 1586: if (__first == __last) 1586: return __first; 1586: _ForwardIterator __result = __first; 1586: ++__first; 1586: for (; __first != __last; ++__first) 1586: if (!__pred(__first)) 1586: { 1586: *__result = std::move(*__first); 1586: ++__result; 1586: } 1586: return __result; 1586: } 1586: # 894 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator 1586: remove(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __value) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__remove_if(__first, __last, 1586: __gnu_cxx::__ops::__iter_equals_val(__value)); 1586: } 1586: # 927 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator 1586: remove_if(_ForwardIterator __first, _ForwardIterator __last, 1586: _Predicate __pred) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__remove_if(__first, __last, 1586: __gnu_cxx::__ops::__pred_iter(__pred)); 1586: } 1586: 1586: template 1586: _ForwardIterator 1586: __adjacent_find(_ForwardIterator __first, _ForwardIterator __last, 1586: _BinaryPredicate __binary_pred) 1586: { 1586: if (__first == __last) 1586: return __last; 1586: _ForwardIterator __next = __first; 1586: while (++__next != __last) 1586: { 1586: if (__binary_pred(__first, __next)) 1586: return __first; 1586: __first = __next; 1586: } 1586: return __last; 1586: } 1586: 1586: template 1586: _ForwardIterator 1586: __unique(_ForwardIterator __first, _ForwardIterator __last, 1586: _BinaryPredicate __binary_pred) 1586: { 1586: 1586: __first = std::__adjacent_find(__first, __last, __binary_pred); 1586: if (__first == __last) 1586: return __last; 1586: 1586: 1586: _ForwardIterator __dest = __first; 1586: ++__first; 1586: while (++__first != __last) 1586: if (!__binary_pred(__dest, __first)) 1586: *++__dest = std::move(*__first); 1586: return ++__dest; 1586: } 1586: # 993 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator 1586: unique(_ForwardIterator __first, _ForwardIterator __last) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__unique(__first, __last, 1586: __gnu_cxx::__ops::__iter_equal_to_iter()); 1586: } 1586: # 1023 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator 1586: unique(_ForwardIterator __first, _ForwardIterator __last, 1586: _BinaryPredicate __binary_pred) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__unique(__first, __last, 1586: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: _OutputIterator 1586: __unique_copy(_ForwardIterator __first, _ForwardIterator __last, 1586: _OutputIterator __result, _BinaryPredicate __binary_pred, 1586: forward_iterator_tag, output_iterator_tag) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: _ForwardIterator __next = __first; 1586: *__result = *__first; 1586: while (++__next != __last) 1586: if (!__binary_pred(__first, __next)) 1586: { 1586: __first = __next; 1586: *++__result = *__first; 1586: } 1586: return ++__result; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: _OutputIterator 1586: __unique_copy(_InputIterator __first, _InputIterator __last, 1586: _OutputIterator __result, _BinaryPredicate __binary_pred, 1586: input_iterator_tag, output_iterator_tag) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: typename iterator_traits<_InputIterator>::value_type __value = *__first; 1586: __decltype(__gnu_cxx::__ops::__iter_comp_val(__binary_pred)) 1586: __rebound_pred 1586: = __gnu_cxx::__ops::__iter_comp_val(__binary_pred); 1586: *__result = __value; 1586: while (++__first != __last) 1586: if (!__rebound_pred(__first, __value)) 1586: { 1586: __value = *__first; 1586: *++__result = __value; 1586: } 1586: return ++__result; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: _ForwardIterator 1586: __unique_copy(_InputIterator __first, _InputIterator __last, 1586: _ForwardIterator __result, _BinaryPredicate __binary_pred, 1586: input_iterator_tag, forward_iterator_tag) 1586: { 1586: 1586: 1586: 1586: 1586: *__result = *__first; 1586: while (++__first != __last) 1586: if (!__binary_pred(__result, __first)) 1586: *++__result = *__first; 1586: return ++__result; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: void 1586: __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last, 1586: bidirectional_iterator_tag) 1586: { 1586: while (true) 1586: if (__first == __last || __first == --__last) 1586: return; 1586: else 1586: { 1586: std::iter_swap(__first, __last); 1586: ++__first; 1586: } 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: void 1586: __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last, 1586: random_access_iterator_tag) 1586: { 1586: if (__first == __last) 1586: return; 1586: --__last; 1586: while (__first < __last) 1586: { 1586: std::iter_swap(__first, __last); 1586: ++__first; 1586: --__last; 1586: } 1586: } 1586: # 1178 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline void 1586: reverse(_BidirectionalIterator __first, _BidirectionalIterator __last) 1586: { 1586: 1586: 1586: 1586: ; 1586: std::__reverse(__first, __last, std::__iterator_category(__first)); 1586: } 1586: # 1205 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: _OutputIterator 1586: reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last, 1586: _OutputIterator __result) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: while (__first != __last) 1586: { 1586: --__last; 1586: *__result = *__last; 1586: ++__result; 1586: } 1586: return __result; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: template 1586: _EuclideanRingElement 1586: __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) 1586: { 1586: while (__n != 0) 1586: { 1586: _EuclideanRingElement __t = __m % __n; 1586: __m = __n; 1586: __n = __t; 1586: } 1586: return __m; 1586: } 1586: 1586: inline namespace _V2 1586: { 1586: 1586: 1586: template 1586: _ForwardIterator 1586: __rotate(_ForwardIterator __first, 1586: _ForwardIterator __middle, 1586: _ForwardIterator __last, 1586: forward_iterator_tag) 1586: { 1586: if (__first == __middle) 1586: return __last; 1586: else if (__last == __middle) 1586: return __first; 1586: 1586: _ForwardIterator __first2 = __middle; 1586: do 1586: { 1586: std::iter_swap(__first, __first2); 1586: ++__first; 1586: ++__first2; 1586: if (__first == __middle) 1586: __middle = __first2; 1586: } 1586: while (__first2 != __last); 1586: 1586: _ForwardIterator __ret = __first; 1586: 1586: __first2 = __middle; 1586: 1586: while (__first2 != __last) 1586: { 1586: std::iter_swap(__first, __first2); 1586: ++__first; 1586: ++__first2; 1586: if (__first == __middle) 1586: __middle = __first2; 1586: else if (__first2 == __last) 1586: __first2 = __middle; 1586: } 1586: return __ret; 1586: } 1586: 1586: 1586: template 1586: _BidirectionalIterator 1586: __rotate(_BidirectionalIterator __first, 1586: _BidirectionalIterator __middle, 1586: _BidirectionalIterator __last, 1586: bidirectional_iterator_tag) 1586: { 1586: 1586: 1586: 1586: 1586: if (__first == __middle) 1586: return __last; 1586: else if (__last == __middle) 1586: return __first; 1586: 1586: std::__reverse(__first, __middle, bidirectional_iterator_tag()); 1586: std::__reverse(__middle, __last, bidirectional_iterator_tag()); 1586: 1586: while (__first != __middle && __middle != __last) 1586: { 1586: std::iter_swap(__first, --__last); 1586: ++__first; 1586: } 1586: 1586: if (__first == __middle) 1586: { 1586: std::__reverse(__middle, __last, bidirectional_iterator_tag()); 1586: return __last; 1586: } 1586: else 1586: { 1586: std::__reverse(__first, __middle, bidirectional_iterator_tag()); 1586: return __first; 1586: } 1586: } 1586: 1586: 1586: template 1586: _RandomAccessIterator 1586: __rotate(_RandomAccessIterator __first, 1586: _RandomAccessIterator __middle, 1586: _RandomAccessIterator __last, 1586: random_access_iterator_tag) 1586: { 1586: 1586: 1586: 1586: 1586: if (__first == __middle) 1586: return __last; 1586: else if (__last == __middle) 1586: return __first; 1586: 1586: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 1586: _Distance; 1586: typedef typename iterator_traits<_RandomAccessIterator>::value_type 1586: _ValueType; 1586: 1586: _Distance __n = __last - __first; 1586: _Distance __k = __middle - __first; 1586: 1586: if (__k == __n - __k) 1586: { 1586: std::swap_ranges(__first, __middle, __middle); 1586: return __middle; 1586: } 1586: 1586: _RandomAccessIterator __p = __first; 1586: _RandomAccessIterator __ret = __first + (__last - __middle); 1586: 1586: for (;;) 1586: { 1586: if (__k < __n - __k) 1586: { 1586: if (__is_pod(_ValueType) && __k == 1) 1586: { 1586: _ValueType __t = std::move(*__p); 1586: std::move(__p + 1, __p + __n, __p); 1586: *(__p + __n - 1) = std::move(__t); 1586: return __ret; 1586: } 1586: _RandomAccessIterator __q = __p + __k; 1586: for (_Distance __i = 0; __i < __n - __k; ++ __i) 1586: { 1586: std::iter_swap(__p, __q); 1586: ++__p; 1586: ++__q; 1586: } 1586: __n %= __k; 1586: if (__n == 0) 1586: return __ret; 1586: std::swap(__n, __k); 1586: __k = __n - __k; 1586: } 1586: else 1586: { 1586: __k = __n - __k; 1586: if (__is_pod(_ValueType) && __k == 1) 1586: { 1586: _ValueType __t = std::move(*(__p + __n - 1)); 1586: std::move_backward(__p, __p + __n - 1, __p + __n); 1586: *__p = std::move(__t); 1586: return __ret; 1586: } 1586: _RandomAccessIterator __q = __p + __n; 1586: __p = __q - __k; 1586: for (_Distance __i = 0; __i < __n - __k; ++ __i) 1586: { 1586: --__p; 1586: --__q; 1586: std::iter_swap(__p, __q); 1586: } 1586: __n %= __k; 1586: if (__n == 0) 1586: return __ret; 1586: std::swap(__n, __k); 1586: } 1586: } 1586: } 1586: # 1432 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator 1586: rotate(_ForwardIterator __first, _ForwardIterator __middle, 1586: _ForwardIterator __last) 1586: { 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__rotate(__first, __middle, __last, 1586: std::__iterator_category(__first)); 1586: } 1586: 1586: } 1586: # 1469 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _OutputIterator 1586: rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, 1586: _ForwardIterator __last, _OutputIterator __result) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::copy(__first, __middle, 1586: std::copy(__middle, __last, __result)); 1586: } 1586: 1586: 1586: template 1586: _ForwardIterator 1586: __partition(_ForwardIterator __first, _ForwardIterator __last, 1586: _Predicate __pred, forward_iterator_tag) 1586: { 1586: if (__first == __last) 1586: return __first; 1586: 1586: while (__pred(*__first)) 1586: if (++__first == __last) 1586: return __first; 1586: 1586: _ForwardIterator __next = __first; 1586: 1586: while (++__next != __last) 1586: if (__pred(*__next)) 1586: { 1586: std::iter_swap(__first, __next); 1586: ++__first; 1586: } 1586: 1586: return __first; 1586: } 1586: 1586: 1586: template 1586: _BidirectionalIterator 1586: __partition(_BidirectionalIterator __first, _BidirectionalIterator __last, 1586: _Predicate __pred, bidirectional_iterator_tag) 1586: { 1586: while (true) 1586: { 1586: while (true) 1586: if (__first == __last) 1586: return __first; 1586: else if (__pred(*__first)) 1586: ++__first; 1586: else 1586: break; 1586: --__last; 1586: while (true) 1586: if (__first == __last) 1586: return __first; 1586: else if (!bool(__pred(*__last))) 1586: --__last; 1586: else 1586: break; 1586: std::iter_swap(__first, __last); 1586: ++__first; 1586: } 1586: } 1586: # 1546 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: _ForwardIterator 1586: __stable_partition_adaptive(_ForwardIterator __first, 1586: _ForwardIterator __last, 1586: _Predicate __pred, _Distance __len, 1586: _Pointer __buffer, 1586: _Distance __buffer_size) 1586: { 1586: if (__len == 1) 1586: return __first; 1586: 1586: if (__len <= __buffer_size) 1586: { 1586: _ForwardIterator __result1 = __first; 1586: _Pointer __result2 = __buffer; 1586: 1586: 1586: 1586: 1586: *__result2 = std::move(*__first); 1586: ++__result2; 1586: ++__first; 1586: for (; __first != __last; ++__first) 1586: if (__pred(__first)) 1586: { 1586: *__result1 = std::move(*__first); 1586: ++__result1; 1586: } 1586: else 1586: { 1586: *__result2 = std::move(*__first); 1586: ++__result2; 1586: } 1586: 1586: std::move(__buffer, __result2, __result1); 1586: return __result1; 1586: } 1586: 1586: _ForwardIterator __middle = __first; 1586: std::advance(__middle, __len / 2); 1586: _ForwardIterator __left_split = 1586: std::__stable_partition_adaptive(__first, __middle, __pred, 1586: __len / 2, __buffer, 1586: __buffer_size); 1586: 1586: 1586: 1586: _Distance __right_len = __len - __len / 2; 1586: _ForwardIterator __right_split = 1586: std::__find_if_not_n(__middle, __right_len, __pred); 1586: 1586: if (__right_len) 1586: __right_split = 1586: std::__stable_partition_adaptive(__right_split, __last, __pred, 1586: __right_len, 1586: __buffer, __buffer_size); 1586: 1586: return std::rotate(__left_split, __middle, __right_split); 1586: } 1586: 1586: template 1586: _ForwardIterator 1586: __stable_partition(_ForwardIterator __first, _ForwardIterator __last, 1586: _Predicate __pred) 1586: { 1586: __first = std::__find_if_not(__first, __last, __pred); 1586: 1586: if (__first == __last) 1586: return __first; 1586: 1586: typedef typename iterator_traits<_ForwardIterator>::value_type 1586: _ValueType; 1586: typedef typename iterator_traits<_ForwardIterator>::difference_type 1586: _DistanceType; 1586: 1586: _Temporary_buffer<_ForwardIterator, _ValueType> 1586: __buf(__first, std::distance(__first, __last)); 1586: return 1586: std::__stable_partition_adaptive(__first, __last, __pred, 1586: _DistanceType(__buf.requested_size()), 1586: __buf.begin(), 1586: _DistanceType(__buf.size())); 1586: } 1586: # 1648 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator 1586: stable_partition(_ForwardIterator __first, _ForwardIterator __last, 1586: _Predicate __pred) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__stable_partition(__first, __last, 1586: __gnu_cxx::__ops::__pred_iter(__pred)); 1586: } 1586: 1586: 1586: template 1586: void 1586: __heap_select(_RandomAccessIterator __first, 1586: _RandomAccessIterator __middle, 1586: _RandomAccessIterator __last, _Compare __comp) 1586: { 1586: std::__make_heap(__first, __middle, __comp); 1586: for (_RandomAccessIterator __i = __middle; __i < __last; ++__i) 1586: if (__comp(__i, __first)) 1586: std::__pop_heap(__first, __middle, __i, __comp); 1586: } 1586: 1586: 1586: 1586: template 1586: _RandomAccessIterator 1586: __partial_sort_copy(_InputIterator __first, _InputIterator __last, 1586: _RandomAccessIterator __result_first, 1586: _RandomAccessIterator __result_last, 1586: _Compare __comp) 1586: { 1586: typedef typename iterator_traits<_InputIterator>::value_type 1586: _InputValueType; 1586: typedef iterator_traits<_RandomAccessIterator> _RItTraits; 1586: typedef typename _RItTraits::difference_type _DistanceType; 1586: 1586: if (__result_first == __result_last) 1586: return __result_last; 1586: _RandomAccessIterator __result_real_last = __result_first; 1586: while (__first != __last && __result_real_last != __result_last) 1586: { 1586: *__result_real_last = *__first; 1586: ++__result_real_last; 1586: ++__first; 1586: } 1586: 1586: std::__make_heap(__result_first, __result_real_last, __comp); 1586: while (__first != __last) 1586: { 1586: if (__comp(__first, __result_first)) 1586: std::__adjust_heap(__result_first, _DistanceType(0), 1586: _DistanceType(__result_real_last 1586: - __result_first), 1586: _InputValueType(*__first), __comp); 1586: ++__first; 1586: } 1586: std::__sort_heap(__result_first, __result_real_last, __comp); 1586: return __result_real_last; 1586: } 1586: # 1734 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _RandomAccessIterator 1586: partial_sort_copy(_InputIterator __first, _InputIterator __last, 1586: _RandomAccessIterator __result_first, 1586: _RandomAccessIterator __result_last) 1586: { 1586: # 1748 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: 1586: return std::__partial_sort_copy(__first, __last, 1586: __result_first, __result_last, 1586: __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: # 1783 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _RandomAccessIterator 1586: partial_sort_copy(_InputIterator __first, _InputIterator __last, 1586: _RandomAccessIterator __result_first, 1586: _RandomAccessIterator __result_last, 1586: _Compare __comp) 1586: { 1586: # 1799 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: 1586: return std::__partial_sort_copy(__first, __last, 1586: __result_first, __result_last, 1586: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: 1586: 1586: template 1586: void 1586: __unguarded_linear_insert(_RandomAccessIterator __last, 1586: _Compare __comp) 1586: { 1586: typename iterator_traits<_RandomAccessIterator>::value_type 1586: __val = std::move(*__last); 1586: _RandomAccessIterator __next = __last; 1586: --__next; 1586: while (__comp(__val, __next)) 1586: { 1586: *__last = std::move(*__next); 1586: __last = __next; 1586: --__next; 1586: } 1586: *__last = std::move(__val); 1586: } 1586: 1586: 1586: template 1586: void 1586: __insertion_sort(_RandomAccessIterator __first, 1586: _RandomAccessIterator __last, _Compare __comp) 1586: { 1586: if (__first == __last) return; 1586: 1586: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 1586: { 1586: if (__comp(__i, __first)) 1586: { 1586: typename iterator_traits<_RandomAccessIterator>::value_type 1586: __val = std::move(*__i); 1586: std::move_backward(__first, __i, __i + 1); 1586: *__first = std::move(__val); 1586: } 1586: else 1586: std::__unguarded_linear_insert(__i, 1586: __gnu_cxx::__ops::__val_comp_iter(__comp)); 1586: } 1586: } 1586: 1586: 1586: template 1586: inline void 1586: __unguarded_insertion_sort(_RandomAccessIterator __first, 1586: _RandomAccessIterator __last, _Compare __comp) 1586: { 1586: for (_RandomAccessIterator __i = __first; __i != __last; ++__i) 1586: std::__unguarded_linear_insert(__i, 1586: __gnu_cxx::__ops::__val_comp_iter(__comp)); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: enum { _S_threshold = 16 }; 1586: 1586: 1586: template 1586: void 1586: __final_insertion_sort(_RandomAccessIterator __first, 1586: _RandomAccessIterator __last, _Compare __comp) 1586: { 1586: if (__last - __first > int(_S_threshold)) 1586: { 1586: std::__insertion_sort(__first, __first + int(_S_threshold), __comp); 1586: std::__unguarded_insertion_sort(__first + int(_S_threshold), __last, 1586: __comp); 1586: } 1586: else 1586: std::__insertion_sort(__first, __last, __comp); 1586: } 1586: 1586: 1586: template 1586: _RandomAccessIterator 1586: __unguarded_partition(_RandomAccessIterator __first, 1586: _RandomAccessIterator __last, 1586: _RandomAccessIterator __pivot, _Compare __comp) 1586: { 1586: while (true) 1586: { 1586: while (__comp(__first, __pivot)) 1586: ++__first; 1586: --__last; 1586: while (__comp(__pivot, __last)) 1586: --__last; 1586: if (!(__first < __last)) 1586: return __first; 1586: std::iter_swap(__first, __last); 1586: ++__first; 1586: } 1586: } 1586: 1586: 1586: template 1586: inline _RandomAccessIterator 1586: __unguarded_partition_pivot(_RandomAccessIterator __first, 1586: _RandomAccessIterator __last, _Compare __comp) 1586: { 1586: _RandomAccessIterator __mid = __first + (__last - __first) / 2; 1586: std::__move_median_to_first(__first, __first + 1, __mid, __last - 1, 1586: __comp); 1586: return std::__unguarded_partition(__first + 1, __last, __first, __comp); 1586: } 1586: 1586: template 1586: inline void 1586: __partial_sort(_RandomAccessIterator __first, 1586: _RandomAccessIterator __middle, 1586: _RandomAccessIterator __last, 1586: _Compare __comp) 1586: { 1586: std::__heap_select(__first, __middle, __last, __comp); 1586: std::__sort_heap(__first, __middle, __comp); 1586: } 1586: 1586: 1586: template 1586: void 1586: __introsort_loop(_RandomAccessIterator __first, 1586: _RandomAccessIterator __last, 1586: _Size __depth_limit, _Compare __comp) 1586: { 1586: while (__last - __first > int(_S_threshold)) 1586: { 1586: if (__depth_limit == 0) 1586: { 1586: std::__partial_sort(__first, __last, __last, __comp); 1586: return; 1586: } 1586: --__depth_limit; 1586: _RandomAccessIterator __cut = 1586: std::__unguarded_partition_pivot(__first, __last, __comp); 1586: std::__introsort_loop(__cut, __last, __depth_limit, __comp); 1586: __last = __cut; 1586: } 1586: } 1586: 1586: 1586: 1586: template 1586: inline void 1586: __sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 1586: _Compare __comp) 1586: { 1586: if (__first != __last) 1586: { 1586: std::__introsort_loop(__first, __last, 1586: std::__lg(__last - __first) * 2, 1586: __comp); 1586: std::__final_insertion_sort(__first, __last, __comp); 1586: } 1586: } 1586: 1586: template 1586: void 1586: __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth, 1586: _RandomAccessIterator __last, _Size __depth_limit, 1586: _Compare __comp) 1586: { 1586: while (__last - __first > 3) 1586: { 1586: if (__depth_limit == 0) 1586: { 1586: std::__heap_select(__first, __nth + 1, __last, __comp); 1586: 1586: std::iter_swap(__first, __nth); 1586: return; 1586: } 1586: --__depth_limit; 1586: _RandomAccessIterator __cut = 1586: std::__unguarded_partition_pivot(__first, __last, __comp); 1586: if (__cut <= __nth) 1586: __first = __cut; 1586: else 1586: __last = __cut; 1586: } 1586: std::__insertion_sort(__first, __last, __comp); 1586: } 1586: # 2020 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator 1586: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __val, _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__lower_bound(__first, __last, __val, 1586: __gnu_cxx::__ops::__iter_comp_val(__comp)); 1586: } 1586: 1586: template 1586: _ForwardIterator 1586: __upper_bound(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __val, _Compare __comp) 1586: { 1586: typedef typename iterator_traits<_ForwardIterator>::difference_type 1586: _DistanceType; 1586: 1586: _DistanceType __len = std::distance(__first, __last); 1586: 1586: while (__len > 0) 1586: { 1586: _DistanceType __half = __len >> 1; 1586: _ForwardIterator __middle = __first; 1586: std::advance(__middle, __half); 1586: if (__comp(__val, __middle)) 1586: __len = __half; 1586: else 1586: { 1586: __first = __middle; 1586: ++__first; 1586: __len = __len - __half - 1; 1586: } 1586: } 1586: return __first; 1586: } 1586: # 2074 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator 1586: upper_bound(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __val) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__upper_bound(__first, __last, __val, 1586: __gnu_cxx::__ops::__val_less_iter()); 1586: } 1586: # 2104 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator 1586: upper_bound(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __val, _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__upper_bound(__first, __last, __val, 1586: __gnu_cxx::__ops::__val_comp_iter(__comp)); 1586: } 1586: 1586: template 1586: pair<_ForwardIterator, _ForwardIterator> 1586: __equal_range(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __val, 1586: _CompareItTp __comp_it_val, _CompareTpIt __comp_val_it) 1586: { 1586: typedef typename iterator_traits<_ForwardIterator>::difference_type 1586: _DistanceType; 1586: 1586: _DistanceType __len = std::distance(__first, __last); 1586: 1586: while (__len > 0) 1586: { 1586: _DistanceType __half = __len >> 1; 1586: _ForwardIterator __middle = __first; 1586: std::advance(__middle, __half); 1586: if (__comp_it_val(__middle, __val)) 1586: { 1586: __first = __middle; 1586: ++__first; 1586: __len = __len - __half - 1; 1586: } 1586: else if (__comp_val_it(__val, __middle)) 1586: __len = __half; 1586: else 1586: { 1586: _ForwardIterator __left 1586: = std::__lower_bound(__first, __middle, __val, __comp_it_val); 1586: std::advance(__first, __len); 1586: _ForwardIterator __right 1586: = std::__upper_bound(++__middle, __first, __val, __comp_val_it); 1586: return pair<_ForwardIterator, _ForwardIterator>(__left, __right); 1586: } 1586: } 1586: return pair<_ForwardIterator, _ForwardIterator>(__first, __first); 1586: } 1586: # 2175 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline pair<_ForwardIterator, _ForwardIterator> 1586: equal_range(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __val) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__equal_range(__first, __last, __val, 1586: __gnu_cxx::__ops::__iter_less_val(), 1586: __gnu_cxx::__ops::__val_less_iter()); 1586: } 1586: # 2211 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline pair<_ForwardIterator, _ForwardIterator> 1586: equal_range(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __val, _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: ; 1586: 1586: return std::__equal_range(__first, __last, __val, 1586: __gnu_cxx::__ops::__iter_comp_val(__comp), 1586: __gnu_cxx::__ops::__val_comp_iter(__comp)); 1586: } 1586: # 2244 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: bool 1586: binary_search(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __val) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: _ForwardIterator __i 1586: = std::__lower_bound(__first, __last, __val, 1586: __gnu_cxx::__ops::__iter_less_val()); 1586: return __i != __last && !(__val < *__i); 1586: } 1586: # 2277 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: bool 1586: binary_search(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __val, _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: ; 1586: 1586: _ForwardIterator __i 1586: = std::__lower_bound(__first, __last, __val, 1586: __gnu_cxx::__ops::__iter_comp_val(__comp)); 1586: return __i != __last && !bool(__comp(__val, *__i)); 1586: } 1586: 1586: 1586: 1586: 1586: template 1586: void 1586: __move_merge_adaptive(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _InputIterator2 __last2, 1586: _OutputIterator __result, _Compare __comp) 1586: { 1586: while (__first1 != __last1 && __first2 != __last2) 1586: { 1586: if (__comp(__first2, __first1)) 1586: { 1586: *__result = std::move(*__first2); 1586: ++__first2; 1586: } 1586: else 1586: { 1586: *__result = std::move(*__first1); 1586: ++__first1; 1586: } 1586: ++__result; 1586: } 1586: if (__first1 != __last1) 1586: std::move(__first1, __last1, __result); 1586: } 1586: 1586: 1586: template 1586: void 1586: __move_merge_adaptive_backward(_BidirectionalIterator1 __first1, 1586: _BidirectionalIterator1 __last1, 1586: _BidirectionalIterator2 __first2, 1586: _BidirectionalIterator2 __last2, 1586: _BidirectionalIterator3 __result, 1586: _Compare __comp) 1586: { 1586: if (__first1 == __last1) 1586: { 1586: std::move_backward(__first2, __last2, __result); 1586: return; 1586: } 1586: else if (__first2 == __last2) 1586: return; 1586: 1586: --__last1; 1586: --__last2; 1586: while (true) 1586: { 1586: if (__comp(__last2, __last1)) 1586: { 1586: *--__result = std::move(*__last1); 1586: if (__first1 == __last1) 1586: { 1586: std::move_backward(__first2, ++__last2, __result); 1586: return; 1586: } 1586: --__last1; 1586: } 1586: else 1586: { 1586: *--__result = std::move(*__last2); 1586: if (__first2 == __last2) 1586: return; 1586: --__last2; 1586: } 1586: } 1586: } 1586: 1586: 1586: template 1586: _BidirectionalIterator1 1586: __rotate_adaptive(_BidirectionalIterator1 __first, 1586: _BidirectionalIterator1 __middle, 1586: _BidirectionalIterator1 __last, 1586: _Distance __len1, _Distance __len2, 1586: _BidirectionalIterator2 __buffer, 1586: _Distance __buffer_size) 1586: { 1586: _BidirectionalIterator2 __buffer_end; 1586: if (__len1 > __len2 && __len2 <= __buffer_size) 1586: { 1586: if (__len2) 1586: { 1586: __buffer_end = std::move(__middle, __last, __buffer); 1586: std::move_backward(__first, __middle, __last); 1586: return std::move(__buffer, __buffer_end, __first); 1586: } 1586: else 1586: return __first; 1586: } 1586: else if (__len1 <= __buffer_size) 1586: { 1586: if (__len1) 1586: { 1586: __buffer_end = std::move(__first, __middle, __buffer); 1586: std::move(__middle, __last, __first); 1586: return std::move_backward(__buffer, __buffer_end, __last); 1586: } 1586: else 1586: return __last; 1586: } 1586: else 1586: return std::rotate(__first, __middle, __last); 1586: } 1586: 1586: 1586: template 1586: void 1586: __merge_adaptive(_BidirectionalIterator __first, 1586: _BidirectionalIterator __middle, 1586: _BidirectionalIterator __last, 1586: _Distance __len1, _Distance __len2, 1586: _Pointer __buffer, _Distance __buffer_size, 1586: _Compare __comp) 1586: { 1586: if (__len1 <= __len2 && __len1 <= __buffer_size) 1586: { 1586: _Pointer __buffer_end = std::move(__first, __middle, __buffer); 1586: std::__move_merge_adaptive(__buffer, __buffer_end, __middle, __last, 1586: __first, __comp); 1586: } 1586: else if (__len2 <= __buffer_size) 1586: { 1586: _Pointer __buffer_end = std::move(__middle, __last, __buffer); 1586: std::__move_merge_adaptive_backward(__first, __middle, __buffer, 1586: __buffer_end, __last, __comp); 1586: } 1586: else 1586: { 1586: _BidirectionalIterator __first_cut = __first; 1586: _BidirectionalIterator __second_cut = __middle; 1586: _Distance __len11 = 0; 1586: _Distance __len22 = 0; 1586: if (__len1 > __len2) 1586: { 1586: __len11 = __len1 / 2; 1586: std::advance(__first_cut, __len11); 1586: __second_cut 1586: = std::__lower_bound(__middle, __last, *__first_cut, 1586: __gnu_cxx::__ops::__iter_comp_val(__comp)); 1586: __len22 = std::distance(__middle, __second_cut); 1586: } 1586: else 1586: { 1586: __len22 = __len2 / 2; 1586: std::advance(__second_cut, __len22); 1586: __first_cut 1586: = std::__upper_bound(__first, __middle, *__second_cut, 1586: __gnu_cxx::__ops::__val_comp_iter(__comp)); 1586: __len11 = std::distance(__first, __first_cut); 1586: } 1586: 1586: _BidirectionalIterator __new_middle 1586: = std::__rotate_adaptive(__first_cut, __middle, __second_cut, 1586: __len1 - __len11, __len22, __buffer, 1586: __buffer_size); 1586: std::__merge_adaptive(__first, __first_cut, __new_middle, __len11, 1586: __len22, __buffer, __buffer_size, __comp); 1586: std::__merge_adaptive(__new_middle, __second_cut, __last, 1586: __len1 - __len11, 1586: __len2 - __len22, __buffer, 1586: __buffer_size, __comp); 1586: } 1586: } 1586: 1586: 1586: template 1586: void 1586: __merge_without_buffer(_BidirectionalIterator __first, 1586: _BidirectionalIterator __middle, 1586: _BidirectionalIterator __last, 1586: _Distance __len1, _Distance __len2, 1586: _Compare __comp) 1586: { 1586: if (__len1 == 0 || __len2 == 0) 1586: return; 1586: 1586: if (__len1 + __len2 == 2) 1586: { 1586: if (__comp(__middle, __first)) 1586: std::iter_swap(__first, __middle); 1586: return; 1586: } 1586: 1586: _BidirectionalIterator __first_cut = __first; 1586: _BidirectionalIterator __second_cut = __middle; 1586: _Distance __len11 = 0; 1586: _Distance __len22 = 0; 1586: if (__len1 > __len2) 1586: { 1586: __len11 = __len1 / 2; 1586: std::advance(__first_cut, __len11); 1586: __second_cut 1586: = std::__lower_bound(__middle, __last, *__first_cut, 1586: __gnu_cxx::__ops::__iter_comp_val(__comp)); 1586: __len22 = std::distance(__middle, __second_cut); 1586: } 1586: else 1586: { 1586: __len22 = __len2 / 2; 1586: std::advance(__second_cut, __len22); 1586: __first_cut 1586: = std::__upper_bound(__first, __middle, *__second_cut, 1586: __gnu_cxx::__ops::__val_comp_iter(__comp)); 1586: __len11 = std::distance(__first, __first_cut); 1586: } 1586: 1586: _BidirectionalIterator __new_middle 1586: = std::rotate(__first_cut, __middle, __second_cut); 1586: std::__merge_without_buffer(__first, __first_cut, __new_middle, 1586: __len11, __len22, __comp); 1586: std::__merge_without_buffer(__new_middle, __second_cut, __last, 1586: __len1 - __len11, __len2 - __len22, __comp); 1586: } 1586: 1586: template 1586: void 1586: __inplace_merge(_BidirectionalIterator __first, 1586: _BidirectionalIterator __middle, 1586: _BidirectionalIterator __last, 1586: _Compare __comp) 1586: { 1586: typedef typename iterator_traits<_BidirectionalIterator>::value_type 1586: _ValueType; 1586: typedef typename iterator_traits<_BidirectionalIterator>::difference_type 1586: _DistanceType; 1586: 1586: if (__first == __middle || __middle == __last) 1586: return; 1586: 1586: const _DistanceType __len1 = std::distance(__first, __middle); 1586: const _DistanceType __len2 = std::distance(__middle, __last); 1586: 1586: typedef _Temporary_buffer<_BidirectionalIterator, _ValueType> _TmpBuf; 1586: _TmpBuf __buf(__first, __len1 + __len2); 1586: 1586: if (__buf.begin() == 0) 1586: std::__merge_without_buffer 1586: (__first, __middle, __last, __len1, __len2, __comp); 1586: else 1586: std::__merge_adaptive 1586: (__first, __middle, __last, __len1, __len2, __buf.begin(), 1586: _DistanceType(__buf.size()), __comp); 1586: } 1586: # 2566 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline void 1586: inplace_merge(_BidirectionalIterator __first, 1586: _BidirectionalIterator __middle, 1586: _BidirectionalIterator __last) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: 1586: std::__inplace_merge(__first, __middle, __last, 1586: __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: # 2607 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline void 1586: inplace_merge(_BidirectionalIterator __first, 1586: _BidirectionalIterator __middle, 1586: _BidirectionalIterator __last, 1586: _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: 1586: std::__inplace_merge(__first, __middle, __last, 1586: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: 1586: 1586: 1586: template 1586: _OutputIterator 1586: __move_merge(_InputIterator __first1, _InputIterator __last1, 1586: _InputIterator __first2, _InputIterator __last2, 1586: _OutputIterator __result, _Compare __comp) 1586: { 1586: while (__first1 != __last1 && __first2 != __last2) 1586: { 1586: if (__comp(__first2, __first1)) 1586: { 1586: *__result = std::move(*__first2); 1586: ++__first2; 1586: } 1586: else 1586: { 1586: *__result = std::move(*__first1); 1586: ++__first1; 1586: } 1586: ++__result; 1586: } 1586: return std::move(__first2, __last2, std::move(__first1, __last1, __result)) 1586: 1586: ; 1586: } 1586: 1586: template 1586: void 1586: __merge_sort_loop(_RandomAccessIterator1 __first, 1586: _RandomAccessIterator1 __last, 1586: _RandomAccessIterator2 __result, _Distance __step_size, 1586: _Compare __comp) 1586: { 1586: const _Distance __two_step = 2 * __step_size; 1586: 1586: while (__last - __first >= __two_step) 1586: { 1586: __result = std::__move_merge(__first, __first + __step_size, 1586: __first + __step_size, 1586: __first + __two_step, 1586: __result, __comp); 1586: __first += __two_step; 1586: } 1586: __step_size = std::min(_Distance(__last - __first), __step_size); 1586: 1586: std::__move_merge(__first, __first + __step_size, 1586: __first + __step_size, __last, __result, __comp); 1586: } 1586: 1586: template 1586: void 1586: __chunk_insertion_sort(_RandomAccessIterator __first, 1586: _RandomAccessIterator __last, 1586: _Distance __chunk_size, _Compare __comp) 1586: { 1586: while (__last - __first >= __chunk_size) 1586: { 1586: std::__insertion_sort(__first, __first + __chunk_size, __comp); 1586: __first += __chunk_size; 1586: } 1586: std::__insertion_sort(__first, __last, __comp); 1586: } 1586: 1586: enum { _S_chunk_size = 7 }; 1586: 1586: template 1586: void 1586: __merge_sort_with_buffer(_RandomAccessIterator __first, 1586: _RandomAccessIterator __last, 1586: _Pointer __buffer, _Compare __comp) 1586: { 1586: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 1586: _Distance; 1586: 1586: const _Distance __len = __last - __first; 1586: const _Pointer __buffer_last = __buffer + __len; 1586: 1586: _Distance __step_size = _S_chunk_size; 1586: std::__chunk_insertion_sort(__first, __last, __step_size, __comp); 1586: 1586: while (__step_size < __len) 1586: { 1586: std::__merge_sort_loop(__first, __last, __buffer, 1586: __step_size, __comp); 1586: __step_size *= 2; 1586: std::__merge_sort_loop(__buffer, __buffer_last, __first, 1586: __step_size, __comp); 1586: __step_size *= 2; 1586: } 1586: } 1586: 1586: template 1586: void 1586: __stable_sort_adaptive(_RandomAccessIterator __first, 1586: _RandomAccessIterator __last, 1586: _Pointer __buffer, _Distance __buffer_size, 1586: _Compare __comp) 1586: { 1586: const _Distance __len = (__last - __first + 1) / 2; 1586: const _RandomAccessIterator __middle = __first + __len; 1586: if (__len > __buffer_size) 1586: { 1586: std::__stable_sort_adaptive(__first, __middle, __buffer, 1586: __buffer_size, __comp); 1586: std::__stable_sort_adaptive(__middle, __last, __buffer, 1586: __buffer_size, __comp); 1586: } 1586: else 1586: { 1586: std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp); 1586: std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp); 1586: } 1586: std::__merge_adaptive(__first, __middle, __last, 1586: _Distance(__middle - __first), 1586: _Distance(__last - __middle), 1586: __buffer, __buffer_size, 1586: __comp); 1586: } 1586: 1586: 1586: template 1586: void 1586: __inplace_stable_sort(_RandomAccessIterator __first, 1586: _RandomAccessIterator __last, _Compare __comp) 1586: { 1586: if (__last - __first < 15) 1586: { 1586: std::__insertion_sort(__first, __last, __comp); 1586: return; 1586: } 1586: _RandomAccessIterator __middle = __first + (__last - __first) / 2; 1586: std::__inplace_stable_sort(__first, __middle, __comp); 1586: std::__inplace_stable_sort(__middle, __last, __comp); 1586: std::__merge_without_buffer(__first, __middle, __last, 1586: __middle - __first, 1586: __last - __middle, 1586: __comp); 1586: } 1586: # 2779 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: bool 1586: __includes(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _InputIterator2 __last2, 1586: _Compare __comp) 1586: { 1586: while (__first1 != __last1 && __first2 != __last2) 1586: if (__comp(__first2, __first1)) 1586: return false; 1586: else if (__comp(__first1, __first2)) 1586: ++__first1; 1586: else 1586: { 1586: ++__first1; 1586: ++__first2; 1586: } 1586: 1586: return __first2 == __last2; 1586: } 1586: # 2818 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline bool 1586: includes(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _InputIterator2 __last2) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: ; 1586: 1586: return std::__includes(__first1, __last1, __first2, __last2, 1586: __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: # 2862 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline bool 1586: includes(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _InputIterator2 __last2, 1586: _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: ; 1586: 1586: return std::__includes(__first1, __last1, __first2, __last2, 1586: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: # 2897 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: bool 1586: __next_permutation(_BidirectionalIterator __first, 1586: _BidirectionalIterator __last, _Compare __comp) 1586: { 1586: if (__first == __last) 1586: return false; 1586: _BidirectionalIterator __i = __first; 1586: ++__i; 1586: if (__i == __last) 1586: return false; 1586: __i = __last; 1586: --__i; 1586: 1586: for(;;) 1586: { 1586: _BidirectionalIterator __ii = __i; 1586: --__i; 1586: if (__comp(__i, __ii)) 1586: { 1586: _BidirectionalIterator __j = __last; 1586: while (!__comp(__i, --__j)) 1586: {} 1586: std::iter_swap(__i, __j); 1586: std::__reverse(__ii, __last, 1586: std::__iterator_category(__first)); 1586: return true; 1586: } 1586: if (__i == __first) 1586: { 1586: std::__reverse(__first, __last, 1586: std::__iterator_category(__first)); 1586: return false; 1586: } 1586: } 1586: } 1586: # 2946 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline bool 1586: next_permutation(_BidirectionalIterator __first, 1586: _BidirectionalIterator __last) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__next_permutation 1586: (__first, __last, __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: # 2978 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline bool 1586: next_permutation(_BidirectionalIterator __first, 1586: _BidirectionalIterator __last, _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__next_permutation 1586: (__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: 1586: template 1586: bool 1586: __prev_permutation(_BidirectionalIterator __first, 1586: _BidirectionalIterator __last, _Compare __comp) 1586: { 1586: if (__first == __last) 1586: return false; 1586: _BidirectionalIterator __i = __first; 1586: ++__i; 1586: if (__i == __last) 1586: return false; 1586: __i = __last; 1586: --__i; 1586: 1586: for(;;) 1586: { 1586: _BidirectionalIterator __ii = __i; 1586: --__i; 1586: if (__comp(__ii, __i)) 1586: { 1586: _BidirectionalIterator __j = __last; 1586: while (!__comp(--__j, __i)) 1586: {} 1586: std::iter_swap(__i, __j); 1586: std::__reverse(__ii, __last, 1586: std::__iterator_category(__first)); 1586: return true; 1586: } 1586: if (__i == __first) 1586: { 1586: std::__reverse(__first, __last, 1586: std::__iterator_category(__first)); 1586: return false; 1586: } 1586: } 1586: } 1586: # 3046 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline bool 1586: prev_permutation(_BidirectionalIterator __first, 1586: _BidirectionalIterator __last) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__prev_permutation(__first, __last, 1586: __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: # 3078 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline bool 1586: prev_permutation(_BidirectionalIterator __first, 1586: _BidirectionalIterator __last, _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__prev_permutation(__first, __last, 1586: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: 1586: 1586: 1586: 1586: template 1586: _OutputIterator 1586: __replace_copy_if(_InputIterator __first, _InputIterator __last, 1586: _OutputIterator __result, 1586: _Predicate __pred, const _Tp& __new_value) 1586: { 1586: for (; __first != __last; ++__first, (void)++__result) 1586: if (__pred(__first)) 1586: *__result = __new_value; 1586: else 1586: *__result = *__first; 1586: return __result; 1586: } 1586: # 3128 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _OutputIterator 1586: replace_copy(_InputIterator __first, _InputIterator __last, 1586: _OutputIterator __result, 1586: const _Tp& __old_value, const _Tp& __new_value) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__replace_copy_if(__first, __last, __result, 1586: __gnu_cxx::__ops::__iter_equals_val(__old_value), 1586: __new_value); 1586: } 1586: # 3162 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _OutputIterator 1586: replace_copy_if(_InputIterator __first, _InputIterator __last, 1586: _OutputIterator __result, 1586: _Predicate __pred, const _Tp& __new_value) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__replace_copy_if(__first, __last, __result, 1586: __gnu_cxx::__ops::__pred_iter(__pred), 1586: __new_value); 1586: } 1586: 1586: template 1586: typename iterator_traits<_InputIterator>::difference_type 1586: __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 1586: { 1586: typename iterator_traits<_InputIterator>::difference_type __n = 0; 1586: for (; __first != __last; ++__first) 1586: if (__pred(__first)) 1586: ++__n; 1586: return __n; 1586: } 1586: # 3201 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline bool 1586: is_sorted(_ForwardIterator __first, _ForwardIterator __last) 1586: { return std::is_sorted_until(__first, __last) == __last; } 1586: # 3215 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline bool 1586: is_sorted(_ForwardIterator __first, _ForwardIterator __last, 1586: _Compare __comp) 1586: { return std::is_sorted_until(__first, __last, __comp) == __last; } 1586: 1586: template 1586: _ForwardIterator 1586: __is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, 1586: _Compare __comp) 1586: { 1586: if (__first == __last) 1586: return __last; 1586: 1586: _ForwardIterator __next = __first; 1586: for (++__next; __next != __last; __first = __next, (void)++__next) 1586: if (__comp(__next, __first)) 1586: return __next; 1586: return __next; 1586: } 1586: # 3244 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator 1586: is_sorted_until(_ForwardIterator __first, _ForwardIterator __last) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__is_sorted_until(__first, __last, 1586: __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: # 3268 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator 1586: is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, 1586: _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__is_sorted_until(__first, __last, 1586: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: # 3293 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: 1586: inline pair 1586: minmax(const _Tp& __a, const _Tp& __b) 1586: { 1586: 1586: 1586: 1586: return __b < __a ? pair(__b, __a) 1586: : pair(__a, __b); 1586: } 1586: # 3314 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: 1586: inline pair 1586: minmax(const _Tp& __a, const _Tp& __b, _Compare __comp) 1586: { 1586: return __comp(__b, __a) ? pair(__b, __a) 1586: : pair(__a, __b); 1586: } 1586: 1586: template 1586: 1586: pair<_ForwardIterator, _ForwardIterator> 1586: __minmax_element(_ForwardIterator __first, _ForwardIterator __last, 1586: _Compare __comp) 1586: { 1586: _ForwardIterator __next = __first; 1586: if (__first == __last 1586: || ++__next == __last) 1586: return std::make_pair(__first, __first); 1586: 1586: _ForwardIterator __min{}, __max{}; 1586: if (__comp(__next, __first)) 1586: { 1586: __min = __next; 1586: __max = __first; 1586: } 1586: else 1586: { 1586: __min = __first; 1586: __max = __next; 1586: } 1586: 1586: __first = __next; 1586: ++__first; 1586: 1586: while (__first != __last) 1586: { 1586: __next = __first; 1586: if (++__next == __last) 1586: { 1586: if (__comp(__first, __min)) 1586: __min = __first; 1586: else if (!__comp(__first, __max)) 1586: __max = __first; 1586: break; 1586: } 1586: 1586: if (__comp(__next, __first)) 1586: { 1586: if (__comp(__next, __min)) 1586: __min = __next; 1586: if (!__comp(__first, __max)) 1586: __max = __first; 1586: } 1586: else 1586: { 1586: if (__comp(__first, __min)) 1586: __min = __first; 1586: if (!__comp(__next, __max)) 1586: __max = __next; 1586: } 1586: 1586: __first = __next; 1586: ++__first; 1586: } 1586: 1586: return std::make_pair(__min, __max); 1586: } 1586: # 3394 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: 1586: inline pair<_ForwardIterator, _ForwardIterator> 1586: minmax_element(_ForwardIterator __first, _ForwardIterator __last) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__minmax_element(__first, __last, 1586: __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: # 3422 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: 1586: inline pair<_ForwardIterator, _ForwardIterator> 1586: minmax_element(_ForwardIterator __first, _ForwardIterator __last, 1586: _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__minmax_element(__first, __last, 1586: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: 1586: 1586: template 1586: 1586: inline _Tp 1586: min(initializer_list<_Tp> __l) 1586: { return *std::min_element(__l.begin(), __l.end()); } 1586: 1586: template 1586: 1586: inline _Tp 1586: min(initializer_list<_Tp> __l, _Compare __comp) 1586: { return *std::min_element(__l.begin(), __l.end(), __comp); } 1586: 1586: template 1586: 1586: inline _Tp 1586: max(initializer_list<_Tp> __l) 1586: { return *std::max_element(__l.begin(), __l.end()); } 1586: 1586: template 1586: 1586: inline _Tp 1586: max(initializer_list<_Tp> __l, _Compare __comp) 1586: { return *std::max_element(__l.begin(), __l.end(), __comp); } 1586: 1586: template 1586: 1586: inline pair<_Tp, _Tp> 1586: minmax(initializer_list<_Tp> __l) 1586: { 1586: pair __p = 1586: std::minmax_element(__l.begin(), __l.end()); 1586: return std::make_pair(*__p.first, *__p.second); 1586: } 1586: 1586: template 1586: 1586: inline pair<_Tp, _Tp> 1586: minmax(initializer_list<_Tp> __l, _Compare __comp) 1586: { 1586: pair __p = 1586: std::minmax_element(__l.begin(), __l.end(), __comp); 1586: return std::make_pair(*__p.first, *__p.second); 1586: } 1586: 1586: template 1586: bool 1586: __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 1586: _ForwardIterator2 __first2, _BinaryPredicate __pred) 1586: { 1586: 1586: 1586: for (; __first1 != __last1; ++__first1, (void)++__first2) 1586: if (!__pred(__first1, __first2)) 1586: break; 1586: 1586: if (__first1 == __last1) 1586: return true; 1586: 1586: 1586: 1586: _ForwardIterator2 __last2 = __first2; 1586: std::advance(__last2, std::distance(__first1, __last1)); 1586: for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) 1586: { 1586: if (__scan != std::__find_if(__first1, __scan, 1586: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) 1586: continue; 1586: 1586: auto __matches 1586: = std::__count_if(__first2, __last2, 1586: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); 1586: if (0 == __matches || 1586: std::__count_if(__scan, __last1, 1586: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) 1586: != __matches) 1586: return false; 1586: } 1586: return true; 1586: } 1586: # 3534 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline bool 1586: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 1586: _ForwardIterator2 __first2) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__is_permutation(__first1, __last1, __first2, 1586: __gnu_cxx::__ops::__iter_equal_to_iter()); 1586: } 1586: # 3565 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline bool 1586: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 1586: _ForwardIterator2 __first2, _BinaryPredicate __pred) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__is_permutation(__first1, __last1, __first2, 1586: __gnu_cxx::__ops::__iter_comp_iter(__pred)); 1586: } 1586: # 3761 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: pair<_IntType, _IntType> 1586: __gen_two_uniform_ints(_IntType __b0, _IntType __b1, 1586: _UniformRandomBitGenerator&& __g) 1586: { 1586: _IntType __x 1586: = uniform_int_distribution<_IntType>{0, (__b0 * __b1) - 1}(__g); 1586: return std::make_pair(__x / __b1, __x % __b1); 1586: } 1586: # 3783 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: void 1586: shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, 1586: _UniformRandomNumberGenerator&& __g) 1586: { 1586: 1586: 1586: 1586: ; 1586: 1586: if (__first == __last) 1586: return; 1586: 1586: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 1586: _DistanceType; 1586: 1586: typedef typename std::make_unsigned<_DistanceType>::type __ud_type; 1586: typedef typename std::uniform_int_distribution<__ud_type> __distr_type; 1586: typedef typename __distr_type::param_type __p_type; 1586: 1586: typedef typename remove_reference<_UniformRandomNumberGenerator>::type 1586: _Gen; 1586: typedef typename common_type::type 1586: __uc_type; 1586: 1586: const __uc_type __urngrange = __g.max() - __g.min(); 1586: const __uc_type __urange = __uc_type(__last - __first); 1586: 1586: if (__urngrange / __urange >= __urange) 1586: 1586: { 1586: _RandomAccessIterator __i = __first + 1; 1586: 1586: 1586: 1586: 1586: 1586: if ((__urange % 2) == 0) 1586: { 1586: __distr_type __d{0, 1}; 1586: std::iter_swap(__i++, __first + __d(__g)); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: while (__i != __last) 1586: { 1586: const __uc_type __swap_range = __uc_type(__i - __first) + 1; 1586: 1586: const pair<__uc_type, __uc_type> __pospos = 1586: __gen_two_uniform_ints(__swap_range, __swap_range + 1, __g); 1586: 1586: std::iter_swap(__i++, __first + __pospos.first); 1586: std::iter_swap(__i++, __first + __pospos.second); 1586: } 1586: 1586: return; 1586: } 1586: 1586: __distr_type __d; 1586: 1586: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 1586: std::iter_swap(__i, __first + __d(__g, __p_type(0, __i - __first))); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: # 3868 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: _Function 1586: for_each(_InputIterator __first, _InputIterator __last, _Function __f) 1586: { 1586: 1586: 1586: ; 1586: for (; __first != __last; ++__first) 1586: __f(*__first); 1586: return __f; 1586: } 1586: # 3928 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _InputIterator 1586: find(_InputIterator __first, _InputIterator __last, 1586: const _Tp& __val) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: return std::__find_if(__first, __last, 1586: __gnu_cxx::__ops::__iter_equals_val(__val)); 1586: } 1586: # 3952 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _InputIterator 1586: find_if(_InputIterator __first, _InputIterator __last, 1586: _Predicate __pred) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__find_if(__first, __last, 1586: __gnu_cxx::__ops::__pred_iter(__pred)); 1586: } 1586: # 3983 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: _InputIterator 1586: find_first_of(_InputIterator __first1, _InputIterator __last1, 1586: _ForwardIterator __first2, _ForwardIterator __last2) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: for (; __first1 != __last1; ++__first1) 1586: for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) 1586: if (*__first1 == *__iter) 1586: return __first1; 1586: return __last1; 1586: } 1586: # 4023 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: _InputIterator 1586: find_first_of(_InputIterator __first1, _InputIterator __last1, 1586: _ForwardIterator __first2, _ForwardIterator __last2, 1586: _BinaryPredicate __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: for (; __first1 != __last1; ++__first1) 1586: for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) 1586: if (__comp(*__first1, *__iter)) 1586: return __first1; 1586: return __last1; 1586: } 1586: # 4055 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator 1586: adjacent_find(_ForwardIterator __first, _ForwardIterator __last) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__adjacent_find(__first, __last, 1586: __gnu_cxx::__ops::__iter_equal_to_iter()); 1586: } 1586: # 4080 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator 1586: adjacent_find(_ForwardIterator __first, _ForwardIterator __last, 1586: _BinaryPredicate __binary_pred) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__adjacent_find(__first, __last, 1586: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 1586: } 1586: # 4105 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline typename iterator_traits<_InputIterator>::difference_type 1586: count(_InputIterator __first, _InputIterator __last, const _Tp& __value) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__count_if(__first, __last, 1586: __gnu_cxx::__ops::__iter_equals_val(__value)); 1586: } 1586: # 4128 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline typename iterator_traits<_InputIterator>::difference_type 1586: count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__count_if(__first, __last, 1586: __gnu_cxx::__ops::__pred_iter(__pred)); 1586: } 1586: # 4168 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator1 1586: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 1586: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__search(__first1, __last1, __first2, __last2, 1586: __gnu_cxx::__ops::__iter_equal_to_iter()); 1586: } 1586: # 4207 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator1 1586: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 1586: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 1586: _BinaryPredicate __predicate) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__search(__first1, __last1, __first2, __last2, 1586: __gnu_cxx::__ops::__iter_comp_iter(__predicate)); 1586: } 1586: # 4242 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator 1586: search_n(_ForwardIterator __first, _ForwardIterator __last, 1586: _Integer __count, const _Tp& __val) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__search_n(__first, __last, __count, 1586: __gnu_cxx::__ops::__iter_equals_val(__val)); 1586: } 1586: # 4275 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator 1586: search_n(_ForwardIterator __first, _ForwardIterator __last, 1586: _Integer __count, const _Tp& __val, 1586: _BinaryPredicate __binary_pred) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__search_n(__first, __last, __count, 1586: __gnu_cxx::__ops::__iter_comp_val(__binary_pred, __val)); 1586: } 1586: # 4323 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: _OutputIterator 1586: transform(_InputIterator __first, _InputIterator __last, 1586: _OutputIterator __result, _UnaryOperation __unary_op) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: for (; __first != __last; ++__first, (void)++__result) 1586: *__result = __unary_op(*__first); 1586: return __result; 1586: } 1586: # 4360 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: _OutputIterator 1586: transform(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _OutputIterator __result, 1586: _BinaryOperation __binary_op) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: for (; __first1 != __last1; ++__first1, (void)++__first2, ++__result) 1586: *__result = __binary_op(*__first1, *__first2); 1586: return __result; 1586: } 1586: # 4393 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: void 1586: replace(_ForwardIterator __first, _ForwardIterator __last, 1586: const _Tp& __old_value, const _Tp& __new_value) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: for (; __first != __last; ++__first) 1586: if (*__first == __old_value) 1586: *__first = __new_value; 1586: } 1586: # 4425 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: void 1586: replace_if(_ForwardIterator __first, _ForwardIterator __last, 1586: _Predicate __pred, const _Tp& __new_value) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: for (; __first != __last; ++__first) 1586: if (__pred(*__first)) 1586: *__first = __new_value; 1586: } 1586: # 4457 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: void 1586: generate(_ForwardIterator __first, _ForwardIterator __last, 1586: _Generator __gen) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: for (; __first != __last; ++__first) 1586: *__first = __gen(); 1586: } 1586: # 4488 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: _OutputIterator 1586: generate_n(_OutputIterator __first, _Size __n, _Generator __gen) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: for (__decltype(__n + 0) __niter = __n; 1586: __niter > 0; --__niter, (void) ++__first) 1586: *__first = __gen(); 1586: return __first; 1586: } 1586: # 4524 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _OutputIterator 1586: unique_copy(_InputIterator __first, _InputIterator __last, 1586: _OutputIterator __result) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: if (__first == __last) 1586: return __result; 1586: return std::__unique_copy(__first, __last, __result, 1586: __gnu_cxx::__ops::__iter_equal_to_iter(), 1586: std::__iterator_category(__first), 1586: std::__iterator_category(__result)); 1586: } 1586: # 4564 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _OutputIterator 1586: unique_copy(_InputIterator __first, _InputIterator __last, 1586: _OutputIterator __result, 1586: _BinaryPredicate __binary_pred) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: if (__first == __last) 1586: return __result; 1586: return std::__unique_copy(__first, __last, __result, 1586: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred), 1586: std::__iterator_category(__first), 1586: std::__iterator_category(__result)); 1586: } 1586: # 4597 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline void 1586: random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last) 1586: { 1586: 1586: 1586: 1586: ; 1586: 1586: if (__first != __last) 1586: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 1586: { 1586: 1586: _RandomAccessIterator __j = __first 1586: + std::rand() % ((__i - __first) + 1); 1586: if (__i != __j) 1586: std::iter_swap(__i, __j); 1586: } 1586: } 1586: # 4632 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: void 1586: random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, 1586: 1586: _RandomNumberGenerator&& __rand) 1586: 1586: 1586: 1586: { 1586: 1586: 1586: 1586: ; 1586: 1586: if (__first == __last) 1586: return; 1586: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 1586: { 1586: _RandomAccessIterator __j = __first + __rand((__i - __first) + 1); 1586: if (__i != __j) 1586: std::iter_swap(__i, __j); 1586: } 1586: } 1586: # 4672 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _ForwardIterator 1586: partition(_ForwardIterator __first, _ForwardIterator __last, 1586: _Predicate __pred) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: 1586: return std::__partition(__first, __last, __pred, 1586: std::__iterator_category(__first)); 1586: } 1586: # 4705 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline void 1586: partial_sort(_RandomAccessIterator __first, 1586: _RandomAccessIterator __middle, 1586: _RandomAccessIterator __last) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: 1586: std::__partial_sort(__first, __middle, __last, 1586: __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: # 4743 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline void 1586: partial_sort(_RandomAccessIterator __first, 1586: _RandomAccessIterator __middle, 1586: _RandomAccessIterator __last, 1586: _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: 1586: std::__partial_sort(__first, __middle, __last, 1586: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: # 4779 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline void 1586: nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, 1586: _RandomAccessIterator __last) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: 1586: if (__first == __last || __nth == __last) 1586: return; 1586: 1586: std::__introselect(__first, __nth, __last, 1586: std::__lg(__last - __first) * 2, 1586: __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: # 4818 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline void 1586: nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, 1586: _RandomAccessIterator __last, _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: 1586: if (__first == __last || __nth == __last) 1586: return; 1586: 1586: std::__introselect(__first, __nth, __last, 1586: std::__lg(__last - __first) * 2, 1586: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: # 4855 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline void 1586: sort(_RandomAccessIterator __first, _RandomAccessIterator __last) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: # 4885 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline void 1586: sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 1586: _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: 1586: template 1586: _OutputIterator 1586: __merge(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _InputIterator2 __last2, 1586: _OutputIterator __result, _Compare __comp) 1586: { 1586: while (__first1 != __last1 && __first2 != __last2) 1586: { 1586: if (__comp(__first2, __first1)) 1586: { 1586: *__result = *__first2; 1586: ++__first2; 1586: } 1586: else 1586: { 1586: *__result = *__first1; 1586: ++__first1; 1586: } 1586: ++__result; 1586: } 1586: return std::copy(__first2, __last2, 1586: std::copy(__first1, __last1, __result)); 1586: } 1586: # 4946 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _OutputIterator 1586: merge(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _InputIterator2 __last2, 1586: _OutputIterator __result) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: ; 1586: 1586: return std::__merge(__first1, __last1, 1586: __first2, __last2, __result, 1586: __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: # 4996 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _OutputIterator 1586: merge(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _InputIterator2 __last2, 1586: _OutputIterator __result, _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: ; 1586: 1586: return std::__merge(__first1, __last1, 1586: __first2, __last2, __result, 1586: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: 1586: template 1586: inline void 1586: __stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 1586: _Compare __comp) 1586: { 1586: typedef typename iterator_traits<_RandomAccessIterator>::value_type 1586: _ValueType; 1586: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 1586: _DistanceType; 1586: 1586: typedef _Temporary_buffer<_RandomAccessIterator, _ValueType> _TmpBuf; 1586: _TmpBuf __buf(__first, std::distance(__first, __last)); 1586: 1586: if (__buf.begin() == 0) 1586: std::__inplace_stable_sort(__first, __last, __comp); 1586: else 1586: std::__stable_sort_adaptive(__first, __last, __buf.begin(), 1586: _DistanceType(__buf.size()), __comp); 1586: } 1586: # 5060 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline void 1586: stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: std::__stable_sort(__first, __last, 1586: __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: # 5094 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline void 1586: stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 1586: _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: std::__stable_sort(__first, __last, 1586: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: 1586: template 1586: _OutputIterator 1586: __set_union(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _InputIterator2 __last2, 1586: _OutputIterator __result, _Compare __comp) 1586: { 1586: while (__first1 != __last1 && __first2 != __last2) 1586: { 1586: if (__comp(__first1, __first2)) 1586: { 1586: *__result = *__first1; 1586: ++__first1; 1586: } 1586: else if (__comp(__first2, __first1)) 1586: { 1586: *__result = *__first2; 1586: ++__first2; 1586: } 1586: else 1586: { 1586: *__result = *__first1; 1586: ++__first1; 1586: ++__first2; 1586: } 1586: ++__result; 1586: } 1586: return std::copy(__first2, __last2, 1586: std::copy(__first1, __last1, __result)); 1586: } 1586: # 5163 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _OutputIterator 1586: set_union(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _InputIterator2 __last2, 1586: _OutputIterator __result) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: ; 1586: 1586: return std::__set_union(__first1, __last1, 1586: __first2, __last2, __result, 1586: __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: # 5213 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _OutputIterator 1586: set_union(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _InputIterator2 __last2, 1586: _OutputIterator __result, _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: ; 1586: 1586: return std::__set_union(__first1, __last1, 1586: __first2, __last2, __result, 1586: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: 1586: template 1586: _OutputIterator 1586: __set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _InputIterator2 __last2, 1586: _OutputIterator __result, _Compare __comp) 1586: { 1586: while (__first1 != __last1 && __first2 != __last2) 1586: if (__comp(__first1, __first2)) 1586: ++__first1; 1586: else if (__comp(__first2, __first1)) 1586: ++__first2; 1586: else 1586: { 1586: *__result = *__first1; 1586: ++__first1; 1586: ++__first2; 1586: ++__result; 1586: } 1586: return __result; 1586: } 1586: # 5284 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _OutputIterator 1586: set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _InputIterator2 __last2, 1586: _OutputIterator __result) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: ; 1586: 1586: return std::__set_intersection(__first1, __last1, 1586: __first2, __last2, __result, 1586: __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: # 5333 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _OutputIterator 1586: set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _InputIterator2 __last2, 1586: _OutputIterator __result, _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: ; 1586: 1586: return std::__set_intersection(__first1, __last1, 1586: __first2, __last2, __result, 1586: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: 1586: template 1586: _OutputIterator 1586: __set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _InputIterator2 __last2, 1586: _OutputIterator __result, _Compare __comp) 1586: { 1586: while (__first1 != __last1 && __first2 != __last2) 1586: if (__comp(__first1, __first2)) 1586: { 1586: *__result = *__first1; 1586: ++__first1; 1586: ++__result; 1586: } 1586: else if (__comp(__first2, __first1)) 1586: ++__first2; 1586: else 1586: { 1586: ++__first1; 1586: ++__first2; 1586: } 1586: return std::copy(__first1, __last1, __result); 1586: } 1586: # 5406 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _OutputIterator 1586: set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _InputIterator2 __last2, 1586: _OutputIterator __result) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: ; 1586: 1586: return std::__set_difference(__first1, __last1, 1586: __first2, __last2, __result, 1586: __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: # 5457 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _OutputIterator 1586: set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _InputIterator2 __last2, 1586: _OutputIterator __result, _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: ; 1586: 1586: return std::__set_difference(__first1, __last1, 1586: __first2, __last2, __result, 1586: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: 1586: template 1586: _OutputIterator 1586: __set_symmetric_difference(_InputIterator1 __first1, 1586: _InputIterator1 __last1, 1586: _InputIterator2 __first2, 1586: _InputIterator2 __last2, 1586: _OutputIterator __result, 1586: _Compare __comp) 1586: { 1586: while (__first1 != __last1 && __first2 != __last2) 1586: if (__comp(__first1, __first2)) 1586: { 1586: *__result = *__first1; 1586: ++__first1; 1586: ++__result; 1586: } 1586: else if (__comp(__first2, __first1)) 1586: { 1586: *__result = *__first2; 1586: ++__first2; 1586: ++__result; 1586: } 1586: else 1586: { 1586: ++__first1; 1586: ++__first2; 1586: } 1586: return std::copy(__first2, __last2, 1586: std::copy(__first1, __last1, __result)); 1586: } 1586: # 5536 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _OutputIterator 1586: set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _InputIterator2 __last2, 1586: _OutputIterator __result) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: ; 1586: 1586: return std::__set_symmetric_difference(__first1, __last1, 1586: __first2, __last2, __result, 1586: __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: # 5587 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: inline _OutputIterator 1586: set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, 1586: _InputIterator2 __first2, _InputIterator2 __last2, 1586: _OutputIterator __result, 1586: _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: ; 1586: ; 1586: 1586: return std::__set_symmetric_difference(__first1, __last1, 1586: __first2, __last2, __result, 1586: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: 1586: template 1586: 1586: _ForwardIterator 1586: __min_element(_ForwardIterator __first, _ForwardIterator __last, 1586: _Compare __comp) 1586: { 1586: if (__first == __last) 1586: return __first; 1586: _ForwardIterator __result = __first; 1586: while (++__first != __last) 1586: if (__comp(__first, __result)) 1586: __result = __first; 1586: return __result; 1586: } 1586: # 5640 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: 1586: _ForwardIterator 1586: inline min_element(_ForwardIterator __first, _ForwardIterator __last) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__min_element(__first, __last, 1586: __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: # 5665 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: 1586: inline _ForwardIterator 1586: min_element(_ForwardIterator __first, _ForwardIterator __last, 1586: _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__min_element(__first, __last, 1586: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: 1586: template 1586: 1586: _ForwardIterator 1586: __max_element(_ForwardIterator __first, _ForwardIterator __last, 1586: _Compare __comp) 1586: { 1586: if (__first == __last) return __first; 1586: _ForwardIterator __result = __first; 1586: while (++__first != __last) 1586: if (__comp(__result, __first)) 1586: __result = __first; 1586: return __result; 1586: } 1586: # 5704 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: 1586: inline _ForwardIterator 1586: max_element(_ForwardIterator __first, _ForwardIterator __last) 1586: { 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__max_element(__first, __last, 1586: __gnu_cxx::__ops::__iter_less_iter()); 1586: } 1586: # 5729 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: template 1586: 1586: inline _ForwardIterator 1586: max_element(_ForwardIterator __first, _ForwardIterator __last, 1586: _Compare __comp) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: ; 1586: ; 1586: 1586: return std::__max_element(__first, __last, 1586: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 1586: } 1586: # 5872 "/usr/mipsel-linux-gnu/include/c++/9/bits/stl_algo.h" 3 1586: 1586: 1586: } 1586: # 63 "/usr/mipsel-linux-gnu/include/c++/9/algorithm" 2 3 1586: # 36 "/<>/include/HepMC3/GenCrossSection.h" 2 1586: 1586: 1586: 1586: # 38 "/<>/include/HepMC3/GenCrossSection.h" 1586: namespace HepMC3 { 1586: using namespace std; 1586: 1586: class GenCrossSection : public Attribute { 1586: 1586: 1586: 1586: 1586: private: 1586: 1586: long accepted_events; 1586: long attempted_events; 1586: 1586: vector cross_sections; 1586: vector cross_section_errors; 1586: 1586: 1586: 1586: public: 1586: 1586: bool from_string(const string &att); 1586: 1586: 1586: bool to_string(string &att) const; 1586: 1586: 1586: void set_cross_section(const double& xs, const double& xs_err,const long& n_acc = -1, const long& n_att = -1); 1586: 1586: 1586: 1586: void set_accepted_events(const long& n_acc ) { 1586: accepted_events=n_acc; 1586: } 1586: 1586: 1586: 1586: void set_attempted_events(const long& n_att ) { 1586: attempted_events=n_att; 1586: } 1586: 1586: 1586: 1586: long get_accepted_events() const { 1586: return accepted_events; 1586: } 1586: 1586: 1586: 1586: long get_attempted_events() const { 1586: return attempted_events; 1586: } 1586: 1586: 1586: 1586: 1586: void set_xsec(const string& wName,const double& xs) { 1586: set_xsec(windx(wName), xs); 1586: } 1586: 1586: 1586: 1586: 1586: void set_xsec(const int& indx, const double& xs) { 1586: cross_sections[indx] = xs; 1586: } 1586: 1586: 1586: 1586: 1586: void set_xsec_err(const string& wName, const double& xs_err) { 1586: set_xsec_err(windx(wName), xs_err); 1586: } 1586: 1586: 1586: 1586: 1586: void set_xsec_err(const int& indx, const double& xs_err) { 1586: cross_section_errors[indx] = xs_err; 1586: } 1586: 1586: 1586: 1586: 1586: double xsec(const string& wName) const { 1586: return xsec(windx(wName)); 1586: } 1586: 1586: 1586: 1586: 1586: double xsec(const int& indx = 0) const { 1586: return cross_sections[indx]; 1586: } 1586: 1586: 1586: 1586: 1586: double xsec_err(const string& wName) const { 1586: return xsec_err(windx(wName)); 1586: } 1586: 1586: 1586: 1586: 1586: double xsec_err(const int& indx = 0) const { 1586: return cross_section_errors[indx]; 1586: } 1586: 1586: bool operator==( const GenCrossSection& ) const; 1586: bool operator!=( const GenCrossSection& ) const; 1586: bool is_valid() const; 1586: 1586: private: 1586: 1586: 1586: int windx(string wName) const; 1586: 1586: }; 1586: 1586: 1586: } 1586: # 25 "/<>/include/HepMC3/GenEvent.h" 2 1586: # 1 "/<>/include/HepMC3/GenRunInfo.h" 1 1586: # 16 "/<>/include/HepMC3/GenRunInfo.h" 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/mutex" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/c++/9/mutex" 3 1586: 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/mutex" 3 1586: 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/chrono" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/c++/9/chrono" 3 1586: 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/chrono" 3 1586: 1586: 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/ratio" 1 3 1586: # 32 "/usr/mipsel-linux-gnu/include/c++/9/ratio" 3 1586: 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/ratio" 3 1586: # 41 "/usr/mipsel-linux-gnu/include/c++/9/ratio" 3 1586: 1586: # 41 "/usr/mipsel-linux-gnu/include/c++/9/ratio" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 53 "/usr/mipsel-linux-gnu/include/c++/9/ratio" 3 1586: template 1586: struct __static_sign 1586: : integral_constant 1586: { }; 1586: 1586: template 1586: struct __static_abs 1586: : integral_constant::value> 1586: { }; 1586: 1586: template 1586: struct __static_gcd 1586: : __static_gcd<_Qn, (_Pn % _Qn)> 1586: { }; 1586: 1586: template 1586: struct __static_gcd<_Pn, 0> 1586: : integral_constant::value> 1586: { }; 1586: 1586: template 1586: struct __static_gcd<0, _Qn> 1586: : integral_constant::value> 1586: { }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct __safe_multiply 1586: { 1586: private: 1586: static const uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 1586: 1586: static const uintmax_t __a0 = __static_abs<_Pn>::value % __c; 1586: static const uintmax_t __a1 = __static_abs<_Pn>::value / __c; 1586: static const uintmax_t __b0 = __static_abs<_Qn>::value % __c; 1586: static const uintmax_t __b1 = __static_abs<_Qn>::value / __c; 1586: 1586: static_assert(__a1 == 0 || __b1 == 0, 1586: "overflow in multiplication"); 1586: static_assert(__a0 * __b1 + __b0 * __a1 < (__c >> 1), 1586: "overflow in multiplication"); 1586: static_assert(__b0 * __a0 <= 0x7fffffffffffffffLL, 1586: "overflow in multiplication"); 1586: static_assert((__a0 * __b1 + __b0 * __a1) * __c 1586: <= 0x7fffffffffffffffLL - __b0 * __a0, 1586: "overflow in multiplication"); 1586: 1586: public: 1586: static const intmax_t value = _Pn * _Qn; 1586: }; 1586: 1586: 1586: 1586: template 1586: struct __big_less 1586: : integral_constant 1586: { }; 1586: 1586: template 1586: struct __big_add 1586: { 1586: static constexpr uintmax_t __lo = __lo1 + __lo2; 1586: static constexpr uintmax_t __hi = (__hi1 + __hi2 + 1586: (__lo1 + __lo2 < __lo1)); 1586: }; 1586: 1586: 1586: template 1586: struct __big_sub 1586: { 1586: static_assert(!__big_less<__hi1, __lo1, __hi2, __lo2>::value, 1586: "Internal library error"); 1586: static constexpr uintmax_t __lo = __lo1 - __lo2; 1586: static constexpr uintmax_t __hi = (__hi1 - __hi2 - 1586: (__lo1 < __lo2)); 1586: }; 1586: 1586: 1586: template 1586: struct __big_mul 1586: { 1586: private: 1586: static constexpr uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 1586: static constexpr uintmax_t __x0 = __x % __c; 1586: static constexpr uintmax_t __x1 = __x / __c; 1586: static constexpr uintmax_t __y0 = __y % __c; 1586: static constexpr uintmax_t __y1 = __y / __c; 1586: static constexpr uintmax_t __x0y0 = __x0 * __y0; 1586: static constexpr uintmax_t __x0y1 = __x0 * __y1; 1586: static constexpr uintmax_t __x1y0 = __x1 * __y0; 1586: static constexpr uintmax_t __x1y1 = __x1 * __y1; 1586: static constexpr uintmax_t __mix = __x0y1 + __x1y0; 1586: static constexpr uintmax_t __mix_lo = __mix * __c; 1586: static constexpr uintmax_t __mix_hi 1586: = __mix / __c + ((__mix < __x0y1) ? __c : 0); 1586: typedef __big_add<__mix_hi, __mix_lo, __x1y1, __x0y0> _Res; 1586: public: 1586: static constexpr uintmax_t __hi = _Res::__hi; 1586: static constexpr uintmax_t __lo = _Res::__lo; 1586: }; 1586: 1586: 1586: 1586: template 1586: struct __big_div_impl 1586: { 1586: private: 1586: static_assert(__d >= (uintmax_t(1) << (sizeof(intmax_t) * 8 - 1)), 1586: "Internal library error"); 1586: static_assert(__n1 < __d, "Internal library error"); 1586: static constexpr uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 1586: static constexpr uintmax_t __d1 = __d / __c; 1586: static constexpr uintmax_t __d0 = __d % __c; 1586: 1586: static constexpr uintmax_t __q1x = __n1 / __d1; 1586: static constexpr uintmax_t __r1x = __n1 % __d1; 1586: static constexpr uintmax_t __m = __q1x * __d0; 1586: static constexpr uintmax_t __r1y = __r1x * __c + __n0 / __c; 1586: static constexpr uintmax_t __r1z = __r1y + __d; 1586: static constexpr uintmax_t __r1 1586: = ((__r1y < __m) ? ((__r1z >= __d) && (__r1z < __m)) 1586: ? (__r1z + __d) : __r1z : __r1y) - __m; 1586: static constexpr uintmax_t __q1 1586: = __q1x - ((__r1y < __m) 1586: ? ((__r1z >= __d) && (__r1z < __m)) ? 2 : 1 : 0); 1586: static constexpr uintmax_t __q0x = __r1 / __d1; 1586: static constexpr uintmax_t __r0x = __r1 % __d1; 1586: static constexpr uintmax_t __n = __q0x * __d0; 1586: static constexpr uintmax_t __r0y = __r0x * __c + __n0 % __c; 1586: static constexpr uintmax_t __r0z = __r0y + __d; 1586: static constexpr uintmax_t __r0 1586: = ((__r0y < __n) ? ((__r0z >= __d) && (__r0z < __n)) 1586: ? (__r0z + __d) : __r0z : __r0y) - __n; 1586: static constexpr uintmax_t __q0 1586: = __q0x - ((__r0y < __n) ? ((__r0z >= __d) 1586: && (__r0z < __n)) ? 2 : 1 : 0); 1586: 1586: public: 1586: static constexpr uintmax_t __quot = __q1 * __c + __q0; 1586: static constexpr uintmax_t __rem = __r0; 1586: 1586: private: 1586: typedef __big_mul<__quot, __d> _Prod; 1586: typedef __big_add<_Prod::__hi, _Prod::__lo, 0, __rem> _Sum; 1586: static_assert(_Sum::__hi == __n1 && _Sum::__lo == __n0, 1586: "Internal library error"); 1586: }; 1586: 1586: template 1586: struct __big_div 1586: { 1586: private: 1586: static_assert(__d != 0, "Internal library error"); 1586: static_assert(sizeof (uintmax_t) == sizeof (unsigned long long), 1586: "This library calls __builtin_clzll on uintmax_t, which " 1586: "is unsafe on your platform. Please complain to " 1586: "http://gcc.gnu.org/bugzilla/"); 1586: static constexpr int __shift = __builtin_clzll(__d); 1586: static constexpr int __coshift_ = sizeof(uintmax_t) * 8 - __shift; 1586: static constexpr int __coshift = (__shift != 0) ? __coshift_ : 0; 1586: static constexpr uintmax_t __c1 = uintmax_t(1) << __shift; 1586: static constexpr uintmax_t __c2 = uintmax_t(1) << __coshift; 1586: static constexpr uintmax_t __new_d = __d * __c1; 1586: static constexpr uintmax_t __new_n0 = __n0 * __c1; 1586: static constexpr uintmax_t __n1_shifted = (__n1 % __d) * __c1; 1586: static constexpr uintmax_t __n0_top = (__shift != 0) ? (__n0 / __c2) : 0; 1586: static constexpr uintmax_t __new_n1 = __n1_shifted + __n0_top; 1586: typedef __big_div_impl<__new_n1, __new_n0, __new_d> _Res; 1586: 1586: public: 1586: static constexpr uintmax_t __quot_hi = __n1 / __d; 1586: static constexpr uintmax_t __quot_lo = _Res::__quot; 1586: static constexpr uintmax_t __rem = _Res::__rem / __c1; 1586: 1586: private: 1586: typedef __big_mul<__quot_lo, __d> _P0; 1586: typedef __big_mul<__quot_hi, __d> _P1; 1586: typedef __big_add<_P0::__hi, _P0::__lo, _P1::__lo, __rem> _Sum; 1586: 1586: static_assert(_P1::__hi == 0, "Internal library error"); 1586: static_assert(_Sum::__hi >= _P0::__hi, "Internal library error"); 1586: 1586: static_assert(_Sum::__hi == __n1 && _Sum::__lo == __n0, 1586: "Internal library error"); 1586: static_assert(__rem < __d, "Internal library error"); 1586: }; 1586: # 260 "/usr/mipsel-linux-gnu/include/c++/9/ratio" 3 1586: template 1586: struct ratio 1586: { 1586: static_assert(_Den != 0, "denominator cannot be zero"); 1586: static_assert(_Num >= -0x7fffffffffffffffLL && _Den >= -0x7fffffffffffffffLL, 1586: "out of range"); 1586: 1586: 1586: static constexpr intmax_t num = 1586: _Num * __static_sign<_Den>::value / __static_gcd<_Num, _Den>::value; 1586: 1586: static constexpr intmax_t den = 1586: __static_abs<_Den>::value / __static_gcd<_Num, _Den>::value; 1586: 1586: typedef ratio type; 1586: }; 1586: 1586: template 1586: constexpr intmax_t ratio<_Num, _Den>::num; 1586: 1586: template 1586: constexpr intmax_t ratio<_Num, _Den>::den; 1586: 1586: template 1586: struct __ratio_multiply 1586: { 1586: private: 1586: static const intmax_t __gcd1 = 1586: __static_gcd<_R1::num, _R2::den>::value; 1586: static const intmax_t __gcd2 = 1586: __static_gcd<_R2::num, _R1::den>::value; 1586: 1586: public: 1586: typedef ratio< 1586: __safe_multiply<(_R1::num / __gcd1), 1586: (_R2::num / __gcd2)>::value, 1586: __safe_multiply<(_R1::den / __gcd2), 1586: (_R2::den / __gcd1)>::value> type; 1586: 1586: static constexpr intmax_t num = type::num; 1586: static constexpr intmax_t den = type::den; 1586: }; 1586: 1586: template 1586: constexpr intmax_t __ratio_multiply<_R1, _R2>::num; 1586: 1586: template 1586: constexpr intmax_t __ratio_multiply<_R1, _R2>::den; 1586: 1586: 1586: template 1586: using ratio_multiply = typename __ratio_multiply<_R1, _R2>::type; 1586: 1586: template 1586: struct __ratio_divide 1586: { 1586: static_assert(_R2::num != 0, "division by 0"); 1586: 1586: typedef typename __ratio_multiply< 1586: _R1, 1586: ratio<_R2::den, _R2::num>>::type type; 1586: 1586: static constexpr intmax_t num = type::num; 1586: static constexpr intmax_t den = type::den; 1586: }; 1586: 1586: template 1586: constexpr intmax_t __ratio_divide<_R1, _R2>::num; 1586: 1586: template 1586: constexpr intmax_t __ratio_divide<_R1, _R2>::den; 1586: 1586: 1586: template 1586: using ratio_divide = typename __ratio_divide<_R1, _R2>::type; 1586: 1586: 1586: template 1586: struct ratio_equal 1586: : integral_constant 1586: { }; 1586: 1586: 1586: template 1586: struct ratio_not_equal 1586: : integral_constant::value> 1586: { }; 1586: 1586: 1586: template, 1586: typename _Right = __big_mul<_R2::num,_R1::den> > 1586: struct __ratio_less_impl_1 1586: : integral_constant::value> 1586: { }; 1586: 1586: template::value 1586: != __static_sign<_R2::num>::value)), 1586: bool = (__static_sign<_R1::num>::value == -1 1586: && __static_sign<_R2::num>::value == -1)> 1586: struct __ratio_less_impl 1586: : __ratio_less_impl_1<_R1, _R2>::type 1586: { }; 1586: 1586: template 1586: struct __ratio_less_impl<_R1, _R2, true, false> 1586: : integral_constant 1586: { }; 1586: 1586: template 1586: struct __ratio_less_impl<_R1, _R2, false, true> 1586: : __ratio_less_impl_1, 1586: ratio<-_R1::num, _R1::den> >::type 1586: { }; 1586: 1586: 1586: template 1586: struct ratio_less 1586: : __ratio_less_impl<_R1, _R2>::type 1586: { }; 1586: 1586: 1586: template 1586: struct ratio_less_equal 1586: : integral_constant::value> 1586: { }; 1586: 1586: 1586: template 1586: struct ratio_greater 1586: : integral_constant::value> 1586: { }; 1586: 1586: 1586: template 1586: struct ratio_greater_equal 1586: : integral_constant::value> 1586: { }; 1586: # 419 "/usr/mipsel-linux-gnu/include/c++/9/ratio" 3 1586: template= 0), 1586: bool = (_R2::num >= 0), 1586: bool = ratio_less::value, _R1::den>, 1586: ratio<__static_abs<_R2::num>::value, _R2::den> >::value> 1586: struct __ratio_add_impl 1586: { 1586: private: 1586: typedef typename __ratio_add_impl< 1586: ratio<-_R1::num, _R1::den>, 1586: ratio<-_R2::num, _R2::den> >::type __t; 1586: public: 1586: typedef ratio<-__t::num, __t::den> type; 1586: }; 1586: 1586: 1586: template 1586: struct __ratio_add_impl<_R1, _R2, true, true, __b> 1586: { 1586: private: 1586: static constexpr uintmax_t __g = __static_gcd<_R1::den, _R2::den>::value; 1586: static constexpr uintmax_t __d2 = _R2::den / __g; 1586: typedef __big_mul<_R1::den, __d2> __d; 1586: typedef __big_mul<_R1::num, _R2::den / __g> __x; 1586: typedef __big_mul<_R2::num, _R1::den / __g> __y; 1586: typedef __big_add<__x::__hi, __x::__lo, __y::__hi, __y::__lo> __n; 1586: static_assert(__n::__hi >= __x::__hi, "Internal library error"); 1586: typedef __big_div<__n::__hi, __n::__lo, __g> __ng; 1586: static constexpr uintmax_t __g2 = __static_gcd<__ng::__rem, __g>::value; 1586: typedef __big_div<__n::__hi, __n::__lo, __g2> __n_final; 1586: static_assert(__n_final::__rem == 0, "Internal library error"); 1586: static_assert(__n_final::__quot_hi == 0 && 1586: __n_final::__quot_lo <= 0x7fffffffffffffffLL, "overflow in addition"); 1586: typedef __big_mul<_R1::den / __g2, __d2> __d_final; 1586: static_assert(__d_final::__hi == 0 && 1586: __d_final::__lo <= 0x7fffffffffffffffLL, "overflow in addition"); 1586: public: 1586: typedef ratio<__n_final::__quot_lo, __d_final::__lo> type; 1586: }; 1586: 1586: template 1586: struct __ratio_add_impl<_R1, _R2, false, true, true> 1586: : __ratio_add_impl<_R2, _R1> 1586: { }; 1586: 1586: 1586: template 1586: struct __ratio_add_impl<_R1, _R2, true, false, false> 1586: { 1586: private: 1586: static constexpr uintmax_t __g = __static_gcd<_R1::den, _R2::den>::value; 1586: static constexpr uintmax_t __d2 = _R2::den / __g; 1586: typedef __big_mul<_R1::den, __d2> __d; 1586: typedef __big_mul<_R1::num, _R2::den / __g> __x; 1586: typedef __big_mul<-_R2::num, _R1::den / __g> __y; 1586: typedef __big_sub<__x::__hi, __x::__lo, __y::__hi, __y::__lo> __n; 1586: typedef __big_div<__n::__hi, __n::__lo, __g> __ng; 1586: static constexpr uintmax_t __g2 = __static_gcd<__ng::__rem, __g>::value; 1586: typedef __big_div<__n::__hi, __n::__lo, __g2> __n_final; 1586: static_assert(__n_final::__rem == 0, "Internal library error"); 1586: static_assert(__n_final::__quot_hi == 0 && 1586: __n_final::__quot_lo <= 0x7fffffffffffffffLL, "overflow in addition"); 1586: typedef __big_mul<_R1::den / __g2, __d2> __d_final; 1586: static_assert(__d_final::__hi == 0 && 1586: __d_final::__lo <= 0x7fffffffffffffffLL, "overflow in addition"); 1586: public: 1586: typedef ratio<__n_final::__quot_lo, __d_final::__lo> type; 1586: }; 1586: 1586: template 1586: struct __ratio_add 1586: { 1586: typedef typename __ratio_add_impl<_R1, _R2>::type type; 1586: static constexpr intmax_t num = type::num; 1586: static constexpr intmax_t den = type::den; 1586: }; 1586: 1586: template 1586: constexpr intmax_t __ratio_add<_R1, _R2>::num; 1586: 1586: template 1586: constexpr intmax_t __ratio_add<_R1, _R2>::den; 1586: 1586: 1586: template 1586: using ratio_add = typename __ratio_add<_R1, _R2>::type; 1586: 1586: template 1586: struct __ratio_subtract 1586: { 1586: typedef typename __ratio_add< 1586: _R1, 1586: ratio<-_R2::num, _R2::den>>::type type; 1586: 1586: static constexpr intmax_t num = type::num; 1586: static constexpr intmax_t den = type::den; 1586: }; 1586: 1586: template 1586: constexpr intmax_t __ratio_subtract<_R1, _R2>::num; 1586: 1586: template 1586: constexpr intmax_t __ratio_subtract<_R1, _R2>::den; 1586: 1586: 1586: template 1586: using ratio_subtract = typename __ratio_subtract<_R1, _R2>::type; 1586: 1586: 1586: typedef ratio<1, 1000000000000000000> atto; 1586: typedef ratio<1, 1000000000000000> femto; 1586: typedef ratio<1, 1000000000000> pico; 1586: typedef ratio<1, 1000000000> nano; 1586: typedef ratio<1, 1000000> micro; 1586: typedef ratio<1, 1000> milli; 1586: typedef ratio<1, 100> centi; 1586: typedef ratio<1, 10> deci; 1586: typedef ratio< 10, 1> deca; 1586: typedef ratio< 100, 1> hecto; 1586: typedef ratio< 1000, 1> kilo; 1586: typedef ratio< 1000000, 1> mega; 1586: typedef ratio< 1000000000, 1> giga; 1586: typedef ratio< 1000000000000, 1> tera; 1586: typedef ratio< 1000000000000000, 1> peta; 1586: typedef ratio< 1000000000000000000, 1> exa; 1586: 1586: 1586: 1586: } 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/chrono" 2 3 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/ctime" 1 3 1586: # 39 "/usr/mipsel-linux-gnu/include/c++/9/ctime" 3 1586: 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/ctime" 3 1586: # 42 "/usr/mipsel-linux-gnu/include/c++/9/chrono" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/parse_numbers.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/parse_numbers.h" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/parse_numbers.h" 3 1586: # 43 "/usr/mipsel-linux-gnu/include/c++/9/chrono" 2 3 1586: 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 59 "/usr/mipsel-linux-gnu/include/c++/9/chrono" 3 1586: namespace chrono 1586: { 1586: template> 1586: struct duration; 1586: 1586: template 1586: struct time_point; 1586: } 1586: 1586: 1586: 1586: template 1586: struct __duration_common_type_wrapper 1586: { 1586: private: 1586: typedef __static_gcd<_Period1::num, _Period2::num> __gcd_num; 1586: typedef __static_gcd<_Period1::den, _Period2::den> __gcd_den; 1586: typedef typename _CT::type __cr; 1586: typedef ratio<__gcd_num::value, 1586: (_Period1::den / __gcd_den::value) * _Period2::den> __r; 1586: public: 1586: typedef __success_type> type; 1586: }; 1586: 1586: template 1586: struct __duration_common_type_wrapper<__failure_type, _Period1, _Period2> 1586: { typedef __failure_type type; }; 1586: 1586: template 1586: struct common_type, 1586: chrono::duration<_Rep2, _Period2>> 1586: : public __duration_common_type_wrapper>::type, _Period1, _Period2>::type 1586: { }; 1586: 1586: 1586: 1586: template 1586: struct __timepoint_common_type_wrapper 1586: { 1586: typedef __success_type> 1586: type; 1586: }; 1586: 1586: template 1586: struct __timepoint_common_type_wrapper<__failure_type, _Clock> 1586: { typedef __failure_type type; }; 1586: 1586: template 1586: struct common_type, 1586: chrono::time_point<_Clock, _Duration2>> 1586: : public __timepoint_common_type_wrapper>::type, _Clock>::type 1586: { }; 1586: 1586: namespace chrono 1586: { 1586: 1586: template 1586: struct __duration_cast_impl 1586: { 1586: template 1586: static constexpr _ToDur 1586: __cast(const duration<_Rep, _Period>& __d) 1586: { 1586: typedef typename _ToDur::rep __to_rep; 1586: return _ToDur(static_cast<__to_rep>(static_cast<_CR>(__d.count()) 1586: * static_cast<_CR>(_CF::num) 1586: / static_cast<_CR>(_CF::den))); 1586: } 1586: }; 1586: 1586: template 1586: struct __duration_cast_impl<_ToDur, _CF, _CR, true, true> 1586: { 1586: template 1586: static constexpr _ToDur 1586: __cast(const duration<_Rep, _Period>& __d) 1586: { 1586: typedef typename _ToDur::rep __to_rep; 1586: return _ToDur(static_cast<__to_rep>(__d.count())); 1586: } 1586: }; 1586: 1586: template 1586: struct __duration_cast_impl<_ToDur, _CF, _CR, true, false> 1586: { 1586: template 1586: static constexpr _ToDur 1586: __cast(const duration<_Rep, _Period>& __d) 1586: { 1586: typedef typename _ToDur::rep __to_rep; 1586: return _ToDur(static_cast<__to_rep>( 1586: static_cast<_CR>(__d.count()) / static_cast<_CR>(_CF::den))); 1586: } 1586: }; 1586: 1586: template 1586: struct __duration_cast_impl<_ToDur, _CF, _CR, false, true> 1586: { 1586: template 1586: static constexpr _ToDur 1586: __cast(const duration<_Rep, _Period>& __d) 1586: { 1586: typedef typename _ToDur::rep __to_rep; 1586: return _ToDur(static_cast<__to_rep>( 1586: static_cast<_CR>(__d.count()) * static_cast<_CR>(_CF::num))); 1586: } 1586: }; 1586: 1586: template 1586: struct __is_duration 1586: : std::false_type 1586: { }; 1586: 1586: template 1586: struct __is_duration> 1586: : std::true_type 1586: { }; 1586: 1586: template 1586: using __enable_if_is_duration 1586: = typename enable_if<__is_duration<_Tp>::value, _Tp>::type; 1586: 1586: template 1586: using __disable_if_is_duration 1586: = typename enable_if::value, _Tp>::type; 1586: 1586: 1586: template 1586: constexpr __enable_if_is_duration<_ToDur> 1586: duration_cast(const duration<_Rep, _Period>& __d) 1586: { 1586: typedef typename _ToDur::period __to_period; 1586: typedef typename _ToDur::rep __to_rep; 1586: typedef ratio_divide<_Period, __to_period> __cf; 1586: typedef typename common_type<__to_rep, _Rep, intmax_t>::type 1586: __cr; 1586: typedef __duration_cast_impl<_ToDur, __cf, __cr, 1586: __cf::num == 1, __cf::den == 1> __dc; 1586: return __dc::__cast(__d); 1586: } 1586: 1586: 1586: template 1586: struct treat_as_floating_point 1586: : is_floating_point<_Rep> 1586: { }; 1586: # 272 "/usr/mipsel-linux-gnu/include/c++/9/chrono" 3 1586: template 1586: struct duration_values 1586: { 1586: static constexpr _Rep 1586: zero() noexcept 1586: { return _Rep(0); } 1586: 1586: static constexpr _Rep 1586: max() noexcept 1586: { return numeric_limits<_Rep>::max(); } 1586: 1586: static constexpr _Rep 1586: min() noexcept 1586: { return numeric_limits<_Rep>::lowest(); } 1586: }; 1586: 1586: template 1586: struct __is_ratio 1586: : std::false_type 1586: { }; 1586: 1586: template 1586: struct __is_ratio> 1586: : std::true_type 1586: { }; 1586: 1586: 1586: template 1586: struct duration 1586: { 1586: private: 1586: template 1586: using __is_float = treat_as_floating_point<_Rep2>; 1586: 1586: 1586: template 1586: using __is_harmonic 1586: = __bool_constant::den == 1>; 1586: 1586: public: 1586: 1586: typedef _Rep rep; 1586: typedef _Period period; 1586: 1586: static_assert(!__is_duration<_Rep>::value, "rep cannot be a duration"); 1586: static_assert(__is_ratio<_Period>::value, 1586: "period must be a specialization of ratio"); 1586: static_assert(_Period::num > 0, "period must be positive"); 1586: 1586: 1586: constexpr duration() = default; 1586: 1586: duration(const duration&) = default; 1586: 1586: 1586: 1586: template, 1586: __or_<__is_float, __not_<__is_float<_Rep2>>>>> 1586: constexpr explicit duration(const _Rep2& __rep) 1586: : __r(static_cast(__rep)) { } 1586: 1586: template, 1586: __and_<__is_harmonic<_Period2>, 1586: __not_<__is_float<_Rep2>>>>>> 1586: constexpr duration(const duration<_Rep2, _Period2>& __d) 1586: : __r(duration_cast(__d).count()) { } 1586: 1586: ~duration() = default; 1586: duration& operator=(const duration&) = default; 1586: 1586: 1586: constexpr rep 1586: count() const 1586: { return __r; } 1586: 1586: 1586: constexpr duration 1586: operator+() const 1586: { return *this; } 1586: 1586: constexpr duration 1586: operator-() const 1586: { return duration(-__r); } 1586: 1586: duration& 1586: operator++() 1586: { 1586: ++__r; 1586: return *this; 1586: } 1586: 1586: duration 1586: operator++(int) 1586: { return duration(__r++); } 1586: 1586: duration& 1586: operator--() 1586: { 1586: --__r; 1586: return *this; 1586: } 1586: 1586: duration 1586: operator--(int) 1586: { return duration(__r--); } 1586: 1586: duration& 1586: operator+=(const duration& __d) 1586: { 1586: __r += __d.count(); 1586: return *this; 1586: } 1586: 1586: duration& 1586: operator-=(const duration& __d) 1586: { 1586: __r -= __d.count(); 1586: return *this; 1586: } 1586: 1586: duration& 1586: operator*=(const rep& __rhs) 1586: { 1586: __r *= __rhs; 1586: return *this; 1586: } 1586: 1586: duration& 1586: operator/=(const rep& __rhs) 1586: { 1586: __r /= __rhs; 1586: return *this; 1586: } 1586: 1586: 1586: template 1586: 1586: typename enable_if::value, 1586: duration&>::type 1586: operator%=(const rep& __rhs) 1586: { 1586: __r %= __rhs; 1586: return *this; 1586: } 1586: 1586: template 1586: 1586: typename enable_if::value, 1586: duration&>::type 1586: operator%=(const duration& __d) 1586: { 1586: __r %= __d.count(); 1586: return *this; 1586: } 1586: 1586: 1586: static constexpr duration 1586: zero() noexcept 1586: { return duration(duration_values::zero()); } 1586: 1586: static constexpr duration 1586: min() noexcept 1586: { return duration(duration_values::min()); } 1586: 1586: static constexpr duration 1586: max() noexcept 1586: { return duration(duration_values::max()); } 1586: 1586: private: 1586: rep __r; 1586: }; 1586: 1586: template 1586: constexpr typename common_type, 1586: duration<_Rep2, _Period2>>::type 1586: operator+(const duration<_Rep1, _Period1>& __lhs, 1586: const duration<_Rep2, _Period2>& __rhs) 1586: { 1586: typedef duration<_Rep1, _Period1> __dur1; 1586: typedef duration<_Rep2, _Period2> __dur2; 1586: typedef typename common_type<__dur1,__dur2>::type __cd; 1586: return __cd(__cd(__lhs).count() + __cd(__rhs).count()); 1586: } 1586: 1586: template 1586: constexpr typename common_type, 1586: duration<_Rep2, _Period2>>::type 1586: operator-(const duration<_Rep1, _Period1>& __lhs, 1586: const duration<_Rep2, _Period2>& __rhs) 1586: { 1586: typedef duration<_Rep1, _Period1> __dur1; 1586: typedef duration<_Rep2, _Period2> __dur2; 1586: typedef typename common_type<__dur1,__dur2>::type __cd; 1586: return __cd(__cd(__lhs).count() - __cd(__rhs).count()); 1586: } 1586: 1586: 1586: 1586: 1586: 1586: template::type> 1586: using __common_rep_t = typename 1586: enable_if::value, _CRep>::type; 1586: 1586: template 1586: constexpr duration<__common_rep_t<_Rep1, _Rep2>, _Period> 1586: operator*(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 1586: { 1586: typedef duration::type, _Period> 1586: __cd; 1586: return __cd(__cd(__d).count() * __s); 1586: } 1586: 1586: template 1586: constexpr duration<__common_rep_t<_Rep2, _Rep1>, _Period> 1586: operator*(const _Rep1& __s, const duration<_Rep2, _Period>& __d) 1586: { return __d * __s; } 1586: 1586: template 1586: constexpr 1586: duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period> 1586: operator/(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 1586: { 1586: typedef duration::type, _Period> 1586: __cd; 1586: return __cd(__cd(__d).count() / __s); 1586: } 1586: 1586: template 1586: constexpr typename common_type<_Rep1, _Rep2>::type 1586: operator/(const duration<_Rep1, _Period1>& __lhs, 1586: const duration<_Rep2, _Period2>& __rhs) 1586: { 1586: typedef duration<_Rep1, _Period1> __dur1; 1586: typedef duration<_Rep2, _Period2> __dur2; 1586: typedef typename common_type<__dur1,__dur2>::type __cd; 1586: return __cd(__lhs).count() / __cd(__rhs).count(); 1586: } 1586: 1586: 1586: template 1586: constexpr 1586: duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period> 1586: operator%(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 1586: { 1586: typedef duration::type, _Period> 1586: __cd; 1586: return __cd(__cd(__d).count() % __s); 1586: } 1586: 1586: template 1586: constexpr typename common_type, 1586: duration<_Rep2, _Period2>>::type 1586: operator%(const duration<_Rep1, _Period1>& __lhs, 1586: const duration<_Rep2, _Period2>& __rhs) 1586: { 1586: typedef duration<_Rep1, _Period1> __dur1; 1586: typedef duration<_Rep2, _Period2> __dur2; 1586: typedef typename common_type<__dur1,__dur2>::type __cd; 1586: return __cd(__cd(__lhs).count() % __cd(__rhs).count()); 1586: } 1586: 1586: 1586: template 1586: constexpr bool 1586: operator==(const duration<_Rep1, _Period1>& __lhs, 1586: const duration<_Rep2, _Period2>& __rhs) 1586: { 1586: typedef duration<_Rep1, _Period1> __dur1; 1586: typedef duration<_Rep2, _Period2> __dur2; 1586: typedef typename common_type<__dur1,__dur2>::type __ct; 1586: return __ct(__lhs).count() == __ct(__rhs).count(); 1586: } 1586: 1586: template 1586: constexpr bool 1586: operator<(const duration<_Rep1, _Period1>& __lhs, 1586: const duration<_Rep2, _Period2>& __rhs) 1586: { 1586: typedef duration<_Rep1, _Period1> __dur1; 1586: typedef duration<_Rep2, _Period2> __dur2; 1586: typedef typename common_type<__dur1,__dur2>::type __ct; 1586: return __ct(__lhs).count() < __ct(__rhs).count(); 1586: } 1586: 1586: template 1586: constexpr bool 1586: operator!=(const duration<_Rep1, _Period1>& __lhs, 1586: const duration<_Rep2, _Period2>& __rhs) 1586: { return !(__lhs == __rhs); } 1586: 1586: template 1586: constexpr bool 1586: operator<=(const duration<_Rep1, _Period1>& __lhs, 1586: const duration<_Rep2, _Period2>& __rhs) 1586: { return !(__rhs < __lhs); } 1586: 1586: template 1586: constexpr bool 1586: operator>(const duration<_Rep1, _Period1>& __lhs, 1586: const duration<_Rep2, _Period2>& __rhs) 1586: { return __rhs < __lhs; } 1586: 1586: template 1586: constexpr bool 1586: operator>=(const duration<_Rep1, _Period1>& __lhs, 1586: const duration<_Rep2, _Period2>& __rhs) 1586: { return !(__lhs < __rhs); } 1586: # 605 "/usr/mipsel-linux-gnu/include/c++/9/chrono" 3 1586: typedef duration nanoseconds; 1586: 1586: 1586: typedef duration microseconds; 1586: 1586: 1586: typedef duration milliseconds; 1586: 1586: 1586: typedef duration seconds; 1586: 1586: 1586: typedef duration> minutes; 1586: 1586: 1586: typedef duration> hours; 1586: 1586: 1586: 1586: 1586: template 1586: struct time_point 1586: { 1586: typedef _Clock clock; 1586: typedef _Dur duration; 1586: typedef typename duration::rep rep; 1586: typedef typename duration::period period; 1586: 1586: constexpr time_point() : __d(duration::zero()) 1586: { } 1586: 1586: constexpr explicit time_point(const duration& __dur) 1586: : __d(__dur) 1586: { } 1586: 1586: 1586: template>> 1586: constexpr time_point(const time_point& __t) 1586: : __d(__t.time_since_epoch()) 1586: { } 1586: 1586: 1586: constexpr duration 1586: time_since_epoch() const 1586: { return __d; } 1586: 1586: 1586: time_point& 1586: operator+=(const duration& __dur) 1586: { 1586: __d += __dur; 1586: return *this; 1586: } 1586: 1586: time_point& 1586: operator-=(const duration& __dur) 1586: { 1586: __d -= __dur; 1586: return *this; 1586: } 1586: 1586: 1586: static constexpr time_point 1586: min() noexcept 1586: { return time_point(duration::min()); } 1586: 1586: static constexpr time_point 1586: max() noexcept 1586: { return time_point(duration::max()); } 1586: 1586: private: 1586: duration __d; 1586: }; 1586: 1586: 1586: template 1586: constexpr typename enable_if<__is_duration<_ToDur>::value, 1586: time_point<_Clock, _ToDur>>::type 1586: time_point_cast(const time_point<_Clock, _Dur>& __t) 1586: { 1586: typedef time_point<_Clock, _ToDur> __time_point; 1586: return __time_point(duration_cast<_ToDur>(__t.time_since_epoch())); 1586: } 1586: # 721 "/usr/mipsel-linux-gnu/include/c++/9/chrono" 3 1586: template 1586: constexpr time_point<_Clock, 1586: typename common_type<_Dur1, duration<_Rep2, _Period2>>::type> 1586: operator+(const time_point<_Clock, _Dur1>& __lhs, 1586: const duration<_Rep2, _Period2>& __rhs) 1586: { 1586: typedef duration<_Rep2, _Period2> __dur2; 1586: typedef typename common_type<_Dur1,__dur2>::type __ct; 1586: typedef time_point<_Clock, __ct> __time_point; 1586: return __time_point(__lhs.time_since_epoch() + __rhs); 1586: } 1586: 1586: template 1586: constexpr time_point<_Clock, 1586: typename common_type, _Dur2>::type> 1586: operator+(const duration<_Rep1, _Period1>& __lhs, 1586: const time_point<_Clock, _Dur2>& __rhs) 1586: { 1586: typedef duration<_Rep1, _Period1> __dur1; 1586: typedef typename common_type<__dur1,_Dur2>::type __ct; 1586: typedef time_point<_Clock, __ct> __time_point; 1586: return __time_point(__rhs.time_since_epoch() + __lhs); 1586: } 1586: 1586: template 1586: constexpr time_point<_Clock, 1586: typename common_type<_Dur1, duration<_Rep2, _Period2>>::type> 1586: operator-(const time_point<_Clock, _Dur1>& __lhs, 1586: const duration<_Rep2, _Period2>& __rhs) 1586: { 1586: typedef duration<_Rep2, _Period2> __dur2; 1586: typedef typename common_type<_Dur1,__dur2>::type __ct; 1586: typedef time_point<_Clock, __ct> __time_point; 1586: return __time_point(__lhs.time_since_epoch() -__rhs); 1586: } 1586: 1586: template 1586: constexpr typename common_type<_Dur1, _Dur2>::type 1586: operator-(const time_point<_Clock, _Dur1>& __lhs, 1586: const time_point<_Clock, _Dur2>& __rhs) 1586: { return __lhs.time_since_epoch() - __rhs.time_since_epoch(); } 1586: 1586: template 1586: constexpr bool 1586: operator==(const time_point<_Clock, _Dur1>& __lhs, 1586: const time_point<_Clock, _Dur2>& __rhs) 1586: { return __lhs.time_since_epoch() == __rhs.time_since_epoch(); } 1586: 1586: template 1586: constexpr bool 1586: operator!=(const time_point<_Clock, _Dur1>& __lhs, 1586: const time_point<_Clock, _Dur2>& __rhs) 1586: { return !(__lhs == __rhs); } 1586: 1586: template 1586: constexpr bool 1586: operator<(const time_point<_Clock, _Dur1>& __lhs, 1586: const time_point<_Clock, _Dur2>& __rhs) 1586: { return __lhs.time_since_epoch() < __rhs.time_since_epoch(); } 1586: 1586: template 1586: constexpr bool 1586: operator<=(const time_point<_Clock, _Dur1>& __lhs, 1586: const time_point<_Clock, _Dur2>& __rhs) 1586: { return !(__rhs < __lhs); } 1586: 1586: template 1586: constexpr bool 1586: operator>(const time_point<_Clock, _Dur1>& __lhs, 1586: const time_point<_Clock, _Dur2>& __rhs) 1586: { return __rhs < __lhs; } 1586: 1586: template 1586: constexpr bool 1586: operator>=(const time_point<_Clock, _Dur1>& __lhs, 1586: const time_point<_Clock, _Dur2>& __rhs) 1586: { return !(__lhs < __rhs); } 1586: # 821 "/usr/mipsel-linux-gnu/include/c++/9/chrono" 3 1586: inline namespace _V2 { 1586: 1586: 1586: 1586: 1586: 1586: 1586: struct system_clock 1586: { 1586: typedef chrono::nanoseconds duration; 1586: typedef duration::rep rep; 1586: typedef duration::period period; 1586: typedef chrono::time_point time_point; 1586: 1586: static_assert(system_clock::duration::min() 1586: < system_clock::duration::zero(), 1586: "a clock's minimum duration cannot be less than its epoch"); 1586: 1586: static constexpr bool is_steady = false; 1586: 1586: static time_point 1586: now() noexcept; 1586: 1586: 1586: static std::time_t 1586: to_time_t(const time_point& __t) noexcept 1586: { 1586: return std::time_t(duration_cast 1586: (__t.time_since_epoch()).count()); 1586: } 1586: 1586: static time_point 1586: from_time_t(std::time_t __t) noexcept 1586: { 1586: typedef chrono::time_point __from; 1586: return time_point_cast 1586: (__from(chrono::seconds(__t))); 1586: } 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: struct steady_clock 1586: { 1586: typedef chrono::nanoseconds duration; 1586: typedef duration::rep rep; 1586: typedef duration::period period; 1586: typedef chrono::time_point time_point; 1586: 1586: static constexpr bool is_steady = true; 1586: 1586: static time_point 1586: now() noexcept; 1586: }; 1586: # 888 "/usr/mipsel-linux-gnu/include/c++/9/chrono" 3 1586: using high_resolution_clock = system_clock; 1586: 1586: } 1586: } 1586: # 980 "/usr/mipsel-linux-gnu/include/c++/9/chrono" 3 1586: 1586: } 1586: # 40 "/usr/mipsel-linux-gnu/include/c++/9/mutex" 2 3 1586: 1586: 1586: 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_mutex.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_mutex.h" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_mutex.h" 3 1586: # 43 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_mutex.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 57 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_mutex.h" 3 1586: class __mutex_base 1586: { 1586: protected: 1586: typedef __gthread_mutex_t __native_type; 1586: 1586: 1586: __native_type _M_mutex = { { 0, 0, 0, PTHREAD_MUTEX_TIMED_NP, 0, { 0 } } }; 1586: 1586: constexpr __mutex_base() noexcept = default; 1586: # 78 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_mutex.h" 3 1586: __mutex_base(const __mutex_base&) = delete; 1586: __mutex_base& operator=(const __mutex_base&) = delete; 1586: }; 1586: 1586: 1586: class mutex : private __mutex_base 1586: { 1586: public: 1586: typedef __native_type* native_handle_type; 1586: 1586: 1586: constexpr 1586: 1586: mutex() noexcept = default; 1586: ~mutex() = default; 1586: 1586: mutex(const mutex&) = delete; 1586: mutex& operator=(const mutex&) = delete; 1586: 1586: void 1586: lock() 1586: { 1586: int __e = __gthread_mutex_lock(&_M_mutex); 1586: 1586: 1586: if (__e) 1586: __throw_system_error(__e); 1586: } 1586: 1586: bool 1586: try_lock() noexcept 1586: { 1586: 1586: return !__gthread_mutex_trylock(&_M_mutex); 1586: } 1586: 1586: void 1586: unlock() 1586: { 1586: 1586: __gthread_mutex_unlock(&_M_mutex); 1586: } 1586: 1586: native_handle_type 1586: native_handle() noexcept 1586: { return &_M_mutex; } 1586: }; 1586: 1586: 1586: 1586: 1586: struct defer_lock_t { explicit defer_lock_t() = default; }; 1586: 1586: 1586: struct try_to_lock_t { explicit try_to_lock_t() = default; }; 1586: 1586: 1586: 1586: struct adopt_lock_t { explicit adopt_lock_t() = default; }; 1586: 1586: 1586: constexpr defer_lock_t defer_lock { }; 1586: 1586: 1586: constexpr try_to_lock_t try_to_lock { }; 1586: 1586: 1586: constexpr adopt_lock_t adopt_lock { }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: class lock_guard 1586: { 1586: public: 1586: typedef _Mutex mutex_type; 1586: 1586: explicit lock_guard(mutex_type& __m) : _M_device(__m) 1586: { _M_device.lock(); } 1586: 1586: lock_guard(mutex_type& __m, adopt_lock_t) noexcept : _M_device(__m) 1586: { } 1586: 1586: ~lock_guard() 1586: { _M_device.unlock(); } 1586: 1586: lock_guard(const lock_guard&) = delete; 1586: lock_guard& operator=(const lock_guard&) = delete; 1586: 1586: private: 1586: mutex_type& _M_device; 1586: }; 1586: 1586: 1586: 1586: } 1586: # 44 "/usr/mipsel-linux-gnu/include/c++/9/mutex" 2 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_lock.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_lock.h" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_lock.h" 3 1586: # 42 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_lock.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 58 "/usr/mipsel-linux-gnu/include/c++/9/bits/unique_lock.h" 3 1586: template 1586: class unique_lock 1586: { 1586: public: 1586: typedef _Mutex mutex_type; 1586: 1586: unique_lock() noexcept 1586: : _M_device(0), _M_owns(false) 1586: { } 1586: 1586: explicit unique_lock(mutex_type& __m) 1586: : _M_device(std::__addressof(__m)), _M_owns(false) 1586: { 1586: lock(); 1586: _M_owns = true; 1586: } 1586: 1586: unique_lock(mutex_type& __m, defer_lock_t) noexcept 1586: : _M_device(std::__addressof(__m)), _M_owns(false) 1586: { } 1586: 1586: unique_lock(mutex_type& __m, try_to_lock_t) 1586: : _M_device(std::__addressof(__m)), _M_owns(_M_device->try_lock()) 1586: { } 1586: 1586: unique_lock(mutex_type& __m, adopt_lock_t) noexcept 1586: : _M_device(std::__addressof(__m)), _M_owns(true) 1586: { 1586: 1586: } 1586: 1586: template 1586: unique_lock(mutex_type& __m, 1586: const chrono::time_point<_Clock, _Duration>& __atime) 1586: : _M_device(std::__addressof(__m)), 1586: _M_owns(_M_device->try_lock_until(__atime)) 1586: { } 1586: 1586: template 1586: unique_lock(mutex_type& __m, 1586: const chrono::duration<_Rep, _Period>& __rtime) 1586: : _M_device(std::__addressof(__m)), 1586: _M_owns(_M_device->try_lock_for(__rtime)) 1586: { } 1586: 1586: ~unique_lock() 1586: { 1586: if (_M_owns) 1586: unlock(); 1586: } 1586: 1586: unique_lock(const unique_lock&) = delete; 1586: unique_lock& operator=(const unique_lock&) = delete; 1586: 1586: unique_lock(unique_lock&& __u) noexcept 1586: : _M_device(__u._M_device), _M_owns(__u._M_owns) 1586: { 1586: __u._M_device = 0; 1586: __u._M_owns = false; 1586: } 1586: 1586: unique_lock& operator=(unique_lock&& __u) noexcept 1586: { 1586: if(_M_owns) 1586: unlock(); 1586: 1586: unique_lock(std::move(__u)).swap(*this); 1586: 1586: __u._M_device = 0; 1586: __u._M_owns = false; 1586: 1586: return *this; 1586: } 1586: 1586: void 1586: lock() 1586: { 1586: if (!_M_device) 1586: __throw_system_error(int(errc::operation_not_permitted)); 1586: else if (_M_owns) 1586: __throw_system_error(int(errc::resource_deadlock_would_occur)); 1586: else 1586: { 1586: _M_device->lock(); 1586: _M_owns = true; 1586: } 1586: } 1586: 1586: bool 1586: try_lock() 1586: { 1586: if (!_M_device) 1586: __throw_system_error(int(errc::operation_not_permitted)); 1586: else if (_M_owns) 1586: __throw_system_error(int(errc::resource_deadlock_would_occur)); 1586: else 1586: { 1586: _M_owns = _M_device->try_lock(); 1586: return _M_owns; 1586: } 1586: } 1586: 1586: template 1586: bool 1586: try_lock_until(const chrono::time_point<_Clock, _Duration>& __atime) 1586: { 1586: if (!_M_device) 1586: __throw_system_error(int(errc::operation_not_permitted)); 1586: else if (_M_owns) 1586: __throw_system_error(int(errc::resource_deadlock_would_occur)); 1586: else 1586: { 1586: _M_owns = _M_device->try_lock_until(__atime); 1586: return _M_owns; 1586: } 1586: } 1586: 1586: template 1586: bool 1586: try_lock_for(const chrono::duration<_Rep, _Period>& __rtime) 1586: { 1586: if (!_M_device) 1586: __throw_system_error(int(errc::operation_not_permitted)); 1586: else if (_M_owns) 1586: __throw_system_error(int(errc::resource_deadlock_would_occur)); 1586: else 1586: { 1586: _M_owns = _M_device->try_lock_for(__rtime); 1586: return _M_owns; 1586: } 1586: } 1586: 1586: void 1586: unlock() 1586: { 1586: if (!_M_owns) 1586: __throw_system_error(int(errc::operation_not_permitted)); 1586: else if (_M_device) 1586: { 1586: _M_device->unlock(); 1586: _M_owns = false; 1586: } 1586: } 1586: 1586: void 1586: swap(unique_lock& __u) noexcept 1586: { 1586: std::swap(_M_device, __u._M_device); 1586: std::swap(_M_owns, __u._M_owns); 1586: } 1586: 1586: mutex_type* 1586: release() noexcept 1586: { 1586: mutex_type* __ret = _M_device; 1586: _M_device = 0; 1586: _M_owns = false; 1586: return __ret; 1586: } 1586: 1586: bool 1586: owns_lock() const noexcept 1586: { return _M_owns; } 1586: 1586: explicit operator bool() const noexcept 1586: { return owns_lock(); } 1586: 1586: mutex_type* 1586: mutex() const noexcept 1586: { return _M_device; } 1586: 1586: private: 1586: mutex_type* _M_device; 1586: bool _M_owns; 1586: }; 1586: 1586: 1586: template 1586: inline void 1586: swap(unique_lock<_Mutex>& __x, unique_lock<_Mutex>& __y) noexcept 1586: { __x.swap(__y); } 1586: 1586: 1586: 1586: } 1586: # 45 "/usr/mipsel-linux-gnu/include/c++/9/mutex" 2 3 1586: # 53 "/usr/mipsel-linux-gnu/include/c++/9/mutex" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 65 "/usr/mipsel-linux-gnu/include/c++/9/mutex" 3 1586: class __recursive_mutex_base 1586: { 1586: protected: 1586: typedef __gthread_recursive_mutex_t __native_type; 1586: 1586: __recursive_mutex_base(const __recursive_mutex_base&) = delete; 1586: __recursive_mutex_base& operator=(const __recursive_mutex_base&) = delete; 1586: 1586: 1586: __native_type _M_mutex = { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { 0 } } }; 1586: 1586: __recursive_mutex_base() = default; 1586: # 89 "/usr/mipsel-linux-gnu/include/c++/9/mutex" 3 1586: }; 1586: 1586: 1586: class recursive_mutex : private __recursive_mutex_base 1586: { 1586: public: 1586: typedef __native_type* native_handle_type; 1586: 1586: recursive_mutex() = default; 1586: ~recursive_mutex() = default; 1586: 1586: recursive_mutex(const recursive_mutex&) = delete; 1586: recursive_mutex& operator=(const recursive_mutex&) = delete; 1586: 1586: void 1586: lock() 1586: { 1586: int __e = __gthread_recursive_mutex_lock(&_M_mutex); 1586: 1586: 1586: if (__e) 1586: __throw_system_error(__e); 1586: } 1586: 1586: bool 1586: try_lock() noexcept 1586: { 1586: 1586: return !__gthread_recursive_mutex_trylock(&_M_mutex); 1586: } 1586: 1586: void 1586: unlock() 1586: { 1586: 1586: __gthread_recursive_mutex_unlock(&_M_mutex); 1586: } 1586: 1586: native_handle_type 1586: native_handle() noexcept 1586: { return &_M_mutex; } 1586: }; 1586: 1586: 1586: template 1586: class __timed_mutex_impl 1586: { 1586: protected: 1586: typedef chrono::high_resolution_clock __clock_t; 1586: 1586: template 1586: bool 1586: _M_try_lock_for(const chrono::duration<_Rep, _Period>& __rtime) 1586: { 1586: using chrono::steady_clock; 1586: auto __rt = chrono::duration_cast(__rtime); 1586: if (ratio_greater()) 1586: ++__rt; 1586: return _M_try_lock_until(steady_clock::now() + __rt); 1586: } 1586: 1586: template 1586: bool 1586: _M_try_lock_until(const chrono::time_point<__clock_t, 1586: _Duration>& __atime) 1586: { 1586: auto __s = chrono::time_point_cast(__atime); 1586: auto __ns = chrono::duration_cast(__atime - __s); 1586: 1586: __gthread_time_t __ts = { 1586: static_cast(__s.time_since_epoch().count()), 1586: static_cast(__ns.count()) 1586: }; 1586: 1586: return static_cast<_Derived*>(this)->_M_timedlock(__ts); 1586: } 1586: 1586: template 1586: bool 1586: _M_try_lock_until(const chrono::time_point<_Clock, _Duration>& __atime) 1586: { 1586: auto __rtime = __atime - _Clock::now(); 1586: return _M_try_lock_until(__clock_t::now() + __rtime); 1586: } 1586: }; 1586: 1586: 1586: class timed_mutex 1586: : private __mutex_base, public __timed_mutex_impl 1586: { 1586: public: 1586: typedef __native_type* native_handle_type; 1586: 1586: timed_mutex() = default; 1586: ~timed_mutex() = default; 1586: 1586: timed_mutex(const timed_mutex&) = delete; 1586: timed_mutex& operator=(const timed_mutex&) = delete; 1586: 1586: void 1586: lock() 1586: { 1586: int __e = __gthread_mutex_lock(&_M_mutex); 1586: 1586: 1586: if (__e) 1586: __throw_system_error(__e); 1586: } 1586: 1586: bool 1586: try_lock() noexcept 1586: { 1586: 1586: return !__gthread_mutex_trylock(&_M_mutex); 1586: } 1586: 1586: template 1586: bool 1586: try_lock_for(const chrono::duration<_Rep, _Period>& __rtime) 1586: { return _M_try_lock_for(__rtime); } 1586: 1586: template 1586: bool 1586: try_lock_until(const chrono::time_point<_Clock, _Duration>& __atime) 1586: { return _M_try_lock_until(__atime); } 1586: 1586: void 1586: unlock() 1586: { 1586: 1586: __gthread_mutex_unlock(&_M_mutex); 1586: } 1586: 1586: native_handle_type 1586: native_handle() noexcept 1586: { return &_M_mutex; } 1586: 1586: private: 1586: friend class __timed_mutex_impl; 1586: 1586: bool 1586: _M_timedlock(const __gthread_time_t& __ts) 1586: { return !__gthread_mutex_timedlock(&_M_mutex, &__ts); } 1586: }; 1586: 1586: 1586: class recursive_timed_mutex 1586: : private __recursive_mutex_base, 1586: public __timed_mutex_impl 1586: { 1586: public: 1586: typedef __native_type* native_handle_type; 1586: 1586: recursive_timed_mutex() = default; 1586: ~recursive_timed_mutex() = default; 1586: 1586: recursive_timed_mutex(const recursive_timed_mutex&) = delete; 1586: recursive_timed_mutex& operator=(const recursive_timed_mutex&) = delete; 1586: 1586: void 1586: lock() 1586: { 1586: int __e = __gthread_recursive_mutex_lock(&_M_mutex); 1586: 1586: 1586: if (__e) 1586: __throw_system_error(__e); 1586: } 1586: 1586: bool 1586: try_lock() noexcept 1586: { 1586: 1586: return !__gthread_recursive_mutex_trylock(&_M_mutex); 1586: } 1586: 1586: template 1586: bool 1586: try_lock_for(const chrono::duration<_Rep, _Period>& __rtime) 1586: { return _M_try_lock_for(__rtime); } 1586: 1586: template 1586: bool 1586: try_lock_until(const chrono::time_point<_Clock, _Duration>& __atime) 1586: { return _M_try_lock_until(__atime); } 1586: 1586: void 1586: unlock() 1586: { 1586: 1586: __gthread_recursive_mutex_unlock(&_M_mutex); 1586: } 1586: 1586: native_handle_type 1586: native_handle() noexcept 1586: { return &_M_mutex; } 1586: 1586: private: 1586: friend class __timed_mutex_impl; 1586: 1586: bool 1586: _M_timedlock(const __gthread_time_t& __ts) 1586: { return !__gthread_recursive_mutex_timedlock(&_M_mutex, &__ts); } 1586: }; 1586: # 466 "/usr/mipsel-linux-gnu/include/c++/9/mutex" 3 1586: template 1586: inline unique_lock<_Lock> 1586: __try_to_lock(_Lock& __l) 1586: { return unique_lock<_Lock>{__l, try_to_lock}; } 1586: 1586: template 1586: struct __try_lock_impl 1586: { 1586: template 1586: static void 1586: __do_try_lock(tuple<_Lock&...>& __locks, int& __idx) 1586: { 1586: __idx = _Idx; 1586: auto __lock = std::__try_to_lock(std::get<_Idx>(__locks)); 1586: if (__lock.owns_lock()) 1586: { 1586: constexpr bool __cont = _Idx + 2 < sizeof...(_Lock); 1586: using __try_locker = __try_lock_impl<_Idx + 1, __cont>; 1586: __try_locker::__do_try_lock(__locks, __idx); 1586: if (__idx == -1) 1586: __lock.release(); 1586: } 1586: } 1586: }; 1586: 1586: template 1586: struct __try_lock_impl<_Idx, false> 1586: { 1586: template 1586: static void 1586: __do_try_lock(tuple<_Lock&...>& __locks, int& __idx) 1586: { 1586: __idx = _Idx; 1586: auto __lock = std::__try_to_lock(std::get<_Idx>(__locks)); 1586: if (__lock.owns_lock()) 1586: { 1586: __idx = -1; 1586: __lock.release(); 1586: } 1586: } 1586: }; 1586: # 518 "/usr/mipsel-linux-gnu/include/c++/9/mutex" 3 1586: template 1586: int 1586: try_lock(_Lock1& __l1, _Lock2& __l2, _Lock3&... __l3) 1586: { 1586: int __idx; 1586: auto __locks = std::tie(__l1, __l2, __l3...); 1586: __try_lock_impl<0>::__do_try_lock(__locks, __idx); 1586: return __idx; 1586: } 1586: # 539 "/usr/mipsel-linux-gnu/include/c++/9/mutex" 3 1586: template 1586: void 1586: lock(_L1& __l1, _L2& __l2, _L3&... __l3) 1586: { 1586: while (true) 1586: { 1586: using __try_locker = __try_lock_impl<0, sizeof...(_L3) != 0>; 1586: unique_lock<_L1> __first(__l1); 1586: int __idx; 1586: auto __locks = std::tie(__l2, __l3...); 1586: __try_locker::__do_try_lock(__locks, __idx); 1586: if (__idx == -1) 1586: { 1586: __first.release(); 1586: return; 1586: } 1586: } 1586: } 1586: # 628 "/usr/mipsel-linux-gnu/include/c++/9/mutex" 3 1586: struct once_flag 1586: { 1586: private: 1586: typedef __gthread_once_t __native_type; 1586: __native_type _M_once = 0; 1586: 1586: public: 1586: 1586: constexpr once_flag() noexcept = default; 1586: 1586: 1586: once_flag(const once_flag&) = delete; 1586: 1586: once_flag& operator=(const once_flag&) = delete; 1586: 1586: template 1586: friend void 1586: call_once(once_flag& __once, _Callable&& __f, _Args&&... __args); 1586: }; 1586: 1586: 1586: extern __thread void* __once_callable; 1586: extern __thread void (*__once_call)(); 1586: # 661 "/usr/mipsel-linux-gnu/include/c++/9/mutex" 3 1586: extern "C" void __once_proxy(void); 1586: 1586: 1586: template 1586: void 1586: call_once(once_flag& __once, _Callable&& __f, _Args&&... __args) 1586: { 1586: 1586: 1586: auto __callable = [&] { 1586: std::__invoke(std::forward<_Callable>(__f), 1586: std::forward<_Args>(__args)...); 1586: }; 1586: 1586: __once_callable = std::__addressof(__callable); 1586: __once_call = []{ (*(decltype(__callable)*)__once_callable)(); }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: int __e = __gthread_once(&__once._M_once, &__once_proxy); 1586: # 696 "/usr/mipsel-linux-gnu/include/c++/9/mutex" 3 1586: if (__e) 1586: __throw_system_error(__e); 1586: } 1586: 1586: 1586: 1586: 1586: } 1586: # 17 "/<>/include/HepMC3/GenRunInfo.h" 2 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: # 23 "/<>/include/HepMC3/GenRunInfo.h" 1586: namespace HepMC3 { 1586: using namespace std; 1586: 1586: struct GenRunInfoData; 1586: 1586: 1586: 1586: 1586: 1586: class GenRunInfo { 1586: 1586: public: 1586: 1586: 1586: struct ToolInfo { 1586: 1586: 1586: string name; 1586: 1586: 1586: string version; 1586: 1586: 1586: 1586: string description; 1586: }; 1586: 1586: public: 1586: 1586: 1586: GenRunInfo() {} 1586: 1586: GenRunInfo(const GenRunInfo& r); 1586: 1586: GenRunInfo& operator=(const GenRunInfo& r); 1586: 1586: 1586: 1586: 1586: const std::vector & tools() const { 1586: return m_tools; 1586: } 1586: 1586: std::vector & tools() { 1586: return m_tools; 1586: } 1586: 1586: 1586: bool has_weight(const string& name) const { 1586: return m_weight_indices.find(name) != m_weight_indices.end(); 1586: } 1586: 1586: 1586: 1586: int weight_index(const string& name) const { 1586: std::map::const_iterator it = m_weight_indices.find(name); 1586: return it == m_weight_indices.end()? -1: it->second; 1586: } 1586: 1586: 1586: const std::vector & weight_names() const { 1586: return m_weight_names; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: void set_weight_names(const std::vector & names); 1586: 1586: 1586: 1586: 1586: void add_attribute(const string &name, 1586: const shared_ptr &att) { 1586: std::lock_guard lock(m_lock_attributes); 1586: if ( att ) m_attributes[name] = att; 1586: } 1586: 1586: 1586: void remove_attribute(const string &name) { 1586: std::lock_guard lock(m_lock_attributes); 1586: m_attributes.erase(name); 1586: } 1586: 1586: 1586: template 1586: shared_ptr attribute(const string &name) const; 1586: 1586: 1586: string attribute_as_string(const string &name) const; 1586: 1586: 1586: std::vector attribute_names() const; 1586: 1586: 1586: 1586: std::map< std::string, shared_ptr > attributes() const { 1586: return m_attributes; 1586: } 1586: # 131 "/<>/include/HepMC3/GenRunInfo.h" 1586: void write_data(GenRunInfoData &data) const; 1586: 1586: 1586: void read_data(const GenRunInfoData &data); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: private: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: std::vector m_tools; 1586: 1586: 1586: std::map m_weight_indices; 1586: 1586: 1586: std::vector m_weight_names; 1586: 1586: 1586: mutable std::map< std::string, shared_ptr > m_attributes; 1586: 1586: 1586: mutable std::recursive_mutex m_lock_attributes; 1586: 1586: 1586: 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: shared_ptr GenRunInfo::attribute(const string &name) const { 1586: std::lock_guard lock(m_lock_attributes); 1586: std::map< std::string, shared_ptr >::iterator i = 1586: m_attributes.find(name); 1586: if( i == m_attributes.end() ) return shared_ptr(); 1586: 1586: if( !i->second->is_parsed() ) { 1586: 1586: shared_ptr att = make_shared(); 1586: if ( att->from_string(i->second->unparsed_string()) && 1586: att->init(*this) ) { 1586: 1586: i->second = att; 1586: 1586: return att; 1586: } 1586: else 1586: return shared_ptr(); 1586: } 1586: else return dynamic_pointer_cast(i->second); 1586: } 1586: 1586: 1586: 1586: } 1586: # 26 "/<>/include/HepMC3/GenEvent.h" 2 1586: # 34 "/<>/include/HepMC3/GenEvent.h" 1586: namespace HepMC3 { 1586: 1586: struct GenEventData; 1586: 1586: 1586: 1586: 1586: 1586: class GenEvent { 1586: 1586: public: 1586: 1586: 1586: GenEvent(Units::MomentumUnit momentum_unit = Units::GEV, 1586: Units::LengthUnit length_unit = Units::MM); 1586: 1586: 1586: 1586: 1586: GenEvent(shared_ptr run, 1586: Units::MomentumUnit momentum_unit = Units::GEV, 1586: Units::LengthUnit length_unit = Units::MM); 1586: 1586: 1586: GenEvent(const GenEvent&); 1586: 1586: 1586: ~GenEvent(); 1586: 1586: 1586: GenEvent& operator=(const GenEvent&); 1586: 1586: 1586: 1586: 1586: 1586: const std::vector& particles() const; 1586: 1586: const std::vector& vertices() const; 1586: 1586: 1586: 1586: const std::vector& particles() { return m_particles; } 1586: 1586: const std::vector& vertices() { return m_vertices; } 1586: # 87 "/<>/include/HepMC3/GenEvent.h" 1586: const std::vector& weights() const { return m_weights; } 1586: 1586: std::vector& weights() { return m_weights; } 1586: 1586: 1586: double weight(const size_t& index=0) const { return weights().at(index); } 1586: 1586: 1586: 1586: double weight(const std::string& name) const { 1586: if (!run_info()) throw WeightError("GenEvent::weight(str): named access to event weights requires the event to have a GenRunInfo"); 1586: return weight(run_info()->weight_index(name)); 1586: } 1586: 1586: 1586: 1586: double& weight(const std::string& name) { 1586: if (!run_info()) throw WeightError("GenEvent::weight(str): named access to event weights requires the event to have a GenRunInfo"); 1586: int pos=run_info()->weight_index(name); 1586: if (pos<0) throw WeightError("GenEvent::weight(str): no weight with given name in this run"); 1586: return m_weights[pos]; 1586: } 1586: 1586: 1586: const std::vector& weight_names(const std::string& ) const { 1586: if (!run_info()) throw WeightError("GenEvent::weight_names(): access to event weight names requires the event to have a GenRunInfo"); 1586: const std::vector& weightnames = run_info()->weight_names(); 1586: if (weightnames.empty()) throw WeightError("GenEvent::weight_names(): no event weight names are registered for this run"); 1586: return weightnames; 1586: } 1586: # 125 "/<>/include/HepMC3/GenEvent.h" 1586: shared_ptr run_info() const { 1586: return m_run_info; 1586: } 1586: 1586: void set_run_info(shared_ptr run) { 1586: m_run_info = run; 1586: if ( run && !run->weight_names().empty() ) 1586: m_weights.resize(run->weight_names().size(), 1.0); 1586: } 1586: 1586: 1586: int event_number() const { return m_event_number; } 1586: 1586: void set_event_number(const int& num) { m_event_number = num; } 1586: 1586: 1586: const Units::MomentumUnit& momentum_unit() const { return m_momentum_unit; } 1586: 1586: const Units::LengthUnit& length_unit() const { return m_length_unit; } 1586: 1586: 1586: void set_units( Units::MomentumUnit new_momentum_unit, Units::LengthUnit new_length_unit); 1586: 1586: 1586: GenHeavyIonPtr heavy_ion() { return attribute("GenHeavyIon"); } 1586: 1586: ConstGenHeavyIonPtr heavy_ion() const { return attribute("GenHeavyIon"); } 1586: 1586: void set_heavy_ion(GenHeavyIonPtr hi) { add_attribute("GenHeavyIon",hi); } 1586: 1586: 1586: GenPdfInfoPtr pdf_info() { return attribute("GenPdfInfo"); } 1586: 1586: ConstGenPdfInfoPtr pdf_info() const { return attribute("GenPdfInfo"); } 1586: 1586: void set_pdf_info(GenPdfInfoPtr pi) { add_attribute("GenPdfInfo",pi); } 1586: 1586: 1586: GenCrossSectionPtr cross_section() { return attribute("GenCrossSection"); } 1586: 1586: ConstGenCrossSectionPtr cross_section() const { return attribute("GenCrossSection"); } 1586: 1586: void set_cross_section(GenCrossSectionPtr cs) { add_attribute("GenCrossSection",cs); } 1586: # 176 "/<>/include/HepMC3/GenEvent.h" 1586: const FourVector& event_pos() const; 1586: 1586: 1586: std::vector beams() const; 1586: 1586: 1586: const std::vector & beams(); 1586: 1586: 1586: void shift_position_by( const FourVector & delta ); 1586: 1586: 1586: void shift_position_to( const FourVector & newpos ) { 1586: const FourVector delta = newpos - event_pos(); 1586: shift_position_by(delta); 1586: } 1586: 1586: 1586: bool boost( const FourVector v ); 1586: 1586: bool rotate( const FourVector v ); 1586: 1586: bool reflect(const int axis); 1586: # 209 "/<>/include/HepMC3/GenEvent.h" 1586: void add_attribute(const string &name, const shared_ptr &att, const int& id = 0) { 1586: std::lock_guard lock(m_lock_attributes); 1586: if ( att ) { 1586: m_attributes[name][id] = att; 1586: att->m_event = this; 1586: if ( id > 0 && id <= int(particles().size()) ) 1586: att->m_particle = particles()[id - 1]; 1586: if ( id < 0 && -id <= int(vertices().size()) ) 1586: att->m_vertex = vertices()[-id - 1]; 1586: } 1586: } 1586: 1586: 1586: void remove_attribute(const string &name, const int& id = 0); 1586: 1586: 1586: template 1586: shared_ptr attribute(const string &name, const int& id = 0) const; 1586: 1586: 1586: string attribute_as_string(const string &name, const int& id = 0) const; 1586: 1586: 1586: std::vector attribute_names( const int& id = 0) const; 1586: 1586: 1586: 1586: std::map< string, std::map > > attributes() const { 1586: std::lock_guard lock(m_lock_attributes); 1586: return m_attributes; 1586: } 1586: # 248 "/<>/include/HepMC3/GenEvent.h" 1586: void add_particle( GenParticlePtr p ); 1586: 1586: 1586: void add_vertex( GenVertexPtr v ); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: void remove_particle( GenParticlePtr v ); 1586: 1586: 1586: 1586: 1586: 1586: void remove_particles( std::vector v ); 1586: 1586: 1586: 1586: 1586: void remove_vertex( GenVertexPtr v ); 1586: # 281 "/<>/include/HepMC3/GenEvent.h" 1586: void add_tree( const std::vector &particles ); 1586: 1586: 1586: 1586: 1586: void reserve(const size_t& particles, const size_t& vertices = 0); 1586: 1586: 1586: void clear(); 1586: # 298 "/<>/include/HepMC3/GenEvent.h" 1586: void add_particle( GenParticle *p ); 1586: 1586: 1586: 1586: void add_vertex ( GenVertex *v ); 1586: 1586: 1586: 1586: 1586: void set_beam_particles(GenParticlePtr p1, GenParticlePtr p2); 1586: 1586: 1586: 1586: 1586: void add_beam_particle(GenParticlePtr p1); 1586: # 324 "/<>/include/HepMC3/GenEvent.h" 1586: void write_data(GenEventData &data) const; 1586: 1586: 1586: void read_data(const GenEventData &data); 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: private: 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: std::vector m_particles; 1586: 1586: std::vector m_vertices; 1586: 1586: 1586: int m_event_number; 1586: 1586: 1586: std::vector m_weights; 1586: 1586: 1586: Units::MomentumUnit m_momentum_unit; 1586: 1586: Units::LengthUnit m_length_unit; 1586: 1586: 1586: GenVertexPtr m_rootvertex; 1586: 1586: 1586: shared_ptr m_run_info; 1586: 1586: 1586: 1586: 1586: mutable std::map< string, std::map > > m_attributes; 1586: 1586: 1586: typedef std::map< string, std::map > >::value_type att_key_t; 1586: 1586: 1586: typedef std::map >::value_type att_val_t; 1586: 1586: 1586: mutable std::recursive_mutex m_lock_attributes; 1586: 1586: 1586: 1586: 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: shared_ptr GenEvent::attribute(const std::string &name, const int& id) const { 1586: std::lock_guard lock(m_lock_attributes); 1586: std::map< string, std::map > >::iterator i1 = 1586: m_attributes.find(name); 1586: if( i1 == m_attributes.end() ) { 1586: if ( id == 0 && run_info() ) { 1586: return run_info()->attribute(name); 1586: } 1586: return shared_ptr(); 1586: } 1586: 1586: std::map >::iterator i2 = i1->second.find(id); 1586: if (i2 == i1->second.end() ) return shared_ptr(); 1586: 1586: if (!i2->second->is_parsed() ) { 1586: 1586: shared_ptr att = make_shared(); 1586: att->m_event = this; 1586: 1586: if ( id > 0 && id <= int(particles().size()) ) 1586: att->m_particle = m_particles[id - 1]; 1586: if ( id < 0 && -id <= int(vertices().size()) ) 1586: att->m_vertex = m_vertices[-id - 1]; 1586: if ( att->from_string(i2->second->unparsed_string()) && 1586: att->init() ) { 1586: 1586: i2->second = att; 1586: return att; 1586: } else { 1586: return shared_ptr(); 1586: } 1586: } 1586: else return dynamic_pointer_cast(i2->second); 1586: } 1586: 1586: 1586: } 1586: # 156 "/<>/include/HepMC3/GenParticle.h" 2 1586: namespace HepMC3 { 1586: 1586: template shared_ptr GenParticle::attribute(const string& name) const { 1586: return parent_event()? 1586: parent_event()->attribute(name, id()): shared_ptr(); 1586: } 1586: } 1586: # 14 "/<>/search/include/HepMC3/Filter.h" 2 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/functional" 1 3 1586: # 46 "/usr/mipsel-linux-gnu/include/c++/9/functional" 3 1586: 1586: # 47 "/usr/mipsel-linux-gnu/include/c++/9/functional" 3 1586: # 59 "/usr/mipsel-linux-gnu/include/c++/9/functional" 3 1586: # 1 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 1 3 1586: # 33 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: 1586: # 34 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: # 47 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: 1586: # 47 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: class bad_function_call : public std::exception 1586: { 1586: public: 1586: virtual ~bad_function_call() noexcept; 1586: 1586: const char* what() const noexcept; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct __is_location_invariant 1586: : is_trivially_copyable<_Tp>::type 1586: { }; 1586: 1586: class _Undefined_class; 1586: 1586: union _Nocopy_types 1586: { 1586: void* _M_object; 1586: const void* _M_const_object; 1586: void (*_M_function_pointer)(); 1586: void (_Undefined_class::*_M_member_pointer)(); 1586: }; 1586: 1586: union [[gnu::may_alias]] _Any_data 1586: { 1586: void* _M_access() { return &_M_pod_data[0]; } 1586: const void* _M_access() const { return &_M_pod_data[0]; } 1586: 1586: template 1586: _Tp& 1586: _M_access() 1586: { return *static_cast<_Tp*>(_M_access()); } 1586: 1586: template 1586: const _Tp& 1586: _M_access() const 1586: { return *static_cast(_M_access()); } 1586: 1586: _Nocopy_types _M_unused; 1586: char _M_pod_data[sizeof(_Nocopy_types)]; 1586: }; 1586: 1586: enum _Manager_operation 1586: { 1586: __get_type_info, 1586: __get_functor_ptr, 1586: __clone_functor, 1586: __destroy_functor 1586: }; 1586: 1586: 1586: 1586: template 1586: struct _Simple_type_wrapper 1586: { 1586: _Simple_type_wrapper(_Tp __value) : __value(__value) { } 1586: 1586: _Tp __value; 1586: }; 1586: 1586: template 1586: struct __is_location_invariant<_Simple_type_wrapper<_Tp> > 1586: : __is_location_invariant<_Tp> 1586: { }; 1586: 1586: template 1586: class function; 1586: 1586: 1586: class _Function_base 1586: { 1586: public: 1586: static const size_t _M_max_size = sizeof(_Nocopy_types); 1586: static const size_t _M_max_align = __alignof__(_Nocopy_types); 1586: 1586: template 1586: class _Base_manager 1586: { 1586: protected: 1586: static const bool __stored_locally = 1586: (__is_location_invariant<_Functor>::value 1586: && sizeof(_Functor) <= _M_max_size 1586: && __alignof__(_Functor) <= _M_max_align 1586: && (_M_max_align % __alignof__(_Functor) == 0)); 1586: 1586: typedef integral_constant _Local_storage; 1586: 1586: 1586: static _Functor* 1586: _M_get_pointer(const _Any_data& __source) 1586: { 1586: if (__stored_locally) 1586: { 1586: const _Functor& __f = __source._M_access<_Functor>(); 1586: return const_cast<_Functor*>(std::__addressof(__f)); 1586: } 1586: else 1586: return __source._M_access<_Functor*>(); 1586: } 1586: 1586: 1586: 1586: static void 1586: _M_clone(_Any_data& __dest, const _Any_data& __source, true_type) 1586: { 1586: ::new (__dest._M_access()) _Functor(__source._M_access<_Functor>()); 1586: } 1586: 1586: 1586: 1586: static void 1586: _M_clone(_Any_data& __dest, const _Any_data& __source, false_type) 1586: { 1586: __dest._M_access<_Functor*>() = 1586: new _Functor(*__source._M_access()); 1586: } 1586: 1586: 1586: 1586: static void 1586: _M_destroy(_Any_data& __victim, true_type) 1586: { 1586: __victim._M_access<_Functor>().~_Functor(); 1586: } 1586: 1586: 1586: static void 1586: _M_destroy(_Any_data& __victim, false_type) 1586: { 1586: delete __victim._M_access<_Functor*>(); 1586: } 1586: 1586: public: 1586: static bool 1586: _M_manager(_Any_data& __dest, const _Any_data& __source, 1586: _Manager_operation __op) 1586: { 1586: switch (__op) 1586: { 1586: 1586: case __get_type_info: 1586: __dest._M_access() = &typeid(_Functor); 1586: break; 1586: 1586: case __get_functor_ptr: 1586: __dest._M_access<_Functor*>() = _M_get_pointer(__source); 1586: break; 1586: 1586: case __clone_functor: 1586: _M_clone(__dest, __source, _Local_storage()); 1586: break; 1586: 1586: case __destroy_functor: 1586: _M_destroy(__dest, _Local_storage()); 1586: break; 1586: } 1586: return false; 1586: } 1586: 1586: static void 1586: _M_init_functor(_Any_data& __functor, _Functor&& __f) 1586: { _M_init_functor(__functor, std::move(__f), _Local_storage()); } 1586: 1586: template 1586: static bool 1586: _M_not_empty_function(const function<_Signature>& __f) 1586: { return static_cast(__f); } 1586: 1586: template 1586: static bool 1586: _M_not_empty_function(_Tp* __fp) 1586: { return __fp != nullptr; } 1586: 1586: template 1586: static bool 1586: _M_not_empty_function(_Tp _Class::* __mp) 1586: { return __mp != nullptr; } 1586: 1586: template 1586: static bool 1586: _M_not_empty_function(const _Tp&) 1586: { return true; } 1586: 1586: private: 1586: static void 1586: _M_init_functor(_Any_data& __functor, _Functor&& __f, true_type) 1586: { ::new (__functor._M_access()) _Functor(std::move(__f)); } 1586: 1586: static void 1586: _M_init_functor(_Any_data& __functor, _Functor&& __f, false_type) 1586: { __functor._M_access<_Functor*>() = new _Functor(std::move(__f)); } 1586: }; 1586: 1586: _Function_base() : _M_manager(nullptr) { } 1586: 1586: ~_Function_base() 1586: { 1586: if (_M_manager) 1586: _M_manager(_M_functor, _M_functor, __destroy_functor); 1586: } 1586: 1586: bool _M_empty() const { return !_M_manager; } 1586: 1586: typedef bool (*_Manager_type)(_Any_data&, const _Any_data&, 1586: _Manager_operation); 1586: 1586: _Any_data _M_functor; 1586: _Manager_type _M_manager; 1586: }; 1586: 1586: template 1586: class _Function_handler; 1586: 1586: template 1586: class _Function_handler<_Res(_ArgTypes...), _Functor> 1586: : public _Function_base::_Base_manager<_Functor> 1586: { 1586: typedef _Function_base::_Base_manager<_Functor> _Base; 1586: 1586: public: 1586: static _Res 1586: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 1586: { 1586: return (*_Base::_M_get_pointer(__functor))( 1586: std::forward<_ArgTypes>(__args)...); 1586: } 1586: }; 1586: 1586: template 1586: class _Function_handler 1586: : public _Function_base::_Base_manager<_Functor> 1586: { 1586: typedef _Function_base::_Base_manager<_Functor> _Base; 1586: 1586: public: 1586: static void 1586: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 1586: { 1586: (*_Base::_M_get_pointer(__functor))( 1586: std::forward<_ArgTypes>(__args)...); 1586: } 1586: }; 1586: 1586: template 1586: class _Function_handler<_Res(_ArgTypes...), _Member _Class::*> 1586: : public _Function_handler 1586: { 1586: typedef _Function_handler 1586: _Base; 1586: 1586: public: 1586: static _Res 1586: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 1586: { 1586: return std::__invoke(_Base::_M_get_pointer(__functor)->__value, 1586: std::forward<_ArgTypes>(__args)...); 1586: } 1586: }; 1586: 1586: template 1586: class _Function_handler 1586: : public _Function_base::_Base_manager< 1586: _Simple_type_wrapper< _Member _Class::* > > 1586: { 1586: typedef _Member _Class::* _Functor; 1586: typedef _Simple_type_wrapper<_Functor> _Wrapper; 1586: typedef _Function_base::_Base_manager<_Wrapper> _Base; 1586: 1586: public: 1586: static bool 1586: _M_manager(_Any_data& __dest, const _Any_data& __source, 1586: _Manager_operation __op) 1586: { 1586: switch (__op) 1586: { 1586: 1586: case __get_type_info: 1586: __dest._M_access() = &typeid(_Functor); 1586: break; 1586: 1586: case __get_functor_ptr: 1586: __dest._M_access<_Functor*>() = 1586: &_Base::_M_get_pointer(__source)->__value; 1586: break; 1586: 1586: default: 1586: _Base::_M_manager(__dest, __source, __op); 1586: } 1586: return false; 1586: } 1586: 1586: static void 1586: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 1586: { 1586: std::__invoke(_Base::_M_get_pointer(__functor)->__value, 1586: std::forward<_ArgTypes>(__args)...); 1586: } 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: class function<_Res(_ArgTypes...)> 1586: : public _Maybe_unary_or_binary_function<_Res, _ArgTypes...>, 1586: private _Function_base 1586: { 1586: template> 1586: struct _Callable 1586: : __is_invocable_impl<_Res2, _Res>::type 1586: { }; 1586: 1586: 1586: 1586: template 1586: struct _Callable : false_type { }; 1586: 1586: template 1586: using _Requires = typename enable_if<_Cond::value, _Tp>::type; 1586: 1586: public: 1586: typedef _Res result_type; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: function() noexcept 1586: : _Function_base() { } 1586: 1586: 1586: 1586: 1586: 1586: function(nullptr_t) noexcept 1586: : _Function_base() { } 1586: # 414 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: function(const function& __x); 1586: # 423 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: function(function&& __x) noexcept : _Function_base() 1586: { 1586: __x.swap(*this); 1586: } 1586: # 444 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: template>, void>, 1586: typename = _Requires<_Callable<_Functor>, void>> 1586: function(_Functor); 1586: # 461 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: function& 1586: operator=(const function& __x) 1586: { 1586: function(__x).swap(*this); 1586: return *this; 1586: } 1586: # 479 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: function& 1586: operator=(function&& __x) noexcept 1586: { 1586: function(std::move(__x)).swap(*this); 1586: return *this; 1586: } 1586: # 493 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: function& 1586: operator=(nullptr_t) noexcept 1586: { 1586: if (_M_manager) 1586: { 1586: _M_manager(_M_functor, _M_functor, __destroy_functor); 1586: _M_manager = nullptr; 1586: _M_invoker = nullptr; 1586: } 1586: return *this; 1586: } 1586: # 521 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: template 1586: _Requires<_Callable::type>, function&> 1586: operator=(_Functor&& __f) 1586: { 1586: function(std::forward<_Functor>(__f)).swap(*this); 1586: return *this; 1586: } 1586: 1586: 1586: template 1586: function& 1586: operator=(reference_wrapper<_Functor> __f) noexcept 1586: { 1586: function(__f).swap(*this); 1586: return *this; 1586: } 1586: # 547 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: void swap(function& __x) noexcept 1586: { 1586: std::swap(_M_functor, __x._M_functor); 1586: std::swap(_M_manager, __x._M_manager); 1586: std::swap(_M_invoker, __x._M_invoker); 1586: } 1586: # 564 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: explicit operator bool() const noexcept 1586: { return !_M_empty(); } 1586: # 577 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: _Res operator()(_ArgTypes... __args) const; 1586: # 590 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: const type_info& target_type() const noexcept; 1586: # 603 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: template _Functor* target() noexcept; 1586: 1586: template const _Functor* target() const noexcept; 1586: 1586: 1586: 1586: private: 1586: using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...); 1586: _Invoker_type _M_invoker; 1586: }; 1586: # 652 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: template 1586: function<_Res(_ArgTypes...)>:: 1586: function(const function& __x) 1586: : _Function_base() 1586: { 1586: if (static_cast(__x)) 1586: { 1586: __x._M_manager(_M_functor, __x._M_functor, __clone_functor); 1586: _M_invoker = __x._M_invoker; 1586: _M_manager = __x._M_manager; 1586: } 1586: } 1586: 1586: template 1586: template 1586: function<_Res(_ArgTypes...)>:: 1586: function(_Functor __f) 1586: : _Function_base() 1586: { 1586: typedef _Function_handler<_Res(_ArgTypes...), _Functor> _My_handler; 1586: 1586: if (_My_handler::_M_not_empty_function(__f)) 1586: { 1586: _My_handler::_M_init_functor(_M_functor, std::move(__f)); 1586: _M_invoker = &_My_handler::_M_invoke; 1586: _M_manager = &_My_handler::_M_manager; 1586: } 1586: } 1586: 1586: template 1586: _Res 1586: function<_Res(_ArgTypes...)>:: 1586: operator()(_ArgTypes... __args) const 1586: { 1586: if (_M_empty()) 1586: __throw_bad_function_call(); 1586: return _M_invoker(_M_functor, std::forward<_ArgTypes>(__args)...); 1586: } 1586: 1586: 1586: template 1586: const type_info& 1586: function<_Res(_ArgTypes...)>:: 1586: target_type() const noexcept 1586: { 1586: if (_M_manager) 1586: { 1586: _Any_data __typeinfo_result; 1586: _M_manager(__typeinfo_result, _M_functor, __get_type_info); 1586: return *__typeinfo_result._M_access(); 1586: } 1586: else 1586: return typeid(void); 1586: } 1586: 1586: template 1586: template 1586: _Functor* 1586: function<_Res(_ArgTypes...)>:: 1586: target() noexcept 1586: { 1586: const function* __const_this = this; 1586: const _Functor* __func = __const_this->template target<_Functor>(); 1586: return const_cast<_Functor*>(__func); 1586: } 1586: 1586: template 1586: template 1586: const _Functor* 1586: function<_Res(_ArgTypes...)>:: 1586: target() const noexcept 1586: { 1586: if (typeid(_Functor) == target_type() && _M_manager) 1586: { 1586: _Any_data __ptr; 1586: _M_manager(__ptr, _M_functor, __get_functor_ptr); 1586: return __ptr._M_access(); 1586: } 1586: else 1586: return nullptr; 1586: } 1586: # 744 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: template 1586: inline bool 1586: operator==(const function<_Res(_Args...)>& __f, nullptr_t) noexcept 1586: { return !static_cast(__f); } 1586: 1586: 1586: template 1586: inline bool 1586: operator==(nullptr_t, const function<_Res(_Args...)>& __f) noexcept 1586: { return !static_cast(__f); } 1586: # 762 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: template 1586: inline bool 1586: operator!=(const function<_Res(_Args...)>& __f, nullptr_t) noexcept 1586: { return static_cast(__f); } 1586: 1586: 1586: template 1586: inline bool 1586: operator!=(nullptr_t, const function<_Res(_Args...)>& __f) noexcept 1586: { return static_cast(__f); } 1586: # 783 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: template 1586: inline void 1586: swap(function<_Res(_Args...)>& __x, function<_Res(_Args...)>& __y) noexcept 1586: { __x.swap(__y); } 1586: # 802 "/usr/mipsel-linux-gnu/include/c++/9/bits/std_function.h" 3 1586: 1586: } 1586: # 60 "/usr/mipsel-linux-gnu/include/c++/9/functional" 2 3 1586: # 68 "/usr/mipsel-linux-gnu/include/c++/9/functional" 3 1586: namespace std __attribute__ ((__visibility__ ("default"))) 1586: { 1586: 1586: # 86 "/usr/mipsel-linux-gnu/include/c++/9/functional" 3 1586: template::value> 1586: class _Mem_fn_base 1586: : public _Mem_fn_traits<_MemFunPtr>::__maybe_type 1586: { 1586: using _Traits = _Mem_fn_traits<_MemFunPtr>; 1586: 1586: using _Arity = typename _Traits::__arity; 1586: using _Varargs = typename _Traits::__vararg; 1586: 1586: template 1586: friend struct _Bind_check_arity; 1586: 1586: _MemFunPtr _M_pmf; 1586: 1586: public: 1586: 1586: using result_type = typename _Traits::__result_type; 1586: 1586: explicit constexpr 1586: _Mem_fn_base(_MemFunPtr __pmf) noexcept : _M_pmf(__pmf) { } 1586: 1586: template 1586: auto 1586: operator()(_Args&&... __args) const 1586: noexcept(noexcept( 1586: std::__invoke(_M_pmf, std::forward<_Args>(__args)...))) 1586: -> decltype(std::__invoke(_M_pmf, std::forward<_Args>(__args)...)) 1586: { return std::__invoke(_M_pmf, std::forward<_Args>(__args)...); } 1586: }; 1586: 1586: 1586: template 1586: class _Mem_fn_base<_MemObjPtr, false> 1586: { 1586: using _Arity = integral_constant; 1586: using _Varargs = false_type; 1586: 1586: template 1586: friend struct _Bind_check_arity; 1586: 1586: _MemObjPtr _M_pm; 1586: 1586: public: 1586: explicit constexpr 1586: _Mem_fn_base(_MemObjPtr __pm) noexcept : _M_pm(__pm) { } 1586: 1586: template 1586: auto 1586: operator()(_Tp&& __obj) const 1586: noexcept(noexcept(std::__invoke(_M_pm, std::forward<_Tp>(__obj)))) 1586: -> decltype(std::__invoke(_M_pm, std::forward<_Tp>(__obj))) 1586: { return std::__invoke(_M_pm, std::forward<_Tp>(__obj)); } 1586: }; 1586: 1586: template 1586: struct _Mem_fn; 1586: 1586: template 1586: struct _Mem_fn<_Res _Class::*> 1586: : _Mem_fn_base<_Res _Class::*> 1586: { 1586: using _Mem_fn_base<_Res _Class::*>::_Mem_fn_base; 1586: }; 1586: # 158 "/usr/mipsel-linux-gnu/include/c++/9/functional" 3 1586: template 1586: inline _Mem_fn<_Tp _Class::*> 1586: mem_fn(_Tp _Class::* __pm) noexcept 1586: { 1586: return _Mem_fn<_Tp _Class::*>(__pm); 1586: } 1586: # 173 "/usr/mipsel-linux-gnu/include/c++/9/functional" 3 1586: template 1586: struct is_bind_expression 1586: : public false_type { }; 1586: # 184 "/usr/mipsel-linux-gnu/include/c++/9/functional" 3 1586: template 1586: struct is_placeholder 1586: : public integral_constant 1586: { }; 1586: # 199 "/usr/mipsel-linux-gnu/include/c++/9/functional" 3 1586: template struct _Placeholder { }; 1586: 1586: 1586: 1586: 1586: 1586: namespace placeholders 1586: { 1586: 1586: 1586: 1586: 1586: extern const _Placeholder<1> _1; 1586: extern const _Placeholder<2> _2; 1586: extern const _Placeholder<3> _3; 1586: extern const _Placeholder<4> _4; 1586: extern const _Placeholder<5> _5; 1586: extern const _Placeholder<6> _6; 1586: extern const _Placeholder<7> _7; 1586: extern const _Placeholder<8> _8; 1586: extern const _Placeholder<9> _9; 1586: extern const _Placeholder<10> _10; 1586: extern const _Placeholder<11> _11; 1586: extern const _Placeholder<12> _12; 1586: extern const _Placeholder<13> _13; 1586: extern const _Placeholder<14> _14; 1586: extern const _Placeholder<15> _15; 1586: extern const _Placeholder<16> _16; 1586: extern const _Placeholder<17> _17; 1586: extern const _Placeholder<18> _18; 1586: extern const _Placeholder<19> _19; 1586: extern const _Placeholder<20> _20; 1586: extern const _Placeholder<21> _21; 1586: extern const _Placeholder<22> _22; 1586: extern const _Placeholder<23> _23; 1586: extern const _Placeholder<24> _24; 1586: extern const _Placeholder<25> _25; 1586: extern const _Placeholder<26> _26; 1586: extern const _Placeholder<27> _27; 1586: extern const _Placeholder<28> _28; 1586: extern const _Placeholder<29> _29; 1586: } 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct is_placeholder<_Placeholder<_Num> > 1586: : public integral_constant 1586: { }; 1586: 1586: template 1586: struct is_placeholder > 1586: : public integral_constant 1586: { }; 1586: 1586: 1586: 1586: template 1586: using _Safe_tuple_element_t 1586: = typename enable_if<(__i < tuple_size<_Tuple>::value), 1586: tuple_element<__i, _Tuple>>::type::type; 1586: # 275 "/usr/mipsel-linux-gnu/include/c++/9/functional" 3 1586: template::value, 1586: bool _IsPlaceholder = (is_placeholder<_Arg>::value > 0)> 1586: class _Mu; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: class _Mu, false, false> 1586: { 1586: public: 1586: 1586: 1586: 1586: 1586: template 1586: _Tp& 1586: operator()(_CVRef& __arg, _Tuple&) const volatile 1586: { return __arg.get(); } 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: class _Mu<_Arg, true, false> 1586: { 1586: public: 1586: template 1586: auto 1586: operator()(_CVArg& __arg, 1586: tuple<_Args...>& __tuple) const volatile 1586: -> decltype(__arg(declval<_Args>()...)) 1586: { 1586: 1586: typedef typename _Build_index_tuple::__type 1586: _Indexes; 1586: return this->__call(__arg, __tuple, _Indexes()); 1586: } 1586: 1586: private: 1586: 1586: 1586: template 1586: auto 1586: __call(_CVArg& __arg, tuple<_Args...>& __tuple, 1586: const _Index_tuple<_Indexes...>&) const volatile 1586: -> decltype(__arg(declval<_Args>()...)) 1586: { 1586: return __arg(std::get<_Indexes>(std::move(__tuple))...); 1586: } 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: class _Mu<_Arg, false, true> 1586: { 1586: public: 1586: template 1586: _Safe_tuple_element_t<(is_placeholder<_Arg>::value - 1), _Tuple>&& 1586: operator()(const volatile _Arg&, _Tuple& __tuple) const volatile 1586: { 1586: return 1586: ::std::get<(is_placeholder<_Arg>::value - 1)>(std::move(__tuple)); 1586: } 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: class _Mu<_Arg, false, false> 1586: { 1586: public: 1586: template 1586: _CVArg&& 1586: operator()(_CVArg&& __arg, _Tuple&) const volatile 1586: { return std::forward<_CVArg>(__arg); } 1586: }; 1586: 1586: 1586: template 1586: inline auto 1586: __volget(volatile tuple<_Tp...>& __tuple) 1586: -> __tuple_element_t<_Ind, tuple<_Tp...>> volatile& 1586: { return std::get<_Ind>(const_cast&>(__tuple)); } 1586: 1586: 1586: template 1586: inline auto 1586: __volget(const volatile tuple<_Tp...>& __tuple) 1586: -> __tuple_element_t<_Ind, tuple<_Tp...>> const volatile& 1586: { return std::get<_Ind>(const_cast&>(__tuple)); } 1586: 1586: 1586: template 1586: struct _Bind; 1586: 1586: template 1586: class _Bind<_Functor(_Bound_args...)> 1586: : public _Weak_result_type<_Functor> 1586: { 1586: typedef typename _Build_index_tuple::__type 1586: _Bound_indexes; 1586: 1586: _Functor _M_f; 1586: tuple<_Bound_args...> _M_bound_args; 1586: 1586: 1586: template 1586: _Result 1586: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 1586: { 1586: return std::__invoke(_M_f, 1586: _Mu<_Bound_args>()(std::get<_Indexes>(_M_bound_args), __args)... 1586: ); 1586: } 1586: 1586: 1586: template 1586: _Result 1586: __call_c(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 1586: { 1586: return std::__invoke(_M_f, 1586: _Mu<_Bound_args>()(std::get<_Indexes>(_M_bound_args), __args)... 1586: ); 1586: } 1586: 1586: 1586: template 1586: _Result 1586: __call_v(tuple<_Args...>&& __args, 1586: _Index_tuple<_Indexes...>) volatile 1586: { 1586: return std::__invoke(_M_f, 1586: _Mu<_Bound_args>()(__volget<_Indexes>(_M_bound_args), __args)... 1586: ); 1586: } 1586: 1586: 1586: template 1586: _Result 1586: __call_c_v(tuple<_Args...>&& __args, 1586: _Index_tuple<_Indexes...>) const volatile 1586: { 1586: return std::__invoke(_M_f, 1586: _Mu<_Bound_args>()(__volget<_Indexes>(_M_bound_args), __args)... 1586: ); 1586: } 1586: 1586: template 1586: using _Mu_type = decltype( 1586: _Mu::type>()( 1586: std::declval<_BoundArg&>(), std::declval<_CallArgs&>()) ); 1586: 1586: template 1586: using _Res_type_impl 1586: = typename result_of< _Fn&(_Mu_type<_BArgs, _CallArgs>&&...) >::type; 1586: 1586: template 1586: using _Res_type = _Res_type_impl<_Functor, _CallArgs, _Bound_args...>; 1586: 1586: template 1586: using __dependent = typename 1586: enable_if::value+1), _Functor>::type; 1586: 1586: template class __cv_quals> 1586: using _Res_type_cv = _Res_type_impl< 1586: typename __cv_quals<__dependent<_CallArgs>>::type, 1586: _CallArgs, 1586: typename __cv_quals<_Bound_args>::type...>; 1586: 1586: public: 1586: template 1586: explicit _Bind(const _Functor& __f, _Args&&... __args) 1586: : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...) 1586: { } 1586: 1586: template 1586: explicit _Bind(_Functor&& __f, _Args&&... __args) 1586: : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...) 1586: { } 1586: 1586: _Bind(const _Bind&) = default; 1586: 1586: _Bind(_Bind&& __b) 1586: : _M_f(std::move(__b._M_f)), _M_bound_args(std::move(__b._M_bound_args)) 1586: { } 1586: 1586: 1586: template>> 1586: _Result 1586: operator()(_Args&&... __args) 1586: { 1586: return this->__call<_Result>( 1586: std::forward_as_tuple(std::forward<_Args>(__args)...), 1586: _Bound_indexes()); 1586: } 1586: 1586: 1586: template, add_const>> 1586: _Result 1586: operator()(_Args&&... __args) const 1586: { 1586: return this->__call_c<_Result>( 1586: std::forward_as_tuple(std::forward<_Args>(__args)...), 1586: _Bound_indexes()); 1586: } 1586: # 505 "/usr/mipsel-linux-gnu/include/c++/9/functional" 3 1586: template, add_volatile>> 1586: 1586: _Result 1586: operator()(_Args&&... __args) volatile 1586: { 1586: return this->__call_v<_Result>( 1586: std::forward_as_tuple(std::forward<_Args>(__args)...), 1586: _Bound_indexes()); 1586: } 1586: 1586: 1586: template, add_cv>> 1586: 1586: _Result 1586: operator()(_Args&&... __args) const volatile 1586: { 1586: return this->__call_c_v<_Result>( 1586: std::forward_as_tuple(std::forward<_Args>(__args)...), 1586: _Bound_indexes()); 1586: } 1586: }; 1586: 1586: 1586: template 1586: struct _Bind_result; 1586: 1586: template 1586: class _Bind_result<_Result, _Functor(_Bound_args...)> 1586: { 1586: typedef typename _Build_index_tuple::__type 1586: _Bound_indexes; 1586: 1586: _Functor _M_f; 1586: tuple<_Bound_args...> _M_bound_args; 1586: 1586: 1586: template 1586: using __enable_if_void 1586: = typename enable_if{}>::type; 1586: 1586: template 1586: using __disable_if_void 1586: = typename enable_if{}, _Result>::type; 1586: 1586: 1586: template 1586: __disable_if_void<_Res> 1586: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 1586: { 1586: return std::__invoke(_M_f, _Mu<_Bound_args>() 1586: (std::get<_Indexes>(_M_bound_args), __args)...); 1586: } 1586: 1586: 1586: template 1586: __enable_if_void<_Res> 1586: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 1586: { 1586: std::__invoke(_M_f, _Mu<_Bound_args>() 1586: (std::get<_Indexes>(_M_bound_args), __args)...); 1586: } 1586: 1586: 1586: template 1586: __disable_if_void<_Res> 1586: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 1586: { 1586: return std::__invoke(_M_f, _Mu<_Bound_args>() 1586: (std::get<_Indexes>(_M_bound_args), __args)...); 1586: } 1586: 1586: 1586: template 1586: __enable_if_void<_Res> 1586: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 1586: { 1586: std::__invoke(_M_f, _Mu<_Bound_args>() 1586: (std::get<_Indexes>(_M_bound_args), __args)...); 1586: } 1586: 1586: 1586: template 1586: __disable_if_void<_Res> 1586: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) volatile 1586: { 1586: return std::__invoke(_M_f, _Mu<_Bound_args>() 1586: (__volget<_Indexes>(_M_bound_args), __args)...); 1586: } 1586: 1586: 1586: template 1586: __enable_if_void<_Res> 1586: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) volatile 1586: { 1586: std::__invoke(_M_f, _Mu<_Bound_args>() 1586: (__volget<_Indexes>(_M_bound_args), __args)...); 1586: } 1586: 1586: 1586: template 1586: __disable_if_void<_Res> 1586: __call(tuple<_Args...>&& __args, 1586: _Index_tuple<_Indexes...>) const volatile 1586: { 1586: return std::__invoke(_M_f, _Mu<_Bound_args>() 1586: (__volget<_Indexes>(_M_bound_args), __args)...); 1586: } 1586: 1586: 1586: template 1586: __enable_if_void<_Res> 1586: __call(tuple<_Args...>&& __args, 1586: _Index_tuple<_Indexes...>) const volatile 1586: { 1586: std::__invoke(_M_f, _Mu<_Bound_args>() 1586: (__volget<_Indexes>(_M_bound_args), __args)...); 1586: } 1586: 1586: public: 1586: typedef _Result result_type; 1586: 1586: template 1586: explicit _Bind_result(const _Functor& __f, _Args&&... __args) 1586: : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...) 1586: { } 1586: 1586: template 1586: explicit _Bind_result(_Functor&& __f, _Args&&... __args) 1586: : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...) 1586: { } 1586: 1586: _Bind_result(const _Bind_result&) = default; 1586: 1586: _Bind_result(_Bind_result&& __b) 1586: : _M_f(std::move(__b._M_f)), _M_bound_args(std::move(__b._M_bound_args)) 1586: { } 1586: 1586: 1586: template 1586: result_type 1586: operator()(_Args&&... __args) 1586: { 1586: return this->__call<_Result>( 1586: std::forward_as_tuple(std::forward<_Args>(__args)...), 1586: _Bound_indexes()); 1586: } 1586: 1586: 1586: template 1586: result_type 1586: operator()(_Args&&... __args) const 1586: { 1586: return this->__call<_Result>( 1586: std::forward_as_tuple(std::forward<_Args>(__args)...), 1586: _Bound_indexes()); 1586: } 1586: 1586: 1586: template 1586: 1586: result_type 1586: operator()(_Args&&... __args) volatile 1586: { 1586: return this->__call<_Result>( 1586: std::forward_as_tuple(std::forward<_Args>(__args)...), 1586: _Bound_indexes()); 1586: } 1586: 1586: 1586: template 1586: 1586: result_type 1586: operator()(_Args&&... __args) const volatile 1586: { 1586: return this->__call<_Result>( 1586: std::forward_as_tuple(std::forward<_Args>(__args)...), 1586: _Bound_indexes()); 1586: } 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct is_bind_expression<_Bind<_Signature> > 1586: : public true_type { }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct is_bind_expression > 1586: : public true_type { }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct is_bind_expression > 1586: : public true_type { }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct is_bind_expression> 1586: : public true_type { }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct is_bind_expression<_Bind_result<_Result, _Signature>> 1586: : public true_type { }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct is_bind_expression> 1586: : public true_type { }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct is_bind_expression> 1586: : public true_type { }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: struct is_bind_expression> 1586: : public true_type { }; 1586: 1586: template 1586: struct _Bind_check_arity { }; 1586: 1586: template 1586: struct _Bind_check_arity<_Ret (*)(_Args...), _BoundArgs...> 1586: { 1586: static_assert(sizeof...(_BoundArgs) == sizeof...(_Args), 1586: "Wrong number of arguments for function"); 1586: }; 1586: 1586: template 1586: struct _Bind_check_arity<_Ret (*)(_Args......), _BoundArgs...> 1586: { 1586: static_assert(sizeof...(_BoundArgs) >= sizeof...(_Args), 1586: "Wrong number of arguments for function"); 1586: }; 1586: 1586: template 1586: struct _Bind_check_arity<_Tp _Class::*, _BoundArgs...> 1586: { 1586: using _Arity = typename _Mem_fn<_Tp _Class::*>::_Arity; 1586: using _Varargs = typename _Mem_fn<_Tp _Class::*>::_Varargs; 1586: static_assert(_Varargs::value 1586: ? sizeof...(_BoundArgs) >= _Arity::value + 1 1586: : sizeof...(_BoundArgs) == _Arity::value + 1, 1586: "Wrong number of arguments for pointer-to-member"); 1586: }; 1586: 1586: 1586: 1586: 1586: template::type> 1586: using __is_socketlike = __or_, is_enum<_Tp2>>; 1586: 1586: template 1586: struct _Bind_helper 1586: : _Bind_check_arity::type, _BoundArgs...> 1586: { 1586: typedef typename decay<_Func>::type __func_type; 1586: typedef _Bind<__func_type(typename decay<_BoundArgs>::type...)> type; 1586: }; 1586: 1586: 1586: 1586: 1586: template 1586: struct _Bind_helper 1586: { }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline typename 1586: _Bind_helper<__is_socketlike<_Func>::value, _Func, _BoundArgs...>::type 1586: bind(_Func&& __f, _BoundArgs&&... __args) 1586: { 1586: typedef _Bind_helper __helper_type; 1586: return typename __helper_type::type(std::forward<_Func>(__f), 1586: std::forward<_BoundArgs>(__args)...); 1586: } 1586: 1586: template 1586: struct _Bindres_helper 1586: : _Bind_check_arity::type, _BoundArgs...> 1586: { 1586: typedef typename decay<_Func>::type __functor_type; 1586: typedef _Bind_result<_Result, 1586: __functor_type(typename decay<_BoundArgs>::type...)> 1586: type; 1586: }; 1586: 1586: 1586: 1586: 1586: 1586: template 1586: inline 1586: typename _Bindres_helper<_Result, _Func, _BoundArgs...>::type 1586: bind(_Func&& __f, _BoundArgs&&... __args) 1586: { 1586: typedef _Bindres_helper<_Result, _Func, _BoundArgs...> __helper_type; 1586: return typename __helper_type::type(std::forward<_Func>(__f), 1586: std::forward<_BoundArgs>(__args)...); 1586: } 1586: # 1293 "/usr/mipsel-linux-gnu/include/c++/9/functional" 3 1586: 1586: } 1586: # 15 "/<>/search/include/HepMC3/Filter.h" 2 1586: 1586: # 15 "/<>/search/include/HepMC3/Filter.h" 1586: namespace HepMC3 { 1586: 1586: using Filter = std::function; 1586: 1586: 1586: 1586: inline vector applyFilter(const Filter &filter, const vector &particles) { 1586: vector result; 1586: for(GenParticlePtr p: particles) { 1586: if(filter(p)) result.push_back(p); 1586: } 1586: return result; 1586: } 1586: 1586: 1586: 1586: inline vector applyFilter(const Filter &filter, const vector &particles) { 1586: vector result; 1586: for(ConstGenParticlePtr p: particles) { 1586: if(filter(p)) result.push_back(p); 1586: } 1586: return result; 1586: } 1586: 1586: 1586: 1586: inline bool ACCEPT_ALL(ConstGenParticlePtr dummy) { 1586: return true; 1586: } 1586: 1586: 1586: inline Filter operator && (const Filter & lhs, const Filter &rhs) { 1586: return [lhs, rhs](ConstGenParticlePtr p)->bool{return lhs(p) && rhs(p); }; 1586: } 1586: 1586: 1586: inline Filter operator || (const Filter & lhs, const Filter &rhs) { 1586: return [lhs, rhs](ConstGenParticlePtr p)->bool{return lhs(p) || rhs(p); }; 1586: } 1586: 1586: 1586: inline Filter operator !(const Filter &rhs) { 1586: return [rhs](ConstGenParticlePtr p)->bool{return ! (rhs(p));}; 1586: } 1586: 1586: } 1586: # 14 "/<>/search/include/HepMC3/Selector.h" 2 1586: # 1 "/<>/search/include/HepMC3/Feature.h" 1 1586: # 18 "/<>/search/include/HepMC3/Feature.h" 1586: namespace HepMC3 { 1586: # 55 "/<>/search/include/HepMC3/Feature.h" 1586: template 1586: class GenericFeature { 1586: 1586: public: 1586: 1586: using Evaluator_type = std::function; 1586: using EvaluatorPtr = std::shared_ptr; 1586: 1586: 1586: Feature_type operator()(ConstGenParticlePtr input)const { 1586: return (*m_internal)(input); 1586: } 1586: 1586: 1586: 1586: Filter operator > (Feature_type value) const { 1586: EvaluatorPtr functor = m_internal; 1586: return [value, functor](ConstGenParticlePtr input)->bool{return (*functor)(input) > value;}; 1586: } 1586: 1586: 1586: Filter operator < (Feature_type value) const { 1586: EvaluatorPtr functor = m_internal; 1586: return [value, functor](ConstGenParticlePtr input)->bool{return (*functor)(input) < value;}; 1586: } 1586: 1586: 1586: 1586: Filter operator >= (Feature_type value) const { 1586: EvaluatorPtr functor = m_internal; 1586: return [value, functor](ConstGenParticlePtr input)->bool{return (*functor)(input) >= value;}; 1586: } 1586: 1586: 1586: 1586: Filter operator <= (Feature_type value) const { 1586: EvaluatorPtr functor = m_internal; 1586: return [value, functor](ConstGenParticlePtr input)->bool{return (*functor)(input) <= value;}; 1586: } 1586: 1586: 1586: 1586: virtual Filter operator == (Feature_type value) const { 1586: EvaluatorPtr functor = m_internal; 1586: return [value, functor](ConstGenParticlePtr input)->bool{return (*functor)(input) == value;}; 1586: } 1586: 1586: 1586: 1586: virtual Filter operator != (Feature_type value) const { 1586: EvaluatorPtr functor = m_internal; 1586: return [value, functor](ConstGenParticlePtr input)->bool{return (*functor)(input) != value;}; 1586: } 1586: 1586: protected: 1586: 1586: 1586: GenericFeature(Evaluator_type functor):m_internal(std::make_shared(functor)) {} 1586: 1586: 1586: GenericFeature(const GenericFeature ©) : m_internal(copy.m_internal) {} 1586: 1586: 1586: 1586: 1586: EvaluatorPtr m_internal; 1586: 1586: }; 1586: # 160 "/<>/search/include/HepMC3/Feature.h" 1586: template 1586: class Feature : public GenericFeature { 1586: 1586: public: 1586: 1586: using typename GenericFeature::Evaluator_type; 1586: using typename GenericFeature::EvaluatorPtr; 1586: using GenericFeature::m_internal; 1586: 1586: using GenericFeature::operator (); 1586: using GenericFeature::operator >; 1586: using GenericFeature::operator >=; 1586: using GenericFeature::operator <; 1586: using GenericFeature::operator <=; 1586: using GenericFeature::operator ==; 1586: using GenericFeature::operator !=; 1586: 1586: Feature(Evaluator_type functor) : GenericFeature(functor) {} 1586: Feature(const Feature ©) : GenericFeature(copy) {} 1586: 1586: Feature abs() const { 1586: EvaluatorPtr functor = m_internal; 1586: Evaluator_type absfunctor = [functor](ConstGenParticlePtr p)->Feature_type{return ::abs((*functor)(p));}; 1586: return Feature(absfunctor); 1586: } 1586: 1586: }; 1586: # 203 "/<>/search/include/HepMC3/Feature.h" 1586: template 1586: class Feature::value, void>::type> : public GenericFeature { 1586: 1586: public: 1586: 1586: using GenericFeature::operator (); 1586: using GenericFeature::operator >; 1586: using GenericFeature::operator >=; 1586: using GenericFeature::operator <; 1586: using GenericFeature::operator <=; 1586: using GenericFeature::operator ==; 1586: using GenericFeature::operator !=; 1586: 1586: using typename GenericFeature::Evaluator_type; 1586: using typename GenericFeature::EvaluatorPtr; 1586: 1586: using GenericFeature::m_internal; 1586: 1586: Feature(Evaluator_type functor) : GenericFeature(functor) {} 1586: Feature(const Feature ©) : GenericFeature(copy) {} 1586: 1586: Feature abs() const { 1586: EvaluatorPtr functor = m_internal; 1586: Evaluator_type absfunctor = [functor](ConstGenParticlePtr p)->Feature_type{return ::abs((*functor)(p));}; 1586: return Feature(absfunctor); 1586: } 1586: 1586: Filter operator > (double value) const { 1586: EvaluatorPtr functor = m_internal; 1586: return [value, functor](ConstGenParticlePtr input)->bool{return (*functor)(input) > value;}; 1586: } 1586: 1586: Filter operator < (double value) const { 1586: EvaluatorPtr functor = m_internal; 1586: return [value, functor](ConstGenParticlePtr input)->bool{return (*functor)(input) < value;}; 1586: } 1586: 1586: Filter operator == (double value) const { 1586: EvaluatorPtr functor = m_internal; 1586: return [value, functor](ConstGenParticlePtr input)->bool{ 1586: Feature_type local = (*functor)(input); 1586: return fabs(local - value) <= ((::abs(local) < fabs(value))? fabs(value) : ::abs(local)) * std::numeric_limits::epsilon(); 1586: }; 1586: } 1586: 1586: Filter operator >= (double value) const { return !( (*this) < value );} 1586: 1586: Filter operator <= (double value) const { return !( (*this) > value );} 1586: 1586: Filter operator != (double value) const { 1586: return !( (*this)==value ); 1586: } 1586: 1586: }; 1586: # 267 "/<>/search/include/HepMC3/Feature.h" 1586: template 1586: class Feature::value, void>::type> : public GenericFeature { 1586: 1586: public: 1586: 1586: using typename GenericFeature::Evaluator_type; 1586: using typename GenericFeature::EvaluatorPtr; 1586: 1586: using GenericFeature::operator (); 1586: using GenericFeature::operator >; 1586: using GenericFeature::operator >=; 1586: using GenericFeature::operator <; 1586: using GenericFeature::operator <=; 1586: 1586: using GenericFeature::m_internal; 1586: 1586: Feature(Evaluator_type functor) : GenericFeature(functor) {} 1586: Feature(const Feature ©) : GenericFeature(copy) {} 1586: 1586: Feature abs() const { 1586: EvaluatorPtr functor = m_internal; 1586: Evaluator_type absfunctor = [functor](ConstGenParticlePtr p)->Feature_type{return fabs((*functor)(p));}; 1586: return Feature(absfunctor); 1586: } 1586: 1586: Filter operator == (Feature_type value) const override { 1586: EvaluatorPtr functor = m_internal; 1586: return [value, functor](ConstGenParticlePtr input)->bool{ 1586: Feature_type local = (*functor)(input); 1586: return fabs(local - value) <= ((fabs(local) < fabs(value))? fabs(value) : fabs(local)) * std::numeric_limits::epsilon(); 1586: }; 1586: } 1586: 1586: Filter operator != (Feature_type value) const override { 1586: return !( (*this)==value ); 1586: } 1586: 1586: }; 1586: # 315 "/<>/search/include/HepMC3/Feature.h" 1586: template 1586: Feature abs(const Feature &input) { 1586: return input.abs(); 1586: } 1586: 1586: } 1586: # 15 "/<>/search/include/HepMC3/Selector.h" 2 1586: # 1 "/<>/search/include/HepMC3/AttributeFeature.h" 1 1586: # 18 "/<>/search/include/HepMC3/AttributeFeature.h" 1586: namespace HepMC3 { 1586: 1586: class AttributeFeature { 1586: 1586: public: 1586: 1586: AttributeFeature(const std::string &name): m_name(name) {} 1586: 1586: Filter exists() const { 1586: std::string name = m_name; 1586: return [name](ConstGenParticlePtr p)->bool{return p->attribute_as_string(name).length() != 0;}; 1586: } 1586: 1586: bool operator()(ConstGenParticlePtr p) const { 1586: return p->attribute_as_string(m_name).length() != 0; 1586: } 1586: 1586: Filter operator == (const Attribute &rhs) const { 1586: std::string name = m_name; 1586: std::string other; 1586: rhs.to_string(other); 1586: return [other, name](ConstGenParticlePtr p)->bool{return p->attribute_as_string(name).compare(other) == 0;}; 1586: } 1586: 1586: Filter operator == (std::shared_ptr rhs) const { 1586: std::string name = m_name; 1586: std::string other; 1586: rhs->to_string(other); 1586: return [other, name](ConstGenParticlePtr p)->bool{return p->attribute_as_string(name).compare(other) == 0;}; 1586: } 1586: 1586: Filter operator == (std::string rhs) const { 1586: const std::string &name = m_name; 1586: return [name, rhs](ConstGenParticlePtr p)->bool{return p->attribute_as_string(name).compare(rhs) == 0;}; 1586: } 1586: 1586: private: 1586: 1586: std::string m_name; 1586: 1586: }; 1586: } 1586: # 16 "/<>/search/include/HepMC3/Selector.h" 2 1586: 1586: namespace HepMC3 { 1586: 1586: template 1586: class SelectorWrapper; 1586: 1586: class Selector; 1586: 1586: using ConstSelectorPtr = std::shared_ptr; 1586: # 55 "/<>/search/include/HepMC3/Selector.h" 1586: class Selector { 1586: 1586: public: 1586: 1586: virtual ~Selector() {}; 1586: 1586: virtual Filter operator > (int value) const = 0; 1586: virtual Filter operator > (double value) const = 0; 1586: 1586: virtual Filter operator >= (int value) const = 0; 1586: virtual Filter operator >= (double value) const = 0; 1586: 1586: virtual Filter operator < (int value) const = 0; 1586: virtual Filter operator < (double value) const = 0; 1586: 1586: virtual Filter operator <= (int value) const = 0; 1586: virtual Filter operator <= (double value) const = 0; 1586: 1586: virtual Filter operator == (int value) const = 0; 1586: virtual Filter operator == (double value) const = 0; 1586: 1586: virtual Filter operator != (int value) const = 0; 1586: virtual Filter operator != (double value) const = 0; 1586: 1586: virtual ConstSelectorPtr abs() const = 0; 1586: 1586: static const SelectorWrapper STATUS; 1586: static const SelectorWrapper PDG_ID; 1586: static const SelectorWrapper PT; 1586: static const SelectorWrapper ENERGY; 1586: static const SelectorWrapper RAPIDITY; 1586: static const SelectorWrapper ETA; 1586: static const SelectorWrapper PHI; 1586: static const SelectorWrapper ET; 1586: static const SelectorWrapper MASS; 1586: static AttributeFeature ATTRIBUTE(const std::string &name); 1586: 1586: }; 1586: 1586: template 1586: class SelectorWrapper : public Selector { 1586: 1586: public: 1586: 1586: SelectorWrapper(typename Feature::Evaluator_type functor): m_internal(functor) {} 1586: 1586: Filter operator > (int value) const override { 1586: return m_internal > value; 1586: } 1586: 1586: Filter operator > (double value) const override { 1586: return m_internal > value; 1586: } 1586: 1586: Filter operator >= (int value) const override { 1586: return m_internal >= value; 1586: } 1586: 1586: Filter operator >= (double value) const override { 1586: return m_internal >= value; 1586: } 1586: 1586: Filter operator < (int value) const override { 1586: return m_internal < value; 1586: } 1586: 1586: Filter operator < (double value) const override { 1586: return m_internal < value; 1586: } 1586: 1586: Filter operator <= (int value) const override { 1586: return m_internal <= value; 1586: } 1586: 1586: Filter operator <= (double value) const override { 1586: return m_internal <= value; 1586: } 1586: 1586: Filter operator == (int value) const override { 1586: return m_internal == value; 1586: } 1586: 1586: Filter operator == (double value) const override { 1586: return m_internal == value; 1586: } 1586: 1586: Filter operator != (int value) const override { 1586: return m_internal != value; 1586: } 1586: 1586: Filter operator != (double value) const override { 1586: return m_internal != value; 1586: } 1586: 1586: ConstSelectorPtr abs() const override { 1586: SelectorWrapper *copy = new SelectorWrapper(*this); 1586: copy->m_internal = m_internal.abs(); 1586: return ConstSelectorPtr(copy); 1586: } 1586: 1586: private: 1586: 1586: Feature m_internal; 1586: 1586: }; 1586: 1586: ConstSelectorPtr abs(const Selector &input); 1586: 1586: } 1586: # 11 "/<>/search/src/Selector.cc" 2 1586: 1586: namespace HepMC3 { 1586: const SelectorWrapper Selector::STATUS = SelectorWrapper([](ConstGenParticlePtr p)->int{return p->status();}); 1586: const SelectorWrapper Selector::PDG_ID = SelectorWrapper([](ConstGenParticlePtr p)->int{return p->pdg_id();}); 1586: const SelectorWrapper Selector::PT = SelectorWrapper([](ConstGenParticlePtr p)->double{return p->momentum().pt();}); 1586: const SelectorWrapper Selector::ENERGY = SelectorWrapper([](ConstGenParticlePtr p)->double{return p->momentum().e();}); 1586: const SelectorWrapper Selector::RAPIDITY = SelectorWrapper([](ConstGenParticlePtr p)->double{return p->momentum().rap();}); 1586: const SelectorWrapper Selector::ETA = SelectorWrapper([](ConstGenParticlePtr p)->double{return p->momentum().eta();}); 1586: const SelectorWrapper Selector::PHI = SelectorWrapper([](ConstGenParticlePtr p)->double{return p->momentum().phi();}); 1586: const SelectorWrapper Selector::ET = SelectorWrapper([](ConstGenParticlePtr p)->double{return p->momentum().e() * (p->momentum().pt() / p->momentum().p3mod());}); 1586: const SelectorWrapper Selector::MASS = SelectorWrapper([](ConstGenParticlePtr p)->double{return p->momentum().m();}); 1586: 1586: 1586: 1586: ConstSelectorPtr abs(const Selector &input) 1586: { 1586: return input.abs(); 1586: } 1586: 1586: 1586: AttributeFeature Selector::ATTRIBUTE(const std::string &name) {return AttributeFeature(name);} 1586: 1586: } === END GCC DUMP === make[4]: *** [search/CMakeFiles/objlibsearch.dir/build.make:98: search/CMakeFiles/objlibsearch.dir/src/Selector.cc.o] Error 1 make[4]: Leaving directory '/<>/obj-mipsel-linux-gnu' make[3]: *** [CMakeFiles/Makefile2:339: search/CMakeFiles/objlibsearch.dir/all] Error 2 make[3]: Leaving directory '/<>/obj-mipsel-linux-gnu' make[2]: *** [Makefile:185: all] Error 2 make[2]: Leaving directory '/<>/obj-mipsel-linux-gnu' dh_auto_build: error: cd obj-mipsel-linux-gnu && make -j1 returned exit code 2 make[1]: *** [debian/rules:18: override_dh_auto_build-arch] Error 25 make[1]: Leaving directory '/<>' make: *** [debian/rules:6: build-arch] Error 2 dpkg-buildpackage: error: debian/rules build-arch subprocess returned exit status 2 -------------------------------------------------------------------------------- Build finished at 2020-10-10T03:05:10Z Finished -------- +------------------------------------------------------------------------------+ | Cleanup | +------------------------------------------------------------------------------+ Purging /<> Not cleaning session: cloned chroot in use E: Build failure (dpkg-buildpackage died) +------------------------------------------------------------------------------+ | Summary | +------------------------------------------------------------------------------+ Build Architecture: amd64 Build Profiles: cross nocheck Build Type: any Build-Space: 116492 Build-Time: 97 Distribution: unstable Fail-Stage: build Foreign Architectures: mipsel Host Architecture: mipsel Install-Time: 25 Job: hepmc3_3.1.2-2 Machine Architecture: amd64 Package: hepmc3 Package-Time: 136 Source-Version: 3.1.2-2 Space: 116492 Status: attempted Version: 3.1.2-2 -------------------------------------------------------------------------------- Finished at 2020-10-10T03:05:10Z Build needed 00:02:16, 116492k disk space