RUN: /usr/share/launchpad-buildd/slavebin/slave-prep Forking launchpad-buildd slave process... Kernel version: Linux bos01-arm64-004 4.4.0-101-generic #124-Ubuntu SMP Fri Nov 10 18:30:44 UTC 2017 aarch64 Buildd toolchain package versions: launchpad-buildd_157 python-lpbuildd_157 sbuild_0.67.0-2ubuntu7.1 bzr-builder_0.7.3+bzr174~ppa13~ubuntu14.10.1 bzr_2.7.0-2ubuntu3.1 git-build-recipe_0.3.4~git201611291343.dcee459~ubuntu16.04.1 git_1:2.7.4-0ubuntu1.3 dpkg-dev_1.18.4ubuntu1.3 python-debian_0.1.27ubuntu2. Syncing the system clock with the buildd NTP service... 15 Jan 10:23:22 ntpdate[1819]: adjust time server 10.211.37.1 offset 0.013897 sec RUN: /usr/share/launchpad-buildd/slavebin/in-target unpack-chroot --backend=chroot --series=bionic --arch=armhf PACKAGEBUILD-14100384 /home/buildd/filecache-default/b70461af4419c13dbae7acd6fe74d075a1a9550f Creating target for build PACKAGEBUILD-14100384 RUN: /usr/share/launchpad-buildd/slavebin/in-target mount-chroot --backend=chroot --series=bionic --arch=armhf PACKAGEBUILD-14100384 Starting target for build PACKAGEBUILD-14100384 RUN: /usr/share/launchpad-buildd/slavebin/in-target override-sources-list --backend=chroot --series=bionic --arch=armhf PACKAGEBUILD-14100384 'deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic main' 'deb http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic main' 'deb http://ftpmaster.internal/ubuntu bionic main restricted universe multiverse' 'deb http://ftpmaster.internal/ubuntu bionic-security main restricted universe multiverse' 'deb http://ftpmaster.internal/ubuntu bionic-updates main restricted universe multiverse' Overriding sources.list in build-PACKAGEBUILD-14100384 RUN: /usr/share/launchpad-buildd/slavebin/in-target add-trusted-keys --backend=chroot --series=bionic --arch=armhf PACKAGEBUILD-14100384 Adding trusted keys to build-PACKAGEBUILD-14100384 Warning: apt-key output should not be parsed (stdout is not a terminal) OK Warning: apt-key output should not be parsed (stdout is not a terminal) /etc/apt/trusted.gpg -------------------- pub rsa1024 2009-10-22 [SC] 60C3 1780 3A41 BA51 845E 371A 1E93 77A2 BA9E F27F uid [ unknown] Launchpad Toolchain builds /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-archive.gpg ------------------------------------------------------ pub rsa4096 2012-05-11 [SC] 790B C727 7767 219C 42C8 6F93 3B4F E6AC C0B2 1F32 uid [ unknown] Ubuntu Archive Automatic Signing Key (2012) /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg ------------------------------------------------------ pub rsa4096 2012-05-11 [SC] 8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092 uid [ unknown] Ubuntu CD Image Automatic Signing Key (2012) RUN: /usr/share/launchpad-buildd/slavebin/in-target update-debian-chroot --backend=chroot --series=bionic --arch=armhf PACKAGEBUILD-14100384 Updating target for build PACKAGEBUILD-14100384 Get:1 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic InRelease [15.4 kB] Get:2 http://ftpmaster.internal/ubuntu bionic InRelease [235 kB] Get:3 http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic InRelease [15.4 kB] Get:4 http://ftpmaster.internal/ubuntu bionic-security InRelease [65.4 kB] Get:5 http://ftpmaster.internal/ubuntu bionic-updates InRelease [65.4 kB] Get:6 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main armhf Packages [17.0 kB] Get:7 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main Translation-en [9132 B] Get:8 http://ftpmaster.internal/ubuntu bionic/main armhf Packages [968 kB] Get:9 http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic/main armhf Packages [4500 B] Get:10 http://ftpmaster.internal/ubuntu bionic/main Translation-en [518 kB] Get:11 http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic/main Translation-en [4552 B] Get:12 http://ftpmaster.internal/ubuntu bionic/restricted armhf Packages [5896 B] Get:13 http://ftpmaster.internal/ubuntu bionic/restricted Translation-en [2384 B] Get:14 http://ftpmaster.internal/ubuntu bionic/universe armhf Packages [8144 kB] Get:15 http://ftpmaster.internal/ubuntu bionic/universe Translation-en [4941 kB] Get:16 http://ftpmaster.internal/ubuntu bionic/multiverse armhf Packages [128 kB] Get:17 http://ftpmaster.internal/ubuntu bionic/multiverse Translation-en [109 kB] Fetched 15.2 MB in 5s (2619 kB/s) Reading package lists... Reading package lists... Building dependency tree... Reading state information... Calculating upgrade... The following packages were automatically installed and are no longer required: g++-7 libasn1-8-heimdal libcurl3-gnutls libgssapi-krb5-2 libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal libidn2-0 libk5crypto3 libkeyutils1 libkrb5-26-heimdal libkrb5-3 libkrb5support0 libldap-2.4-2 libldap-common libnghttp2-14 libpsl5 libroken18-heimdal librtmp1 libsasl2-2 libsasl2-modules-db libstdc++-7-dev libunistring0 libustr-1.0-1 libwind0-heimdal Use 'sudo apt autoremove' to remove them. The following NEW packages will be installed: cpp-8 g++-8 gcc-8 gcc-8-base libasan5 libgcc-8-dev libnghttp2-14 libstdc++-8-dev libubsan1 The following packages will be upgraded: adduser apt apt-transport-https base-files base-passwd binutils binutils-arm-linux-gnueabihf binutils-common bsdutils build-essential coreutils cpp cpp-7 debconf debianutils dpkg dpkg-dev e2fslibs e2fsprogs fdisk findutils g++ g++-7 gcc gcc-7 gcc-7-base gnupg gnupg-agent gpgv init init-system-helpers libapparmor1 libapt-pkg5.0 libasan4 libasn1-8-heimdal libassuan0 libatomic1 libbinutils libblkid1 libc-bin libc-dev-bin libc6 libc6-dev libcap-ng0 libcap2 libcc1-0 libcilkrts5 libcomerr2 libcurl3-gnutls libdpkg-perl libfdisk1 libgcc-7-dev libgcc1 libgcrypt20 libgomp1 libgpg-error0 libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhogweed4 libhx509-5-heimdal libidn11 libidn2-0 libip4tc0 libkeyutils1 libkrb5-26-heimdal liblockfile-bin liblockfile1 libmount1 libnettle6 libnpth0 libp11-kit0 libpcre3 libperl5.26 libpng16-16 libpsl5 libroken18-heimdal libseccomp2 libselinux1 libsemanage-common libsemanage1 libsmartcols1 libsqlite3-0 libss2 libssl1.0.0 libstdc++-7-dev libstdc++6 libsystemd0 libtasn1-6 libubsan0 libudev1 libuuid1 libwind0-heimdal linux-libc-dev lsb-base mount multiarch-support openssl optipng perl perl-base perl-modules-5.26 pinentry-curses sensible-utils systemd systemd-sysv sysvinit-utils tzdata util-linux 110 upgraded, 9 newly installed, 0 to remove and 0 not upgraded. Need to get 148 MB of archives. After this operation, 326 MB of additional disk space will be used. Get:1 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main armhf gcc-8-base armhf 8-20180110-1ubuntu1 [17.9 kB] Get:2 http://ftpmaster.internal/ubuntu bionic/main armhf perl-modules-5.26 all 5.26.1-3 [2761 kB] Get:3 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main armhf libgcc1 armhf 1:8-20180110-1ubuntu1 [37.1 kB] Get:4 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main armhf libstdc++6 armhf 8-20180110-1ubuntu1 [349 kB] Get:5 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main armhf libgomp1 armhf 8-20180110-1ubuntu1 [66.6 kB] Get:6 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main armhf libcc1-0 armhf 8-20180110-1ubuntu1 [32.4 kB] Get:7 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main armhf libatomic1 armhf 8-20180110-1ubuntu1 [7068 B] Get:8 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main armhf cpp-8 armhf 8-20180110-1ubuntu1 [30.3 MB] Get:9 http://ftpmaster.internal/ubuntu bionic/main armhf libperl5.26 armhf 5.26.1-3 [2871 kB] Get:10 http://ftpmaster.internal/ubuntu bionic/main armhf perl armhf 5.26.1-3 [201 kB] Get:11 http://ftpmaster.internal/ubuntu bionic/main armhf perl-base armhf 5.26.1-3 [1289 kB] Get:12 http://ftpmaster.internal/ubuntu bionic/main armhf libc6-dev armhf 2.26-0ubuntu2 [1900 kB] Get:13 http://ftpmaster.internal/ubuntu bionic/main armhf libc-dev-bin armhf 2.26-0ubuntu2 [60.1 kB] Get:14 http://ftpmaster.internal/ubuntu bionic/main armhf linux-libc-dev armhf 4.13.0-25.29 [944 kB] Get:15 http://ftpmaster.internal/ubuntu bionic/main armhf libc6 armhf 2.26-0ubuntu2 [2212 kB] Get:16 http://ftpmaster.internal/ubuntu bionic/main armhf init-system-helpers all 1.51 [37.3 kB] Get:17 http://ftpmaster.internal/ubuntu bionic/main armhf base-files armhf 10ubuntu1 [55.9 kB] Get:18 http://ftpmaster.internal/ubuntu bionic/main armhf bsdutils armhf 1:2.30.2-0.1ubuntu1 [55.4 kB] Get:19 http://ftpmaster.internal/ubuntu bionic/main armhf coreutils armhf 8.26-3ubuntu4 [1111 kB] Get:20 http://ftpmaster.internal/ubuntu bionic/main armhf debianutils armhf 4.8.4 [84.5 kB] Get:21 http://ftpmaster.internal/ubuntu bionic/main armhf dpkg armhf 1.19.0.4ubuntu1 [1100 kB] Get:22 http://ftpmaster.internal/ubuntu bionic/main armhf e2fslibs armhf 1.43.8-1ubuntu1 [144 kB] Get:23 http://ftpmaster.internal/ubuntu bionic/main armhf e2fsprogs armhf 1.43.8-1ubuntu1 [479 kB] Get:24 http://ftpmaster.internal/ubuntu bionic/main armhf findutils armhf 4.6.0+git+20170828-2 [277 kB] Get:25 http://ftpmaster.internal/ubuntu bionic/main armhf libuuid1 armhf 2.30.2-0.1ubuntu1 [14.5 kB] Get:26 http://ftpmaster.internal/ubuntu bionic/main armhf libblkid1 armhf 2.30.2-0.1ubuntu1 [106 kB] Get:27 http://ftpmaster.internal/ubuntu bionic/main armhf libsmartcols1 armhf 2.30.2-0.1ubuntu1 [68.7 kB] Get:28 http://ftpmaster.internal/ubuntu bionic/main armhf libfdisk1 armhf 2.30.2-0.1ubuntu1 [144 kB] Get:29 http://ftpmaster.internal/ubuntu bionic/main armhf libpcre3 armhf 2:8.39-8 [209 kB] Get:30 http://ftpmaster.internal/ubuntu bionic/main armhf libselinux1 armhf 2.7-2 [59.1 kB] Get:31 http://ftpmaster.internal/ubuntu bionic/main armhf libmount1 armhf 2.30.2-0.1ubuntu1 [116 kB] Get:32 http://ftpmaster.internal/ubuntu bionic/main armhf fdisk armhf 2.30.2-0.1ubuntu1 [96.6 kB] Get:33 http://ftpmaster.internal/ubuntu bionic/main armhf util-linux armhf 2.30.2-0.1ubuntu1 [823 kB] Get:34 http://ftpmaster.internal/ubuntu bionic/main armhf base-passwd armhf 3.5.44 [45.9 kB] Get:35 http://ftpmaster.internal/ubuntu bionic/main armhf libc-bin armhf 2.26-0ubuntu2 [477 kB] Get:36 http://ftpmaster.internal/ubuntu bionic/main armhf sysvinit-utils armhf 2.88dsf-59.10ubuntu1 [17.2 kB] Get:37 http://ftpmaster.internal/ubuntu bionic/main armhf libudev1 armhf 235-3ubuntu3 [49.4 kB] Get:38 http://ftpmaster.internal/ubuntu bionic/main armhf libapt-pkg5.0 armhf 1.6~alpha5 [709 kB] Get:39 http://ftpmaster.internal/ubuntu bionic/main armhf debconf all 1.5.65 [124 kB] Get:40 http://ftpmaster.internal/ubuntu bionic/main armhf adduser all 3.116ubuntu1 [163 kB] Get:41 http://ftpmaster.internal/ubuntu bionic/main armhf libgpg-error0 armhf 1.27-5 [32.4 kB] Get:42 http://ftpmaster.internal/ubuntu bionic/main armhf libgcrypt20 armhf 1.8.1-4 [363 kB] Get:43 http://ftpmaster.internal/ubuntu bionic/main armhf gpgv armhf 2.1.15-1ubuntu8 [157 kB] Get:44 http://ftpmaster.internal/ubuntu bionic/main armhf libseccomp2 armhf 2.3.1-2.1ubuntu3 [29.9 kB] Get:45 http://ftpmaster.internal/ubuntu bionic/main armhf apt armhf 1.6~alpha5 [1104 kB] Get:46 http://ftpmaster.internal/ubuntu bionic/main armhf libapparmor1 armhf 2.11.0-2ubuntu18 [24.6 kB] Get:47 http://ftpmaster.internal/ubuntu bionic/main armhf libcap2 armhf 1:2.25-1.2 [11.7 kB] Get:48 http://ftpmaster.internal/ubuntu bionic/main armhf libidn11 armhf 1.33-2.1 [42.7 kB] Get:49 http://ftpmaster.internal/ubuntu bionic/main armhf libip4tc0 armhf 1.6.1-2ubuntu2 [17.8 kB] Get:50 http://ftpmaster.internal/ubuntu bionic/main armhf mount armhf 2.30.2-0.1ubuntu1 [104 kB] Get:51 http://ftpmaster.internal/ubuntu bionic/main armhf systemd armhf 235-3ubuntu3 [2679 kB] Get:52 http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic/main armhf cpp armhf 4:8-20121108-1ubuntu0.2 [42.2 kB] Get:53 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main armhf libasan5 armhf 8-20180110-1ubuntu1 [349 kB] Get:54 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main armhf libubsan1 armhf 8-20180110-1ubuntu1 [109 kB] Get:55 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main armhf libgcc-8-dev armhf 8-20180110-1ubuntu1 [629 kB] Get:56 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main armhf gcc-8 armhf 8-20180110-1ubuntu1 [30.1 MB] Get:57 http://ftpmaster.internal/ubuntu bionic/main armhf libsystemd0 armhf 235-3ubuntu3 [178 kB] Get:58 http://ftpmaster.internal/ubuntu bionic/main armhf init armhf 1.51 [5864 B] Get:59 http://ftpmaster.internal/ubuntu bionic/main armhf systemd-sysv armhf 235-3ubuntu3 [13.1 kB] Get:60 http://ftpmaster.internal/ubuntu bionic/main armhf libcap-ng0 armhf 0.7.7-3.1 [9816 B] Get:61 http://ftpmaster.internal/ubuntu bionic/main armhf libcomerr2 armhf 1.43.8-1ubuntu1 [10.4 kB] Get:62 http://ftpmaster.internal/ubuntu bionic/main armhf libsemanage-common all 2.7-2 [6916 B] Get:63 http://ftpmaster.internal/ubuntu bionic/main armhf libsemanage1 armhf 2.7-2 [72.3 kB] Get:64 http://ftpmaster.internal/ubuntu bionic/main armhf libss2 armhf 1.43.8-1ubuntu1 [9368 B] Get:65 http://ftpmaster.internal/ubuntu bionic/main armhf libnettle6 armhf 3.3-2 [106 kB] Get:66 http://ftpmaster.internal/ubuntu bionic/main armhf libhogweed4 armhf 3.3-2 [126 kB] Get:67 http://ftpmaster.internal/ubuntu bionic/main armhf libp11-kit0 armhf 0.23.9-2 [162 kB] Get:68 http://ftpmaster.internal/ubuntu bionic/main armhf libtasn1-6 armhf 4.12-3 [31.2 kB] Get:69 http://ftpmaster.internal/ubuntu bionic/main armhf g++-7 armhf 7.2.0-18ubuntu2 [6034 kB] Get:70 http://ftpmaster.internal/ubuntu bionic/main armhf gcc-7 armhf 7.2.0-18ubuntu2 [5925 kB] Get:71 http://ftpmaster.internal/ubuntu bionic/main armhf cpp-7 armhf 7.2.0-18ubuntu2 [5289 kB] Get:72 http://ftpmaster.internal/ubuntu bionic/main armhf libbinutils armhf 2.29.1-12ubuntu1 [307 kB] Get:73 http://ftpmaster.internal/ubuntu bionic/main armhf binutils armhf 2.29.1-12ubuntu1 [3372 B] Get:74 http://ftpmaster.internal/ubuntu bionic/main armhf binutils-common armhf 2.29.1-12ubuntu1 [190 kB] Get:75 http://ftpmaster.internal/ubuntu bionic/main armhf binutils-arm-linux-gnueabihf armhf 2.29.1-12ubuntu1 [2188 kB] Get:76 http://ftpmaster.internal/ubuntu bionic/main armhf libasan4 armhf 7.2.0-18ubuntu2 [328 kB] Get:77 http://ftpmaster.internal/ubuntu bionic/main armhf libubsan0 armhf 7.2.0-18ubuntu2 [108 kB] Get:78 http://ftpmaster.internal/ubuntu bionic/main armhf libcilkrts5 armhf 7.2.0-18ubuntu2 [36.0 kB] Get:79 http://ftpmaster.internal/ubuntu bionic/main armhf libstdc++-7-dev armhf 7.2.0-18ubuntu2 [1529 kB] Get:80 http://ftpmaster.internal/ubuntu bionic/main armhf libgcc-7-dev armhf 7.2.0-18ubuntu2 [709 kB] Get:81 http://ftpmaster.internal/ubuntu bionic/main armhf gcc-7-base armhf 7.2.0-18ubuntu2 [19.1 kB] Get:82 http://ftpmaster.internal/ubuntu bionic/main armhf lsb-base all 9.20170808ubuntu1 [12.5 kB] Get:83 http://ftpmaster.internal/ubuntu bionic/main armhf sensible-utils all 0.0.11 [14.8 kB] Get:84 http://ftpmaster.internal/ubuntu bionic/main armhf libassuan0 armhf 2.5.1-1 [28.1 kB] Get:85 http://ftpmaster.internal/ubuntu bionic/main armhf pinentry-curses armhf 1.0.0-3 [30.4 kB] Get:86 http://ftpmaster.internal/ubuntu bionic/main armhf libnpth0 armhf 1.5-3 [6632 B] Get:87 http://ftpmaster.internal/ubuntu bionic/main armhf gnupg armhf 2.1.15-1ubuntu8 [711 kB] Get:88 http://ftpmaster.internal/ubuntu bionic/main armhf gnupg-agent armhf 2.1.15-1ubuntu8 [211 kB] Get:89 http://ftpmaster.internal/ubuntu bionic/main armhf libsqlite3-0 armhf 3.21.0-1 [417 kB] Get:90 http://ftpmaster.internal/ubuntu bionic/main armhf libroken18-heimdal armhf 7.5.0+dfsg-1 [34.1 kB] Get:91 http://ftpmaster.internal/ubuntu bionic/main armhf libasn1-8-heimdal armhf 7.5.0+dfsg-1 [136 kB] Get:92 http://ftpmaster.internal/ubuntu bionic/main armhf libheimbase1-heimdal armhf 7.5.0+dfsg-1 [24.1 kB] Get:93 http://ftpmaster.internal/ubuntu bionic/main armhf libhcrypto4-heimdal armhf 7.5.0+dfsg-1 [76.5 kB] Get:94 http://ftpmaster.internal/ubuntu bionic/main armhf libwind0-heimdal armhf 7.5.0+dfsg-1 [47.2 kB] Get:95 http://ftpmaster.internal/ubuntu bionic/main armhf libhx509-5-heimdal armhf 7.5.0+dfsg-1 [87.9 kB] Get:96 http://ftpmaster.internal/ubuntu bionic/main armhf libkrb5-26-heimdal armhf 7.5.0+dfsg-1 [168 kB] Get:97 http://ftpmaster.internal/ubuntu bionic/main armhf libheimntlm0-heimdal armhf 7.5.0+dfsg-1 [13.1 kB] Get:98 http://ftpmaster.internal/ubuntu bionic/main armhf libgssapi3-heimdal armhf 7.5.0+dfsg-1 [78.8 kB] Get:99 http://ftpmaster.internal/ubuntu bionic/main armhf libssl1.0.0 armhf 1.0.2g-1ubuntu14 [706 kB] Get:100 http://ftpmaster.internal/ubuntu bionic/main armhf multiarch-support armhf 2.26-0ubuntu2 [6832 B] Get:101 http://ftpmaster.internal/ubuntu bionic/main armhf openssl armhf 1.0.2g-1ubuntu14 [477 kB] Get:102 http://ftpmaster.internal/ubuntu bionic/main armhf tzdata all 2017c-1 [188 kB] Get:103 http://ftpmaster.internal/ubuntu bionic/main armhf libidn2-0 armhf 2.0.4-1 [88.2 kB] Get:104 http://ftpmaster.internal/ubuntu bionic/main armhf libkeyutils1 armhf 1.5.9-9.2ubuntu1 [8380 B] Get:105 http://ftpmaster.internal/ubuntu bionic/main armhf libpng16-16 armhf 1.6.34-1 [159 kB] Get:106 http://ftpmaster.internal/ubuntu bionic/universe armhf apt-transport-https all 1.6~alpha5 [1692 B] Get:107 http://ftpmaster.internal/ubuntu bionic/main armhf dpkg-dev all 1.19.0.4ubuntu1 [607 kB] Get:108 http://ftpmaster.internal/ubuntu bionic/main armhf libdpkg-perl all 1.19.0.4ubuntu1 [211 kB] Get:109 http://ftpmaster.internal/ubuntu bionic/main armhf build-essential armhf 12.4ubuntu1 [4752 B] Get:110 http://ftpmaster.internal/ubuntu bionic/main armhf libnghttp2-14 armhf 1.29.0-1 [67.1 kB] Get:111 http://ftpmaster.internal/ubuntu bionic/main armhf libpsl5 armhf 0.19.1-4 [39.9 kB] Get:112 http://ftpmaster.internal/ubuntu bionic/main armhf libcurl3-gnutls armhf 7.57.0-1ubuntu1 [180 kB] Get:113 http://ftpmaster.internal/ubuntu bionic/main armhf liblockfile-bin armhf 1.14-1.1 [10.9 kB] Get:114 http://ftpmaster.internal/ubuntu bionic/main armhf liblockfile1 armhf 1.14-1.1 [5784 B] Get:115 http://ftpmaster.internal/ubuntu bionic/main armhf optipng armhf 0.7.6-1.1 [80.6 kB] Get:116 http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic/main armhf gcc armhf 4:8-20121108-1ubuntu0.2 [5180 B] Get:117 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main armhf libstdc++-8-dev armhf 8-20180110-1ubuntu1 [1573 kB] Get:118 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main armhf g++-8 armhf 8-20180110-1ubuntu1 [32.7 MB] Get:119 http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic/main armhf g++ armhf 4:8-20121108-1ubuntu0.2 [1540 B] debconf: delaying package configuration, since apt-utils is not installed Fetched 148 MB in 5s (26.9 MB/s) (Reading database ... 12457 files and directories currently installed.) Preparing to unpack .../perl_5.26.1-3_armhf.deb ... Unpacking perl (5.26.1-3) over (5.26.0-8ubuntu1) ... Preparing to unpack .../perl-modules-5.26_5.26.1-3_all.deb ... Unpacking perl-modules-5.26 (5.26.1-3) over (5.26.0-8ubuntu1) ... Preparing to unpack .../libperl5.26_5.26.1-3_armhf.deb ... Unpacking libperl5.26:armhf (5.26.1-3) over (5.26.0-8ubuntu1) ... Preparing to unpack .../perl-base_5.26.1-3_armhf.deb ... Unpacking perl-base (5.26.1-3) over (5.26.0-8ubuntu1) ... Setting up perl-base (5.26.1-3) ... (Reading database ... 12457 files and directories currently installed.) Preparing to unpack .../libc6-dev_2.26-0ubuntu2_armhf.deb ... Unpacking libc6-dev:armhf (2.26-0ubuntu2) over (2.26-0ubuntu1) ... Preparing to unpack .../libc-dev-bin_2.26-0ubuntu2_armhf.deb ... Unpacking libc-dev-bin (2.26-0ubuntu2) over (2.26-0ubuntu1) ... Preparing to unpack .../linux-libc-dev_4.13.0-25.29_armhf.deb ... Unpacking linux-libc-dev:armhf (4.13.0-25.29) over (4.13.0-11.12) ... Selecting previously unselected package gcc-8-base:armhf. Preparing to unpack .../gcc-8-base_8-20180110-1ubuntu1_armhf.deb ... Unpacking gcc-8-base:armhf (8-20180110-1ubuntu1) ... Setting up gcc-8-base:armhf (8-20180110-1ubuntu1) ... (Reading database ... 12464 files and directories currently installed.) Preparing to unpack .../libgcc1_1%3a8-20180110-1ubuntu1_armhf.deb ... Unpacking libgcc1:armhf (1:8-20180110-1ubuntu1) over (1:7.2.0-6ubuntu1) ... Setting up libgcc1:armhf (1:8-20180110-1ubuntu1) ... (Reading database ... 12464 files and directories currently installed.) Preparing to unpack .../libc6_2.26-0ubuntu2_armhf.deb ... Unpacking libc6:armhf (2.26-0ubuntu2) over (2.26-0ubuntu1) ... Setting up libc6:armhf (2.26-0ubuntu2) ... (Reading database ... 12464 files and directories currently installed.) Preparing to unpack .../init-system-helpers_1.51_all.deb ... Unpacking init-system-helpers (1.51) over (1.49ubuntu1) ... Setting up init-system-helpers (1.51) ... (Reading database ... 12464 files and directories currently installed.) Preparing to unpack .../base-files_10ubuntu1_armhf.deb ... Unpacking base-files (10ubuntu1) over (9.6ubuntu101) ... Setting up base-files (10ubuntu1) ... Installing new version of config file /etc/debian_version ... Installing new version of config file /etc/issue ... Installing new version of config file /etc/issue.net ... Installing new version of config file /etc/lsb-release ... (Reading database ... 12464 files and directories currently installed.) Preparing to unpack .../bsdutils_1%3a2.30.2-0.1ubuntu1_armhf.deb ... Unpacking bsdutils (1:2.30.2-0.1ubuntu1) over (1:2.30.1-0ubuntu4) ... Setting up bsdutils (1:2.30.2-0.1ubuntu1) ... (Reading database ... 12464 files and directories currently installed.) Preparing to unpack .../coreutils_8.26-3ubuntu4_armhf.deb ... Unpacking coreutils (8.26-3ubuntu4) over (8.26-3ubuntu3) ... Setting up coreutils (8.26-3ubuntu4) ... (Reading database ... 12464 files and directories currently installed.) Preparing to unpack .../debianutils_4.8.4_armhf.deb ... Unpacking debianutils (4.8.4) over (4.8.2) ... Setting up debianutils (4.8.4) ... (Reading database ... 12464 files and directories currently installed.) Preparing to unpack .../dpkg_1.19.0.4ubuntu1_armhf.deb ... Unpacking dpkg (1.19.0.4ubuntu1) over (1.18.24ubuntu1) ... Setting up dpkg (1.19.0.4ubuntu1) ... Installing new version of config file /etc/alternatives/README ... Installing new version of config file /etc/cron.daily/dpkg ... Installing new version of config file /etc/logrotate.d/dpkg ... (Reading database ... 12466 files and directories currently installed.) Preparing to unpack .../e2fslibs_1.43.8-1ubuntu1_armhf.deb ... Unpacking e2fslibs:armhf (1.43.8-1ubuntu1) over (1.43.5-1) ... Setting up e2fslibs:armhf (1.43.8-1ubuntu1) ... (Reading database ... 12466 files and directories currently installed.) Preparing to unpack .../e2fsprogs_1.43.8-1ubuntu1_armhf.deb ... Unpacking e2fsprogs (1.43.8-1ubuntu1) over (1.43.5-1) ... Setting up e2fsprogs (1.43.8-1ubuntu1) ... Installing new version of config file /etc/mke2fs.conf ... (Reading database ... 12466 files and directories currently installed.) Preparing to unpack .../findutils_4.6.0+git+20170828-2_armhf.deb ... Unpacking findutils (4.6.0+git+20170828-2) over (4.6.0+git+20170729-2) ... Setting up findutils (4.6.0+git+20170828-2) ... (Reading database ... 12466 files and directories currently installed.) Preparing to unpack .../libuuid1_2.30.2-0.1ubuntu1_armhf.deb ... Unpacking libuuid1:armhf (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up libuuid1:armhf (2.30.2-0.1ubuntu1) ... (Reading database ... 12466 files and directories currently installed.) Preparing to unpack .../libblkid1_2.30.2-0.1ubuntu1_armhf.deb ... Unpacking libblkid1:armhf (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up libblkid1:armhf (2.30.2-0.1ubuntu1) ... (Reading database ... 12466 files and directories currently installed.) Preparing to unpack .../libsmartcols1_2.30.2-0.1ubuntu1_armhf.deb ... Unpacking libsmartcols1:armhf (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up libsmartcols1:armhf (2.30.2-0.1ubuntu1) ... (Reading database ... 12466 files and directories currently installed.) Preparing to unpack .../libfdisk1_2.30.2-0.1ubuntu1_armhf.deb ... Unpacking libfdisk1:armhf (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up libfdisk1:armhf (2.30.2-0.1ubuntu1) ... (Reading database ... 12466 files and directories currently installed.) Preparing to unpack .../libpcre3_2%3a8.39-8_armhf.deb ... Unpacking libpcre3:armhf (2:8.39-8) over (2:8.39-4) ... Setting up libpcre3:armhf (2:8.39-8) ... (Reading database ... 12466 files and directories currently installed.) Preparing to unpack .../libselinux1_2.7-2_armhf.deb ... Unpacking libselinux1:armhf (2.7-2) over (2.7-1) ... Setting up libselinux1:armhf (2.7-2) ... (Reading database ... 12466 files and directories currently installed.) Preparing to unpack .../libmount1_2.30.2-0.1ubuntu1_armhf.deb ... Unpacking libmount1:armhf (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up libmount1:armhf (2.30.2-0.1ubuntu1) ... (Reading database ... 12466 files and directories currently installed.) Preparing to unpack .../fdisk_2.30.2-0.1ubuntu1_armhf.deb ... Unpacking fdisk (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up fdisk (2.30.2-0.1ubuntu1) ... (Reading database ... 12466 files and directories currently installed.) Preparing to unpack .../util-linux_2.30.2-0.1ubuntu1_armhf.deb ... Unpacking util-linux (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up util-linux (2.30.2-0.1ubuntu1) ... (Reading database ... 12467 files and directories currently installed.) Preparing to unpack .../base-passwd_3.5.44_armhf.deb ... Unpacking base-passwd (3.5.44) over (3.5.43) ... Setting up base-passwd (3.5.44) ... (Reading database ... 12467 files and directories currently installed.) Preparing to unpack .../libc-bin_2.26-0ubuntu2_armhf.deb ... Unpacking libc-bin (2.26-0ubuntu2) over (2.26-0ubuntu1) ... Setting up libc-bin (2.26-0ubuntu2) ... (Reading database ... 12467 files and directories currently installed.) Preparing to unpack .../sysvinit-utils_2.88dsf-59.10ubuntu1_armhf.deb ... Unpacking sysvinit-utils (2.88dsf-59.10ubuntu1) over (2.88dsf-59.8git1) ... Setting up sysvinit-utils (2.88dsf-59.10ubuntu1) ... (Reading database ... 12467 files and directories currently installed.) Preparing to unpack .../libstdc++6_8-20180110-1ubuntu1_armhf.deb ... Unpacking libstdc++6:armhf (8-20180110-1ubuntu1) over (7.2.0-6ubuntu1) ... Setting up libstdc++6:armhf (8-20180110-1ubuntu1) ... (Reading database ... 12467 files and directories currently installed.) Preparing to unpack .../libudev1_235-3ubuntu3_armhf.deb ... Unpacking libudev1:armhf (235-3ubuntu3) over (234-2ubuntu10) ... Setting up libudev1:armhf (235-3ubuntu3) ... (Reading database ... 12467 files and directories currently installed.) Preparing to unpack .../libapt-pkg5.0_1.6~alpha5_armhf.deb ... Unpacking libapt-pkg5.0:armhf (1.6~alpha5) over (1.5~rc4) ... Setting up libapt-pkg5.0:armhf (1.6~alpha5) ... (Reading database ... 12467 files and directories currently installed.) Preparing to unpack .../debconf_1.5.65_all.deb ... Unpacking debconf (1.5.65) over (1.5.63) ... Setting up debconf (1.5.65) ... (Reading database ... 12461 files and directories currently installed.) Preparing to unpack .../adduser_3.116ubuntu1_all.deb ... Unpacking adduser (3.116ubuntu1) over (3.113+nmu3ubuntu5) ... Setting up adduser (3.116ubuntu1) ... (Reading database ... 12459 files and directories currently installed.) Preparing to unpack .../libgpg-error0_1.27-5_armhf.deb ... Unpacking libgpg-error0:armhf (1.27-5) over (1.27-3) ... Setting up libgpg-error0:armhf (1.27-5) ... (Reading database ... 12459 files and directories currently installed.) Preparing to unpack .../libgcrypt20_1.8.1-4_armhf.deb ... Unpacking libgcrypt20:armhf (1.8.1-4) over (1.7.8-2ubuntu1) ... Setting up libgcrypt20:armhf (1.8.1-4) ... (Reading database ... 12459 files and directories currently installed.) Preparing to unpack .../gpgv_2.1.15-1ubuntu8_armhf.deb ... Unpacking gpgv (2.1.15-1ubuntu8) over (2.1.15-1ubuntu7) ... Setting up gpgv (2.1.15-1ubuntu8) ... (Reading database ... 12459 files and directories currently installed.) Preparing to unpack .../libseccomp2_2.3.1-2.1ubuntu3_armhf.deb ... Unpacking libseccomp2:armhf (2.3.1-2.1ubuntu3) over (2.3.1-2.1ubuntu2) ... Setting up libseccomp2:armhf (2.3.1-2.1ubuntu3) ... (Reading database ... 12459 files and directories currently installed.) Preparing to unpack .../apt_1.6~alpha5_armhf.deb ... Unpacking apt (1.6~alpha5) over (1.5~rc4) ... Setting up apt (1.6~alpha5) ... (Reading database ... 12455 files and directories currently installed.) Preparing to unpack .../libapparmor1_2.11.0-2ubuntu18_armhf.deb ... Unpacking libapparmor1:armhf (2.11.0-2ubuntu18) over (2.11.0-2ubuntu17) ... Preparing to unpack .../libcap2_1%3a2.25-1.2_armhf.deb ... Unpacking libcap2:armhf (1:2.25-1.2) over (1:2.25-1) ... Preparing to unpack .../libidn11_1.33-2.1_armhf.deb ... Unpacking libidn11:armhf (1.33-2.1) over (1.33-2) ... Setting up libidn11:armhf (1.33-2.1) ... (Reading database ... 12455 files and directories currently installed.) Preparing to unpack .../libip4tc0_1.6.1-2ubuntu2_armhf.deb ... Unpacking libip4tc0:armhf (1.6.1-2ubuntu2) over (1.6.1-2ubuntu1) ... Preparing to unpack .../mount_2.30.2-0.1ubuntu1_armhf.deb ... Unpacking mount (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Preparing to unpack .../systemd_235-3ubuntu3_armhf.deb ... Unpacking systemd (235-3ubuntu3) over (234-2ubuntu10) ... Preparing to unpack .../libsystemd0_235-3ubuntu3_armhf.deb ... Unpacking libsystemd0:armhf (235-3ubuntu3) over (234-2ubuntu10) ... Setting up libsystemd0:armhf (235-3ubuntu3) ... (Reading database ... 12461 files and directories currently installed.) Preparing to unpack .../archives/init_1.51_armhf.deb ... Unpacking init (1.51) over (1.49ubuntu1) ... Setting up libapparmor1:armhf (2.11.0-2ubuntu18) ... Setting up libcap2:armhf (1:2.25-1.2) ... Setting up libip4tc0:armhf (1.6.1-2ubuntu2) ... Setting up mount (2.30.2-0.1ubuntu1) ... Setting up systemd (235-3ubuntu3) ... Installing new version of config file /etc/systemd/journald.conf ... Installing new version of config file /etc/systemd/system.conf ... Removing empty /etc/rc.local Removed /etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service. Removing user `systemd-bus-proxy' ... Warning: group `systemd-bus-proxy' has no more members. Done. (Reading database ... 12461 files and directories currently installed.) Preparing to unpack .../systemd-sysv_235-3ubuntu3_armhf.deb ... Unpacking systemd-sysv (235-3ubuntu3) over (234-2ubuntu10) ... Preparing to unpack .../libcap-ng0_0.7.7-3.1_armhf.deb ... Unpacking libcap-ng0:armhf (0.7.7-3.1) over (0.7.7-3build1) ... Setting up libcap-ng0:armhf (0.7.7-3.1) ... (Reading database ... 12461 files and directories currently installed.) Preparing to unpack .../libcomerr2_1.43.8-1ubuntu1_armhf.deb ... Unpacking libcomerr2:armhf (1.43.8-1ubuntu1) over (1.43.5-1) ... Setting up libcomerr2:armhf (1.43.8-1ubuntu1) ... (Reading database ... 12461 files and directories currently installed.) Preparing to unpack .../libsemanage-common_2.7-2_all.deb ... Unpacking libsemanage-common (2.7-2) over (2.7-1) ... Setting up libsemanage-common (2.7-2) ... (Reading database ... 12461 files and directories currently installed.) Preparing to unpack .../libsemanage1_2.7-2_armhf.deb ... Unpacking libsemanage1:armhf (2.7-2) over (2.7-1) ... Setting up libsemanage1:armhf (2.7-2) ... (Reading database ... 12461 files and directories currently installed.) Preparing to unpack .../libss2_1.43.8-1ubuntu1_armhf.deb ... Unpacking libss2:armhf (1.43.8-1ubuntu1) over (1.43.5-1) ... Setting up libss2:armhf (1.43.8-1ubuntu1) ... (Reading database ... 12461 files and directories currently installed.) Preparing to unpack .../libnettle6_3.3-2_armhf.deb ... Unpacking libnettle6:armhf (3.3-2) over (3.3-1) ... Setting up libnettle6:armhf (3.3-2) ... (Reading database ... 12461 files and directories currently installed.) Preparing to unpack .../libhogweed4_3.3-2_armhf.deb ... Unpacking libhogweed4:armhf (3.3-2) over (3.3-1) ... Setting up libhogweed4:armhf (3.3-2) ... (Reading database ... 12461 files and directories currently installed.) Preparing to unpack .../libp11-kit0_0.23.9-2_armhf.deb ... Unpacking libp11-kit0:armhf (0.23.9-2) over (0.23.7-3) ... Setting up libp11-kit0:armhf (0.23.9-2) ... (Reading database ... 12461 files and directories currently installed.) Preparing to unpack .../libtasn1-6_4.12-3_armhf.deb ... Unpacking libtasn1-6:armhf (4.12-3) over (4.12-2.1) ... Setting up libtasn1-6:armhf (4.12-3) ... (Reading database ... 12461 files and directories currently installed.) Preparing to unpack .../00-libgomp1_8-20180110-1ubuntu1_armhf.deb ... Unpacking libgomp1:armhf (8-20180110-1ubuntu1) over (7.2.0-6ubuntu1) ... Preparing to unpack .../01-g++-7_7.2.0-18ubuntu2_armhf.deb ... Unpacking g++-7 (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../02-gcc-7_7.2.0-18ubuntu2_armhf.deb ... Unpacking gcc-7 (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../03-cpp-7_7.2.0-18ubuntu2_armhf.deb ... Unpacking cpp-7 (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../04-libcc1-0_8-20180110-1ubuntu1_armhf.deb ... Unpacking libcc1-0:armhf (8-20180110-1ubuntu1) over (7.2.0-6ubuntu1) ... Preparing to unpack .../05-libbinutils_2.29.1-12ubuntu1_armhf.deb ... Unpacking libbinutils:armhf (2.29.1-12ubuntu1) over (2.29.1-1ubuntu1) ... Preparing to unpack .../06-binutils_2.29.1-12ubuntu1_armhf.deb ... Unpacking binutils (2.29.1-12ubuntu1) over (2.29.1-1ubuntu1) ... Preparing to unpack .../07-binutils-common_2.29.1-12ubuntu1_armhf.deb ... Unpacking binutils-common:armhf (2.29.1-12ubuntu1) over (2.29.1-1ubuntu1) ... Preparing to unpack .../08-binutils-arm-linux-gnueabihf_2.29.1-12ubuntu1_armhf.deb ... Unpacking binutils-arm-linux-gnueabihf (2.29.1-12ubuntu1) over (2.29.1-1ubuntu1) ... Preparing to unpack .../09-libatomic1_8-20180110-1ubuntu1_armhf.deb ... Unpacking libatomic1:armhf (8-20180110-1ubuntu1) over (7.2.0-6ubuntu1) ... Preparing to unpack .../10-libasan4_7.2.0-18ubuntu2_armhf.deb ... Unpacking libasan4:armhf (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../11-libubsan0_7.2.0-18ubuntu2_armhf.deb ... Unpacking libubsan0:armhf (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../12-libcilkrts5_7.2.0-18ubuntu2_armhf.deb ... Unpacking libcilkrts5:armhf (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../13-libstdc++-7-dev_7.2.0-18ubuntu2_armhf.deb ... Unpacking libstdc++-7-dev:armhf (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../14-libgcc-7-dev_7.2.0-18ubuntu2_armhf.deb ... Unpacking libgcc-7-dev:armhf (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../15-gcc-7-base_7.2.0-18ubuntu2_armhf.deb ... Unpacking gcc-7-base:armhf (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../16-lsb-base_9.20170808ubuntu1_all.deb ... Unpacking lsb-base (9.20170808ubuntu1) over (9.20160110ubuntu5) ... Preparing to unpack .../17-sensible-utils_0.0.11_all.deb ... Unpacking sensible-utils (0.0.11) over (0.0.10) ... Preparing to unpack .../18-libassuan0_2.5.1-1_armhf.deb ... Unpacking libassuan0:armhf (2.5.1-1) over (2.4.3-3) ... Preparing to unpack .../19-pinentry-curses_1.0.0-3_armhf.deb ... Unpacking pinentry-curses (1.0.0-3) over (1.0.0-2) ... Preparing to unpack .../20-libnpth0_1.5-3_armhf.deb ... Unpacking libnpth0:armhf (1.5-3) over (1.5-2) ... Preparing to unpack .../21-gnupg_2.1.15-1ubuntu8_armhf.deb ... Unpacking gnupg (2.1.15-1ubuntu8) over (2.1.15-1ubuntu7) ... Preparing to unpack .../22-gnupg-agent_2.1.15-1ubuntu8_armhf.deb ... Unpacking gnupg-agent (2.1.15-1ubuntu8) over (2.1.15-1ubuntu7) ... Preparing to unpack .../23-libsqlite3-0_3.21.0-1_armhf.deb ... Unpacking libsqlite3-0:armhf (3.21.0-1) over (3.19.3-3) ... Preparing to unpack .../24-libroken18-heimdal_7.5.0+dfsg-1_armhf.deb ... Unpacking libroken18-heimdal:armhf (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../25-libasn1-8-heimdal_7.5.0+dfsg-1_armhf.deb ... Unpacking libasn1-8-heimdal:armhf (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../26-libheimbase1-heimdal_7.5.0+dfsg-1_armhf.deb ... Unpacking libheimbase1-heimdal:armhf (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../27-libhcrypto4-heimdal_7.5.0+dfsg-1_armhf.deb ... Unpacking libhcrypto4-heimdal:armhf (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../28-libwind0-heimdal_7.5.0+dfsg-1_armhf.deb ... Unpacking libwind0-heimdal:armhf (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../29-libhx509-5-heimdal_7.5.0+dfsg-1_armhf.deb ... Unpacking libhx509-5-heimdal:armhf (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../30-libkrb5-26-heimdal_7.5.0+dfsg-1_armhf.deb ... Unpacking libkrb5-26-heimdal:armhf (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../31-libheimntlm0-heimdal_7.5.0+dfsg-1_armhf.deb ... Unpacking libheimntlm0-heimdal:armhf (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../32-libgssapi3-heimdal_7.5.0+dfsg-1_armhf.deb ... Unpacking libgssapi3-heimdal:armhf (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../33-libssl1.0.0_1.0.2g-1ubuntu14_armhf.deb ... Unpacking libssl1.0.0:armhf (1.0.2g-1ubuntu14) over (1.0.2g-1ubuntu13) ... Preparing to unpack .../34-multiarch-support_2.26-0ubuntu2_armhf.deb ... Unpacking multiarch-support (2.26-0ubuntu2) over (2.26-0ubuntu1) ... Preparing to unpack .../35-openssl_1.0.2g-1ubuntu14_armhf.deb ... Unpacking openssl (1.0.2g-1ubuntu14) over (1.0.2g-1ubuntu13) ... Preparing to unpack .../36-tzdata_2017c-1_all.deb ... Unpacking tzdata (2017c-1) over (2017b-2) ... Preparing to unpack .../37-libidn2-0_2.0.4-1_armhf.deb ... Unpacking libidn2-0:armhf (2.0.4-1) over (2.0.2-5) ... Preparing to unpack .../38-libkeyutils1_1.5.9-9.2ubuntu1_armhf.deb ... Unpacking libkeyutils1:armhf (1.5.9-9.2ubuntu1) over (1.5.9-9ubuntu1) ... Preparing to unpack .../39-libpng16-16_1.6.34-1_armhf.deb ... Unpacking libpng16-16:armhf (1.6.34-1) over (1.6.32-2) ... Preparing to unpack .../40-apt-transport-https_1.6~alpha5_all.deb ... Unpacking apt-transport-https (1.6~alpha5) over (1.5~rc4) ... Selecting previously unselected package cpp-8. Preparing to unpack .../41-cpp-8_8-20180110-1ubuntu1_armhf.deb ... Unpacking cpp-8 (8-20180110-1ubuntu1) ... Preparing to unpack .../42-cpp_4%3a8-20121108-1ubuntu0.2_armhf.deb ... Unpacking cpp (4:8-20121108-1ubuntu0.2) over (4:7.2.0-1ubuntu1) ... Selecting previously unselected package libasan5:armhf. Preparing to unpack .../43-libasan5_8-20180110-1ubuntu1_armhf.deb ... Unpacking libasan5:armhf (8-20180110-1ubuntu1) ... Selecting previously unselected package libubsan1:armhf. Preparing to unpack .../44-libubsan1_8-20180110-1ubuntu1_armhf.deb ... Unpacking libubsan1:armhf (8-20180110-1ubuntu1) ... Selecting previously unselected package libgcc-8-dev:armhf. Preparing to unpack .../45-libgcc-8-dev_8-20180110-1ubuntu1_armhf.deb ... Unpacking libgcc-8-dev:armhf (8-20180110-1ubuntu1) ... Selecting previously unselected package gcc-8. Preparing to unpack .../46-gcc-8_8-20180110-1ubuntu1_armhf.deb ... Unpacking gcc-8 (8-20180110-1ubuntu1) ... Preparing to unpack .../47-gcc_4%3a8-20121108-1ubuntu0.2_armhf.deb ... Unpacking gcc (4:8-20121108-1ubuntu0.2) over (4:7.2.0-1ubuntu1) ... Selecting previously unselected package libstdc++-8-dev:armhf. Preparing to unpack .../48-libstdc++-8-dev_8-20180110-1ubuntu1_armhf.deb ... Unpacking libstdc++-8-dev:armhf (8-20180110-1ubuntu1) ... Selecting previously unselected package g++-8. Preparing to unpack .../49-g++-8_8-20180110-1ubuntu1_armhf.deb ... Unpacking g++-8 (8-20180110-1ubuntu1) ... Preparing to unpack .../50-g++_4%3a8-20121108-1ubuntu0.2_armhf.deb ... Unpacking g++ (4:8-20121108-1ubuntu0.2) over (4:7.2.0-1ubuntu1) ... Preparing to unpack .../51-dpkg-dev_1.19.0.4ubuntu1_all.deb ... Unpacking dpkg-dev (1.19.0.4ubuntu1) over (1.18.24ubuntu1) ... Preparing to unpack .../52-libdpkg-perl_1.19.0.4ubuntu1_all.deb ... Unpacking libdpkg-perl (1.19.0.4ubuntu1) over (1.18.24ubuntu1) ... Preparing to unpack .../53-build-essential_12.4ubuntu1_armhf.deb ... Unpacking build-essential (12.4ubuntu1) over (12.1ubuntu2) ... Selecting previously unselected package libnghttp2-14:armhf. Preparing to unpack .../54-libnghttp2-14_1.29.0-1_armhf.deb ... Unpacking libnghttp2-14:armhf (1.29.0-1) ... Preparing to unpack .../55-libpsl5_0.19.1-4_armhf.deb ... Unpacking libpsl5:armhf (0.19.1-4) over (0.18.0-2) ... Preparing to unpack .../56-libcurl3-gnutls_7.57.0-1ubuntu1_armhf.deb ... Unpacking libcurl3-gnutls:armhf (7.57.0-1ubuntu1) over (7.55.1-1ubuntu1) ... Preparing to unpack .../57-liblockfile-bin_1.14-1.1_armhf.deb ... Unpacking liblockfile-bin (1.14-1.1) over (1.14-1) ... Preparing to unpack .../58-liblockfile1_1.14-1.1_armhf.deb ... Unpacking liblockfile1:armhf (1.14-1.1) over (1.14-1) ... Preparing to unpack .../59-optipng_0.7.6-1.1_armhf.deb ... Unpacking optipng (0.7.6-1.1) over (0.7.6-1build1) ... Setting up libnpth0:armhf (1.5-3) ... Setting up cpp-8 (8-20180110-1ubuntu1) ... Setting up libgomp1:armhf (8-20180110-1ubuntu1) ... Setting up libatomic1:armhf (8-20180110-1ubuntu1) ... Setting up cpp (4:8-20121108-1ubuntu0.2) ... Setting up liblockfile-bin (1.14-1.1) ... Setting up libcc1-0:armhf (8-20180110-1ubuntu1) ... Setting up apt-transport-https (1.6~alpha5) ... Setting up libidn2-0:armhf (2.0.4-1) ... Setting up libssl1.0.0:armhf (1.0.2g-1ubuntu14) ... Setting up libnghttp2-14:armhf (1.29.0-1) ... Setting up libpng16-16:armhf (1.6.34-1) ... Setting up libpsl5:armhf (0.19.1-4) ... Setting up multiarch-support (2.26-0ubuntu2) ... Setting up tzdata (2017c-1) ... Current default time zone: 'Etc/UTC' Local time is now: Mon Jan 15 10:24:28 UTC 2018. Universal Time is now: Mon Jan 15 10:24:28 UTC 2018. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up systemd-sysv (235-3ubuntu3) ... Setting up liblockfile1:armhf (1.14-1.1) ... Setting up linux-libc-dev:armhf (4.13.0-25.29) ... Setting up libroken18-heimdal:armhf (7.5.0+dfsg-1) ... Setting up perl-modules-5.26 (5.26.1-3) ... Setting up optipng (0.7.6-1.1) ... Setting up lsb-base (9.20170808ubuntu1) ... Setting up gcc-7-base:armhf (7.2.0-18ubuntu2) ... Setting up binutils-common:armhf (2.29.1-12ubuntu1) ... Setting up sensible-utils (0.0.11) ... Processing triggers for libc-bin (2.26-0ubuntu2) ... Setting up libperl5.26:armhf (5.26.1-3) ... Setting up libheimbase1-heimdal:armhf (7.5.0+dfsg-1) ... Setting up openssl (1.0.2g-1ubuntu14) ... Setting up libsqlite3-0:armhf (3.21.0-1) ... Setting up libc-dev-bin (2.26-0ubuntu2) ... Setting up libkeyutils1:armhf (1.5.9-9.2ubuntu1) ... Setting up libc6-dev:armhf (2.26-0ubuntu2) ... Setting up libasan5:armhf (8-20180110-1ubuntu1) ... Setting up libassuan0:armhf (2.5.1-1) ... Setting up libubsan1:armhf (8-20180110-1ubuntu1) ... Setting up libwind0-heimdal:armhf (7.5.0+dfsg-1) ... Setting up libasan4:armhf (7.2.0-18ubuntu2) ... Setting up libbinutils:armhf (2.29.1-12ubuntu1) ... Setting up libcilkrts5:armhf (7.2.0-18ubuntu2) ... Setting up libcurl3-gnutls:armhf (7.57.0-1ubuntu1) ... Setting up init (1.51) ... Setting up libasn1-8-heimdal:armhf (7.5.0+dfsg-1) ... Setting up libubsan0:armhf (7.2.0-18ubuntu2) ... Setting up libhcrypto4-heimdal:armhf (7.5.0+dfsg-1) ... Setting up binutils-arm-linux-gnueabihf (2.29.1-12ubuntu1) ... Setting up libhx509-5-heimdal:armhf (7.5.0+dfsg-1) ... Setting up libgcc-7-dev:armhf (7.2.0-18ubuntu2) ... Setting up cpp-7 (7.2.0-18ubuntu2) ... Setting up libstdc++-7-dev:armhf (7.2.0-18ubuntu2) ... Setting up perl (5.26.1-3) ... Setting up pinentry-curses (1.0.0-3) ... Setting up libgcc-8-dev:armhf (8-20180110-1ubuntu1) ... Setting up binutils (2.29.1-12ubuntu1) ... Setting up libkrb5-26-heimdal:armhf (7.5.0+dfsg-1) ... Setting up gnupg-agent (2.1.15-1ubuntu8) ... Setting up libheimntlm0-heimdal:armhf (7.5.0+dfsg-1) ... Setting up libstdc++-8-dev:armhf (8-20180110-1ubuntu1) ... Setting up gcc-7 (7.2.0-18ubuntu2) ... Setting up g++-7 (7.2.0-18ubuntu2) ... Setting up gnupg (2.1.15-1ubuntu8) ... Setting up libdpkg-perl (1.19.0.4ubuntu1) ... Setting up gcc-8 (8-20180110-1ubuntu1) ... Setting up g++-8 (8-20180110-1ubuntu1) ... Setting up dpkg-dev (1.19.0.4ubuntu1) ... Setting up libgssapi3-heimdal:armhf (7.5.0+dfsg-1) ... Setting up gcc (4:8-20121108-1ubuntu0.2) ... Setting up g++ (4:8-20121108-1ubuntu0.2) ... Setting up build-essential (12.4ubuntu1) ... Processing triggers for libc-bin (2.26-0ubuntu2) ... RUN: /usr/share/launchpad-buildd/slavebin/sbuild-package PACKAGEBUILD-14100384 armhf bionic -c chroot:build-PACKAGEBUILD-14100384 --arch=armhf --dist=bionic --nolog grantlee5_5.1.0-2.dsc Initiating build PACKAGEBUILD-14100384 with 4 jobs across 4 processor cores. Kernel reported to sbuild: 4.4.0-101-generic #124-Ubuntu SMP Fri Nov 10 18:30:44 UTC 2017 armv7l sbuild (Debian sbuild) 0.67.0 (26 Dec 2015) on bos01-arm64-004.buildd +==============================================================================+ | grantlee5 5.1.0-2 (armhf) 15 Jan 2018 10:24 | +==============================================================================+ Package: grantlee5 Version: 5.1.0-2 Source Version: 5.1.0-2 Distribution: bionic Machine Architecture: arm64 Host Architecture: armhf Build Architecture: armhf I: NOTICE: Log filtering will replace 'build/grantlee5-Jzksku/grantlee5-5.1.0' with '<>' I: NOTICE: Log filtering will replace 'build/grantlee5-Jzksku' with '<>' I: NOTICE: Log filtering will replace 'home/buildd/build-PACKAGEBUILD-14100384/chroot-autobuild' with '<>' +------------------------------------------------------------------------------+ | Fetch source files | +------------------------------------------------------------------------------+ Local sources ------------- grantlee5_5.1.0-2.dsc exists in .; copying to chroot Check architectures ------------------- Check dependencies ------------------ Merged Build-Depends: build-essential, fakeroot Filtered Build-Depends: build-essential, fakeroot dpkg-deb: building package 'sbuild-build-depends-core-dummy' in '/<>/resolver-nsTYU8/apt_archive/sbuild-build-depends-core-dummy.deb'. Ign:1 copy:/<>/resolver-nsTYU8/apt_archive ./ InRelease Get:2 copy:/<>/resolver-nsTYU8/apt_archive ./ Release [2119 B] Ign:3 copy:/<>/resolver-nsTYU8/apt_archive ./ Release.gpg Get:4 copy:/<>/resolver-nsTYU8/apt_archive ./ Sources [214 B] Get:5 copy:/<>/resolver-nsTYU8/apt_archive ./ Packages [526 B] Fetched 2859 B in 0s (67.2 kB/s) Reading package lists... Reading package lists... +------------------------------------------------------------------------------+ | Install core build dependencies (apt-based resolver) | +------------------------------------------------------------------------------+ Installing build dependencies Reading package lists... Building dependency tree... Reading state information... The following packages were automatically installed and are no longer required: g++-7 libasn1-8-heimdal libcurl3-gnutls libgssapi-krb5-2 libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal libidn2-0 libk5crypto3 libkeyutils1 libkrb5-26-heimdal libkrb5-3 libkrb5support0 libldap-2.4-2 libldap-common libnghttp2-14 libpsl5 libroken18-heimdal librtmp1 libsasl2-2 libsasl2-modules-db libstdc++-7-dev libunistring0 libustr-1.0-1 libwind0-heimdal Use 'apt autoremove' to remove them. The following NEW packages will be installed: sbuild-build-depends-core-dummy 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 852 B of archives. After this operation, 0 B of additional disk space will be used. Get:1 copy:/<>/resolver-nsTYU8/apt_archive ./ sbuild-build-depends-core-dummy 0.invalid.0 [852 B] debconf: delaying package configuration, since apt-utils is not installed Fetched 852 B in 0s (70.6 kB/s) Selecting previously unselected package sbuild-build-depends-core-dummy. (Reading database ... 13406 files and directories currently installed.) Preparing to unpack .../sbuild-build-depends-core-dummy_0.invalid.0_armhf.deb ... Unpacking sbuild-build-depends-core-dummy (0.invalid.0) ... Setting up sbuild-build-depends-core-dummy (0.invalid.0) ... Merged Build-Depends: cccc, cmake (>= 3.1~), debhelper (>= 9), lcov, libboost-dev, pkg-kde-tools, qtbase5-dev (>= 5.4), qtscript5-dev (>= 5.4), qttools5-dev (>= 5.4), qttools5-dev-tools (>= 5.4), xauth, xvfb Filtered Build-Depends: cccc, cmake (>= 3.1~), debhelper (>= 9), lcov, libboost-dev, pkg-kde-tools, qtbase5-dev (>= 5.4), qtscript5-dev (>= 5.4), qttools5-dev (>= 5.4), qttools5-dev-tools (>= 5.4), xauth, xvfb dpkg-deb: building package 'sbuild-build-depends-grantlee5-dummy' in '/<>/resolver-04SMHM/apt_archive/sbuild-build-depends-grantlee5-dummy.deb'. Ign:1 copy:/<>/resolver-04SMHM/apt_archive ./ InRelease Get:2 copy:/<>/resolver-04SMHM/apt_archive ./ Release [2119 B] Ign:3 copy:/<>/resolver-04SMHM/apt_archive ./ Release.gpg Get:4 copy:/<>/resolver-04SMHM/apt_archive ./ Sources [286 B] Get:5 copy:/<>/resolver-04SMHM/apt_archive ./ Packages [604 B] Fetched 3009 B in 0s (74.3 kB/s) Reading package lists... Reading package lists... +------------------------------------------------------------------------------+ | Install grantlee5 build dependencies (apt-based resolver) | +------------------------------------------------------------------------------+ Installing build dependencies Reading package lists... Building dependency tree... Reading state information... The following packages were automatically installed and are no longer required: g++-7 libcurl3-gnutls libustr-1.0-1 Use 'apt autoremove' to remove them. The following additional packages will be installed: autoconf automake autopoint autotools-dev bsdmainutils cccc cmake cmake-data debhelper dh-autoreconf dh-python dh-strip-nondeterminism diffstat file fontconfig fontconfig-config fonts-dejavu-core gettext gettext-base groff-base intltool-debian iso-codes lcov libapt-pkg-perl libarchive-zip-perl libarchive13 libavahi-client3 libavahi-common-data libavahi-common3 libboost-dev libboost-filesystem1.65.1 libboost-system1.65.1 libboost1.65-dev libbsd0 libcap2-bin libcapnp-0.6.1 libcgi-pm-perl libclass-accessor-perl libclone-perl libcroco3 libcups2 libcurl3 libdbus-1-3 libdigest-hmac-perl libdouble-conversion1 libdrm-amdgpu1 libdrm-common libdrm-dev libdrm-etnaviv1 libdrm-exynos1 libdrm-freedreno1 libdrm-nouveau2 libdrm-omap1 libdrm-radeon1 libdrm-tegra0 libdrm2 libedit2 libegl1-mesa libegl1-mesa-dev libelf1 libemail-valid-perl libevdev2 libexpat1 libexporter-tiny-perl libfile-basedir-perl libfile-stripnondeterminism-perl libfontconfig1 libfontenc1 libfreetype6 libgbm1 libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libgles2-mesa libgles2-mesa-dev libglib2.0-0 libgraphite2-3 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgudev-1.0-0 libharfbuzz0b libhtml-parser-perl libhtml-tagset-perl libhyphen0 libice6 libicu-le-hb0 libicu60 libinput-bin libinput10 libio-pty-perl libio-socket-inet6-perl libio-socket-ssl-perl libio-string-perl libipc-run-perl libipc-system-simple-perl libjpeg-turbo8 libjpeg8 libjsoncpp1 liblist-moreutils-perl libllvm5.0 liblocale-gettext-perl liblzo2-2 libmagic-mgc libmagic1 libmailtools-perl libmirclient-dev libmirclient9 libmircommon-dev libmircommon7 libmircookie-dev libmircookie2 libmircore-dev libmircore1 libmirprotobuf3 libmpdec2 libmtdev1 libnet-dns-perl libnet-domain-tld-perl libnet-ip-perl libnet-smtp-ssl-perl libnet-ssleay-perl liborc-0.4-0 libparse-debianchangelog-perl libpipeline1 libpixman-1-0 libprotobuf-dev libprotobuf-lite10 libprotobuf10 libpthread-stubs0-dev libpython3-stdlib libpython3.6-minimal libpython3.6-stdlib libqt5concurrent5 libqt5core5a libqt5dbus5 libqt5designer5 libqt5designercomponents5 libqt5gui5 libqt5help5 libqt5network5 libqt5positioning5 libqt5printsupport5 libqt5qml5 libqt5quick5 libqt5quickwidgets5 libqt5script5 libqt5scripttools5 libqt5sensors5 libqt5sql5 libqt5sql5-sqlite libqt5test5 libqt5webchannel5 libqt5webkit5 libqt5widgets5 libqt5xml5 librhash0 libsensors4 libsigsegv2 libsm6 libsocket6-perl libsub-name-perl libtext-levenshtein-perl libtimedate-perl libtool liburi-perl libuv1 libwacom-common libwacom2 libwayland-bin libwayland-client0 libwayland-cursor0 libwayland-dev libwayland-egl1-mesa libwayland-server0 libwebp6 libx11-6 libx11-data libx11-dev libx11-xcb-dev libx11-xcb1 libxau-dev libxau6 libxaw7 libxcb-dri2-0 libxcb-dri2-0-dev libxcb-dri3-0 libxcb-dri3-dev libxcb-glx0 libxcb-glx0-dev libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-present-dev libxcb-present0 libxcb-randr0 libxcb-randr0-dev libxcb-render-util0 libxcb-render0 libxcb-render0-dev libxcb-shape0 libxcb-shape0-dev libxcb-shm0 libxcb-sync-dev libxcb-sync1 libxcb-util1 libxcb-xfixes0 libxcb-xfixes0-dev libxcb-xinerama0 libxcb-xkb1 libxcb1 libxcb1-dev libxdamage-dev libxdamage1 libxdmcp-dev libxdmcp6 libxext-dev libxext6 libxfixes-dev libxfixes3 libxfont2 libxi6 libxkbcommon-dev libxkbcommon-x11-0 libxkbcommon0 libxkbfile1 libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-perl libxml-simple-perl libxml2 libxmu6 libxmuu1 libxpm4 libxshmfence-dev libxshmfence1 libxslt1.1 libxt6 libxxf86vm-dev libxxf86vm1 libyaml-libyaml-perl lintian m4 man-db mime-support netbase patchutils perl-openssl-defaults pkg-kde-tools po-debconf python3 python3-distutils python3-minimal python3.6 python3.6-2to3 python3.6-minimal qt5-qmake qt5-qmake-bin qtbase5-dev qtbase5-dev-tools qtchooser qtscript5-dev qttools5-dev qttools5-dev-tools t1utils ucf x11-common x11-xkb-utils x11proto-core-dev x11proto-damage-dev x11proto-dri2-dev x11proto-fixes-dev x11proto-gl-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev x11proto-xf86vidmode-dev xauth xkb-data xorg-sgml-doctools xserver-common xtrans-dev xvfb zlib1g-dev Suggested packages: autoconf-archive gnu-standards autoconf-doc wamerican | wordlist whois vacation ninja-build dh-make dwz gettext-doc libasprintf-dev libgettextpo-dev groff isoquery lrzip libboost-doc libboost1.65-doc libboost-atomic1.65-dev libboost-chrono1.65-dev libboost-container1.65-dev libboost-context1.65-dev libboost-coroutine1.65-dev libboost-date-time1.65-dev libboost-exception1.65-dev libboost-fiber1.65-dev libboost-filesystem1.65-dev libboost-graph1.65-dev libboost-graph-parallel1.65-dev libboost-iostreams1.65-dev libboost-locale1.65-dev libboost-log1.65-dev libboost-math1.65-dev libboost-mpi1.65-dev libboost-mpi-python1.65-dev libboost-numpy1.65-dev libboost-program-options1.65-dev libboost-python1.65-dev libboost-random1.65-dev libboost-regex1.65-dev libboost-serialization1.65-dev libboost-signals1.65-dev libboost-stacktrace1.65-dev libboost-system1.65-dev libboost-test1.65-dev libboost-thread1.65-dev libboost-timer1.65-dev libboost-type-erasure1.65-dev libboost-wave1.65-dev libboost1.65-tools-dev libmpfrc++-dev libntl-dev cups-common libvisual-0.4-plugins gstreamer1.0-tools libdata-dump-perl libhtml-template-perl libthai0 qt5-image-formats-plugins qtwayland5 qt5-qmltooling-plugins lm-sensors libtool-doc gfortran | fortran95-compiler gcj-jdk libwww-perl libxcb-doc libxext-doc binutils-multiarch libtext-template-perl m4-doc less www-browser apparmor cdbs libmail-box-perl python3-doc python3-tk python3-venv python3.6-venv python3.6-doc binfmt-support default-libmysqlclient-dev firebird-dev libgl1-mesa-dev libpq-dev libsqlite3-dev unixodbc-dev Recommended packages: curl | wget | lynx libgd-gd2-perl libpam-cap libcgi-fast-perl dbus libarchive-cpio-perl libtxc-dxtn-s2tc | libtxc-dxtn-s2tc0 | libtxc-dxtn0 libglib2.0-data shared-mime-info xdg-user-dirs gstreamer1.0-plugins-base libhttp-message-perl libauthen-sasl-perl qttranslations5-l10n libqt5svg5 qt5-gtk-platformtheme geoclue-2.0 libltdl-dev libwacom-bin libx11-doc libxml-sax-expat-perl libperlio-gzip-perl libwww-perl libmail-sendmail-perl libqt5opengl5-dev xfonts-base The following packages will be REMOVED: pkg-create-dbgsym* The following NEW packages will be installed: autoconf automake autopoint autotools-dev bsdmainutils cccc cmake cmake-data debhelper dh-autoreconf dh-python dh-strip-nondeterminism diffstat file fontconfig fontconfig-config fonts-dejavu-core gettext gettext-base groff-base intltool-debian iso-codes lcov libapt-pkg-perl libarchive-zip-perl libarchive13 libavahi-client3 libavahi-common-data libavahi-common3 libboost-dev libboost-filesystem1.65.1 libboost-system1.65.1 libboost1.65-dev libbsd0 libcap2-bin libcapnp-0.6.1 libcgi-pm-perl libclass-accessor-perl libclone-perl libcroco3 libcups2 libcurl3 libdbus-1-3 libdigest-hmac-perl libdouble-conversion1 libdrm-amdgpu1 libdrm-common libdrm-dev libdrm-etnaviv1 libdrm-exynos1 libdrm-freedreno1 libdrm-nouveau2 libdrm-omap1 libdrm-radeon1 libdrm-tegra0 libdrm2 libedit2 libegl1-mesa libegl1-mesa-dev libelf1 libemail-valid-perl libevdev2 libexpat1 libexporter-tiny-perl libfile-basedir-perl libfile-stripnondeterminism-perl libfontconfig1 libfontenc1 libfreetype6 libgbm1 libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libgles2-mesa libgles2-mesa-dev libglib2.0-0 libgraphite2-3 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgudev-1.0-0 libharfbuzz0b libhtml-parser-perl libhtml-tagset-perl libhyphen0 libice6 libicu-le-hb0 libicu60 libinput-bin libinput10 libio-pty-perl libio-socket-inet6-perl libio-socket-ssl-perl libio-string-perl libipc-run-perl libipc-system-simple-perl libjpeg-turbo8 libjpeg8 libjsoncpp1 liblist-moreutils-perl libllvm5.0 liblocale-gettext-perl liblzo2-2 libmagic-mgc libmagic1 libmailtools-perl libmirclient-dev libmirclient9 libmircommon-dev libmircommon7 libmircookie-dev libmircookie2 libmircore-dev libmircore1 libmirprotobuf3 libmpdec2 libmtdev1 libnet-dns-perl libnet-domain-tld-perl libnet-ip-perl libnet-smtp-ssl-perl libnet-ssleay-perl liborc-0.4-0 libparse-debianchangelog-perl libpipeline1 libpixman-1-0 libprotobuf-dev libprotobuf-lite10 libprotobuf10 libpthread-stubs0-dev libpython3-stdlib libpython3.6-minimal libpython3.6-stdlib libqt5concurrent5 libqt5core5a libqt5dbus5 libqt5designer5 libqt5designercomponents5 libqt5gui5 libqt5help5 libqt5network5 libqt5positioning5 libqt5printsupport5 libqt5qml5 libqt5quick5 libqt5quickwidgets5 libqt5script5 libqt5scripttools5 libqt5sensors5 libqt5sql5 libqt5sql5-sqlite libqt5test5 libqt5webchannel5 libqt5webkit5 libqt5widgets5 libqt5xml5 librhash0 libsensors4 libsigsegv2 libsm6 libsocket6-perl libsub-name-perl libtext-levenshtein-perl libtimedate-perl libtool liburi-perl libuv1 libwacom-common libwacom2 libwayland-bin libwayland-client0 libwayland-cursor0 libwayland-dev libwayland-egl1-mesa libwayland-server0 libwebp6 libx11-6 libx11-data libx11-dev libx11-xcb-dev libx11-xcb1 libxau-dev libxau6 libxaw7 libxcb-dri2-0 libxcb-dri2-0-dev libxcb-dri3-0 libxcb-dri3-dev libxcb-glx0 libxcb-glx0-dev libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-present-dev libxcb-present0 libxcb-randr0 libxcb-randr0-dev libxcb-render-util0 libxcb-render0 libxcb-render0-dev libxcb-shape0 libxcb-shape0-dev libxcb-shm0 libxcb-sync-dev libxcb-sync1 libxcb-util1 libxcb-xfixes0 libxcb-xfixes0-dev libxcb-xinerama0 libxcb-xkb1 libxcb1 libxcb1-dev libxdamage-dev libxdamage1 libxdmcp-dev libxdmcp6 libxext-dev libxext6 libxfixes-dev libxfixes3 libxfont2 libxi6 libxkbcommon-dev libxkbcommon-x11-0 libxkbcommon0 libxkbfile1 libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-perl libxml-simple-perl libxml2 libxmu6 libxmuu1 libxpm4 libxshmfence-dev libxshmfence1 libxslt1.1 libxt6 libxxf86vm-dev libxxf86vm1 libyaml-libyaml-perl lintian m4 man-db mime-support netbase patchutils perl-openssl-defaults pkg-kde-tools po-debconf python3 python3-distutils python3-minimal python3.6 python3.6-2to3 python3.6-minimal qt5-qmake qt5-qmake-bin qtbase5-dev qtbase5-dev-tools qtchooser qtscript5-dev qttools5-dev qttools5-dev-tools sbuild-build-depends-grantlee5-dummy t1utils ucf x11-common x11-xkb-utils x11proto-core-dev x11proto-damage-dev x11proto-dri2-dev x11proto-fixes-dev x11proto-gl-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev x11proto-xf86vidmode-dev xauth xkb-data xorg-sgml-doctools xserver-common xtrans-dev xvfb zlib1g-dev 0 upgraded, 285 newly installed, 1 to remove and 0 not upgraded. Need to get 94.5 MB of archives. After this operation, 527 MB of additional disk space will be used. Get:1 copy:/<>/resolver-04SMHM/apt_archive ./ sbuild-build-depends-grantlee5-dummy 0.invalid.0 [928 B] Get:2 http://ftpmaster.internal/ubuntu bionic/main armhf liblocale-gettext-perl armhf 1.07-3build2 [16.1 kB] Get:3 http://ftpmaster.internal/ubuntu bionic/main armhf libpython3.6-minimal armhf 3.6.4-2 [523 kB] Get:4 http://ftpmaster.internal/ubuntu bionic/main armhf libexpat1 armhf 2.2.5-3 [59.7 kB] Get:5 http://ftpmaster.internal/ubuntu bionic/main armhf python3.6-minimal armhf 3.6.4-2 [1213 kB] Get:6 http://ftpmaster.internal/ubuntu bionic/main armhf python3-minimal armhf 3.6.3-0ubuntu2 [23.3 kB] Get:7 http://ftpmaster.internal/ubuntu bionic/main armhf mime-support all 3.60ubuntu1 [30.1 kB] Get:8 http://ftpmaster.internal/ubuntu bionic/main armhf libmpdec2 armhf 2.4.2-1 [66.9 kB] Get:9 http://ftpmaster.internal/ubuntu bionic/main armhf libpython3.6-stdlib armhf 3.6.4-2 [1588 kB] Get:10 http://ftpmaster.internal/ubuntu bionic/main armhf python3.6-2to3 all 3.6.4-2 [13.9 kB] Get:11 http://ftpmaster.internal/ubuntu bionic/main armhf python3-distutils all 3.6.4~rc1-6 [145 kB] Get:12 http://ftpmaster.internal/ubuntu bionic/main armhf python3.6 armhf 3.6.4-2 [181 kB] Get:13 http://ftpmaster.internal/ubuntu bionic/main armhf libpython3-stdlib armhf 3.6.3-0ubuntu2 [6820 B] Get:14 http://ftpmaster.internal/ubuntu bionic/main armhf dh-python all 2.20170125 [83.7 kB] Get:15 http://ftpmaster.internal/ubuntu bionic/main armhf python3 armhf 3.6.3-0ubuntu2 [8712 B] Get:16 http://ftpmaster.internal/ubuntu bionic/main armhf libxau6 armhf 1:1.0.8-1 [7324 B] Get:17 http://ftpmaster.internal/ubuntu bionic/main armhf libbsd0 armhf 0.8.6-3 [40.6 kB] Get:18 http://ftpmaster.internal/ubuntu bionic/main armhf libxdmcp6 armhf 1:1.1.2-3 [9316 B] Get:19 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb1 armhf 1.12-1ubuntu1 [40.9 kB] Get:20 http://ftpmaster.internal/ubuntu bionic/main armhf libx11-data all 2:1.6.4-3 [114 kB] Get:21 http://ftpmaster.internal/ubuntu bionic/main armhf libx11-6 armhf 2:1.6.4-3 [515 kB] Get:22 http://ftpmaster.internal/ubuntu bionic/main armhf libxext6 armhf 2:1.3.3-1 [25.1 kB] Get:23 http://ftpmaster.internal/ubuntu bionic/main armhf groff-base armhf 1.22.3-9 [1013 kB] Get:24 http://ftpmaster.internal/ubuntu bionic/main armhf bsdmainutils armhf 9.0.14ubuntu1 [173 kB] Get:25 http://ftpmaster.internal/ubuntu bionic/main armhf libpipeline1 armhf 1.5.0-1 [21.1 kB] Get:26 http://ftpmaster.internal/ubuntu bionic/main armhf man-db armhf 2.7.6.1-4 [872 kB] Get:27 http://ftpmaster.internal/ubuntu bionic/main armhf cmake-data all 3.9.5-1 [1268 kB] Get:28 http://ftpmaster.internal/ubuntu bionic/main armhf liblzo2-2 armhf 2.08-1.2 [44.2 kB] Get:29 http://ftpmaster.internal/ubuntu bionic/main armhf libfreetype6 armhf 2.8-0.2ubuntu2 [275 kB] Get:30 http://ftpmaster.internal/ubuntu bionic/main armhf libglib2.0-0 armhf 2.54.1-1ubuntu1 [1013 kB] Get:31 http://ftpmaster.internal/ubuntu bionic/main armhf libgraphite2-3 armhf 1.3.10-8 [65.7 kB] Get:32 http://ftpmaster.internal/ubuntu bionic/main armhf libharfbuzz0b armhf 1.7.2-1 [206 kB] Get:33 http://ftpmaster.internal/ubuntu bionic/main armhf libicu-le-hb0 armhf 1.0.3+git161113-4 [12.5 kB] Get:34 http://ftpmaster.internal/ubuntu bionic/main armhf libicu60 armhf 60.2-1ubuntu1 [7811 kB] Get:35 http://ftpmaster.internal/ubuntu bionic/main armhf libxml2 armhf 2.9.4+dfsg1-5.2ubuntu1 [574 kB] Get:36 http://ftpmaster.internal/ubuntu bionic/main armhf libarchive13 armhf 3.2.2-3.1 [253 kB] Get:37 http://ftpmaster.internal/ubuntu bionic/main armhf libcurl3 armhf 7.57.0-1ubuntu1 [181 kB] Get:38 http://ftpmaster.internal/ubuntu bionic/main armhf libjsoncpp1 armhf 1.7.4-3 [65.9 kB] Get:39 http://ftpmaster.internal/ubuntu bionic/main armhf librhash0 armhf 1.3.4-3 [87.1 kB] Get:40 http://ftpmaster.internal/ubuntu bionic/main armhf libuv1 armhf 1.18.0-3 [53.5 kB] Get:41 http://ftpmaster.internal/ubuntu bionic/main armhf cmake armhf 3.9.5-1 [2699 kB] Get:42 http://ftpmaster.internal/ubuntu bionic/main armhf ucf all 3.0036 [52.9 kB] Get:43 http://ftpmaster.internal/ubuntu bionic/main armhf fonts-dejavu-core all 2.37-1 [1041 kB] Get:44 http://ftpmaster.internal/ubuntu bionic/main armhf fontconfig-config all 2.12.6-0ubuntu1 [55.5 kB] Get:45 http://ftpmaster.internal/ubuntu bionic/main armhf libfontconfig1 armhf 2.12.6-0ubuntu1 [120 kB] Get:46 http://ftpmaster.internal/ubuntu bionic/main armhf fontconfig armhf 2.12.6-0ubuntu1 [167 kB] Get:47 http://ftpmaster.internal/ubuntu bionic/main armhf libjpeg-turbo8 armhf 1.5.2-0ubuntu5 [87.2 kB] Get:48 http://ftpmaster.internal/ubuntu bionic/main armhf libmtdev1 armhf 1.1.5-1ubuntu2 [12.8 kB] Get:49 http://ftpmaster.internal/ubuntu bionic/main armhf libdouble-conversion1 armhf 2.0.1-4ubuntu1 [32.9 kB] Get:50 http://ftpmaster.internal/ubuntu bionic/main armhf libqt5core5a armhf 5.9.3+dfsg-0ubuntu1 [1772 kB] Get:51 http://ftpmaster.internal/ubuntu bionic/universe armhf libqt5script5 armhf 5.9.3+dfsg-0ubuntu1 [501 kB] Get:52 http://ftpmaster.internal/ubuntu bionic/main armhf libdrm-common all 2.4.89-1 [4940 B] Get:53 http://ftpmaster.internal/ubuntu bionic/main armhf libdrm2 armhf 2.4.89-1 [27.0 kB] Get:54 http://ftpmaster.internal/ubuntu bionic/main armhf libwayland-client0 armhf 1.14.0-1 [17.6 kB] Get:55 http://ftpmaster.internal/ubuntu bionic/main armhf libwayland-server0 armhf 1.14.0-1 [22.4 kB] Get:56 http://ftpmaster.internal/ubuntu bionic/main armhf libgbm1 armhf 17.2.4-0ubuntu2 [21.3 kB] Get:57 http://ftpmaster.internal/ubuntu bionic/main armhf libboost-system1.65.1 armhf 1.65.1+dfsg-0ubuntu4 [9960 B] Get:58 http://ftpmaster.internal/ubuntu bionic/main armhf libcapnp-0.6.1 armhf 0.6.1-1 [596 kB] Get:59 http://ftpmaster.internal/ubuntu bionic/main armhf libboost-filesystem1.65.1 armhf 1.65.1+dfsg-0ubuntu4 [35.6 kB] Get:60 http://ftpmaster.internal/ubuntu bionic/main armhf libmircore1 armhf 0.29.0-0ubuntu1 [27.9 kB] Get:61 http://ftpmaster.internal/ubuntu bionic/main armhf libmircommon7 armhf 0.29.0-0ubuntu1 [64.0 kB] Get:62 http://ftpmaster.internal/ubuntu bionic/main armhf libprotobuf-lite10 armhf 3.0.0-9ubuntu5 [85.4 kB] Get:63 http://ftpmaster.internal/ubuntu bionic/main armhf libmirprotobuf3 armhf 0.29.0-0ubuntu1 [111 kB] Get:64 http://ftpmaster.internal/ubuntu bionic/main armhf xkb-data all 2.19-1.1ubuntu1 [312 kB] Get:65 http://ftpmaster.internal/ubuntu bionic/main armhf libxkbcommon0 armhf 0.8.0-1 [86.1 kB] Get:66 http://ftpmaster.internal/ubuntu bionic/main armhf libmirclient9 armhf 0.29.0-0ubuntu1 [171 kB] Get:67 http://ftpmaster.internal/ubuntu bionic/main armhf libx11-xcb1 armhf 2:1.6.4-3 [9578 B] Get:68 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-dri2-0 armhf 1.12-1ubuntu1 [6632 B] Get:69 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-dri3-0 armhf 1.12-1ubuntu1 [5030 B] Get:70 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-present0 armhf 1.12-1ubuntu1 [5362 B] Get:71 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-sync1 armhf 1.12-1ubuntu1 [8212 B] Get:72 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-xfixes0 armhf 1.12-1ubuntu1 [8980 B] Get:73 http://ftpmaster.internal/ubuntu bionic/main armhf libxshmfence1 armhf 1.2-1 [4848 B] Get:74 http://ftpmaster.internal/ubuntu bionic/main armhf libdrm-amdgpu1 armhf 2.4.89-1 [17.5 kB] Get:75 http://ftpmaster.internal/ubuntu bionic/main armhf libdrm-etnaviv1 armhf 2.4.89-1 [10.2 kB] Get:76 http://ftpmaster.internal/ubuntu bionic/main armhf libdrm-freedreno1 armhf 2.4.89-1 [16.1 kB] Get:77 http://ftpmaster.internal/ubuntu bionic/main armhf libdrm-nouveau2 armhf 2.4.89-1 [14.7 kB] Get:78 http://ftpmaster.internal/ubuntu bionic/main armhf libdrm-radeon1 armhf 2.4.89-1 [19.5 kB] Get:79 http://ftpmaster.internal/ubuntu bionic/main armhf libelf1 armhf 0.170-0.2 [42.4 kB] Get:80 http://ftpmaster.internal/ubuntu bionic/main armhf libglapi-mesa armhf 17.2.4-0ubuntu2 [27.5 kB] Get:81 http://ftpmaster.internal/ubuntu bionic/main armhf libedit2 armhf 3.1-20170329-1 [61.9 kB] Get:82 http://ftpmaster.internal/ubuntu bionic/main armhf libllvm5.0 armhf 1:5.0.1-2 [12.6 MB] Get:83 http://ftpmaster.internal/ubuntu bionic/main armhf libsensors4 armhf 1:3.4.0-4 [25.8 kB] Get:84 http://ftpmaster.internal/ubuntu bionic/main armhf libgl1-mesa-dri armhf 17.2.4-0ubuntu2 [3558 kB] Get:85 http://ftpmaster.internal/ubuntu bionic/main armhf libegl1-mesa armhf 17.2.4-0ubuntu2 [69.6 kB] Get:86 http://ftpmaster.internal/ubuntu bionic/main armhf libgles2-mesa armhf 17.2.4-0ubuntu2 [14.9 kB] Get:87 http://ftpmaster.internal/ubuntu bionic/main armhf x11-common all 1:7.7+19ubuntu3 [22.0 kB] Get:88 http://ftpmaster.internal/ubuntu bionic/main armhf libice6 armhf 2:1.0.9-2 [33.5 kB] Get:89 http://ftpmaster.internal/ubuntu bionic/main armhf libevdev2 armhf 1.5.7+dfsg-1 [23.3 kB] Get:90 http://ftpmaster.internal/ubuntu bionic/main armhf libgudev-1.0-0 armhf 1:232-1 [11.4 kB] Get:91 http://ftpmaster.internal/ubuntu bionic/main armhf libwacom-common all 0.26-1 [34.7 kB] Get:92 http://ftpmaster.internal/ubuntu bionic/main armhf libwacom2 armhf 0.26-1 [14.8 kB] Get:93 http://ftpmaster.internal/ubuntu bionic/main armhf libinput-bin armhf 1.9.4-2 [10.6 kB] Get:94 http://ftpmaster.internal/ubuntu bionic/main armhf libinput10 armhf 1.9.4-2 [73.3 kB] Get:95 http://ftpmaster.internal/ubuntu bionic/main armhf libjpeg8 armhf 8c-2ubuntu8 [2202 B] Get:96 http://ftpmaster.internal/ubuntu bionic/main armhf libdbus-1-3 armhf 1.12.2-1ubuntu1 [153 kB] Get:97 http://ftpmaster.internal/ubuntu bionic/main armhf libqt5dbus5 armhf 5.9.3+dfsg-0ubuntu1 [171 kB] Get:98 http://ftpmaster.internal/ubuntu bionic/main armhf libqt5network5 armhf 5.9.3+dfsg-0ubuntu1 [551 kB] Get:99 http://ftpmaster.internal/ubuntu bionic/main armhf libsm6 armhf 2:1.2.2-1 [13.9 kB] Get:100 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-icccm4 armhf 0.4.1-1ubuntu1 [9676 B] Get:101 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-shm0 armhf 1.12-1ubuntu1 [5298 B] Get:102 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-util1 armhf 0.4.0-0ubuntu3 [10.3 kB] Get:103 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-image0 armhf 0.4.0-1build1 [11.1 kB] Get:104 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-keysyms1 armhf 0.4.0-1 [7796 B] Get:105 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-randr0 armhf 1.12-1ubuntu1 [15.0 kB] Get:106 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-render0 armhf 1.12-1ubuntu1 [13.9 kB] Get:107 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-render-util0 armhf 0.3.9-1 [8858 B] Get:108 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-shape0 armhf 1.12-1ubuntu1 [5574 B] Get:109 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-xinerama0 armhf 1.12-1ubuntu1 [5064 B] Get:110 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-xkb1 armhf 1.12-1ubuntu1 [26.4 kB] Get:111 http://ftpmaster.internal/ubuntu bionic/main armhf libxi6 armhf 2:1.7.9-1 [26.1 kB] Get:112 http://ftpmaster.internal/ubuntu bionic/main armhf libxkbcommon-x11-0 armhf 0.8.0-1 [12.0 kB] Get:113 http://ftpmaster.internal/ubuntu bionic/main armhf libqt5gui5 armhf 5.9.3+dfsg-0ubuntu1 [2035 kB] Get:114 http://ftpmaster.internal/ubuntu bionic/main armhf libqt5widgets5 armhf 5.9.3+dfsg-0ubuntu1 [1921 kB] Get:115 http://ftpmaster.internal/ubuntu bionic/universe armhf libqt5scripttools5 armhf 5.9.3+dfsg-0ubuntu1 [187 kB] Get:116 http://ftpmaster.internal/ubuntu bionic/main armhf libcap2-bin armhf 1:2.25-1.2 [20.1 kB] Get:117 http://ftpmaster.internal/ubuntu bionic/main armhf libgstreamer1.0-0 armhf 1.12.4-1 [752 kB] Get:118 http://ftpmaster.internal/ubuntu bionic/main armhf liborc-0.4-0 armhf 1:0.4.28-1 [117 kB] Get:119 http://ftpmaster.internal/ubuntu bionic/main armhf iso-codes all 3.77-1 [2345 kB] Get:120 http://ftpmaster.internal/ubuntu bionic/main armhf libgstreamer-plugins-base1.0-0 armhf 1.12.4-1 [591 kB] Get:121 http://ftpmaster.internal/ubuntu bionic/main armhf libhyphen0 armhf 2.8.8-5 [24.1 kB] Get:122 http://ftpmaster.internal/ubuntu bionic/universe armhf libqt5positioning5 armhf 5.9.3+dfsg-0ubuntu1 [111 kB] Get:123 http://ftpmaster.internal/ubuntu bionic/main armhf libavahi-common-data armhf 0.7-3ubuntu1 [22.7 kB] Get:124 http://ftpmaster.internal/ubuntu bionic/main armhf libavahi-common3 armhf 0.7-3ubuntu1 [18.4 kB] Get:125 http://ftpmaster.internal/ubuntu bionic/main armhf libavahi-client3 armhf 0.7-3ubuntu1 [21.7 kB] Get:126 http://ftpmaster.internal/ubuntu bionic/main armhf libcups2 armhf 2.2.6-4 [179 kB] Get:127 http://ftpmaster.internal/ubuntu bionic/main armhf libqt5printsupport5 armhf 5.9.3+dfsg-0ubuntu1 [162 kB] Get:128 http://ftpmaster.internal/ubuntu bionic/universe armhf libqt5qml5 armhf 5.9.3-0ubuntu1 [1085 kB] Get:129 http://ftpmaster.internal/ubuntu bionic/universe armhf libqt5quick5 armhf 5.9.3-0ubuntu1 [1006 kB] Get:130 http://ftpmaster.internal/ubuntu bionic/universe armhf libqt5sensors5 armhf 5.9.3-0ubuntu1 [96.3 kB] Get:131 http://ftpmaster.internal/ubuntu bionic/universe armhf libqt5webchannel5 armhf 5.9.3-0ubuntu1 [42.2 kB] Get:132 http://ftpmaster.internal/ubuntu bionic/main armhf libwebp6 armhf 0.6.0-4 [149 kB] Get:133 http://ftpmaster.internal/ubuntu bionic/main armhf libxslt1.1 armhf 1.1.29-5 [131 kB] Get:134 http://ftpmaster.internal/ubuntu bionic/universe armhf libqt5webkit5 armhf 5.212.0~alpha2-5build4 [8779 kB] Get:135 http://ftpmaster.internal/ubuntu bionic/main armhf libxxf86vm1 armhf 1:1.1.4-1 [9770 B] Get:136 http://ftpmaster.internal/ubuntu bionic/main armhf libwayland-egl1-mesa armhf 17.2.4-0ubuntu2 [5708 B] Get:137 http://ftpmaster.internal/ubuntu bionic/main armhf libdrm-omap1 armhf 2.4.89-1 [6472 B] Get:138 http://ftpmaster.internal/ubuntu bionic/main armhf libdrm-exynos1 armhf 2.4.89-1 [9440 B] Get:139 http://ftpmaster.internal/ubuntu bionic/main armhf libdrm-tegra0 armhf 2.4.89-1 [5812 B] Get:140 http://ftpmaster.internal/ubuntu bionic/main armhf libdrm-dev armhf 2.4.89-1 [206 kB] Get:141 http://ftpmaster.internal/ubuntu bionic/main armhf x11proto-dri2-dev all 2.8-2 [12.6 kB] Get:142 http://ftpmaster.internal/ubuntu bionic/main armhf x11proto-gl-dev all 1.4.17-1 [17.9 kB] Get:143 http://ftpmaster.internal/ubuntu bionic/main armhf xorg-sgml-doctools all 1:1.11-1 [12.9 kB] Get:144 http://ftpmaster.internal/ubuntu bionic/main armhf x11proto-core-dev all 7.0.31-1 [700 kB] Get:145 http://ftpmaster.internal/ubuntu bionic/main armhf libxau-dev armhf 1:1.0.8-1 [9438 B] Get:146 http://ftpmaster.internal/ubuntu bionic/main armhf libxdmcp-dev armhf 1:1.1.2-3 [23.6 kB] Get:147 http://ftpmaster.internal/ubuntu bionic/main armhf x11proto-input-dev all 2.3.2-1 [118 kB] Get:148 http://ftpmaster.internal/ubuntu bionic/main armhf x11proto-kb-dev all 1.0.7-1 [226 kB] Get:149 http://ftpmaster.internal/ubuntu bionic/main armhf xtrans-dev all 1.3.5-1 [70.5 kB] Get:150 http://ftpmaster.internal/ubuntu bionic/main armhf libpthread-stubs0-dev armhf 0.3-4 [4084 B] Get:151 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb1-dev armhf 1.12-1ubuntu1 [77.0 kB] Get:152 http://ftpmaster.internal/ubuntu bionic/main armhf libx11-dev armhf 2:1.6.4-3 [585 kB] Get:153 http://ftpmaster.internal/ubuntu bionic/main armhf x11proto-xext-dev all 7.3.0-1 [212 kB] Get:154 http://ftpmaster.internal/ubuntu bionic/main armhf libxext-dev armhf 2:1.3.3-1 [77.8 kB] Get:155 http://ftpmaster.internal/ubuntu bionic/main armhf x11proto-xf86vidmode-dev all 2.3.1-2 [6116 B] Get:156 http://ftpmaster.internal/ubuntu bionic/main armhf libxxf86vm-dev armhf 1:1.1.4-1 [12.7 kB] Get:157 http://ftpmaster.internal/ubuntu bionic/main armhf libxdamage1 armhf 1:1.1.4-3 [6488 B] Get:158 http://ftpmaster.internal/ubuntu bionic/main armhf libxfixes3 armhf 1:5.0.3-1 [9390 B] Get:159 http://ftpmaster.internal/ubuntu bionic/main armhf x11proto-fixes-dev all 1:5.0-2ubuntu2 [14.2 kB] Get:160 http://ftpmaster.internal/ubuntu bionic/main armhf libxfixes-dev armhf 1:5.0.3-1 [9856 B] Get:161 http://ftpmaster.internal/ubuntu bionic/main armhf x11proto-damage-dev all 1:1.2.1-2 [8286 B] Get:162 http://ftpmaster.internal/ubuntu bionic/main armhf libxdamage-dev armhf 1:1.1.4-3 [4692 B] Get:163 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-glx0 armhf 1.12-1ubuntu1 [20.4 kB] Get:164 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-glx0-dev armhf 1.12-1ubuntu1 [26.9 kB] Get:165 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-dri2-0-dev armhf 1.12-1ubuntu1 [8372 B] Get:166 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-dri3-dev armhf 1.12-1ubuntu1 [5810 B] Get:167 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-render0-dev armhf 1.12-1ubuntu1 [18.1 kB] Get:168 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-randr0-dev armhf 1.12-1ubuntu1 [19.5 kB] Get:169 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-shape0-dev armhf 1.12-1ubuntu1 [6978 B] Get:170 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-xfixes0-dev armhf 1.12-1ubuntu1 [11.8 kB] Get:171 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-sync-dev armhf 1.12-1ubuntu1 [10.4 kB] Get:172 http://ftpmaster.internal/ubuntu bionic/main armhf libxcb-present-dev armhf 1.12-1ubuntu1 [6952 B] Get:173 http://ftpmaster.internal/ubuntu bionic/main armhf libxshmfence-dev armhf 1.2-1 [3558 B] Get:174 http://ftpmaster.internal/ubuntu bionic/main armhf libx11-xcb-dev armhf 2:1.6.4-3 [9648 B] Get:175 http://ftpmaster.internal/ubuntu bionic/main armhf libwayland-cursor0 armhf 1.14.0-1 [8868 B] Get:176 http://ftpmaster.internal/ubuntu bionic/main armhf libwayland-bin armhf 1.14.0-1 [16.6 kB] Get:177 http://ftpmaster.internal/ubuntu bionic/main armhf libwayland-dev armhf 1.14.0-1 [92.3 kB] Get:178 http://ftpmaster.internal/ubuntu bionic/main armhf libmircore-dev armhf 0.29.0-0ubuntu1 [25.4 kB] Get:179 http://ftpmaster.internal/ubuntu bionic/main armhf zlib1g-dev armhf 1:1.2.11.dfsg-0ubuntu2 [168 kB] Get:180 http://ftpmaster.internal/ubuntu bionic/main armhf libprotobuf10 armhf 3.0.0-9ubuntu5 [542 kB] Get:181 http://ftpmaster.internal/ubuntu bionic/main armhf libprotobuf-dev armhf 3.0.0-9ubuntu5 [931 kB] Get:182 http://ftpmaster.internal/ubuntu bionic/main armhf libxkbcommon-dev armhf 0.8.0-1 [298 kB] Get:183 http://ftpmaster.internal/ubuntu bionic/main armhf libmircommon-dev armhf 0.29.0-0ubuntu1 [13.9 kB] Get:184 http://ftpmaster.internal/ubuntu bionic/main armhf libmircookie2 armhf 0.29.0-0ubuntu1 [22.1 kB] Get:185 http://ftpmaster.internal/ubuntu bionic/main armhf libmircookie-dev armhf 0.29.0-0ubuntu1 [4388 B] Get:186 http://ftpmaster.internal/ubuntu bionic/main armhf libmirclient-dev armhf 0.29.0-0ubuntu1 [47.8 kB] Get:187 http://ftpmaster.internal/ubuntu bionic/main armhf libegl1-mesa-dev armhf 17.2.4-0ubuntu2 [19.9 kB] Get:188 http://ftpmaster.internal/ubuntu bionic/main armhf libgles2-mesa-dev armhf 17.2.4-0ubuntu2 [40.4 kB] Get:189 http://ftpmaster.internal/ubuntu bionic/main armhf libqt5concurrent5 armhf 5.9.3+dfsg-0ubuntu1 [28.6 kB] Get:190 http://ftpmaster.internal/ubuntu bionic/main armhf libqt5sql5 armhf 5.9.3+dfsg-0ubuntu1 [98.8 kB] Get:191 http://ftpmaster.internal/ubuntu bionic/main armhf libqt5test5 armhf 5.9.3+dfsg-0ubuntu1 [87.3 kB] Get:192 http://ftpmaster.internal/ubuntu bionic/main armhf libqt5xml5 armhf 5.9.3+dfsg-0ubuntu1 [85.9 kB] Get:193 http://ftpmaster.internal/ubuntu bionic/main armhf qt5-qmake-bin armhf 5.9.3+dfsg-0ubuntu1 [813 kB] Get:194 http://ftpmaster.internal/ubuntu bionic/main armhf qtchooser armhf 64-ga1b6736-5 [22.0 kB] Get:195 http://ftpmaster.internal/ubuntu bionic/main armhf qt5-qmake armhf 5.9.3+dfsg-0ubuntu1 [179 kB] Get:196 http://ftpmaster.internal/ubuntu bionic/main armhf qtbase5-dev-tools armhf 5.9.3+dfsg-0ubuntu1 [622 kB] Get:197 http://ftpmaster.internal/ubuntu bionic/main armhf qtbase5-dev armhf 5.9.3+dfsg-0ubuntu1 [892 kB] Get:198 http://ftpmaster.internal/ubuntu bionic/universe armhf qtscript5-dev armhf 5.9.3+dfsg-0ubuntu1 [18.5 kB] Get:199 http://ftpmaster.internal/ubuntu bionic/main armhf libmagic-mgc armhf 1:5.32-1 [184 kB] Get:200 http://ftpmaster.internal/ubuntu bionic/main armhf libmagic1 armhf 1:5.32-1 [62.6 kB] Get:201 http://ftpmaster.internal/ubuntu bionic/main armhf file armhf 1:5.32-1 [21.4 kB] Get:202 http://ftpmaster.internal/ubuntu bionic/main armhf netbase all 5.4 [12.7 kB] Get:203 http://ftpmaster.internal/ubuntu bionic/main armhf gettext-base armhf 0.19.8.1-4ubuntu2 [45.9 kB] Get:204 http://ftpmaster.internal/ubuntu bionic/main armhf libxmuu1 armhf 2:1.1.2-2 [9130 B] Get:205 http://ftpmaster.internal/ubuntu bionic/main armhf xauth armhf 1:1.0.10-1 [21.7 kB] Get:206 http://ftpmaster.internal/ubuntu bionic/main armhf libsigsegv2 armhf 2.11-1 [12.6 kB] Get:207 http://ftpmaster.internal/ubuntu bionic/main armhf m4 armhf 1.4.18-1 [181 kB] Get:208 http://ftpmaster.internal/ubuntu bionic/main armhf autoconf all 2.69-11 [322 kB] Get:209 http://ftpmaster.internal/ubuntu bionic/main armhf autotools-dev all 20171216.1 [39.7 kB] Get:210 http://ftpmaster.internal/ubuntu bionic/main armhf automake all 1:1.15.1-3ubuntu1 [509 kB] Get:211 http://ftpmaster.internal/ubuntu bionic/main armhf autopoint all 0.19.8.1-4ubuntu2 [412 kB] Get:212 http://ftpmaster.internal/ubuntu bionic/universe armhf cccc armhf 1:3.1.4-9 [162 kB] Get:213 http://ftpmaster.internal/ubuntu bionic/main armhf libtool all 2.4.6-2 [194 kB] Get:214 http://ftpmaster.internal/ubuntu bionic/main armhf dh-autoreconf all 15 [15.8 kB] Get:215 http://ftpmaster.internal/ubuntu bionic/main armhf libarchive-zip-perl all 1.60-1 [83.9 kB] Get:216 http://ftpmaster.internal/ubuntu bionic/main armhf libfile-stripnondeterminism-perl all 0.040-1 [13.9 kB] Get:217 http://ftpmaster.internal/ubuntu bionic/main armhf libtimedate-perl all 2.3000-2 [37.5 kB] Get:218 http://ftpmaster.internal/ubuntu bionic/main armhf dh-strip-nondeterminism all 0.040-1 [5196 B] Get:219 http://ftpmaster.internal/ubuntu bionic/main armhf libcroco3 armhf 0.6.12-2 [69.4 kB] Get:220 http://ftpmaster.internal/ubuntu bionic/main armhf gettext armhf 0.19.8.1-4ubuntu2 [1027 kB] Get:221 http://ftpmaster.internal/ubuntu bionic/main armhf intltool-debian all 0.35.0+20060710.4 [24.9 kB] Get:222 http://ftpmaster.internal/ubuntu bionic/main armhf po-debconf all 1.0.20 [232 kB] Get:223 http://ftpmaster.internal/ubuntu bionic/main armhf debhelper all 11ubuntu1 [887 kB] Get:224 http://ftpmaster.internal/ubuntu bionic/main armhf diffstat armhf 1.61-1build1 [21.1 kB] Get:225 http://ftpmaster.internal/ubuntu bionic/universe armhf lcov all 1.13-3 [93.1 kB] Get:226 http://ftpmaster.internal/ubuntu bionic/main armhf libapt-pkg-perl armhf 0.1.33build1 [63.8 kB] Get:227 http://ftpmaster.internal/ubuntu bionic/main armhf libboost1.65-dev armhf 1.65.1+dfsg-0ubuntu4 [7217 kB] Get:228 http://ftpmaster.internal/ubuntu bionic/main armhf libboost-dev armhf 1.65.1.0ubuntu1 [3128 B] Get:229 http://ftpmaster.internal/ubuntu bionic/main armhf libhtml-tagset-perl all 3.20-3 [12.1 kB] Get:230 http://ftpmaster.internal/ubuntu bionic/main armhf liburi-perl all 1.72-2 [76.6 kB] Get:231 http://ftpmaster.internal/ubuntu bionic/main armhf libhtml-parser-perl armhf 3.72-3build1 [82.7 kB] Get:232 http://ftpmaster.internal/ubuntu bionic/main armhf libcgi-pm-perl all 4.38-1 [185 kB] Get:233 http://ftpmaster.internal/ubuntu bionic/main armhf libsub-name-perl armhf 0.21-1build1 [11.1 kB] Get:234 http://ftpmaster.internal/ubuntu bionic/main armhf libclass-accessor-perl all 0.51-1 [21.2 kB] Get:235 http://ftpmaster.internal/ubuntu bionic/main armhf libclone-perl armhf 0.39-1 [9832 B] Get:236 http://ftpmaster.internal/ubuntu bionic/main armhf libdigest-hmac-perl all 1.03+dfsg-1 [12.1 kB] Get:237 http://ftpmaster.internal/ubuntu bionic/main armhf perl-openssl-defaults armhf 3 [6816 B] Get:238 http://ftpmaster.internal/ubuntu bionic/main armhf libnet-ssleay-perl armhf 1.82-1 [253 kB] Get:239 http://ftpmaster.internal/ubuntu bionic/main armhf libio-socket-ssl-perl all 2.052-1 [168 kB] Get:240 http://ftpmaster.internal/ubuntu bionic/main armhf libnet-smtp-ssl-perl all 1.04-1 [5948 B] Get:241 http://ftpmaster.internal/ubuntu bionic/main armhf libmailtools-perl all 2.18-1 [74.0 kB] Get:242 http://ftpmaster.internal/ubuntu bionic/main armhf libsocket6-perl armhf 0.27-1build2 [21.7 kB] Get:243 http://ftpmaster.internal/ubuntu bionic/main armhf libio-socket-inet6-perl all 2.72-2 [13.8 kB] Get:244 http://ftpmaster.internal/ubuntu bionic/main armhf libnet-ip-perl all 1.26-1 [31.5 kB] Get:245 http://ftpmaster.internal/ubuntu bionic/main armhf libnet-dns-perl all 1.10-2 [335 kB] Get:246 http://ftpmaster.internal/ubuntu bionic/main armhf libnet-domain-tld-perl all 1.75-1 [29.1 kB] Get:247 http://ftpmaster.internal/ubuntu bionic/main armhf libemail-valid-perl all 1.202-1 [16.3 kB] Get:248 http://ftpmaster.internal/ubuntu bionic/main armhf libexporter-tiny-perl all 1.000000-2 [34.6 kB] Get:249 http://ftpmaster.internal/ubuntu bionic/main armhf libipc-system-simple-perl all 1.25-3 [22.8 kB] Get:250 http://ftpmaster.internal/ubuntu bionic/main armhf libfile-basedir-perl all 0.07-1 [16.9 kB] Get:251 http://ftpmaster.internal/ubuntu bionic/main armhf libfontenc1 armhf 1:1.1.3-1 [11.7 kB] Get:252 http://ftpmaster.internal/ubuntu bionic/main armhf libgl1-mesa-glx armhf 17.2.4-0ubuntu2 [115 kB] Get:253 http://ftpmaster.internal/ubuntu bionic/main armhf libio-pty-perl armhf 1:1.08-1.1build4 [29.3 kB] Get:254 http://ftpmaster.internal/ubuntu bionic/main armhf libio-string-perl all 1.08-3 [11.1 kB] Get:255 http://ftpmaster.internal/ubuntu bionic/main armhf libipc-run-perl all 0.96-1 [89.9 kB] Get:256 http://ftpmaster.internal/ubuntu bionic/main armhf liblist-moreutils-perl armhf 0.416-1build3 [52.5 kB] Get:257 http://ftpmaster.internal/ubuntu bionic/main armhf libparse-debianchangelog-perl all 1.2.0-12 [49.5 kB] Get:258 http://ftpmaster.internal/ubuntu bionic/main armhf libpixman-1-0 armhf 0.34.0-2 [157 kB] Get:259 http://ftpmaster.internal/ubuntu bionic/universe armhf libqt5designer5 armhf 5.9.3-0ubuntu3 [2650 kB] Get:260 http://ftpmaster.internal/ubuntu bionic/universe armhf libqt5designercomponents5 armhf 5.9.3-0ubuntu3 [608 kB] Get:261 http://ftpmaster.internal/ubuntu bionic/universe armhf libqt5help5 armhf 5.9.3-0ubuntu3 [116 kB] Get:262 http://ftpmaster.internal/ubuntu bionic/universe armhf libqt5quickwidgets5 armhf 5.9.3-0ubuntu1 [32.1 kB] Get:263 http://ftpmaster.internal/ubuntu bionic/main armhf libqt5sql5-sqlite armhf 5.9.3+dfsg-0ubuntu1 [37.2 kB] Get:264 http://ftpmaster.internal/ubuntu bionic/main armhf libtext-levenshtein-perl all 0.13-1 [9612 B] Get:265 http://ftpmaster.internal/ubuntu bionic/main armhf libxt6 armhf 1:1.1.5-1 [129 kB] Get:266 http://ftpmaster.internal/ubuntu bionic/main armhf libxmu6 armhf 2:1.1.2-2 [38.3 kB] Get:267 http://ftpmaster.internal/ubuntu bionic/main armhf libxpm4 armhf 1:3.5.12-1 [29.0 kB] Get:268 http://ftpmaster.internal/ubuntu bionic/main armhf libxaw7 armhf 2:1.0.13-1 [141 kB] Get:269 http://ftpmaster.internal/ubuntu bionic/main armhf libxfont2 armhf 1:2.0.1-4ubuntu1 [75.8 kB] Get:270 http://ftpmaster.internal/ubuntu bionic/main armhf libxkbfile1 armhf 1:1.0.9-2 [55.9 kB] Get:271 http://ftpmaster.internal/ubuntu bionic/main armhf libxml-namespacesupport-perl all 1.12-1 [13.2 kB] Get:272 http://ftpmaster.internal/ubuntu bionic/main armhf libxml-sax-base-perl all 1.09-1 [18.8 kB] Get:273 http://ftpmaster.internal/ubuntu bionic/main armhf libxml-sax-perl all 0.99+dfsg-2ubuntu1 [64.6 kB] Get:274 http://ftpmaster.internal/ubuntu bionic/main armhf libxml-libxml-perl armhf 2.0128+dfsg-5 [298 kB] Get:275 http://ftpmaster.internal/ubuntu bionic/main armhf libxml-simple-perl all 2.24-1 [63.6 kB] Get:276 http://ftpmaster.internal/ubuntu bionic/main armhf libyaml-libyaml-perl armhf 0.63-2build1 [56.6 kB] Get:277 http://ftpmaster.internal/ubuntu bionic/main armhf patchutils armhf 0.3.4-2 [64.6 kB] Get:278 http://ftpmaster.internal/ubuntu bionic/main armhf t1utils armhf 1.41-2 [48.2 kB] Get:279 http://ftpmaster.internal/ubuntu bionic/main armhf lintian all 2.5.62 [824 kB] Get:280 http://ftpmaster.internal/ubuntu bionic/universe armhf qttools5-dev-tools armhf 5.9.3-0ubuntu3 [1966 kB] Get:281 http://ftpmaster.internal/ubuntu bionic/universe armhf qttools5-dev armhf 5.9.3-0ubuntu3 [173 kB] Get:282 http://ftpmaster.internal/ubuntu bionic/main armhf x11-xkb-utils armhf 7.7+3 [136 kB] Get:283 http://ftpmaster.internal/ubuntu bionic/main armhf xserver-common all 2:1.19.5-0ubuntu2 [26.9 kB] Get:284 http://ftpmaster.internal/ubuntu bionic/universe armhf xvfb armhf 2:1.19.5-0ubuntu2 [651 kB] Get:285 http://ftpmaster.internal/ubuntu bionic/universe armhf pkg-kde-tools all 0.15.28ubuntu1 [95.6 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 94.5 MB in 3s (24.1 MB/s) (Reading database ... 13406 files and directories currently installed.) Removing pkg-create-dbgsym (0.73) ... Selecting previously unselected package liblocale-gettext-perl. (Reading database ... 13397 files and directories currently installed.) Preparing to unpack .../00-liblocale-gettext-perl_1.07-3build2_armhf.deb ... Unpacking liblocale-gettext-perl (1.07-3build2) ... Selecting previously unselected package libpython3.6-minimal:armhf. Preparing to unpack .../01-libpython3.6-minimal_3.6.4-2_armhf.deb ... Unpacking libpython3.6-minimal:armhf (3.6.4-2) ... Selecting previously unselected package libexpat1:armhf. Preparing to unpack .../02-libexpat1_2.2.5-3_armhf.deb ... Unpacking libexpat1:armhf (2.2.5-3) ... Selecting previously unselected package python3.6-minimal. Preparing to unpack .../03-python3.6-minimal_3.6.4-2_armhf.deb ... Unpacking python3.6-minimal (3.6.4-2) ... Selecting previously unselected package python3-minimal. Preparing to unpack .../04-python3-minimal_3.6.3-0ubuntu2_armhf.deb ... Unpacking python3-minimal (3.6.3-0ubuntu2) ... Selecting previously unselected package mime-support. Preparing to unpack .../05-mime-support_3.60ubuntu1_all.deb ... Unpacking mime-support (3.60ubuntu1) ... Selecting previously unselected package libmpdec2:armhf. Preparing to unpack .../06-libmpdec2_2.4.2-1_armhf.deb ... Unpacking libmpdec2:armhf (2.4.2-1) ... Selecting previously unselected package libpython3.6-stdlib:armhf. Preparing to unpack .../07-libpython3.6-stdlib_3.6.4-2_armhf.deb ... Unpacking libpython3.6-stdlib:armhf (3.6.4-2) ... Selecting previously unselected package python3.6-2to3. Preparing to unpack .../08-python3.6-2to3_3.6.4-2_all.deb ... Unpacking python3.6-2to3 (3.6.4-2) ... Selecting previously unselected package python3-distutils. Preparing to unpack .../09-python3-distutils_3.6.4~rc1-6_all.deb ... Unpacking python3-distutils (3.6.4~rc1-6) ... Selecting previously unselected package python3.6. Preparing to unpack .../10-python3.6_3.6.4-2_armhf.deb ... Unpacking python3.6 (3.6.4-2) ... Selecting previously unselected package libpython3-stdlib:armhf. Preparing to unpack .../11-libpython3-stdlib_3.6.3-0ubuntu2_armhf.deb ... Unpacking libpython3-stdlib:armhf (3.6.3-0ubuntu2) ... Selecting previously unselected package dh-python. Preparing to unpack .../12-dh-python_2.20170125_all.deb ... Unpacking dh-python (2.20170125) ... Setting up libpython3.6-minimal:armhf (3.6.4-2) ... Setting up libexpat1:armhf (2.2.5-3) ... Setting up python3.6-minimal (3.6.4-2) ... Setting up python3-minimal (3.6.3-0ubuntu2) ... Selecting previously unselected package python3. (Reading database ... 14254 files and directories currently installed.) Preparing to unpack .../000-python3_3.6.3-0ubuntu2_armhf.deb ... Unpacking python3 (3.6.3-0ubuntu2) ... Selecting previously unselected package libxau6:armhf. Preparing to unpack .../001-libxau6_1%3a1.0.8-1_armhf.deb ... Unpacking libxau6:armhf (1:1.0.8-1) ... Selecting previously unselected package libbsd0:armhf. Preparing to unpack .../002-libbsd0_0.8.6-3_armhf.deb ... Unpacking libbsd0:armhf (0.8.6-3) ... Selecting previously unselected package libxdmcp6:armhf. Preparing to unpack .../003-libxdmcp6_1%3a1.1.2-3_armhf.deb ... Unpacking libxdmcp6:armhf (1:1.1.2-3) ... Selecting previously unselected package libxcb1:armhf. Preparing to unpack .../004-libxcb1_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb1:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libx11-data. Preparing to unpack .../005-libx11-data_2%3a1.6.4-3_all.deb ... Unpacking libx11-data (2:1.6.4-3) ... Selecting previously unselected package libx11-6:armhf. Preparing to unpack .../006-libx11-6_2%3a1.6.4-3_armhf.deb ... Unpacking libx11-6:armhf (2:1.6.4-3) ... Selecting previously unselected package libxext6:armhf. Preparing to unpack .../007-libxext6_2%3a1.3.3-1_armhf.deb ... Unpacking libxext6:armhf (2:1.3.3-1) ... Selecting previously unselected package groff-base. Preparing to unpack .../008-groff-base_1.22.3-9_armhf.deb ... Unpacking groff-base (1.22.3-9) ... Selecting previously unselected package bsdmainutils. Preparing to unpack .../009-bsdmainutils_9.0.14ubuntu1_armhf.deb ... Unpacking bsdmainutils (9.0.14ubuntu1) ... Selecting previously unselected package libpipeline1:armhf. Preparing to unpack .../010-libpipeline1_1.5.0-1_armhf.deb ... Unpacking libpipeline1:armhf (1.5.0-1) ... Selecting previously unselected package man-db. Preparing to unpack .../011-man-db_2.7.6.1-4_armhf.deb ... Unpacking man-db (2.7.6.1-4) ... Selecting previously unselected package cmake-data. Preparing to unpack .../012-cmake-data_3.9.5-1_all.deb ... Unpacking cmake-data (3.9.5-1) ... Selecting previously unselected package liblzo2-2:armhf. Preparing to unpack .../013-liblzo2-2_2.08-1.2_armhf.deb ... Unpacking liblzo2-2:armhf (2.08-1.2) ... Selecting previously unselected package libfreetype6:armhf. Preparing to unpack .../014-libfreetype6_2.8-0.2ubuntu2_armhf.deb ... Unpacking libfreetype6:armhf (2.8-0.2ubuntu2) ... Selecting previously unselected package libglib2.0-0:armhf. Preparing to unpack .../015-libglib2.0-0_2.54.1-1ubuntu1_armhf.deb ... Unpacking libglib2.0-0:armhf (2.54.1-1ubuntu1) ... Selecting previously unselected package libgraphite2-3:armhf. Preparing to unpack .../016-libgraphite2-3_1.3.10-8_armhf.deb ... Unpacking libgraphite2-3:armhf (1.3.10-8) ... Selecting previously unselected package libharfbuzz0b:armhf. Preparing to unpack .../017-libharfbuzz0b_1.7.2-1_armhf.deb ... Unpacking libharfbuzz0b:armhf (1.7.2-1) ... Selecting previously unselected package libicu-le-hb0:armhf. Preparing to unpack .../018-libicu-le-hb0_1.0.3+git161113-4_armhf.deb ... Unpacking libicu-le-hb0:armhf (1.0.3+git161113-4) ... Selecting previously unselected package libicu60:armhf. Preparing to unpack .../019-libicu60_60.2-1ubuntu1_armhf.deb ... Unpacking libicu60:armhf (60.2-1ubuntu1) ... Selecting previously unselected package libxml2:armhf. Preparing to unpack .../020-libxml2_2.9.4+dfsg1-5.2ubuntu1_armhf.deb ... Unpacking libxml2:armhf (2.9.4+dfsg1-5.2ubuntu1) ... Selecting previously unselected package libarchive13:armhf. Preparing to unpack .../021-libarchive13_3.2.2-3.1_armhf.deb ... Unpacking libarchive13:armhf (3.2.2-3.1) ... Selecting previously unselected package libcurl3:armhf. Preparing to unpack .../022-libcurl3_7.57.0-1ubuntu1_armhf.deb ... Unpacking libcurl3:armhf (7.57.0-1ubuntu1) ... Selecting previously unselected package libjsoncpp1:armhf. Preparing to unpack .../023-libjsoncpp1_1.7.4-3_armhf.deb ... Unpacking libjsoncpp1:armhf (1.7.4-3) ... Selecting previously unselected package librhash0. Preparing to unpack .../024-librhash0_1.3.4-3_armhf.deb ... Unpacking librhash0 (1.3.4-3) ... Selecting previously unselected package libuv1:armhf. Preparing to unpack .../025-libuv1_1.18.0-3_armhf.deb ... Unpacking libuv1:armhf (1.18.0-3) ... Selecting previously unselected package cmake. Preparing to unpack .../026-cmake_3.9.5-1_armhf.deb ... Unpacking cmake (3.9.5-1) ... Selecting previously unselected package ucf. Preparing to unpack .../027-ucf_3.0036_all.deb ... Moving old data out of the way Unpacking ucf (3.0036) ... Selecting previously unselected package fonts-dejavu-core. Preparing to unpack .../028-fonts-dejavu-core_2.37-1_all.deb ... Unpacking fonts-dejavu-core (2.37-1) ... Selecting previously unselected package fontconfig-config. Preparing to unpack .../029-fontconfig-config_2.12.6-0ubuntu1_all.deb ... Unpacking fontconfig-config (2.12.6-0ubuntu1) ... Selecting previously unselected package libfontconfig1:armhf. Preparing to unpack .../030-libfontconfig1_2.12.6-0ubuntu1_armhf.deb ... Unpacking libfontconfig1:armhf (2.12.6-0ubuntu1) ... Selecting previously unselected package fontconfig. Preparing to unpack .../031-fontconfig_2.12.6-0ubuntu1_armhf.deb ... Unpacking fontconfig (2.12.6-0ubuntu1) ... Selecting previously unselected package libjpeg-turbo8:armhf. Preparing to unpack .../032-libjpeg-turbo8_1.5.2-0ubuntu5_armhf.deb ... Unpacking libjpeg-turbo8:armhf (1.5.2-0ubuntu5) ... Selecting previously unselected package libmtdev1:armhf. Preparing to unpack .../033-libmtdev1_1.1.5-1ubuntu2_armhf.deb ... Unpacking libmtdev1:armhf (1.1.5-1ubuntu2) ... Selecting previously unselected package libdouble-conversion1:armhf. Preparing to unpack .../034-libdouble-conversion1_2.0.1-4ubuntu1_armhf.deb ... Unpacking libdouble-conversion1:armhf (2.0.1-4ubuntu1) ... Selecting previously unselected package libqt5core5a:armhf. Preparing to unpack .../035-libqt5core5a_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking libqt5core5a:armhf (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5script5:armhf. Preparing to unpack .../036-libqt5script5_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking libqt5script5:armhf (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libdrm-common. Preparing to unpack .../037-libdrm-common_2.4.89-1_all.deb ... Unpacking libdrm-common (2.4.89-1) ... Selecting previously unselected package libdrm2:armhf. Preparing to unpack .../038-libdrm2_2.4.89-1_armhf.deb ... Unpacking libdrm2:armhf (2.4.89-1) ... Selecting previously unselected package libwayland-client0:armhf. Preparing to unpack .../039-libwayland-client0_1.14.0-1_armhf.deb ... Unpacking libwayland-client0:armhf (1.14.0-1) ... Selecting previously unselected package libwayland-server0:armhf. Preparing to unpack .../040-libwayland-server0_1.14.0-1_armhf.deb ... Unpacking libwayland-server0:armhf (1.14.0-1) ... Selecting previously unselected package libgbm1:armhf. Preparing to unpack .../041-libgbm1_17.2.4-0ubuntu2_armhf.deb ... Unpacking libgbm1:armhf (17.2.4-0ubuntu2) ... Selecting previously unselected package libboost-system1.65.1:armhf. Preparing to unpack .../042-libboost-system1.65.1_1.65.1+dfsg-0ubuntu4_armhf.deb ... Unpacking libboost-system1.65.1:armhf (1.65.1+dfsg-0ubuntu4) ... Selecting previously unselected package libcapnp-0.6.1. Preparing to unpack .../043-libcapnp-0.6.1_0.6.1-1_armhf.deb ... Unpacking libcapnp-0.6.1 (0.6.1-1) ... Selecting previously unselected package libboost-filesystem1.65.1:armhf. Preparing to unpack .../044-libboost-filesystem1.65.1_1.65.1+dfsg-0ubuntu4_armhf.deb ... Unpacking libboost-filesystem1.65.1:armhf (1.65.1+dfsg-0ubuntu4) ... Selecting previously unselected package libmircore1:armhf. Preparing to unpack .../045-libmircore1_0.29.0-0ubuntu1_armhf.deb ... Unpacking libmircore1:armhf (0.29.0-0ubuntu1) ... Selecting previously unselected package libmircommon7:armhf. Preparing to unpack .../046-libmircommon7_0.29.0-0ubuntu1_armhf.deb ... Unpacking libmircommon7:armhf (0.29.0-0ubuntu1) ... Selecting previously unselected package libprotobuf-lite10:armhf. Preparing to unpack .../047-libprotobuf-lite10_3.0.0-9ubuntu5_armhf.deb ... Unpacking libprotobuf-lite10:armhf (3.0.0-9ubuntu5) ... Selecting previously unselected package libmirprotobuf3:armhf. Preparing to unpack .../048-libmirprotobuf3_0.29.0-0ubuntu1_armhf.deb ... Unpacking libmirprotobuf3:armhf (0.29.0-0ubuntu1) ... Selecting previously unselected package xkb-data. Preparing to unpack .../049-xkb-data_2.19-1.1ubuntu1_all.deb ... Unpacking xkb-data (2.19-1.1ubuntu1) ... Selecting previously unselected package libxkbcommon0:armhf. Preparing to unpack .../050-libxkbcommon0_0.8.0-1_armhf.deb ... Unpacking libxkbcommon0:armhf (0.8.0-1) ... Selecting previously unselected package libmirclient9:armhf. Preparing to unpack .../051-libmirclient9_0.29.0-0ubuntu1_armhf.deb ... Unpacking libmirclient9:armhf (0.29.0-0ubuntu1) ... Selecting previously unselected package libx11-xcb1:armhf. Preparing to unpack .../052-libx11-xcb1_2%3a1.6.4-3_armhf.deb ... Unpacking libx11-xcb1:armhf (2:1.6.4-3) ... Selecting previously unselected package libxcb-dri2-0:armhf. Preparing to unpack .../053-libxcb-dri2-0_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-dri2-0:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-dri3-0:armhf. Preparing to unpack .../054-libxcb-dri3-0_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-dri3-0:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-present0:armhf. Preparing to unpack .../055-libxcb-present0_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-present0:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-sync1:armhf. Preparing to unpack .../056-libxcb-sync1_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-sync1:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-xfixes0:armhf. Preparing to unpack .../057-libxcb-xfixes0_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-xfixes0:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxshmfence1:armhf. Preparing to unpack .../058-libxshmfence1_1.2-1_armhf.deb ... Unpacking libxshmfence1:armhf (1.2-1) ... Selecting previously unselected package libdrm-amdgpu1:armhf. Preparing to unpack .../059-libdrm-amdgpu1_2.4.89-1_armhf.deb ... Unpacking libdrm-amdgpu1:armhf (2.4.89-1) ... Selecting previously unselected package libdrm-etnaviv1:armhf. Preparing to unpack .../060-libdrm-etnaviv1_2.4.89-1_armhf.deb ... Unpacking libdrm-etnaviv1:armhf (2.4.89-1) ... Selecting previously unselected package libdrm-freedreno1:armhf. Preparing to unpack .../061-libdrm-freedreno1_2.4.89-1_armhf.deb ... Unpacking libdrm-freedreno1:armhf (2.4.89-1) ... Selecting previously unselected package libdrm-nouveau2:armhf. Preparing to unpack .../062-libdrm-nouveau2_2.4.89-1_armhf.deb ... Unpacking libdrm-nouveau2:armhf (2.4.89-1) ... Selecting previously unselected package libdrm-radeon1:armhf. Preparing to unpack .../063-libdrm-radeon1_2.4.89-1_armhf.deb ... Unpacking libdrm-radeon1:armhf (2.4.89-1) ... Selecting previously unselected package libelf1:armhf. Preparing to unpack .../064-libelf1_0.170-0.2_armhf.deb ... Unpacking libelf1:armhf (0.170-0.2) ... Selecting previously unselected package libglapi-mesa:armhf. Preparing to unpack .../065-libglapi-mesa_17.2.4-0ubuntu2_armhf.deb ... Unpacking libglapi-mesa:armhf (17.2.4-0ubuntu2) ... Selecting previously unselected package libedit2:armhf. Preparing to unpack .../066-libedit2_3.1-20170329-1_armhf.deb ... Unpacking libedit2:armhf (3.1-20170329-1) ... Selecting previously unselected package libllvm5.0:armhf. Preparing to unpack .../067-libllvm5.0_1%3a5.0.1-2_armhf.deb ... Unpacking libllvm5.0:armhf (1:5.0.1-2) ... Selecting previously unselected package libsensors4:armhf. Preparing to unpack .../068-libsensors4_1%3a3.4.0-4_armhf.deb ... Unpacking libsensors4:armhf (1:3.4.0-4) ... Selecting previously unselected package libgl1-mesa-dri:armhf. Preparing to unpack .../069-libgl1-mesa-dri_17.2.4-0ubuntu2_armhf.deb ... Unpacking libgl1-mesa-dri:armhf (17.2.4-0ubuntu2) ... Selecting previously unselected package libegl1-mesa:armhf. Preparing to unpack .../070-libegl1-mesa_17.2.4-0ubuntu2_armhf.deb ... Unpacking libegl1-mesa:armhf (17.2.4-0ubuntu2) ... Selecting previously unselected package libgles2-mesa:armhf. Preparing to unpack .../071-libgles2-mesa_17.2.4-0ubuntu2_armhf.deb ... Unpacking libgles2-mesa:armhf (17.2.4-0ubuntu2) ... Selecting previously unselected package x11-common. Preparing to unpack .../072-x11-common_1%3a7.7+19ubuntu3_all.deb ... Unpacking x11-common (1:7.7+19ubuntu3) ... Selecting previously unselected package libice6:armhf. Preparing to unpack .../073-libice6_2%3a1.0.9-2_armhf.deb ... Unpacking libice6:armhf (2:1.0.9-2) ... Selecting previously unselected package libevdev2:armhf. Preparing to unpack .../074-libevdev2_1.5.7+dfsg-1_armhf.deb ... Unpacking libevdev2:armhf (1.5.7+dfsg-1) ... Selecting previously unselected package libgudev-1.0-0:armhf. Preparing to unpack .../075-libgudev-1.0-0_1%3a232-1_armhf.deb ... Unpacking libgudev-1.0-0:armhf (1:232-1) ... Selecting previously unselected package libwacom-common. Preparing to unpack .../076-libwacom-common_0.26-1_all.deb ... Unpacking libwacom-common (0.26-1) ... Selecting previously unselected package libwacom2:armhf. Preparing to unpack .../077-libwacom2_0.26-1_armhf.deb ... Unpacking libwacom2:armhf (0.26-1) ... Selecting previously unselected package libinput-bin. Preparing to unpack .../078-libinput-bin_1.9.4-2_armhf.deb ... Unpacking libinput-bin (1.9.4-2) ... Selecting previously unselected package libinput10:armhf. Preparing to unpack .../079-libinput10_1.9.4-2_armhf.deb ... Unpacking libinput10:armhf (1.9.4-2) ... Selecting previously unselected package libjpeg8:armhf. Preparing to unpack .../080-libjpeg8_8c-2ubuntu8_armhf.deb ... Unpacking libjpeg8:armhf (8c-2ubuntu8) ... Selecting previously unselected package libdbus-1-3:armhf. Preparing to unpack .../081-libdbus-1-3_1.12.2-1ubuntu1_armhf.deb ... Unpacking libdbus-1-3:armhf (1.12.2-1ubuntu1) ... Selecting previously unselected package libqt5dbus5:armhf. Preparing to unpack .../082-libqt5dbus5_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking libqt5dbus5:armhf (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5network5:armhf. Preparing to unpack .../083-libqt5network5_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking libqt5network5:armhf (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libsm6:armhf. Preparing to unpack .../084-libsm6_2%3a1.2.2-1_armhf.deb ... Unpacking libsm6:armhf (2:1.2.2-1) ... Selecting previously unselected package libxcb-icccm4:armhf. Preparing to unpack .../085-libxcb-icccm4_0.4.1-1ubuntu1_armhf.deb ... Unpacking libxcb-icccm4:armhf (0.4.1-1ubuntu1) ... Selecting previously unselected package libxcb-shm0:armhf. Preparing to unpack .../086-libxcb-shm0_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-shm0:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-util1:armhf. Preparing to unpack .../087-libxcb-util1_0.4.0-0ubuntu3_armhf.deb ... Unpacking libxcb-util1:armhf (0.4.0-0ubuntu3) ... Selecting previously unselected package libxcb-image0:armhf. Preparing to unpack .../088-libxcb-image0_0.4.0-1build1_armhf.deb ... Unpacking libxcb-image0:armhf (0.4.0-1build1) ... Selecting previously unselected package libxcb-keysyms1:armhf. Preparing to unpack .../089-libxcb-keysyms1_0.4.0-1_armhf.deb ... Unpacking libxcb-keysyms1:armhf (0.4.0-1) ... Selecting previously unselected package libxcb-randr0:armhf. Preparing to unpack .../090-libxcb-randr0_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-randr0:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-render0:armhf. Preparing to unpack .../091-libxcb-render0_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-render0:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-render-util0:armhf. Preparing to unpack .../092-libxcb-render-util0_0.3.9-1_armhf.deb ... Unpacking libxcb-render-util0:armhf (0.3.9-1) ... Selecting previously unselected package libxcb-shape0:armhf. Preparing to unpack .../093-libxcb-shape0_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-shape0:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-xinerama0:armhf. Preparing to unpack .../094-libxcb-xinerama0_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-xinerama0:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-xkb1:armhf. Preparing to unpack .../095-libxcb-xkb1_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-xkb1:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxi6:armhf. Preparing to unpack .../096-libxi6_2%3a1.7.9-1_armhf.deb ... Unpacking libxi6:armhf (2:1.7.9-1) ... Selecting previously unselected package libxkbcommon-x11-0:armhf. Preparing to unpack .../097-libxkbcommon-x11-0_0.8.0-1_armhf.deb ... Unpacking libxkbcommon-x11-0:armhf (0.8.0-1) ... Selecting previously unselected package libqt5gui5:armhf. Preparing to unpack .../098-libqt5gui5_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking libqt5gui5:armhf (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5widgets5:armhf. Preparing to unpack .../099-libqt5widgets5_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking libqt5widgets5:armhf (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5scripttools5:armhf. Preparing to unpack .../100-libqt5scripttools5_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking libqt5scripttools5:armhf (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libcap2-bin. Preparing to unpack .../101-libcap2-bin_1%3a2.25-1.2_armhf.deb ... Unpacking libcap2-bin (1:2.25-1.2) ... Selecting previously unselected package libgstreamer1.0-0:armhf. Preparing to unpack .../102-libgstreamer1.0-0_1.12.4-1_armhf.deb ... Unpacking libgstreamer1.0-0:armhf (1.12.4-1) ... Selecting previously unselected package liborc-0.4-0:armhf. Preparing to unpack .../103-liborc-0.4-0_1%3a0.4.28-1_armhf.deb ... Unpacking liborc-0.4-0:armhf (1:0.4.28-1) ... Selecting previously unselected package iso-codes. Preparing to unpack .../104-iso-codes_3.77-1_all.deb ... Unpacking iso-codes (3.77-1) ... Selecting previously unselected package libgstreamer-plugins-base1.0-0:armhf. Preparing to unpack .../105-libgstreamer-plugins-base1.0-0_1.12.4-1_armhf.deb ... Unpacking libgstreamer-plugins-base1.0-0:armhf (1.12.4-1) ... Selecting previously unselected package libhyphen0:armhf. Preparing to unpack .../106-libhyphen0_2.8.8-5_armhf.deb ... Unpacking libhyphen0:armhf (2.8.8-5) ... Selecting previously unselected package libqt5positioning5:armhf. Preparing to unpack .../107-libqt5positioning5_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking libqt5positioning5:armhf (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libavahi-common-data:armhf. Preparing to unpack .../108-libavahi-common-data_0.7-3ubuntu1_armhf.deb ... Unpacking libavahi-common-data:armhf (0.7-3ubuntu1) ... Selecting previously unselected package libavahi-common3:armhf. Preparing to unpack .../109-libavahi-common3_0.7-3ubuntu1_armhf.deb ... Unpacking libavahi-common3:armhf (0.7-3ubuntu1) ... Selecting previously unselected package libavahi-client3:armhf. Preparing to unpack .../110-libavahi-client3_0.7-3ubuntu1_armhf.deb ... Unpacking libavahi-client3:armhf (0.7-3ubuntu1) ... Selecting previously unselected package libcups2:armhf. Preparing to unpack .../111-libcups2_2.2.6-4_armhf.deb ... Unpacking libcups2:armhf (2.2.6-4) ... Selecting previously unselected package libqt5printsupport5:armhf. Preparing to unpack .../112-libqt5printsupport5_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking libqt5printsupport5:armhf (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5qml5:armhf. Preparing to unpack .../113-libqt5qml5_5.9.3-0ubuntu1_armhf.deb ... Unpacking libqt5qml5:armhf (5.9.3-0ubuntu1) ... Selecting previously unselected package libqt5quick5:armhf. Preparing to unpack .../114-libqt5quick5_5.9.3-0ubuntu1_armhf.deb ... Unpacking libqt5quick5:armhf (5.9.3-0ubuntu1) ... Selecting previously unselected package libqt5sensors5:armhf. Preparing to unpack .../115-libqt5sensors5_5.9.3-0ubuntu1_armhf.deb ... Unpacking libqt5sensors5:armhf (5.9.3-0ubuntu1) ... Selecting previously unselected package libqt5webchannel5:armhf. Preparing to unpack .../116-libqt5webchannel5_5.9.3-0ubuntu1_armhf.deb ... Unpacking libqt5webchannel5:armhf (5.9.3-0ubuntu1) ... Selecting previously unselected package libwebp6:armhf. Preparing to unpack .../117-libwebp6_0.6.0-4_armhf.deb ... Unpacking libwebp6:armhf (0.6.0-4) ... Selecting previously unselected package libxslt1.1:armhf. Preparing to unpack .../118-libxslt1.1_1.1.29-5_armhf.deb ... Unpacking libxslt1.1:armhf (1.1.29-5) ... Selecting previously unselected package libqt5webkit5:armhf. Preparing to unpack .../119-libqt5webkit5_5.212.0~alpha2-5build4_armhf.deb ... Unpacking libqt5webkit5:armhf (5.212.0~alpha2-5build4) ... Selecting previously unselected package libxxf86vm1:armhf. Preparing to unpack .../120-libxxf86vm1_1%3a1.1.4-1_armhf.deb ... Unpacking libxxf86vm1:armhf (1:1.1.4-1) ... Selecting previously unselected package libwayland-egl1-mesa:armhf. Preparing to unpack .../121-libwayland-egl1-mesa_17.2.4-0ubuntu2_armhf.deb ... Unpacking libwayland-egl1-mesa:armhf (17.2.4-0ubuntu2) ... Selecting previously unselected package libdrm-omap1:armhf. Preparing to unpack .../122-libdrm-omap1_2.4.89-1_armhf.deb ... Unpacking libdrm-omap1:armhf (2.4.89-1) ... Selecting previously unselected package libdrm-exynos1:armhf. Preparing to unpack .../123-libdrm-exynos1_2.4.89-1_armhf.deb ... Unpacking libdrm-exynos1:armhf (2.4.89-1) ... Selecting previously unselected package libdrm-tegra0:armhf. Preparing to unpack .../124-libdrm-tegra0_2.4.89-1_armhf.deb ... Unpacking libdrm-tegra0:armhf (2.4.89-1) ... Selecting previously unselected package libdrm-dev:armhf. Preparing to unpack .../125-libdrm-dev_2.4.89-1_armhf.deb ... Unpacking libdrm-dev:armhf (2.4.89-1) ... Selecting previously unselected package x11proto-dri2-dev. Preparing to unpack .../126-x11proto-dri2-dev_2.8-2_all.deb ... Unpacking x11proto-dri2-dev (2.8-2) ... Selecting previously unselected package x11proto-gl-dev. Preparing to unpack .../127-x11proto-gl-dev_1.4.17-1_all.deb ... Unpacking x11proto-gl-dev (1.4.17-1) ... Selecting previously unselected package xorg-sgml-doctools. Preparing to unpack .../128-xorg-sgml-doctools_1%3a1.11-1_all.deb ... Unpacking xorg-sgml-doctools (1:1.11-1) ... Selecting previously unselected package x11proto-core-dev. Preparing to unpack .../129-x11proto-core-dev_7.0.31-1_all.deb ... Unpacking x11proto-core-dev (7.0.31-1) ... Selecting previously unselected package libxau-dev:armhf. Preparing to unpack .../130-libxau-dev_1%3a1.0.8-1_armhf.deb ... Unpacking libxau-dev:armhf (1:1.0.8-1) ... Selecting previously unselected package libxdmcp-dev:armhf. Preparing to unpack .../131-libxdmcp-dev_1%3a1.1.2-3_armhf.deb ... Unpacking libxdmcp-dev:armhf (1:1.1.2-3) ... Selecting previously unselected package x11proto-input-dev. Preparing to unpack .../132-x11proto-input-dev_2.3.2-1_all.deb ... Unpacking x11proto-input-dev (2.3.2-1) ... Selecting previously unselected package x11proto-kb-dev. Preparing to unpack .../133-x11proto-kb-dev_1.0.7-1_all.deb ... Unpacking x11proto-kb-dev (1.0.7-1) ... Selecting previously unselected package xtrans-dev. Preparing to unpack .../134-xtrans-dev_1.3.5-1_all.deb ... Unpacking xtrans-dev (1.3.5-1) ... Selecting previously unselected package libpthread-stubs0-dev:armhf. Preparing to unpack .../135-libpthread-stubs0-dev_0.3-4_armhf.deb ... Unpacking libpthread-stubs0-dev:armhf (0.3-4) ... Selecting previously unselected package libxcb1-dev:armhf. Preparing to unpack .../136-libxcb1-dev_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb1-dev:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libx11-dev:armhf. Preparing to unpack .../137-libx11-dev_2%3a1.6.4-3_armhf.deb ... Unpacking libx11-dev:armhf (2:1.6.4-3) ... Selecting previously unselected package x11proto-xext-dev. Preparing to unpack .../138-x11proto-xext-dev_7.3.0-1_all.deb ... Unpacking x11proto-xext-dev (7.3.0-1) ... Selecting previously unselected package libxext-dev:armhf. Preparing to unpack .../139-libxext-dev_2%3a1.3.3-1_armhf.deb ... Unpacking libxext-dev:armhf (2:1.3.3-1) ... Selecting previously unselected package x11proto-xf86vidmode-dev. Preparing to unpack .../140-x11proto-xf86vidmode-dev_2.3.1-2_all.deb ... Unpacking x11proto-xf86vidmode-dev (2.3.1-2) ... Selecting previously unselected package libxxf86vm-dev:armhf. Preparing to unpack .../141-libxxf86vm-dev_1%3a1.1.4-1_armhf.deb ... Unpacking libxxf86vm-dev:armhf (1:1.1.4-1) ... Selecting previously unselected package libxdamage1:armhf. Preparing to unpack .../142-libxdamage1_1%3a1.1.4-3_armhf.deb ... Unpacking libxdamage1:armhf (1:1.1.4-3) ... Selecting previously unselected package libxfixes3:armhf. Preparing to unpack .../143-libxfixes3_1%3a5.0.3-1_armhf.deb ... Unpacking libxfixes3:armhf (1:5.0.3-1) ... Selecting previously unselected package x11proto-fixes-dev. Preparing to unpack .../144-x11proto-fixes-dev_1%3a5.0-2ubuntu2_all.deb ... Unpacking x11proto-fixes-dev (1:5.0-2ubuntu2) ... Selecting previously unselected package libxfixes-dev:armhf. Preparing to unpack .../145-libxfixes-dev_1%3a5.0.3-1_armhf.deb ... Unpacking libxfixes-dev:armhf (1:5.0.3-1) ... Selecting previously unselected package x11proto-damage-dev. Preparing to unpack .../146-x11proto-damage-dev_1%3a1.2.1-2_all.deb ... Unpacking x11proto-damage-dev (1:1.2.1-2) ... Selecting previously unselected package libxdamage-dev:armhf. Preparing to unpack .../147-libxdamage-dev_1%3a1.1.4-3_armhf.deb ... Unpacking libxdamage-dev:armhf (1:1.1.4-3) ... Selecting previously unselected package libxcb-glx0:armhf. Preparing to unpack .../148-libxcb-glx0_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-glx0:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-glx0-dev:armhf. Preparing to unpack .../149-libxcb-glx0-dev_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-glx0-dev:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-dri2-0-dev:armhf. Preparing to unpack .../150-libxcb-dri2-0-dev_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-dri2-0-dev:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-dri3-dev:armhf. Preparing to unpack .../151-libxcb-dri3-dev_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-dri3-dev:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-render0-dev:armhf. Preparing to unpack .../152-libxcb-render0-dev_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-render0-dev:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-randr0-dev:armhf. Preparing to unpack .../153-libxcb-randr0-dev_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-randr0-dev:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-shape0-dev:armhf. Preparing to unpack .../154-libxcb-shape0-dev_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-shape0-dev:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-xfixes0-dev:armhf. Preparing to unpack .../155-libxcb-xfixes0-dev_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-xfixes0-dev:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-sync-dev:armhf. Preparing to unpack .../156-libxcb-sync-dev_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-sync-dev:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-present-dev:armhf. Preparing to unpack .../157-libxcb-present-dev_1.12-1ubuntu1_armhf.deb ... Unpacking libxcb-present-dev:armhf (1.12-1ubuntu1) ... Selecting previously unselected package libxshmfence-dev:armhf. Preparing to unpack .../158-libxshmfence-dev_1.2-1_armhf.deb ... Unpacking libxshmfence-dev:armhf (1.2-1) ... Selecting previously unselected package libx11-xcb-dev:armhf. Preparing to unpack .../159-libx11-xcb-dev_2%3a1.6.4-3_armhf.deb ... Unpacking libx11-xcb-dev:armhf (2:1.6.4-3) ... Selecting previously unselected package libwayland-cursor0:armhf. Preparing to unpack .../160-libwayland-cursor0_1.14.0-1_armhf.deb ... Unpacking libwayland-cursor0:armhf (1.14.0-1) ... Selecting previously unselected package libwayland-bin. Preparing to unpack .../161-libwayland-bin_1.14.0-1_armhf.deb ... Unpacking libwayland-bin (1.14.0-1) ... Selecting previously unselected package libwayland-dev:armhf. Preparing to unpack .../162-libwayland-dev_1.14.0-1_armhf.deb ... Unpacking libwayland-dev:armhf (1.14.0-1) ... Selecting previously unselected package libmircore-dev:armhf. Preparing to unpack .../163-libmircore-dev_0.29.0-0ubuntu1_armhf.deb ... Unpacking libmircore-dev:armhf (0.29.0-0ubuntu1) ... Selecting previously unselected package zlib1g-dev:armhf. Preparing to unpack .../164-zlib1g-dev_1%3a1.2.11.dfsg-0ubuntu2_armhf.deb ... Unpacking zlib1g-dev:armhf (1:1.2.11.dfsg-0ubuntu2) ... Selecting previously unselected package libprotobuf10:armhf. Preparing to unpack .../165-libprotobuf10_3.0.0-9ubuntu5_armhf.deb ... Unpacking libprotobuf10:armhf (3.0.0-9ubuntu5) ... Selecting previously unselected package libprotobuf-dev:armhf. Preparing to unpack .../166-libprotobuf-dev_3.0.0-9ubuntu5_armhf.deb ... Unpacking libprotobuf-dev:armhf (3.0.0-9ubuntu5) ... Selecting previously unselected package libxkbcommon-dev. Preparing to unpack .../167-libxkbcommon-dev_0.8.0-1_armhf.deb ... Unpacking libxkbcommon-dev (0.8.0-1) ... Selecting previously unselected package libmircommon-dev:armhf. Preparing to unpack .../168-libmircommon-dev_0.29.0-0ubuntu1_armhf.deb ... Unpacking libmircommon-dev:armhf (0.29.0-0ubuntu1) ... Selecting previously unselected package libmircookie2:armhf. Preparing to unpack .../169-libmircookie2_0.29.0-0ubuntu1_armhf.deb ... Unpacking libmircookie2:armhf (0.29.0-0ubuntu1) ... Selecting previously unselected package libmircookie-dev:armhf. Preparing to unpack .../170-libmircookie-dev_0.29.0-0ubuntu1_armhf.deb ... Unpacking libmircookie-dev:armhf (0.29.0-0ubuntu1) ... Selecting previously unselected package libmirclient-dev:armhf. Preparing to unpack .../171-libmirclient-dev_0.29.0-0ubuntu1_armhf.deb ... Unpacking libmirclient-dev:armhf (0.29.0-0ubuntu1) ... Selecting previously unselected package libegl1-mesa-dev:armhf. Preparing to unpack .../172-libegl1-mesa-dev_17.2.4-0ubuntu2_armhf.deb ... Unpacking libegl1-mesa-dev:armhf (17.2.4-0ubuntu2) ... Selecting previously unselected package libgles2-mesa-dev:armhf. Preparing to unpack .../173-libgles2-mesa-dev_17.2.4-0ubuntu2_armhf.deb ... Unpacking libgles2-mesa-dev:armhf (17.2.4-0ubuntu2) ... Selecting previously unselected package libqt5concurrent5:armhf. Preparing to unpack .../174-libqt5concurrent5_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking libqt5concurrent5:armhf (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5sql5:armhf. Preparing to unpack .../175-libqt5sql5_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking libqt5sql5:armhf (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5test5:armhf. Preparing to unpack .../176-libqt5test5_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking libqt5test5:armhf (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5xml5:armhf. Preparing to unpack .../177-libqt5xml5_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking libqt5xml5:armhf (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package qt5-qmake-bin. Preparing to unpack .../178-qt5-qmake-bin_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking qt5-qmake-bin (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package qtchooser. Preparing to unpack .../179-qtchooser_64-ga1b6736-5_armhf.deb ... Unpacking qtchooser (64-ga1b6736-5) ... Selecting previously unselected package qt5-qmake:armhf. Preparing to unpack .../180-qt5-qmake_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking qt5-qmake:armhf (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package qtbase5-dev-tools. Preparing to unpack .../181-qtbase5-dev-tools_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking qtbase5-dev-tools (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package qtbase5-dev:armhf. Preparing to unpack .../182-qtbase5-dev_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking qtbase5-dev:armhf (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package qtscript5-dev:armhf. Preparing to unpack .../183-qtscript5-dev_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking qtscript5-dev:armhf (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../184-libmagic-mgc_1%3a5.32-1_armhf.deb ... Unpacking libmagic-mgc (1:5.32-1) ... Selecting previously unselected package libmagic1:armhf. Preparing to unpack .../185-libmagic1_1%3a5.32-1_armhf.deb ... Unpacking libmagic1:armhf (1:5.32-1) ... Selecting previously unselected package file. Preparing to unpack .../186-file_1%3a5.32-1_armhf.deb ... Unpacking file (1:5.32-1) ... Selecting previously unselected package netbase. Preparing to unpack .../187-netbase_5.4_all.deb ... Unpacking netbase (5.4) ... Selecting previously unselected package gettext-base. Preparing to unpack .../188-gettext-base_0.19.8.1-4ubuntu2_armhf.deb ... Unpacking gettext-base (0.19.8.1-4ubuntu2) ... Selecting previously unselected package libxmuu1:armhf. Preparing to unpack .../189-libxmuu1_2%3a1.1.2-2_armhf.deb ... Unpacking libxmuu1:armhf (2:1.1.2-2) ... Selecting previously unselected package xauth. Preparing to unpack .../190-xauth_1%3a1.0.10-1_armhf.deb ... Unpacking xauth (1:1.0.10-1) ... Selecting previously unselected package libsigsegv2:armhf. Preparing to unpack .../191-libsigsegv2_2.11-1_armhf.deb ... Unpacking libsigsegv2:armhf (2.11-1) ... Selecting previously unselected package m4. Preparing to unpack .../192-m4_1.4.18-1_armhf.deb ... Unpacking m4 (1.4.18-1) ... Selecting previously unselected package autoconf. Preparing to unpack .../193-autoconf_2.69-11_all.deb ... Unpacking autoconf (2.69-11) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../194-autotools-dev_20171216.1_all.deb ... Unpacking autotools-dev (20171216.1) ... Selecting previously unselected package automake. Preparing to unpack .../195-automake_1%3a1.15.1-3ubuntu1_all.deb ... Unpacking automake (1:1.15.1-3ubuntu1) ... Selecting previously unselected package autopoint. Preparing to unpack .../196-autopoint_0.19.8.1-4ubuntu2_all.deb ... Unpacking autopoint (0.19.8.1-4ubuntu2) ... Selecting previously unselected package cccc. Preparing to unpack .../197-cccc_1%3a3.1.4-9_armhf.deb ... Unpacking cccc (1:3.1.4-9) ... Selecting previously unselected package libtool. Preparing to unpack .../198-libtool_2.4.6-2_all.deb ... Unpacking libtool (2.4.6-2) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../199-dh-autoreconf_15_all.deb ... Unpacking dh-autoreconf (15) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../200-libarchive-zip-perl_1.60-1_all.deb ... Unpacking libarchive-zip-perl (1.60-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../201-libfile-stripnondeterminism-perl_0.040-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (0.040-1) ... Selecting previously unselected package libtimedate-perl. Preparing to unpack .../202-libtimedate-perl_2.3000-2_all.deb ... Unpacking libtimedate-perl (2.3000-2) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../203-dh-strip-nondeterminism_0.040-1_all.deb ... Unpacking dh-strip-nondeterminism (0.040-1) ... Selecting previously unselected package libcroco3:armhf. Preparing to unpack .../204-libcroco3_0.6.12-2_armhf.deb ... Unpacking libcroco3:armhf (0.6.12-2) ... Selecting previously unselected package gettext. Preparing to unpack .../205-gettext_0.19.8.1-4ubuntu2_armhf.deb ... Unpacking gettext (0.19.8.1-4ubuntu2) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../206-intltool-debian_0.35.0+20060710.4_all.deb ... Unpacking intltool-debian (0.35.0+20060710.4) ... Selecting previously unselected package po-debconf. Preparing to unpack .../207-po-debconf_1.0.20_all.deb ... Unpacking po-debconf (1.0.20) ... Selecting previously unselected package debhelper. Preparing to unpack .../208-debhelper_11ubuntu1_all.deb ... Unpacking debhelper (11ubuntu1) ... Selecting previously unselected package diffstat. Preparing to unpack .../209-diffstat_1.61-1build1_armhf.deb ... Unpacking diffstat (1.61-1build1) ... Selecting previously unselected package lcov. Preparing to unpack .../210-lcov_1.13-3_all.deb ... Unpacking lcov (1.13-3) ... Selecting previously unselected package libapt-pkg-perl. Preparing to unpack .../211-libapt-pkg-perl_0.1.33build1_armhf.deb ... Unpacking libapt-pkg-perl (0.1.33build1) ... Selecting previously unselected package libboost1.65-dev:armhf. Preparing to unpack .../212-libboost1.65-dev_1.65.1+dfsg-0ubuntu4_armhf.deb ... Unpacking libboost1.65-dev:armhf (1.65.1+dfsg-0ubuntu4) ... Selecting previously unselected package libboost-dev:armhf. Preparing to unpack .../213-libboost-dev_1.65.1.0ubuntu1_armhf.deb ... Unpacking libboost-dev:armhf (1.65.1.0ubuntu1) ... Selecting previously unselected package libhtml-tagset-perl. Preparing to unpack .../214-libhtml-tagset-perl_3.20-3_all.deb ... Unpacking libhtml-tagset-perl (3.20-3) ... Selecting previously unselected package liburi-perl. Preparing to unpack .../215-liburi-perl_1.72-2_all.deb ... Unpacking liburi-perl (1.72-2) ... Selecting previously unselected package libhtml-parser-perl. Preparing to unpack .../216-libhtml-parser-perl_3.72-3build1_armhf.deb ... Unpacking libhtml-parser-perl (3.72-3build1) ... Selecting previously unselected package libcgi-pm-perl. Preparing to unpack .../217-libcgi-pm-perl_4.38-1_all.deb ... Unpacking libcgi-pm-perl (4.38-1) ... Selecting previously unselected package libsub-name-perl. Preparing to unpack .../218-libsub-name-perl_0.21-1build1_armhf.deb ... Unpacking libsub-name-perl (0.21-1build1) ... Selecting previously unselected package libclass-accessor-perl. Preparing to unpack .../219-libclass-accessor-perl_0.51-1_all.deb ... Unpacking libclass-accessor-perl (0.51-1) ... Selecting previously unselected package libclone-perl. Preparing to unpack .../220-libclone-perl_0.39-1_armhf.deb ... Unpacking libclone-perl (0.39-1) ... Selecting previously unselected package libdigest-hmac-perl. Preparing to unpack .../221-libdigest-hmac-perl_1.03+dfsg-1_all.deb ... Unpacking libdigest-hmac-perl (1.03+dfsg-1) ... Selecting previously unselected package perl-openssl-defaults:armhf. Preparing to unpack .../222-perl-openssl-defaults_3_armhf.deb ... Unpacking perl-openssl-defaults:armhf (3) ... Selecting previously unselected package libnet-ssleay-perl. Preparing to unpack .../223-libnet-ssleay-perl_1.82-1_armhf.deb ... Unpacking libnet-ssleay-perl (1.82-1) ... Selecting previously unselected package libio-socket-ssl-perl. Preparing to unpack .../224-libio-socket-ssl-perl_2.052-1_all.deb ... Unpacking libio-socket-ssl-perl (2.052-1) ... Selecting previously unselected package libnet-smtp-ssl-perl. Preparing to unpack .../225-libnet-smtp-ssl-perl_1.04-1_all.deb ... Unpacking libnet-smtp-ssl-perl (1.04-1) ... Selecting previously unselected package libmailtools-perl. Preparing to unpack .../226-libmailtools-perl_2.18-1_all.deb ... Unpacking libmailtools-perl (2.18-1) ... Selecting previously unselected package libsocket6-perl. Preparing to unpack .../227-libsocket6-perl_0.27-1build2_armhf.deb ... Unpacking libsocket6-perl (0.27-1build2) ... Selecting previously unselected package libio-socket-inet6-perl. Preparing to unpack .../228-libio-socket-inet6-perl_2.72-2_all.deb ... Unpacking libio-socket-inet6-perl (2.72-2) ... Selecting previously unselected package libnet-ip-perl. Preparing to unpack .../229-libnet-ip-perl_1.26-1_all.deb ... Unpacking libnet-ip-perl (1.26-1) ... Selecting previously unselected package libnet-dns-perl. Preparing to unpack .../230-libnet-dns-perl_1.10-2_all.deb ... Unpacking libnet-dns-perl (1.10-2) ... Selecting previously unselected package libnet-domain-tld-perl. Preparing to unpack .../231-libnet-domain-tld-perl_1.75-1_all.deb ... Unpacking libnet-domain-tld-perl (1.75-1) ... Selecting previously unselected package libemail-valid-perl. Preparing to unpack .../232-libemail-valid-perl_1.202-1_all.deb ... Unpacking libemail-valid-perl (1.202-1) ... Selecting previously unselected package libexporter-tiny-perl. Preparing to unpack .../233-libexporter-tiny-perl_1.000000-2_all.deb ... Unpacking libexporter-tiny-perl (1.000000-2) ... Selecting previously unselected package libipc-system-simple-perl. Preparing to unpack .../234-libipc-system-simple-perl_1.25-3_all.deb ... Unpacking libipc-system-simple-perl (1.25-3) ... Selecting previously unselected package libfile-basedir-perl. Preparing to unpack .../235-libfile-basedir-perl_0.07-1_all.deb ... Unpacking libfile-basedir-perl (0.07-1) ... Selecting previously unselected package libfontenc1:armhf. Preparing to unpack .../236-libfontenc1_1%3a1.1.3-1_armhf.deb ... Unpacking libfontenc1:armhf (1:1.1.3-1) ... Selecting previously unselected package libgl1-mesa-glx:armhf. Preparing to unpack .../237-libgl1-mesa-glx_17.2.4-0ubuntu2_armhf.deb ... Unpacking libgl1-mesa-glx:armhf (17.2.4-0ubuntu2) ... Selecting previously unselected package libio-pty-perl. Preparing to unpack .../238-libio-pty-perl_1%3a1.08-1.1build4_armhf.deb ... Unpacking libio-pty-perl (1:1.08-1.1build4) ... Selecting previously unselected package libio-string-perl. Preparing to unpack .../239-libio-string-perl_1.08-3_all.deb ... Unpacking libio-string-perl (1.08-3) ... Selecting previously unselected package libipc-run-perl. Preparing to unpack .../240-libipc-run-perl_0.96-1_all.deb ... Unpacking libipc-run-perl (0.96-1) ... Selecting previously unselected package liblist-moreutils-perl. Preparing to unpack .../241-liblist-moreutils-perl_0.416-1build3_armhf.deb ... Unpacking liblist-moreutils-perl (0.416-1build3) ... Selecting previously unselected package libparse-debianchangelog-perl. Preparing to unpack .../242-libparse-debianchangelog-perl_1.2.0-12_all.deb ... Unpacking libparse-debianchangelog-perl (1.2.0-12) ... Selecting previously unselected package libpixman-1-0:armhf. Preparing to unpack .../243-libpixman-1-0_0.34.0-2_armhf.deb ... Unpacking libpixman-1-0:armhf (0.34.0-2) ... Selecting previously unselected package libqt5designer5:armhf. Preparing to unpack .../244-libqt5designer5_5.9.3-0ubuntu3_armhf.deb ... Unpacking libqt5designer5:armhf (5.9.3-0ubuntu3) ... Selecting previously unselected package libqt5designercomponents5:armhf. Preparing to unpack .../245-libqt5designercomponents5_5.9.3-0ubuntu3_armhf.deb ... Unpacking libqt5designercomponents5:armhf (5.9.3-0ubuntu3) ... Selecting previously unselected package libqt5help5:armhf. Preparing to unpack .../246-libqt5help5_5.9.3-0ubuntu3_armhf.deb ... Unpacking libqt5help5:armhf (5.9.3-0ubuntu3) ... Selecting previously unselected package libqt5quickwidgets5:armhf. Preparing to unpack .../247-libqt5quickwidgets5_5.9.3-0ubuntu1_armhf.deb ... Unpacking libqt5quickwidgets5:armhf (5.9.3-0ubuntu1) ... Selecting previously unselected package libqt5sql5-sqlite:armhf. Preparing to unpack .../248-libqt5sql5-sqlite_5.9.3+dfsg-0ubuntu1_armhf.deb ... Unpacking libqt5sql5-sqlite:armhf (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libtext-levenshtein-perl. Preparing to unpack .../249-libtext-levenshtein-perl_0.13-1_all.deb ... Unpacking libtext-levenshtein-perl (0.13-1) ... Selecting previously unselected package libxt6:armhf. Preparing to unpack .../250-libxt6_1%3a1.1.5-1_armhf.deb ... Unpacking libxt6:armhf (1:1.1.5-1) ... Selecting previously unselected package libxmu6:armhf. Preparing to unpack .../251-libxmu6_2%3a1.1.2-2_armhf.deb ... Unpacking libxmu6:armhf (2:1.1.2-2) ... Selecting previously unselected package libxpm4:armhf. Preparing to unpack .../252-libxpm4_1%3a3.5.12-1_armhf.deb ... Unpacking libxpm4:armhf (1:3.5.12-1) ... Selecting previously unselected package libxaw7:armhf. Preparing to unpack .../253-libxaw7_2%3a1.0.13-1_armhf.deb ... Unpacking libxaw7:armhf (2:1.0.13-1) ... Selecting previously unselected package libxfont2:armhf. Preparing to unpack .../254-libxfont2_1%3a2.0.1-4ubuntu1_armhf.deb ... Unpacking libxfont2:armhf (1:2.0.1-4ubuntu1) ... Selecting previously unselected package libxkbfile1:armhf. Preparing to unpack .../255-libxkbfile1_1%3a1.0.9-2_armhf.deb ... Unpacking libxkbfile1:armhf (1:1.0.9-2) ... Selecting previously unselected package libxml-namespacesupport-perl. Preparing to unpack .../256-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 .../257-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 .../258-libxml-sax-perl_0.99+dfsg-2ubuntu1_all.deb ... Unpacking libxml-sax-perl (0.99+dfsg-2ubuntu1) ... Selecting previously unselected package libxml-libxml-perl. Preparing to unpack .../259-libxml-libxml-perl_2.0128+dfsg-5_armhf.deb ... Unpacking libxml-libxml-perl (2.0128+dfsg-5) ... Selecting previously unselected package libxml-simple-perl. Preparing to unpack .../260-libxml-simple-perl_2.24-1_all.deb ... Unpacking libxml-simple-perl (2.24-1) ... Selecting previously unselected package libyaml-libyaml-perl. Preparing to unpack .../261-libyaml-libyaml-perl_0.63-2build1_armhf.deb ... Unpacking libyaml-libyaml-perl (0.63-2build1) ... Selecting previously unselected package patchutils. Preparing to unpack .../262-patchutils_0.3.4-2_armhf.deb ... Unpacking patchutils (0.3.4-2) ... Selecting previously unselected package t1utils. Preparing to unpack .../263-t1utils_1.41-2_armhf.deb ... Unpacking t1utils (1.41-2) ... Selecting previously unselected package lintian. Preparing to unpack .../264-lintian_2.5.62_all.deb ... Unpacking lintian (2.5.62) ... Selecting previously unselected package qttools5-dev-tools. Preparing to unpack .../265-qttools5-dev-tools_5.9.3-0ubuntu3_armhf.deb ... Unpacking qttools5-dev-tools (5.9.3-0ubuntu3) ... Selecting previously unselected package qttools5-dev:armhf. Preparing to unpack .../266-qttools5-dev_5.9.3-0ubuntu3_armhf.deb ... Unpacking qttools5-dev:armhf (5.9.3-0ubuntu3) ... Selecting previously unselected package x11-xkb-utils. Preparing to unpack .../267-x11-xkb-utils_7.7+3_armhf.deb ... Unpacking x11-xkb-utils (7.7+3) ... Selecting previously unselected package xserver-common. Preparing to unpack .../268-xserver-common_2%3a1.19.5-0ubuntu2_all.deb ... Unpacking xserver-common (2:1.19.5-0ubuntu2) ... Selecting previously unselected package xvfb. Preparing to unpack .../269-xvfb_2%3a1.19.5-0ubuntu2_armhf.deb ... Unpacking xvfb (2:1.19.5-0ubuntu2) ... Selecting previously unselected package pkg-kde-tools. Preparing to unpack .../270-pkg-kde-tools_0.15.28ubuntu1_all.deb ... Unpacking pkg-kde-tools (0.15.28ubuntu1) ... Selecting previously unselected package sbuild-build-depends-grantlee5-dummy. Preparing to unpack .../271-sbuild-build-depends-grantlee5-dummy_0.invalid.0_armhf.deb ... Unpacking sbuild-build-depends-grantlee5-dummy (0.invalid.0) ... Setting up libhtml-tagset-perl (3.20-3) ... Setting up libedit2:armhf (3.1-20170329-1) ... Setting up libnet-domain-tld-perl (1.75-1) ... Setting up x11proto-dri2-dev (2.8-2) ... Setting up cccc (1:3.1.4-9) ... Setting up libapt-pkg-perl (0.1.33build1) ... Setting up libarchive-zip-perl (1.60-1) ... Setting up libwacom-common (0.26-1) ... Setting up libdouble-conversion1:armhf (2.0.1-4ubuntu1) ... Setting up mime-support (3.60ubuntu1) ... Setting up libxml-namespacesupport-perl (1.12-1) ... Setting up libio-pty-perl (1:1.08-1.1build4) ... Setting up qt5-qmake-bin (5.9.3+dfsg-0ubuntu1) ... Setting up libmircore-dev:armhf (0.29.0-0ubuntu1) ... Setting up libevdev2:armhf (1.5.7+dfsg-1) ... Setting up libtext-levenshtein-perl (0.13-1) ... Setting up iso-codes (3.77-1) ... Setting up libtimedate-perl (2.3000-2) ... Setting up libnet-ip-perl (1.26-1) ... Setting up libsigsegv2:armhf (2.11-1) ... Setting up libpthread-stubs0-dev:armhf (0.3-4) ... Setting up libcurl3:armhf (7.57.0-1ubuntu1) ... Setting up fonts-dejavu-core (2.37-1) ... Setting up libuv1:armhf (1.18.0-3) ... Setting up libcap2-bin (1:2.25-1.2) ... Setting up perl-openssl-defaults:armhf (3) ... Setting up libipc-system-simple-perl (1.25-3) ... Setting up libfile-basedir-perl (0.07-1) ... Setting up libelf1:armhf (0.170-0.2) ... Setting up groff-base (1.22.3-9) ... Setting up libglib2.0-0:armhf (2.54.1-1ubuntu1) ... No schema files found: doing nothing. Setting up libxshmfence1:armhf (1.2-1) ... Setting up xorg-sgml-doctools (1:1.11-1) ... Setting up libexporter-tiny-perl (1.000000-2) ... Setting up libwayland-client0:armhf (1.14.0-1) ... Setting up xkb-data (2.19-1.1ubuntu1) ... Setting up qtchooser (64-ga1b6736-5) ... Setting up libllvm5.0:armhf (1:5.0.1-2) ... Setting up x11proto-xf86vidmode-dev (2.3.1-2) ... Setting up gettext-base (0.19.8.1-4ubuntu2) ... Setting up cmake-data (3.9.5-1) ... Setting up libjpeg-turbo8:armhf (1.5.2-0ubuntu5) ... Setting up libpipeline1:armhf (1.5.0-1) ... Setting up x11proto-kb-dev (1.0.7-1) ... Setting up libglapi-mesa:armhf (17.2.4-0ubuntu2) ... Setting up m4 (1.4.18-1) ... Setting up libbsd0:armhf (0.8.6-3) ... Setting up ucf (3.0036) ... Setting up libfreetype6:armhf (2.8-0.2ubuntu2) ... Setting up libmagic-mgc (1:5.32-1) ... Setting up libmagic1:armhf (1:5.32-1) ... Setting up libdrm-common (2.4.89-1) ... Setting up libgraphite2-3:armhf (1.3.10-8) ... Setting up librhash0 (1.3.4-3) ... Setting up libboost-system1.65.1:armhf (1.65.1+dfsg-0ubuntu4) ... Setting up libprotobuf10:armhf (3.0.0-9ubuntu5) ... Setting up libxml-sax-base-perl (1.09-1) ... Setting up libhyphen0:armhf (2.8.8-5) ... Setting up libmircookie2:armhf (0.29.0-0ubuntu1) ... Setting up libx11-xcb1:armhf (2:1.6.4-3) ... Setting up libpixman-1-0:armhf (0.34.0-2) ... Setting up xtrans-dev (1.3.5-1) ... Setting up qt5-qmake:armhf (5.9.3+dfsg-0ubuntu1) ... Processing triggers for libc-bin (2.26-0ubuntu2) ... Setting up libsocket6-perl (0.27-1build2) ... Setting up patchutils (0.3.4-2) ... Setting up autotools-dev (20171216.1) ... Setting up liburi-perl (1.72-2) ... Setting up t1utils (1.41-2) ... Setting up x11proto-gl-dev (1.4.17-1) ... Processing triggers for systemd (235-3ubuntu3) ... Setting up libhtml-parser-perl (3.72-3build1) ... Setting up libmtdev1:armhf (1.1.5-1ubuntu2) ... Setting up libipc-run-perl (0.96-1) ... Setting up libcapnp-0.6.1 (0.6.1-1) ... Setting up libcgi-pm-perl (4.38-1) ... Setting up lcov (1.13-3) ... Setting up libfontenc1:armhf (1:1.1.3-1) ... Setting up libdigest-hmac-perl (1.03+dfsg-1) ... Setting up libio-string-perl (1.08-3) ... Setting up liblocale-gettext-perl (1.07-3build2) ... Setting up libclone-perl (0.39-1) ... Setting up libsensors4:armhf (1:3.4.0-4) ... Setting up libxkbcommon0:armhf (0.8.0-1) ... Setting up libgudev-1.0-0:armhf (1:232-1) ... Setting up liborc-0.4-0:armhf (1:0.4.28-1) ... Setting up libxdmcp6:armhf (1:1.1.2-3) ... Setting up bsdmainutils (9.0.14ubuntu1) ... update-alternatives: using /usr/bin/bsd-write to provide /usr/bin/write (write) in auto mode update-alternatives: using /usr/bin/bsd-from to provide /usr/bin/from (from) in auto mode Setting up libmircore1:armhf (0.29.0-0ubuntu1) ... Setting up x11-common (1:7.7+19ubuntu3) ... update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults Running in chroot, ignoring request. invoke-rc.d: policy-rc.d denied execution of start. Setting up libsub-name-perl (0.21-1build1) ... Setting up libprotobuf-lite10:armhf (3.0.0-9ubuntu5) ... Setting up libyaml-libyaml-perl (0.63-2build1) ... Setting up libboost1.65-dev:armhf (1.65.1+dfsg-0ubuntu4) ... Setting up libgles2-mesa:armhf (17.2.4-0ubuntu2) ... Setting up libwayland-cursor0:armhf (1.14.0-1) ... Setting up libx11-data (2:1.6.4-3) ... Setting up diffstat (1.61-1build1) ... Setting up libxau6:armhf (1:1.0.8-1) ... Setting up autopoint (0.19.8.1-4ubuntu2) ... Setting up libmpdec2:armhf (2.4.2-1) ... Setting up libclass-accessor-perl (0.51-1) ... Setting up libdbus-1-3:armhf (1.12.2-1ubuntu1) ... Setting up liblzo2-2:armhf (2.08-1.2) ... Setting up libavahi-common-data:armhf (0.7-3ubuntu1) ... Setting up libwayland-server0:armhf (1.14.0-1) ... Setting up netbase (5.4) ... Setting up libwebp6:armhf (0.6.0-4) ... Setting up zlib1g-dev:armhf (1:1.2.11.dfsg-0ubuntu2) ... Setting up libfile-stripnondeterminism-perl (0.040-1) ... Setting up libxml-sax-perl (0.99+dfsg-2ubuntu1) ... 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 libjpeg8:armhf (8c-2ubuntu8) ... Setting up libjsoncpp1:armhf (1.7.4-3) ... Setting up liblist-moreutils-perl (0.416-1build3) ... Setting up libpython3.6-stdlib:armhf (3.6.4-2) ... Setting up fontconfig-config (2.12.6-0ubuntu1) ... Setting up libxkbcommon-dev (0.8.0-1) ... Setting up libgstreamer1.0-0:armhf (1.12.4-1) ... Setcap worked! gst-ptp-helper is not suid! Setting up x11proto-core-dev (7.0.31-1) ... Setting up libwacom2:armhf (0.26-1) ... Setting up libio-socket-inet6-perl (2.72-2) ... Setting up libxshmfence-dev:armhf (1.2-1) ... Setting up libnet-ssleay-perl (1.82-1) ... Setting up libmirprotobuf3:armhf (0.29.0-0ubuntu1) ... Setting up libboost-filesystem1.65.1:armhf (1.65.1+dfsg-0ubuntu4) ... Setting up libprotobuf-dev:armhf (3.0.0-9ubuntu5) ... Setting up libxfont2:armhf (1:2.0.1-4ubuntu1) ... Setting up libharfbuzz0b:armhf (1.7.2-1) ... Setting up libxau-dev:armhf (1:1.0.8-1) ... Setting up autoconf (2.69-11) ... Setting up libmircookie-dev:armhf (0.29.0-0ubuntu1) ... Setting up libnet-dns-perl (1.10-2) ... Setting up file (1:5.32-1) ... Setting up libinput-bin (1.9.4-2) ... Setting up libio-socket-ssl-perl (2.052-1) ... Setting up libdrm2:armhf (2.4.89-1) ... Setting up libxdmcp-dev:armhf (1:1.1.2-3) ... Setting up libdrm-etnaviv1:armhf (2.4.89-1) ... Setting up automake (1:1.15.1-3ubuntu1) ... update-alternatives: using /usr/bin/automake-1.15 to provide /usr/bin/automake (automake) in auto mode Setting up libice6:armhf (2:1.0.9-2) ... Setting up libparse-debianchangelog-perl (1.2.0-12) ... Setting up man-db (2.7.6.1-4) ... Not building database; man-db/auto-update is not 'true'. Setting up libmircommon7:armhf (0.29.0-0ubuntu1) ... Setting up libavahi-common3:armhf (0.7-3ubuntu1) ... Setting up libdrm-radeon1:armhf (2.4.89-1) ... Setting up libboost-dev:armhf (1.65.1.0ubuntu1) ... Setting up libdrm-nouveau2:armhf (2.4.89-1) ... Setting up libxcb1:armhf (1.12-1ubuntu1) ... Setting up x11proto-input-dev (2.3.2-1) ... Setting up libxcb-xkb1:armhf (1.12-1ubuntu1) ... Setting up libtool (2.4.6-2) ... Setting up libxcb-xinerama0:armhf (1.12-1ubuntu1) ... Setting up libpython3-stdlib:armhf (3.6.3-0ubuntu2) ... Setting up libxcb-present0:armhf (1.12-1ubuntu1) ... Setting up libgstreamer-plugins-base1.0-0:armhf (1.12.4-1) ... Setting up libfontconfig1:armhf (2.12.6-0ubuntu1) ... Setting up libxcb-dri2-0:armhf (1.12-1ubuntu1) ... Setting up libsm6:armhf (2:1.2.2-1) ... Setting up libxcb-dri3-0:armhf (1.12-1ubuntu1) ... Setting up libxcb-glx0:armhf (1.12-1ubuntu1) ... Setting up libxcb-randr0:armhf (1.12-1ubuntu1) ... Setting up libxcb-xfixes0:armhf (1.12-1ubuntu1) ... Setting up libxcb-icccm4:armhf (0.4.1-1ubuntu1) ... Setting up libxcb-render0:armhf (1.12-1ubuntu1) ... Setting up libnet-smtp-ssl-perl (1.04-1) ... Setting up libdrm-amdgpu1:armhf (2.4.89-1) ... Setting up libdrm-exynos1:armhf (2.4.89-1) ... Setting up libdrm-freedreno1:armhf (2.4.89-1) ... Setting up libdrm-omap1:armhf (2.4.89-1) ... Setting up libgbm1:armhf (17.2.4-0ubuntu2) ... Setting up libx11-6:armhf (2:1.6.4-3) ... Setting up libinput10:armhf (1.9.4-2) ... Setting up libgl1-mesa-dri:armhf (17.2.4-0ubuntu2) ... Setting up libmirclient9:armhf (0.29.0-0ubuntu1) ... Setting up libdrm-tegra0:armhf (2.4.89-1) ... Setting up libxcb-util1:armhf (0.4.0-0ubuntu3) ... Setting up libxkbcommon-x11-0:armhf (0.8.0-1) ... Setting up libxmuu1:armhf (2:1.1.2-2) ... Setting up libxcb-sync1:armhf (1.12-1ubuntu1) ... Setting up x11proto-xext-dev (7.3.0-1) ... Setting up libmircommon-dev:armhf (0.29.0-0ubuntu1) ... Setting up libxcb-shm0:armhf (1.12-1ubuntu1) ... Setting up libxpm4:armhf (1:3.5.12-1) ... Setting up libxt6:armhf (1:1.1.5-1) ... Setting up libxcb-shape0:armhf (1.12-1ubuntu1) ... Setting up libxcb1-dev:armhf (1.12-1ubuntu1) ... Setting up libxcb-glx0-dev:armhf (1.12-1ubuntu1) ... Setting up libavahi-client3:armhf (0.7-3ubuntu1) ... Setting up libxcb-keysyms1:armhf (0.4.0-1) ... Setting up libx11-dev:armhf (2:1.6.4-3) ... Setting up libxcb-sync-dev:armhf (1.12-1ubuntu1) ... Setting up fontconfig (2.12.6-0ubuntu1) ... Regenerating fonts cache... done. Setting up libcups2:armhf (2.2.6-4) ... Setting up libegl1-mesa:armhf (17.2.4-0ubuntu2) ... update-alternatives: using /usr/lib/arm-linux-gnueabihf/mesa-egl/ld.so.conf to provide /etc/ld.so.conf.d/arm-linux-gnueabihf_EGL.conf (arm-linux-gnueabihf_egl_conf) in auto mode Setting up libxkbfile1:armhf (1:1.0.9-2) ... Setting up libx11-xcb-dev:armhf (2:1.6.4-3) ... Setting up libxcb-render-util0:armhf (0.3.9-1) ... Setting up libmailtools-perl (2.18-1) ... Setting up libemail-valid-perl (1.202-1) ... Setting up libxdamage1:armhf (1:1.1.4-3) ... Setting up libxcb-image0:armhf (0.4.0-1build1) ... Setting up libxext6:armhf (2:1.3.3-1) ... Setting up libxfixes3:armhf (1:5.0.3-1) ... Setting up libdrm-dev:armhf (2.4.89-1) ... Setting up x11proto-fixes-dev (1:5.0-2ubuntu2) ... Setting up libmirclient-dev:armhf (0.29.0-0ubuntu1) ... Setting up libxmu6:armhf (2:1.1.2-2) ... Setting up xauth (1:1.0.10-1) ... Setting up libxcb-dri2-0-dev:armhf (1.12-1ubuntu1) ... Setting up libxcb-render0-dev:armhf (1.12-1ubuntu1) ... Setting up x11proto-damage-dev (1:1.2.1-2) ... Setting up libxcb-dri3-dev:armhf (1.12-1ubuntu1) ... Setting up libxext-dev:armhf (2:1.3.3-1) ... Setting up libwayland-egl1-mesa:armhf (17.2.4-0ubuntu2) ... Setting up libxcb-shape0-dev:armhf (1.12-1ubuntu1) ... Setting up libxxf86vm1:armhf (1:1.1.4-1) ... Setting up libxxf86vm-dev:armhf (1:1.1.4-1) ... Setting up libxfixes-dev:armhf (1:5.0.3-1) ... Setting up libxi6:armhf (2:1.7.9-1) ... Setting up libxaw7:armhf (2:1.0.13-1) ... Setting up libxcb-randr0-dev:armhf (1.12-1ubuntu1) ... Setting up x11-xkb-utils (7.7+3) ... Setting up libxcb-xfixes0-dev:armhf (1.12-1ubuntu1) ... Setting up libxdamage-dev:armhf (1:1.1.4-3) ... Setting up libgl1-mesa-glx:armhf (17.2.4-0ubuntu2) ... update-alternatives: using /usr/lib/arm-linux-gnueabihf/mesa/ld.so.conf to provide /etc/ld.so.conf.d/arm-linux-gnueabihf_GL.conf (arm-linux-gnueabihf_gl_conf) in auto mode Setting up libxcb-present-dev:armhf (1.12-1ubuntu1) ... Setting up xserver-common (2:1.19.5-0ubuntu2) ... Setting up xvfb (2:1.19.5-0ubuntu2) ... Setting up libicu-le-hb0:armhf (1.0.3+git161113-4) ... Setting up dh-python (2.20170125) ... Setting up libicu60:armhf (60.2-1ubuntu1) ... Setting up python3.6 (3.6.4-2) ... Setting up dh-autoreconf (15) ... Setting up python3 (3.6.3-0ubuntu2) ... Setting up python3.6-2to3 (3.6.4-2) ... python3.6: can't get files for byte-compilation Setting up libxml2:armhf (2.9.4+dfsg1-5.2ubuntu1) ... Setting up libcroco3:armhf (0.6.12-2) ... Setting up libxslt1.1:armhf (1.1.29-5) ... Setting up dh-strip-nondeterminism (0.040-1) ... Setting up libxml-libxml-perl (2.0128+dfsg-5) ... 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 python3-distutils (3.6.4~rc1-6) ... Setting up libqt5core5a:armhf (5.9.3+dfsg-0ubuntu1) ... Setting up libwayland-bin (1.14.0-1) ... Setting up libqt5script5:armhf (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5dbus5:armhf (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5network5:armhf (5.9.3+dfsg-0ubuntu1) ... Setting up gettext (0.19.8.1-4ubuntu2) ... Setting up libarchive13:armhf (3.2.2-3.1) ... Setting up libqt5test5:armhf (5.9.3+dfsg-0ubuntu1) ... Setting up intltool-debian (0.35.0+20060710.4) ... Setting up libxml-simple-perl (2.24-1) ... Setting up libqt5xml5:armhf (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5positioning5:armhf (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5gui5:armhf (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5sql5:armhf (5.9.3+dfsg-0ubuntu1) ... Setting up lintian (2.5.62) ... Setting up libwayland-dev:armhf (1.14.0-1) ... Setting up cmake (3.9.5-1) ... Setting up libqt5concurrent5:armhf (5.9.3+dfsg-0ubuntu1) ... Setting up pkg-kde-tools (0.15.28ubuntu1) ... Setting up libqt5qml5:armhf (5.9.3-0ubuntu1) ... Setting up libqt5quick5:armhf (5.9.3-0ubuntu1) ... Setting up qtbase5-dev-tools (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5sensors5:armhf (5.9.3-0ubuntu1) ... Setting up libqt5widgets5:armhf (5.9.3+dfsg-0ubuntu1) ... Setting up po-debconf (1.0.20) ... Setting up libqt5printsupport5:armhf (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5help5:armhf (5.9.3-0ubuntu3) ... Setting up libqt5sql5-sqlite:armhf (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5scripttools5:armhf (5.9.3+dfsg-0ubuntu1) ... Setting up libegl1-mesa-dev:armhf (17.2.4-0ubuntu2) ... Setting up libqt5webchannel5:armhf (5.9.3-0ubuntu1) ... Setting up libqt5designer5:armhf (5.9.3-0ubuntu3) ... Setting up debhelper (11ubuntu1) ... Setting up libqt5quickwidgets5:armhf (5.9.3-0ubuntu1) ... Setting up libqt5webkit5:armhf (5.212.0~alpha2-5build4) ... Setting up libqt5designercomponents5:armhf (5.9.3-0ubuntu3) ... Setting up libgles2-mesa-dev:armhf (17.2.4-0ubuntu2) ... Setting up qttools5-dev-tools (5.9.3-0ubuntu3) ... Setting up qtbase5-dev:armhf (5.9.3+dfsg-0ubuntu1) ... Setting up qttools5-dev:armhf (5.9.3-0ubuntu3) ... Setting up qtscript5-dev:armhf (5.9.3+dfsg-0ubuntu1) ... Setting up sbuild-build-depends-grantlee5-dummy (0.invalid.0) ... (Reading database ... 40474 files and directories currently installed.) Purging configuration files for pkg-create-dbgsym (0.73) ... Processing triggers for libc-bin (2.26-0ubuntu2) ... Processing triggers for systemd (235-3ubuntu3) ... +------------------------------------------------------------------------------+ | Build environment | +------------------------------------------------------------------------------+ Kernel: Linux 4.4.0-101-generic arm64 (armv7l) Toolchain package versions: binutils_2.29.1-12ubuntu1 dpkg-dev_1.19.0.4ubuntu1 g++-7_7.2.0-18ubuntu2 g++-8_8-20180110-1ubuntu1 gcc-7_7.2.0-18ubuntu2 gcc-8_8-20180110-1ubuntu1 libc6-dev_2.26-0ubuntu2 libstdc++-7-dev_7.2.0-18ubuntu2 libstdc++-8-dev_8-20180110-1ubuntu1 libstdc++6_8-20180110-1ubuntu1 linux-libc-dev_4.13.0-25.29 Package versions: adduser_3.116ubuntu1 advancecomp_2.0-1 apt_1.6~alpha5 apt-transport-https_1.6~alpha5 autoconf_2.69-11 automake_1:1.15.1-3ubuntu1 autopoint_0.19.8.1-4ubuntu2 autotools-dev_20171216.1 base-files_10ubuntu1 base-passwd_3.5.44 bash_4.4-5ubuntu1 binutils_2.29.1-12ubuntu1 binutils-arm-linux-gnueabihf_2.29.1-12ubuntu1 binutils-common_2.29.1-12ubuntu1 bsdmainutils_9.0.14ubuntu1 bsdutils_1:2.30.2-0.1ubuntu1 build-essential_12.4ubuntu1 bzip2_1.0.6-8.1 ca-certificates_20170717 cccc_1:3.1.4-9 cmake_3.9.5-1 cmake-data_3.9.5-1 coreutils_8.26-3ubuntu4 cpp_4:8-20121108-1ubuntu0.2 cpp-7_7.2.0-18ubuntu2 cpp-8_8-20180110-1ubuntu1 dash_0.5.8-2.3ubuntu1 debconf_1.5.65 debhelper_11ubuntu1 debianutils_4.8.4 dh-autoreconf_15 dh-python_2.20170125 dh-strip-nondeterminism_0.040-1 diffstat_1.61-1build1 diffutils_1:3.6-1 dmsetup_2:1.02.137-2ubuntu3 dpkg_1.19.0.4ubuntu1 dpkg-dev_1.19.0.4ubuntu1 e2fslibs_1.43.8-1ubuntu1 e2fsprogs_1.43.8-1ubuntu1 fakeroot_1.21-1ubuntu2 fdisk_2.30.2-0.1ubuntu1 file_1:5.32-1 findutils_4.6.0+git+20170828-2 fontconfig_2.12.6-0ubuntu1 fontconfig-config_2.12.6-0ubuntu1 fonts-dejavu-core_2.37-1 g++_4:8-20121108-1ubuntu0.2 g++-7_7.2.0-18ubuntu2 g++-8_8-20180110-1ubuntu1 gcc_4:8-20121108-1ubuntu0.2 gcc-7_7.2.0-18ubuntu2 gcc-7-base_7.2.0-18ubuntu2 gcc-8_8-20180110-1ubuntu1 gcc-8-base_8-20180110-1ubuntu1 gettext_0.19.8.1-4ubuntu2 gettext-base_0.19.8.1-4ubuntu2 gnupg_2.1.15-1ubuntu8 gnupg-agent_2.1.15-1ubuntu8 gpgv_2.1.15-1ubuntu8 grep_3.1-2 groff-base_1.22.3-9 gzip_1.6-5ubuntu1 hostname_3.18 init_1.51 init-system-helpers_1.51 initscripts_2.88dsf-59.3ubuntu2 insserv_1.14.0-5ubuntu3 intltool-debian_0.35.0+20060710.4 iso-codes_3.77-1 lcov_1.13-3 libacl1_2.2.52-3build1 libapparmor1_2.11.0-2ubuntu18 libapt-pkg-perl_0.1.33build1 libapt-pkg5.0_1.6~alpha5 libarchive-zip-perl_1.60-1 libarchive13_3.2.2-3.1 libasan4_7.2.0-18ubuntu2 libasan5_8-20180110-1ubuntu1 libasn1-8-heimdal_7.5.0+dfsg-1 libassuan0_2.5.1-1 libatomic1_8-20180110-1ubuntu1 libattr1_1:2.4.47-2build1 libaudit-common_1:2.7.7-1ubuntu2 libaudit1_1:2.7.7-1ubuntu2 libavahi-client3_0.7-3ubuntu1 libavahi-common-data_0.7-3ubuntu1 libavahi-common3_0.7-3ubuntu1 libbinutils_2.29.1-12ubuntu1 libblkid1_2.30.2-0.1ubuntu1 libboost-dev_1.65.1.0ubuntu1 libboost-filesystem1.65.1_1.65.1+dfsg-0ubuntu4 libboost-system1.65.1_1.65.1+dfsg-0ubuntu4 libboost1.65-dev_1.65.1+dfsg-0ubuntu4 libbsd0_0.8.6-3 libbz2-1.0_1.0.6-8.1 libc-bin_2.26-0ubuntu2 libc-dev-bin_2.26-0ubuntu2 libc6_2.26-0ubuntu2 libc6-dev_2.26-0ubuntu2 libcap-ng0_0.7.7-3.1 libcap2_1:2.25-1.2 libcap2-bin_1:2.25-1.2 libcapnp-0.6.1_0.6.1-1 libcc1-0_8-20180110-1ubuntu1 libcgi-pm-perl_4.38-1 libcilkrts5_7.2.0-18ubuntu2 libclass-accessor-perl_0.51-1 libclone-perl_0.39-1 libcomerr2_1.43.8-1ubuntu1 libcroco3_0.6.12-2 libcryptsetup4_2:1.7.3-4ubuntu1 libcups2_2.2.6-4 libcurl3_7.57.0-1ubuntu1 libcurl3-gnutls_7.57.0-1ubuntu1 libdb5.3_5.3.28-13.1 libdbus-1-3_1.12.2-1ubuntu1 libdebconfclient0_0.213ubuntu1 libdevmapper1.02.1_2:1.02.137-2ubuntu3 libdigest-hmac-perl_1.03+dfsg-1 libdouble-conversion1_2.0.1-4ubuntu1 libdpkg-perl_1.19.0.4ubuntu1 libdrm-amdgpu1_2.4.89-1 libdrm-common_2.4.89-1 libdrm-dev_2.4.89-1 libdrm-etnaviv1_2.4.89-1 libdrm-exynos1_2.4.89-1 libdrm-freedreno1_2.4.89-1 libdrm-nouveau2_2.4.89-1 libdrm-omap1_2.4.89-1 libdrm-radeon1_2.4.89-1 libdrm-tegra0_2.4.89-1 libdrm2_2.4.89-1 libedit2_3.1-20170329-1 libegl1-mesa_17.2.4-0ubuntu2 libegl1-mesa-dev_17.2.4-0ubuntu2 libelf1_0.170-0.2 libemail-valid-perl_1.202-1 libevdev2_1.5.7+dfsg-1 libexpat1_2.2.5-3 libexporter-tiny-perl_1.000000-2 libfakeroot_1.21-1ubuntu2 libfdisk1_2.30.2-0.1ubuntu1 libffi6_3.2.1-6 libfile-basedir-perl_0.07-1 libfile-stripnondeterminism-perl_0.040-1 libfontconfig1_2.12.6-0ubuntu1 libfontenc1_1:1.1.3-1 libfreetype6_2.8-0.2ubuntu2 libgbm1_17.2.4-0ubuntu2 libgcc-7-dev_7.2.0-18ubuntu2 libgcc-8-dev_8-20180110-1ubuntu1 libgcc1_1:8-20180110-1ubuntu1 libgcrypt20_1.8.1-4 libgdbm3_1.8.3-14 libgl1-mesa-dri_17.2.4-0ubuntu2 libgl1-mesa-glx_17.2.4-0ubuntu2 libglapi-mesa_17.2.4-0ubuntu2 libgles2-mesa_17.2.4-0ubuntu2 libgles2-mesa-dev_17.2.4-0ubuntu2 libglib2.0-0_2.54.1-1ubuntu1 libgmp10_2:6.1.2+dfsg-1 libgnutls30_3.5.8-6ubuntu3 libgomp1_8-20180110-1ubuntu1 libgpg-error0_1.27-5 libgraphite2-3_1.3.10-8 libgssapi-krb5-2_1.15.1-2 libgssapi3-heimdal_7.5.0+dfsg-1 libgstreamer-plugins-base1.0-0_1.12.4-1 libgstreamer1.0-0_1.12.4-1 libgudev-1.0-0_1:232-1 libharfbuzz0b_1.7.2-1 libhcrypto4-heimdal_7.5.0+dfsg-1 libheimbase1-heimdal_7.5.0+dfsg-1 libheimntlm0-heimdal_7.5.0+dfsg-1 libhogweed4_3.3-2 libhtml-parser-perl_3.72-3build1 libhtml-tagset-perl_3.20-3 libhx509-5-heimdal_7.5.0+dfsg-1 libhyphen0_2.8.8-5 libice6_2:1.0.9-2 libicu-le-hb0_1.0.3+git161113-4 libicu60_60.2-1ubuntu1 libidn11_1.33-2.1 libidn2-0_2.0.4-1 libinput-bin_1.9.4-2 libinput10_1.9.4-2 libio-pty-perl_1:1.08-1.1build4 libio-socket-inet6-perl_2.72-2 libio-socket-ssl-perl_2.052-1 libio-string-perl_1.08-3 libip4tc0_1.6.1-2ubuntu2 libipc-run-perl_0.96-1 libipc-system-simple-perl_1.25-3 libisl15_0.18-1 libjpeg-turbo8_1.5.2-0ubuntu5 libjpeg8_8c-2ubuntu8 libjsoncpp1_1.7.4-3 libk5crypto3_1.15.1-2 libkeyutils1_1.5.9-9.2ubuntu1 libkmod2_24-1ubuntu2 libkrb5-26-heimdal_7.5.0+dfsg-1 libkrb5-3_1.15.1-2 libkrb5support0_1.15.1-2 libksba8_1.3.5-2 libldap-2.4-2_2.4.45+dfsg-1ubuntu1 libldap-common_2.4.45+dfsg-1ubuntu1 liblist-moreutils-perl_0.416-1build3 libllvm5.0_1:5.0.1-2 liblocale-gettext-perl_1.07-3build2 liblockfile-bin_1.14-1.1 liblockfile1_1.14-1.1 liblz4-1_0.0~r131-2ubuntu2 liblzma5_5.2.2-1.3 liblzo2-2_2.08-1.2 libmagic-mgc_1:5.32-1 libmagic1_1:5.32-1 libmailtools-perl_2.18-1 libmirclient-dev_0.29.0-0ubuntu1 libmirclient9_0.29.0-0ubuntu1 libmircommon-dev_0.29.0-0ubuntu1 libmircommon7_0.29.0-0ubuntu1 libmircookie-dev_0.29.0-0ubuntu1 libmircookie2_0.29.0-0ubuntu1 libmircore-dev_0.29.0-0ubuntu1 libmircore1_0.29.0-0ubuntu1 libmirprotobuf3_0.29.0-0ubuntu1 libmount1_2.30.2-0.1ubuntu1 libmpc3_1.0.3-2 libmpdec2_2.4.2-1 libmpfr4_3.1.6-1 libmtdev1_1.1.5-1ubuntu2 libncurses5_6.0+20160625-1ubuntu1 libncursesw5_6.0+20160625-1ubuntu1 libnet-dns-perl_1.10-2 libnet-domain-tld-perl_1.75-1 libnet-ip-perl_1.26-1 libnet-smtp-ssl-perl_1.04-1 libnet-ssleay-perl_1.82-1 libnettle6_3.3-2 libnghttp2-14_1.29.0-1 libnpth0_1.5-3 liborc-0.4-0_1:0.4.28-1 libp11-kit0_0.23.9-2 libpam-modules_1.1.8-3.2ubuntu3 libpam-modules-bin_1.1.8-3.2ubuntu3 libpam-runtime_1.1.8-3.2ubuntu3 libpam0g_1.1.8-3.2ubuntu3 libparse-debianchangelog-perl_1.2.0-12 libpcre3_2:8.39-8 libperl5.26_5.26.1-3 libpipeline1_1.5.0-1 libpixman-1-0_0.34.0-2 libpng16-16_1.6.34-1 libprocps6_2:3.3.12-1ubuntu2 libprotobuf-dev_3.0.0-9ubuntu5 libprotobuf-lite10_3.0.0-9ubuntu5 libprotobuf10_3.0.0-9ubuntu5 libpsl5_0.19.1-4 libpthread-stubs0-dev_0.3-4 libpython3-stdlib_3.6.3-0ubuntu2 libpython3.6-minimal_3.6.4-2 libpython3.6-stdlib_3.6.4-2 libqt5concurrent5_5.9.3+dfsg-0ubuntu1 libqt5core5a_5.9.3+dfsg-0ubuntu1 libqt5dbus5_5.9.3+dfsg-0ubuntu1 libqt5designer5_5.9.3-0ubuntu3 libqt5designercomponents5_5.9.3-0ubuntu3 libqt5gui5_5.9.3+dfsg-0ubuntu1 libqt5help5_5.9.3-0ubuntu3 libqt5network5_5.9.3+dfsg-0ubuntu1 libqt5positioning5_5.9.3+dfsg-0ubuntu1 libqt5printsupport5_5.9.3+dfsg-0ubuntu1 libqt5qml5_5.9.3-0ubuntu1 libqt5quick5_5.9.3-0ubuntu1 libqt5quickwidgets5_5.9.3-0ubuntu1 libqt5script5_5.9.3+dfsg-0ubuntu1 libqt5scripttools5_5.9.3+dfsg-0ubuntu1 libqt5sensors5_5.9.3-0ubuntu1 libqt5sql5_5.9.3+dfsg-0ubuntu1 libqt5sql5-sqlite_5.9.3+dfsg-0ubuntu1 libqt5test5_5.9.3+dfsg-0ubuntu1 libqt5webchannel5_5.9.3-0ubuntu1 libqt5webkit5_5.212.0~alpha2-5build4 libqt5widgets5_5.9.3+dfsg-0ubuntu1 libqt5xml5_5.9.3+dfsg-0ubuntu1 libreadline7_7.0-0ubuntu2 librhash0_1.3.4-3 libroken18-heimdal_7.5.0+dfsg-1 librtmp1_2.4+20151223.gitfa8646d.1-1 libsasl2-2_2.1.27~101-g0780600+dfsg-3ubuntu1 libsasl2-modules-db_2.1.27~101-g0780600+dfsg-3ubuntu1 libseccomp2_2.3.1-2.1ubuntu3 libselinux1_2.7-2 libsemanage-common_2.7-2 libsemanage1_2.7-2 libsensors4_1:3.4.0-4 libsepol1_2.7-1 libsigsegv2_2.11-1 libslang2_2.3.1-5ubuntu1 libsm6_2:1.2.2-1 libsmartcols1_2.30.2-0.1ubuntu1 libsocket6-perl_0.27-1build2 libsqlite3-0_3.21.0-1 libss2_1.43.8-1ubuntu1 libssl1.0.0_1.0.2g-1ubuntu14 libstdc++-7-dev_7.2.0-18ubuntu2 libstdc++-8-dev_8-20180110-1ubuntu1 libstdc++6_8-20180110-1ubuntu1 libsub-name-perl_0.21-1build1 libsystemd0_235-3ubuntu3 libtasn1-6_4.12-3 libtext-levenshtein-perl_0.13-1 libtimedate-perl_2.3000-2 libtinfo5_6.0+20160625-1ubuntu1 libtool_2.4.6-2 libubsan0_7.2.0-18ubuntu2 libubsan1_8-20180110-1ubuntu1 libudev1_235-3ubuntu3 libunistring0_0.9.3-5.2ubuntu1 liburi-perl_1.72-2 libusb-0.1-4_2:0.1.12-31 libustr-1.0-1_1.0.4-6 libuuid1_2.30.2-0.1ubuntu1 libuv1_1.18.0-3 libwacom-common_0.26-1 libwacom2_0.26-1 libwayland-bin_1.14.0-1 libwayland-client0_1.14.0-1 libwayland-cursor0_1.14.0-1 libwayland-dev_1.14.0-1 libwayland-egl1-mesa_17.2.4-0ubuntu2 libwayland-server0_1.14.0-1 libwebp6_0.6.0-4 libwind0-heimdal_7.5.0+dfsg-1 libx11-6_2:1.6.4-3 libx11-data_2:1.6.4-3 libx11-dev_2:1.6.4-3 libx11-xcb-dev_2:1.6.4-3 libx11-xcb1_2:1.6.4-3 libxau-dev_1:1.0.8-1 libxau6_1:1.0.8-1 libxaw7_2:1.0.13-1 libxcb-dri2-0_1.12-1ubuntu1 libxcb-dri2-0-dev_1.12-1ubuntu1 libxcb-dri3-0_1.12-1ubuntu1 libxcb-dri3-dev_1.12-1ubuntu1 libxcb-glx0_1.12-1ubuntu1 libxcb-glx0-dev_1.12-1ubuntu1 libxcb-icccm4_0.4.1-1ubuntu1 libxcb-image0_0.4.0-1build1 libxcb-keysyms1_0.4.0-1 libxcb-present-dev_1.12-1ubuntu1 libxcb-present0_1.12-1ubuntu1 libxcb-randr0_1.12-1ubuntu1 libxcb-randr0-dev_1.12-1ubuntu1 libxcb-render-util0_0.3.9-1 libxcb-render0_1.12-1ubuntu1 libxcb-render0-dev_1.12-1ubuntu1 libxcb-shape0_1.12-1ubuntu1 libxcb-shape0-dev_1.12-1ubuntu1 libxcb-shm0_1.12-1ubuntu1 libxcb-sync-dev_1.12-1ubuntu1 libxcb-sync1_1.12-1ubuntu1 libxcb-util1_0.4.0-0ubuntu3 libxcb-xfixes0_1.12-1ubuntu1 libxcb-xfixes0-dev_1.12-1ubuntu1 libxcb-xinerama0_1.12-1ubuntu1 libxcb-xkb1_1.12-1ubuntu1 libxcb1_1.12-1ubuntu1 libxcb1-dev_1.12-1ubuntu1 libxdamage-dev_1:1.1.4-3 libxdamage1_1:1.1.4-3 libxdmcp-dev_1:1.1.2-3 libxdmcp6_1:1.1.2-3 libxext-dev_2:1.3.3-1 libxext6_2:1.3.3-1 libxfixes-dev_1:5.0.3-1 libxfixes3_1:5.0.3-1 libxfont2_1:2.0.1-4ubuntu1 libxi6_2:1.7.9-1 libxkbcommon-dev_0.8.0-1 libxkbcommon-x11-0_0.8.0-1 libxkbcommon0_0.8.0-1 libxkbfile1_1:1.0.9-2 libxml-libxml-perl_2.0128+dfsg-5 libxml-namespacesupport-perl_1.12-1 libxml-sax-base-perl_1.09-1 libxml-sax-perl_0.99+dfsg-2ubuntu1 libxml-simple-perl_2.24-1 libxml2_2.9.4+dfsg1-5.2ubuntu1 libxmu6_2:1.1.2-2 libxmuu1_2:1.1.2-2 libxpm4_1:3.5.12-1 libxshmfence-dev_1.2-1 libxshmfence1_1.2-1 libxslt1.1_1.1.29-5 libxt6_1:1.1.5-1 libxxf86vm-dev_1:1.1.4-1 libxxf86vm1_1:1.1.4-1 libyaml-libyaml-perl_0.63-2build1 lintian_2.5.62 linux-libc-dev_4.13.0-25.29 lockfile-progs_0.1.17build1 login_1:4.2-3.2ubuntu4 lsb-base_9.20170808ubuntu1 m4_1.4.18-1 make_4.1-9.1 man-db_2.7.6.1-4 mawk_1.3.3-17ubuntu2 mime-support_3.60ubuntu1 mount_2.30.2-0.1ubuntu1 multiarch-support_2.26-0ubuntu2 ncurses-base_6.0+20160625-1ubuntu1 ncurses-bin_6.0+20160625-1ubuntu1 netbase_5.4 openssl_1.0.2g-1ubuntu14 optipng_0.7.6-1.1 passwd_1:4.2-3.2ubuntu4 patch_2.7.5-1build1 patchutils_0.3.4-2 perl_5.26.1-3 perl-base_5.26.1-3 perl-modules-5.26_5.26.1-3 perl-openssl-defaults_3 pinentry-curses_1.0.0-3 pkg-kde-tools_0.15.28ubuntu1 pkgbinarymangler_131 po-debconf_1.0.20 policyrcd-script-zg2_0.1-3 procps_2:3.3.12-1ubuntu2 python3_3.6.3-0ubuntu2 python3-distutils_3.6.4~rc1-6 python3-minimal_3.6.3-0ubuntu2 python3.6_3.6.4-2 python3.6-2to3_3.6.4-2 python3.6-minimal_3.6.4-2 qt5-qmake_5.9.3+dfsg-0ubuntu1 qt5-qmake-bin_5.9.3+dfsg-0ubuntu1 qtbase5-dev_5.9.3+dfsg-0ubuntu1 qtbase5-dev-tools_5.9.3+dfsg-0ubuntu1 qtchooser_64-ga1b6736-5 qtscript5-dev_5.9.3+dfsg-0ubuntu1 qttools5-dev_5.9.3-0ubuntu3 qttools5-dev-tools_5.9.3-0ubuntu3 readline-common_7.0-0ubuntu2 sbuild-build-depends-core-dummy_0.invalid.0 sbuild-build-depends-grantlee5-dummy_0.invalid.0 sed_4.4-1 sensible-utils_0.0.11 systemd_235-3ubuntu3 systemd-sysv_235-3ubuntu3 sysv-rc_2.88dsf-59.3ubuntu2 sysvinit-utils_2.88dsf-59.10ubuntu1 t1utils_1.41-2 tar_1.29b-2 tzdata_2017c-1 ubuntu-keyring_2016.10.27 ucf_3.0036 util-linux_2.30.2-0.1ubuntu1 x11-common_1:7.7+19ubuntu3 x11-xkb-utils_7.7+3 x11proto-core-dev_7.0.31-1 x11proto-damage-dev_1:1.2.1-2 x11proto-dri2-dev_2.8-2 x11proto-fixes-dev_1:5.0-2ubuntu2 x11proto-gl-dev_1.4.17-1 x11proto-input-dev_2.3.2-1 x11proto-kb-dev_1.0.7-1 x11proto-xext-dev_7.3.0-1 x11proto-xf86vidmode-dev_2.3.1-2 xauth_1:1.0.10-1 xkb-data_2.19-1.1ubuntu1 xorg-sgml-doctools_1:1.11-1 xserver-common_2:1.19.5-0ubuntu2 xtrans-dev_1.3.5-1 xvfb_2:1.19.5-0ubuntu2 xz-utils_5.2.2-1.3 zlib1g_1:1.2.11.dfsg-0ubuntu2 zlib1g-dev_1:1.2.11.dfsg-0ubuntu2 +------------------------------------------------------------------------------+ | Build | +------------------------------------------------------------------------------+ Unpack source ------------- gpgv: Signature made Mon Oct 24 09:36:50 2016 UTC gpgv: using RSA key gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./grantlee5_5.1.0-2.dsc dpkg-source: info: extracting grantlee5 in grantlee5-5.1.0 dpkg-source: info: unpacking grantlee5_5.1.0.orig.tar.gz dpkg-source: info: unpacking grantlee5_5.1.0-2.debian.tar.xz dpkg-source: info: applying variantIsTrue-float-fix.diff Check disc space ---------------- Sufficient free space for build User Environment ---------------- APT_CONFIG=/var/lib/sbuild/apt.conf DEB_BUILD_OPTIONS=noautodbgsym parallel=4 HOME=/sbuild-nonexistent LANG=C.UTF-8 LC_ALL=C.UTF-8 LOGNAME=buildd PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games SCHROOT_ALIAS_NAME=build-PACKAGEBUILD-14100384 SCHROOT_CHROOT_NAME=build-PACKAGEBUILD-14100384 SCHROOT_COMMAND=env SCHROOT_GID=2501 SCHROOT_GROUP=buildd SCHROOT_SESSION_ID=build-PACKAGEBUILD-14100384 SCHROOT_UID=2001 SCHROOT_USER=buildd SHELL=/bin/sh TERM=unknown USER=buildd V=1 dpkg-buildpackage ----------------- dpkg-buildpackage: info: source package grantlee5 dpkg-buildpackage: info: source version 5.1.0-2 dpkg-buildpackage: info: source distribution unstable dpkg-source --before-build grantlee5-5.1.0 dpkg-buildpackage: info: host architecture armhf fakeroot debian/rules clean dh clean --parallel --with pkgkde_symbolshelper dh_auto_clean -O--parallel dh_clean -O--parallel debian/rules build-arch dh build-arch --parallel --with pkgkde_symbolshelper dh_update_autotools_config -a -O--parallel debian/rules override_dh_auto_configure make[1]: Entering directory '/<>' dh_auto_configure -- -DBUILD_TESTS=ON -DLIB_SUFFIX="/arm-linux-gnueabihf" cd obj-arm-linux-gnueabihf && cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=ON -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 -DBUILD_TESTS=ON -DLIB_SUFFIX=/arm-linux-gnueabihf -- The C compiler identification is GNU 8.0.0 -- The CXX compiler identification is GNU 8.0.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY -- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success -- Performing Test COMPILER_HAS_DEPRECATED_ATTR -- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success -- Looking for C++ include tr1/unordered_map -- Looking for C++ include tr1/unordered_map - found -- Looking for C++ include tr1/array -- Looking for C++ include tr1/array - found -- Looking for C++ include tr1/memory -- Looking for C++ include tr1/memory - found -- Performing Test HAVE_WORKING_TR1_UNORDERED_MAP -- Performing Test HAVE_WORKING_TR1_UNORDERED_MAP - Success -- Enabling TR1 container tests -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) -- Found LCov: /usr/bin/lcov -- Found Cccc: /usr/bin/cccc -- Configuring done -- Generating done CMake Warning: Manually-specified variables were not used by the project: CMAKE_EXPORT_NO_PACKAGE_REGISTRY CMAKE_INSTALL_LOCALSTATEDIR CMAKE_INSTALL_SYSCONFDIR -- Build files have been written to: /<>/obj-arm-linux-gnueabihf make[1]: Leaving directory '/<>' dh_auto_build -a -O--parallel cd obj-arm-linux-gnueabihf && make -j4 make[1]: Entering directory '/<>/obj-arm-linux-gnueabihf' /usr/bin/cmake -H/<> -B/<>/obj-arm-linux-gnueabihf --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /<>/obj-arm-linux-gnueabihf/CMakeFiles /<>/obj-arm-linux-gnueabihf/CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[2]: Entering directory '/<>/obj-arm-linux-gnueabihf' make -f templates/lib/CMakeFiles/Grantlee_Templates_autogen.dir/build.make templates/lib/CMakeFiles/Grantlee_Templates_autogen.dir/depend make -f templates/tests/CMakeFiles/template_test_builtins_autogen.dir/build.make templates/tests/CMakeFiles/template_test_builtins_autogen.dir/depend make -f templates/tests/pluginpointertest/CMakeFiles/main_app_autogen.dir/build.make templates/tests/pluginpointertest/CMakeFiles/main_app_autogen.dir/depend make -f templates/tests/pluginpointertest/CMakeFiles/myplugin_autogen.dir/build.make templates/tests/pluginpointertest/CMakeFiles/myplugin_autogen.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/lib /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/lib /<>/obj-arm-linux-gnueabihf/templates/lib/CMakeFiles/Grantlee_Templates_autogen.dir/DependInfo.cmake --color= make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests/pluginpointertest /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest/CMakeFiles/main_app_autogen.dir/DependInfo.cmake --color= cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/template_test_builtins_autogen.dir/DependInfo.cmake --color= make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests/pluginpointertest /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest/CMakeFiles/myplugin_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target template_test_builtins_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/template_test_builtins_autogen.dir/build.make templates/tests/CMakeFiles/template_test_builtins_autogen.dir/build Scanning dependencies of target main_app_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/pluginpointertest/CMakeFiles/main_app_autogen.dir/build.make templates/tests/pluginpointertest/CMakeFiles/main_app_autogen.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' Scanning dependencies of target Grantlee_Templates_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/lib/CMakeFiles/Grantlee_Templates_autogen.dir/build.make templates/lib/CMakeFiles/Grantlee_Templates_autogen.dir/build Scanning dependencies of target myplugin_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/pluginpointertest/CMakeFiles/myplugin_autogen.dir/build.make templates/tests/pluginpointertest/CMakeFiles/myplugin_autogen.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 1%] Automatic MOC for target main_app [ 1%] Generating test_de_DE.qm, test_fr_FR.qm cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/lib/qt5/bin/lrelease /<>/templates/tests/test_fr_FR.ts -qm /<>/obj-arm-linux-gnueabihf/templates/tests/test_fr_FR.qm [ 2%] Automatic MOC for target Grantlee_Templates cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/templates/lib/CMakeFiles/Grantlee_Templates_autogen.dir None cd /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest/CMakeFiles/main_app_autogen.dir None Updating '/<>/obj-arm-linux-gnueabihf/templates/tests/test_fr_FR.qm'... Generated 17 translation(s) (17 finished and 0 unfinished) cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/lib/qt5/bin/lrelease /<>/templates/tests/test_de_DE.ts -qm /<>/obj-arm-linux-gnueabihf/templates/tests/test_de_DE.qm [ 3%] Automatic MOC for target myplugin cd /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest/CMakeFiles/myplugin_autogen.dir None Updating '/<>/obj-arm-linux-gnueabihf/templates/tests/test_de_DE.qm'... Generated 12 translation(s) (12 finished and 0 unfinished) Ignored 5 untranslated source text(s) [ 4%] Generating qrc_testresource.cpp cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/lib/qt5/bin/rcc -root / --name testresource --output /<>/obj-arm-linux-gnueabihf/templates/tests/qrc_testresource.cpp /<>/obj-arm-linux-gnueabihf/templates/tests/testresource.qrc [ 4%] Automatic MOC for target template_test_builtins cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/template_test_builtins_autogen.dir None Generating MOC predefs moc_predefs.h Generating MOC source EWIEGA46WW/moc_myobject.cpp Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' Generating MOC predefs moc_predefs.h Generating MOC source EWIEGA46WW/moc_myobject.cpp Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 4%] Built target main_app_autogen make -f textdocument/lib/CMakeFiles/Grantlee_TextDocument_autogen.dir/build.make textdocument/lib/CMakeFiles/Grantlee_TextDocument_autogen.dir/depend [ 4%] Built target myplugin_autogen make -f textdocument/tests/CMakeFiles/textdocument_test_builtins_autogen.dir/build.make textdocument/tests/CMakeFiles/textdocument_test_builtins_autogen.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/textdocument/lib /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/textdocument/lib /<>/obj-arm-linux-gnueabihf/textdocument/lib/CMakeFiles/Grantlee_TextDocument_autogen.dir/DependInfo.cmake --color= make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/textdocument/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/textdocument/tests /<>/obj-arm-linux-gnueabihf/textdocument/tests/CMakeFiles/textdocument_test_builtins_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target textdocument_test_builtins_autogen Scanning dependencies of target Grantlee_TextDocument_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f textdocument/lib/CMakeFiles/Grantlee_TextDocument_autogen.dir/build.make textdocument/lib/CMakeFiles/Grantlee_TextDocument_autogen.dir/build make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f textdocument/tests/CMakeFiles/textdocument_test_builtins_autogen.dir/build.make textdocument/tests/CMakeFiles/textdocument_test_builtins_autogen.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 5%] Automatic MOC for target textdocument_test_builtins [ 6%] Automatic MOC for target Grantlee_TextDocument cd /<>/obj-arm-linux-gnueabihf/textdocument/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/textdocument/tests/CMakeFiles/textdocument_test_builtins_autogen.dir None cd /<>/obj-arm-linux-gnueabihf/textdocument/lib && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/textdocument/lib/CMakeFiles/Grantlee_TextDocument_autogen.dir None Generating MOC predefs moc_predefs.h Generating MOC source EWIEGA46WW/moc_coverageobject.cpp Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 6%] Built target template_test_builtins_autogen make -f templates/tests/CMakeFiles/template_test_builtins.dir/build.make templates/tests/CMakeFiles/template_test_builtins.dir/depend Generating MOC predefs moc_predefs.h Generating MOC compilation mocs_compilation.cpp make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/template_test_builtins.dir/DependInfo.cmake --color= make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 6%] Built target Grantlee_TextDocument_autogen make -f templates/tests/pluginpointertest/CMakeFiles/main_app.dir/build.make templates/tests/pluginpointertest/CMakeFiles/main_app.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests/pluginpointertest /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest/CMakeFiles/main_app.dir/DependInfo.cmake --color= Generating MOC predefs moc_predefs.h Generating MOC source EWIEGA46WW/moc_coverageobject.cpp Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' Scanning dependencies of target template_test_builtins make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/template_test_builtins.dir/build.make templates/tests/CMakeFiles/template_test_builtins.dir/build Scanning dependencies of target main_app make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/pluginpointertest/CMakeFiles/main_app.dir/build.make templates/tests/pluginpointertest/CMakeFiles/main_app.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 6%] Built target textdocument_test_builtins_autogen make -f templates/tests/pluginpointertest/CMakeFiles/myplugin.dir/build.make templates/tests/pluginpointertest/CMakeFiles/myplugin.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests/pluginpointertest /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest/CMakeFiles/myplugin.dir/DependInfo.cmake --color= [ 7%] Building CXX object templates/tests/CMakeFiles/template_test_builtins.dir/coverageobject.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/template_test_builtins_autogen/include -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/template_test_builtins.dir/coverageobject.cpp.o -c /<>/templates/tests/coverageobject.cpp [ 8%] Building CXX object templates/tests/pluginpointertest/CMakeFiles/main_app.dir/main.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest -I/<>/templates/tests/pluginpointertest -I/<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest/main_app_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/main_app.dir/main.cpp.o -c /<>/templates/tests/pluginpointertest/main.cpp Scanning dependencies of target myplugin make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/pluginpointertest/CMakeFiles/myplugin.dir/build.make templates/tests/pluginpointertest/CMakeFiles/myplugin.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 9%] Building CXX object templates/tests/pluginpointertest/CMakeFiles/myplugin.dir/myobject.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dmyplugin_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest -I/<>/templates/tests/pluginpointertest -I/<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest/myplugin_autogen/include -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/myplugin.dir/myobject.cpp.o -c /<>/templates/tests/pluginpointertest/myobject.cpp Generating MOC predefs moc_predefs.h Generating MOC source include/moc_nodebuiltins_p.cpp Generating MOC source EWIEGA46WW/moc_engine.cpp Generating MOC source EWIEGA46WW/moc_node.cpp Generating MOC source EWIEGA46WW/moc_parser.cpp Generating MOC source EWIEGA46WW/moc_template.cpp Generating MOC source MTDBPGIEEV/moc_scriptablecontext.cpp Generating MOC source MTDBPGIEEV/moc_scriptablefilterexpression.cpp Generating MOC source MTDBPGIEEV/moc_scriptablenode.cpp Generating MOC source MTDBPGIEEV/moc_scriptableparser.cpp Generating MOC source MTDBPGIEEV/moc_scriptablesafestring.cpp Generating MOC source MTDBPGIEEV/moc_scriptabletags.cpp Generating MOC source MTDBPGIEEV/moc_scriptabletemplate.cpp Generating MOC source MTDBPGIEEV/moc_scriptablevariable.cpp Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 9%] Built target Grantlee_Templates_autogen make -f textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/build.make textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/textdocument/lib /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/textdocument/lib /<>/obj-arm-linux-gnueabihf/textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/DependInfo.cmake --color= Scanning dependencies of target Grantlee_TextDocument make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/build.make textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 9%] Building CXX object textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/bbcodebuilder.cpp.o cd /<>/obj-arm-linux-gnueabihf/textdocument/lib && /usr/bin/c++ -DGrantlee_TextDocument_EXPORTS -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/textdocument/lib -I/<>/textdocument/lib -I/<>/obj-arm-linux-gnueabihf/textdocument/lib/Grantlee_TextDocument_autogen/include -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtGui -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_TextDocument.dir/bbcodebuilder.cpp.o -c /<>/textdocument/lib/bbcodebuilder.cpp [ 10%] Building CXX object templates/tests/pluginpointertest/CMakeFiles/myplugin.dir/myplugin_autogen/mocs_compilation.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dmyplugin_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest -I/<>/templates/tests/pluginpointertest -I/<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest/myplugin_autogen/include -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/myplugin.dir/myplugin_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest/myplugin_autogen/mocs_compilation.cpp [ 10%] Building CXX object templates/tests/pluginpointertest/CMakeFiles/main_app.dir/myobject.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest -I/<>/templates/tests/pluginpointertest -I/<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest/main_app_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/main_app.dir/myobject.cpp.o -c /<>/templates/tests/pluginpointertest/myobject.cpp [ 11%] Building CXX object templates/tests/CMakeFiles/template_test_builtins.dir/qrc_testresource.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/template_test_builtins_autogen/include -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/template_test_builtins.dir/qrc_testresource.cpp.o -c /<>/obj-arm-linux-gnueabihf/templates/tests/qrc_testresource.cpp [ 11%] Building CXX object templates/tests/CMakeFiles/template_test_builtins.dir/template_test_builtins_autogen/mocs_compilation.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/template_test_builtins_autogen/include -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/template_test_builtins.dir/template_test_builtins_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/templates/tests/template_test_builtins_autogen/mocs_compilation.cpp [ 11%] Linking CXX shared library myplugin.so cd /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest && /usr/bin/cmake -E cmake_link_script CMakeFiles/myplugin.dir/link.txt --verbose=1 /usr/bin/c++ -fPIC -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-Bsymbolic-functions -Wl,-z,relro -shared -Wl,-soname,myplugin.so -o myplugin.so CMakeFiles/myplugin.dir/myobject.cpp.o CMakeFiles/myplugin.dir/myplugin_autogen/mocs_compilation.cpp.o /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.9.3 [ 12%] Building CXX object textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/markupdirector.cpp.o cd /<>/obj-arm-linux-gnueabihf/textdocument/lib && /usr/bin/c++ -DGrantlee_TextDocument_EXPORTS -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/textdocument/lib -I/<>/textdocument/lib -I/<>/obj-arm-linux-gnueabihf/textdocument/lib/Grantlee_TextDocument_autogen/include -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtGui -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_TextDocument.dir/markupdirector.cpp.o -c /<>/textdocument/lib/markupdirector.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 13%] Building CXX object templates/tests/pluginpointertest/CMakeFiles/main_app.dir/main_app_autogen/mocs_compilation.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest -I/<>/templates/tests/pluginpointertest -I/<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest/main_app_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/main_app.dir/main_app_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest/main_app_autogen/mocs_compilation.cpp [ 13%] Built target myplugin make -f textdocument/tests/CMakeFiles/textdocument_test_builtins.dir/build.make textdocument/tests/CMakeFiles/textdocument_test_builtins.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/textdocument/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/textdocument/tests /<>/obj-arm-linux-gnueabihf/textdocument/tests/CMakeFiles/textdocument_test_builtins.dir/DependInfo.cmake --color= Scanning dependencies of target textdocument_test_builtins make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f textdocument/tests/CMakeFiles/textdocument_test_builtins.dir/build.make textdocument/tests/CMakeFiles/textdocument_test_builtins.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 14%] Building CXX object textdocument/tests/CMakeFiles/textdocument_test_builtins.dir/coverageobject.cpp.o cd /<>/obj-arm-linux-gnueabihf/textdocument/tests && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/textdocument/tests -I/<>/textdocument/tests -I/<>/obj-arm-linux-gnueabihf/textdocument/tests/textdocument_test_builtins_autogen/include -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/textdocument_test_builtins.dir/coverageobject.cpp.o -c /<>/textdocument/tests/coverageobject.cpp [ 15%] Linking CXX static library libtemplate_test_builtins.a cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -P CMakeFiles/template_test_builtins.dir/cmake_clean_target.cmake cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/template_test_builtins.dir/link.txt --verbose=1 /usr/bin/ar qc libtemplate_test_builtins.a CMakeFiles/template_test_builtins.dir/coverageobject.cpp.o CMakeFiles/template_test_builtins.dir/qrc_testresource.cpp.o CMakeFiles/template_test_builtins.dir/template_test_builtins_autogen/mocs_compilation.cpp.o /usr/bin/ranlib libtemplate_test_builtins.a make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 16%] Built target template_test_builtins make -f templates/lib/CMakeFiles/Grantlee_Templates.dir/build.make templates/lib/CMakeFiles/Grantlee_Templates.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/lib /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/lib /<>/obj-arm-linux-gnueabihf/templates/lib/CMakeFiles/Grantlee_Templates.dir/DependInfo.cmake --color= Scanning dependencies of target Grantlee_Templates make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/lib/CMakeFiles/Grantlee_Templates.dir/build.make templates/lib/CMakeFiles/Grantlee_Templates.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 16%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/abstractlocalizer.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/abstractlocalizer.cpp.o -c /<>/templates/lib/abstractlocalizer.cpp [ 17%] Linking CXX executable main_app cd /<>/obj-arm-linux-gnueabihf/templates/tests/pluginpointertest && /usr/bin/cmake -E cmake_link_script CMakeFiles/main_app.dir/link.txt --verbose=1 /usr/bin/c++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -Wl,-Bsymbolic-functions -Wl,-z,relro -rdynamic CMakeFiles/main_app.dir/main.cpp.o CMakeFiles/main_app.dir/myobject.cpp.o CMakeFiles/main_app.dir/main_app_autogen/mocs_compilation.cpp.o -o main_app /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.9.3 [ 17%] Building CXX object textdocument/tests/CMakeFiles/textdocument_test_builtins.dir/textdocument_test_builtins_autogen/mocs_compilation.cpp.o cd /<>/obj-arm-linux-gnueabihf/textdocument/tests && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/textdocument/tests -I/<>/textdocument/tests -I/<>/obj-arm-linux-gnueabihf/textdocument/tests/textdocument_test_builtins_autogen/include -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/textdocument_test_builtins.dir/textdocument_test_builtins_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/textdocument/tests/textdocument_test_builtins_autogen/mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 17%] Built target main_app [ 18%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/cachingloaderdecorator.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/cachingloaderdecorator.cpp.o -c /<>/templates/lib/cachingloaderdecorator.cpp [ 18%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/customtyperegistry.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/customtyperegistry.cpp.o -c /<>/templates/lib/customtyperegistry.cpp [ 19%] Linking CXX static library libtextdocument_test_builtins.a cd /<>/obj-arm-linux-gnueabihf/textdocument/tests && /usr/bin/cmake -P CMakeFiles/textdocument_test_builtins.dir/cmake_clean_target.cmake cd /<>/obj-arm-linux-gnueabihf/textdocument/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/textdocument_test_builtins.dir/link.txt --verbose=1 /usr/bin/ar qc libtextdocument_test_builtins.a CMakeFiles/textdocument_test_builtins.dir/coverageobject.cpp.o CMakeFiles/textdocument_test_builtins.dir/textdocument_test_builtins_autogen/mocs_compilation.cpp.o /usr/bin/ranlib libtextdocument_test_builtins.a make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 19%] Built target textdocument_test_builtins [ 20%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/context.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/context.cpp.o -c /<>/templates/lib/context.cpp [ 21%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/engine.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/engine.cpp.o -c /<>/templates/lib/engine.cpp [ 21%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/filter.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/filter.cpp.o -c /<>/templates/lib/filter.cpp [ 22%] Building CXX object textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/plaintextmarkupbuilder.cpp.o cd /<>/obj-arm-linux-gnueabihf/textdocument/lib && /usr/bin/c++ -DGrantlee_TextDocument_EXPORTS -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/textdocument/lib -I/<>/textdocument/lib -I/<>/obj-arm-linux-gnueabihf/textdocument/lib/Grantlee_TextDocument_autogen/include -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtGui -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_TextDocument.dir/plaintextmarkupbuilder.cpp.o -c /<>/textdocument/lib/plaintextmarkupbuilder.cpp [ 23%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/filterexpression.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/filterexpression.cpp.o -c /<>/templates/lib/filterexpression.cpp [ 23%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/lexer.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/lexer.cpp.o -c /<>/templates/lib/lexer.cpp [ 24%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/metatype.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/metatype.cpp.o -c /<>/templates/lib/metatype.cpp [ 24%] Building CXX object textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/texthtmlbuilder.cpp.o cd /<>/obj-arm-linux-gnueabihf/textdocument/lib && /usr/bin/c++ -DGrantlee_TextDocument_EXPORTS -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/textdocument/lib -I/<>/textdocument/lib -I/<>/obj-arm-linux-gnueabihf/textdocument/lib/Grantlee_TextDocument_autogen/include -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtGui -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_TextDocument.dir/texthtmlbuilder.cpp.o -c /<>/textdocument/lib/texthtmlbuilder.cpp [ 25%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/node.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/node.cpp.o -c /<>/templates/lib/node.cpp [ 25%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/nodebuiltins.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/nodebuiltins.cpp.o -c /<>/templates/lib/nodebuiltins.cpp [ 26%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/nulllocalizer.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/nulllocalizer.cpp.o -c /<>/templates/lib/nulllocalizer.cpp [ 26%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/outputstream.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/outputstream.cpp.o -c /<>/templates/lib/outputstream.cpp [ 27%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/parser.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/parser.cpp.o -c /<>/templates/lib/parser.cpp [ 28%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/qtlocalizer.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/qtlocalizer.cpp.o -c /<>/templates/lib/qtlocalizer.cpp [ 29%] Building CXX object textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/mediawikimarkupbuilder.cpp.o cd /<>/obj-arm-linux-gnueabihf/textdocument/lib && /usr/bin/c++ -DGrantlee_TextDocument_EXPORTS -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/textdocument/lib -I/<>/textdocument/lib -I/<>/obj-arm-linux-gnueabihf/textdocument/lib/Grantlee_TextDocument_autogen/include -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtGui -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_TextDocument.dir/mediawikimarkupbuilder.cpp.o -c /<>/textdocument/lib/mediawikimarkupbuilder.cpp /<>/templates/lib/parser.cpp: In member function ‘Grantlee::NodeList Grantlee::ParserPrivate::parse(QObject*, const QStringList&)’: /<>/templates/lib/parser.cpp:208:36: warning: catching polymorphic type ‘class Grantlee::Exception’ by value [-Wcatch-value=] } catch (Grantlee::Exception e) { ^ /<>/templates/lib/parser.cpp:250:36: warning: catching polymorphic type ‘class Grantlee::Exception’ by value [-Wcatch-value=] } catch (Grantlee::Exception e) { ^ [ 29%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/rendercontext.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/rendercontext.cpp.o -c /<>/templates/lib/rendercontext.cpp [ 30%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/safestring.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/safestring.cpp.o -c /<>/templates/lib/safestring.cpp [ 31%] Building CXX object textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/Grantlee_TextDocument_autogen/mocs_compilation.cpp.o cd /<>/obj-arm-linux-gnueabihf/textdocument/lib && /usr/bin/c++ -DGrantlee_TextDocument_EXPORTS -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/textdocument/lib -I/<>/textdocument/lib -I/<>/obj-arm-linux-gnueabihf/textdocument/lib/Grantlee_TextDocument_autogen/include -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtGui -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_TextDocument.dir/Grantlee_TextDocument_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/textdocument/lib/Grantlee_TextDocument_autogen/mocs_compilation.cpp [ 31%] Linking CXX shared library libGrantlee_TextDocument.so cd /<>/obj-arm-linux-gnueabihf/textdocument/lib && /usr/bin/cmake -E cmake_link_script CMakeFiles/Grantlee_TextDocument.dir/link.txt --verbose=1 /usr/bin/c++ -fPIC -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-Bsymbolic-functions -Wl,-z,relro -shared -Wl,-soname,libGrantlee_TextDocument.so.5 -o libGrantlee_TextDocument.so.5.1.0 CMakeFiles/Grantlee_TextDocument.dir/bbcodebuilder.cpp.o CMakeFiles/Grantlee_TextDocument.dir/markupdirector.cpp.o CMakeFiles/Grantlee_TextDocument.dir/plaintextmarkupbuilder.cpp.o CMakeFiles/Grantlee_TextDocument.dir/texthtmlbuilder.cpp.o CMakeFiles/Grantlee_TextDocument.dir/mediawikimarkupbuilder.cpp.o CMakeFiles/Grantlee_TextDocument.dir/Grantlee_TextDocument_autogen/mocs_compilation.cpp.o /usr/lib/arm-linux-gnueabihf/libQt5Gui.so.5.9.3 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.9.3 cd /<>/obj-arm-linux-gnueabihf/textdocument/lib && /usr/bin/cmake -E cmake_symlink_library libGrantlee_TextDocument.so.5.1.0 libGrantlee_TextDocument.so.5 libGrantlee_TextDocument.so make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 31%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/template.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/template.cpp.o -c /<>/templates/lib/template.cpp [ 31%] Built target Grantlee_TextDocument make -f textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec_autogen.dir/build.make textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec_autogen.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/textdocument/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/textdocument/tests /<>/obj-arm-linux-gnueabihf/textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target plainmarkupbuildertest_exec_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec_autogen.dir/build.make textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 31%] Automatic MOC for target plainmarkupbuildertest_exec cd /<>/obj-arm-linux-gnueabihf/textdocument/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec_autogen.dir None Generating MOC predefs moc_predefs.h Generating MOC source include/plainmarkupbuildertest.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 31%] Built target plainmarkupbuildertest_exec_autogen [ 32%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/templateloader.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/templateloader.cpp.o -c /<>/templates/lib/templateloader.cpp [ 33%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/textprocessingmachine.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/textprocessingmachine.cpp.o -c /<>/templates/lib/textprocessingmachine.cpp [ 33%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/typeaccessors.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/typeaccessors.cpp.o -c /<>/templates/lib/typeaccessors.cpp [ 34%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/util.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/util.cpp.o -c /<>/templates/lib/util.cpp [ 35%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/variable.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/variable.cpp.o -c /<>/templates/lib/variable.cpp [ 35%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablecontext.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablecontext.cpp.o -c /<>/templates/scriptabletags/scriptablecontext.cpp [ 36%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablefilterexpression.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablefilterexpression.cpp.o -c /<>/templates/scriptabletags/scriptablefilterexpression.cpp [ 36%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablenode.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablenode.cpp.o -c /<>/templates/scriptabletags/scriptablenode.cpp [ 37%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptableparser.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptableparser.cpp.o -c /<>/templates/scriptabletags/scriptableparser.cpp [ 38%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablesafestring.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablesafestring.cpp.o -c /<>/templates/scriptabletags/scriptablesafestring.cpp [ 38%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptabletags.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptabletags.cpp.o -c /<>/templates/scriptabletags/scriptabletags.cpp [ 39%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptabletemplate.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptabletemplate.cpp.o -c /<>/templates/scriptabletags/scriptabletemplate.cpp [ 39%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablevariable.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablevariable.cpp.o -c /<>/templates/scriptabletags/scriptablevariable.cpp [ 40%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablefilter.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablefilter.cpp.o -c /<>/templates/scriptabletags/scriptablefilter.cpp [ 41%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/Grantlee_Templates_autogen/mocs_compilation.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/c++ -DGrantlee_Templates_EXPORTS -DPLUGINS_PREFER_DEBUG_POSTFIX=0 -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SCRIPT_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -I/<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtScript -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/Grantlee_Templates.dir/Grantlee_Templates_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/templates/lib/Grantlee_Templates_autogen/mocs_compilation.cpp make -f textdocument/tests/CMakeFiles/htmlbuildertest_exec_autogen.dir/build.make textdocument/tests/CMakeFiles/htmlbuildertest_exec_autogen.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/textdocument/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/textdocument/tests /<>/obj-arm-linux-gnueabihf/textdocument/tests/CMakeFiles/htmlbuildertest_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target htmlbuildertest_exec_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f textdocument/tests/CMakeFiles/htmlbuildertest_exec_autogen.dir/build.make textdocument/tests/CMakeFiles/htmlbuildertest_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 41%] Automatic MOC for target htmlbuildertest_exec cd /<>/obj-arm-linux-gnueabihf/textdocument/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/textdocument/tests/CMakeFiles/htmlbuildertest_exec_autogen.dir None Generating MOC predefs moc_predefs.h Generating MOC source include/htmlbuildertest.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 41%] Built target htmlbuildertest_exec_autogen make -f textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec.dir/build.make textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec.dir/depend make -f textdocument/tests/CMakeFiles/htmlbuildertest_exec.dir/build.make textdocument/tests/CMakeFiles/htmlbuildertest_exec.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/textdocument/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/textdocument/tests /<>/obj-arm-linux-gnueabihf/textdocument/tests/CMakeFiles/htmlbuildertest_exec.dir/DependInfo.cmake --color= make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/textdocument/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/textdocument/tests /<>/obj-arm-linux-gnueabihf/textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec.dir/DependInfo.cmake --color= Scanning dependencies of target htmlbuildertest_exec make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f textdocument/tests/CMakeFiles/htmlbuildertest_exec.dir/build.make textdocument/tests/CMakeFiles/htmlbuildertest_exec.dir/build Scanning dependencies of target plainmarkupbuildertest_exec make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec.dir/build.make textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 41%] Building CXX object textdocument/tests/CMakeFiles/htmlbuildertest_exec.dir/htmlbuildertest.cpp.o [ 41%] Building CXX object textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec.dir/plainmarkupbuildertest.cpp.o cd /<>/obj-arm-linux-gnueabihf/textdocument/tests && /usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/textdocument/tests -I/<>/textdocument/tests -I/<>/obj-arm-linux-gnueabihf/textdocument/tests/htmlbuildertest_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/textdocument/lib -I/<>/textdocument/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtGui -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/htmlbuildertest_exec.dir/htmlbuildertest.cpp.o -c /<>/textdocument/tests/htmlbuildertest.cpp cd /<>/obj-arm-linux-gnueabihf/textdocument/tests && /usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/textdocument/tests -I/<>/textdocument/tests -I/<>/obj-arm-linux-gnueabihf/textdocument/tests/plainmarkupbuildertest_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/textdocument/lib -I/<>/textdocument/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtGui -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/plainmarkupbuildertest_exec.dir/plainmarkupbuildertest.cpp.o -c /<>/textdocument/tests/plainmarkupbuildertest.cpp [ 42%] Building CXX object textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec.dir/plainmarkupbuildertest_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-arm-linux-gnueabihf/textdocument/tests && /usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/textdocument/tests -I/<>/textdocument/tests -I/<>/obj-arm-linux-gnueabihf/textdocument/tests/plainmarkupbuildertest_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/textdocument/lib -I/<>/textdocument/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtGui -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/plainmarkupbuildertest_exec.dir/plainmarkupbuildertest_exec_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/textdocument/tests/plainmarkupbuildertest_exec_autogen/mocs_compilation.cpp [ 43%] Building CXX object textdocument/tests/CMakeFiles/htmlbuildertest_exec.dir/htmlbuildertest_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-arm-linux-gnueabihf/textdocument/tests && /usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -I/<>/obj-arm-linux-gnueabihf/textdocument/tests -I/<>/textdocument/tests -I/<>/obj-arm-linux-gnueabihf/textdocument/tests/htmlbuildertest_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/textdocument/lib -I/<>/textdocument/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtGui -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/htmlbuildertest_exec.dir/htmlbuildertest_exec_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/textdocument/tests/htmlbuildertest_exec_autogen/mocs_compilation.cpp [ 43%] Linking CXX shared library libGrantlee_Templates.so cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/cmake -E cmake_link_script CMakeFiles/Grantlee_Templates.dir/link.txt --verbose=1 /usr/bin/c++ -fPIC -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-Bsymbolic-functions -Wl,-z,relro -shared -Wl,-soname,libGrantlee_Templates.so.5 -o libGrantlee_Templates.so.5.1.0 CMakeFiles/Grantlee_Templates.dir/abstractlocalizer.cpp.o CMakeFiles/Grantlee_Templates.dir/cachingloaderdecorator.cpp.o CMakeFiles/Grantlee_Templates.dir/customtyperegistry.cpp.o CMakeFiles/Grantlee_Templates.dir/context.cpp.o CMakeFiles/Grantlee_Templates.dir/engine.cpp.o CMakeFiles/Grantlee_Templates.dir/filter.cpp.o CMakeFiles/Grantlee_Templates.dir/filterexpression.cpp.o CMakeFiles/Grantlee_Templates.dir/lexer.cpp.o CMakeFiles/Grantlee_Templates.dir/metatype.cpp.o CMakeFiles/Grantlee_Templates.dir/node.cpp.o CMakeFiles/Grantlee_Templates.dir/nodebuiltins.cpp.o CMakeFiles/Grantlee_Templates.dir/nulllocalizer.cpp.o CMakeFiles/Grantlee_Templates.dir/outputstream.cpp.o CMakeFiles/Grantlee_Templates.dir/parser.cpp.o CMakeFiles/Grantlee_Templates.dir/qtlocalizer.cpp.o CMakeFiles/Grantlee_Templates.dir/rendercontext.cpp.o CMakeFiles/Grantlee_Templates.dir/safestring.cpp.o CMakeFiles/Grantlee_Templates.dir/template.cpp.o CMakeFiles/Grantlee_Templates.dir/templateloader.cpp.o CMakeFiles/Grantlee_Templates.dir/textprocessingmachine.cpp.o CMakeFiles/Grantlee_Templates.dir/typeaccessors.cpp.o CMakeFiles/Grantlee_Templates.dir/util.cpp.o CMakeFiles/Grantlee_Templates.dir/variable.cpp.o CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablecontext.cpp.o CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablefilterexpression.cpp.o CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablenode.cpp.o CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptableparser.cpp.o CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablesafestring.cpp.o CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptabletags.cpp.o CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptabletemplate.cpp.o CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablevariable.cpp.o CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablefilter.cpp.o CMakeFiles/Grantlee_Templates.dir/Grantlee_Templates_autogen/mocs_compilation.cpp.o /usr/lib/arm-linux-gnueabihf/libQt5Script.so.5.9.3 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.9.3 cd /<>/obj-arm-linux-gnueabihf/templates/lib && /usr/bin/cmake -E cmake_symlink_library libGrantlee_Templates.so.5.1.0 libGrantlee_Templates.so.5 libGrantlee_Templates.so make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 43%] Built target Grantlee_Templates make -f templates/loadertags/CMakeFiles/grantlee_loadertags_autogen.dir/build.make templates/loadertags/CMakeFiles/grantlee_loadertags_autogen.dir/depend make -f templates/defaulttags/CMakeFiles/grantlee_defaulttags_autogen.dir/build.make templates/defaulttags/CMakeFiles/grantlee_defaulttags_autogen.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/defaulttags /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/defaulttags /<>/obj-arm-linux-gnueabihf/templates/defaulttags/CMakeFiles/grantlee_defaulttags_autogen.dir/DependInfo.cmake --color= make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/loadertags /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/loadertags /<>/obj-arm-linux-gnueabihf/templates/loadertags/CMakeFiles/grantlee_loadertags_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target grantlee_defaulttags_autogen Scanning dependencies of target grantlee_loadertags_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/loadertags/CMakeFiles/grantlee_loadertags_autogen.dir/build.make templates/loadertags/CMakeFiles/grantlee_loadertags_autogen.dir/build make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/defaulttags/CMakeFiles/grantlee_defaulttags_autogen.dir/build.make templates/defaulttags/CMakeFiles/grantlee_defaulttags_autogen.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 45%] Automatic MOC for target grantlee_defaulttags [ 45%] Automatic MOC for target grantlee_loadertags cd /<>/obj-arm-linux-gnueabihf/templates/loadertags && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/templates/loadertags/CMakeFiles/grantlee_loadertags_autogen.dir None cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/templates/defaulttags/CMakeFiles/grantlee_defaulttags_autogen.dir None Generating MOC predefs moc_predefs.h Generating MOC source EWIEGA46WW/moc_block.cpp Generating MOC source EWIEGA46WW/moc_extends.cpp Generating MOC source EWIEGA46WW/moc_include.cpp Generating MOC source EWIEGA46WW/moc_loadertags.cpp Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 45%] Built target grantlee_loadertags_autogen make -f templates/defaultfilters/CMakeFiles/grantlee_defaultfilters_autogen.dir/build.make templates/defaultfilters/CMakeFiles/grantlee_defaultfilters_autogen.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/defaultfilters /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/defaultfilters /<>/obj-arm-linux-gnueabihf/templates/defaultfilters/CMakeFiles/grantlee_defaultfilters_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target grantlee_defaultfilters_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/defaultfilters/CMakeFiles/grantlee_defaultfilters_autogen.dir/build.make templates/defaultfilters/CMakeFiles/grantlee_defaultfilters_autogen.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 46%] Automatic MOC for target grantlee_defaultfilters cd /<>/obj-arm-linux-gnueabihf/templates/defaultfilters && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/templates/defaultfilters/CMakeFiles/grantlee_defaultfilters_autogen.dir None Generating MOC predefs moc_predefs.h Generating MOC source EWIEGA46WW/moc_defaultfilters.cpp Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 46%] Built target grantlee_defaultfilters_autogen make -f templates/i18n/CMakeFiles/grantlee_i18ntags_autogen.dir/build.make templates/i18n/CMakeFiles/grantlee_i18ntags_autogen.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/i18n /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/i18n /<>/obj-arm-linux-gnueabihf/templates/i18n/CMakeFiles/grantlee_i18ntags_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target grantlee_i18ntags_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/i18n/CMakeFiles/grantlee_i18ntags_autogen.dir/build.make templates/i18n/CMakeFiles/grantlee_i18ntags_autogen.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 47%] Automatic MOC for target grantlee_i18ntags cd /<>/obj-arm-linux-gnueabihf/templates/i18n && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/templates/i18n/CMakeFiles/grantlee_i18ntags_autogen.dir None Generating MOC predefs moc_predefs.h Generating MOC source EWIEGA46WW/moc_i18n.cpp Generating MOC source EWIEGA46WW/moc_i18nc.cpp Generating MOC source EWIEGA46WW/moc_i18ncp.cpp Generating MOC source EWIEGA46WW/moc_i18np.cpp Generating MOC source EWIEGA46WW/moc_i18ntags.cpp Generating MOC source EWIEGA46WW/moc_l10n_money.cpp Generating MOC source EWIEGA46WW/moc_with_locale.cpp Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 47%] Built target grantlee_i18ntags_autogen make -f templates/tests/CMakeFiles/testinternationalization_exec_autogen.dir/build.make templates/tests/CMakeFiles/testinternationalization_exec_autogen.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testinternationalization_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target testinternationalization_exec_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testinternationalization_exec_autogen.dir/build.make templates/tests/CMakeFiles/testinternationalization_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 48%] Automatic MOC for target testinternationalization_exec cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testinternationalization_exec_autogen.dir None Generating MOC predefs moc_predefs.h Generating MOC source include/testinternationalization.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 48%] Built target testinternationalization_exec_autogen make -f templates/tests/CMakeFiles/testsafestring_exec_autogen.dir/build.make templates/tests/CMakeFiles/testsafestring_exec_autogen.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testsafestring_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target testsafestring_exec_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testsafestring_exec_autogen.dir/build.make templates/tests/CMakeFiles/testsafestring_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 49%] Automatic MOC for target testsafestring_exec cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testsafestring_exec_autogen.dir None Generating MOC predefs moc_predefs.h Generating MOC source EWIEGA46WW/moc_autoescape.cpp Generating MOC source EWIEGA46WW/moc_comment.cpp Generating MOC source EWIEGA46WW/moc_cycle.cpp Generating MOC source EWIEGA46WW/moc_debug.cpp Generating MOC source EWIEGA46WW/moc_defaulttags.cpp Generating MOC source EWIEGA46WW/moc_filtertag.cpp Generating MOC source EWIEGA46WW/moc_firstof.cpp Generating MOC source EWIEGA46WW/moc_for.cpp Generating MOC source EWIEGA46WW/moc_if.cpp Generating MOC source EWIEGA46WW/moc_ifchanged.cpp Generating MOC source EWIEGA46WW/moc_ifequal.cpp Generating MOC source EWIEGA46WW/moc_load.cpp Generating MOC source EWIEGA46WW/moc_mediafinder.cpp Generating MOC source EWIEGA46WW/moc_now.cpp Generating MOC source EWIEGA46WW/moc_range.cpp Generating MOC source EWIEGA46WW/moc_regroup.cpp Generating MOC source EWIEGA46WW/moc_spaceless.cpp Generating MOC source EWIEGA46WW/moc_templatetag.cpp Generating MOC source EWIEGA46WW/moc_widthratio.cpp Generating MOC source EWIEGA46WW/moc_with.cpp Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 49%] Built target grantlee_defaulttags_autogen make -f templates/tests/CMakeFiles/testgenerictypes_exec_autogen.dir/build.make templates/tests/CMakeFiles/testgenerictypes_exec_autogen.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testgenerictypes_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target testgenerictypes_exec_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testgenerictypes_exec_autogen.dir/build.make templates/tests/CMakeFiles/testgenerictypes_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 49%] Automatic MOC for target testgenerictypes_exec cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testgenerictypes_exec_autogen.dir None Generating MOC predefs moc_predefs.h Generating MOC source include/testsafestring.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 49%] Built target testsafestring_exec_autogen make -f templates/tests/CMakeFiles/testdefaulttags_exec_autogen.dir/build.make templates/tests/CMakeFiles/testdefaulttags_exec_autogen.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testdefaulttags_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target testdefaulttags_exec_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testdefaulttags_exec_autogen.dir/build.make templates/tests/CMakeFiles/testdefaulttags_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 50%] Automatic MOC for target testdefaulttags_exec cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testdefaulttags_exec_autogen.dir None Generating MOC predefs moc_predefs.h Generating MOC source include/testgenerictypes.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 50%] Built target testgenerictypes_exec_autogen make -f templates/tests/CMakeFiles/testloadertags_exec_autogen.dir/build.make templates/tests/CMakeFiles/testloadertags_exec_autogen.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testloadertags_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target testloadertags_exec_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testloadertags_exec_autogen.dir/build.make templates/tests/CMakeFiles/testloadertags_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 50%] Automatic MOC for target testloadertags_exec cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testloadertags_exec_autogen.dir None Generating MOC predefs moc_predefs.h Generating MOC source include/testloadertags.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 50%] Built target testloadertags_exec_autogen make -f templates/tests/CMakeFiles/testgenericcontainers_exec_autogen.dir/build.make templates/tests/CMakeFiles/testgenericcontainers_exec_autogen.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testgenericcontainers_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target testgenericcontainers_exec_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testgenericcontainers_exec_autogen.dir/build.make templates/tests/CMakeFiles/testgenericcontainers_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 51%] Automatic MOC for target testgenericcontainers_exec cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testgenericcontainers_exec_autogen.dir None Generating MOC predefs moc_predefs.h Generating MOC source include/testdefaulttags.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 51%] Built target testdefaulttags_exec_autogen make -f templates/tests/CMakeFiles/testcachingloader_exec_autogen.dir/build.make templates/tests/CMakeFiles/testcachingloader_exec_autogen.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testcachingloader_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target testcachingloader_exec_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testcachingloader_exec_autogen.dir/build.make templates/tests/CMakeFiles/testcachingloader_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' Generating MOC predefs moc_predefs.h Generating MOC source include/testgenericcontainers.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 52%] Automatic MOC for target testcachingloader_exec cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testcachingloader_exec_autogen.dir None [ 52%] Built target testgenericcontainers_exec_autogen make -f templates/tests/CMakeFiles/testfilters_exec_autogen.dir/build.make templates/tests/CMakeFiles/testfilters_exec_autogen.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testfilters_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target testfilters_exec_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testfilters_exec_autogen.dir/build.make templates/tests/CMakeFiles/testfilters_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 52%] Automatic MOC for target testfilters_exec cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testfilters_exec_autogen.dir None Generating MOC predefs moc_predefs.h Generating MOC source include/testcachingloader.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 52%] Built target testcachingloader_exec_autogen make -f templates/tests/CMakeFiles/testscriptabletags_exec_autogen.dir/build.make templates/tests/CMakeFiles/testscriptabletags_exec_autogen.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testscriptabletags_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target testscriptabletags_exec_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testscriptabletags_exec_autogen.dir/build.make templates/tests/CMakeFiles/testscriptabletags_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 53%] Automatic MOC for target testscriptabletags_exec cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testscriptabletags_exec_autogen.dir None Generating MOC predefs moc_predefs.h Generating MOC source include/testfilters.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 53%] Built target testfilters_exec_autogen make -f templates/tests/CMakeFiles/testbuiltins_exec_autogen.dir/build.make templates/tests/CMakeFiles/testbuiltins_exec_autogen.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testbuiltins_exec_autogen.dir/DependInfo.cmake --color= Generating MOC predefs moc_predefs.h Generating MOC source include/testscriptabletags.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' Scanning dependencies of target testbuiltins_exec_autogen make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testbuiltins_exec_autogen.dir/build.make templates/tests/CMakeFiles/testbuiltins_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 53%] Built target testscriptabletags_exec_autogen make -f templates/loadertags/CMakeFiles/grantlee_loadertags.dir/build.make templates/loadertags/CMakeFiles/grantlee_loadertags.dir/depend [ 53%] Automatic MOC for target testbuiltins_exec make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testbuiltins_exec_autogen.dir None cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/loadertags /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/loadertags /<>/obj-arm-linux-gnueabihf/templates/loadertags/CMakeFiles/grantlee_loadertags.dir/DependInfo.cmake --color= Scanning dependencies of target grantlee_loadertags make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/loadertags/CMakeFiles/grantlee_loadertags.dir/build.make templates/loadertags/CMakeFiles/grantlee_loadertags.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 54%] Building CXX object templates/loadertags/CMakeFiles/grantlee_loadertags.dir/loadertags.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/loadertags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_loadertags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/loadertags -I/<>/templates/loadertags -I/<>/obj-arm-linux-gnueabihf/templates/loadertags/grantlee_loadertags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_loadertags.dir/loadertags.cpp.o -c /<>/templates/loadertags/loadertags.cpp [ 55%] Linking CXX executable htmlbuildertest_exec cd /<>/obj-arm-linux-gnueabihf/textdocument/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/htmlbuildertest_exec.dir/link.txt --verbose=1 /usr/bin/c++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -Wl,-Bsymbolic-functions -Wl,-z,relro -rdynamic CMakeFiles/htmlbuildertest_exec.dir/htmlbuildertest.cpp.o CMakeFiles/htmlbuildertest_exec.dir/htmlbuildertest_exec_autogen/mocs_compilation.cpp.o -o htmlbuildertest_exec -Wl,-rpath,/<>/obj-arm-linux-gnueabihf/textdocument/lib ../lib/libGrantlee_TextDocument.so.5.1.0 libtextdocument_test_builtins.a /usr/lib/arm-linux-gnueabihf/libQt5Gui.so.5.9.3 /usr/lib/arm-linux-gnueabihf/libQt5Test.so.5.9.3 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.9.3 Generating MOC predefs moc_predefs.h Generating MOC source include/testbuiltins.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 55%] Built target testbuiltins_exec_autogen make -f templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/build.make templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/defaulttags /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/defaulttags /<>/obj-arm-linux-gnueabihf/templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/DependInfo.cmake --color= Scanning dependencies of target grantlee_defaulttags make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/build.make templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 55%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/defaulttags.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/defaulttags.cpp.o -c /<>/templates/defaulttags/defaulttags.cpp [ 56%] Linking CXX executable plainmarkupbuildertest_exec cd /<>/obj-arm-linux-gnueabihf/textdocument/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/plainmarkupbuildertest_exec.dir/link.txt --verbose=1 /usr/bin/c++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -Wl,-Bsymbolic-functions -Wl,-z,relro -rdynamic CMakeFiles/plainmarkupbuildertest_exec.dir/plainmarkupbuildertest.cpp.o CMakeFiles/plainmarkupbuildertest_exec.dir/plainmarkupbuildertest_exec_autogen/mocs_compilation.cpp.o -o plainmarkupbuildertest_exec -Wl,-rpath,/<>/obj-arm-linux-gnueabihf/textdocument/lib ../lib/libGrantlee_TextDocument.so.5.1.0 libtextdocument_test_builtins.a /usr/lib/arm-linux-gnueabihf/libQt5Gui.so.5.9.3 /usr/lib/arm-linux-gnueabihf/libQt5Test.so.5.9.3 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 56%] Built target htmlbuildertest_exec make -f templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/build.make templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/defaultfilters /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/defaultfilters /<>/obj-arm-linux-gnueabihf/templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/DependInfo.cmake --color= Scanning dependencies of target grantlee_defaultfilters make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/build.make templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 56%] Building CXX object templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/defaultfilters.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaultfilters && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaultfilters_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaultfilters -I/<>/templates/defaultfilters -I/<>/obj-arm-linux-gnueabihf/templates/defaultfilters/grantlee_defaultfilters_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaultfilters.dir/defaultfilters.cpp.o -c /<>/templates/defaultfilters/defaultfilters.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 56%] Built target plainmarkupbuildertest_exec make -f templates/i18n/CMakeFiles/grantlee_i18ntags.dir/build.make templates/i18n/CMakeFiles/grantlee_i18ntags.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/i18n /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/i18n /<>/obj-arm-linux-gnueabihf/templates/i18n/CMakeFiles/grantlee_i18ntags.dir/DependInfo.cmake --color= Scanning dependencies of target grantlee_i18ntags make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/i18n/CMakeFiles/grantlee_i18ntags.dir/build.make templates/i18n/CMakeFiles/grantlee_i18ntags.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 56%] Building CXX object templates/i18n/CMakeFiles/grantlee_i18ntags.dir/i18ntags.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/i18n && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_i18ntags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/i18n -I/<>/templates/i18n -I/<>/obj-arm-linux-gnueabihf/templates/i18n/grantlee_i18ntags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_i18ntags.dir/i18ntags.cpp.o -c /<>/templates/i18n/i18ntags.cpp [ 56%] Building CXX object templates/loadertags/CMakeFiles/grantlee_loadertags.dir/blockcontext.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/loadertags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_loadertags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/loadertags -I/<>/templates/loadertags -I/<>/obj-arm-linux-gnueabihf/templates/loadertags/grantlee_loadertags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_loadertags.dir/blockcontext.cpp.o -c /<>/templates/loadertags/blockcontext.cpp [ 57%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/autoescape.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/autoescape.cpp.o -c /<>/templates/defaulttags/autoescape.cpp [ 58%] Building CXX object templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/datetime.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaultfilters && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaultfilters_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaultfilters -I/<>/templates/defaultfilters -I/<>/obj-arm-linux-gnueabihf/templates/defaultfilters/grantlee_defaultfilters_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaultfilters.dir/datetime.cpp.o -c /<>/templates/defaultfilters/datetime.cpp [ 59%] Building CXX object templates/i18n/CMakeFiles/grantlee_i18ntags.dir/i18n.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/i18n && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_i18ntags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/i18n -I/<>/templates/i18n -I/<>/obj-arm-linux-gnueabihf/templates/i18n/grantlee_i18ntags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_i18ntags.dir/i18n.cpp.o -c /<>/templates/i18n/i18n.cpp [ 60%] Building CXX object templates/loadertags/CMakeFiles/grantlee_loadertags.dir/block.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/loadertags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_loadertags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/loadertags -I/<>/templates/loadertags -I/<>/obj-arm-linux-gnueabihf/templates/loadertags/grantlee_loadertags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_loadertags.dir/block.cpp.o -c /<>/templates/loadertags/block.cpp [ 61%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/comment.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/comment.cpp.o -c /<>/templates/defaulttags/comment.cpp [ 62%] Building CXX object templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/integers.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaultfilters && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaultfilters_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaultfilters -I/<>/templates/defaultfilters -I/<>/obj-arm-linux-gnueabihf/templates/defaultfilters/grantlee_defaultfilters_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaultfilters.dir/integers.cpp.o -c /<>/templates/defaultfilters/integers.cpp [ 63%] Building CXX object templates/i18n/CMakeFiles/grantlee_i18ntags.dir/i18nc.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/i18n && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_i18ntags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/i18n -I/<>/templates/i18n -I/<>/obj-arm-linux-gnueabihf/templates/i18n/grantlee_i18ntags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_i18ntags.dir/i18nc.cpp.o -c /<>/templates/i18n/i18nc.cpp [ 63%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/cycle.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/cycle.cpp.o -c /<>/templates/defaulttags/cycle.cpp [ 63%] Building CXX object templates/loadertags/CMakeFiles/grantlee_loadertags.dir/extends.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/loadertags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_loadertags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/loadertags -I/<>/templates/loadertags -I/<>/obj-arm-linux-gnueabihf/templates/loadertags/grantlee_loadertags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_loadertags.dir/extends.cpp.o -c /<>/templates/loadertags/extends.cpp [ 63%] Building CXX object templates/i18n/CMakeFiles/grantlee_i18ntags.dir/i18np.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/i18n && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_i18ntags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/i18n -I/<>/templates/i18n -I/<>/obj-arm-linux-gnueabihf/templates/i18n/grantlee_i18ntags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_i18ntags.dir/i18np.cpp.o -c /<>/templates/i18n/i18np.cpp [ 63%] Building CXX object templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/lists.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaultfilters && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaultfilters_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaultfilters -I/<>/templates/defaultfilters -I/<>/obj-arm-linux-gnueabihf/templates/defaultfilters/grantlee_defaultfilters_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaultfilters.dir/lists.cpp.o -c /<>/templates/defaultfilters/lists.cpp [ 64%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/debug.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/debug.cpp.o -c /<>/templates/defaulttags/debug.cpp [ 65%] Building CXX object templates/loadertags/CMakeFiles/grantlee_loadertags.dir/include.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/loadertags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_loadertags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/loadertags -I/<>/templates/loadertags -I/<>/obj-arm-linux-gnueabihf/templates/loadertags/grantlee_loadertags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_loadertags.dir/include.cpp.o -c /<>/templates/loadertags/include.cpp [ 66%] Building CXX object templates/i18n/CMakeFiles/grantlee_i18ntags.dir/i18ncp.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/i18n && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_i18ntags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/i18n -I/<>/templates/i18n -I/<>/obj-arm-linux-gnueabihf/templates/i18n/grantlee_i18ntags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_i18ntags.dir/i18ncp.cpp.o -c /<>/templates/i18n/i18ncp.cpp [ 66%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/filtertag.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/filtertag.cpp.o -c /<>/templates/defaulttags/filtertag.cpp [ 67%] Building CXX object templates/loadertags/CMakeFiles/grantlee_loadertags.dir/grantlee_loadertags_autogen/mocs_compilation.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/loadertags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_loadertags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/loadertags -I/<>/templates/loadertags -I/<>/obj-arm-linux-gnueabihf/templates/loadertags/grantlee_loadertags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_loadertags.dir/grantlee_loadertags_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/templates/loadertags/grantlee_loadertags_autogen/mocs_compilation.cpp [ 68%] Building CXX object templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/logic.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaultfilters && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaultfilters_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaultfilters -I/<>/templates/defaultfilters -I/<>/obj-arm-linux-gnueabihf/templates/defaultfilters/grantlee_defaultfilters_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaultfilters.dir/logic.cpp.o -c /<>/templates/defaultfilters/logic.cpp [ 69%] Building CXX object templates/i18n/CMakeFiles/grantlee_i18ntags.dir/l10n_money.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/i18n && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_i18ntags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/i18n -I/<>/templates/i18n -I/<>/obj-arm-linux-gnueabihf/templates/i18n/grantlee_i18ntags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_i18ntags.dir/l10n_money.cpp.o -c /<>/templates/i18n/l10n_money.cpp [ 70%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/firstof.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/firstof.cpp.o -c /<>/templates/defaulttags/firstof.cpp [ 70%] Linking CXX shared module ../../grantlee/5.1/grantlee_loadertags.so cd /<>/obj-arm-linux-gnueabihf/templates/loadertags && /usr/bin/cmake -E cmake_link_script CMakeFiles/grantlee_loadertags.dir/link.txt --verbose=1 /usr/bin/c++ -fPIC -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-Bsymbolic-functions -Wl,-z,relro -shared -o ../../grantlee/5.1/grantlee_loadertags.so CMakeFiles/grantlee_loadertags.dir/loadertags.cpp.o CMakeFiles/grantlee_loadertags.dir/blockcontext.cpp.o CMakeFiles/grantlee_loadertags.dir/block.cpp.o CMakeFiles/grantlee_loadertags.dir/extends.cpp.o CMakeFiles/grantlee_loadertags.dir/include.cpp.o CMakeFiles/grantlee_loadertags.dir/grantlee_loadertags_autogen/mocs_compilation.cpp.o -Wl,-rpath,/<>/obj-arm-linux-gnueabihf/templates/lib: ../lib/libGrantlee_Templates.so.5.1.0 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.9.3 [ 70%] Building CXX object templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/misc.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaultfilters && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaultfilters_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaultfilters -I/<>/templates/defaultfilters -I/<>/obj-arm-linux-gnueabihf/templates/defaultfilters/grantlee_defaultfilters_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaultfilters.dir/misc.cpp.o -c /<>/templates/defaultfilters/misc.cpp [ 71%] Building CXX object templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/stringfilters.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaultfilters && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaultfilters_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaultfilters -I/<>/templates/defaultfilters -I/<>/obj-arm-linux-gnueabihf/templates/defaultfilters/grantlee_defaultfilters_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaultfilters.dir/stringfilters.cpp.o -c /<>/templates/defaultfilters/stringfilters.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 71%] Built target grantlee_loadertags make -f templates/tests/CMakeFiles/testinternationalization_exec.dir/build.make templates/tests/CMakeFiles/testinternationalization_exec.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testinternationalization_exec.dir/DependInfo.cmake --color= Scanning dependencies of target testinternationalization_exec make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testinternationalization_exec.dir/build.make templates/tests/CMakeFiles/testinternationalization_exec.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 72%] Building CXX object templates/tests/CMakeFiles/testinternationalization_exec.dir/testinternationalization.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testinternationalization_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testinternationalization_exec.dir/testinternationalization.cpp.o -c /<>/templates/tests/testinternationalization.cpp [ 72%] Building CXX object templates/i18n/CMakeFiles/grantlee_i18ntags.dir/with_locale.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/i18n && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_i18ntags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/i18n -I/<>/templates/i18n -I/<>/obj-arm-linux-gnueabihf/templates/i18n/grantlee_i18ntags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_i18ntags.dir/with_locale.cpp.o -c /<>/templates/i18n/with_locale.cpp [ 73%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/for.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/for.cpp.o -c /<>/templates/defaulttags/for.cpp [ 74%] Building CXX object templates/i18n/CMakeFiles/grantlee_i18ntags.dir/grantlee_i18ntags_autogen/mocs_compilation.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/i18n && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_i18ntags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/i18n -I/<>/templates/i18n -I/<>/obj-arm-linux-gnueabihf/templates/i18n/grantlee_i18ntags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_i18ntags.dir/grantlee_i18ntags_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/templates/i18n/grantlee_i18ntags_autogen/mocs_compilation.cpp [ 74%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/if.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/if.cpp.o -c /<>/templates/defaulttags/if.cpp [ 75%] Building CXX object templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/grantlee_defaultfilters_autogen/mocs_compilation.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaultfilters && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaultfilters_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaultfilters -I/<>/templates/defaultfilters -I/<>/obj-arm-linux-gnueabihf/templates/defaultfilters/grantlee_defaultfilters_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaultfilters.dir/grantlee_defaultfilters_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/templates/defaultfilters/grantlee_defaultfilters_autogen/mocs_compilation.cpp [ 75%] Linking CXX shared module ../../grantlee/5.1/grantlee_i18ntags.so cd /<>/obj-arm-linux-gnueabihf/templates/i18n && /usr/bin/cmake -E cmake_link_script CMakeFiles/grantlee_i18ntags.dir/link.txt --verbose=1 /usr/bin/c++ -fPIC -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-Bsymbolic-functions -Wl,-z,relro -shared -o ../../grantlee/5.1/grantlee_i18ntags.so CMakeFiles/grantlee_i18ntags.dir/i18ntags.cpp.o CMakeFiles/grantlee_i18ntags.dir/i18n.cpp.o CMakeFiles/grantlee_i18ntags.dir/i18nc.cpp.o CMakeFiles/grantlee_i18ntags.dir/i18np.cpp.o CMakeFiles/grantlee_i18ntags.dir/i18ncp.cpp.o CMakeFiles/grantlee_i18ntags.dir/l10n_money.cpp.o CMakeFiles/grantlee_i18ntags.dir/with_locale.cpp.o CMakeFiles/grantlee_i18ntags.dir/grantlee_i18ntags_autogen/mocs_compilation.cpp.o -Wl,-rpath,/<>/obj-arm-linux-gnueabihf/templates/lib: ../lib/libGrantlee_Templates.so.5.1.0 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.9.3 In file included from /<>/templates/defaulttags/if.cpp:22: /<>/templates/defaulttags/if_p.h: In member function ‘QVariant IfToken::evaluate(Grantlee::Context*) const’: /<>/templates/defaulttags/if_p.h:323:22: warning: catching polymorphic type ‘class Grantlee::Exception’ by value [-Wcatch-value=] } catch (Grantlee::Exception) { ^~~~~~~~~ /<>/templates/defaulttags/if.cpp: In member function ‘virtual void IfNode::render(Grantlee::OutputStream*, Grantlee::Context*) const’: /<>/templates/defaulttags/if.cpp:96:26: warning: catching polymorphic type ‘class Grantlee::Exception’ by value [-Wcatch-value=] } catch (Grantlee::Exception) { ^~~~~~~~~ [ 76%] Building CXX object templates/tests/CMakeFiles/testinternationalization_exec.dir/testinternationalization_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testinternationalization_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testinternationalization_exec.dir/testinternationalization_exec_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/templates/tests/testinternationalization_exec_autogen/mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 76%] Linking CXX executable testinternationalization_exec cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/testinternationalization_exec.dir/link.txt --verbose=1 [ 76%] Built target grantlee_i18ntags make -f templates/tests/CMakeFiles/testsafestring_exec.dir/build.make templates/tests/CMakeFiles/testsafestring_exec.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testsafestring_exec.dir/DependInfo.cmake --color= /usr/bin/c++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -Wl,-Bsymbolic-functions -Wl,-z,relro -rdynamic CMakeFiles/testinternationalization_exec.dir/testinternationalization.cpp.o CMakeFiles/testinternationalization_exec.dir/testinternationalization_exec_autogen/mocs_compilation.cpp.o -o testinternationalization_exec -Wl,-rpath,/<>/obj-arm-linux-gnueabihf/templates/lib ../lib/libGrantlee_Templates.so.5.1.0 libtemplate_test_builtins.a /usr/lib/arm-linux-gnueabihf/libQt5Test.so.5.9.3 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.9.3 Scanning dependencies of target testsafestring_exec make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testsafestring_exec.dir/build.make templates/tests/CMakeFiles/testsafestring_exec.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 77%] Building CXX object templates/tests/CMakeFiles/testsafestring_exec.dir/testsafestring.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testsafestring_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testsafestring_exec.dir/testsafestring.cpp.o -c /<>/templates/tests/testsafestring.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 77%] Built target testinternationalization_exec make -f templates/tests/CMakeFiles/testgenerictypes_exec.dir/build.make templates/tests/CMakeFiles/testgenerictypes_exec.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testgenerictypes_exec.dir/DependInfo.cmake --color= Scanning dependencies of target testgenerictypes_exec make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testgenerictypes_exec.dir/build.make templates/tests/CMakeFiles/testgenerictypes_exec.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 77%] Building CXX object templates/tests/CMakeFiles/testgenerictypes_exec.dir/testgenerictypes.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testgenerictypes_exec.dir/testgenerictypes.cpp.o -c /<>/templates/tests/testgenerictypes.cpp [ 77%] Linking CXX shared module ../../grantlee/5.1/grantlee_defaultfilters.so cd /<>/obj-arm-linux-gnueabihf/templates/defaultfilters && /usr/bin/cmake -E cmake_link_script CMakeFiles/grantlee_defaultfilters.dir/link.txt --verbose=1 /usr/bin/c++ -fPIC -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-Bsymbolic-functions -Wl,-z,relro -shared -o ../../grantlee/5.1/grantlee_defaultfilters.so CMakeFiles/grantlee_defaultfilters.dir/defaultfilters.cpp.o CMakeFiles/grantlee_defaultfilters.dir/datetime.cpp.o CMakeFiles/grantlee_defaultfilters.dir/integers.cpp.o CMakeFiles/grantlee_defaultfilters.dir/lists.cpp.o CMakeFiles/grantlee_defaultfilters.dir/logic.cpp.o CMakeFiles/grantlee_defaultfilters.dir/misc.cpp.o CMakeFiles/grantlee_defaultfilters.dir/stringfilters.cpp.o CMakeFiles/grantlee_defaultfilters.dir/grantlee_defaultfilters_autogen/mocs_compilation.cpp.o -Wl,-rpath,/<>/obj-arm-linux-gnueabihf/templates/lib: ../lib/libGrantlee_Templates.so.5.1.0 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.9.3 [ 77%] Building CXX object templates/tests/CMakeFiles/testsafestring_exec.dir/testsafestring_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testsafestring_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testsafestring_exec.dir/testsafestring_exec_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/templates/tests/testsafestring_exec_autogen/mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 77%] Built target grantlee_defaultfilters make -f templates/tests/CMakeFiles/testdefaulttags_exec.dir/build.make templates/tests/CMakeFiles/testdefaulttags_exec.dir/depend [ 78%] Linking CXX executable testsafestring_exec make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testdefaulttags_exec.dir/DependInfo.cmake --color= cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/testsafestring_exec.dir/link.txt --verbose=1 /usr/bin/c++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -Wl,-Bsymbolic-functions -Wl,-z,relro -rdynamic CMakeFiles/testsafestring_exec.dir/testsafestring.cpp.o CMakeFiles/testsafestring_exec.dir/testsafestring_exec_autogen/mocs_compilation.cpp.o -o testsafestring_exec -Wl,-rpath,/<>/obj-arm-linux-gnueabihf/templates/lib ../lib/libGrantlee_Templates.so.5.1.0 libtemplate_test_builtins.a /usr/lib/arm-linux-gnueabihf/libQt5Test.so.5.9.3 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.9.3 In file included from /usr/include/arm-linux-gnueabihf/qt5/QtCore/QString:1, from /<>/templates/lib/exception.h:26, from /<>/templates/lib/template.h:24, from /<>/templates/lib/engine.h:24, from /<>/templates/tests/testgenerictypes.cpp:22: /<>/templates/tests/testgenerictypes.cpp: In instantiation of ‘void insertAssociatedPeopleVariants(Grantlee::Context&) [with AssociativeContainer = QMap]’: /<>/templates/tests/testgenerictypes.cpp:190:60: required from here /<>/templates/tests/testgenerictypes.cpp:184:12: internal compiler error: Segmentation fault c.insert(QStringLiteral("people"), QVariant::fromValue(container)); ^~~~~~~~~~~~~~ Scanning dependencies of target testdefaulttags_exec make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testdefaulttags_exec.dir/build.make templates/tests/CMakeFiles/testdefaulttags_exec.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 78%] Building CXX object templates/tests/CMakeFiles/testdefaulttags_exec.dir/testdefaulttags.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testdefaulttags_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testdefaulttags_exec.dir/testdefaulttags.cpp.o -c /<>/templates/tests/testdefaulttags.cpp make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 79%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/ifchanged.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/ifchanged.cpp.o -c /<>/templates/defaulttags/ifchanged.cpp [ 79%] Built target testsafestring_exec make -f templates/tests/CMakeFiles/testloadertags_exec.dir/build.make templates/tests/CMakeFiles/testloadertags_exec.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testloadertags_exec.dir/DependInfo.cmake --color= Scanning dependencies of target testloadertags_exec make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testloadertags_exec.dir/build.make templates/tests/CMakeFiles/testloadertags_exec.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 79%] Building CXX object templates/tests/CMakeFiles/testloadertags_exec.dir/testloadertags.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testloadertags_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testloadertags_exec.dir/testloadertags.cpp.o -c /<>/templates/tests/testloadertags.cpp [ 80%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/ifequal.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/ifequal.cpp.o -c /<>/templates/defaulttags/ifequal.cpp 0x514d17 crash_signal ../../src/gcc/toplev.c:325 0x189dbd determine_visibility(tree_node*) ../../src/gcc/cp/decl2.c:2477 0x1f128f lookup_template_class_1 ../../src/gcc/cp/pt.c:9145 0x1f128f lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int) ../../src/gcc/cp/pt.c:9161 0x1f1ba3 tsubst_aggr_type ../../src/gcc/cp/pt.c:12008 0x1eb855 tsubst(tree_node*, tree_node*, int, tree_node*) ../../src/gcc/cp/pt.c:13643 0x1f63b7 tsubst_decl ../../src/gcc/cp/pt.c:12940 0x1eba53 tsubst(tree_node*, tree_node*, int, tree_node*) ../../src/gcc/cp/pt.c:13561 0x1e7849 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16046 0x1e723f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:15973 0x1e6fd3 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16236 0x1e6fd3 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16236 0x1e884b tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:15958 0x1e884b tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*) ../../src/gcc/cp/pt.c:16970 0x1e97ed tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:18260 0x1ea22b tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:17577 0x1e9cf9 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:17593 0x1e72f9 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:17014 0x1e72f9 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16752 0x1e6e21 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:15987 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See for instructions. [ 80%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/load.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/load.cpp.o -c /<>/templates/defaulttags/load.cpp [ 81%] Building CXX object templates/tests/CMakeFiles/testloadertags_exec.dir/testloadertags_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testloadertags_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testloadertags_exec.dir/testloadertags_exec_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/templates/tests/testloadertags_exec_autogen/mocs_compilation.cpp [ 82%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/mediafinder.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/mediafinder.cpp.o -c /<>/templates/defaulttags/mediafinder.cpp [ 83%] Linking CXX executable testloadertags_exec cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/testloadertags_exec.dir/link.txt --verbose=1 /usr/bin/c++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -Wl,-Bsymbolic-functions -Wl,-z,relro -rdynamic CMakeFiles/testloadertags_exec.dir/testloadertags.cpp.o CMakeFiles/testloadertags_exec.dir/testloadertags_exec_autogen/mocs_compilation.cpp.o -o testloadertags_exec -Wl,-rpath,/<>/obj-arm-linux-gnueabihf/templates/lib ../lib/libGrantlee_Templates.so.5.1.0 libtemplate_test_builtins.a /usr/lib/arm-linux-gnueabihf/libQt5Test.so.5.9.3 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 83%] Built target testloadertags_exec make -f templates/tests/CMakeFiles/testgenericcontainers_exec.dir/build.make templates/tests/CMakeFiles/testgenericcontainers_exec.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testgenericcontainers_exec.dir/DependInfo.cmake --color= Scanning dependencies of target testgenericcontainers_exec make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testgenericcontainers_exec.dir/build.make templates/tests/CMakeFiles/testgenericcontainers_exec.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 84%] Building CXX object templates/tests/CMakeFiles/testgenericcontainers_exec.dir/testgenericcontainers.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testgenericcontainers_exec.dir/testgenericcontainers.cpp.o -c /<>/templates/tests/testgenericcontainers.cpp [ 84%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/now.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/now.cpp.o -c /<>/templates/defaulttags/now.cpp In file included from /usr/include/arm-linux-gnueabihf/qt5/QtCore/QString:1, from /<>/templates/lib/exception.h:26, from /<>/templates/lib/template.h:24, from /<>/templates/lib/engine.h:24, from /<>/templates/tests/testgenericcontainers.cpp:23: /<>/templates/tests/testgenericcontainers.cpp: In instantiation of ‘QString getTemplate() [with T = int]’: /<>/templates/tests/testgenericcontainers.cpp:275:60: required from ‘void doTestSequentialContainer(bool) [with Container = QSet]’ /<>/templates/tests/testgenericcontainers.cpp:329:37: required from ‘void doTestContainers() [with T = int]’ /<>/templates/tests/testgenericcontainers.cpp:334:28: required from here /<>/templates/tests/testgenericcontainers.cpp:154:10: internal compiler error: Segmentation fault return QStringLiteral("{{ container.size }};{{ container.count }};{% for item in container %}{{ item }},{% endfor %}"); ^~~~~~~~~~~~~~ [ 85%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/range.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/range.cpp.o -c /<>/templates/defaulttags/range.cpp [ 86%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/regroup.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/regroup.cpp.o -c /<>/templates/defaulttags/regroup.cpp 0x514d17 crash_signal ../../src/gcc/toplev.c:325 0x189dbd determine_visibility(tree_node*) ../../src/gcc/cp/decl2.c:2477 0x1f128f lookup_template_class_1 ../../src/gcc/cp/pt.c:9145 0x1f128f lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int) ../../src/gcc/cp/pt.c:9161 0x1f1ba3 tsubst_aggr_type ../../src/gcc/cp/pt.c:12008 0x1eb855 tsubst(tree_node*, tree_node*, int, tree_node*) ../../src/gcc/cp/pt.c:13643 0x1f63b7 tsubst_decl ../../src/gcc/cp/pt.c:12940 0x1eba53 tsubst(tree_node*, tree_node*, int, tree_node*) ../../src/gcc/cp/pt.c:13561 0x1e7849 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16046 0x1e723f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:15973 0x1e6fd3 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16236 0x1e6fd3 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16236 0x1e884b tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:15958 0x1e884b tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*) ../../src/gcc/cp/pt.c:16970 0x1e97ed tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:18260 0x1ea22b tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:17577 0x1e72f9 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:17014 0x1e72f9 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16752 0x1e70d5 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:15983 0x1e723f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:15973 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See for instructions. [ 86%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/spaceless.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/spaceless.cpp.o -c /<>/templates/defaulttags/spaceless.cpp [ 87%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/templatetag.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/templatetag.cpp.o -c /<>/templates/defaulttags/templatetag.cpp [ 88%] Building CXX object templates/tests/CMakeFiles/testdefaulttags_exec.dir/testdefaulttags_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testdefaulttags_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testdefaulttags_exec.dir/testdefaulttags_exec_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/templates/tests/testdefaulttags_exec_autogen/mocs_compilation.cpp [ 88%] Linking CXX executable testdefaulttags_exec cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/testdefaulttags_exec.dir/link.txt --verbose=1 /usr/bin/c++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -Wl,-Bsymbolic-functions -Wl,-z,relro -rdynamic CMakeFiles/testdefaulttags_exec.dir/testdefaulttags.cpp.o CMakeFiles/testdefaulttags_exec.dir/testdefaulttags_exec_autogen/mocs_compilation.cpp.o -o testdefaulttags_exec -Wl,-rpath,/<>/obj-arm-linux-gnueabihf/templates/lib ../lib/libGrantlee_Templates.so.5.1.0 libtemplate_test_builtins.a /usr/lib/arm-linux-gnueabihf/libQt5Test.so.5.9.3 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 88%] Built target testdefaulttags_exec make -f templates/tests/CMakeFiles/testcachingloader_exec.dir/build.make templates/tests/CMakeFiles/testcachingloader_exec.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testcachingloader_exec.dir/DependInfo.cmake --color= Scanning dependencies of target testcachingloader_exec make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testcachingloader_exec.dir/build.make templates/tests/CMakeFiles/testcachingloader_exec.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 89%] Building CXX object templates/tests/CMakeFiles/testcachingloader_exec.dir/testcachingloader.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testcachingloader_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testcachingloader_exec.dir/testcachingloader.cpp.o -c /<>/templates/tests/testcachingloader.cpp [ 89%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/widthratio.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/widthratio.cpp.o -c /<>/templates/defaulttags/widthratio.cpp [ 89%] Building CXX object templates/tests/CMakeFiles/testcachingloader_exec.dir/testcachingloader_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testcachingloader_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testcachingloader_exec.dir/testcachingloader_exec_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/templates/tests/testcachingloader_exec_autogen/mocs_compilation.cpp [ 90%] Linking CXX executable testcachingloader_exec cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/testcachingloader_exec.dir/link.txt --verbose=1 /usr/bin/c++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -Wl,-Bsymbolic-functions -Wl,-z,relro -rdynamic CMakeFiles/testcachingloader_exec.dir/testcachingloader.cpp.o CMakeFiles/testcachingloader_exec.dir/testcachingloader_exec_autogen/mocs_compilation.cpp.o -o testcachingloader_exec -Wl,-rpath,/<>/obj-arm-linux-gnueabihf/templates/lib ../lib/libGrantlee_Templates.so.5.1.0 libtemplate_test_builtins.a /usr/lib/arm-linux-gnueabihf/libQt5Test.so.5.9.3 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 90%] Built target testcachingloader_exec make -f templates/tests/CMakeFiles/testfilters_exec.dir/build.make templates/tests/CMakeFiles/testfilters_exec.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testfilters_exec.dir/DependInfo.cmake --color= Scanning dependencies of target testfilters_exec make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testfilters_exec.dir/build.make templates/tests/CMakeFiles/testfilters_exec.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 91%] Building CXX object templates/tests/CMakeFiles/testfilters_exec.dir/testfilters.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testfilters_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testfilters_exec.dir/testfilters.cpp.o -c /<>/templates/tests/testfilters.cpp [ 92%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/with.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/with.cpp.o -c /<>/templates/defaulttags/with.cpp [ 93%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/grantlee_defaulttags_autogen/mocs_compilation.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/c++ -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -Dgrantlee_defaulttags_EXPORTS -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/grantlee_defaulttags.dir/grantlee_defaulttags_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/templates/defaulttags/grantlee_defaulttags_autogen/mocs_compilation.cpp [ 93%] Linking CXX shared module ../../grantlee/5.1/grantlee_defaulttags.so cd /<>/obj-arm-linux-gnueabihf/templates/defaulttags && /usr/bin/cmake -E cmake_link_script CMakeFiles/grantlee_defaulttags.dir/link.txt --verbose=1 /usr/bin/c++ -fPIC -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-Bsymbolic-functions -Wl,-z,relro -shared -o ../../grantlee/5.1/grantlee_defaulttags.so CMakeFiles/grantlee_defaulttags.dir/defaulttags.cpp.o CMakeFiles/grantlee_defaulttags.dir/autoescape.cpp.o CMakeFiles/grantlee_defaulttags.dir/comment.cpp.o CMakeFiles/grantlee_defaulttags.dir/cycle.cpp.o CMakeFiles/grantlee_defaulttags.dir/debug.cpp.o CMakeFiles/grantlee_defaulttags.dir/filtertag.cpp.o CMakeFiles/grantlee_defaulttags.dir/firstof.cpp.o CMakeFiles/grantlee_defaulttags.dir/for.cpp.o CMakeFiles/grantlee_defaulttags.dir/if.cpp.o CMakeFiles/grantlee_defaulttags.dir/ifchanged.cpp.o CMakeFiles/grantlee_defaulttags.dir/ifequal.cpp.o CMakeFiles/grantlee_defaulttags.dir/load.cpp.o CMakeFiles/grantlee_defaulttags.dir/mediafinder.cpp.o CMakeFiles/grantlee_defaulttags.dir/now.cpp.o CMakeFiles/grantlee_defaulttags.dir/range.cpp.o CMakeFiles/grantlee_defaulttags.dir/regroup.cpp.o CMakeFiles/grantlee_defaulttags.dir/spaceless.cpp.o CMakeFiles/grantlee_defaulttags.dir/templatetag.cpp.o CMakeFiles/grantlee_defaulttags.dir/widthratio.cpp.o CMakeFiles/grantlee_defaulttags.dir/with.cpp.o CMakeFiles/grantlee_defaulttags.dir/grantlee_defaulttags_autogen/mocs_compilation.cpp.o -Wl,-rpath,/<>/obj-arm-linux-gnueabihf/templates/lib: ../lib/libGrantlee_Templates.so.5.1.0 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 93%] Built target grantlee_defaulttags make -f templates/tests/CMakeFiles/testscriptabletags_exec.dir/build.make templates/tests/CMakeFiles/testscriptabletags_exec.dir/depend make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testscriptabletags_exec.dir/DependInfo.cmake --color= Scanning dependencies of target testscriptabletags_exec make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' make -f templates/tests/CMakeFiles/testscriptabletags_exec.dir/build.make templates/tests/CMakeFiles/testscriptabletags_exec.dir/build make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' [ 93%] Building CXX object templates/tests/CMakeFiles/testscriptabletags_exec.dir/testscriptabletags.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testscriptabletags_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testscriptabletags_exec.dir/testscriptabletags.cpp.o -c /<>/templates/tests/testscriptabletags.cpp Preprocessed source stored into /tmp/cco0p2Qs.out file, please attach this to your bugreport. === BEGIN GCC DUMP === 8657: // Target: arm-linux-gnueabihf 8657: // Configured with: ../src/configure -v --with-pkgversion='Ubuntu 8-20180110-1ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-8 --program-prefix=arm-linux-gnueabihf- --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-libquadmath --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --disable-werror --enable-multilib --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf 8657: // Thread model: posix 8657: // gcc version 8.0.0 20180110 (experimental) [trunk revision 256425] (Ubuntu 8-20180110-1ubuntu1) 8657: // 8657: // In file included from /usr/include/arm-linux-gnueabihf/qt5/QtCore/QString:1, 8657: // from /<>/templates/lib/exception.h:26, 8657: // from /<>/templates/lib/template.h:24, 8657: // from /<>/templates/lib/engine.h:24, 8657: // from /<>/templates/tests/testgenerictypes.cpp:22: 8657: // /<>/templates/tests/testgenerictypes.cpp: In instantiation of ‘void insertAssociatedPeopleVariants(Grantlee::Context&) [with AssociativeContainer = QMap]’: 8657: // /<>/templates/tests/testgenerictypes.cpp:190:60: required from here 8657: // /<>/templates/tests/testgenerictypes.cpp:184:12: internal compiler error: Segmentation fault 8657: // c.insert(QStringLiteral("people"), QVariant::fromValue(container)); 8657: // ^~~~~~~~~~~~~~ 8657: // 0x514d17 crash_signal 8657: // ../../src/gcc/toplev.c:325 8657: // 0x189dbd determine_visibility(tree_node*) 8657: // ../../src/gcc/cp/decl2.c:2477 8657: // 0x1f128f lookup_template_class_1 8657: // ../../src/gcc/cp/pt.c:9145 8657: // 0x1f128f lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int) 8657: // ../../src/gcc/cp/pt.c:9161 8657: // 0x1f1ba3 tsubst_aggr_type 8657: // ../../src/gcc/cp/pt.c:12008 8657: // 0x1eb855 tsubst(tree_node*, tree_node*, int, tree_node*) 8657: // ../../src/gcc/cp/pt.c:13643 8657: // 0x1f63b7 tsubst_decl 8657: // ../../src/gcc/cp/pt.c:12940 8657: // 0x1eba53 tsubst(tree_node*, tree_node*, int, tree_node*) 8657: // ../../src/gcc/cp/pt.c:13561 8657: // 0x1e7849 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8657: // ../../src/gcc/cp/pt.c:16046 8657: // 0x1e723f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8657: // ../../src/gcc/cp/pt.c:15973 8657: // 0x1e6fd3 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8657: // ../../src/gcc/cp/pt.c:16236 8657: // 0x1e6fd3 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8657: // ../../src/gcc/cp/pt.c:16236 8657: // 0x1e884b tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8657: // ../../src/gcc/cp/pt.c:15958 8657: // 0x1e884b tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*) 8657: // ../../src/gcc/cp/pt.c:16970 8657: // 0x1e97ed tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8657: // ../../src/gcc/cp/pt.c:18260 8657: // 0x1ea22b tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8657: // ../../src/gcc/cp/pt.c:17577 8657: // 0x1e9cf9 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8657: // ../../src/gcc/cp/pt.c:17593 8657: // 0x1e72f9 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8657: // ../../src/gcc/cp/pt.c:17014 8657: // 0x1e72f9 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8657: // ../../src/gcc/cp/pt.c:16752 8657: // 0x1e6e21 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8657: // ../../src/gcc/cp/pt.c:15987 8657: // Please submit a full bug report, 8657: // with preprocessed source if appropriate. 8657: // Please include the complete backtrace with any bug report. 8657: // See for instructions. 8657: 8657: // /usr/lib/gcc/arm-linux-gnueabihf/8/cc1plus -quiet -I /<>/obj-arm-linux-gnueabihf/templates/tests -I /<>/templates/tests -I /<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include -I /<>/obj-arm-linux-gnueabihf/templates/lib -I /<>/templates/lib -imultiarch arm-linux-gnueabihf -D_GNU_SOURCE -D HAVE_QTSCRIPT_LIB -D QT_CORE_LIB -D QT_NO_CAST_FROM_ASCII -D QT_NO_CAST_FROM_BYTEARRAY -D QT_NO_CAST_TO_ASCII -D QT_NO_DEBUG -D QT_NO_KEYWORDS -D QT_NO_URL_CAST_FROM_STRING -D QT_STRICT_ITERATORS -D QT_TESTCASE_BUILDDIR="/<>/obj-arm-linux-gnueabihf" -D QT_TESTLIB_LIB -D QT_USE_QSTRINGBUILDER -D cxx_auto_type -D _FORTIFY_SOURCE=2 -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest /<>/templates/tests/testgenerictypes.cpp -quiet -dumpbase testgenerictypes.cpp -mfloat-abi=hard -mfpu=vfpv3-d16 -mthumb -mtls-dialect=gnu -march=armv7-a+fp -auxbase-strip CMakeFiles/testgenerictypes_exec.dir/testgenerictypes.cpp.o -g -O2 -Wformat=1 -Werror=format-security -Wdate-time -Wnon-virtual-dtor -Wno-long-long -Wundef -Wcast-align -Wchar-subscripts -Wall -Wextra -Wpointer-arith -Wformat-security -pedantic-errors -ansi -std=gnu++11 -fdebug-prefix-map=/<>=. -fstack-protector-strong -fno-check-new -fno-common -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -fstack-protector-strong -Wformat-security -o - -frandom-seed=0 -fdump-noaddr 8657: 8657: # 1 "/<>/templates/tests/testgenerictypes.cpp" 8657: # 1 "/<>/obj-arm-linux-gnueabihf/templates/tests//" 8657: # 1 "" 8657: # 1 "" 8657: # 1 "/usr/include/stdc-predef.h" 1 3 4 8657: # 1 "" 2 8657: # 1 "/<>/templates/tests/testgenerictypes.cpp" 8657: # 22 "/<>/templates/tests/testgenerictypes.cpp" 8657: # 1 "/<>/templates/lib/engine.h" 1 8657: # 24 "/<>/templates/lib/engine.h" 8657: # 1 "/<>/templates/lib/template.h" 1 8657: # 24 "/<>/templates/lib/template.h" 8657: # 1 "/<>/templates/lib/exception.h" 1 8657: # 24 "/<>/templates/lib/exception.h" 8657: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8657: # 25 "/<>/templates/lib/exception.h" 2 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QString" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 1 3 4 8657: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qchar.h" 1 3 4 8657: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qchar.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 1 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: # 1 "/usr/include/c++/8/type_traits" 1 3 4 8657: # 32 "/usr/include/c++/8/type_traits" 3 4 8657: 8657: # 33 "/usr/include/c++/8/type_traits" 3 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 1 3 8657: # 236 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 3 8657: 8657: # 236 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 3 8657: namespace std 8657: { 8657: typedef unsigned int size_t; 8657: typedef int ptrdiff_t; 8657: 8657: 8657: typedef decltype(nullptr) nullptr_t; 8657: 8657: } 8657: # 258 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 3 8657: namespace std 8657: { 8657: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 8657: } 8657: namespace __gnu_cxx 8657: { 8657: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 8657: } 8657: # 508 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 3 8657: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/os_defines.h" 1 3 8657: # 39 "/usr/include/arm-linux-gnueabihf/c++/8/bits/os_defines.h" 3 8657: # 1 "/usr/include/features.h" 1 3 4 8657: # 419 "/usr/include/features.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/sys/cdefs.h" 1 3 4 8657: # 419 "/usr/include/arm-linux-gnueabihf/sys/cdefs.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4 8657: # 420 "/usr/include/arm-linux-gnueabihf/sys/cdefs.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/long-double.h" 1 3 4 8657: # 421 "/usr/include/arm-linux-gnueabihf/sys/cdefs.h" 2 3 4 8657: # 420 "/usr/include/features.h" 2 3 4 8657: # 443 "/usr/include/features.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/gnu/stubs.h" 1 3 4 8657: # 10 "/usr/include/arm-linux-gnueabihf/gnu/stubs.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/gnu/stubs-hard.h" 1 3 4 8657: # 11 "/usr/include/arm-linux-gnueabihf/gnu/stubs.h" 2 3 4 8657: # 444 "/usr/include/features.h" 2 3 4 8657: # 40 "/usr/include/arm-linux-gnueabihf/c++/8/bits/os_defines.h" 2 3 8657: # 509 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 2 3 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/cpu_defines.h" 1 3 8657: # 512 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 2 3 8657: # 39 "/usr/include/c++/8/type_traits" 2 3 8657: 8657: 8657: 8657: namespace std 8657: { 8657: typedef short unsigned int uint_least16_t; 8657: typedef unsigned int uint_least32_t; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 68 "/usr/include/c++/8/type_traits" 3 8657: template 8657: struct integral_constant 8657: { 8657: static constexpr _Tp value = __v; 8657: typedef _Tp value_type; 8657: typedef integral_constant<_Tp, __v> type; 8657: constexpr operator value_type() const noexcept { return value; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: template 8657: constexpr _Tp integral_constant<_Tp, __v>::value; 8657: 8657: 8657: typedef integral_constant true_type; 8657: 8657: 8657: typedef integral_constant false_type; 8657: 8657: template 8657: using __bool_constant = integral_constant; 8657: # 103 "/usr/include/c++/8/type_traits" 3 8657: template 8657: struct conditional; 8657: 8657: template 8657: struct __or_; 8657: 8657: template<> 8657: struct __or_<> 8657: : public false_type 8657: { }; 8657: 8657: template 8657: struct __or_<_B1> 8657: : public _B1 8657: { }; 8657: 8657: template 8657: struct __or_<_B1, _B2> 8657: : public conditional<_B1::value, _B1, _B2>::type 8657: { }; 8657: 8657: template 8657: struct __or_<_B1, _B2, _B3, _Bn...> 8657: : public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type 8657: { }; 8657: 8657: template 8657: struct __and_; 8657: 8657: template<> 8657: struct __and_<> 8657: : public true_type 8657: { }; 8657: 8657: template 8657: struct __and_<_B1> 8657: : public _B1 8657: { }; 8657: 8657: template 8657: struct __and_<_B1, _B2> 8657: : public conditional<_B1::value, _B2, _B1>::type 8657: { }; 8657: 8657: template 8657: struct __and_<_B1, _B2, _B3, _Bn...> 8657: : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type 8657: { }; 8657: 8657: template 8657: struct __not_ 8657: : public __bool_constant 8657: { }; 8657: # 192 "/usr/include/c++/8/type_traits" 3 8657: template 8657: struct __success_type 8657: { typedef _Tp type; }; 8657: 8657: struct __failure_type 8657: { }; 8657: 8657: 8657: 8657: template 8657: struct remove_cv; 8657: 8657: template 8657: struct __is_void_helper 8657: : public false_type { }; 8657: 8657: template<> 8657: struct __is_void_helper 8657: : public true_type { }; 8657: 8657: 8657: template 8657: struct is_void 8657: : public __is_void_helper::type>::type 8657: { }; 8657: 8657: template 8657: struct __is_integral_helper 8657: : public false_type { }; 8657: 8657: template<> 8657: struct __is_integral_helper 8657: : public true_type { }; 8657: 8657: template<> 8657: struct __is_integral_helper 8657: : public true_type { }; 8657: 8657: template<> 8657: struct __is_integral_helper 8657: : public true_type { }; 8657: 8657: template<> 8657: struct __is_integral_helper 8657: : public true_type { }; 8657: 8657: 8657: template<> 8657: struct __is_integral_helper 8657: : public true_type { }; 8657: 8657: 8657: template<> 8657: struct __is_integral_helper 8657: : public true_type { }; 8657: 8657: template<> 8657: struct __is_integral_helper 8657: : public true_type { }; 8657: 8657: template<> 8657: struct __is_integral_helper 8657: : public true_type { }; 8657: 8657: template<> 8657: struct __is_integral_helper 8657: : public true_type { }; 8657: 8657: template<> 8657: struct __is_integral_helper 8657: : public true_type { }; 8657: 8657: template<> 8657: struct __is_integral_helper 8657: : public true_type { }; 8657: 8657: template<> 8657: struct __is_integral_helper 8657: : public true_type { }; 8657: 8657: template<> 8657: struct __is_integral_helper 8657: : public true_type { }; 8657: 8657: template<> 8657: struct __is_integral_helper 8657: : public true_type { }; 8657: 8657: template<> 8657: struct __is_integral_helper 8657: : public true_type { }; 8657: # 324 "/usr/include/c++/8/type_traits" 3 8657: template 8657: struct is_integral 8657: : public __is_integral_helper::type>::type 8657: { }; 8657: 8657: template 8657: struct __is_floating_point_helper 8657: : public false_type { }; 8657: 8657: template<> 8657: struct __is_floating_point_helper 8657: : public true_type { }; 8657: 8657: template<> 8657: struct __is_floating_point_helper 8657: : public true_type { }; 8657: 8657: template<> 8657: struct __is_floating_point_helper 8657: : public true_type { }; 8657: # 352 "/usr/include/c++/8/type_traits" 3 8657: template 8657: struct is_floating_point 8657: : public __is_floating_point_helper::type>::type 8657: { }; 8657: 8657: 8657: template 8657: struct is_array 8657: : public false_type { }; 8657: 8657: template 8657: struct is_array<_Tp[_Size]> 8657: : public true_type { }; 8657: 8657: template 8657: struct is_array<_Tp[]> 8657: : public true_type { }; 8657: 8657: template 8657: struct __is_pointer_helper 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_pointer_helper<_Tp*> 8657: : public true_type { }; 8657: 8657: 8657: template 8657: struct is_pointer 8657: : public __is_pointer_helper::type>::type 8657: { }; 8657: 8657: 8657: template 8657: struct is_lvalue_reference 8657: : public false_type { }; 8657: 8657: template 8657: struct is_lvalue_reference<_Tp&> 8657: : public true_type { }; 8657: 8657: 8657: template 8657: struct is_rvalue_reference 8657: : public false_type { }; 8657: 8657: template 8657: struct is_rvalue_reference<_Tp&&> 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function; 8657: 8657: template 8657: struct __is_member_object_pointer_helper 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_member_object_pointer_helper<_Tp _Cp::*> 8657: : public integral_constant::value> { }; 8657: 8657: 8657: template 8657: struct is_member_object_pointer 8657: : public __is_member_object_pointer_helper< 8657: typename remove_cv<_Tp>::type>::type 8657: { }; 8657: 8657: template 8657: struct __is_member_function_pointer_helper 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_member_function_pointer_helper<_Tp _Cp::*> 8657: : public integral_constant::value> { }; 8657: 8657: 8657: template 8657: struct is_member_function_pointer 8657: : public __is_member_function_pointer_helper< 8657: typename remove_cv<_Tp>::type>::type 8657: { }; 8657: 8657: 8657: template 8657: struct is_enum 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: template 8657: struct is_union 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: template 8657: struct is_class 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: template 8657: struct is_function 8657: : public false_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes...) > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes...) & > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes...) && > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes......) > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes......) & > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes......) && > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes...) const > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes...) const & > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes...) const && > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes......) const > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes......) const & > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes......) const && > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes...) volatile > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes...) volatile & > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes...) volatile && > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes......) volatile > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes......) volatile & > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes......) volatile && > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes...) const volatile > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes...) const volatile & > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes...) const volatile && > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes......) const volatile > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes......) const volatile & > 8657: : public true_type { }; 8657: 8657: template 8657: struct is_function<_Res(_ArgTypes......) const volatile && > 8657: : public true_type { }; 8657: 8657: 8657: 8657: template 8657: struct __is_null_pointer_helper 8657: : public false_type { }; 8657: 8657: template<> 8657: struct __is_null_pointer_helper 8657: : public true_type { }; 8657: 8657: 8657: template 8657: struct is_null_pointer 8657: : public __is_null_pointer_helper::type>::type 8657: { }; 8657: 8657: 8657: template 8657: struct __is_nullptr_t 8657: : public is_null_pointer<_Tp> 8657: { }; 8657: 8657: 8657: 8657: 8657: template 8657: struct is_reference 8657: : public __or_, 8657: is_rvalue_reference<_Tp>>::type 8657: { }; 8657: 8657: 8657: template 8657: struct is_arithmetic 8657: : public __or_, is_floating_point<_Tp>>::type 8657: { }; 8657: 8657: 8657: template 8657: struct is_fundamental 8657: : public __or_, is_void<_Tp>, 8657: is_null_pointer<_Tp>>::type 8657: { }; 8657: 8657: 8657: template 8657: struct is_object 8657: : public __not_<__or_, is_reference<_Tp>, 8657: is_void<_Tp>>>::type 8657: { }; 8657: 8657: template 8657: struct is_member_pointer; 8657: 8657: 8657: template 8657: struct is_scalar 8657: : public __or_, is_enum<_Tp>, is_pointer<_Tp>, 8657: is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type 8657: { }; 8657: 8657: 8657: template 8657: struct is_compound 8657: : public integral_constant::value> { }; 8657: 8657: template 8657: struct __is_member_pointer_helper 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_member_pointer_helper<_Tp _Cp::*> 8657: : public true_type { }; 8657: 8657: 8657: template 8657: struct is_member_pointer 8657: : public __is_member_pointer_helper::type>::type 8657: { }; 8657: 8657: 8657: 8657: template 8657: struct __is_referenceable 8657: : public __or_, is_reference<_Tp>>::type 8657: { }; 8657: 8657: template 8657: struct __is_referenceable<_Res(_Args...) > 8657: : public true_type 8657: { }; 8657: 8657: template 8657: struct __is_referenceable<_Res(_Args......) > 8657: : public true_type 8657: { }; 8657: 8657: 8657: 8657: 8657: template 8657: struct is_const 8657: : public false_type { }; 8657: 8657: template 8657: struct is_const<_Tp const> 8657: : public true_type { }; 8657: 8657: 8657: template 8657: struct is_volatile 8657: : public false_type { }; 8657: 8657: template 8657: struct is_volatile<_Tp volatile> 8657: : public true_type { }; 8657: 8657: 8657: template 8657: struct is_trivial 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: template 8657: struct is_trivially_copyable 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: template 8657: struct is_standard_layout 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: 8657: template 8657: struct is_pod 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: template 8657: struct is_literal_type 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: template 8657: struct is_empty 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: template 8657: struct is_polymorphic 8657: : public integral_constant 8657: { }; 8657: # 724 "/usr/include/c++/8/type_traits" 3 8657: template 8657: struct is_abstract 8657: : public integral_constant 8657: { }; 8657: 8657: template::value> 8657: struct __is_signed_helper 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_signed_helper<_Tp, true> 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: template 8657: struct is_signed 8657: : public __is_signed_helper<_Tp>::type 8657: { }; 8657: 8657: 8657: template 8657: struct is_unsigned 8657: : public __and_, __not_>> 8657: { }; 8657: # 759 "/usr/include/c++/8/type_traits" 3 8657: template 8657: _Up 8657: __declval(int); 8657: 8657: template 8657: _Tp 8657: __declval(long); 8657: 8657: template 8657: auto declval() noexcept -> decltype(__declval<_Tp>(0)); 8657: 8657: template 8657: struct extent; 8657: 8657: template 8657: struct remove_all_extents; 8657: 8657: template 8657: struct __is_array_known_bounds 8657: : public integral_constant::value > 0)> 8657: { }; 8657: 8657: template 8657: struct __is_array_unknown_bounds 8657: : public __and_, __not_>> 8657: { }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: struct __do_is_destructible_impl 8657: { 8657: template().~_Tp())> 8657: static true_type __test(int); 8657: 8657: template 8657: static false_type __test(...); 8657: }; 8657: 8657: template 8657: struct __is_destructible_impl 8657: : public __do_is_destructible_impl 8657: { 8657: typedef decltype(__test<_Tp>(0)) type; 8657: }; 8657: 8657: template, 8657: __is_array_unknown_bounds<_Tp>, 8657: is_function<_Tp>>::value, 8657: bool = __or_, is_scalar<_Tp>>::value> 8657: struct __is_destructible_safe; 8657: 8657: template 8657: struct __is_destructible_safe<_Tp, false, false> 8657: : public __is_destructible_impl::type>::type 8657: { }; 8657: 8657: template 8657: struct __is_destructible_safe<_Tp, true, false> 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_destructible_safe<_Tp, false, true> 8657: : public true_type { }; 8657: 8657: 8657: template 8657: struct is_destructible 8657: : public __is_destructible_safe<_Tp>::type 8657: { }; 8657: 8657: 8657: 8657: 8657: 8657: struct __do_is_nt_destructible_impl 8657: { 8657: template 8657: static integral_constant().~_Tp())> 8657: __test(int); 8657: 8657: template 8657: static false_type __test(...); 8657: }; 8657: 8657: template 8657: struct __is_nt_destructible_impl 8657: : public __do_is_nt_destructible_impl 8657: { 8657: typedef decltype(__test<_Tp>(0)) type; 8657: }; 8657: 8657: template, 8657: __is_array_unknown_bounds<_Tp>, 8657: is_function<_Tp>>::value, 8657: bool = __or_, is_scalar<_Tp>>::value> 8657: struct __is_nt_destructible_safe; 8657: 8657: template 8657: struct __is_nt_destructible_safe<_Tp, false, false> 8657: : public __is_nt_destructible_impl::type>::type 8657: { }; 8657: 8657: template 8657: struct __is_nt_destructible_safe<_Tp, true, false> 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_nt_destructible_safe<_Tp, false, true> 8657: : public true_type { }; 8657: 8657: 8657: template 8657: struct is_nothrow_destructible 8657: : public __is_nt_destructible_safe<_Tp>::type 8657: { }; 8657: 8657: struct __do_is_default_constructible_impl 8657: { 8657: template 8657: static true_type __test(int); 8657: 8657: template 8657: static false_type __test(...); 8657: }; 8657: 8657: template 8657: struct __is_default_constructible_impl 8657: : public __do_is_default_constructible_impl 8657: { 8657: typedef decltype(__test<_Tp>(0)) type; 8657: }; 8657: 8657: template 8657: struct __is_default_constructible_atom 8657: : public __and_<__not_>, 8657: __is_default_constructible_impl<_Tp>> 8657: { }; 8657: 8657: template::value> 8657: struct __is_default_constructible_safe; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct __is_default_constructible_safe<_Tp, true> 8657: : public __and_<__is_array_known_bounds<_Tp>, 8657: __is_default_constructible_atom::type>> 8657: { }; 8657: 8657: template 8657: struct __is_default_constructible_safe<_Tp, false> 8657: : public __is_default_constructible_atom<_Tp>::type 8657: { }; 8657: 8657: 8657: template 8657: struct is_default_constructible 8657: : public __is_default_constructible_safe<_Tp>::type 8657: { }; 8657: 8657: 8657: template 8657: struct is_constructible 8657: : public __bool_constant<__is_constructible(_Tp, _Args...)> 8657: { }; 8657: 8657: template::value> 8657: struct __is_copy_constructible_impl; 8657: 8657: template 8657: struct __is_copy_constructible_impl<_Tp, false> 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_copy_constructible_impl<_Tp, true> 8657: : public is_constructible<_Tp, const _Tp&> 8657: { }; 8657: 8657: 8657: template 8657: struct is_copy_constructible 8657: : public __is_copy_constructible_impl<_Tp> 8657: { }; 8657: 8657: template::value> 8657: struct __is_move_constructible_impl; 8657: 8657: template 8657: struct __is_move_constructible_impl<_Tp, false> 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_move_constructible_impl<_Tp, true> 8657: : public is_constructible<_Tp, _Tp&&> 8657: { }; 8657: 8657: 8657: template 8657: struct is_move_constructible 8657: : public __is_move_constructible_impl<_Tp> 8657: { }; 8657: 8657: template 8657: struct __is_nt_default_constructible_atom 8657: : public integral_constant 8657: { }; 8657: 8657: template::value> 8657: struct __is_nt_default_constructible_impl; 8657: 8657: template 8657: struct __is_nt_default_constructible_impl<_Tp, true> 8657: : public __and_<__is_array_known_bounds<_Tp>, 8657: __is_nt_default_constructible_atom::type>> 8657: { }; 8657: 8657: template 8657: struct __is_nt_default_constructible_impl<_Tp, false> 8657: : public __is_nt_default_constructible_atom<_Tp> 8657: { }; 8657: 8657: 8657: template 8657: struct is_nothrow_default_constructible 8657: : public __and_, 8657: __is_nt_default_constructible_impl<_Tp>> 8657: { }; 8657: 8657: template 8657: struct __is_nt_constructible_impl 8657: : public integral_constant()...))> 8657: { }; 8657: 8657: template 8657: struct __is_nt_constructible_impl<_Tp, _Arg> 8657: : public integral_constant(declval<_Arg>()))> 8657: { }; 8657: 8657: template 8657: struct __is_nt_constructible_impl<_Tp> 8657: : public is_nothrow_default_constructible<_Tp> 8657: { }; 8657: 8657: 8657: template 8657: struct is_nothrow_constructible 8657: : public __and_, 8657: __is_nt_constructible_impl<_Tp, _Args...>> 8657: { }; 8657: 8657: template::value> 8657: struct __is_nothrow_copy_constructible_impl; 8657: 8657: template 8657: struct __is_nothrow_copy_constructible_impl<_Tp, false> 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_nothrow_copy_constructible_impl<_Tp, true> 8657: : public is_nothrow_constructible<_Tp, const _Tp&> 8657: { }; 8657: 8657: 8657: template 8657: struct is_nothrow_copy_constructible 8657: : public __is_nothrow_copy_constructible_impl<_Tp> 8657: { }; 8657: 8657: template::value> 8657: struct __is_nothrow_move_constructible_impl; 8657: 8657: template 8657: struct __is_nothrow_move_constructible_impl<_Tp, false> 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_nothrow_move_constructible_impl<_Tp, true> 8657: : public is_nothrow_constructible<_Tp, _Tp&&> 8657: { }; 8657: 8657: 8657: template 8657: struct is_nothrow_move_constructible 8657: : public __is_nothrow_move_constructible_impl<_Tp> 8657: { }; 8657: 8657: 8657: template 8657: struct is_assignable 8657: : public __bool_constant<__is_assignable(_Tp, _Up)> 8657: { }; 8657: 8657: template::value> 8657: struct __is_copy_assignable_impl; 8657: 8657: template 8657: struct __is_copy_assignable_impl<_Tp, false> 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_copy_assignable_impl<_Tp, true> 8657: : public is_assignable<_Tp&, const _Tp&> 8657: { }; 8657: 8657: 8657: template 8657: struct is_copy_assignable 8657: : public __is_copy_assignable_impl<_Tp> 8657: { }; 8657: 8657: template::value> 8657: struct __is_move_assignable_impl; 8657: 8657: template 8657: struct __is_move_assignable_impl<_Tp, false> 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_move_assignable_impl<_Tp, true> 8657: : public is_assignable<_Tp&, _Tp&&> 8657: { }; 8657: 8657: 8657: template 8657: struct is_move_assignable 8657: : public __is_move_assignable_impl<_Tp> 8657: { }; 8657: 8657: template 8657: struct __is_nt_assignable_impl 8657: : public integral_constant() = declval<_Up>())> 8657: { }; 8657: 8657: 8657: template 8657: struct is_nothrow_assignable 8657: : public __and_, 8657: __is_nt_assignable_impl<_Tp, _Up>> 8657: { }; 8657: 8657: template::value> 8657: struct __is_nt_copy_assignable_impl; 8657: 8657: template 8657: struct __is_nt_copy_assignable_impl<_Tp, false> 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_nt_copy_assignable_impl<_Tp, true> 8657: : public is_nothrow_assignable<_Tp&, const _Tp&> 8657: { }; 8657: 8657: 8657: template 8657: struct is_nothrow_copy_assignable 8657: : public __is_nt_copy_assignable_impl<_Tp> 8657: { }; 8657: 8657: template::value> 8657: struct __is_nt_move_assignable_impl; 8657: 8657: template 8657: struct __is_nt_move_assignable_impl<_Tp, false> 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_nt_move_assignable_impl<_Tp, true> 8657: : public is_nothrow_assignable<_Tp&, _Tp&&> 8657: { }; 8657: 8657: 8657: template 8657: struct is_nothrow_move_assignable 8657: : public __is_nt_move_assignable_impl<_Tp> 8657: { }; 8657: 8657: 8657: template 8657: struct is_trivially_constructible 8657: : public __bool_constant<__is_trivially_constructible(_Tp, _Args...)> 8657: { }; 8657: 8657: 8657: template 8657: struct is_trivially_default_constructible 8657: : public is_trivially_constructible<_Tp>::type 8657: { }; 8657: 8657: struct __do_is_implicitly_default_constructible_impl 8657: { 8657: template 8657: static void __helper(const _Tp&); 8657: 8657: template 8657: static true_type __test(const _Tp&, 8657: decltype(__helper({}))* = 0); 8657: 8657: static false_type __test(...); 8657: }; 8657: 8657: template 8657: struct __is_implicitly_default_constructible_impl 8657: : public __do_is_implicitly_default_constructible_impl 8657: { 8657: typedef decltype(__test(declval<_Tp>())) type; 8657: }; 8657: 8657: template 8657: struct __is_implicitly_default_constructible_safe 8657: : public __is_implicitly_default_constructible_impl<_Tp>::type 8657: { }; 8657: 8657: template 8657: struct __is_implicitly_default_constructible 8657: : public __and_, 8657: __is_implicitly_default_constructible_safe<_Tp>> 8657: { }; 8657: 8657: 8657: 8657: template::value> 8657: struct __is_trivially_copy_constructible_impl; 8657: 8657: template 8657: struct __is_trivially_copy_constructible_impl<_Tp, false> 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_trivially_copy_constructible_impl<_Tp, true> 8657: : public __and_, 8657: integral_constant> 8657: { }; 8657: 8657: template 8657: struct is_trivially_copy_constructible 8657: : public __is_trivially_copy_constructible_impl<_Tp> 8657: { }; 8657: 8657: 8657: 8657: template::value> 8657: struct __is_trivially_move_constructible_impl; 8657: 8657: template 8657: struct __is_trivially_move_constructible_impl<_Tp, false> 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_trivially_move_constructible_impl<_Tp, true> 8657: : public __and_, 8657: integral_constant> 8657: { }; 8657: 8657: template 8657: struct is_trivially_move_constructible 8657: : public __is_trivially_move_constructible_impl<_Tp> 8657: { }; 8657: 8657: 8657: template 8657: struct is_trivially_assignable 8657: : public __bool_constant<__is_trivially_assignable(_Tp, _Up)> 8657: { }; 8657: 8657: 8657: 8657: template::value> 8657: struct __is_trivially_copy_assignable_impl; 8657: 8657: template 8657: struct __is_trivially_copy_assignable_impl<_Tp, false> 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_trivially_copy_assignable_impl<_Tp, true> 8657: : public __and_, 8657: integral_constant> 8657: { }; 8657: 8657: template 8657: struct is_trivially_copy_assignable 8657: : public __is_trivially_copy_assignable_impl<_Tp> 8657: { }; 8657: 8657: 8657: 8657: template::value> 8657: struct __is_trivially_move_assignable_impl; 8657: 8657: template 8657: struct __is_trivially_move_assignable_impl<_Tp, false> 8657: : public false_type { }; 8657: 8657: template 8657: struct __is_trivially_move_assignable_impl<_Tp, true> 8657: : public __and_, 8657: integral_constant> 8657: { }; 8657: 8657: template 8657: struct is_trivially_move_assignable 8657: : public __is_trivially_move_assignable_impl<_Tp> 8657: { }; 8657: 8657: 8657: template 8657: struct is_trivially_destructible 8657: : public __and_, integral_constant> 8657: { }; 8657: 8657: 8657: 8657: template 8657: struct has_virtual_destructor 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct alignment_of 8657: : public integral_constant { }; 8657: 8657: 8657: template 8657: struct rank 8657: : public integral_constant { }; 8657: 8657: template 8657: struct rank<_Tp[_Size]> 8657: : public integral_constant::value> { }; 8657: 8657: template 8657: struct rank<_Tp[]> 8657: : public integral_constant::value> { }; 8657: 8657: 8657: template 8657: struct extent 8657: : public integral_constant { }; 8657: 8657: template 8657: struct extent<_Tp[_Size], _Uint> 8657: : public integral_constant::value> 8657: { }; 8657: 8657: template 8657: struct extent<_Tp[], _Uint> 8657: : public integral_constant::value> 8657: { }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct is_same 8657: : public false_type { }; 8657: 8657: template 8657: struct is_same<_Tp, _Tp> 8657: : public true_type { }; 8657: 8657: 8657: template 8657: struct is_base_of 8657: : public integral_constant 8657: { }; 8657: 8657: template, is_function<_To>, 8657: is_array<_To>>::value> 8657: struct __is_convertible_helper 8657: { typedef typename is_void<_To>::type type; }; 8657: 8657: template 8657: class __is_convertible_helper<_From, _To, false> 8657: { 8657: template 8657: static void __test_aux(_To1); 8657: 8657: template(std::declval<_From1>()))> 8657: static true_type 8657: __test(int); 8657: 8657: template 8657: static false_type 8657: __test(...); 8657: 8657: public: 8657: typedef decltype(__test<_From, _To>(0)) type; 8657: }; 8657: 8657: 8657: 8657: template 8657: struct is_convertible 8657: : public __is_convertible_helper<_From, _To>::type 8657: { }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct remove_const 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct remove_const<_Tp const> 8657: { typedef _Tp type; }; 8657: 8657: 8657: template 8657: struct remove_volatile 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct remove_volatile<_Tp volatile> 8657: { typedef _Tp type; }; 8657: 8657: 8657: template 8657: struct remove_cv 8657: { 8657: typedef typename 8657: remove_const::type>::type type; 8657: }; 8657: 8657: 8657: template 8657: struct add_const 8657: { typedef _Tp const type; }; 8657: 8657: 8657: template 8657: struct add_volatile 8657: { typedef _Tp volatile type; }; 8657: 8657: 8657: template 8657: struct add_cv 8657: { 8657: typedef typename 8657: add_const::type>::type type; 8657: }; 8657: # 1463 "/usr/include/c++/8/type_traits" 3 8657: template 8657: struct remove_reference 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct remove_reference<_Tp&> 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct remove_reference<_Tp&&> 8657: { typedef _Tp type; }; 8657: 8657: template::value> 8657: struct __add_lvalue_reference_helper 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct __add_lvalue_reference_helper<_Tp, true> 8657: { typedef _Tp& type; }; 8657: 8657: 8657: template 8657: struct add_lvalue_reference 8657: : public __add_lvalue_reference_helper<_Tp> 8657: { }; 8657: 8657: template::value> 8657: struct __add_rvalue_reference_helper 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct __add_rvalue_reference_helper<_Tp, true> 8657: { typedef _Tp&& type; }; 8657: 8657: 8657: template 8657: struct add_rvalue_reference 8657: : public __add_rvalue_reference_helper<_Tp> 8657: { }; 8657: # 1520 "/usr/include/c++/8/type_traits" 3 8657: template 8657: struct __cv_selector; 8657: 8657: template 8657: struct __cv_selector<_Unqualified, false, false> 8657: { typedef _Unqualified __type; }; 8657: 8657: template 8657: struct __cv_selector<_Unqualified, false, true> 8657: { typedef volatile _Unqualified __type; }; 8657: 8657: template 8657: struct __cv_selector<_Unqualified, true, false> 8657: { typedef const _Unqualified __type; }; 8657: 8657: template 8657: struct __cv_selector<_Unqualified, true, true> 8657: { typedef const volatile _Unqualified __type; }; 8657: 8657: template::value, 8657: bool _IsVol = is_volatile<_Qualified>::value> 8657: class __match_cv_qualifiers 8657: { 8657: typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match; 8657: 8657: public: 8657: typedef typename __match::__type __type; 8657: }; 8657: 8657: 8657: template 8657: struct __make_unsigned 8657: { typedef _Tp __type; }; 8657: 8657: template<> 8657: struct __make_unsigned 8657: { typedef unsigned char __type; }; 8657: 8657: template<> 8657: struct __make_unsigned 8657: { typedef unsigned char __type; }; 8657: 8657: template<> 8657: struct __make_unsigned 8657: { typedef unsigned short __type; }; 8657: 8657: template<> 8657: struct __make_unsigned 8657: { typedef unsigned int __type; }; 8657: 8657: template<> 8657: struct __make_unsigned 8657: { typedef unsigned long __type; }; 8657: 8657: template<> 8657: struct __make_unsigned 8657: { typedef unsigned long long __type; }; 8657: # 1607 "/usr/include/c++/8/type_traits" 3 8657: template::value, 8657: bool _IsEnum = is_enum<_Tp>::value> 8657: class __make_unsigned_selector; 8657: 8657: template 8657: class __make_unsigned_selector<_Tp, true, false> 8657: { 8657: typedef __make_unsigned::type> __unsignedt; 8657: typedef typename __unsignedt::__type __unsigned_type; 8657: typedef __match_cv_qualifiers<_Tp, __unsigned_type> __cv_unsigned; 8657: 8657: public: 8657: typedef typename __cv_unsigned::__type __type; 8657: }; 8657: 8657: template 8657: class __make_unsigned_selector<_Tp, false, true> 8657: { 8657: 8657: typedef unsigned char __smallest; 8657: static const bool __b0 = sizeof(_Tp) <= sizeof(__smallest); 8657: static const bool __b1 = sizeof(_Tp) <= sizeof(unsigned short); 8657: static const bool __b2 = sizeof(_Tp) <= sizeof(unsigned int); 8657: static const bool __b3 = sizeof(_Tp) <= sizeof(unsigned long); 8657: typedef conditional<__b3, unsigned long, unsigned long long> __cond3; 8657: typedef typename __cond3::type __cond3_type; 8657: typedef conditional<__b2, unsigned int, __cond3_type> __cond2; 8657: typedef typename __cond2::type __cond2_type; 8657: typedef conditional<__b1, unsigned short, __cond2_type> __cond1; 8657: typedef typename __cond1::type __cond1_type; 8657: 8657: typedef typename conditional<__b0, __smallest, __cond1_type>::type 8657: __unsigned_type; 8657: typedef __match_cv_qualifiers<_Tp, __unsigned_type> __cv_unsigned; 8657: 8657: public: 8657: typedef typename __cv_unsigned::__type __type; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct make_unsigned 8657: { typedef typename __make_unsigned_selector<_Tp>::__type type; }; 8657: 8657: 8657: template<> 8657: struct make_unsigned; 8657: 8657: 8657: 8657: template 8657: struct __make_signed 8657: { typedef _Tp __type; }; 8657: 8657: template<> 8657: struct __make_signed 8657: { typedef signed char __type; }; 8657: 8657: template<> 8657: struct __make_signed 8657: { typedef signed char __type; }; 8657: 8657: template<> 8657: struct __make_signed 8657: { typedef signed short __type; }; 8657: 8657: template<> 8657: struct __make_signed 8657: { typedef signed int __type; }; 8657: 8657: template<> 8657: struct __make_signed 8657: { typedef signed long __type; }; 8657: 8657: template<> 8657: struct __make_signed 8657: { typedef signed long long __type; }; 8657: 8657: 8657: template<> 8657: struct __make_signed : __make_signed 8657: { }; 8657: 8657: 8657: 8657: template<> 8657: struct __make_signed : __make_signed 8657: { }; 8657: template<> 8657: struct __make_signed : __make_signed 8657: { }; 8657: # 1726 "/usr/include/c++/8/type_traits" 3 8657: template::value, 8657: bool _IsEnum = is_enum<_Tp>::value> 8657: class __make_signed_selector; 8657: 8657: template 8657: class __make_signed_selector<_Tp, true, false> 8657: { 8657: typedef __make_signed::type> __signedt; 8657: typedef typename __signedt::__type __signed_type; 8657: typedef __match_cv_qualifiers<_Tp, __signed_type> __cv_signed; 8657: 8657: public: 8657: typedef typename __cv_signed::__type __type; 8657: }; 8657: 8657: template 8657: class __make_signed_selector<_Tp, false, true> 8657: { 8657: typedef typename __make_unsigned_selector<_Tp>::__type __unsigned_type; 8657: 8657: public: 8657: typedef typename __make_signed_selector<__unsigned_type>::__type __type; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct make_signed 8657: { typedef typename __make_signed_selector<_Tp>::__type type; }; 8657: 8657: 8657: template<> 8657: struct make_signed; 8657: # 1776 "/usr/include/c++/8/type_traits" 3 8657: template 8657: struct remove_extent 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct remove_extent<_Tp[_Size]> 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct remove_extent<_Tp[]> 8657: { typedef _Tp type; }; 8657: 8657: 8657: template 8657: struct remove_all_extents 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct remove_all_extents<_Tp[_Size]> 8657: { typedef typename remove_all_extents<_Tp>::type type; }; 8657: 8657: template 8657: struct remove_all_extents<_Tp[]> 8657: { typedef typename remove_all_extents<_Tp>::type type; }; 8657: # 1813 "/usr/include/c++/8/type_traits" 3 8657: template 8657: struct __remove_pointer_helper 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct __remove_pointer_helper<_Tp, _Up*> 8657: { typedef _Up type; }; 8657: 8657: 8657: template 8657: struct remove_pointer 8657: : public __remove_pointer_helper<_Tp, typename remove_cv<_Tp>::type> 8657: { }; 8657: 8657: 8657: template, 8657: is_void<_Tp>>::value> 8657: struct __add_pointer_helper 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct __add_pointer_helper<_Tp, true> 8657: { typedef typename remove_reference<_Tp>::type* type; }; 8657: 8657: template 8657: struct add_pointer 8657: : public __add_pointer_helper<_Tp> 8657: { }; 8657: # 1852 "/usr/include/c++/8/type_traits" 3 8657: template 8657: struct __aligned_storage_msa 8657: { 8657: union __type 8657: { 8657: unsigned char __data[_Len]; 8657: struct __attribute__((__aligned__)) { } __align; 8657: }; 8657: }; 8657: # 1872 "/usr/include/c++/8/type_traits" 3 8657: template::__type)> 8657: struct aligned_storage 8657: { 8657: union type 8657: { 8657: unsigned char __data[_Len]; 8657: struct __attribute__((__aligned__((_Align)))) { } __align; 8657: }; 8657: }; 8657: 8657: template 8657: struct __strictest_alignment 8657: { 8657: static const size_t _S_alignment = 0; 8657: static const size_t _S_size = 0; 8657: }; 8657: 8657: template 8657: struct __strictest_alignment<_Tp, _Types...> 8657: { 8657: static const size_t _S_alignment = 8657: alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment 8657: ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; 8657: static const size_t _S_size = 8657: sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size 8657: ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; 8657: }; 8657: # 1911 "/usr/include/c++/8/type_traits" 3 8657: template 8657: struct aligned_union 8657: { 8657: private: 8657: static_assert(sizeof...(_Types) != 0, "At least one type is required"); 8657: 8657: using __strictest = __strictest_alignment<_Types...>; 8657: static const size_t _S_len = _Len > __strictest::_S_size 8657: ? _Len : __strictest::_S_size; 8657: public: 8657: 8657: static const size_t alignment_value = __strictest::_S_alignment; 8657: 8657: typedef typename aligned_storage<_S_len, alignment_value>::type type; 8657: }; 8657: 8657: template 8657: const size_t aligned_union<_Len, _Types...>::alignment_value; 8657: 8657: 8657: 8657: template::value, 8657: bool _IsFunction = is_function<_Up>::value> 8657: struct __decay_selector; 8657: 8657: 8657: template 8657: struct __decay_selector<_Up, false, false> 8657: { typedef typename remove_cv<_Up>::type __type; }; 8657: 8657: template 8657: struct __decay_selector<_Up, true, false> 8657: { typedef typename remove_extent<_Up>::type* __type; }; 8657: 8657: template 8657: struct __decay_selector<_Up, false, true> 8657: { typedef typename add_pointer<_Up>::type __type; }; 8657: 8657: 8657: template 8657: class decay 8657: { 8657: typedef typename remove_reference<_Tp>::type __remove_type; 8657: 8657: public: 8657: typedef typename __decay_selector<__remove_type>::__type type; 8657: }; 8657: 8657: template 8657: class reference_wrapper; 8657: 8657: 8657: template 8657: struct __strip_reference_wrapper 8657: { 8657: typedef _Tp __type; 8657: }; 8657: 8657: template 8657: struct __strip_reference_wrapper > 8657: { 8657: typedef _Tp& __type; 8657: }; 8657: 8657: template 8657: struct __decay_and_strip 8657: { 8657: typedef typename __strip_reference_wrapper< 8657: typename decay<_Tp>::type>::__type __type; 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: struct enable_if 8657: { }; 8657: 8657: 8657: template 8657: struct enable_if 8657: { typedef _Tp type; }; 8657: 8657: template 8657: using _Require = typename enable_if<__and_<_Cond...>::value>::type; 8657: 8657: 8657: 8657: template 8657: struct conditional 8657: { typedef _Iftrue type; }; 8657: 8657: 8657: template 8657: struct conditional 8657: { typedef _Iffalse type; }; 8657: 8657: 8657: template 8657: struct common_type; 8657: 8657: 8657: 8657: struct __do_common_type_impl 8657: { 8657: template 8657: static __success_type() 8657: : std::declval<_Up>())>::type> _S_test(int); 8657: 8657: template 8657: static __failure_type _S_test(...); 8657: }; 8657: 8657: template 8657: struct __common_type_impl 8657: : private __do_common_type_impl 8657: { 8657: typedef decltype(_S_test<_Tp, _Up>(0)) type; 8657: }; 8657: 8657: struct __do_member_type_wrapper 8657: { 8657: template 8657: static __success_type _S_test(int); 8657: 8657: template 8657: static __failure_type _S_test(...); 8657: }; 8657: 8657: template 8657: struct __member_type_wrapper 8657: : private __do_member_type_wrapper 8657: { 8657: typedef decltype(_S_test<_Tp>(0)) type; 8657: }; 8657: 8657: template 8657: struct __expanded_common_type_wrapper 8657: { 8657: typedef common_type type; 8657: }; 8657: 8657: template 8657: struct __expanded_common_type_wrapper<__failure_type, _Args...> 8657: { typedef __failure_type type; }; 8657: 8657: template 8657: struct common_type<_Tp> 8657: { typedef typename decay<_Tp>::type type; }; 8657: 8657: template 8657: struct common_type<_Tp, _Up> 8657: : public __common_type_impl<_Tp, _Up>::type 8657: { }; 8657: 8657: template 8657: struct common_type<_Tp, _Up, _Vp...> 8657: : public __expanded_common_type_wrapper>::type, _Vp...>::type 8657: { }; 8657: 8657: 8657: template 8657: struct underlying_type 8657: { 8657: typedef __underlying_type(_Tp) type; 8657: }; 8657: 8657: template 8657: struct __declval_protector 8657: { 8657: static const bool __stop = false; 8657: }; 8657: 8657: template 8657: auto declval() noexcept -> decltype(__declval<_Tp>(0)) 8657: { 8657: static_assert(__declval_protector<_Tp>::__stop, 8657: "declval() must not be used!"); 8657: return __declval<_Tp>(0); 8657: } 8657: 8657: 8657: template 8657: class result_of; 8657: 8657: 8657: 8657: 8657: 8657: struct __invoke_memfun_ref { }; 8657: struct __invoke_memfun_deref { }; 8657: struct __invoke_memobj_ref { }; 8657: struct __invoke_memobj_deref { }; 8657: struct __invoke_other { }; 8657: 8657: 8657: template 8657: struct __result_of_success : __success_type<_Tp> 8657: { using __invoke_type = _Tag; }; 8657: 8657: 8657: struct __result_of_memfun_ref_impl 8657: { 8657: template 8657: static __result_of_success().*std::declval<_Fp>())(std::declval<_Args>()...) 8657: ), __invoke_memfun_ref> _S_test(int); 8657: 8657: template 8657: static __failure_type _S_test(...); 8657: }; 8657: 8657: template 8657: struct __result_of_memfun_ref 8657: : private __result_of_memfun_ref_impl 8657: { 8657: typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; 8657: }; 8657: 8657: 8657: struct __result_of_memfun_deref_impl 8657: { 8657: template 8657: static __result_of_success()).*std::declval<_Fp>())(std::declval<_Args>()...) 8657: ), __invoke_memfun_deref> _S_test(int); 8657: 8657: template 8657: static __failure_type _S_test(...); 8657: }; 8657: 8657: template 8657: struct __result_of_memfun_deref 8657: : private __result_of_memfun_deref_impl 8657: { 8657: typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; 8657: }; 8657: 8657: 8657: struct __result_of_memobj_ref_impl 8657: { 8657: template 8657: static __result_of_success().*std::declval<_Fp>() 8657: ), __invoke_memobj_ref> _S_test(int); 8657: 8657: template 8657: static __failure_type _S_test(...); 8657: }; 8657: 8657: template 8657: struct __result_of_memobj_ref 8657: : private __result_of_memobj_ref_impl 8657: { 8657: typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; 8657: }; 8657: 8657: 8657: struct __result_of_memobj_deref_impl 8657: { 8657: template 8657: static __result_of_success()).*std::declval<_Fp>() 8657: ), __invoke_memobj_deref> _S_test(int); 8657: 8657: template 8657: static __failure_type _S_test(...); 8657: }; 8657: 8657: template 8657: struct __result_of_memobj_deref 8657: : private __result_of_memobj_deref_impl 8657: { 8657: typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; 8657: }; 8657: 8657: template 8657: struct __result_of_memobj; 8657: 8657: template 8657: struct __result_of_memobj<_Res _Class::*, _Arg> 8657: { 8657: typedef typename remove_cv::type>::type _Argval; 8657: typedef _Res _Class::* _MemPtr; 8657: typedef typename conditional<__or_, 8657: is_base_of<_Class, _Argval>>::value, 8657: __result_of_memobj_ref<_MemPtr, _Arg>, 8657: __result_of_memobj_deref<_MemPtr, _Arg> 8657: >::type::type type; 8657: }; 8657: 8657: template 8657: struct __result_of_memfun; 8657: 8657: template 8657: struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> 8657: { 8657: typedef typename remove_cv::type>::type _Argval; 8657: typedef _Res _Class::* _MemPtr; 8657: typedef typename conditional<__or_, 8657: is_base_of<_Class, _Argval>>::value, 8657: __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, 8657: __result_of_memfun_deref<_MemPtr, _Arg, _Args...> 8657: >::type::type type; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template::type> 8657: struct __inv_unwrap 8657: { 8657: using type = _Tp; 8657: }; 8657: 8657: template 8657: struct __inv_unwrap<_Tp, reference_wrapper<_Up>> 8657: { 8657: using type = _Up&; 8657: }; 8657: 8657: template 8657: struct __result_of_impl 8657: { 8657: typedef __failure_type type; 8657: }; 8657: 8657: template 8657: struct __result_of_impl 8657: : public __result_of_memobj::type, 8657: typename __inv_unwrap<_Arg>::type> 8657: { }; 8657: 8657: template 8657: struct __result_of_impl 8657: : public __result_of_memfun::type, 8657: typename __inv_unwrap<_Arg>::type, _Args...> 8657: { }; 8657: 8657: 8657: struct __result_of_other_impl 8657: { 8657: template 8657: static __result_of_success()(std::declval<_Args>()...) 8657: ), __invoke_other> _S_test(int); 8657: 8657: template 8657: static __failure_type _S_test(...); 8657: }; 8657: 8657: template 8657: struct __result_of_impl 8657: : private __result_of_other_impl 8657: { 8657: typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type; 8657: }; 8657: 8657: 8657: template 8657: struct __invoke_result 8657: : public __result_of_impl< 8657: is_member_object_pointer< 8657: typename remove_reference<_Functor>::type 8657: >::value, 8657: is_member_function_pointer< 8657: typename remove_reference<_Functor>::type 8657: >::value, 8657: _Functor, _ArgTypes... 8657: >::type 8657: { }; 8657: 8657: template 8657: struct result_of<_Functor(_ArgTypes...)> 8657: : public __invoke_result<_Functor, _ArgTypes...> 8657: { }; 8657: # 2329 "/usr/include/c++/8/type_traits" 3 8657: template using __void_t = void; 8657: 8657: 8657: 8657: 8657: template using void_t = void; 8657: 8657: 8657: 8657: template class _Op, typename... _Args> 8657: struct __detector 8657: { 8657: using value_t = false_type; 8657: using type = _Default; 8657: }; 8657: 8657: 8657: template class _Op, 8657: typename... _Args> 8657: struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> 8657: { 8657: using value_t = true_type; 8657: using type = _Op<_Args...>; 8657: }; 8657: 8657: 8657: template class _Op, 8657: typename... _Args> 8657: using __detected_or = __detector<_Default, void, _Op, _Args...>; 8657: 8657: 8657: template class _Op, 8657: typename... _Args> 8657: using __detected_or_t 8657: = typename __detected_or<_Default, _Op, _Args...>::type; 8657: # 2382 "/usr/include/c++/8/type_traits" 3 8657: template 8657: struct __is_swappable; 8657: 8657: template 8657: struct __is_nothrow_swappable; 8657: 8657: template 8657: class tuple; 8657: 8657: template 8657: struct __is_tuple_like_impl : false_type 8657: { }; 8657: 8657: template 8657: struct __is_tuple_like_impl> : true_type 8657: { }; 8657: 8657: 8657: template 8657: struct __is_tuple_like 8657: : public __is_tuple_like_impl::type>::type>::type 8657: { }; 8657: 8657: template 8657: inline 8657: typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, 8657: is_move_constructible<_Tp>, 8657: is_move_assignable<_Tp>>::value>::type 8657: swap(_Tp&, _Tp&) 8657: noexcept(__and_, 8657: is_nothrow_move_assignable<_Tp>>::value); 8657: 8657: template 8657: inline 8657: typename enable_if<__is_swappable<_Tp>::value>::type 8657: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 8657: noexcept(__is_nothrow_swappable<_Tp>::value); 8657: 8657: namespace __swappable_details { 8657: using std::swap; 8657: 8657: struct __do_is_swappable_impl 8657: { 8657: template(), std::declval<_Tp&>()))> 8657: static true_type __test(int); 8657: 8657: template 8657: static false_type __test(...); 8657: }; 8657: 8657: struct __do_is_nothrow_swappable_impl 8657: { 8657: template 8657: static __bool_constant< 8657: noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) 8657: > __test(int); 8657: 8657: template 8657: static false_type __test(...); 8657: }; 8657: 8657: } 8657: 8657: template 8657: struct __is_swappable_impl 8657: : public __swappable_details::__do_is_swappable_impl 8657: { 8657: typedef decltype(__test<_Tp>(0)) type; 8657: }; 8657: 8657: template 8657: struct __is_nothrow_swappable_impl 8657: : public __swappable_details::__do_is_nothrow_swappable_impl 8657: { 8657: typedef decltype(__test<_Tp>(0)) type; 8657: }; 8657: 8657: template 8657: struct __is_swappable 8657: : public __is_swappable_impl<_Tp>::type 8657: { }; 8657: 8657: template 8657: struct __is_nothrow_swappable 8657: : public __is_nothrow_swappable_impl<_Tp>::type 8657: { }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct is_swappable 8657: : public __is_swappable_impl<_Tp>::type 8657: { }; 8657: 8657: 8657: template 8657: struct is_nothrow_swappable 8657: : public __is_nothrow_swappable_impl<_Tp>::type 8657: { }; 8657: # 2499 "/usr/include/c++/8/type_traits" 3 8657: namespace __swappable_with_details { 8657: using std::swap; 8657: 8657: struct __do_is_swappable_with_impl 8657: { 8657: template(), std::declval<_Up>())), 8657: typename 8657: = decltype(swap(std::declval<_Up>(), std::declval<_Tp>()))> 8657: static true_type __test(int); 8657: 8657: template 8657: static false_type __test(...); 8657: }; 8657: 8657: struct __do_is_nothrow_swappable_with_impl 8657: { 8657: template 8657: static __bool_constant< 8657: noexcept(swap(std::declval<_Tp>(), std::declval<_Up>())) 8657: && 8657: noexcept(swap(std::declval<_Up>(), std::declval<_Tp>())) 8657: > __test(int); 8657: 8657: template 8657: static false_type __test(...); 8657: }; 8657: 8657: } 8657: 8657: template 8657: struct __is_swappable_with_impl 8657: : public __swappable_with_details::__do_is_swappable_with_impl 8657: { 8657: typedef decltype(__test<_Tp, _Up>(0)) type; 8657: }; 8657: 8657: 8657: template 8657: struct __is_swappable_with_impl<_Tp&, _Tp&> 8657: : public __swappable_details::__do_is_swappable_impl 8657: { 8657: typedef decltype(__test<_Tp&>(0)) type; 8657: }; 8657: 8657: template 8657: struct __is_nothrow_swappable_with_impl 8657: : public __swappable_with_details::__do_is_nothrow_swappable_with_impl 8657: { 8657: typedef decltype(__test<_Tp, _Up>(0)) type; 8657: }; 8657: 8657: 8657: template 8657: struct __is_nothrow_swappable_with_impl<_Tp&, _Tp&> 8657: : public __swappable_details::__do_is_nothrow_swappable_impl 8657: { 8657: typedef decltype(__test<_Tp&>(0)) type; 8657: }; 8657: 8657: 8657: template 8657: struct is_swappable_with 8657: : public __is_swappable_with_impl<_Tp, _Up>::type 8657: { }; 8657: 8657: 8657: template 8657: struct is_nothrow_swappable_with 8657: : public __is_nothrow_swappable_with_impl<_Tp, _Up>::type 8657: { }; 8657: # 2587 "/usr/include/c++/8/type_traits" 3 8657: template 8657: struct __is_invocable_impl : false_type { }; 8657: 8657: template 8657: struct __is_invocable_impl<_Result, _Ret, __void_t> 8657: : __or_, is_convertible>::type 8657: { }; 8657: 8657: template 8657: struct __is_invocable 8657: : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type 8657: { }; 8657: 8657: template 8657: constexpr bool __call_is_nt(__invoke_memfun_ref) 8657: { 8657: using _Up = typename __inv_unwrap<_Tp>::type; 8657: return noexcept((std::declval<_Up>().*std::declval<_Fn>())( 8657: std::declval<_Args>()...)); 8657: } 8657: 8657: template 8657: constexpr bool __call_is_nt(__invoke_memfun_deref) 8657: { 8657: return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())( 8657: std::declval<_Args>()...)); 8657: } 8657: 8657: template 8657: constexpr bool __call_is_nt(__invoke_memobj_ref) 8657: { 8657: using _Up = typename __inv_unwrap<_Tp>::type; 8657: return noexcept(std::declval<_Up>().*std::declval<_Fn>()); 8657: } 8657: 8657: template 8657: constexpr bool __call_is_nt(__invoke_memobj_deref) 8657: { 8657: return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>()); 8657: } 8657: 8657: template 8657: constexpr bool __call_is_nt(__invoke_other) 8657: { 8657: return noexcept(std::declval<_Fn>()(std::declval<_Args>()...)); 8657: } 8657: 8657: template 8657: struct __call_is_nothrow 8657: : __bool_constant< 8657: std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{}) 8657: > 8657: { }; 8657: 8657: template 8657: using __call_is_nothrow_ 8657: = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>; 8657: 8657: 8657: template 8657: struct __is_nothrow_invocable 8657: : __and_<__is_invocable<_Fn, _Args...>, 8657: __call_is_nothrow_<_Fn, _Args...>>::type 8657: { }; 8657: 8657: struct __nonesuch { 8657: __nonesuch() = delete; 8657: ~__nonesuch() = delete; 8657: __nonesuch(__nonesuch const&) = delete; 8657: void operator=(__nonesuch const&) = delete; 8657: }; 8657: # 2943 "/usr/include/c++/8/type_traits" 3 8657: 8657: } 8657: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8657: # 1 "/usr/include/c++/8/cstddef" 1 3 4 8657: # 42 "/usr/include/c++/8/cstddef" 3 4 8657: 8657: # 43 "/usr/include/c++/8/cstddef" 3 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8657: # 149 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 3 4 8657: typedef int ptrdiff_t; 8657: # 216 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 3 4 8657: typedef unsigned int size_t; 8657: # 426 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 3 4 8657: typedef struct { 8657: long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); 8657: long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); 8657: # 437 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 3 4 8657: } max_align_t; 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef decltype(nullptr) nullptr_t; 8657: # 51 "/usr/include/c++/8/cstddef" 2 3 8657: 8657: 8657: namespace std 8657: { 8657: 8657: using ::max_align_t; 8657: } 8657: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8657: # 1 "/usr/include/c++/8/utility" 1 3 4 8657: # 58 "/usr/include/c++/8/utility" 3 4 8657: 8657: # 59 "/usr/include/c++/8/utility" 3 8657: # 69 "/usr/include/c++/8/utility" 3 8657: # 1 "/usr/include/c++/8/bits/stl_relops.h" 1 3 8657: # 67 "/usr/include/c++/8/bits/stl_relops.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: namespace rel_ops 8657: { 8657: # 85 "/usr/include/c++/8/bits/stl_relops.h" 3 8657: template 8657: inline bool 8657: operator!=(const _Tp& __x, const _Tp& __y) 8657: { return !(__x == __y); } 8657: # 98 "/usr/include/c++/8/bits/stl_relops.h" 3 8657: template 8657: inline bool 8657: operator>(const _Tp& __x, const _Tp& __y) 8657: { return __y < __x; } 8657: # 111 "/usr/include/c++/8/bits/stl_relops.h" 3 8657: template 8657: inline bool 8657: operator<=(const _Tp& __x, const _Tp& __y) 8657: { return !(__y < __x); } 8657: # 124 "/usr/include/c++/8/bits/stl_relops.h" 3 8657: template 8657: inline bool 8657: operator>=(const _Tp& __x, const _Tp& __y) 8657: { return !(__x < __y); } 8657: } 8657: 8657: 8657: } 8657: # 70 "/usr/include/c++/8/utility" 2 3 8657: # 1 "/usr/include/c++/8/bits/stl_pair.h" 1 3 8657: # 59 "/usr/include/c++/8/bits/stl_pair.h" 3 8657: # 1 "/usr/include/c++/8/bits/move.h" 1 3 8657: # 34 "/usr/include/c++/8/bits/move.h" 3 8657: # 1 "/usr/include/c++/8/bits/concept_check.h" 1 3 8657: # 33 "/usr/include/c++/8/bits/concept_check.h" 3 8657: 8657: # 34 "/usr/include/c++/8/bits/concept_check.h" 3 8657: # 35 "/usr/include/c++/8/bits/move.h" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline constexpr _Tp* 8657: __addressof(_Tp& __r) noexcept 8657: { return __builtin_addressof(__r); } 8657: 8657: 8657: 8657: 8657: } 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 72 "/usr/include/c++/8/bits/move.h" 3 8657: template 8657: constexpr _Tp&& 8657: forward(typename std::remove_reference<_Tp>::type& __t) noexcept 8657: { return static_cast<_Tp&&>(__t); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: constexpr _Tp&& 8657: forward(typename std::remove_reference<_Tp>::type&& __t) noexcept 8657: { 8657: static_assert(!std::is_lvalue_reference<_Tp>::value, "template argument" 8657: " substituting _Tp is an lvalue reference type"); 8657: return static_cast<_Tp&&>(__t); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: constexpr typename std::remove_reference<_Tp>::type&& 8657: move(_Tp&& __t) noexcept 8657: { return static_cast::type&&>(__t); } 8657: 8657: 8657: template 8657: struct __move_if_noexcept_cond 8657: : public __and_<__not_>, 8657: is_copy_constructible<_Tp>>::type { }; 8657: # 116 "/usr/include/c++/8/bits/move.h" 3 8657: template 8657: constexpr typename 8657: conditional<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&>::type 8657: move_if_noexcept(_Tp& __x) noexcept 8657: { return std::move(__x); } 8657: # 136 "/usr/include/c++/8/bits/move.h" 3 8657: template 8657: inline _Tp* 8657: addressof(_Tp& __r) noexcept 8657: { return std::__addressof(__r); } 8657: 8657: 8657: 8657: template 8657: const _Tp* addressof(const _Tp&&) = delete; 8657: 8657: 8657: template 8657: inline _Tp 8657: __exchange(_Tp& __obj, _Up&& __new_val) 8657: { 8657: _Tp __old_val = std::move(__obj); 8657: __obj = std::forward<_Up>(__new_val); 8657: return __old_val; 8657: } 8657: # 176 "/usr/include/c++/8/bits/move.h" 3 8657: template 8657: inline 8657: 8657: typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, 8657: is_move_constructible<_Tp>, 8657: is_move_assignable<_Tp>>::value>::type 8657: swap(_Tp& __a, _Tp& __b) 8657: noexcept(__and_, 8657: is_nothrow_move_assignable<_Tp>>::value) 8657: 8657: 8657: 8657: 8657: { 8657: 8657: 8657: 8657: _Tp __tmp = std::move(__a); 8657: __a = std::move(__b); 8657: __b = std::move(__tmp); 8657: } 8657: 8657: 8657: 8657: 8657: template 8657: inline 8657: 8657: typename enable_if<__is_swappable<_Tp>::value>::type 8657: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 8657: noexcept(__is_nothrow_swappable<_Tp>::value) 8657: 8657: 8657: 8657: 8657: { 8657: for (size_t __n = 0; __n < _Nm; ++__n) 8657: swap(__a[__n], __b[__n]); 8657: } 8657: 8657: 8657: 8657: } 8657: # 60 "/usr/include/c++/8/bits/stl_pair.h" 2 3 8657: 8657: 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 76 "/usr/include/c++/8/bits/stl_pair.h" 3 8657: struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; 8657: 8657: 8657: constexpr piecewise_construct_t piecewise_construct = 8657: piecewise_construct_t(); 8657: 8657: 8657: template 8657: class tuple; 8657: 8657: template 8657: struct _Index_tuple; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct _PCC 8657: { 8657: template 8657: static constexpr bool _ConstructiblePair() 8657: { 8657: return __and_, 8657: is_constructible<_T2, const _U2&>>::value; 8657: } 8657: 8657: template 8657: static constexpr bool _ImplicitlyConvertiblePair() 8657: { 8657: return __and_, 8657: is_convertible>::value; 8657: } 8657: 8657: template 8657: static constexpr bool _MoveConstructiblePair() 8657: { 8657: return __and_, 8657: is_constructible<_T2, _U2&&>>::value; 8657: } 8657: 8657: template 8657: static constexpr bool _ImplicitlyMoveConvertiblePair() 8657: { 8657: return __and_, 8657: is_convertible<_U2&&, _T2>>::value; 8657: } 8657: 8657: template 8657: static constexpr bool _CopyMovePair() 8657: { 8657: using __do_converts = __and_, 8657: is_convertible<_U2&&, _T2>>; 8657: using __converts = typename conditional<__implicit, 8657: __do_converts, 8657: __not_<__do_converts>>::type; 8657: return __and_, 8657: is_constructible<_T2, _U2&&>, 8657: __converts 8657: >::value; 8657: } 8657: 8657: template 8657: static constexpr bool _MoveCopyPair() 8657: { 8657: using __do_converts = __and_, 8657: is_convertible>; 8657: using __converts = typename conditional<__implicit, 8657: __do_converts, 8657: __not_<__do_converts>>::type; 8657: return __and_, 8657: is_constructible<_T2, const _U2&&>, 8657: __converts 8657: >::value; 8657: } 8657: }; 8657: 8657: template 8657: struct _PCC 8657: { 8657: template 8657: static constexpr bool _ConstructiblePair() 8657: { 8657: return false; 8657: } 8657: 8657: template 8657: static constexpr bool _ImplicitlyConvertiblePair() 8657: { 8657: return false; 8657: } 8657: 8657: template 8657: static constexpr bool _MoveConstructiblePair() 8657: { 8657: return false; 8657: } 8657: 8657: template 8657: static constexpr bool _ImplicitlyMoveConvertiblePair() 8657: { 8657: return false; 8657: } 8657: }; 8657: 8657: 8657: 8657: 8657: struct __nonesuch_no_braces : std::__nonesuch { 8657: explicit __nonesuch_no_braces(const __nonesuch&) = delete; 8657: }; 8657: # 197 "/usr/include/c++/8/bits/stl_pair.h" 3 8657: template 8657: struct pair 8657: { 8657: typedef _T1 first_type; 8657: typedef _T2 second_type; 8657: 8657: _T1 first; 8657: _T2 second; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template , 8657: __is_implicitly_default_constructible<_U2>> 8657: ::value, bool>::type = true> 8657: 8657: constexpr pair() 8657: : first(), second() { } 8657: 8657: 8657: template , 8657: is_default_constructible<_U2>, 8657: __not_< 8657: __and_<__is_implicitly_default_constructible<_U1>, 8657: __is_implicitly_default_constructible<_U2>>>> 8657: ::value, bool>::type = false> 8657: explicit constexpr pair() 8657: : first(), second() { } 8657: # 241 "/usr/include/c++/8/bits/stl_pair.h" 3 8657: using _PCCP = _PCC; 8657: 8657: template() 8657: && _PCCP::template 8657: _ImplicitlyConvertiblePair<_U1, _U2>(), 8657: bool>::type=true> 8657: constexpr pair(const _T1& __a, const _T2& __b) 8657: : first(__a), second(__b) { } 8657: 8657: template() 8657: && !_PCCP::template 8657: _ImplicitlyConvertiblePair<_U1, _U2>(), 8657: bool>::type=false> 8657: explicit constexpr pair(const _T1& __a, const _T2& __b) 8657: : first(__a), second(__b) { } 8657: # 269 "/usr/include/c++/8/bits/stl_pair.h" 3 8657: template 8657: using _PCCFP = _PCC::value 8657: || !is_same<_T2, _U2>::value, 8657: _T1, _T2>; 8657: 8657: template::template 8657: _ConstructiblePair<_U1, _U2>() 8657: && _PCCFP<_U1, _U2>::template 8657: _ImplicitlyConvertiblePair<_U1, _U2>(), 8657: bool>::type=true> 8657: constexpr pair(const pair<_U1, _U2>& __p) 8657: : first(__p.first), second(__p.second) { } 8657: 8657: template::template 8657: _ConstructiblePair<_U1, _U2>() 8657: && !_PCCFP<_U1, _U2>::template 8657: _ImplicitlyConvertiblePair<_U1, _U2>(), 8657: bool>::type=false> 8657: explicit constexpr pair(const pair<_U1, _U2>& __p) 8657: : first(__p.first), second(__p.second) { } 8657: 8657: constexpr pair(const pair&) = default; 8657: constexpr pair(pair&&) = default; 8657: 8657: 8657: template(), 8657: bool>::type=true> 8657: constexpr pair(_U1&& __x, const _T2& __y) 8657: : first(std::forward<_U1>(__x)), second(__y) { } 8657: 8657: template(), 8657: bool>::type=false> 8657: explicit constexpr pair(_U1&& __x, const _T2& __y) 8657: : first(std::forward<_U1>(__x)), second(__y) { } 8657: 8657: template(), 8657: bool>::type=true> 8657: constexpr pair(const _T1& __x, _U2&& __y) 8657: : first(__x), second(std::forward<_U2>(__y)) { } 8657: 8657: template(), 8657: bool>::type=false> 8657: explicit pair(const _T1& __x, _U2&& __y) 8657: : first(__x), second(std::forward<_U2>(__y)) { } 8657: 8657: template() 8657: && _PCCP::template 8657: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8657: bool>::type=true> 8657: constexpr pair(_U1&& __x, _U2&& __y) 8657: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } 8657: 8657: template() 8657: && !_PCCP::template 8657: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8657: bool>::type=false> 8657: explicit constexpr pair(_U1&& __x, _U2&& __y) 8657: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } 8657: 8657: 8657: template::template 8657: _MoveConstructiblePair<_U1, _U2>() 8657: && _PCCFP<_U1, _U2>::template 8657: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8657: bool>::type=true> 8657: constexpr pair(pair<_U1, _U2>&& __p) 8657: : first(std::forward<_U1>(__p.first)), 8657: second(std::forward<_U2>(__p.second)) { } 8657: 8657: template::template 8657: _MoveConstructiblePair<_U1, _U2>() 8657: && !_PCCFP<_U1, _U2>::template 8657: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8657: bool>::type=false> 8657: explicit constexpr pair(pair<_U1, _U2>&& __p) 8657: : first(std::forward<_U1>(__p.first)), 8657: second(std::forward<_U2>(__p.second)) { } 8657: 8657: template 8657: pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); 8657: 8657: pair& 8657: operator=(typename conditional< 8657: __and_, 8657: is_copy_assignable<_T2>>::value, 8657: const pair&, const __nonesuch_no_braces&>::type __p) 8657: { 8657: first = __p.first; 8657: second = __p.second; 8657: return *this; 8657: } 8657: 8657: pair& 8657: operator=(typename conditional< 8657: __not_<__and_, 8657: is_copy_assignable<_T2>>>::value, 8657: const pair&, const __nonesuch_no_braces&>::type __p) = delete; 8657: 8657: pair& 8657: operator=(typename conditional< 8657: __and_, 8657: is_move_assignable<_T2>>::value, 8657: pair&&, __nonesuch_no_braces&&>::type __p) 8657: noexcept(__and_, 8657: is_nothrow_move_assignable<_T2>>::value) 8657: { 8657: first = std::forward(__p.first); 8657: second = std::forward(__p.second); 8657: return *this; 8657: } 8657: 8657: template 8657: typename enable_if<__and_, 8657: is_assignable<_T2&, const _U2&>>::value, 8657: pair&>::type 8657: operator=(const pair<_U1, _U2>& __p) 8657: { 8657: first = __p.first; 8657: second = __p.second; 8657: return *this; 8657: } 8657: 8657: template 8657: typename enable_if<__and_, 8657: is_assignable<_T2&, _U2&&>>::value, 8657: pair&>::type 8657: operator=(pair<_U1, _U2>&& __p) 8657: { 8657: first = std::forward<_U1>(__p.first); 8657: second = std::forward<_U2>(__p.second); 8657: return *this; 8657: } 8657: 8657: void 8657: swap(pair& __p) 8657: noexcept(__and_<__is_nothrow_swappable<_T1>, 8657: __is_nothrow_swappable<_T2>>::value) 8657: { 8657: using std::swap; 8657: swap(first, __p.first); 8657: swap(second, __p.second); 8657: } 8657: 8657: private: 8657: template 8657: pair(tuple<_Args1...>&, tuple<_Args2...>&, 8657: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); 8657: 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline constexpr bool 8657: operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8657: { return __x.first == __y.first && __x.second == __y.second; } 8657: 8657: 8657: template 8657: inline constexpr bool 8657: operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8657: { return __x.first < __y.first 8657: || (!(__y.first < __x.first) && __x.second < __y.second); } 8657: 8657: 8657: template 8657: inline constexpr bool 8657: operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8657: { return !(__x == __y); } 8657: 8657: 8657: template 8657: inline constexpr bool 8657: operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8657: { return __y < __x; } 8657: 8657: 8657: template 8657: inline constexpr bool 8657: operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8657: { return !(__y < __x); } 8657: 8657: 8657: template 8657: inline constexpr bool 8657: operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8657: { return !(__x < __y); } 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline 8657: 8657: 8657: typename enable_if<__and_<__is_swappable<_T1>, 8657: __is_swappable<_T2>>::value>::type 8657: 8657: 8657: 8657: swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) 8657: noexcept(noexcept(__x.swap(__y))) 8657: { __x.swap(__y); } 8657: 8657: 8657: template 8657: typename enable_if, 8657: __is_swappable<_T2>>::value>::type 8657: swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; 8657: # 516 "/usr/include/c++/8/bits/stl_pair.h" 3 8657: template 8657: constexpr pair::__type, 8657: typename __decay_and_strip<_T2>::__type> 8657: make_pair(_T1&& __x, _T2&& __y) 8657: { 8657: typedef typename __decay_and_strip<_T1>::__type __ds_type1; 8657: typedef typename __decay_and_strip<_T2>::__type __ds_type2; 8657: typedef pair<__ds_type1, __ds_type2> __pair_type; 8657: return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); 8657: } 8657: # 535 "/usr/include/c++/8/bits/stl_pair.h" 3 8657: 8657: } 8657: # 71 "/usr/include/c++/8/utility" 2 3 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/initializer_list" 1 3 8657: # 33 "/usr/include/c++/8/initializer_list" 3 8657: 8657: # 34 "/usr/include/c++/8/initializer_list" 3 8657: 8657: 8657: 8657: 8657: 8657: #pragma GCC visibility push(default) 8657: 8657: 8657: 8657: namespace std 8657: { 8657: 8657: template 8657: class initializer_list 8657: { 8657: public: 8657: typedef _E value_type; 8657: typedef const _E& reference; 8657: typedef const _E& const_reference; 8657: typedef size_t size_type; 8657: typedef const _E* iterator; 8657: typedef const _E* const_iterator; 8657: 8657: private: 8657: iterator _M_array; 8657: size_type _M_len; 8657: 8657: 8657: constexpr initializer_list(const_iterator __a, size_type __l) 8657: : _M_array(__a), _M_len(__l) { } 8657: 8657: public: 8657: constexpr initializer_list() noexcept 8657: : _M_array(0), _M_len(0) { } 8657: 8657: 8657: constexpr size_type 8657: size() const noexcept { return _M_len; } 8657: 8657: 8657: constexpr const_iterator 8657: begin() const noexcept { return _M_array; } 8657: 8657: 8657: constexpr const_iterator 8657: end() const noexcept { return begin() + size(); } 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: constexpr const _Tp* 8657: begin(initializer_list<_Tp> __ils) noexcept 8657: { return __ils.begin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: constexpr const _Tp* 8657: end(initializer_list<_Tp> __ils) noexcept 8657: { return __ils.end(); } 8657: } 8657: 8657: #pragma GCC visibility pop 8657: # 77 "/usr/include/c++/8/utility" 2 3 8657: 8657: 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: template 8657: struct tuple_size; 8657: 8657: 8657: 8657: 8657: 8657: template::type, 8657: typename = typename enable_if::value>::type, 8657: size_t = tuple_size<_Tp>::value> 8657: using __enable_if_has_tuple_size = _Tp; 8657: 8657: template 8657: struct tuple_size> 8657: : public tuple_size<_Tp> { }; 8657: 8657: template 8657: struct tuple_size> 8657: : public tuple_size<_Tp> { }; 8657: 8657: template 8657: struct tuple_size> 8657: : public tuple_size<_Tp> { }; 8657: 8657: 8657: template 8657: struct tuple_element; 8657: 8657: 8657: template 8657: using __tuple_element_t = typename tuple_element<__i, _Tp>::type; 8657: 8657: template 8657: struct tuple_element<__i, const _Tp> 8657: { 8657: typedef typename add_const<__tuple_element_t<__i, _Tp>>::type type; 8657: }; 8657: 8657: template 8657: struct tuple_element<__i, volatile _Tp> 8657: { 8657: typedef typename add_volatile<__tuple_element_t<__i, _Tp>>::type type; 8657: }; 8657: 8657: template 8657: struct tuple_element<__i, const volatile _Tp> 8657: { 8657: typedef typename add_cv<__tuple_element_t<__i, _Tp>>::type type; 8657: }; 8657: # 148 "/usr/include/c++/8/utility" 3 8657: template 8657: struct __is_tuple_like_impl> : true_type 8657: { }; 8657: 8657: 8657: template 8657: struct tuple_size> 8657: : public integral_constant { }; 8657: 8657: 8657: template 8657: struct tuple_element<0, std::pair<_Tp1, _Tp2>> 8657: { typedef _Tp1 type; }; 8657: 8657: 8657: template 8657: struct tuple_element<1, std::pair<_Tp1, _Tp2>> 8657: { typedef _Tp2 type; }; 8657: 8657: template 8657: struct __pair_get; 8657: 8657: template<> 8657: struct __pair_get<0> 8657: { 8657: template 8657: static constexpr _Tp1& 8657: __get(std::pair<_Tp1, _Tp2>& __pair) noexcept 8657: { return __pair.first; } 8657: 8657: template 8657: static constexpr _Tp1&& 8657: __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept 8657: { return std::forward<_Tp1>(__pair.first); } 8657: 8657: template 8657: static constexpr const _Tp1& 8657: __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept 8657: { return __pair.first; } 8657: 8657: template 8657: static constexpr const _Tp1&& 8657: __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept 8657: { return std::forward(__pair.first); } 8657: }; 8657: 8657: template<> 8657: struct __pair_get<1> 8657: { 8657: template 8657: static constexpr _Tp2& 8657: __get(std::pair<_Tp1, _Tp2>& __pair) noexcept 8657: { return __pair.second; } 8657: 8657: template 8657: static constexpr _Tp2&& 8657: __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept 8657: { return std::forward<_Tp2>(__pair.second); } 8657: 8657: template 8657: static constexpr const _Tp2& 8657: __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept 8657: { return __pair.second; } 8657: 8657: template 8657: static constexpr const _Tp2&& 8657: __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept 8657: { return std::forward(__pair.second); } 8657: }; 8657: 8657: template 8657: constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& 8657: get(std::pair<_Tp1, _Tp2>& __in) noexcept 8657: { return __pair_get<_Int>::__get(__in); } 8657: 8657: template 8657: constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& 8657: get(std::pair<_Tp1, _Tp2>&& __in) noexcept 8657: { return __pair_get<_Int>::__move_get(std::move(__in)); } 8657: 8657: template 8657: constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& 8657: get(const std::pair<_Tp1, _Tp2>& __in) noexcept 8657: { return __pair_get<_Int>::__const_get(__in); } 8657: 8657: template 8657: constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& 8657: get(const std::pair<_Tp1, _Tp2>&& __in) noexcept 8657: { return __pair_get<_Int>::__const_move_get(std::move(__in)); } 8657: # 293 "/usr/include/c++/8/utility" 3 8657: template struct _Index_tuple { }; 8657: # 302 "/usr/include/c++/8/utility" 3 8657: template 8657: struct _Build_index_tuple 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: using __type = _Index_tuple<__integer_pack(_Num)...>; 8657: 8657: }; 8657: # 397 "/usr/include/c++/8/utility" 3 8657: 8657: } 8657: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8657: 8657: 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8657: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8657: # 64 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qconfig.h" 1 3 4 8657: # 65 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtcore-config.h" 1 3 4 8657: # 66 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8657: # 96 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsystemdetection.h" 1 3 4 8657: # 97 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qprocessordetection.h" 1 3 4 8657: # 98 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcompilerdetection.h" 1 3 4 8657: # 99 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8657: # 109 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: # 1 "/usr/include/c++/8/algorithm" 1 3 4 8657: # 58 "/usr/include/c++/8/algorithm" 3 4 8657: 8657: # 59 "/usr/include/c++/8/algorithm" 3 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/stl_algobase.h" 1 3 8657: # 60 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: # 1 "/usr/include/c++/8/bits/functexcept.h" 1 3 8657: # 40 "/usr/include/c++/8/bits/functexcept.h" 3 8657: # 1 "/usr/include/c++/8/bits/exception_defines.h" 1 3 8657: # 41 "/usr/include/c++/8/bits/functexcept.h" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: void 8657: __throw_bad_exception(void) __attribute__((__noreturn__)); 8657: 8657: 8657: void 8657: __throw_bad_alloc(void) __attribute__((__noreturn__)); 8657: 8657: 8657: void 8657: __throw_bad_cast(void) __attribute__((__noreturn__)); 8657: 8657: void 8657: __throw_bad_typeid(void) __attribute__((__noreturn__)); 8657: 8657: 8657: void 8657: __throw_logic_error(const char*) __attribute__((__noreturn__)); 8657: 8657: void 8657: __throw_domain_error(const char*) __attribute__((__noreturn__)); 8657: 8657: void 8657: __throw_invalid_argument(const char*) __attribute__((__noreturn__)); 8657: 8657: void 8657: __throw_length_error(const char*) __attribute__((__noreturn__)); 8657: 8657: void 8657: __throw_out_of_range(const char*) __attribute__((__noreturn__)); 8657: 8657: void 8657: __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__)) 8657: __attribute__((__format__(__gnu_printf__, 1, 2))); 8657: 8657: void 8657: __throw_runtime_error(const char*) __attribute__((__noreturn__)); 8657: 8657: void 8657: __throw_range_error(const char*) __attribute__((__noreturn__)); 8657: 8657: void 8657: __throw_overflow_error(const char*) __attribute__((__noreturn__)); 8657: 8657: void 8657: __throw_underflow_error(const char*) __attribute__((__noreturn__)); 8657: 8657: 8657: void 8657: __throw_ios_failure(const char*) __attribute__((__noreturn__)); 8657: 8657: void 8657: __throw_system_error(int) __attribute__((__noreturn__)); 8657: 8657: void 8657: __throw_future_error(int) __attribute__((__noreturn__)); 8657: 8657: 8657: void 8657: __throw_bad_function_call() __attribute__((__noreturn__)); 8657: 8657: 8657: } 8657: # 61 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8657: # 1 "/usr/include/c++/8/bits/cpp_type_traits.h" 1 3 8657: # 35 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8657: 8657: # 36 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8657: # 67 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8657: extern "C++" { 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: struct __true_type { }; 8657: struct __false_type { }; 8657: 8657: template 8657: struct __truth_type 8657: { typedef __false_type __type; }; 8657: 8657: template<> 8657: struct __truth_type 8657: { typedef __true_type __type; }; 8657: 8657: 8657: 8657: template 8657: struct __traitor 8657: { 8657: enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; 8657: typedef typename __truth_type<__value>::__type __type; 8657: }; 8657: 8657: 8657: template 8657: struct __are_same 8657: { 8657: enum { __value = 0 }; 8657: typedef __false_type __type; 8657: }; 8657: 8657: template 8657: struct __are_same<_Tp, _Tp> 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: 8657: template 8657: struct __is_void 8657: { 8657: enum { __value = 0 }; 8657: typedef __false_type __type; 8657: }; 8657: 8657: template<> 8657: struct __is_void 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: struct __is_integer 8657: { 8657: enum { __value = 0 }; 8657: typedef __false_type __type; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: template<> 8657: struct __is_integer 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: template<> 8657: struct __is_integer 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: template<> 8657: struct __is_integer 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: template<> 8657: struct __is_integer 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: 8657: template<> 8657: struct __is_integer 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: 8657: 8657: template<> 8657: struct __is_integer 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: template<> 8657: struct __is_integer 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: 8657: template<> 8657: struct __is_integer 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: template<> 8657: struct __is_integer 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: template<> 8657: struct __is_integer 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: template<> 8657: struct __is_integer 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: template<> 8657: struct __is_integer 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: template<> 8657: struct __is_integer 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: template<> 8657: struct __is_integer 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: template<> 8657: struct __is_integer 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: # 278 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8657: template 8657: struct __is_floating 8657: { 8657: enum { __value = 0 }; 8657: typedef __false_type __type; 8657: }; 8657: 8657: 8657: template<> 8657: struct __is_floating 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: template<> 8657: struct __is_floating 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: template<> 8657: struct __is_floating 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: struct __is_pointer 8657: { 8657: enum { __value = 0 }; 8657: typedef __false_type __type; 8657: }; 8657: 8657: template 8657: struct __is_pointer<_Tp*> 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: struct __is_arithmetic 8657: : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > 8657: { }; 8657: 8657: 8657: 8657: 8657: template 8657: struct __is_scalar 8657: : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > 8657: { }; 8657: 8657: 8657: 8657: 8657: template 8657: struct __is_char 8657: { 8657: enum { __value = 0 }; 8657: typedef __false_type __type; 8657: }; 8657: 8657: template<> 8657: struct __is_char 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: 8657: template<> 8657: struct __is_char 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: 8657: template 8657: struct __is_byte 8657: { 8657: enum { __value = 0 }; 8657: typedef __false_type __type; 8657: }; 8657: 8657: template<> 8657: struct __is_byte 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: template<> 8657: struct __is_byte 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: template<> 8657: struct __is_byte 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: struct __is_move_iterator 8657: { 8657: enum { __value = 0 }; 8657: typedef __false_type __type; 8657: }; 8657: 8657: 8657: 8657: template 8657: inline _Iterator 8657: __miter_base(_Iterator __it) 8657: { return __it; } 8657: 8657: 8657: } 8657: } 8657: # 62 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8657: # 1 "/usr/include/c++/8/ext/type_traits.h" 1 3 8657: # 32 "/usr/include/c++/8/ext/type_traits.h" 3 8657: 8657: # 33 "/usr/include/c++/8/ext/type_traits.h" 3 8657: 8657: 8657: 8657: 8657: extern "C++" { 8657: 8657: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: template 8657: struct __enable_if 8657: { }; 8657: 8657: template 8657: struct __enable_if 8657: { typedef _Tp __type; }; 8657: 8657: 8657: 8657: template 8657: struct __conditional_type 8657: { typedef _Iftrue __type; }; 8657: 8657: template 8657: struct __conditional_type 8657: { typedef _Iffalse __type; }; 8657: 8657: 8657: 8657: template 8657: struct __add_unsigned 8657: { 8657: private: 8657: typedef __enable_if::__value, _Tp> __if_type; 8657: 8657: public: 8657: typedef typename __if_type::__type __type; 8657: }; 8657: 8657: template<> 8657: struct __add_unsigned 8657: { typedef unsigned char __type; }; 8657: 8657: template<> 8657: struct __add_unsigned 8657: { typedef unsigned char __type; }; 8657: 8657: template<> 8657: struct __add_unsigned 8657: { typedef unsigned short __type; }; 8657: 8657: template<> 8657: struct __add_unsigned 8657: { typedef unsigned int __type; }; 8657: 8657: template<> 8657: struct __add_unsigned 8657: { typedef unsigned long __type; }; 8657: 8657: template<> 8657: struct __add_unsigned 8657: { typedef unsigned long long __type; }; 8657: 8657: 8657: template<> 8657: struct __add_unsigned; 8657: 8657: template<> 8657: struct __add_unsigned; 8657: 8657: 8657: 8657: template 8657: struct __remove_unsigned 8657: { 8657: private: 8657: typedef __enable_if::__value, _Tp> __if_type; 8657: 8657: public: 8657: typedef typename __if_type::__type __type; 8657: }; 8657: 8657: template<> 8657: struct __remove_unsigned 8657: { typedef signed char __type; }; 8657: 8657: template<> 8657: struct __remove_unsigned 8657: { typedef signed char __type; }; 8657: 8657: template<> 8657: struct __remove_unsigned 8657: { typedef short __type; }; 8657: 8657: template<> 8657: struct __remove_unsigned 8657: { typedef int __type; }; 8657: 8657: template<> 8657: struct __remove_unsigned 8657: { typedef long __type; }; 8657: 8657: template<> 8657: struct __remove_unsigned 8657: { typedef long long __type; }; 8657: 8657: 8657: template<> 8657: struct __remove_unsigned; 8657: 8657: template<> 8657: struct __remove_unsigned; 8657: 8657: 8657: 8657: template 8657: inline bool 8657: __is_null_pointer(_Type* __ptr) 8657: { return __ptr == 0; } 8657: 8657: template 8657: inline bool 8657: __is_null_pointer(_Type) 8657: { return false; } 8657: 8657: 8657: inline bool 8657: __is_null_pointer(std::nullptr_t) 8657: { return true; } 8657: 8657: 8657: 8657: template::__value> 8657: struct __promote 8657: { typedef double __type; }; 8657: 8657: 8657: 8657: 8657: template 8657: struct __promote<_Tp, false> 8657: { }; 8657: 8657: template<> 8657: struct __promote 8657: { typedef long double __type; }; 8657: 8657: template<> 8657: struct __promote 8657: { typedef double __type; }; 8657: 8657: template<> 8657: struct __promote 8657: { typedef float __type; }; 8657: 8657: template::__type, 8657: typename _Up2 = typename __promote<_Up>::__type> 8657: struct __promote_2 8657: { 8657: typedef __typeof__(_Tp2() + _Up2()) __type; 8657: }; 8657: 8657: template::__type, 8657: typename _Up2 = typename __promote<_Up>::__type, 8657: typename _Vp2 = typename __promote<_Vp>::__type> 8657: struct __promote_3 8657: { 8657: typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type; 8657: }; 8657: 8657: template::__type, 8657: typename _Up2 = typename __promote<_Up>::__type, 8657: typename _Vp2 = typename __promote<_Vp>::__type, 8657: typename _Wp2 = typename __promote<_Wp>::__type> 8657: struct __promote_4 8657: { 8657: typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type; 8657: }; 8657: 8657: 8657: } 8657: } 8657: # 63 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8657: # 1 "/usr/include/c++/8/ext/numeric_traits.h" 1 3 8657: # 32 "/usr/include/c++/8/ext/numeric_traits.h" 3 8657: 8657: # 33 "/usr/include/c++/8/ext/numeric_traits.h" 3 8657: 8657: 8657: 8657: 8657: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 54 "/usr/include/c++/8/ext/numeric_traits.h" 3 8657: template 8657: struct __numeric_traits_integer 8657: { 8657: 8657: static const _Value __min = (((_Value)(-1) < 0) ? (_Value)1 << (sizeof(_Value) * 8 - ((_Value)(-1) < 0)) : (_Value)0); 8657: static const _Value __max = (((_Value)(-1) < 0) ? (((((_Value)1 << ((sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0); 8657: 8657: 8657: 8657: static const bool __is_signed = ((_Value)(-1) < 0); 8657: static const int __digits = (sizeof(_Value) * 8 - ((_Value)(-1) < 0)); 8657: }; 8657: 8657: template 8657: const _Value __numeric_traits_integer<_Value>::__min; 8657: 8657: template 8657: const _Value __numeric_traits_integer<_Value>::__max; 8657: 8657: template 8657: const bool __numeric_traits_integer<_Value>::__is_signed; 8657: 8657: template 8657: const int __numeric_traits_integer<_Value>::__digits; 8657: # 99 "/usr/include/c++/8/ext/numeric_traits.h" 3 8657: template 8657: struct __numeric_traits_floating 8657: { 8657: 8657: static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 53) * 643L / 2136); 8657: 8657: 8657: static const bool __is_signed = true; 8657: static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 15); 8657: static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 308); 8657: }; 8657: 8657: template 8657: const int __numeric_traits_floating<_Value>::__max_digits10; 8657: 8657: template 8657: const bool __numeric_traits_floating<_Value>::__is_signed; 8657: 8657: template 8657: const int __numeric_traits_floating<_Value>::__digits10; 8657: 8657: template 8657: const int __numeric_traits_floating<_Value>::__max_exponent10; 8657: 8657: template 8657: struct __numeric_traits 8657: : public __conditional_type::__value, 8657: __numeric_traits_integer<_Value>, 8657: __numeric_traits_floating<_Value> >::__type 8657: { }; 8657: 8657: 8657: } 8657: # 64 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8657: 8657: # 1 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 1 3 8657: # 62 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8657: 8657: # 63 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 89 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8657: struct input_iterator_tag { }; 8657: 8657: 8657: struct output_iterator_tag { }; 8657: 8657: 8657: struct forward_iterator_tag : public input_iterator_tag { }; 8657: 8657: 8657: 8657: struct bidirectional_iterator_tag : public forward_iterator_tag { }; 8657: 8657: 8657: 8657: struct random_access_iterator_tag : public bidirectional_iterator_tag { }; 8657: # 116 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8657: template 8657: struct iterator 8657: { 8657: 8657: typedef _Category iterator_category; 8657: 8657: typedef _Tp value_type; 8657: 8657: typedef _Distance difference_type; 8657: 8657: typedef _Pointer pointer; 8657: 8657: typedef _Reference reference; 8657: }; 8657: # 143 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8657: template> 8657: struct __iterator_traits { }; 8657: 8657: template 8657: struct __iterator_traits<_Iterator, 8657: __void_t> 8657: { 8657: typedef typename _Iterator::iterator_category iterator_category; 8657: typedef typename _Iterator::value_type value_type; 8657: typedef typename _Iterator::difference_type difference_type; 8657: typedef typename _Iterator::pointer pointer; 8657: typedef typename _Iterator::reference reference; 8657: }; 8657: 8657: template 8657: struct iterator_traits 8657: : public __iterator_traits<_Iterator> { }; 8657: # 177 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8657: template 8657: struct iterator_traits<_Tp*> 8657: { 8657: typedef random_access_iterator_tag iterator_category; 8657: typedef _Tp value_type; 8657: typedef ptrdiff_t difference_type; 8657: typedef _Tp* pointer; 8657: typedef _Tp& reference; 8657: }; 8657: 8657: 8657: template 8657: struct iterator_traits 8657: { 8657: typedef random_access_iterator_tag iterator_category; 8657: typedef _Tp value_type; 8657: typedef ptrdiff_t difference_type; 8657: typedef const _Tp* pointer; 8657: typedef const _Tp& reference; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline constexpr 8657: typename iterator_traits<_Iter>::iterator_category 8657: __iterator_category(const _Iter&) 8657: { return typename iterator_traits<_Iter>::iterator_category(); } 8657: # 231 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8657: template 8657: using _RequireInputIter = typename 8657: enable_if::iterator_category, 8657: input_iterator_tag>::value>::type; 8657: 8657: 8657: 8657: } 8657: # 66 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8657: # 1 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 1 3 8657: # 62 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8657: 8657: # 63 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8657: 8657: 8657: # 1 "/usr/include/c++/8/debug/assertions.h" 1 3 8657: # 66 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: template struct _List_iterator; 8657: template struct _List_const_iterator; 8657: 8657: 8657: template 8657: inline 8657: typename iterator_traits<_InputIterator>::difference_type 8657: __distance(_InputIterator __first, _InputIterator __last, 8657: input_iterator_tag) 8657: { 8657: 8657: 8657: 8657: typename iterator_traits<_InputIterator>::difference_type __n = 0; 8657: while (__first != __last) 8657: { 8657: ++__first; 8657: ++__n; 8657: } 8657: return __n; 8657: } 8657: 8657: template 8657: inline 8657: typename iterator_traits<_RandomAccessIterator>::difference_type 8657: __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, 8657: random_access_iterator_tag) 8657: { 8657: 8657: 8657: 8657: return __last - __first; 8657: } 8657: 8657: 8657: 8657: template 8657: ptrdiff_t 8657: __distance(std::_List_iterator<_Tp>, 8657: std::_List_iterator<_Tp>, 8657: input_iterator_tag); 8657: 8657: template 8657: ptrdiff_t 8657: __distance(std::_List_const_iterator<_Tp>, 8657: std::_List_const_iterator<_Tp>, 8657: input_iterator_tag); 8657: # 135 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8657: template 8657: inline 8657: typename iterator_traits<_InputIterator>::difference_type 8657: distance(_InputIterator __first, _InputIterator __last) 8657: { 8657: 8657: return std::__distance(__first, __last, 8657: std::__iterator_category(__first)); 8657: } 8657: 8657: template 8657: inline void 8657: __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) 8657: { 8657: 8657: 8657: ; 8657: while (__n--) 8657: ++__i; 8657: } 8657: 8657: template 8657: inline void 8657: __advance(_BidirectionalIterator& __i, _Distance __n, 8657: bidirectional_iterator_tag) 8657: { 8657: 8657: 8657: 8657: if (__n > 0) 8657: while (__n--) 8657: ++__i; 8657: else 8657: while (__n++) 8657: --__i; 8657: } 8657: 8657: template 8657: inline void 8657: __advance(_RandomAccessIterator& __i, _Distance __n, 8657: random_access_iterator_tag) 8657: { 8657: 8657: 8657: 8657: if (__builtin_constant_p(__n) && __n == 1) 8657: ++__i; 8657: else if (__builtin_constant_p(__n) && __n == -1) 8657: --__i; 8657: else 8657: __i += __n; 8657: } 8657: # 200 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8657: template 8657: inline void 8657: advance(_InputIterator& __i, _Distance __n) 8657: { 8657: 8657: typename iterator_traits<_InputIterator>::difference_type __d = __n; 8657: std::__advance(__i, __d, std::__iterator_category(__i)); 8657: } 8657: 8657: 8657: 8657: template 8657: inline _InputIterator 8657: next(_InputIterator __x, typename 8657: iterator_traits<_InputIterator>::difference_type __n = 1) 8657: { 8657: 8657: 8657: std::advance(__x, __n); 8657: return __x; 8657: } 8657: 8657: template 8657: inline _BidirectionalIterator 8657: prev(_BidirectionalIterator __x, typename 8657: iterator_traits<_BidirectionalIterator>::difference_type __n = 1) 8657: { 8657: 8657: 8657: 8657: std::advance(__x, -__n); 8657: return __x; 8657: } 8657: 8657: 8657: 8657: 8657: } 8657: # 67 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8657: # 1 "/usr/include/c++/8/bits/stl_iterator.h" 1 3 8657: # 66 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: # 1 "/usr/include/c++/8/bits/ptr_traits.h" 1 3 8657: # 37 "/usr/include/c++/8/bits/ptr_traits.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: class __undefined; 8657: 8657: 8657: template 8657: struct __get_first_arg 8657: { using type = __undefined; }; 8657: 8657: template class _Template, typename _Tp, 8657: typename... _Types> 8657: struct __get_first_arg<_Template<_Tp, _Types...>> 8657: { using type = _Tp; }; 8657: 8657: template 8657: using __get_first_arg_t = typename __get_first_arg<_Tp>::type; 8657: 8657: 8657: template 8657: struct __replace_first_arg 8657: { }; 8657: 8657: template class _Template, typename _Up, 8657: typename _Tp, typename... _Types> 8657: struct __replace_first_arg<_Template<_Tp, _Types...>, _Up> 8657: { using type = _Template<_Up, _Types...>; }; 8657: 8657: template 8657: using __replace_first_arg_t = typename __replace_first_arg<_Tp, _Up>::type; 8657: 8657: template 8657: using __make_not_void 8657: = typename conditional::value, __undefined, _Tp>::type; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct pointer_traits 8657: { 8657: private: 8657: template 8657: using __element_type = typename _Tp::element_type; 8657: 8657: template 8657: using __difference_type = typename _Tp::difference_type; 8657: 8657: template 8657: struct __rebind : __replace_first_arg<_Tp, _Up> { }; 8657: 8657: template 8657: struct __rebind<_Tp, _Up, __void_t>> 8657: { using type = typename _Tp::template rebind<_Up>; }; 8657: 8657: public: 8657: 8657: using pointer = _Ptr; 8657: 8657: 8657: using element_type 8657: = __detected_or_t<__get_first_arg_t<_Ptr>, __element_type, _Ptr>; 8657: 8657: 8657: using difference_type 8657: = __detected_or_t; 8657: 8657: 8657: template 8657: using rebind = typename __rebind<_Ptr, _Up>::type; 8657: 8657: static _Ptr 8657: pointer_to(__make_not_void& __e) 8657: { return _Ptr::pointer_to(__e); } 8657: 8657: static_assert(!is_same::value, 8657: "pointer type defines element_type or is like SomePointer"); 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct pointer_traits<_Tp*> 8657: { 8657: 8657: typedef _Tp* pointer; 8657: 8657: typedef _Tp element_type; 8657: 8657: typedef ptrdiff_t difference_type; 8657: 8657: template 8657: using rebind = _Up*; 8657: 8657: 8657: 8657: 8657: 8657: 8657: static pointer 8657: pointer_to(__make_not_void& __r) noexcept 8657: { return std::addressof(__r); } 8657: }; 8657: 8657: 8657: template 8657: using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>; 8657: 8657: template 8657: constexpr _Tp* 8657: __to_address(_Tp* __ptr) noexcept 8657: { 8657: static_assert(!std::is_function<_Tp>::value, "not a function pointer"); 8657: return __ptr; 8657: } 8657: 8657: 8657: template 8657: constexpr typename std::pointer_traits<_Ptr>::element_type* 8657: __to_address(const _Ptr& __ptr) 8657: { return std::__to_address(__ptr.operator->()); } 8657: # 198 "/usr/include/c++/8/bits/ptr_traits.h" 3 8657: 8657: } 8657: # 67 "/usr/include/c++/8/bits/stl_iterator.h" 2 3 8657: 8657: 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 100 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: template 8657: class reverse_iterator 8657: : public iterator::iterator_category, 8657: typename iterator_traits<_Iterator>::value_type, 8657: typename iterator_traits<_Iterator>::difference_type, 8657: typename iterator_traits<_Iterator>::pointer, 8657: typename iterator_traits<_Iterator>::reference> 8657: { 8657: protected: 8657: _Iterator current; 8657: 8657: typedef iterator_traits<_Iterator> __traits_type; 8657: 8657: public: 8657: typedef _Iterator iterator_type; 8657: typedef typename __traits_type::difference_type difference_type; 8657: typedef typename __traits_type::pointer pointer; 8657: typedef typename __traits_type::reference reference; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator() : current() { } 8657: 8657: 8657: 8657: 8657: explicit 8657: reverse_iterator(iterator_type __x) : current(__x) { } 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator(const reverse_iterator& __x) 8657: : current(__x.current) { } 8657: 8657: 8657: 8657: 8657: 8657: template 8657: 8657: reverse_iterator(const reverse_iterator<_Iter>& __x) 8657: : current(__x.base()) { } 8657: 8657: 8657: 8657: 8657: iterator_type 8657: base() const 8657: { return current; } 8657: # 167 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: reference 8657: operator*() const 8657: { 8657: _Iterator __tmp = current; 8657: return *--__tmp; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: pointer 8657: operator->() const 8657: { return &(operator*()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator& 8657: operator++() 8657: { 8657: --current; 8657: return *this; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: operator++(int) 8657: { 8657: reverse_iterator __tmp = *this; 8657: --current; 8657: return __tmp; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator& 8657: operator--() 8657: { 8657: ++current; 8657: return *this; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: operator--(int) 8657: { 8657: reverse_iterator __tmp = *this; 8657: ++current; 8657: return __tmp; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: operator+(difference_type __n) const 8657: { return reverse_iterator(current - __n); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator& 8657: operator+=(difference_type __n) 8657: { 8657: current -= __n; 8657: return *this; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: operator-(difference_type __n) const 8657: { return reverse_iterator(current + __n); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator& 8657: operator-=(difference_type __n) 8657: { 8657: current += __n; 8657: return *this; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reference 8657: operator[](difference_type __n) const 8657: { return *(*this + __n); } 8657: }; 8657: # 297 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: template 8657: inline bool 8657: operator==(const reverse_iterator<_Iterator>& __x, 8657: const reverse_iterator<_Iterator>& __y) 8657: { return __x.base() == __y.base(); } 8657: 8657: template 8657: inline bool 8657: operator<(const reverse_iterator<_Iterator>& __x, 8657: const reverse_iterator<_Iterator>& __y) 8657: { return __y.base() < __x.base(); } 8657: 8657: template 8657: inline bool 8657: operator!=(const reverse_iterator<_Iterator>& __x, 8657: const reverse_iterator<_Iterator>& __y) 8657: { return !(__x == __y); } 8657: 8657: template 8657: inline bool 8657: operator>(const reverse_iterator<_Iterator>& __x, 8657: const reverse_iterator<_Iterator>& __y) 8657: { return __y < __x; } 8657: 8657: template 8657: inline bool 8657: operator<=(const reverse_iterator<_Iterator>& __x, 8657: const reverse_iterator<_Iterator>& __y) 8657: { return !(__y < __x); } 8657: 8657: template 8657: inline bool 8657: operator>=(const reverse_iterator<_Iterator>& __x, 8657: const reverse_iterator<_Iterator>& __y) 8657: { return !(__x < __y); } 8657: 8657: 8657: 8657: template 8657: inline bool 8657: operator==(const reverse_iterator<_IteratorL>& __x, 8657: const reverse_iterator<_IteratorR>& __y) 8657: { return __x.base() == __y.base(); } 8657: 8657: template 8657: inline bool 8657: operator<(const reverse_iterator<_IteratorL>& __x, 8657: const reverse_iterator<_IteratorR>& __y) 8657: { return __y.base() < __x.base(); } 8657: 8657: template 8657: inline bool 8657: operator!=(const reverse_iterator<_IteratorL>& __x, 8657: const reverse_iterator<_IteratorR>& __y) 8657: { return !(__x == __y); } 8657: 8657: template 8657: inline bool 8657: operator>(const reverse_iterator<_IteratorL>& __x, 8657: const reverse_iterator<_IteratorR>& __y) 8657: { return __y < __x; } 8657: 8657: template 8657: inline bool 8657: operator<=(const reverse_iterator<_IteratorL>& __x, 8657: const reverse_iterator<_IteratorR>& __y) 8657: { return !(__y < __x); } 8657: 8657: template 8657: inline bool 8657: operator>=(const reverse_iterator<_IteratorL>& __x, 8657: const reverse_iterator<_IteratorR>& __y) 8657: { return !(__x < __y); } 8657: # 387 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: template 8657: inline auto 8657: operator-(const reverse_iterator<_IteratorL>& __x, 8657: const reverse_iterator<_IteratorR>& __y) 8657: -> decltype(__y.base() - __x.base()) 8657: { return __y.base() - __x.base(); } 8657: 8657: 8657: template 8657: inline reverse_iterator<_Iterator> 8657: operator+(typename reverse_iterator<_Iterator>::difference_type __n, 8657: const reverse_iterator<_Iterator>& __x) 8657: { return reverse_iterator<_Iterator>(__x.base() - __n); } 8657: 8657: 8657: 8657: template 8657: inline reverse_iterator<_Iterator> 8657: __make_reverse_iterator(_Iterator __i) 8657: { return reverse_iterator<_Iterator>(__i); } 8657: # 422 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: template 8657: auto 8657: __niter_base(reverse_iterator<_Iterator> __it) 8657: -> decltype(__make_reverse_iterator(__niter_base(__it.base()))) 8657: { return __make_reverse_iterator(__niter_base(__it.base())); } 8657: 8657: template 8657: struct __is_move_iterator > 8657: : __is_move_iterator<_Iterator> 8657: { }; 8657: 8657: template 8657: auto 8657: __miter_base(reverse_iterator<_Iterator> __it) 8657: -> decltype(__make_reverse_iterator(__miter_base(__it.base()))) 8657: { return __make_reverse_iterator(__miter_base(__it.base())); } 8657: # 451 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: template 8657: class back_insert_iterator 8657: : public iterator 8657: { 8657: protected: 8657: _Container* container; 8657: 8657: public: 8657: 8657: typedef _Container container_type; 8657: 8657: 8657: explicit 8657: back_insert_iterator(_Container& __x) 8657: : container(std::__addressof(__x)) { } 8657: # 486 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: back_insert_iterator& 8657: operator=(const typename _Container::value_type& __value) 8657: { 8657: container->push_back(__value); 8657: return *this; 8657: } 8657: 8657: back_insert_iterator& 8657: operator=(typename _Container::value_type&& __value) 8657: { 8657: container->push_back(std::move(__value)); 8657: return *this; 8657: } 8657: 8657: 8657: 8657: back_insert_iterator& 8657: operator*() 8657: { return *this; } 8657: 8657: 8657: back_insert_iterator& 8657: operator++() 8657: { return *this; } 8657: 8657: 8657: back_insert_iterator 8657: operator++(int) 8657: { return *this; } 8657: }; 8657: # 528 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: template 8657: inline back_insert_iterator<_Container> 8657: back_inserter(_Container& __x) 8657: { return back_insert_iterator<_Container>(__x); } 8657: # 543 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: template 8657: class front_insert_iterator 8657: : public iterator 8657: { 8657: protected: 8657: _Container* container; 8657: 8657: public: 8657: 8657: typedef _Container container_type; 8657: 8657: 8657: explicit front_insert_iterator(_Container& __x) 8657: : container(std::__addressof(__x)) { } 8657: # 577 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: front_insert_iterator& 8657: operator=(const typename _Container::value_type& __value) 8657: { 8657: container->push_front(__value); 8657: return *this; 8657: } 8657: 8657: front_insert_iterator& 8657: operator=(typename _Container::value_type&& __value) 8657: { 8657: container->push_front(std::move(__value)); 8657: return *this; 8657: } 8657: 8657: 8657: 8657: front_insert_iterator& 8657: operator*() 8657: { return *this; } 8657: 8657: 8657: front_insert_iterator& 8657: operator++() 8657: { return *this; } 8657: 8657: 8657: front_insert_iterator 8657: operator++(int) 8657: { return *this; } 8657: }; 8657: # 619 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: template 8657: inline front_insert_iterator<_Container> 8657: front_inserter(_Container& __x) 8657: { return front_insert_iterator<_Container>(__x); } 8657: # 638 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: template 8657: class insert_iterator 8657: : public iterator 8657: { 8657: protected: 8657: _Container* container; 8657: typename _Container::iterator iter; 8657: 8657: public: 8657: 8657: typedef _Container container_type; 8657: 8657: 8657: 8657: 8657: 8657: insert_iterator(_Container& __x, typename _Container::iterator __i) 8657: : container(std::__addressof(__x)), iter(__i) {} 8657: # 689 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: insert_iterator& 8657: operator=(const typename _Container::value_type& __value) 8657: { 8657: iter = container->insert(iter, __value); 8657: ++iter; 8657: return *this; 8657: } 8657: 8657: insert_iterator& 8657: operator=(typename _Container::value_type&& __value) 8657: { 8657: iter = container->insert(iter, std::move(__value)); 8657: ++iter; 8657: return *this; 8657: } 8657: 8657: 8657: 8657: insert_iterator& 8657: operator*() 8657: { return *this; } 8657: 8657: 8657: insert_iterator& 8657: operator++() 8657: { return *this; } 8657: 8657: 8657: insert_iterator& 8657: operator++(int) 8657: { return *this; } 8657: }; 8657: # 734 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: template 8657: inline insert_iterator<_Container> 8657: inserter(_Container& __x, _Iterator __i) 8657: { 8657: return insert_iterator<_Container>(__x, 8657: typename _Container::iterator(__i)); 8657: } 8657: 8657: 8657: 8657: 8657: } 8657: 8657: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 758 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: using std::iterator_traits; 8657: using std::iterator; 8657: template 8657: class __normal_iterator 8657: { 8657: protected: 8657: _Iterator _M_current; 8657: 8657: typedef iterator_traits<_Iterator> __traits_type; 8657: 8657: public: 8657: typedef _Iterator iterator_type; 8657: typedef typename __traits_type::iterator_category iterator_category; 8657: typedef typename __traits_type::value_type value_type; 8657: typedef typename __traits_type::difference_type difference_type; 8657: typedef typename __traits_type::reference reference; 8657: typedef typename __traits_type::pointer pointer; 8657: 8657: constexpr __normal_iterator() noexcept 8657: : _M_current(_Iterator()) { } 8657: 8657: explicit 8657: __normal_iterator(const _Iterator& __i) noexcept 8657: : _M_current(__i) { } 8657: 8657: 8657: template 8657: __normal_iterator(const __normal_iterator<_Iter, 8657: typename __enable_if< 8657: (std::__are_same<_Iter, typename _Container::pointer>::__value), 8657: _Container>::__type>& __i) noexcept 8657: : _M_current(__i.base()) { } 8657: 8657: 8657: reference 8657: operator*() const noexcept 8657: { return *_M_current; } 8657: 8657: pointer 8657: operator->() const noexcept 8657: { return _M_current; } 8657: 8657: __normal_iterator& 8657: operator++() noexcept 8657: { 8657: ++_M_current; 8657: return *this; 8657: } 8657: 8657: __normal_iterator 8657: operator++(int) noexcept 8657: { return __normal_iterator(_M_current++); } 8657: 8657: 8657: __normal_iterator& 8657: operator--() noexcept 8657: { 8657: --_M_current; 8657: return *this; 8657: } 8657: 8657: __normal_iterator 8657: operator--(int) noexcept 8657: { return __normal_iterator(_M_current--); } 8657: 8657: 8657: reference 8657: operator[](difference_type __n) const noexcept 8657: { return _M_current[__n]; } 8657: 8657: __normal_iterator& 8657: operator+=(difference_type __n) noexcept 8657: { _M_current += __n; return *this; } 8657: 8657: __normal_iterator 8657: operator+(difference_type __n) const noexcept 8657: { return __normal_iterator(_M_current + __n); } 8657: 8657: __normal_iterator& 8657: operator-=(difference_type __n) noexcept 8657: { _M_current -= __n; return *this; } 8657: 8657: __normal_iterator 8657: operator-(difference_type __n) const noexcept 8657: { return __normal_iterator(_M_current - __n); } 8657: 8657: const _Iterator& 8657: base() const noexcept 8657: { return _M_current; } 8657: }; 8657: # 858 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: template 8657: inline bool 8657: operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, 8657: const __normal_iterator<_IteratorR, _Container>& __rhs) 8657: noexcept 8657: { return __lhs.base() == __rhs.base(); } 8657: 8657: template 8657: inline bool 8657: operator==(const __normal_iterator<_Iterator, _Container>& __lhs, 8657: const __normal_iterator<_Iterator, _Container>& __rhs) 8657: noexcept 8657: { return __lhs.base() == __rhs.base(); } 8657: 8657: template 8657: inline bool 8657: operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, 8657: const __normal_iterator<_IteratorR, _Container>& __rhs) 8657: noexcept 8657: { return __lhs.base() != __rhs.base(); } 8657: 8657: template 8657: inline bool 8657: operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, 8657: const __normal_iterator<_Iterator, _Container>& __rhs) 8657: noexcept 8657: { return __lhs.base() != __rhs.base(); } 8657: 8657: 8657: template 8657: inline bool 8657: operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, 8657: const __normal_iterator<_IteratorR, _Container>& __rhs) 8657: noexcept 8657: { return __lhs.base() < __rhs.base(); } 8657: 8657: template 8657: inline bool 8657: operator<(const __normal_iterator<_Iterator, _Container>& __lhs, 8657: const __normal_iterator<_Iterator, _Container>& __rhs) 8657: noexcept 8657: { return __lhs.base() < __rhs.base(); } 8657: 8657: template 8657: inline bool 8657: operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, 8657: const __normal_iterator<_IteratorR, _Container>& __rhs) 8657: noexcept 8657: { return __lhs.base() > __rhs.base(); } 8657: 8657: template 8657: inline bool 8657: operator>(const __normal_iterator<_Iterator, _Container>& __lhs, 8657: const __normal_iterator<_Iterator, _Container>& __rhs) 8657: noexcept 8657: { return __lhs.base() > __rhs.base(); } 8657: 8657: template 8657: inline bool 8657: operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, 8657: const __normal_iterator<_IteratorR, _Container>& __rhs) 8657: noexcept 8657: { return __lhs.base() <= __rhs.base(); } 8657: 8657: template 8657: inline bool 8657: operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, 8657: const __normal_iterator<_Iterator, _Container>& __rhs) 8657: noexcept 8657: { return __lhs.base() <= __rhs.base(); } 8657: 8657: template 8657: inline bool 8657: operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, 8657: const __normal_iterator<_IteratorR, _Container>& __rhs) 8657: noexcept 8657: { return __lhs.base() >= __rhs.base(); } 8657: 8657: template 8657: inline bool 8657: operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, 8657: const __normal_iterator<_Iterator, _Container>& __rhs) 8657: noexcept 8657: { return __lhs.base() >= __rhs.base(); } 8657: 8657: 8657: 8657: 8657: 8657: template 8657: 8657: 8657: inline auto 8657: operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, 8657: const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept 8657: -> decltype(__lhs.base() - __rhs.base()) 8657: 8657: 8657: 8657: 8657: 8657: { return __lhs.base() - __rhs.base(); } 8657: 8657: template 8657: inline typename __normal_iterator<_Iterator, _Container>::difference_type 8657: operator-(const __normal_iterator<_Iterator, _Container>& __lhs, 8657: const __normal_iterator<_Iterator, _Container>& __rhs) 8657: noexcept 8657: { return __lhs.base() - __rhs.base(); } 8657: 8657: template 8657: inline __normal_iterator<_Iterator, _Container> 8657: operator+(typename __normal_iterator<_Iterator, _Container>::difference_type 8657: __n, const __normal_iterator<_Iterator, _Container>& __i) 8657: noexcept 8657: { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } 8657: 8657: 8657: } 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: template 8657: _Iterator 8657: __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it) 8657: { return __it.base(); } 8657: # 1003 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: template 8657: class move_iterator 8657: { 8657: protected: 8657: _Iterator _M_current; 8657: 8657: typedef iterator_traits<_Iterator> __traits_type; 8657: typedef typename __traits_type::reference __base_ref; 8657: 8657: public: 8657: typedef _Iterator iterator_type; 8657: typedef typename __traits_type::iterator_category iterator_category; 8657: typedef typename __traits_type::value_type value_type; 8657: typedef typename __traits_type::difference_type difference_type; 8657: 8657: typedef _Iterator pointer; 8657: 8657: 8657: typedef typename conditional::value, 8657: typename remove_reference<__base_ref>::type&&, 8657: __base_ref>::type reference; 8657: 8657: 8657: move_iterator() 8657: : _M_current() { } 8657: 8657: explicit 8657: move_iterator(iterator_type __i) 8657: : _M_current(__i) { } 8657: 8657: template 8657: 8657: move_iterator(const move_iterator<_Iter>& __i) 8657: : _M_current(__i.base()) { } 8657: 8657: iterator_type 8657: base() const 8657: { return _M_current; } 8657: 8657: reference 8657: operator*() const 8657: { return static_cast(*_M_current); } 8657: 8657: pointer 8657: operator->() const 8657: { return _M_current; } 8657: 8657: move_iterator& 8657: operator++() 8657: { 8657: ++_M_current; 8657: return *this; 8657: } 8657: 8657: move_iterator 8657: operator++(int) 8657: { 8657: move_iterator __tmp = *this; 8657: ++_M_current; 8657: return __tmp; 8657: } 8657: 8657: move_iterator& 8657: operator--() 8657: { 8657: --_M_current; 8657: return *this; 8657: } 8657: 8657: move_iterator 8657: operator--(int) 8657: { 8657: move_iterator __tmp = *this; 8657: --_M_current; 8657: return __tmp; 8657: } 8657: 8657: move_iterator 8657: operator+(difference_type __n) const 8657: { return move_iterator(_M_current + __n); } 8657: 8657: move_iterator& 8657: operator+=(difference_type __n) 8657: { 8657: _M_current += __n; 8657: return *this; 8657: } 8657: 8657: move_iterator 8657: operator-(difference_type __n) const 8657: { return move_iterator(_M_current - __n); } 8657: 8657: move_iterator& 8657: operator-=(difference_type __n) 8657: { 8657: _M_current -= __n; 8657: return *this; 8657: } 8657: 8657: reference 8657: operator[](difference_type __n) const 8657: { return std::move(_M_current[__n]); } 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: inline bool 8657: operator==(const move_iterator<_IteratorL>& __x, 8657: const move_iterator<_IteratorR>& __y) 8657: { return __x.base() == __y.base(); } 8657: 8657: template 8657: inline bool 8657: operator==(const move_iterator<_Iterator>& __x, 8657: const move_iterator<_Iterator>& __y) 8657: { return __x.base() == __y.base(); } 8657: 8657: template 8657: inline bool 8657: operator!=(const move_iterator<_IteratorL>& __x, 8657: const move_iterator<_IteratorR>& __y) 8657: { return !(__x == __y); } 8657: 8657: template 8657: inline bool 8657: operator!=(const move_iterator<_Iterator>& __x, 8657: const move_iterator<_Iterator>& __y) 8657: { return !(__x == __y); } 8657: 8657: template 8657: inline bool 8657: operator<(const move_iterator<_IteratorL>& __x, 8657: const move_iterator<_IteratorR>& __y) 8657: { return __x.base() < __y.base(); } 8657: 8657: template 8657: inline bool 8657: operator<(const move_iterator<_Iterator>& __x, 8657: const move_iterator<_Iterator>& __y) 8657: { return __x.base() < __y.base(); } 8657: 8657: template 8657: inline bool 8657: operator<=(const move_iterator<_IteratorL>& __x, 8657: const move_iterator<_IteratorR>& __y) 8657: { return !(__y < __x); } 8657: 8657: template 8657: inline bool 8657: operator<=(const move_iterator<_Iterator>& __x, 8657: const move_iterator<_Iterator>& __y) 8657: { return !(__y < __x); } 8657: 8657: template 8657: inline bool 8657: operator>(const move_iterator<_IteratorL>& __x, 8657: const move_iterator<_IteratorR>& __y) 8657: { return __y < __x; } 8657: 8657: template 8657: inline bool 8657: operator>(const move_iterator<_Iterator>& __x, 8657: const move_iterator<_Iterator>& __y) 8657: { return __y < __x; } 8657: 8657: template 8657: inline bool 8657: operator>=(const move_iterator<_IteratorL>& __x, 8657: const move_iterator<_IteratorR>& __y) 8657: { return !(__x < __y); } 8657: 8657: template 8657: inline bool 8657: operator>=(const move_iterator<_Iterator>& __x, 8657: const move_iterator<_Iterator>& __y) 8657: { return !(__x < __y); } 8657: 8657: 8657: template 8657: inline auto 8657: operator-(const move_iterator<_IteratorL>& __x, 8657: const move_iterator<_IteratorR>& __y) 8657: -> decltype(__x.base() - __y.base()) 8657: { return __x.base() - __y.base(); } 8657: 8657: template 8657: inline move_iterator<_Iterator> 8657: operator+(typename move_iterator<_Iterator>::difference_type __n, 8657: const move_iterator<_Iterator>& __x) 8657: { return __x + __n; } 8657: 8657: template 8657: inline move_iterator<_Iterator> 8657: make_move_iterator(_Iterator __i) 8657: { return move_iterator<_Iterator>(__i); } 8657: 8657: template::value_type>::value, 8657: _Iterator, move_iterator<_Iterator>>::type> 8657: inline _ReturnType 8657: __make_move_if_noexcept_iterator(_Iterator __i) 8657: { return _ReturnType(__i); } 8657: 8657: 8657: 8657: template::value, 8657: const _Tp*, move_iterator<_Tp*>>::type> 8657: inline _ReturnType 8657: __make_move_if_noexcept_iterator(_Tp* __i) 8657: { return _ReturnType(__i); } 8657: 8657: 8657: 8657: template 8657: auto 8657: __niter_base(move_iterator<_Iterator> __it) 8657: -> decltype(make_move_iterator(__niter_base(__it.base()))) 8657: { return make_move_iterator(__niter_base(__it.base())); } 8657: 8657: template 8657: struct __is_move_iterator > 8657: { 8657: enum { __value = 1 }; 8657: typedef __true_type __type; 8657: }; 8657: 8657: template 8657: auto 8657: __miter_base(move_iterator<_Iterator> __it) 8657: -> decltype(__miter_base(__it.base())) 8657: { return __miter_base(__it.base()); } 8657: # 1268 "/usr/include/c++/8/bits/stl_iterator.h" 3 8657: 8657: } 8657: # 68 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8657: 8657: # 1 "/usr/include/c++/8/debug/debug.h" 1 3 8657: # 48 "/usr/include/c++/8/debug/debug.h" 3 8657: namespace std 8657: { 8657: namespace __debug { } 8657: } 8657: 8657: 8657: 8657: 8657: namespace __gnu_debug 8657: { 8657: using namespace std::__debug; 8657: } 8657: # 70 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8657: 8657: # 1 "/usr/include/c++/8/bits/predefined_ops.h" 1 3 8657: # 33 "/usr/include/c++/8/bits/predefined_ops.h" 3 8657: namespace __gnu_cxx 8657: { 8657: namespace __ops 8657: { 8657: struct _Iter_less_iter 8657: { 8657: template 8657: 8657: bool 8657: operator()(_Iterator1 __it1, _Iterator2 __it2) const 8657: { return *__it1 < *__it2; } 8657: }; 8657: 8657: 8657: inline _Iter_less_iter 8657: __iter_less_iter() 8657: { return _Iter_less_iter(); } 8657: 8657: struct _Iter_less_val 8657: { 8657: 8657: constexpr _Iter_less_val() = default; 8657: 8657: 8657: 8657: 8657: explicit 8657: _Iter_less_val(_Iter_less_iter) { } 8657: 8657: template 8657: bool 8657: operator()(_Iterator __it, _Value& __val) const 8657: { return *__it < __val; } 8657: }; 8657: 8657: inline _Iter_less_val 8657: __iter_less_val() 8657: { return _Iter_less_val(); } 8657: 8657: inline _Iter_less_val 8657: __iter_comp_val(_Iter_less_iter) 8657: { return _Iter_less_val(); } 8657: 8657: struct _Val_less_iter 8657: { 8657: 8657: constexpr _Val_less_iter() = default; 8657: 8657: 8657: 8657: 8657: explicit 8657: _Val_less_iter(_Iter_less_iter) { } 8657: 8657: template 8657: bool 8657: operator()(_Value& __val, _Iterator __it) const 8657: { return __val < *__it; } 8657: }; 8657: 8657: inline _Val_less_iter 8657: __val_less_iter() 8657: { return _Val_less_iter(); } 8657: 8657: inline _Val_less_iter 8657: __val_comp_iter(_Iter_less_iter) 8657: { return _Val_less_iter(); } 8657: 8657: struct _Iter_equal_to_iter 8657: { 8657: template 8657: bool 8657: operator()(_Iterator1 __it1, _Iterator2 __it2) const 8657: { return *__it1 == *__it2; } 8657: }; 8657: 8657: inline _Iter_equal_to_iter 8657: __iter_equal_to_iter() 8657: { return _Iter_equal_to_iter(); } 8657: 8657: struct _Iter_equal_to_val 8657: { 8657: template 8657: bool 8657: operator()(_Iterator __it, _Value& __val) const 8657: { return *__it == __val; } 8657: }; 8657: 8657: inline _Iter_equal_to_val 8657: __iter_equal_to_val() 8657: { return _Iter_equal_to_val(); } 8657: 8657: inline _Iter_equal_to_val 8657: __iter_comp_val(_Iter_equal_to_iter) 8657: { return _Iter_equal_to_val(); } 8657: 8657: template 8657: struct _Iter_comp_iter 8657: { 8657: _Compare _M_comp; 8657: 8657: explicit 8657: _Iter_comp_iter(_Compare __comp) 8657: : _M_comp(std::move(__comp)) 8657: { } 8657: 8657: template 8657: 8657: bool 8657: operator()(_Iterator1 __it1, _Iterator2 __it2) 8657: { return bool(_M_comp(*__it1, *__it2)); } 8657: }; 8657: 8657: template 8657: 8657: inline _Iter_comp_iter<_Compare> 8657: __iter_comp_iter(_Compare __comp) 8657: { return _Iter_comp_iter<_Compare>(std::move(__comp)); } 8657: 8657: template 8657: struct _Iter_comp_val 8657: { 8657: _Compare _M_comp; 8657: 8657: explicit 8657: _Iter_comp_val(_Compare __comp) 8657: : _M_comp(std::move(__comp)) 8657: { } 8657: 8657: explicit 8657: _Iter_comp_val(const _Iter_comp_iter<_Compare>& __comp) 8657: : _M_comp(__comp._M_comp) 8657: { } 8657: 8657: 8657: explicit 8657: _Iter_comp_val(_Iter_comp_iter<_Compare>&& __comp) 8657: : _M_comp(std::move(__comp._M_comp)) 8657: { } 8657: 8657: 8657: template 8657: bool 8657: operator()(_Iterator __it, _Value& __val) 8657: { return bool(_M_comp(*__it, __val)); } 8657: }; 8657: 8657: template 8657: inline _Iter_comp_val<_Compare> 8657: __iter_comp_val(_Compare __comp) 8657: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 8657: 8657: template 8657: inline _Iter_comp_val<_Compare> 8657: __iter_comp_val(_Iter_comp_iter<_Compare> __comp) 8657: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 8657: 8657: template 8657: struct _Val_comp_iter 8657: { 8657: _Compare _M_comp; 8657: 8657: explicit 8657: _Val_comp_iter(_Compare __comp) 8657: : _M_comp(std::move(__comp)) 8657: { } 8657: 8657: explicit 8657: _Val_comp_iter(const _Iter_comp_iter<_Compare>& __comp) 8657: : _M_comp(__comp._M_comp) 8657: { } 8657: 8657: 8657: explicit 8657: _Val_comp_iter(_Iter_comp_iter<_Compare>&& __comp) 8657: : _M_comp(std::move(__comp._M_comp)) 8657: { } 8657: 8657: 8657: template 8657: bool 8657: operator()(_Value& __val, _Iterator __it) 8657: { return bool(_M_comp(__val, *__it)); } 8657: }; 8657: 8657: template 8657: inline _Val_comp_iter<_Compare> 8657: __val_comp_iter(_Compare __comp) 8657: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 8657: 8657: template 8657: inline _Val_comp_iter<_Compare> 8657: __val_comp_iter(_Iter_comp_iter<_Compare> __comp) 8657: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 8657: 8657: template 8657: struct _Iter_equals_val 8657: { 8657: _Value& _M_value; 8657: 8657: explicit 8657: _Iter_equals_val(_Value& __value) 8657: : _M_value(__value) 8657: { } 8657: 8657: template 8657: bool 8657: operator()(_Iterator __it) 8657: { return *__it == _M_value; } 8657: }; 8657: 8657: template 8657: inline _Iter_equals_val<_Value> 8657: __iter_equals_val(_Value& __val) 8657: { return _Iter_equals_val<_Value>(__val); } 8657: 8657: template 8657: struct _Iter_equals_iter 8657: { 8657: _Iterator1 _M_it1; 8657: 8657: explicit 8657: _Iter_equals_iter(_Iterator1 __it1) 8657: : _M_it1(__it1) 8657: { } 8657: 8657: template 8657: bool 8657: operator()(_Iterator2 __it2) 8657: { return *__it2 == *_M_it1; } 8657: }; 8657: 8657: template 8657: inline _Iter_equals_iter<_Iterator> 8657: __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) 8657: { return _Iter_equals_iter<_Iterator>(__it); } 8657: 8657: template 8657: struct _Iter_pred 8657: { 8657: _Predicate _M_pred; 8657: 8657: explicit 8657: _Iter_pred(_Predicate __pred) 8657: : _M_pred(std::move(__pred)) 8657: { } 8657: 8657: template 8657: bool 8657: operator()(_Iterator __it) 8657: { return bool(_M_pred(*__it)); } 8657: }; 8657: 8657: template 8657: inline _Iter_pred<_Predicate> 8657: __pred_iter(_Predicate __pred) 8657: { return _Iter_pred<_Predicate>(std::move(__pred)); } 8657: 8657: template 8657: struct _Iter_comp_to_val 8657: { 8657: _Compare _M_comp; 8657: _Value& _M_value; 8657: 8657: _Iter_comp_to_val(_Compare __comp, _Value& __value) 8657: : _M_comp(std::move(__comp)), _M_value(__value) 8657: { } 8657: 8657: template 8657: bool 8657: operator()(_Iterator __it) 8657: { return bool(_M_comp(*__it, _M_value)); } 8657: }; 8657: 8657: template 8657: _Iter_comp_to_val<_Compare, _Value> 8657: __iter_comp_val(_Compare __comp, _Value &__val) 8657: { 8657: return _Iter_comp_to_val<_Compare, _Value>(std::move(__comp), __val); 8657: } 8657: 8657: template 8657: struct _Iter_comp_to_iter 8657: { 8657: _Compare _M_comp; 8657: _Iterator1 _M_it1; 8657: 8657: _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) 8657: : _M_comp(std::move(__comp)), _M_it1(__it1) 8657: { } 8657: 8657: template 8657: bool 8657: operator()(_Iterator2 __it2) 8657: { return bool(_M_comp(*__it2, *_M_it1)); } 8657: }; 8657: 8657: template 8657: inline _Iter_comp_to_iter<_Compare, _Iterator> 8657: __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it) 8657: { 8657: return _Iter_comp_to_iter<_Compare, _Iterator>( 8657: std::move(__comp._M_comp), __it); 8657: } 8657: 8657: template 8657: struct _Iter_negate 8657: { 8657: _Predicate _M_pred; 8657: 8657: explicit 8657: _Iter_negate(_Predicate __pred) 8657: : _M_pred(std::move(__pred)) 8657: { } 8657: 8657: template 8657: bool 8657: operator()(_Iterator __it) 8657: { return !bool(_M_pred(*__it)); } 8657: }; 8657: 8657: template 8657: inline _Iter_negate<_Predicate> 8657: __negate(_Iter_pred<_Predicate> __pred) 8657: { return _Iter_negate<_Predicate>(std::move(__pred._M_pred)); } 8657: 8657: } 8657: } 8657: # 72 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 118 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: inline void 8657: iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) 8657: { 8657: 8657: 8657: 8657: 8657: # 148 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: swap(*__a, *__b); 8657: 8657: } 8657: # 164 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: _ForwardIterator2 8657: swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8657: _ForwardIterator2 __first2) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: for (; __first1 != __last1; ++__first1, (void)++__first2) 8657: std::iter_swap(__first1, __first2); 8657: return __first2; 8657: } 8657: # 192 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: 8657: inline const _Tp& 8657: min(const _Tp& __a, const _Tp& __b) 8657: { 8657: 8657: 8657: 8657: if (__b < __a) 8657: return __b; 8657: return __a; 8657: } 8657: # 216 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: 8657: inline const _Tp& 8657: max(const _Tp& __a, const _Tp& __b) 8657: { 8657: 8657: 8657: 8657: if (__a < __b) 8657: return __b; 8657: return __a; 8657: } 8657: # 240 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: 8657: inline const _Tp& 8657: min(const _Tp& __a, const _Tp& __b, _Compare __comp) 8657: { 8657: 8657: if (__comp(__b, __a)) 8657: return __b; 8657: return __a; 8657: } 8657: # 262 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: 8657: inline const _Tp& 8657: max(const _Tp& __a, const _Tp& __b, _Compare __comp) 8657: { 8657: 8657: if (__comp(__a, __b)) 8657: return __b; 8657: return __a; 8657: } 8657: 8657: 8657: 8657: template 8657: inline _Iterator 8657: __niter_base(_Iterator __it) 8657: { return __it; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct __copy_move 8657: { 8657: template 8657: static _OI 8657: __copy_m(_II __first, _II __last, _OI __result) 8657: { 8657: for (; __first != __last; ++__result, (void)++__first) 8657: *__result = *__first; 8657: return __result; 8657: } 8657: }; 8657: 8657: 8657: template 8657: struct __copy_move 8657: { 8657: template 8657: static _OI 8657: __copy_m(_II __first, _II __last, _OI __result) 8657: { 8657: for (; __first != __last; ++__result, (void)++__first) 8657: *__result = std::move(*__first); 8657: return __result; 8657: } 8657: }; 8657: 8657: 8657: template<> 8657: struct __copy_move 8657: { 8657: template 8657: static _OI 8657: __copy_m(_II __first, _II __last, _OI __result) 8657: { 8657: typedef typename iterator_traits<_II>::difference_type _Distance; 8657: for(_Distance __n = __last - __first; __n > 0; --__n) 8657: { 8657: *__result = *__first; 8657: ++__first; 8657: ++__result; 8657: } 8657: return __result; 8657: } 8657: }; 8657: 8657: 8657: template<> 8657: struct __copy_move 8657: { 8657: template 8657: static _OI 8657: __copy_m(_II __first, _II __last, _OI __result) 8657: { 8657: typedef typename iterator_traits<_II>::difference_type _Distance; 8657: for(_Distance __n = __last - __first; __n > 0; --__n) 8657: { 8657: *__result = std::move(*__first); 8657: ++__first; 8657: ++__result; 8657: } 8657: return __result; 8657: } 8657: }; 8657: 8657: 8657: template 8657: struct __copy_move<_IsMove, true, random_access_iterator_tag> 8657: { 8657: template 8657: static _Tp* 8657: __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result) 8657: { 8657: 8657: using __assignable = conditional<_IsMove, 8657: is_move_assignable<_Tp>, 8657: is_copy_assignable<_Tp>>; 8657: 8657: static_assert( __assignable::type::value, "type is not assignable" ); 8657: 8657: const ptrdiff_t _Num = __last - __first; 8657: if (_Num) 8657: __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); 8657: return __result + _Num; 8657: } 8657: }; 8657: 8657: template 8657: inline _OI 8657: __copy_move_a(_II __first, _II __last, _OI __result) 8657: { 8657: typedef typename iterator_traits<_II>::value_type _ValueTypeI; 8657: typedef typename iterator_traits<_OI>::value_type _ValueTypeO; 8657: typedef typename iterator_traits<_II>::iterator_category _Category; 8657: const bool __simple = (__is_trivial(_ValueTypeI) 8657: && __is_pointer<_II>::__value 8657: && __is_pointer<_OI>::__value 8657: && __are_same<_ValueTypeI, _ValueTypeO>::__value); 8657: 8657: return std::__copy_move<_IsMove, __simple, 8657: _Category>::__copy_m(__first, __last, __result); 8657: } 8657: 8657: 8657: 8657: template 8657: struct char_traits; 8657: 8657: template 8657: class istreambuf_iterator; 8657: 8657: template 8657: class ostreambuf_iterator; 8657: 8657: template 8657: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8657: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 8657: __copy_move_a2(_CharT*, _CharT*, 8657: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 8657: 8657: template 8657: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8657: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 8657: __copy_move_a2(const _CharT*, const _CharT*, 8657: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 8657: 8657: template 8657: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8657: _CharT*>::__type 8657: __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, 8657: istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); 8657: 8657: template 8657: inline _OI 8657: __copy_move_a2(_II __first, _II __last, _OI __result) 8657: { 8657: return _OI(std::__copy_move_a<_IsMove>(std::__niter_base(__first), 8657: std::__niter_base(__last), 8657: std::__niter_base(__result))); 8657: } 8657: # 444 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: inline _OI 8657: copy(_II __first, _II __last, _OI __result) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return (std::__copy_move_a2<__is_move_iterator<_II>::__value> 8657: (std::__miter_base(__first), std::__miter_base(__last), 8657: __result)); 8657: } 8657: # 477 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: inline _OI 8657: move(_II __first, _II __last, _OI __result) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__copy_move_a2(std::__miter_base(__first), 8657: std::__miter_base(__last), __result); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct __copy_move_backward 8657: { 8657: template 8657: static _BI2 8657: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8657: { 8657: while (__first != __last) 8657: *--__result = *--__last; 8657: return __result; 8657: } 8657: }; 8657: 8657: 8657: template 8657: struct __copy_move_backward 8657: { 8657: template 8657: static _BI2 8657: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8657: { 8657: while (__first != __last) 8657: *--__result = std::move(*--__last); 8657: return __result; 8657: } 8657: }; 8657: 8657: 8657: template<> 8657: struct __copy_move_backward 8657: { 8657: template 8657: static _BI2 8657: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8657: { 8657: typename iterator_traits<_BI1>::difference_type __n; 8657: for (__n = __last - __first; __n > 0; --__n) 8657: *--__result = *--__last; 8657: return __result; 8657: } 8657: }; 8657: 8657: 8657: template<> 8657: struct __copy_move_backward 8657: { 8657: template 8657: static _BI2 8657: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8657: { 8657: typename iterator_traits<_BI1>::difference_type __n; 8657: for (__n = __last - __first; __n > 0; --__n) 8657: *--__result = std::move(*--__last); 8657: return __result; 8657: } 8657: }; 8657: 8657: 8657: template 8657: struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> 8657: { 8657: template 8657: static _Tp* 8657: __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result) 8657: { 8657: 8657: using __assignable = conditional<_IsMove, 8657: is_move_assignable<_Tp>, 8657: is_copy_assignable<_Tp>>; 8657: 8657: static_assert( __assignable::type::value, "type is not assignable" ); 8657: 8657: const ptrdiff_t _Num = __last - __first; 8657: if (_Num) 8657: __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); 8657: return __result - _Num; 8657: } 8657: }; 8657: 8657: template 8657: inline _BI2 8657: __copy_move_backward_a(_BI1 __first, _BI1 __last, _BI2 __result) 8657: { 8657: typedef typename iterator_traits<_BI1>::value_type _ValueType1; 8657: typedef typename iterator_traits<_BI2>::value_type _ValueType2; 8657: typedef typename iterator_traits<_BI1>::iterator_category _Category; 8657: const bool __simple = (__is_trivial(_ValueType1) 8657: && __is_pointer<_BI1>::__value 8657: && __is_pointer<_BI2>::__value 8657: && __are_same<_ValueType1, _ValueType2>::__value); 8657: 8657: return std::__copy_move_backward<_IsMove, __simple, 8657: _Category>::__copy_move_b(__first, 8657: __last, 8657: __result); 8657: } 8657: 8657: template 8657: inline _BI2 8657: __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) 8657: { 8657: return _BI2(std::__copy_move_backward_a<_IsMove> 8657: (std::__niter_base(__first), std::__niter_base(__last), 8657: std::__niter_base(__result))); 8657: } 8657: # 620 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: inline _BI2 8657: copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return (std::__copy_move_backward_a2<__is_move_iterator<_BI1>::__value> 8657: (std::__miter_base(__first), std::__miter_base(__last), 8657: __result)); 8657: } 8657: # 656 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: inline _BI2 8657: move_backward(_BI1 __first, _BI1 __last, _BI2 __result) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__copy_move_backward_a2(std::__miter_base(__first), 8657: std::__miter_base(__last), 8657: __result); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline typename 8657: __gnu_cxx::__enable_if::__value, void>::__type 8657: __fill_a(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __value) 8657: { 8657: for (; __first != __last; ++__first) 8657: *__first = __value; 8657: } 8657: 8657: template 8657: inline typename 8657: __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type 8657: __fill_a(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __value) 8657: { 8657: const _Tp __tmp = __value; 8657: for (; __first != __last; ++__first) 8657: *__first = __tmp; 8657: } 8657: 8657: 8657: template 8657: inline typename 8657: __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type 8657: __fill_a(_Tp* __first, _Tp* __last, const _Tp& __c) 8657: { 8657: const _Tp __tmp = __c; 8657: if (const size_t __len = __last - __first) 8657: __builtin_memset(__first, static_cast(__tmp), __len); 8657: } 8657: # 722 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: inline void 8657: fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) 8657: { 8657: 8657: 8657: 8657: ; 8657: 8657: std::__fill_a(std::__niter_base(__first), std::__niter_base(__last), 8657: __value); 8657: } 8657: 8657: template 8657: inline typename 8657: __gnu_cxx::__enable_if::__value, _OutputIterator>::__type 8657: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) 8657: { 8657: for (__decltype(__n + 0) __niter = __n; 8657: __niter > 0; --__niter, (void) ++__first) 8657: *__first = __value; 8657: return __first; 8657: } 8657: 8657: template 8657: inline typename 8657: __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type 8657: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) 8657: { 8657: const _Tp __tmp = __value; 8657: for (__decltype(__n + 0) __niter = __n; 8657: __niter > 0; --__niter, (void) ++__first) 8657: *__first = __tmp; 8657: return __first; 8657: } 8657: 8657: template 8657: inline typename 8657: __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, _Tp*>::__type 8657: __fill_n_a(_Tp* __first, _Size __n, const _Tp& __c) 8657: { 8657: std::__fill_a(__first, __first + __n, __c); 8657: return __first + __n; 8657: } 8657: # 782 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: inline _OI 8657: fill_n(_OI __first, _Size __n, const _Tp& __value) 8657: { 8657: 8657: 8657: 8657: return _OI(std::__fill_n_a(std::__niter_base(__first), __n, __value)); 8657: } 8657: 8657: template 8657: struct __equal 8657: { 8657: template 8657: static bool 8657: equal(_II1 __first1, _II1 __last1, _II2 __first2) 8657: { 8657: for (; __first1 != __last1; ++__first1, (void) ++__first2) 8657: if (!(*__first1 == *__first2)) 8657: return false; 8657: return true; 8657: } 8657: }; 8657: 8657: template<> 8657: struct __equal 8657: { 8657: template 8657: static bool 8657: equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) 8657: { 8657: if (const size_t __len = (__last1 - __first1)) 8657: return !__builtin_memcmp(__first1, __first2, sizeof(_Tp) * __len); 8657: return true; 8657: } 8657: }; 8657: 8657: template 8657: inline bool 8657: __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) 8657: { 8657: typedef typename iterator_traits<_II1>::value_type _ValueType1; 8657: typedef typename iterator_traits<_II2>::value_type _ValueType2; 8657: const bool __simple = ((__is_integer<_ValueType1>::__value 8657: || __is_pointer<_ValueType1>::__value) 8657: && __is_pointer<_II1>::__value 8657: && __is_pointer<_II2>::__value 8657: && __are_same<_ValueType1, _ValueType2>::__value); 8657: 8657: return std::__equal<__simple>::equal(__first1, __last1, __first2); 8657: } 8657: 8657: template 8657: struct __lc_rai 8657: { 8657: template 8657: static _II1 8657: __newlast1(_II1, _II1 __last1, _II2, _II2) 8657: { return __last1; } 8657: 8657: template 8657: static bool 8657: __cnd2(_II __first, _II __last) 8657: { return __first != __last; } 8657: }; 8657: 8657: template<> 8657: struct __lc_rai 8657: { 8657: template 8657: static _RAI1 8657: __newlast1(_RAI1 __first1, _RAI1 __last1, 8657: _RAI2 __first2, _RAI2 __last2) 8657: { 8657: const typename iterator_traits<_RAI1>::difference_type 8657: __diff1 = __last1 - __first1; 8657: const typename iterator_traits<_RAI2>::difference_type 8657: __diff2 = __last2 - __first2; 8657: return __diff2 < __diff1 ? __first1 + __diff2 : __last1; 8657: } 8657: 8657: template 8657: static bool 8657: __cnd2(_RAI, _RAI) 8657: { return true; } 8657: }; 8657: 8657: template 8657: bool 8657: __lexicographical_compare_impl(_II1 __first1, _II1 __last1, 8657: _II2 __first2, _II2 __last2, 8657: _Compare __comp) 8657: { 8657: typedef typename iterator_traits<_II1>::iterator_category _Category1; 8657: typedef typename iterator_traits<_II2>::iterator_category _Category2; 8657: typedef std::__lc_rai<_Category1, _Category2> __rai_type; 8657: 8657: __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); 8657: for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); 8657: ++__first1, (void)++__first2) 8657: { 8657: if (__comp(__first1, __first2)) 8657: return true; 8657: if (__comp(__first2, __first1)) 8657: return false; 8657: } 8657: return __first1 == __last1 && __first2 != __last2; 8657: } 8657: 8657: template 8657: struct __lexicographical_compare 8657: { 8657: template 8657: static bool __lc(_II1, _II1, _II2, _II2); 8657: }; 8657: 8657: template 8657: template 8657: bool 8657: __lexicographical_compare<_BoolType>:: 8657: __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 8657: { 8657: return std::__lexicographical_compare_impl(__first1, __last1, 8657: __first2, __last2, 8657: __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: 8657: template<> 8657: struct __lexicographical_compare 8657: { 8657: template 8657: static bool 8657: __lc(const _Tp* __first1, const _Tp* __last1, 8657: const _Up* __first2, const _Up* __last2) 8657: { 8657: const size_t __len1 = __last1 - __first1; 8657: const size_t __len2 = __last2 - __first2; 8657: if (const size_t __len = std::min(__len1, __len2)) 8657: if (int __result = __builtin_memcmp(__first1, __first2, __len)) 8657: return __result < 0; 8657: return __len1 < __len2; 8657: } 8657: }; 8657: 8657: template 8657: inline bool 8657: __lexicographical_compare_aux(_II1 __first1, _II1 __last1, 8657: _II2 __first2, _II2 __last2) 8657: { 8657: typedef typename iterator_traits<_II1>::value_type _ValueType1; 8657: typedef typename iterator_traits<_II2>::value_type _ValueType2; 8657: const bool __simple = 8657: (__is_byte<_ValueType1>::__value && __is_byte<_ValueType2>::__value 8657: && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed 8657: && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed 8657: && __is_pointer<_II1>::__value 8657: && __is_pointer<_II2>::__value); 8657: 8657: return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, 8657: __first2, __last2); 8657: } 8657: 8657: template 8657: _ForwardIterator 8657: __lower_bound(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __val, _Compare __comp) 8657: { 8657: typedef typename iterator_traits<_ForwardIterator>::difference_type 8657: _DistanceType; 8657: 8657: _DistanceType __len = std::distance(__first, __last); 8657: 8657: while (__len > 0) 8657: { 8657: _DistanceType __half = __len >> 1; 8657: _ForwardIterator __middle = __first; 8657: std::advance(__middle, __half); 8657: if (__comp(__middle, __val)) 8657: { 8657: __first = __middle; 8657: ++__first; 8657: __len = __len - __half - 1; 8657: } 8657: else 8657: __len = __half; 8657: } 8657: return __first; 8657: } 8657: # 982 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: inline _ForwardIterator 8657: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __val) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__lower_bound(__first, __last, __val, 8657: __gnu_cxx::__ops::__iter_less_val()); 8657: } 8657: 8657: 8657: 8657: inline constexpr int 8657: __lg(int __n) 8657: { return sizeof(int) * 8 - 1 - __builtin_clz(__n); } 8657: 8657: inline constexpr unsigned 8657: __lg(unsigned __n) 8657: { return sizeof(int) * 8 - 1 - __builtin_clz(__n); } 8657: 8657: inline constexpr long 8657: __lg(long __n) 8657: { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); } 8657: 8657: inline constexpr unsigned long 8657: __lg(unsigned long __n) 8657: { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); } 8657: 8657: inline constexpr long long 8657: __lg(long long __n) 8657: { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } 8657: 8657: inline constexpr unsigned long long 8657: __lg(unsigned long long __n) 8657: { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } 8657: 8657: 8657: # 1037 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: inline bool 8657: equal(_II1 __first1, _II1 __last1, _II2 __first2) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__equal_aux(std::__niter_base(__first1), 8657: std::__niter_base(__last1), 8657: std::__niter_base(__first2)); 8657: } 8657: # 1069 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: inline bool 8657: equal(_IIter1 __first1, _IIter1 __last1, 8657: _IIter2 __first2, _BinaryPredicate __binary_pred) 8657: { 8657: 8657: 8657: 8657: ; 8657: 8657: for (; __first1 != __last1; ++__first1, (void)++__first2) 8657: if (!bool(__binary_pred(*__first1, *__first2))) 8657: return false; 8657: return true; 8657: } 8657: 8657: 8657: 8657: template 8657: inline bool 8657: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 8657: { 8657: using _RATag = random_access_iterator_tag; 8657: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 8657: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 8657: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 8657: if (_RAIters()) 8657: { 8657: auto __d1 = std::distance(__first1, __last1); 8657: auto __d2 = std::distance(__first2, __last2); 8657: if (__d1 != __d2) 8657: return false; 8657: return std::equal(__first1, __last1, __first2); 8657: } 8657: 8657: for (; __first1 != __last1 && __first2 != __last2; 8657: ++__first1, (void)++__first2) 8657: if (!(*__first1 == *__first2)) 8657: return false; 8657: return __first1 == __last1 && __first2 == __last2; 8657: } 8657: 8657: 8657: template 8657: inline bool 8657: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, 8657: _BinaryPredicate __binary_pred) 8657: { 8657: using _RATag = random_access_iterator_tag; 8657: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 8657: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 8657: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 8657: if (_RAIters()) 8657: { 8657: auto __d1 = std::distance(__first1, __last1); 8657: auto __d2 = std::distance(__first2, __last2); 8657: if (__d1 != __d2) 8657: return false; 8657: return std::equal(__first1, __last1, __first2, 8657: __binary_pred); 8657: } 8657: 8657: for (; __first1 != __last1 && __first2 != __last2; 8657: ++__first1, (void)++__first2) 8657: if (!bool(__binary_pred(*__first1, *__first2))) 8657: return false; 8657: return __first1 == __last1 && __first2 == __last2; 8657: } 8657: # 1219 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: inline bool 8657: lexicographical_compare(_II1 __first1, _II1 __last1, 8657: _II2 __first2, _II2 __last2) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__lexicographical_compare_aux(std::__niter_base(__first1), 8657: std::__niter_base(__last1), 8657: std::__niter_base(__first2), 8657: std::__niter_base(__last2)); 8657: } 8657: # 1255 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: inline bool 8657: lexicographical_compare(_II1 __first1, _II1 __last1, 8657: _II2 __first2, _II2 __last2, _Compare __comp) 8657: { 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__lexicographical_compare_impl 8657: (__first1, __last1, __first2, __last2, 8657: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: 8657: template 8657: pair<_InputIterator1, _InputIterator2> 8657: __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 8657: { 8657: while (__first1 != __last1 && __binary_pred(__first1, __first2)) 8657: { 8657: ++__first1; 8657: ++__first2; 8657: } 8657: return pair<_InputIterator1, _InputIterator2>(__first1, __first2); 8657: } 8657: # 1298 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: inline pair<_InputIterator1, _InputIterator2> 8657: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__mismatch(__first1, __last1, __first2, 8657: __gnu_cxx::__ops::__iter_equal_to_iter()); 8657: } 8657: # 1331 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: template 8657: inline pair<_InputIterator1, _InputIterator2> 8657: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 8657: { 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__mismatch(__first1, __last1, __first2, 8657: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 8657: } 8657: # 1431 "/usr/include/c++/8/bits/stl_algobase.h" 3 8657: 8657: 8657: } 8657: # 62 "/usr/include/c++/8/algorithm" 2 3 8657: # 1 "/usr/include/c++/8/bits/stl_algo.h" 1 3 8657: # 59 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: # 1 "/usr/include/c++/8/cstdlib" 1 3 8657: # 39 "/usr/include/c++/8/cstdlib" 3 8657: 8657: # 40 "/usr/include/c++/8/cstdlib" 3 8657: # 75 "/usr/include/c++/8/cstdlib" 3 8657: # 1 "/usr/include/stdlib.h" 1 3 4 8657: # 25 "/usr/include/stdlib.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 8657: # 26 "/usr/include/stdlib.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8657: # 32 "/usr/include/stdlib.h" 2 3 4 8657: 8657: extern "C" { 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/waitflags.h" 1 3 4 8657: # 52 "/usr/include/arm-linux-gnueabihf/bits/waitflags.h" 3 4 8657: typedef enum 8657: { 8657: P_ALL, 8657: P_PID, 8657: P_PGID 8657: } idtype_t; 8657: # 40 "/usr/include/stdlib.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/waitstatus.h" 1 3 4 8657: # 41 "/usr/include/stdlib.h" 2 3 4 8657: # 55 "/usr/include/stdlib.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/floatn.h" 1 3 4 8657: # 56 "/usr/include/stdlib.h" 2 3 4 8657: 8657: 8657: typedef struct 8657: { 8657: int quot; 8657: int rem; 8657: } div_t; 8657: 8657: 8657: 8657: typedef struct 8657: { 8657: long int quot; 8657: long int rem; 8657: } ldiv_t; 8657: 8657: 8657: 8657: 8657: 8657: __extension__ typedef struct 8657: { 8657: long long int quot; 8657: long long int rem; 8657: } lldiv_t; 8657: # 97 "/usr/include/stdlib.h" 3 4 8657: extern size_t __ctype_get_mb_cur_max (void) throw () __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: extern double atof (const char *__nptr) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: 8657: extern int atoi (const char *__nptr) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: 8657: extern long int atol (const char *__nptr) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: __extension__ extern long long int atoll (const char *__nptr) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: extern double strtod (const char *__restrict __nptr, 8657: char **__restrict __endptr) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: extern float strtof (const char *__restrict __nptr, 8657: char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: extern long double strtold (const char *__restrict __nptr, 8657: char **__restrict __endptr) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: # 139 "/usr/include/stdlib.h" 3 4 8657: extern long int strtol (const char *__restrict __nptr, 8657: char **__restrict __endptr, int __base) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: extern unsigned long int strtoul (const char *__restrict __nptr, 8657: char **__restrict __endptr, int __base) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: __extension__ 8657: extern long long int strtoq (const char *__restrict __nptr, 8657: char **__restrict __endptr, int __base) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: __extension__ 8657: extern unsigned long long int strtouq (const char *__restrict __nptr, 8657: char **__restrict __endptr, int __base) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: __extension__ 8657: extern long long int strtoll (const char *__restrict __nptr, 8657: char **__restrict __endptr, int __base) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: __extension__ 8657: extern unsigned long long int strtoull (const char *__restrict __nptr, 8657: char **__restrict __endptr, int __base) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: extern int strfromd (char *__dest, size_t __size, const char *__format, 8657: double __f) 8657: throw () __attribute__ ((__nonnull__ (3))); 8657: 8657: extern int strfromf (char *__dest, size_t __size, const char *__format, 8657: float __f) 8657: throw () __attribute__ ((__nonnull__ (3))); 8657: 8657: extern int strfroml (char *__dest, size_t __size, const char *__format, 8657: long double __f) 8657: throw () __attribute__ ((__nonnull__ (3))); 8657: # 199 "/usr/include/stdlib.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/locale_t.h" 1 3 4 8657: # 22 "/usr/include/arm-linux-gnueabihf/bits/types/locale_t.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/__locale_t.h" 1 3 4 8657: # 28 "/usr/include/arm-linux-gnueabihf/bits/types/__locale_t.h" 3 4 8657: struct __locale_struct 8657: { 8657: 8657: struct __locale_data *__locales[13]; 8657: 8657: 8657: const unsigned short int *__ctype_b; 8657: const int *__ctype_tolower; 8657: const int *__ctype_toupper; 8657: 8657: 8657: const char *__names[13]; 8657: }; 8657: 8657: typedef struct __locale_struct *__locale_t; 8657: # 23 "/usr/include/arm-linux-gnueabihf/bits/types/locale_t.h" 2 3 4 8657: 8657: typedef __locale_t locale_t; 8657: # 200 "/usr/include/stdlib.h" 2 3 4 8657: 8657: extern long int strtol_l (const char *__restrict __nptr, 8657: char **__restrict __endptr, int __base, 8657: locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); 8657: 8657: extern unsigned long int strtoul_l (const char *__restrict __nptr, 8657: char **__restrict __endptr, 8657: int __base, locale_t __loc) 8657: throw () __attribute__ ((__nonnull__ (1, 4))); 8657: 8657: __extension__ 8657: extern long long int strtoll_l (const char *__restrict __nptr, 8657: char **__restrict __endptr, int __base, 8657: locale_t __loc) 8657: throw () __attribute__ ((__nonnull__ (1, 4))); 8657: 8657: __extension__ 8657: extern unsigned long long int strtoull_l (const char *__restrict __nptr, 8657: char **__restrict __endptr, 8657: int __base, locale_t __loc) 8657: throw () __attribute__ ((__nonnull__ (1, 4))); 8657: 8657: extern double strtod_l (const char *__restrict __nptr, 8657: char **__restrict __endptr, locale_t __loc) 8657: throw () __attribute__ ((__nonnull__ (1, 3))); 8657: 8657: extern float strtof_l (const char *__restrict __nptr, 8657: char **__restrict __endptr, locale_t __loc) 8657: throw () __attribute__ ((__nonnull__ (1, 3))); 8657: 8657: extern long double strtold_l (const char *__restrict __nptr, 8657: char **__restrict __endptr, 8657: locale_t __loc) 8657: throw () __attribute__ ((__nonnull__ (1, 3))); 8657: # 245 "/usr/include/stdlib.h" 3 4 8657: extern __inline __attribute__ ((__gnu_inline__)) int 8657: __attribute__ ((__leaf__)) atoi (const char *__nptr) throw () 8657: { 8657: return (int) strtol (__nptr, (char **) __null, 10); 8657: } 8657: extern __inline __attribute__ ((__gnu_inline__)) long int 8657: __attribute__ ((__leaf__)) atol (const char *__nptr) throw () 8657: { 8657: return strtol (__nptr, (char **) __null, 10); 8657: } 8657: 8657: 8657: __extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int 8657: __attribute__ ((__leaf__)) atoll (const char *__nptr) throw () 8657: { 8657: return strtoll (__nptr, (char **) __null, 10); 8657: } 8657: # 270 "/usr/include/stdlib.h" 3 4 8657: extern char *l64a (long int __n) throw () __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: extern long int a64l (const char *__s) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/sys/types.h" 1 3 4 8657: # 27 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4 8657: extern "C" { 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/types.h" 1 3 4 8657: # 27 "/usr/include/arm-linux-gnueabihf/bits/types.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4 8657: # 28 "/usr/include/arm-linux-gnueabihf/bits/types.h" 2 3 4 8657: 8657: 8657: typedef unsigned char __u_char; 8657: typedef unsigned short int __u_short; 8657: typedef unsigned int __u_int; 8657: typedef unsigned long int __u_long; 8657: 8657: 8657: typedef signed char __int8_t; 8657: typedef unsigned char __uint8_t; 8657: typedef signed short int __int16_t; 8657: typedef unsigned short int __uint16_t; 8657: typedef signed int __int32_t; 8657: typedef unsigned int __uint32_t; 8657: 8657: 8657: 8657: 8657: __extension__ typedef signed long long int __int64_t; 8657: __extension__ typedef unsigned long long int __uint64_t; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: __extension__ typedef long long int __quad_t; 8657: __extension__ typedef unsigned long long int __u_quad_t; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: __extension__ typedef long long int __intmax_t; 8657: __extension__ typedef unsigned long long int __uintmax_t; 8657: # 130 "/usr/include/arm-linux-gnueabihf/bits/types.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/typesizes.h" 1 3 4 8657: # 131 "/usr/include/arm-linux-gnueabihf/bits/types.h" 2 3 4 8657: 8657: 8657: __extension__ typedef __u_quad_t __dev_t; 8657: __extension__ typedef unsigned int __uid_t; 8657: __extension__ typedef unsigned int __gid_t; 8657: __extension__ typedef unsigned long int __ino_t; 8657: __extension__ typedef __u_quad_t __ino64_t; 8657: __extension__ typedef unsigned int __mode_t; 8657: __extension__ typedef unsigned int __nlink_t; 8657: __extension__ typedef long int __off_t; 8657: __extension__ typedef __quad_t __off64_t; 8657: __extension__ typedef int __pid_t; 8657: __extension__ typedef struct { int __val[2]; } __fsid_t; 8657: __extension__ typedef long int __clock_t; 8657: __extension__ typedef unsigned long int __rlim_t; 8657: __extension__ typedef __u_quad_t __rlim64_t; 8657: __extension__ typedef unsigned int __id_t; 8657: __extension__ typedef long int __time_t; 8657: __extension__ typedef unsigned int __useconds_t; 8657: __extension__ typedef long int __suseconds_t; 8657: 8657: __extension__ typedef int __daddr_t; 8657: __extension__ typedef int __key_t; 8657: 8657: 8657: __extension__ typedef int __clockid_t; 8657: 8657: 8657: __extension__ typedef void * __timer_t; 8657: 8657: 8657: __extension__ typedef long int __blksize_t; 8657: 8657: 8657: 8657: 8657: __extension__ typedef long int __blkcnt_t; 8657: __extension__ typedef __quad_t __blkcnt64_t; 8657: 8657: 8657: __extension__ typedef unsigned long int __fsblkcnt_t; 8657: __extension__ typedef __u_quad_t __fsblkcnt64_t; 8657: 8657: 8657: __extension__ typedef unsigned long int __fsfilcnt_t; 8657: __extension__ typedef __u_quad_t __fsfilcnt64_t; 8657: 8657: 8657: __extension__ typedef int __fsword_t; 8657: 8657: __extension__ typedef int __ssize_t; 8657: 8657: 8657: __extension__ typedef long int __syscall_slong_t; 8657: 8657: __extension__ typedef unsigned long int __syscall_ulong_t; 8657: 8657: 8657: 8657: typedef __off64_t __loff_t; 8657: typedef __quad_t *__qaddr_t; 8657: typedef char *__caddr_t; 8657: 8657: 8657: __extension__ typedef int __intptr_t; 8657: 8657: 8657: __extension__ typedef unsigned int __socklen_t; 8657: 8657: 8657: 8657: 8657: typedef int __sig_atomic_t; 8657: # 30 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8657: 8657: 8657: 8657: typedef __u_char u_char; 8657: typedef __u_short u_short; 8657: typedef __u_int u_int; 8657: typedef __u_long u_long; 8657: typedef __quad_t quad_t; 8657: typedef __u_quad_t u_quad_t; 8657: typedef __fsid_t fsid_t; 8657: 8657: 8657: 8657: 8657: typedef __loff_t loff_t; 8657: 8657: 8657: 8657: typedef __ino_t ino_t; 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef __ino64_t ino64_t; 8657: 8657: 8657: 8657: 8657: typedef __dev_t dev_t; 8657: 8657: 8657: 8657: 8657: typedef __gid_t gid_t; 8657: 8657: 8657: 8657: 8657: typedef __mode_t mode_t; 8657: 8657: 8657: 8657: 8657: typedef __nlink_t nlink_t; 8657: 8657: 8657: 8657: 8657: typedef __uid_t uid_t; 8657: 8657: 8657: 8657: 8657: 8657: typedef __off_t off_t; 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef __off64_t off64_t; 8657: 8657: 8657: 8657: 8657: typedef __pid_t pid_t; 8657: 8657: 8657: 8657: 8657: 8657: typedef __id_t id_t; 8657: 8657: 8657: 8657: 8657: typedef __ssize_t ssize_t; 8657: 8657: 8657: 8657: 8657: 8657: typedef __daddr_t daddr_t; 8657: typedef __caddr_t caddr_t; 8657: 8657: 8657: 8657: 8657: 8657: typedef __key_t key_t; 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/clock_t.h" 1 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef __clock_t clock_t; 8657: # 128 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/clockid_t.h" 1 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef __clockid_t clockid_t; 8657: # 130 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/time_t.h" 1 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef __time_t time_t; 8657: # 131 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/timer_t.h" 1 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef __timer_t timer_t; 8657: # 132 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8657: 8657: 8657: 8657: typedef __useconds_t useconds_t; 8657: 8657: 8657: 8657: typedef __suseconds_t suseconds_t; 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8657: # 146 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8657: 8657: 8657: 8657: typedef unsigned long int ulong; 8657: typedef unsigned short int ushort; 8657: typedef unsigned int uint; 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdint-intn.h" 1 3 4 8657: # 24 "/usr/include/arm-linux-gnueabihf/bits/stdint-intn.h" 3 4 8657: typedef __int8_t int8_t; 8657: typedef __int16_t int16_t; 8657: typedef __int32_t int32_t; 8657: typedef __int64_t int64_t; 8657: # 157 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8657: # 178 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4 8657: typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); 8657: typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); 8657: typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); 8657: typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); 8657: 8657: typedef int register_t __attribute__ ((__mode__ (__word__))); 8657: # 194 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4 8657: # 1 "/usr/include/endian.h" 1 3 4 8657: # 36 "/usr/include/endian.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/endian.h" 1 3 4 8657: # 37 "/usr/include/endian.h" 2 3 4 8657: # 60 "/usr/include/endian.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/byteswap.h" 1 3 4 8657: # 34 "/usr/include/arm-linux-gnueabihf/bits/byteswap.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/byteswap-16.h" 1 3 4 8657: # 35 "/usr/include/arm-linux-gnueabihf/bits/byteswap.h" 2 3 4 8657: # 43 "/usr/include/arm-linux-gnueabihf/bits/byteswap.h" 3 4 8657: static __inline unsigned int 8657: __bswap_32 (unsigned int __bsx) 8657: { 8657: return __builtin_bswap32 (__bsx); 8657: } 8657: # 74 "/usr/include/arm-linux-gnueabihf/bits/byteswap.h" 3 4 8657: static __inline __uint64_t 8657: __bswap_64 (__uint64_t __bsx) 8657: { 8657: return __builtin_bswap64 (__bsx); 8657: } 8657: # 61 "/usr/include/endian.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/uintn-identity.h" 1 3 4 8657: # 32 "/usr/include/arm-linux-gnueabihf/bits/uintn-identity.h" 3 4 8657: static __inline __uint16_t 8657: __uint16_identity (__uint16_t __x) 8657: { 8657: return __x; 8657: } 8657: 8657: static __inline __uint32_t 8657: __uint32_identity (__uint32_t __x) 8657: { 8657: return __x; 8657: } 8657: 8657: static __inline __uint64_t 8657: __uint64_identity (__uint64_t __x) 8657: { 8657: return __x; 8657: } 8657: # 62 "/usr/include/endian.h" 2 3 4 8657: # 195 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/sys/select.h" 1 3 4 8657: # 30 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/select.h" 1 3 4 8657: # 31 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/sigset_t.h" 1 3 4 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/__sigset_t.h" 1 3 4 8657: 8657: 8657: 8657: 8657: typedef struct 8657: { 8657: unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; 8657: } __sigset_t; 8657: # 5 "/usr/include/arm-linux-gnueabihf/bits/types/sigset_t.h" 2 3 4 8657: 8657: 8657: typedef __sigset_t sigset_t; 8657: # 34 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/struct_timeval.h" 1 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: struct timeval 8657: { 8657: __time_t tv_sec; 8657: __suseconds_t tv_usec; 8657: }; 8657: # 38 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/struct_timespec.h" 1 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: struct timespec 8657: { 8657: __time_t tv_sec; 8657: __syscall_slong_t tv_nsec; 8657: }; 8657: # 40 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4 8657: # 49 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4 8657: typedef long int __fd_mask; 8657: # 59 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4 8657: typedef struct 8657: { 8657: 8657: 8657: 8657: __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; 8657: 8657: 8657: 8657: 8657: 8657: } fd_set; 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef __fd_mask fd_mask; 8657: # 91 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4 8657: extern "C" { 8657: # 101 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4 8657: extern int select (int __nfds, fd_set *__restrict __readfds, 8657: fd_set *__restrict __writefds, 8657: fd_set *__restrict __exceptfds, 8657: struct timeval *__restrict __timeout); 8657: # 113 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4 8657: extern int pselect (int __nfds, fd_set *__restrict __readfds, 8657: fd_set *__restrict __writefds, 8657: fd_set *__restrict __exceptfds, 8657: const struct timespec *__restrict __timeout, 8657: const __sigset_t *__restrict __sigmask); 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/select2.h" 1 3 4 8657: # 24 "/usr/include/arm-linux-gnueabihf/bits/select2.h" 3 4 8657: extern long int __fdelt_chk (long int __d); 8657: extern long int __fdelt_warn (long int __d) 8657: __attribute__((__warning__ ("bit outside of fd_set selected"))); 8657: # 124 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4 8657: 8657: 8657: } 8657: # 198 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/sys/sysmacros.h" 1 3 4 8657: # 41 "/usr/include/arm-linux-gnueabihf/sys/sysmacros.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/sysmacros.h" 1 3 4 8657: # 42 "/usr/include/arm-linux-gnueabihf/sys/sysmacros.h" 2 3 4 8657: # 71 "/usr/include/arm-linux-gnueabihf/sys/sysmacros.h" 3 4 8657: extern "C" { 8657: 8657: extern unsigned int gnu_dev_major (__dev_t __dev) throw () __attribute__ ((__const__)); 8657: extern unsigned int gnu_dev_minor (__dev_t __dev) throw () __attribute__ ((__const__)); 8657: extern __dev_t gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw () __attribute__ ((__const__)); 8657: 8657: 8657: 8657: __extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) unsigned int __attribute__ ((__leaf__)) gnu_dev_major (__dev_t __dev) throw () { unsigned int __major; __major = ((__dev & (__dev_t) 0x00000000000fff00u) >> 8); __major |= ((__dev & (__dev_t) 0xfffff00000000000u) >> 32); return __major; } 8657: __extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) unsigned int __attribute__ ((__leaf__)) gnu_dev_minor (__dev_t __dev) throw () { unsigned int __minor; __minor = ((__dev & (__dev_t) 0x00000000000000ffu) >> 0); __minor |= ((__dev & (__dev_t) 0x00000ffffff00000u) >> 12); return __minor; } 8657: __extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) __dev_t __attribute__ ((__leaf__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw () { __dev_t __dev; __dev = (((__dev_t) (__major & 0x00000fffu)) << 8); __dev |= (((__dev_t) (__major & 0xfffff000u)) << 32); __dev |= (((__dev_t) (__minor & 0x000000ffu)) << 0); __dev |= (((__dev_t) (__minor & 0xffffff00u)) << 12); return __dev; } 8657: 8657: 8657: 8657: } 8657: # 206 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef __blksize_t blksize_t; 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef __blkcnt_t blkcnt_t; 8657: 8657: 8657: 8657: typedef __fsblkcnt_t fsblkcnt_t; 8657: 8657: 8657: 8657: typedef __fsfilcnt_t fsfilcnt_t; 8657: # 246 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4 8657: typedef __blkcnt64_t blkcnt64_t; 8657: typedef __fsblkcnt64_t fsblkcnt64_t; 8657: typedef __fsfilcnt64_t fsfilcnt64_t; 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h" 1 3 4 8657: # 23 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h" 1 3 4 8657: # 58 "/usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes-arch.h" 1 3 4 8657: # 41 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes-arch.h" 3 4 8657: struct __pthread_rwlock_arch_t 8657: { 8657: unsigned int __readers; 8657: unsigned int __writers; 8657: unsigned int __wrphase_futex; 8657: unsigned int __writers_futex; 8657: unsigned int __pad3; 8657: unsigned int __pad4; 8657: # 59 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes-arch.h" 3 4 8657: unsigned char __flags; 8657: unsigned char __shared; 8657: unsigned char __pad1; 8657: unsigned char __pad2; 8657: 8657: int __cur_writer; 8657: }; 8657: # 59 "/usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h" 2 3 4 8657: # 69 "/usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h" 3 4 8657: typedef struct __pthread_internal_slist 8657: { 8657: struct __pthread_internal_slist *__next; 8657: } __pthread_slist_t; 8657: # 99 "/usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h" 3 4 8657: struct __pthread_mutex_s 8657: { 8657: int __lock ; 8657: unsigned int __count; 8657: int __owner; 8657: 8657: 8657: 8657: 8657: 8657: int __kind; 8657: 8657: 8657: 8657: 8657: 8657: 8657: unsigned int __nusers; 8657: __extension__ union 8657: { 8657: int __spins; 8657: __pthread_slist_t __list; 8657: }; 8657: 8657: 8657: }; 8657: 8657: 8657: 8657: 8657: struct __pthread_cond_s 8657: { 8657: __extension__ union 8657: { 8657: __extension__ unsigned long long int __wseq; 8657: struct 8657: { 8657: unsigned int __low; 8657: unsigned int __high; 8657: } __wseq32; 8657: }; 8657: __extension__ union 8657: { 8657: __extension__ unsigned long long int __g1_start; 8657: struct 8657: { 8657: unsigned int __low; 8657: unsigned int __high; 8657: } __g1_start32; 8657: }; 8657: unsigned int __g_refs[2] ; 8657: unsigned int __g_size[2]; 8657: unsigned int __g1_orig_size; 8657: unsigned int __wrefs; 8657: unsigned int __g_signals[2]; 8657: }; 8657: # 24 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h" 2 3 4 8657: 8657: 8657: 8657: typedef unsigned long int pthread_t; 8657: 8657: 8657: 8657: 8657: typedef union 8657: { 8657: char __size[4]; 8657: int __align; 8657: } pthread_mutexattr_t; 8657: 8657: 8657: 8657: 8657: typedef union 8657: { 8657: char __size[4]; 8657: int __align; 8657: } pthread_condattr_t; 8657: 8657: 8657: 8657: typedef unsigned int pthread_key_t; 8657: 8657: 8657: 8657: typedef int pthread_once_t; 8657: 8657: 8657: union pthread_attr_t 8657: { 8657: char __size[36]; 8657: long int __align; 8657: }; 8657: 8657: typedef union pthread_attr_t pthread_attr_t; 8657: 8657: 8657: 8657: 8657: typedef union 8657: { 8657: struct __pthread_mutex_s __data; 8657: char __size[24]; 8657: long int __align; 8657: } pthread_mutex_t; 8657: 8657: 8657: typedef union 8657: { 8657: struct __pthread_cond_s __data; 8657: char __size[48]; 8657: __extension__ long long int __align; 8657: } pthread_cond_t; 8657: 8657: 8657: 8657: 8657: 8657: typedef union 8657: { 8657: struct __pthread_rwlock_arch_t __data; 8657: char __size[32]; 8657: long int __align; 8657: } pthread_rwlock_t; 8657: 8657: typedef union 8657: { 8657: char __size[8]; 8657: long int __align; 8657: } pthread_rwlockattr_t; 8657: 8657: 8657: 8657: 8657: 8657: typedef volatile int pthread_spinlock_t; 8657: 8657: 8657: 8657: 8657: typedef union 8657: { 8657: char __size[20]; 8657: long int __align; 8657: } pthread_barrier_t; 8657: 8657: typedef union 8657: { 8657: char __size[4]; 8657: int __align; 8657: } pthread_barrierattr_t; 8657: # 255 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8657: 8657: 8657: } 8657: # 280 "/usr/include/stdlib.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern long int random (void) throw (); 8657: 8657: 8657: extern void srandom (unsigned int __seed) throw (); 8657: 8657: 8657: 8657: 8657: 8657: extern char *initstate (unsigned int __seed, char *__statebuf, 8657: size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); 8657: 8657: 8657: 8657: extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: struct random_data 8657: { 8657: int32_t *fptr; 8657: int32_t *rptr; 8657: int32_t *state; 8657: int rand_type; 8657: int rand_deg; 8657: int rand_sep; 8657: int32_t *end_ptr; 8657: }; 8657: 8657: extern int random_r (struct random_data *__restrict __buf, 8657: int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: extern int srandom_r (unsigned int __seed, struct random_data *__buf) 8657: throw () __attribute__ ((__nonnull__ (2))); 8657: 8657: extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, 8657: size_t __statelen, 8657: struct random_data *__restrict __buf) 8657: throw () __attribute__ ((__nonnull__ (2, 4))); 8657: 8657: extern int setstate_r (char *__restrict __statebuf, 8657: struct random_data *__restrict __buf) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: 8657: 8657: extern int rand (void) throw (); 8657: 8657: extern void srand (unsigned int __seed) throw (); 8657: 8657: 8657: 8657: extern int rand_r (unsigned int *__seed) throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern double drand48 (void) throw (); 8657: extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern long int lrand48 (void) throw (); 8657: extern long int nrand48 (unsigned short int __xsubi[3]) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern long int mrand48 (void) throw (); 8657: extern long int jrand48 (unsigned short int __xsubi[3]) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern void srand48 (long int __seedval) throw (); 8657: extern unsigned short int *seed48 (unsigned short int __seed16v[3]) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: 8657: struct drand48_data 8657: { 8657: unsigned short int __x[3]; 8657: unsigned short int __old_x[3]; 8657: unsigned short int __c; 8657: unsigned short int __init; 8657: __extension__ unsigned long long int __a; 8657: 8657: }; 8657: 8657: 8657: extern int drand48_r (struct drand48_data *__restrict __buffer, 8657: double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 8657: extern int erand48_r (unsigned short int __xsubi[3], 8657: struct drand48_data *__restrict __buffer, 8657: double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int lrand48_r (struct drand48_data *__restrict __buffer, 8657: long int *__restrict __result) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: extern int nrand48_r (unsigned short int __xsubi[3], 8657: struct drand48_data *__restrict __buffer, 8657: long int *__restrict __result) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int mrand48_r (struct drand48_data *__restrict __buffer, 8657: long int *__restrict __result) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: extern int jrand48_r (unsigned short int __xsubi[3], 8657: struct drand48_data *__restrict __buffer, 8657: long int *__restrict __result) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int srand48_r (long int __seedval, struct drand48_data *__buffer) 8657: throw () __attribute__ ((__nonnull__ (2))); 8657: 8657: extern int seed48_r (unsigned short int __seed16v[3], 8657: struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: extern int lcong48_r (unsigned short int __param[7], 8657: struct drand48_data *__buffer) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: 8657: extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8657: 8657: extern void *calloc (size_t __nmemb, size_t __size) 8657: throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern void *realloc (void *__ptr, size_t __size) 8657: throw () __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) 8657: throw () __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: extern void free (void *__ptr) throw (); 8657: 8657: 8657: # 1 "/usr/include/alloca.h" 1 3 4 8657: # 24 "/usr/include/alloca.h" 3 4 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8657: # 25 "/usr/include/alloca.h" 2 3 4 8657: 8657: extern "C" { 8657: 8657: 8657: 8657: 8657: 8657: extern void *alloca (size_t __size) throw (); 8657: 8657: 8657: 8657: 8657: 8657: } 8657: # 452 "/usr/include/stdlib.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) 8657: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: extern void *aligned_alloc (size_t __alignment, size_t __size) 8657: throw () __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: extern void abort (void) throw () __attribute__ ((__noreturn__)); 8657: 8657: 8657: 8657: extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: extern "C++" int at_quick_exit (void (*__func) (void)) 8657: throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); 8657: # 492 "/usr/include/stdlib.h" 3 4 8657: extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: 8657: extern void exit (int __status) throw () __attribute__ ((__noreturn__)); 8657: 8657: 8657: 8657: 8657: 8657: extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__)); 8657: 8657: 8657: 8657: 8657: 8657: extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); 8657: 8657: 8657: 8657: 8657: extern char *getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: extern char *secure_getenv (const char *__name) 8657: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: 8657: extern int setenv (const char *__name, const char *__value, int __replace) 8657: throw () __attribute__ ((__nonnull__ (2))); 8657: 8657: 8657: extern int unsetenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int clearenv (void) throw (); 8657: # 557 "/usr/include/stdlib.h" 3 4 8657: extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); 8657: # 570 "/usr/include/stdlib.h" 3 4 8657: extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: # 580 "/usr/include/stdlib.h" 3 4 8657: extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: # 592 "/usr/include/stdlib.h" 3 4 8657: extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: # 602 "/usr/include/stdlib.h" 3 4 8657: extern int mkstemps64 (char *__template, int __suffixlen) 8657: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: # 613 "/usr/include/stdlib.h" 3 4 8657: extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: # 624 "/usr/include/stdlib.h" 3 4 8657: extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: # 634 "/usr/include/stdlib.h" 3 4 8657: extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: # 644 "/usr/include/stdlib.h" 3 4 8657: extern int mkostemps (char *__template, int __suffixlen, int __flags) 8657: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: # 656 "/usr/include/stdlib.h" 3 4 8657: extern int mkostemps64 (char *__template, int __suffixlen, int __flags) 8657: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: # 666 "/usr/include/stdlib.h" 3 4 8657: extern int system (const char *__command) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: 8657: extern char *canonicalize_file_name (const char *__name) 8657: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: # 682 "/usr/include/stdlib.h" 3 4 8657: extern char *realpath (const char *__restrict __name, 8657: char *__restrict __resolved) throw () __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef int (*__compar_fn_t) (const void *, const void *); 8657: 8657: 8657: typedef __compar_fn_t comparison_fn_t; 8657: 8657: 8657: 8657: typedef int (*__compar_d_fn_t) (const void *, const void *, void *); 8657: 8657: 8657: 8657: 8657: extern void *bsearch (const void *__key, const void *__base, 8657: size_t __nmemb, size_t __size, __compar_fn_t __compar) 8657: __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdlib-bsearch.h" 1 3 4 8657: # 19 "/usr/include/arm-linux-gnueabihf/bits/stdlib-bsearch.h" 3 4 8657: extern __inline __attribute__ ((__gnu_inline__)) void * 8657: bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, 8657: __compar_fn_t __compar) 8657: { 8657: size_t __l, __u, __idx; 8657: const void *__p; 8657: int __comparison; 8657: 8657: __l = 0; 8657: __u = __nmemb; 8657: while (__l < __u) 8657: { 8657: __idx = (__l + __u) / 2; 8657: __p = (void *) (((const char *) __base) + (__idx * __size)); 8657: __comparison = (*__compar) (__key, __p); 8657: if (__comparison < 0) 8657: __u = __idx; 8657: else if (__comparison > 0) 8657: __l = __idx + 1; 8657: else 8657: return (void *) __p; 8657: } 8657: 8657: return __null; 8657: } 8657: # 708 "/usr/include/stdlib.h" 2 3 4 8657: 8657: 8657: 8657: 8657: extern void qsort (void *__base, size_t __nmemb, size_t __size, 8657: __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); 8657: 8657: extern void qsort_r (void *__base, size_t __nmemb, size_t __size, 8657: __compar_d_fn_t __compar, void *__arg) 8657: __attribute__ ((__nonnull__ (1, 4))); 8657: 8657: 8657: 8657: 8657: extern int abs (int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8657: extern long int labs (long int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: __extension__ extern long long int llabs (long long int __x) 8657: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern div_t div (int __numer, int __denom) 8657: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8657: extern ldiv_t ldiv (long int __numer, long int __denom) 8657: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: __extension__ extern lldiv_t lldiv (long long int __numer, 8657: long long int __denom) 8657: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8657: # 754 "/usr/include/stdlib.h" 3 4 8657: extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, 8657: int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, 8657: int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: extern char *gcvt (double __value, int __ndigit, char *__buf) 8657: throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: extern char *qecvt (long double __value, int __ndigit, 8657: int *__restrict __decpt, int *__restrict __sign) 8657: throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8657: extern char *qfcvt (long double __value, int __ndigit, 8657: int *__restrict __decpt, int *__restrict __sign) 8657: throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8657: extern char *qgcvt (long double __value, int __ndigit, char *__buf) 8657: throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, 8657: int *__restrict __sign, char *__restrict __buf, 8657: size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8657: extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, 8657: int *__restrict __sign, char *__restrict __buf, 8657: size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8657: 8657: extern int qecvt_r (long double __value, int __ndigit, 8657: int *__restrict __decpt, int *__restrict __sign, 8657: char *__restrict __buf, size_t __len) 8657: throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8657: extern int qfcvt_r (long double __value, int __ndigit, 8657: int *__restrict __decpt, int *__restrict __sign, 8657: char *__restrict __buf, size_t __len) 8657: throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8657: 8657: 8657: 8657: 8657: 8657: extern int mblen (const char *__s, size_t __n) throw (); 8657: 8657: 8657: extern int mbtowc (wchar_t *__restrict __pwc, 8657: const char *__restrict __s, size_t __n) throw (); 8657: 8657: 8657: extern int wctomb (char *__s, wchar_t __wchar) throw (); 8657: 8657: 8657: 8657: extern size_t mbstowcs (wchar_t *__restrict __pwcs, 8657: const char *__restrict __s, size_t __n) throw (); 8657: 8657: extern size_t wcstombs (char *__restrict __s, 8657: const wchar_t *__restrict __pwcs, size_t __n) 8657: throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int rpmatch (const char *__response) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8657: # 839 "/usr/include/stdlib.h" 3 4 8657: extern int getsubopt (char **__restrict __optionp, 8657: char *const *__restrict __tokens, 8657: char **__restrict __valuep) 8657: throw () __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: 8657: extern void setkey (const char *__key) throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int grantpt (int __fd) throw (); 8657: 8657: 8657: 8657: extern int unlockpt (int __fd) throw (); 8657: 8657: 8657: 8657: 8657: extern char *ptsname (int __fd) throw () __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int ptsname_r (int __fd, char *__buf, size_t __buflen) 8657: throw () __attribute__ ((__nonnull__ (2))); 8657: 8657: 8657: extern int getpt (void); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int getloadavg (double __loadavg[], int __nelem) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: # 901 "/usr/include/stdlib.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdlib-float.h" 1 3 4 8657: # 24 "/usr/include/arm-linux-gnueabihf/bits/stdlib-float.h" 3 4 8657: extern __inline __attribute__ ((__gnu_inline__)) double 8657: __attribute__ ((__leaf__)) atof (const char *__nptr) throw () 8657: { 8657: return strtod (__nptr, (char **) __null); 8657: } 8657: # 902 "/usr/include/stdlib.h" 2 3 4 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdlib.h" 1 3 4 8657: # 23 "/usr/include/arm-linux-gnueabihf/bits/stdlib.h" 3 4 8657: extern char *__realpath_chk (const char *__restrict __name, 8657: char *__restrict __resolved, 8657: size_t __resolvedlen) throw () __attribute__ ((__warn_unused_result__)); 8657: extern char *__realpath_alias (const char *__restrict __name, char *__restrict __resolved) throw () __asm__ ("" "realpath") 8657: 8657: __attribute__ ((__warn_unused_result__)); 8657: extern char *__realpath_chk_warn (const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) throw () __asm__ ("" "__realpath_chk") 8657: 8657: 8657: __attribute__ ((__warn_unused_result__)) 8657: __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer"))) 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8657: __attribute__ ((__leaf__)) realpath (const char *__restrict __name, char *__restrict __resolved) throw () 8657: { 8657: if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1) 8657: { 8657: 8657: 8657: 8657: 8657: return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); 8657: } 8657: 8657: return __realpath_alias (__name, __resolved); 8657: } 8657: 8657: 8657: extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, 8657: size_t __nreal) throw () __attribute__ ((__nonnull__ (2))); 8657: extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) throw () __asm__ ("" "ptsname_r") 8657: 8657: __attribute__ ((__nonnull__ (2))); 8657: extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) throw () __asm__ ("" "__ptsname_r_chk") 8657: 8657: 8657: __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf"))) 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: __attribute__ ((__leaf__)) ptsname_r (int __fd, char *__buf, size_t __buflen) throw () 8657: { 8657: if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__buflen)) 8657: return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 8657: if (__buflen > __builtin_object_size (__buf, 2 > 1)) 8657: return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 8657: } 8657: return __ptsname_r_alias (__fd, __buf, __buflen); 8657: } 8657: 8657: 8657: extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen) 8657: throw () __attribute__ ((__warn_unused_result__)); 8657: extern int __wctomb_alias (char *__s, wchar_t __wchar) throw () __asm__ ("" "wctomb") 8657: __attribute__ ((__warn_unused_result__)); 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int 8657: __attribute__ ((__leaf__)) wctomb (char *__s, wchar_t __wchar) throw () 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) 8657: return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1)); 8657: return __wctomb_alias (__s, __wchar); 8657: } 8657: 8657: 8657: extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, 8657: const char *__restrict __src, 8657: size_t __len, size_t __dstlen) throw (); 8657: extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) throw () __asm__ ("" "mbstowcs") 8657: 8657: 8657: ; 8657: extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__mbstowcs_chk") 8657: 8657: 8657: 8657: __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8657: __attribute__ ((__leaf__)) mbstowcs (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) throw () 8657: 8657: { 8657: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__len)) 8657: return __mbstowcs_chk (__dst, __src, __len, 8657: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8657: 8657: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 8657: return __mbstowcs_chk_warn (__dst, __src, __len, 8657: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8657: } 8657: return __mbstowcs_alias (__dst, __src, __len); 8657: } 8657: 8657: 8657: extern size_t __wcstombs_chk (char *__restrict __dst, 8657: const wchar_t *__restrict __src, 8657: size_t __len, size_t __dstlen) throw (); 8657: extern size_t __wcstombs_alias (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) throw () __asm__ ("" "wcstombs") 8657: 8657: 8657: ; 8657: extern size_t __wcstombs_chk_warn (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__wcstombs_chk") 8657: 8657: 8657: 8657: __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len"))); 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8657: __attribute__ ((__leaf__)) wcstombs (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) throw () 8657: 8657: { 8657: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__len)) 8657: return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); 8657: if (__len > __builtin_object_size (__dst, 2 > 1)) 8657: return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); 8657: } 8657: return __wcstombs_alias (__dst, __src, __len); 8657: } 8657: # 906 "/usr/include/stdlib.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: } 8657: # 76 "/usr/include/c++/8/cstdlib" 2 3 8657: 8657: # 1 "/usr/include/c++/8/bits/std_abs.h" 1 3 8657: # 33 "/usr/include/c++/8/bits/std_abs.h" 3 8657: 8657: # 34 "/usr/include/c++/8/bits/std_abs.h" 3 8657: # 46 "/usr/include/c++/8/bits/std_abs.h" 3 8657: extern "C++" 8657: { 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: using ::abs; 8657: 8657: 8657: inline long 8657: abs(long __i) { return __builtin_labs(__i); } 8657: 8657: 8657: 8657: inline long long 8657: abs(long long __x) { return __builtin_llabs (__x); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: inline constexpr double 8657: abs(double __x) 8657: { return __builtin_fabs(__x); } 8657: 8657: inline constexpr float 8657: abs(float __x) 8657: { return __builtin_fabsf(__x); } 8657: 8657: inline constexpr long double 8657: abs(long double __x) 8657: { return __builtin_fabsl(__x); } 8657: # 106 "/usr/include/c++/8/bits/std_abs.h" 3 8657: 8657: } 8657: } 8657: # 78 "/usr/include/c++/8/cstdlib" 2 3 8657: # 118 "/usr/include/c++/8/cstdlib" 3 8657: extern "C++" 8657: { 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: using ::div_t; 8657: using ::ldiv_t; 8657: 8657: using ::abort; 8657: using ::atexit; 8657: 8657: 8657: using ::at_quick_exit; 8657: 8657: 8657: using ::atof; 8657: using ::atoi; 8657: using ::atol; 8657: using ::bsearch; 8657: using ::calloc; 8657: using ::div; 8657: using ::exit; 8657: using ::free; 8657: using ::getenv; 8657: using ::labs; 8657: using ::ldiv; 8657: using ::malloc; 8657: 8657: using ::mblen; 8657: using ::mbstowcs; 8657: using ::mbtowc; 8657: 8657: using ::qsort; 8657: 8657: 8657: using ::quick_exit; 8657: 8657: 8657: using ::rand; 8657: using ::realloc; 8657: using ::srand; 8657: using ::strtod; 8657: using ::strtol; 8657: using ::strtoul; 8657: using ::system; 8657: 8657: using ::wcstombs; 8657: using ::wctomb; 8657: 8657: 8657: 8657: inline ldiv_t 8657: div(long __i, long __j) { return ldiv(__i, __j); } 8657: 8657: 8657: 8657: 8657: } 8657: # 189 "/usr/include/c++/8/cstdlib" 3 8657: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: using ::lldiv_t; 8657: 8657: 8657: 8657: 8657: 8657: using ::_Exit; 8657: 8657: 8657: 8657: using ::llabs; 8657: 8657: inline lldiv_t 8657: div(long long __n, long long __d) 8657: { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } 8657: 8657: using ::lldiv; 8657: # 221 "/usr/include/c++/8/cstdlib" 3 8657: using ::atoll; 8657: using ::strtoll; 8657: using ::strtoull; 8657: 8657: using ::strtof; 8657: using ::strtold; 8657: 8657: 8657: } 8657: 8657: namespace std 8657: { 8657: 8657: using ::__gnu_cxx::lldiv_t; 8657: 8657: using ::__gnu_cxx::_Exit; 8657: 8657: using ::__gnu_cxx::llabs; 8657: using ::__gnu_cxx::div; 8657: using ::__gnu_cxx::lldiv; 8657: 8657: using ::__gnu_cxx::atoll; 8657: using ::__gnu_cxx::strtof; 8657: using ::__gnu_cxx::strtoll; 8657: using ::__gnu_cxx::strtoull; 8657: using ::__gnu_cxx::strtold; 8657: } 8657: 8657: 8657: 8657: } 8657: # 60 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8657: # 1 "/usr/include/c++/8/bits/algorithmfwd.h" 1 3 8657: # 33 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8657: 8657: # 34 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8657: # 42 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 195 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8657: template 8657: bool 8657: all_of(_IIter, _IIter, _Predicate); 8657: 8657: template 8657: bool 8657: any_of(_IIter, _IIter, _Predicate); 8657: 8657: 8657: template 8657: bool 8657: binary_search(_FIter, _FIter, const _Tp&); 8657: 8657: template 8657: bool 8657: binary_search(_FIter, _FIter, const _Tp&, _Compare); 8657: # 224 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8657: template 8657: _OIter 8657: copy(_IIter, _IIter, _OIter); 8657: 8657: template 8657: _BIter2 8657: copy_backward(_BIter1, _BIter1, _BIter2); 8657: 8657: 8657: template 8657: _OIter 8657: copy_if(_IIter, _IIter, _OIter, _Predicate); 8657: 8657: template 8657: _OIter 8657: copy_n(_IIter, _Size, _OIter); 8657: 8657: 8657: 8657: 8657: 8657: template 8657: pair<_FIter, _FIter> 8657: equal_range(_FIter, _FIter, const _Tp&); 8657: 8657: template 8657: pair<_FIter, _FIter> 8657: equal_range(_FIter, _FIter, const _Tp&, _Compare); 8657: 8657: template 8657: void 8657: fill(_FIter, _FIter, const _Tp&); 8657: 8657: template 8657: _OIter 8657: fill_n(_OIter, _Size, const _Tp&); 8657: 8657: 8657: 8657: template 8657: _FIter1 8657: find_end(_FIter1, _FIter1, _FIter2, _FIter2); 8657: 8657: template 8657: _FIter1 8657: find_end(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 8657: 8657: 8657: 8657: 8657: 8657: template 8657: _IIter 8657: find_if_not(_IIter, _IIter, _Predicate); 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: bool 8657: includes(_IIter1, _IIter1, _IIter2, _IIter2); 8657: 8657: template 8657: bool 8657: includes(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); 8657: 8657: template 8657: void 8657: inplace_merge(_BIter, _BIter, _BIter); 8657: 8657: template 8657: void 8657: inplace_merge(_BIter, _BIter, _BIter, _Compare); 8657: 8657: 8657: template 8657: bool 8657: is_heap(_RAIter, _RAIter); 8657: 8657: template 8657: bool 8657: is_heap(_RAIter, _RAIter, _Compare); 8657: 8657: template 8657: _RAIter 8657: is_heap_until(_RAIter, _RAIter); 8657: 8657: template 8657: _RAIter 8657: is_heap_until(_RAIter, _RAIter, _Compare); 8657: 8657: template 8657: bool 8657: is_partitioned(_IIter, _IIter, _Predicate); 8657: 8657: template 8657: bool 8657: is_permutation(_FIter1, _FIter1, _FIter2); 8657: 8657: template 8657: bool 8657: is_permutation(_FIter1, _FIter1, _FIter2, _BinaryPredicate); 8657: 8657: template 8657: bool 8657: is_sorted(_FIter, _FIter); 8657: 8657: template 8657: bool 8657: is_sorted(_FIter, _FIter, _Compare); 8657: 8657: template 8657: _FIter 8657: is_sorted_until(_FIter, _FIter); 8657: 8657: template 8657: _FIter 8657: is_sorted_until(_FIter, _FIter, _Compare); 8657: 8657: 8657: template 8657: void 8657: iter_swap(_FIter1, _FIter2); 8657: 8657: template 8657: _FIter 8657: lower_bound(_FIter, _FIter, const _Tp&); 8657: 8657: template 8657: _FIter 8657: lower_bound(_FIter, _FIter, const _Tp&, _Compare); 8657: 8657: template 8657: void 8657: make_heap(_RAIter, _RAIter); 8657: 8657: template 8657: void 8657: make_heap(_RAIter, _RAIter, _Compare); 8657: 8657: template 8657: 8657: const _Tp& 8657: max(const _Tp&, const _Tp&); 8657: 8657: template 8657: 8657: const _Tp& 8657: max(const _Tp&, const _Tp&, _Compare); 8657: 8657: 8657: 8657: 8657: template 8657: 8657: const _Tp& 8657: min(const _Tp&, const _Tp&); 8657: 8657: template 8657: 8657: const _Tp& 8657: min(const _Tp&, const _Tp&, _Compare); 8657: 8657: 8657: 8657: 8657: template 8657: 8657: pair 8657: minmax(const _Tp&, const _Tp&); 8657: 8657: template 8657: 8657: pair 8657: minmax(const _Tp&, const _Tp&, _Compare); 8657: 8657: template 8657: 8657: pair<_FIter, _FIter> 8657: minmax_element(_FIter, _FIter); 8657: 8657: template 8657: 8657: pair<_FIter, _FIter> 8657: minmax_element(_FIter, _FIter, _Compare); 8657: 8657: template 8657: 8657: _Tp 8657: min(initializer_list<_Tp>); 8657: 8657: template 8657: 8657: _Tp 8657: min(initializer_list<_Tp>, _Compare); 8657: 8657: template 8657: 8657: _Tp 8657: max(initializer_list<_Tp>); 8657: 8657: template 8657: 8657: _Tp 8657: max(initializer_list<_Tp>, _Compare); 8657: 8657: template 8657: 8657: pair<_Tp, _Tp> 8657: minmax(initializer_list<_Tp>); 8657: 8657: template 8657: 8657: pair<_Tp, _Tp> 8657: minmax(initializer_list<_Tp>, _Compare); 8657: 8657: 8657: 8657: 8657: template 8657: bool 8657: next_permutation(_BIter, _BIter); 8657: 8657: template 8657: bool 8657: next_permutation(_BIter, _BIter, _Compare); 8657: 8657: 8657: template 8657: bool 8657: none_of(_IIter, _IIter, _Predicate); 8657: 8657: 8657: 8657: 8657: 8657: template 8657: _RAIter 8657: partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter); 8657: 8657: template 8657: _RAIter 8657: partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter, _Compare); 8657: 8657: 8657: 8657: 8657: template 8657: pair<_OIter1, _OIter2> 8657: partition_copy(_IIter, _IIter, _OIter1, _OIter2, _Predicate); 8657: 8657: template 8657: _FIter 8657: partition_point(_FIter, _FIter, _Predicate); 8657: 8657: 8657: template 8657: void 8657: pop_heap(_RAIter, _RAIter); 8657: 8657: template 8657: void 8657: pop_heap(_RAIter, _RAIter, _Compare); 8657: 8657: template 8657: bool 8657: prev_permutation(_BIter, _BIter); 8657: 8657: template 8657: bool 8657: prev_permutation(_BIter, _BIter, _Compare); 8657: 8657: template 8657: void 8657: push_heap(_RAIter, _RAIter); 8657: 8657: template 8657: void 8657: push_heap(_RAIter, _RAIter, _Compare); 8657: 8657: 8657: 8657: template 8657: _FIter 8657: remove(_FIter, _FIter, const _Tp&); 8657: 8657: template 8657: _FIter 8657: remove_if(_FIter, _FIter, _Predicate); 8657: 8657: template 8657: _OIter 8657: remove_copy(_IIter, _IIter, _OIter, const _Tp&); 8657: 8657: template 8657: _OIter 8657: remove_copy_if(_IIter, _IIter, _OIter, _Predicate); 8657: 8657: 8657: 8657: template 8657: _OIter 8657: replace_copy(_IIter, _IIter, _OIter, const _Tp&, const _Tp&); 8657: 8657: template 8657: _OIter 8657: replace_copy_if(_Iter, _Iter, _OIter, _Predicate, const _Tp&); 8657: 8657: 8657: 8657: template 8657: void 8657: reverse(_BIter, _BIter); 8657: 8657: template 8657: _OIter 8657: reverse_copy(_BIter, _BIter, _OIter); 8657: 8657: inline namespace _V2 8657: { 8657: template 8657: _FIter 8657: rotate(_FIter, _FIter, _FIter); 8657: } 8657: 8657: template 8657: _OIter 8657: rotate_copy(_FIter, _FIter, _FIter, _OIter); 8657: # 565 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8657: template 8657: void 8657: shuffle(_RAIter, _RAIter, _UGenerator&&); 8657: 8657: 8657: template 8657: void 8657: sort_heap(_RAIter, _RAIter); 8657: 8657: template 8657: void 8657: sort_heap(_RAIter, _RAIter, _Compare); 8657: 8657: template 8657: _BIter 8657: stable_partition(_BIter, _BIter, _Predicate); 8657: # 594 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8657: template 8657: _FIter2 8657: swap_ranges(_FIter1, _FIter1, _FIter2); 8657: 8657: 8657: 8657: template 8657: _FIter 8657: unique(_FIter, _FIter); 8657: 8657: template 8657: _FIter 8657: unique(_FIter, _FIter, _BinaryPredicate); 8657: 8657: 8657: 8657: template 8657: _FIter 8657: upper_bound(_FIter, _FIter, const _Tp&); 8657: 8657: template 8657: _FIter 8657: upper_bound(_FIter, _FIter, const _Tp&, _Compare); 8657: 8657: 8657: 8657: template 8657: _FIter 8657: adjacent_find(_FIter, _FIter); 8657: 8657: template 8657: _FIter 8657: adjacent_find(_FIter, _FIter, _BinaryPredicate); 8657: 8657: template 8657: typename iterator_traits<_IIter>::difference_type 8657: count(_IIter, _IIter, const _Tp&); 8657: 8657: template 8657: typename iterator_traits<_IIter>::difference_type 8657: count_if(_IIter, _IIter, _Predicate); 8657: 8657: template 8657: bool 8657: equal(_IIter1, _IIter1, _IIter2); 8657: 8657: template 8657: bool 8657: equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate); 8657: 8657: template 8657: _IIter 8657: find(_IIter, _IIter, const _Tp&); 8657: 8657: template 8657: _FIter1 8657: find_first_of(_FIter1, _FIter1, _FIter2, _FIter2); 8657: 8657: template 8657: _FIter1 8657: find_first_of(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 8657: 8657: template 8657: _IIter 8657: find_if(_IIter, _IIter, _Predicate); 8657: 8657: template 8657: _Funct 8657: for_each(_IIter, _IIter, _Funct); 8657: 8657: template 8657: void 8657: generate(_FIter, _FIter, _Generator); 8657: 8657: template 8657: _OIter 8657: generate_n(_OIter, _Size, _Generator); 8657: 8657: template 8657: bool 8657: lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2); 8657: 8657: template 8657: bool 8657: lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); 8657: 8657: template 8657: 8657: _FIter 8657: max_element(_FIter, _FIter); 8657: 8657: template 8657: 8657: _FIter 8657: max_element(_FIter, _FIter, _Compare); 8657: 8657: template 8657: _OIter 8657: merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8657: 8657: template 8657: _OIter 8657: merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8657: 8657: template 8657: 8657: _FIter 8657: min_element(_FIter, _FIter); 8657: 8657: template 8657: 8657: _FIter 8657: min_element(_FIter, _FIter, _Compare); 8657: 8657: template 8657: pair<_IIter1, _IIter2> 8657: mismatch(_IIter1, _IIter1, _IIter2); 8657: 8657: template 8657: pair<_IIter1, _IIter2> 8657: mismatch(_IIter1, _IIter1, _IIter2, _BinaryPredicate); 8657: 8657: template 8657: void 8657: nth_element(_RAIter, _RAIter, _RAIter); 8657: 8657: template 8657: void 8657: nth_element(_RAIter, _RAIter, _RAIter, _Compare); 8657: 8657: template 8657: void 8657: partial_sort(_RAIter, _RAIter, _RAIter); 8657: 8657: template 8657: void 8657: partial_sort(_RAIter, _RAIter, _RAIter, _Compare); 8657: 8657: template 8657: _BIter 8657: partition(_BIter, _BIter, _Predicate); 8657: 8657: template 8657: void 8657: random_shuffle(_RAIter, _RAIter); 8657: 8657: template 8657: void 8657: random_shuffle(_RAIter, _RAIter, 8657: 8657: _Generator&&); 8657: 8657: 8657: 8657: 8657: template 8657: void 8657: replace(_FIter, _FIter, const _Tp&, const _Tp&); 8657: 8657: template 8657: void 8657: replace_if(_FIter, _FIter, _Predicate, const _Tp&); 8657: 8657: template 8657: _FIter1 8657: search(_FIter1, _FIter1, _FIter2, _FIter2); 8657: 8657: template 8657: _FIter1 8657: search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 8657: 8657: template 8657: _FIter 8657: search_n(_FIter, _FIter, _Size, const _Tp&); 8657: 8657: template 8657: _FIter 8657: search_n(_FIter, _FIter, _Size, const _Tp&, _BinaryPredicate); 8657: 8657: template 8657: _OIter 8657: set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8657: 8657: template 8657: _OIter 8657: set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8657: 8657: template 8657: _OIter 8657: set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8657: 8657: template 8657: _OIter 8657: set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8657: 8657: template 8657: _OIter 8657: set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8657: 8657: template 8657: _OIter 8657: set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, 8657: _OIter, _Compare); 8657: 8657: template 8657: _OIter 8657: set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8657: 8657: template 8657: _OIter 8657: set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8657: 8657: template 8657: void 8657: sort(_RAIter, _RAIter); 8657: 8657: template 8657: void 8657: sort(_RAIter, _RAIter, _Compare); 8657: 8657: template 8657: void 8657: stable_sort(_RAIter, _RAIter); 8657: 8657: template 8657: void 8657: stable_sort(_RAIter, _RAIter, _Compare); 8657: 8657: template 8657: _OIter 8657: transform(_IIter, _IIter, _OIter, _UnaryOperation); 8657: 8657: template 8657: _OIter 8657: transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation); 8657: 8657: template 8657: _OIter 8657: unique_copy(_IIter, _IIter, _OIter); 8657: 8657: template 8657: _OIter 8657: unique_copy(_IIter, _IIter, _OIter, _BinaryPredicate); 8657: 8657: 8657: 8657: } 8657: # 61 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8657: # 1 "/usr/include/c++/8/bits/stl_heap.h" 1 3 8657: # 62 "/usr/include/c++/8/bits/stl_heap.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: _Distance 8657: __is_heap_until(_RandomAccessIterator __first, _Distance __n, 8657: _Compare& __comp) 8657: { 8657: _Distance __parent = 0; 8657: for (_Distance __child = 1; __child < __n; ++__child) 8657: { 8657: if (__comp(__first + __parent, __first + __child)) 8657: return __child; 8657: if ((__child & 1) == 0) 8657: ++__parent; 8657: } 8657: return __n; 8657: } 8657: 8657: 8657: 8657: template 8657: inline bool 8657: __is_heap(_RandomAccessIterator __first, _Distance __n) 8657: { 8657: __gnu_cxx::__ops::_Iter_less_iter __comp; 8657: return std::__is_heap_until(__first, __n, __comp) == __n; 8657: } 8657: 8657: template 8657: inline bool 8657: __is_heap(_RandomAccessIterator __first, _Compare __comp, _Distance __n) 8657: { 8657: typedef __decltype(__comp) _Cmp; 8657: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8657: return std::__is_heap_until(__first, __n, __cmp) == __n; 8657: } 8657: 8657: template 8657: inline bool 8657: __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8657: { return std::__is_heap(__first, std::distance(__first, __last)); } 8657: 8657: template 8657: inline bool 8657: __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8657: _Compare __comp) 8657: { 8657: return std::__is_heap(__first, std::move(__comp), 8657: std::distance(__first, __last)); 8657: } 8657: 8657: 8657: 8657: 8657: template 8657: void 8657: __push_heap(_RandomAccessIterator __first, 8657: _Distance __holeIndex, _Distance __topIndex, _Tp __value, 8657: _Compare& __comp) 8657: { 8657: _Distance __parent = (__holeIndex - 1) / 2; 8657: while (__holeIndex > __topIndex && __comp(__first + __parent, __value)) 8657: { 8657: *(__first + __holeIndex) = std::move(*(__first + __parent)); 8657: __holeIndex = __parent; 8657: __parent = (__holeIndex - 1) / 2; 8657: } 8657: *(__first + __holeIndex) = std::move(__value); 8657: } 8657: # 152 "/usr/include/c++/8/bits/stl_heap.h" 3 8657: template 8657: inline void 8657: push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8657: { 8657: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8657: _ValueType; 8657: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8657: _DistanceType; 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: 8657: __gnu_cxx::__ops::_Iter_less_val __comp; 8657: _ValueType __value = std::move(*(__last - 1)); 8657: std::__push_heap(__first, _DistanceType((__last - __first) - 1), 8657: _DistanceType(0), std::move(__value), __comp); 8657: } 8657: # 187 "/usr/include/c++/8/bits/stl_heap.h" 3 8657: template 8657: inline void 8657: push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8657: _Compare __comp) 8657: { 8657: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8657: _ValueType; 8657: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8657: _DistanceType; 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: 8657: __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) 8657: __cmp(std::move(__comp)); 8657: _ValueType __value = std::move(*(__last - 1)); 8657: std::__push_heap(__first, _DistanceType((__last - __first) - 1), 8657: _DistanceType(0), std::move(__value), __cmp); 8657: } 8657: 8657: template 8657: void 8657: __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, 8657: _Distance __len, _Tp __value, _Compare __comp) 8657: { 8657: const _Distance __topIndex = __holeIndex; 8657: _Distance __secondChild = __holeIndex; 8657: while (__secondChild < (__len - 1) / 2) 8657: { 8657: __secondChild = 2 * (__secondChild + 1); 8657: if (__comp(__first + __secondChild, 8657: __first + (__secondChild - 1))) 8657: __secondChild--; 8657: *(__first + __holeIndex) = std::move(*(__first + __secondChild)); 8657: __holeIndex = __secondChild; 8657: } 8657: if ((__len & 1) == 0 && __secondChild == (__len - 2) / 2) 8657: { 8657: __secondChild = 2 * (__secondChild + 1); 8657: *(__first + __holeIndex) = std::move(*(__first + (__secondChild - 1))) 8657: ; 8657: __holeIndex = __secondChild - 1; 8657: } 8657: __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) 8657: __cmp(std::move(__comp)); 8657: std::__push_heap(__first, __holeIndex, __topIndex, 8657: std::move(__value), __cmp); 8657: } 8657: 8657: template 8657: inline void 8657: __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8657: _RandomAccessIterator __result, _Compare& __comp) 8657: { 8657: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8657: _ValueType; 8657: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8657: _DistanceType; 8657: 8657: _ValueType __value = std::move(*__result); 8657: *__result = std::move(*__first); 8657: std::__adjust_heap(__first, _DistanceType(0), 8657: _DistanceType(__last - __first), 8657: std::move(__value), __comp); 8657: } 8657: # 269 "/usr/include/c++/8/bits/stl_heap.h" 3 8657: template 8657: inline void 8657: pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: ; 8657: 8657: if (__last - __first > 1) 8657: { 8657: --__last; 8657: __gnu_cxx::__ops::_Iter_less_iter __comp; 8657: std::__pop_heap(__first, __last, __last, __comp); 8657: } 8657: } 8657: # 302 "/usr/include/c++/8/bits/stl_heap.h" 3 8657: template 8657: inline void 8657: pop_heap(_RandomAccessIterator __first, 8657: _RandomAccessIterator __last, _Compare __comp) 8657: { 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: ; 8657: 8657: if (__last - __first > 1) 8657: { 8657: typedef __decltype(__comp) _Cmp; 8657: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8657: --__last; 8657: std::__pop_heap(__first, __last, __last, __cmp); 8657: } 8657: } 8657: 8657: template 8657: void 8657: __make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8657: _Compare& __comp) 8657: { 8657: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8657: _ValueType; 8657: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8657: _DistanceType; 8657: 8657: if (__last - __first < 2) 8657: return; 8657: 8657: const _DistanceType __len = __last - __first; 8657: _DistanceType __parent = (__len - 2) / 2; 8657: while (true) 8657: { 8657: _ValueType __value = std::move(*(__first + __parent)); 8657: std::__adjust_heap(__first, __parent, __len, std::move(__value), 8657: __comp); 8657: if (__parent == 0) 8657: return; 8657: __parent--; 8657: } 8657: } 8657: # 358 "/usr/include/c++/8/bits/stl_heap.h" 3 8657: template 8657: inline void 8657: make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: __gnu_cxx::__ops::_Iter_less_iter __comp; 8657: std::__make_heap(__first, __last, __comp); 8657: } 8657: # 384 "/usr/include/c++/8/bits/stl_heap.h" 3 8657: template 8657: inline void 8657: make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8657: _Compare __comp) 8657: { 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: typedef __decltype(__comp) _Cmp; 8657: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8657: std::__make_heap(__first, __last, __cmp); 8657: } 8657: 8657: template 8657: void 8657: __sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8657: _Compare& __comp) 8657: { 8657: while (__last - __first > 1) 8657: { 8657: --__last; 8657: std::__pop_heap(__first, __last, __last, __comp); 8657: } 8657: } 8657: # 420 "/usr/include/c++/8/bits/stl_heap.h" 3 8657: template 8657: inline void 8657: sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: 8657: __gnu_cxx::__ops::_Iter_less_iter __comp; 8657: std::__sort_heap(__first, __last, __comp); 8657: } 8657: # 447 "/usr/include/c++/8/bits/stl_heap.h" 3 8657: template 8657: inline void 8657: sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8657: _Compare __comp) 8657: { 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: 8657: typedef __decltype(__comp) _Cmp; 8657: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8657: std::__sort_heap(__first, __last, __cmp); 8657: } 8657: # 475 "/usr/include/c++/8/bits/stl_heap.h" 3 8657: template 8657: inline _RandomAccessIterator 8657: is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: __gnu_cxx::__ops::_Iter_less_iter __comp; 8657: return __first + 8657: std::__is_heap_until(__first, std::distance(__first, __last), __comp); 8657: } 8657: # 503 "/usr/include/c++/8/bits/stl_heap.h" 3 8657: template 8657: inline _RandomAccessIterator 8657: is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last, 8657: _Compare __comp) 8657: { 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: typedef __decltype(__comp) _Cmp; 8657: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8657: return __first 8657: + std::__is_heap_until(__first, std::distance(__first, __last), __cmp); 8657: } 8657: # 527 "/usr/include/c++/8/bits/stl_heap.h" 3 8657: template 8657: inline bool 8657: is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8657: { return std::is_heap_until(__first, __last) == __last; } 8657: # 540 "/usr/include/c++/8/bits/stl_heap.h" 3 8657: template 8657: inline bool 8657: is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8657: _Compare __comp) 8657: { 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: const auto __dist = std::distance(__first, __last); 8657: typedef __decltype(__comp) _Cmp; 8657: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8657: return std::__is_heap_until(__first, __dist, __cmp) == __dist; 8657: } 8657: 8657: 8657: 8657: } 8657: # 62 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8657: # 1 "/usr/include/c++/8/bits/stl_tempbuf.h" 1 3 8657: # 60 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8657: # 1 "/usr/include/c++/8/bits/stl_construct.h" 1 3 8657: # 59 "/usr/include/c++/8/bits/stl_construct.h" 3 8657: # 1 "/usr/include/c++/8/new" 1 3 8657: # 37 "/usr/include/c++/8/new" 3 8657: 8657: # 38 "/usr/include/c++/8/new" 3 8657: 8657: 8657: # 1 "/usr/include/c++/8/exception" 1 3 8657: # 33 "/usr/include/c++/8/exception" 3 8657: 8657: # 34 "/usr/include/c++/8/exception" 3 8657: 8657: #pragma GCC visibility push(default) 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/exception.h" 1 3 8657: # 34 "/usr/include/c++/8/bits/exception.h" 3 8657: 8657: # 35 "/usr/include/c++/8/bits/exception.h" 3 8657: 8657: #pragma GCC visibility push(default) 8657: 8657: 8657: 8657: extern "C++" { 8657: 8657: namespace std 8657: { 8657: # 60 "/usr/include/c++/8/bits/exception.h" 3 8657: class exception 8657: { 8657: public: 8657: exception() noexcept { } 8657: virtual ~exception() noexcept; 8657: 8657: 8657: 8657: virtual const char* 8657: what() const noexcept; 8657: }; 8657: 8657: } 8657: 8657: } 8657: 8657: #pragma GCC visibility pop 8657: # 39 "/usr/include/c++/8/exception" 2 3 8657: 8657: extern "C++" { 8657: 8657: namespace std 8657: { 8657: 8657: 8657: class bad_exception : public exception 8657: { 8657: public: 8657: bad_exception() noexcept { } 8657: 8657: 8657: 8657: virtual ~bad_exception() noexcept; 8657: 8657: 8657: virtual const char* 8657: what() const noexcept; 8657: }; 8657: 8657: 8657: typedef void (*terminate_handler) (); 8657: 8657: 8657: typedef void (*unexpected_handler) (); 8657: 8657: 8657: terminate_handler set_terminate(terminate_handler) noexcept; 8657: 8657: 8657: 8657: terminate_handler get_terminate() noexcept; 8657: 8657: 8657: 8657: 8657: void terminate() noexcept __attribute__ ((__noreturn__)); 8657: 8657: 8657: unexpected_handler set_unexpected(unexpected_handler) noexcept; 8657: 8657: 8657: 8657: unexpected_handler get_unexpected() noexcept; 8657: 8657: 8657: 8657: 8657: void unexpected() __attribute__ ((__noreturn__)); 8657: # 101 "/usr/include/c++/8/exception" 3 8657: 8657: bool uncaught_exception() noexcept __attribute__ ((__pure__)); 8657: 8657: 8657: 8657: 8657: int uncaught_exceptions() noexcept __attribute__ ((__pure__)); 8657: 8657: 8657: 8657: } 8657: 8657: namespace __gnu_cxx 8657: { 8657: 8657: # 133 "/usr/include/c++/8/exception" 3 8657: void __verbose_terminate_handler(); 8657: 8657: 8657: } 8657: 8657: } 8657: 8657: #pragma GCC visibility pop 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/exception_ptr.h" 1 3 8657: # 34 "/usr/include/c++/8/bits/exception_ptr.h" 3 8657: #pragma GCC visibility push(default) 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 1 3 8657: # 34 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 3 8657: 8657: # 35 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 3 8657: 8657: #pragma GCC visibility push(default) 8657: 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8657: # 39 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 2 3 8657: # 50 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 3 8657: namespace std 8657: { 8657: class type_info; 8657: } 8657: 8657: namespace __cxxabiv1 8657: { 8657: struct __cxa_refcounted_exception; 8657: 8657: extern "C" 8657: { 8657: 8657: void* 8657: __cxa_allocate_exception(size_t) noexcept; 8657: 8657: 8657: __cxa_refcounted_exception* 8657: __cxa_init_primary_exception(void *object, std::type_info *tinfo, 8657: void ( *dest) (void *)) noexcept; 8657: 8657: } 8657: } 8657: 8657: 8657: 8657: #pragma GCC visibility pop 8657: # 39 "/usr/include/c++/8/bits/exception_ptr.h" 2 3 8657: # 1 "/usr/include/c++/8/typeinfo" 1 3 8657: # 32 "/usr/include/c++/8/typeinfo" 3 8657: 8657: # 33 "/usr/include/c++/8/typeinfo" 3 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/hash_bytes.h" 1 3 8657: # 33 "/usr/include/c++/8/bits/hash_bytes.h" 3 8657: 8657: # 34 "/usr/include/c++/8/bits/hash_bytes.h" 3 8657: 8657: 8657: 8657: namespace std 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: size_t 8657: _Hash_bytes(const void* __ptr, size_t __len, size_t __seed); 8657: 8657: 8657: 8657: 8657: 8657: size_t 8657: _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed); 8657: 8657: 8657: } 8657: # 37 "/usr/include/c++/8/typeinfo" 2 3 8657: 8657: 8657: #pragma GCC visibility push(default) 8657: 8657: extern "C++" { 8657: 8657: namespace __cxxabiv1 8657: { 8657: class __class_type_info; 8657: } 8657: # 80 "/usr/include/c++/8/typeinfo" 3 8657: namespace std 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: class type_info 8657: { 8657: public: 8657: 8657: 8657: 8657: 8657: virtual ~type_info(); 8657: 8657: 8657: 8657: const char* name() const noexcept 8657: { return __name[0] == '*' ? __name + 1 : __name; } 8657: 8657: 8657: 8657: 8657: 8657: bool before(const type_info& __arg) const noexcept; 8657: bool operator==(const type_info& __arg) const noexcept; 8657: # 136 "/usr/include/c++/8/typeinfo" 3 8657: bool operator!=(const type_info& __arg) const noexcept 8657: { return !operator==(__arg); } 8657: 8657: 8657: size_t hash_code() const noexcept 8657: { 8657: 8657: return _Hash_bytes(name(), __builtin_strlen(name()), 8657: static_cast(0xc70f6907UL)); 8657: 8657: 8657: 8657: } 8657: 8657: 8657: 8657: virtual bool __is_pointer_p() const; 8657: 8657: 8657: virtual bool __is_function_p() const; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj, 8657: unsigned __outer) const; 8657: 8657: 8657: virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target, 8657: void **__obj_ptr) const; 8657: 8657: protected: 8657: const char *__name; 8657: 8657: explicit type_info(const char *__n): __name(__n) { } 8657: 8657: private: 8657: 8657: type_info& operator=(const type_info&); 8657: type_info(const type_info&); 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: class bad_cast : public exception 8657: { 8657: public: 8657: bad_cast() noexcept { } 8657: 8657: 8657: 8657: virtual ~bad_cast() noexcept; 8657: 8657: 8657: virtual const char* what() const noexcept; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: class bad_typeid : public exception 8657: { 8657: public: 8657: bad_typeid () noexcept { } 8657: 8657: 8657: 8657: virtual ~bad_typeid() noexcept; 8657: 8657: 8657: virtual const char* what() const noexcept; 8657: }; 8657: } 8657: 8657: } 8657: 8657: #pragma GCC visibility pop 8657: # 40 "/usr/include/c++/8/bits/exception_ptr.h" 2 3 8657: # 1 "/usr/include/c++/8/new" 1 3 8657: # 41 "/usr/include/c++/8/bits/exception_ptr.h" 2 3 8657: 8657: extern "C++" { 8657: 8657: namespace std 8657: { 8657: class type_info; 8657: 8657: 8657: 8657: 8657: 8657: namespace __exception_ptr 8657: { 8657: class exception_ptr; 8657: } 8657: 8657: using __exception_ptr::exception_ptr; 8657: 8657: 8657: 8657: 8657: 8657: exception_ptr current_exception() noexcept; 8657: 8657: template 8657: exception_ptr make_exception_ptr(_Ex) noexcept; 8657: 8657: 8657: void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__)); 8657: 8657: namespace __exception_ptr 8657: { 8657: using std::rethrow_exception; 8657: 8657: 8657: 8657: 8657: 8657: class exception_ptr 8657: { 8657: void* _M_exception_object; 8657: 8657: explicit exception_ptr(void* __e) noexcept; 8657: 8657: void _M_addref() noexcept; 8657: void _M_release() noexcept; 8657: 8657: void *_M_get() const noexcept __attribute__ ((__pure__)); 8657: 8657: friend exception_ptr std::current_exception() noexcept; 8657: friend void std::rethrow_exception(exception_ptr); 8657: template 8657: friend exception_ptr std::make_exception_ptr(_Ex) noexcept; 8657: 8657: public: 8657: exception_ptr() noexcept; 8657: 8657: exception_ptr(const exception_ptr&) noexcept; 8657: 8657: 8657: exception_ptr(nullptr_t) noexcept 8657: : _M_exception_object(0) 8657: { } 8657: 8657: exception_ptr(exception_ptr&& __o) noexcept 8657: : _M_exception_object(__o._M_exception_object) 8657: { __o._M_exception_object = 0; } 8657: # 117 "/usr/include/c++/8/bits/exception_ptr.h" 3 8657: exception_ptr& 8657: operator=(const exception_ptr&) noexcept; 8657: 8657: 8657: exception_ptr& 8657: operator=(exception_ptr&& __o) noexcept 8657: { 8657: exception_ptr(static_cast(__o)).swap(*this); 8657: return *this; 8657: } 8657: 8657: 8657: ~exception_ptr() noexcept; 8657: 8657: void 8657: swap(exception_ptr&) noexcept; 8657: # 144 "/usr/include/c++/8/bits/exception_ptr.h" 3 8657: explicit operator bool() const 8657: { return _M_exception_object; } 8657: 8657: 8657: friend bool 8657: operator==(const exception_ptr&, const exception_ptr&) 8657: noexcept __attribute__ ((__pure__)); 8657: 8657: const class std::type_info* 8657: __cxa_exception_type() const noexcept 8657: __attribute__ ((__pure__)); 8657: }; 8657: 8657: bool 8657: operator==(const exception_ptr&, const exception_ptr&) 8657: noexcept __attribute__ ((__pure__)); 8657: 8657: bool 8657: operator!=(const exception_ptr&, const exception_ptr&) 8657: noexcept __attribute__ ((__pure__)); 8657: 8657: inline void 8657: swap(exception_ptr& __lhs, exception_ptr& __rhs) 8657: { __lhs.swap(__rhs); } 8657: 8657: template 8657: inline void 8657: __dest_thunk(void* __x) 8657: { static_cast<_Ex*>(__x)->~_Ex(); } 8657: 8657: } 8657: 8657: 8657: template 8657: exception_ptr 8657: make_exception_ptr(_Ex __ex) noexcept 8657: { 8657: 8657: try 8657: { 8657: 8657: void *__e = __cxxabiv1::__cxa_allocate_exception(sizeof(_Ex)); 8657: (void)__cxxabiv1::__cxa_init_primary_exception( 8657: __e, const_cast(&typeid(__ex)), 8657: __exception_ptr::__dest_thunk<_Ex>); 8657: ::new (__e) _Ex(__ex); 8657: return exception_ptr(__e); 8657: 8657: 8657: 8657: } 8657: catch(...) 8657: { 8657: return current_exception(); 8657: } 8657: 8657: 8657: 8657: } 8657: 8657: 8657: } 8657: 8657: } 8657: 8657: #pragma GCC visibility pop 8657: # 144 "/usr/include/c++/8/exception" 2 3 8657: # 1 "/usr/include/c++/8/bits/nested_exception.h" 1 3 8657: # 33 "/usr/include/c++/8/bits/nested_exception.h" 3 8657: #pragma GCC visibility push(default) 8657: # 42 "/usr/include/c++/8/bits/nested_exception.h" 3 8657: extern "C++" { 8657: 8657: namespace std 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: class nested_exception 8657: { 8657: exception_ptr _M_ptr; 8657: 8657: public: 8657: nested_exception() noexcept : _M_ptr(current_exception()) { } 8657: 8657: nested_exception(const nested_exception&) noexcept = default; 8657: 8657: nested_exception& operator=(const nested_exception&) noexcept = default; 8657: 8657: virtual ~nested_exception() noexcept; 8657: 8657: [[noreturn]] 8657: void 8657: rethrow_nested() const 8657: { 8657: if (_M_ptr) 8657: rethrow_exception(_M_ptr); 8657: std::terminate(); 8657: } 8657: 8657: exception_ptr 8657: nested_ptr() const noexcept 8657: { return _M_ptr; } 8657: }; 8657: 8657: template 8657: struct _Nested_exception : public _Except, public nested_exception 8657: { 8657: explicit _Nested_exception(const _Except& __ex) 8657: : _Except(__ex) 8657: { } 8657: 8657: explicit _Nested_exception(_Except&& __ex) 8657: : _Except(static_cast<_Except&&>(__ex)) 8657: { } 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: [[noreturn]] 8657: inline void 8657: __throw_with_nested_impl(_Tp&& __t, true_type) 8657: { 8657: using _Up = typename remove_reference<_Tp>::type; 8657: throw _Nested_exception<_Up>{std::forward<_Tp>(__t)}; 8657: } 8657: 8657: template 8657: [[noreturn]] 8657: inline void 8657: __throw_with_nested_impl(_Tp&& __t, false_type) 8657: { throw std::forward<_Tp>(__t); } 8657: 8657: 8657: 8657: template 8657: [[noreturn]] 8657: inline void 8657: throw_with_nested(_Tp&& __t) 8657: { 8657: using _Up = typename decay<_Tp>::type; 8657: using _CopyConstructible 8657: = __and_, is_move_constructible<_Up>>; 8657: static_assert(_CopyConstructible::value, 8657: "throw_with_nested argument must be CopyConstructible"); 8657: using __nest = __and_, __bool_constant, 8657: __not_>>; 8657: std::__throw_with_nested_impl(std::forward<_Tp>(__t), __nest{}); 8657: } 8657: 8657: 8657: template 8657: using __rethrow_if_nested_cond = typename enable_if< 8657: __and_, 8657: __or_<__not_>, 8657: is_convertible<_Tp*, nested_exception*>>>::value 8657: >::type; 8657: 8657: 8657: template 8657: inline __rethrow_if_nested_cond<_Ex> 8657: __rethrow_if_nested_impl(const _Ex* __ptr) 8657: { 8657: if (auto __ne_ptr = dynamic_cast(__ptr)) 8657: __ne_ptr->rethrow_nested(); 8657: } 8657: 8657: 8657: inline void 8657: __rethrow_if_nested_impl(const void*) 8657: { } 8657: 8657: 8657: template 8657: inline void 8657: rethrow_if_nested(const _Ex& __ex) 8657: { std::__rethrow_if_nested_impl(std::__addressof(__ex)); } 8657: 8657: 8657: } 8657: 8657: } 8657: 8657: 8657: 8657: #pragma GCC visibility pop 8657: # 145 "/usr/include/c++/8/exception" 2 3 8657: # 41 "/usr/include/c++/8/new" 2 3 8657: 8657: #pragma GCC visibility push(default) 8657: 8657: extern "C++" { 8657: 8657: namespace std 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: class bad_alloc : public exception 8657: { 8657: public: 8657: bad_alloc() throw() { } 8657: 8657: 8657: 8657: virtual ~bad_alloc() throw(); 8657: 8657: 8657: virtual const char* what() const throw(); 8657: }; 8657: 8657: 8657: class bad_array_new_length : public bad_alloc 8657: { 8657: public: 8657: bad_array_new_length() throw() { } 8657: 8657: 8657: 8657: virtual ~bad_array_new_length() throw(); 8657: 8657: 8657: virtual const char* what() const throw(); 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: struct nothrow_t 8657: { 8657: 8657: explicit nothrow_t() = default; 8657: 8657: }; 8657: 8657: extern const nothrow_t nothrow; 8657: 8657: 8657: 8657: typedef void (*new_handler)(); 8657: 8657: 8657: 8657: new_handler set_new_handler(new_handler) throw(); 8657: 8657: 8657: 8657: new_handler get_new_handler() noexcept; 8657: 8657: } 8657: # 120 "/usr/include/c++/8/new" 3 8657: void* operator new(std::size_t) 8657: __attribute__((__externally_visible__)); 8657: void* operator new[](std::size_t) 8657: __attribute__((__externally_visible__)); 8657: void operator delete(void*) noexcept 8657: __attribute__((__externally_visible__)); 8657: void operator delete[](void*) noexcept 8657: __attribute__((__externally_visible__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: void* operator new(std::size_t, const std::nothrow_t&) noexcept 8657: __attribute__((__externally_visible__)); 8657: void* operator new[](std::size_t, const std::nothrow_t&) noexcept 8657: __attribute__((__externally_visible__)); 8657: void operator delete(void*, const std::nothrow_t&) noexcept 8657: __attribute__((__externally_visible__)); 8657: void operator delete[](void*, const std::nothrow_t&) noexcept 8657: __attribute__((__externally_visible__)); 8657: # 168 "/usr/include/c++/8/new" 3 8657: inline void* operator new(std::size_t, void* __p) noexcept 8657: { return __p; } 8657: inline void* operator new[](std::size_t, void* __p) noexcept 8657: { return __p; } 8657: 8657: 8657: inline void operator delete (void*, void*) noexcept { } 8657: inline void operator delete[](void*, void*) noexcept { } 8657: 8657: } 8657: # 216 "/usr/include/c++/8/new" 3 8657: #pragma GCC visibility pop 8657: # 60 "/usr/include/c++/8/bits/stl_construct.h" 2 3 8657: 8657: # 1 "/usr/include/c++/8/ext/alloc_traits.h" 1 3 8657: # 32 "/usr/include/c++/8/ext/alloc_traits.h" 3 8657: 8657: # 33 "/usr/include/c++/8/ext/alloc_traits.h" 3 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/alloc_traits.h" 1 3 8657: # 35 "/usr/include/c++/8/bits/alloc_traits.h" 3 8657: # 1 "/usr/include/c++/8/bits/memoryfwd.h" 1 3 8657: # 46 "/usr/include/c++/8/bits/memoryfwd.h" 3 8657: 8657: # 47 "/usr/include/c++/8/bits/memoryfwd.h" 3 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 63 "/usr/include/c++/8/bits/memoryfwd.h" 3 8657: template 8657: class allocator; 8657: 8657: template<> 8657: class allocator; 8657: 8657: 8657: template 8657: struct uses_allocator; 8657: 8657: 8657: 8657: 8657: } 8657: # 36 "/usr/include/c++/8/bits/alloc_traits.h" 2 3 8657: 8657: 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: struct __allocator_traits_base 8657: { 8657: template 8657: struct __rebind : __replace_first_arg<_Tp, _Up> { }; 8657: 8657: template 8657: struct __rebind<_Tp, _Up, 8657: __void_t::other>> 8657: { using type = typename _Tp::template rebind<_Up>::other; }; 8657: 8657: protected: 8657: template 8657: using __pointer = typename _Tp::pointer; 8657: template 8657: using __c_pointer = typename _Tp::const_pointer; 8657: template 8657: using __v_pointer = typename _Tp::void_pointer; 8657: template 8657: using __cv_pointer = typename _Tp::const_void_pointer; 8657: template 8657: using __pocca = typename _Tp::propagate_on_container_copy_assignment; 8657: template 8657: using __pocma = typename _Tp::propagate_on_container_move_assignment; 8657: template 8657: using __pocs = typename _Tp::propagate_on_container_swap; 8657: template 8657: using __equal = typename _Tp::is_always_equal; 8657: }; 8657: 8657: template 8657: using __alloc_rebind 8657: = typename __allocator_traits_base::template __rebind<_Alloc, _Up>::type; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct allocator_traits : __allocator_traits_base 8657: { 8657: 8657: typedef _Alloc allocator_type; 8657: 8657: typedef typename _Alloc::value_type value_type; 8657: 8657: 8657: 8657: 8657: 8657: 8657: using pointer = __detected_or_t; 8657: 8657: private: 8657: 8657: template class _Func, typename _Tp, typename = void> 8657: struct _Ptr 8657: { 8657: using type = typename pointer_traits::template rebind<_Tp>; 8657: }; 8657: 8657: template class _Func, typename _Tp> 8657: struct _Ptr<_Func, _Tp, __void_t<_Func<_Alloc>>> 8657: { 8657: using type = _Func<_Alloc>; 8657: }; 8657: 8657: 8657: template 8657: struct _Diff 8657: { using type = typename pointer_traits<_PtrT>::difference_type; }; 8657: 8657: template 8657: struct _Diff<_A2, _PtrT, __void_t> 8657: { using type = typename _A2::difference_type; }; 8657: 8657: 8657: template 8657: struct _Size : make_unsigned<_DiffT> { }; 8657: 8657: template 8657: struct _Size<_A2, _DiffT, __void_t> 8657: { using type = typename _A2::size_type; }; 8657: 8657: public: 8657: 8657: 8657: 8657: 8657: 8657: 8657: using const_pointer = typename _Ptr<__c_pointer, const value_type>::type; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: using void_pointer = typename _Ptr<__v_pointer, void>::type; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: using const_void_pointer = typename _Ptr<__cv_pointer, const void>::type; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: using difference_type = typename _Diff<_Alloc, pointer>::type; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: using size_type = typename _Size<_Alloc, difference_type>::type; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: using propagate_on_container_copy_assignment 8657: = __detected_or_t; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: using propagate_on_container_move_assignment 8657: = __detected_or_t; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: using propagate_on_container_swap 8657: = __detected_or_t; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: using is_always_equal 8657: = __detected_or_t::type, __equal, _Alloc>; 8657: 8657: template 8657: using rebind_alloc = __alloc_rebind<_Alloc, _Tp>; 8657: template 8657: using rebind_traits = allocator_traits>; 8657: 8657: private: 8657: template 8657: static auto 8657: _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint, int) 8657: -> decltype(__a.allocate(__n, __hint)) 8657: { return __a.allocate(__n, __hint); } 8657: 8657: template 8657: static pointer 8657: _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer, ...) 8657: { return __a.allocate(__n); } 8657: 8657: template 8657: struct __construct_helper 8657: { 8657: template()->construct( 8657: std::declval<_Tp*>(), std::declval<_Args>()...))> 8657: static true_type __test(int); 8657: 8657: template 8657: static false_type __test(...); 8657: 8657: using type = decltype(__test<_Alloc>(0)); 8657: }; 8657: 8657: template 8657: using __has_construct 8657: = typename __construct_helper<_Tp, _Args...>::type; 8657: 8657: template 8657: static _Require<__has_construct<_Tp, _Args...>> 8657: _S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 8657: { __a.construct(__p, std::forward<_Args>(__args)...); } 8657: 8657: template 8657: static 8657: _Require<__and_<__not_<__has_construct<_Tp, _Args...>>, 8657: is_constructible<_Tp, _Args...>>> 8657: _S_construct(_Alloc&, _Tp* __p, _Args&&... __args) 8657: { ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); } 8657: 8657: template 8657: static auto 8657: _S_destroy(_Alloc2& __a, _Tp* __p, int) 8657: -> decltype(__a.destroy(__p)) 8657: { __a.destroy(__p); } 8657: 8657: template 8657: static void 8657: _S_destroy(_Alloc2&, _Tp* __p, ...) 8657: { __p->~_Tp(); } 8657: 8657: template 8657: static auto 8657: _S_max_size(_Alloc2& __a, int) 8657: -> decltype(__a.max_size()) 8657: { return __a.max_size(); } 8657: 8657: template 8657: static size_type 8657: _S_max_size(_Alloc2&, ...) 8657: { 8657: 8657: 8657: return __gnu_cxx::__numeric_traits::__max 8657: / sizeof(value_type); 8657: } 8657: 8657: template 8657: static auto 8657: _S_select(_Alloc2& __a, int) 8657: -> decltype(__a.select_on_container_copy_construction()) 8657: { return __a.select_on_container_copy_construction(); } 8657: 8657: template 8657: static _Alloc2 8657: _S_select(_Alloc2& __a, ...) 8657: { return __a; } 8657: 8657: public: 8657: # 299 "/usr/include/c++/8/bits/alloc_traits.h" 3 8657: static pointer 8657: allocate(_Alloc& __a, size_type __n) 8657: { return __a.allocate(__n); } 8657: # 314 "/usr/include/c++/8/bits/alloc_traits.h" 3 8657: static pointer 8657: allocate(_Alloc& __a, size_type __n, const_void_pointer __hint) 8657: { return _S_allocate(__a, __n, __hint, 0); } 8657: # 326 "/usr/include/c++/8/bits/alloc_traits.h" 3 8657: static void 8657: deallocate(_Alloc& __a, pointer __p, size_type __n) 8657: { __a.deallocate(__p, __n); } 8657: # 341 "/usr/include/c++/8/bits/alloc_traits.h" 3 8657: template 8657: static auto construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 8657: -> decltype(_S_construct(__a, __p, std::forward<_Args>(__args)...)) 8657: { _S_construct(__a, __p, std::forward<_Args>(__args)...); } 8657: # 354 "/usr/include/c++/8/bits/alloc_traits.h" 3 8657: template 8657: static void destroy(_Alloc& __a, _Tp* __p) 8657: { _S_destroy(__a, __p, 0); } 8657: # 366 "/usr/include/c++/8/bits/alloc_traits.h" 3 8657: static size_type max_size(const _Alloc& __a) noexcept 8657: { return _S_max_size(__a, 0); } 8657: # 377 "/usr/include/c++/8/bits/alloc_traits.h" 3 8657: static _Alloc 8657: select_on_container_copy_construction(const _Alloc& __rhs) 8657: { return _S_select(__rhs, 0); } 8657: }; 8657: 8657: 8657: template 8657: struct allocator_traits> 8657: { 8657: 8657: using allocator_type = allocator<_Tp>; 8657: 8657: using value_type = _Tp; 8657: 8657: 8657: using pointer = _Tp*; 8657: 8657: 8657: using const_pointer = const _Tp*; 8657: 8657: 8657: using void_pointer = void*; 8657: 8657: 8657: using const_void_pointer = const void*; 8657: 8657: 8657: using difference_type = std::ptrdiff_t; 8657: 8657: 8657: using size_type = std::size_t; 8657: 8657: 8657: using propagate_on_container_copy_assignment = false_type; 8657: 8657: 8657: using propagate_on_container_move_assignment = true_type; 8657: 8657: 8657: using propagate_on_container_swap = false_type; 8657: 8657: 8657: using is_always_equal = true_type; 8657: 8657: template 8657: using rebind_alloc = allocator<_Up>; 8657: 8657: template 8657: using rebind_traits = allocator_traits>; 8657: # 434 "/usr/include/c++/8/bits/alloc_traits.h" 3 8657: static pointer 8657: allocate(allocator_type& __a, size_type __n) 8657: { return __a.allocate(__n); } 8657: # 448 "/usr/include/c++/8/bits/alloc_traits.h" 3 8657: static pointer 8657: allocate(allocator_type& __a, size_type __n, const_void_pointer __hint) 8657: { return __a.allocate(__n, __hint); } 8657: # 460 "/usr/include/c++/8/bits/alloc_traits.h" 3 8657: static void 8657: deallocate(allocator_type& __a, pointer __p, size_type __n) 8657: { __a.deallocate(__p, __n); } 8657: # 472 "/usr/include/c++/8/bits/alloc_traits.h" 3 8657: template 8657: static void 8657: construct(allocator_type& __a, _Up* __p, _Args&&... __args) 8657: { __a.construct(__p, std::forward<_Args>(__args)...); } 8657: # 484 "/usr/include/c++/8/bits/alloc_traits.h" 3 8657: template 8657: static void 8657: destroy(allocator_type& __a, _Up* __p) 8657: { __a.destroy(__p); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: static size_type 8657: max_size(const allocator_type& __a) noexcept 8657: { return __a.max_size(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: static allocator_type 8657: select_on_container_copy_construction(const allocator_type& __rhs) 8657: { return __rhs; } 8657: }; 8657: 8657: 8657: template 8657: inline void 8657: __do_alloc_on_copy(_Alloc& __one, const _Alloc& __two, true_type) 8657: { __one = __two; } 8657: 8657: template 8657: inline void 8657: __do_alloc_on_copy(_Alloc&, const _Alloc&, false_type) 8657: { } 8657: 8657: template 8657: inline void __alloc_on_copy(_Alloc& __one, const _Alloc& __two) 8657: { 8657: typedef allocator_traits<_Alloc> __traits; 8657: typedef typename __traits::propagate_on_container_copy_assignment __pocca; 8657: __do_alloc_on_copy(__one, __two, __pocca()); 8657: } 8657: 8657: template 8657: inline _Alloc __alloc_on_copy(const _Alloc& __a) 8657: { 8657: typedef allocator_traits<_Alloc> __traits; 8657: return __traits::select_on_container_copy_construction(__a); 8657: } 8657: 8657: template 8657: inline void __do_alloc_on_move(_Alloc& __one, _Alloc& __two, true_type) 8657: { __one = std::move(__two); } 8657: 8657: template 8657: inline void __do_alloc_on_move(_Alloc&, _Alloc&, false_type) 8657: { } 8657: 8657: template 8657: inline void __alloc_on_move(_Alloc& __one, _Alloc& __two) 8657: { 8657: typedef allocator_traits<_Alloc> __traits; 8657: typedef typename __traits::propagate_on_container_move_assignment __pocma; 8657: __do_alloc_on_move(__one, __two, __pocma()); 8657: } 8657: 8657: template 8657: inline void __do_alloc_on_swap(_Alloc& __one, _Alloc& __two, true_type) 8657: { 8657: using std::swap; 8657: swap(__one, __two); 8657: } 8657: 8657: template 8657: inline void __do_alloc_on_swap(_Alloc&, _Alloc&, false_type) 8657: { } 8657: 8657: template 8657: inline void __alloc_on_swap(_Alloc& __one, _Alloc& __two) 8657: { 8657: typedef allocator_traits<_Alloc> __traits; 8657: typedef typename __traits::propagate_on_container_swap __pocs; 8657: __do_alloc_on_swap(__one, __two, __pocs()); 8657: } 8657: 8657: template 8657: class __is_copy_insertable_impl 8657: { 8657: typedef allocator_traits<_Alloc> _Traits; 8657: 8657: template(), 8657: std::declval<_Up*>(), 8657: std::declval()))> 8657: static true_type 8657: _M_select(int); 8657: 8657: template 8657: static false_type 8657: _M_select(...); 8657: 8657: public: 8657: typedef decltype(_M_select(0)) type; 8657: }; 8657: 8657: 8657: template 8657: struct __is_copy_insertable 8657: : __is_copy_insertable_impl<_Alloc>::type 8657: { }; 8657: 8657: 8657: template 8657: struct __is_copy_insertable> 8657: : is_copy_constructible<_Tp> 8657: { }; 8657: 8657: 8657: 8657: template 8657: struct __is_allocator : false_type { }; 8657: 8657: template 8657: struct __is_allocator<_Alloc, 8657: __void_t().allocate(size_t{}))>> 8657: : true_type { }; 8657: 8657: template 8657: using _RequireAllocator 8657: = typename enable_if<__is_allocator<_Alloc>::value, _Alloc>::type; 8657: 8657: 8657: 8657: } 8657: # 37 "/usr/include/c++/8/ext/alloc_traits.h" 2 3 8657: 8657: 8657: 8657: 8657: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct __alloc_traits 8657: 8657: : std::allocator_traits<_Alloc> 8657: 8657: { 8657: typedef _Alloc allocator_type; 8657: 8657: typedef std::allocator_traits<_Alloc> _Base_type; 8657: typedef typename _Base_type::value_type value_type; 8657: typedef typename _Base_type::pointer pointer; 8657: typedef typename _Base_type::const_pointer const_pointer; 8657: typedef typename _Base_type::size_type size_type; 8657: typedef typename _Base_type::difference_type difference_type; 8657: 8657: typedef value_type& reference; 8657: typedef const value_type& const_reference; 8657: using _Base_type::allocate; 8657: using _Base_type::deallocate; 8657: using _Base_type::construct; 8657: using _Base_type::destroy; 8657: using _Base_type::max_size; 8657: 8657: private: 8657: template 8657: using __is_custom_pointer 8657: = std::__and_, 8657: std::__not_>>; 8657: 8657: public: 8657: 8657: template 8657: static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type 8657: construct(_Alloc& __a, _Ptr __p, _Args&&... __args) 8657: { 8657: _Base_type::construct(__a, std::__to_address(__p), 8657: std::forward<_Args>(__args)...); 8657: } 8657: 8657: 8657: template 8657: static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type 8657: destroy(_Alloc& __a, _Ptr __p) 8657: { _Base_type::destroy(__a, std::__to_address(__p)); } 8657: 8657: static _Alloc _S_select_on_copy(const _Alloc& __a) 8657: { return _Base_type::select_on_container_copy_construction(__a); } 8657: 8657: static void _S_on_swap(_Alloc& __a, _Alloc& __b) 8657: { std::__alloc_on_swap(__a, __b); } 8657: 8657: static constexpr bool _S_propagate_on_copy_assign() 8657: { return _Base_type::propagate_on_container_copy_assignment::value; } 8657: 8657: static constexpr bool _S_propagate_on_move_assign() 8657: { return _Base_type::propagate_on_container_move_assignment::value; } 8657: 8657: static constexpr bool _S_propagate_on_swap() 8657: { return _Base_type::propagate_on_container_swap::value; } 8657: 8657: static constexpr bool _S_always_equal() 8657: { return _Base_type::is_always_equal::value; } 8657: 8657: static constexpr bool _S_nothrow_move() 8657: { return _S_propagate_on_move_assign() || _S_always_equal(); } 8657: 8657: template 8657: struct rebind 8657: { typedef typename _Base_type::template rebind_alloc<_Tp> other; }; 8657: # 158 "/usr/include/c++/8/ext/alloc_traits.h" 3 8657: }; 8657: 8657: 8657: } 8657: # 62 "/usr/include/c++/8/bits/stl_construct.h" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline void 8657: _Construct(_T1* __p, _Args&&... __args) 8657: { ::new(static_cast(__p)) _T1(std::forward<_Args>(__args)...); } 8657: # 87 "/usr/include/c++/8/bits/stl_construct.h" 3 8657: template 8657: inline void 8657: _Construct_novalue(_T1* __p) 8657: { ::new(static_cast(__p)) _T1; } 8657: 8657: 8657: 8657: 8657: template 8657: inline void 8657: _Destroy(_Tp* __pointer) 8657: { __pointer->~_Tp(); } 8657: 8657: template 8657: struct _Destroy_aux 8657: { 8657: template 8657: static void 8657: __destroy(_ForwardIterator __first, _ForwardIterator __last) 8657: { 8657: for (; __first != __last; ++__first) 8657: std::_Destroy(std::__addressof(*__first)); 8657: } 8657: }; 8657: 8657: template<> 8657: struct _Destroy_aux 8657: { 8657: template 8657: static void 8657: __destroy(_ForwardIterator, _ForwardIterator) { } 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline void 8657: _Destroy(_ForwardIterator __first, _ForwardIterator __last) 8657: { 8657: typedef typename iterator_traits<_ForwardIterator>::value_type 8657: _Value_type; 8657: 8657: 8657: static_assert(is_destructible<_Value_type>::value, 8657: "value type is destructible"); 8657: 8657: std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: 8657: __destroy(__first, __last); 8657: } 8657: 8657: template 8657: struct _Destroy_n_aux 8657: { 8657: template 8657: static _ForwardIterator 8657: __destroy_n(_ForwardIterator __first, _Size __count) 8657: { 8657: for (; __count > 0; (void)++__first, --__count) 8657: std::_Destroy(std::__addressof(*__first)); 8657: return __first; 8657: } 8657: }; 8657: 8657: template<> 8657: struct _Destroy_n_aux 8657: { 8657: template 8657: static _ForwardIterator 8657: __destroy_n(_ForwardIterator __first, _Size __count) 8657: { 8657: std::advance(__first, __count); 8657: return __first; 8657: } 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline _ForwardIterator 8657: _Destroy_n(_ForwardIterator __first, _Size __count) 8657: { 8657: typedef typename iterator_traits<_ForwardIterator>::value_type 8657: _Value_type; 8657: 8657: 8657: static_assert(is_destructible<_Value_type>::value, 8657: "value type is destructible"); 8657: 8657: return std::_Destroy_n_aux<__has_trivial_destructor(_Value_type)>:: 8657: __destroy_n(__first, __count); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: void 8657: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 8657: _Allocator& __alloc) 8657: { 8657: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8657: for (; __first != __last; ++__first) 8657: __traits::destroy(__alloc, std::__addressof(*__first)); 8657: } 8657: 8657: template 8657: inline void 8657: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 8657: allocator<_Tp>&) 8657: { 8657: _Destroy(__first, __last); 8657: } 8657: # 232 "/usr/include/c++/8/bits/stl_construct.h" 3 8657: 8657: } 8657: # 61 "/usr/include/c++/8/bits/stl_tempbuf.h" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 83 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8657: template 8657: pair<_Tp*, ptrdiff_t> 8657: get_temporary_buffer(ptrdiff_t __len) noexcept 8657: { 8657: const ptrdiff_t __max = 8657: __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); 8657: if (__len > __max) 8657: __len = __max; 8657: 8657: while (__len > 0) 8657: { 8657: _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp), 8657: std::nothrow)); 8657: if (__tmp != 0) 8657: return std::pair<_Tp*, ptrdiff_t>(__tmp, __len); 8657: __len /= 2; 8657: } 8657: return std::pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0); 8657: } 8657: # 110 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8657: template 8657: inline void 8657: return_temporary_buffer(_Tp* __p) 8657: { ::operator delete(__p, std::nothrow); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: class _Temporary_buffer 8657: { 8657: 8657: 8657: 8657: public: 8657: typedef _Tp value_type; 8657: typedef value_type* pointer; 8657: typedef pointer iterator; 8657: typedef ptrdiff_t size_type; 8657: 8657: protected: 8657: size_type _M_original_len; 8657: size_type _M_len; 8657: pointer _M_buffer; 8657: 8657: public: 8657: 8657: size_type 8657: size() const 8657: { return _M_len; } 8657: 8657: 8657: size_type 8657: requested_size() const 8657: { return _M_original_len; } 8657: 8657: 8657: iterator 8657: begin() 8657: { return _M_buffer; } 8657: 8657: 8657: iterator 8657: end() 8657: { return _M_buffer + _M_len; } 8657: 8657: 8657: 8657: 8657: 8657: _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last); 8657: 8657: ~_Temporary_buffer() 8657: { 8657: std::_Destroy(_M_buffer, _M_buffer + _M_len); 8657: std::return_temporary_buffer(_M_buffer); 8657: } 8657: 8657: private: 8657: 8657: _Temporary_buffer(const _Temporary_buffer&); 8657: 8657: void 8657: operator=(const _Temporary_buffer&); 8657: }; 8657: 8657: 8657: template 8657: struct __uninitialized_construct_buf_dispatch 8657: { 8657: template 8657: static void 8657: __ucr(_Pointer __first, _Pointer __last, 8657: _ForwardIterator __seed) 8657: { 8657: if(__first == __last) 8657: return; 8657: 8657: _Pointer __cur = __first; 8657: try 8657: { 8657: std::_Construct(std::__addressof(*__first), 8657: std::move(*__seed)); 8657: _Pointer __prev = __cur; 8657: ++__cur; 8657: for(; __cur != __last; ++__cur, ++__prev) 8657: std::_Construct(std::__addressof(*__cur), 8657: std::move(*__prev)); 8657: *__seed = std::move(*__prev); 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__first, __cur); 8657: throw; 8657: } 8657: } 8657: }; 8657: 8657: template<> 8657: struct __uninitialized_construct_buf_dispatch 8657: { 8657: template 8657: static void 8657: __ucr(_Pointer, _Pointer, _ForwardIterator) { } 8657: }; 8657: # 229 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8657: template 8657: inline void 8657: __uninitialized_construct_buf(_Pointer __first, _Pointer __last, 8657: _ForwardIterator __seed) 8657: { 8657: typedef typename std::iterator_traits<_Pointer>::value_type 8657: _ValueType; 8657: 8657: std::__uninitialized_construct_buf_dispatch< 8657: __has_trivial_constructor(_ValueType)>:: 8657: __ucr(__first, __last, __seed); 8657: } 8657: 8657: template 8657: _Temporary_buffer<_ForwardIterator, _Tp>:: 8657: _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) 8657: : _M_original_len(std::distance(__first, __last)), 8657: _M_len(0), _M_buffer(0) 8657: { 8657: try 8657: { 8657: std::pair __p(std::get_temporary_buffer< 8657: value_type>(_M_original_len)); 8657: _M_buffer = __p.first; 8657: _M_len = __p.second; 8657: if (_M_buffer) 8657: std::__uninitialized_construct_buf(_M_buffer, _M_buffer + _M_len, 8657: __first); 8657: } 8657: catch(...) 8657: { 8657: std::return_temporary_buffer(_M_buffer); 8657: _M_buffer = 0; 8657: _M_len = 0; 8657: throw; 8657: } 8657: } 8657: 8657: 8657: } 8657: # 63 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/uniform_int_dist.h" 1 3 8657: # 35 "/usr/include/c++/8/bits/uniform_int_dist.h" 3 8657: # 1 "/usr/include/c++/8/limits" 1 3 8657: # 40 "/usr/include/c++/8/limits" 3 8657: 8657: # 41 "/usr/include/c++/8/limits" 3 8657: # 158 "/usr/include/c++/8/limits" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: enum float_round_style 8657: { 8657: round_indeterminate = -1, 8657: round_toward_zero = 0, 8657: round_to_nearest = 1, 8657: round_toward_infinity = 2, 8657: round_toward_neg_infinity = 3 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: enum float_denorm_style 8657: { 8657: 8657: denorm_indeterminate = -1, 8657: 8657: denorm_absent = 0, 8657: 8657: denorm_present = 1 8657: }; 8657: # 202 "/usr/include/c++/8/limits" 3 8657: struct __numeric_limits_base 8657: { 8657: 8657: 8657: static constexpr bool is_specialized = false; 8657: 8657: 8657: 8657: 8657: static constexpr int digits = 0; 8657: 8657: 8657: static constexpr int digits10 = 0; 8657: 8657: 8657: 8657: 8657: static constexpr int max_digits10 = 0; 8657: 8657: 8657: 8657: static constexpr bool is_signed = false; 8657: 8657: 8657: static constexpr bool is_integer = false; 8657: 8657: 8657: 8657: 8657: static constexpr bool is_exact = false; 8657: 8657: 8657: 8657: static constexpr int radix = 0; 8657: 8657: 8657: 8657: static constexpr int min_exponent = 0; 8657: 8657: 8657: 8657: static constexpr int min_exponent10 = 0; 8657: 8657: 8657: 8657: 8657: static constexpr int max_exponent = 0; 8657: 8657: 8657: 8657: static constexpr int max_exponent10 = 0; 8657: 8657: 8657: static constexpr bool has_infinity = false; 8657: 8657: 8657: 8657: static constexpr bool has_quiet_NaN = false; 8657: 8657: 8657: 8657: static constexpr bool has_signaling_NaN = false; 8657: 8657: 8657: static constexpr float_denorm_style has_denorm = denorm_absent; 8657: 8657: 8657: 8657: static constexpr bool has_denorm_loss = false; 8657: 8657: 8657: 8657: static constexpr bool is_iec559 = false; 8657: 8657: 8657: 8657: 8657: static constexpr bool is_bounded = false; 8657: # 288 "/usr/include/c++/8/limits" 3 8657: static constexpr bool is_modulo = false; 8657: 8657: 8657: static constexpr bool traps = false; 8657: 8657: 8657: static constexpr bool tinyness_before = false; 8657: 8657: 8657: 8657: 8657: static constexpr float_round_style round_style = 8657: round_toward_zero; 8657: }; 8657: # 311 "/usr/include/c++/8/limits" 3 8657: template 8657: struct numeric_limits : public __numeric_limits_base 8657: { 8657: 8657: 8657: static constexpr _Tp 8657: min() noexcept { return _Tp(); } 8657: 8657: 8657: static constexpr _Tp 8657: max() noexcept { return _Tp(); } 8657: 8657: 8657: 8657: 8657: static constexpr _Tp 8657: lowest() noexcept { return _Tp(); } 8657: 8657: 8657: 8657: 8657: static constexpr _Tp 8657: epsilon() noexcept { return _Tp(); } 8657: 8657: 8657: static constexpr _Tp 8657: round_error() noexcept { return _Tp(); } 8657: 8657: 8657: static constexpr _Tp 8657: infinity() noexcept { return _Tp(); } 8657: 8657: 8657: 8657: static constexpr _Tp 8657: quiet_NaN() noexcept { return _Tp(); } 8657: 8657: 8657: 8657: static constexpr _Tp 8657: signaling_NaN() noexcept { return _Tp(); } 8657: 8657: 8657: 8657: 8657: static constexpr _Tp 8657: denorm_min() noexcept { return _Tp(); } 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: struct numeric_limits 8657: : public numeric_limits<_Tp> { }; 8657: 8657: template 8657: struct numeric_limits 8657: : public numeric_limits<_Tp> { }; 8657: 8657: template 8657: struct numeric_limits 8657: : public numeric_limits<_Tp> { }; 8657: # 382 "/usr/include/c++/8/limits" 3 8657: template<> 8657: struct numeric_limits 8657: { 8657: static constexpr bool is_specialized = true; 8657: 8657: static constexpr bool 8657: min() noexcept { return false; } 8657: 8657: static constexpr bool 8657: max() noexcept { return true; } 8657: 8657: 8657: static constexpr bool 8657: lowest() noexcept { return min(); } 8657: 8657: static constexpr int digits = 1; 8657: static constexpr int digits10 = 0; 8657: 8657: static constexpr int max_digits10 = 0; 8657: 8657: static constexpr bool is_signed = false; 8657: static constexpr bool is_integer = true; 8657: static constexpr bool is_exact = true; 8657: static constexpr int radix = 2; 8657: 8657: static constexpr bool 8657: epsilon() noexcept { return false; } 8657: 8657: static constexpr bool 8657: round_error() noexcept { return false; } 8657: 8657: static constexpr int min_exponent = 0; 8657: static constexpr int min_exponent10 = 0; 8657: static constexpr int max_exponent = 0; 8657: static constexpr int max_exponent10 = 0; 8657: 8657: static constexpr bool has_infinity = false; 8657: static constexpr bool has_quiet_NaN = false; 8657: static constexpr bool has_signaling_NaN = false; 8657: static constexpr float_denorm_style has_denorm 8657: = denorm_absent; 8657: static constexpr bool has_denorm_loss = false; 8657: 8657: static constexpr bool 8657: infinity() noexcept { return false; } 8657: 8657: static constexpr bool 8657: quiet_NaN() noexcept { return false; } 8657: 8657: static constexpr bool 8657: signaling_NaN() noexcept { return false; } 8657: 8657: static constexpr bool 8657: denorm_min() noexcept { return false; } 8657: 8657: static constexpr bool is_iec559 = false; 8657: static constexpr bool is_bounded = true; 8657: static constexpr bool is_modulo = false; 8657: 8657: 8657: 8657: 8657: static constexpr bool traps = true; 8657: static constexpr bool tinyness_before = false; 8657: static constexpr float_round_style round_style 8657: = round_toward_zero; 8657: }; 8657: 8657: 8657: template<> 8657: struct numeric_limits 8657: { 8657: static constexpr bool is_specialized = true; 8657: 8657: static constexpr char 8657: 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); } 8657: 8657: static constexpr char 8657: max() noexcept { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); } 8657: 8657: 8657: static constexpr char 8657: lowest() noexcept { return min(); } 8657: 8657: 8657: static constexpr int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); 8657: static constexpr int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643L / 2136); 8657: 8657: static constexpr int max_digits10 = 0; 8657: 8657: static constexpr bool is_signed = ((char)(-1) < 0); 8657: static constexpr bool is_integer = true; 8657: static constexpr bool is_exact = true; 8657: static constexpr int radix = 2; 8657: 8657: static constexpr char 8657: epsilon() noexcept { return 0; } 8657: 8657: static constexpr char 8657: round_error() noexcept { return 0; } 8657: 8657: static constexpr int min_exponent = 0; 8657: static constexpr int min_exponent10 = 0; 8657: static constexpr int max_exponent = 0; 8657: static constexpr int max_exponent10 = 0; 8657: 8657: static constexpr bool has_infinity = false; 8657: static constexpr bool has_quiet_NaN = false; 8657: static constexpr bool has_signaling_NaN = false; 8657: static constexpr float_denorm_style has_denorm 8657: = denorm_absent; 8657: static constexpr bool has_denorm_loss = false; 8657: 8657: static constexpr 8657: char infinity() noexcept { return char(); } 8657: 8657: static constexpr char 8657: quiet_NaN() noexcept { return char(); } 8657: 8657: static constexpr char 8657: signaling_NaN() noexcept { return char(); } 8657: 8657: static constexpr char 8657: denorm_min() noexcept { return static_cast(0); } 8657: 8657: static constexpr bool is_iec559 = false; 8657: static constexpr bool is_bounded = true; 8657: static constexpr bool is_modulo = !is_signed; 8657: 8657: static constexpr bool traps = true; 8657: static constexpr bool tinyness_before = false; 8657: static constexpr float_round_style round_style 8657: = round_toward_zero; 8657: }; 8657: 8657: 8657: template<> 8657: struct numeric_limits 8657: { 8657: static constexpr bool is_specialized = true; 8657: 8657: static constexpr signed char 8657: min() noexcept { return -0x7f - 1; } 8657: 8657: static constexpr signed char 8657: max() noexcept { return 0x7f; } 8657: 8657: 8657: static constexpr signed char 8657: lowest() noexcept { return min(); } 8657: 8657: 8657: static constexpr int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); 8657: static constexpr int digits10 8657: = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643L / 2136); 8657: 8657: static constexpr int max_digits10 = 0; 8657: 8657: static constexpr bool is_signed = true; 8657: static constexpr bool is_integer = true; 8657: static constexpr bool is_exact = true; 8657: static constexpr int radix = 2; 8657: 8657: static constexpr signed char 8657: epsilon() noexcept { return 0; } 8657: 8657: static constexpr signed char 8657: round_error() noexcept { return 0; } 8657: 8657: static constexpr int min_exponent = 0; 8657: static constexpr int min_exponent10 = 0; 8657: static constexpr int max_exponent = 0; 8657: static constexpr int max_exponent10 = 0; 8657: 8657: static constexpr bool has_infinity = false; 8657: static constexpr bool has_quiet_NaN = false; 8657: static constexpr bool has_signaling_NaN = false; 8657: static constexpr float_denorm_style has_denorm 8657: = denorm_absent; 8657: static constexpr bool has_denorm_loss = false; 8657: 8657: static constexpr signed char 8657: infinity() noexcept { return static_cast(0); } 8657: 8657: static constexpr signed char 8657: quiet_NaN() noexcept { return static_cast(0); } 8657: 8657: static constexpr signed char 8657: signaling_NaN() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr signed char 8657: denorm_min() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr bool is_iec559 = false; 8657: static constexpr bool is_bounded = true; 8657: static constexpr bool is_modulo = false; 8657: 8657: static constexpr bool traps = true; 8657: static constexpr bool tinyness_before = false; 8657: static constexpr float_round_style round_style 8657: = round_toward_zero; 8657: }; 8657: 8657: 8657: template<> 8657: struct numeric_limits 8657: { 8657: static constexpr bool is_specialized = true; 8657: 8657: static constexpr unsigned char 8657: min() noexcept { return 0; } 8657: 8657: static constexpr unsigned char 8657: max() noexcept { return 0x7f * 2U + 1; } 8657: 8657: 8657: static constexpr unsigned char 8657: lowest() noexcept { return min(); } 8657: 8657: 8657: static constexpr int digits 8657: = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); 8657: static constexpr int digits10 8657: = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643L / 2136); 8657: 8657: static constexpr int max_digits10 = 0; 8657: 8657: static constexpr bool is_signed = false; 8657: static constexpr bool is_integer = true; 8657: static constexpr bool is_exact = true; 8657: static constexpr int radix = 2; 8657: 8657: static constexpr unsigned char 8657: epsilon() noexcept { return 0; } 8657: 8657: static constexpr unsigned char 8657: round_error() noexcept { return 0; } 8657: 8657: static constexpr int min_exponent = 0; 8657: static constexpr int min_exponent10 = 0; 8657: static constexpr int max_exponent = 0; 8657: static constexpr int max_exponent10 = 0; 8657: 8657: static constexpr bool has_infinity = false; 8657: static constexpr bool has_quiet_NaN = false; 8657: static constexpr bool has_signaling_NaN = false; 8657: static constexpr float_denorm_style has_denorm 8657: = denorm_absent; 8657: static constexpr bool has_denorm_loss = false; 8657: 8657: static constexpr unsigned char 8657: infinity() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr unsigned char 8657: quiet_NaN() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr unsigned char 8657: signaling_NaN() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr unsigned char 8657: denorm_min() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr bool is_iec559 = false; 8657: static constexpr bool is_bounded = true; 8657: static constexpr bool is_modulo = true; 8657: 8657: static constexpr bool traps = true; 8657: static constexpr bool tinyness_before = false; 8657: static constexpr float_round_style round_style 8657: = round_toward_zero; 8657: }; 8657: 8657: 8657: template<> 8657: struct numeric_limits 8657: { 8657: static constexpr bool is_specialized = true; 8657: 8657: static constexpr wchar_t 8657: 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); } 8657: 8657: static constexpr wchar_t 8657: 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); } 8657: 8657: 8657: static constexpr wchar_t 8657: lowest() noexcept { return min(); } 8657: 8657: 8657: static constexpr int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); 8657: static constexpr int digits10 8657: = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643L / 2136); 8657: 8657: static constexpr int max_digits10 = 0; 8657: 8657: static constexpr bool is_signed = ((wchar_t)(-1) < 0); 8657: static constexpr bool is_integer = true; 8657: static constexpr bool is_exact = true; 8657: static constexpr int radix = 2; 8657: 8657: static constexpr wchar_t 8657: epsilon() noexcept { return 0; } 8657: 8657: static constexpr wchar_t 8657: round_error() noexcept { return 0; } 8657: 8657: static constexpr int min_exponent = 0; 8657: static constexpr int min_exponent10 = 0; 8657: static constexpr int max_exponent = 0; 8657: static constexpr int max_exponent10 = 0; 8657: 8657: static constexpr bool has_infinity = false; 8657: static constexpr bool has_quiet_NaN = false; 8657: static constexpr bool has_signaling_NaN = false; 8657: static constexpr float_denorm_style has_denorm 8657: = denorm_absent; 8657: static constexpr bool has_denorm_loss = false; 8657: 8657: static constexpr wchar_t 8657: infinity() noexcept { return wchar_t(); } 8657: 8657: static constexpr wchar_t 8657: quiet_NaN() noexcept { return wchar_t(); } 8657: 8657: static constexpr wchar_t 8657: signaling_NaN() noexcept { return wchar_t(); } 8657: 8657: static constexpr wchar_t 8657: denorm_min() noexcept { return wchar_t(); } 8657: 8657: static constexpr bool is_iec559 = false; 8657: static constexpr bool is_bounded = true; 8657: static constexpr bool is_modulo = !is_signed; 8657: 8657: static constexpr bool traps = true; 8657: static constexpr bool tinyness_before = false; 8657: static constexpr float_round_style round_style 8657: = round_toward_zero; 8657: }; 8657: 8657: 8657: 8657: template<> 8657: struct numeric_limits 8657: { 8657: static constexpr bool is_specialized = true; 8657: 8657: static constexpr char16_t 8657: 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); } 8657: 8657: static constexpr char16_t 8657: 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); } 8657: 8657: static constexpr char16_t 8657: lowest() noexcept { return min(); } 8657: 8657: static constexpr int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)); 8657: static constexpr int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136); 8657: static constexpr int max_digits10 = 0; 8657: static constexpr bool is_signed = ((char16_t)(-1) < 0); 8657: static constexpr bool is_integer = true; 8657: static constexpr bool is_exact = true; 8657: static constexpr int radix = 2; 8657: 8657: static constexpr char16_t 8657: epsilon() noexcept { return 0; } 8657: 8657: static constexpr char16_t 8657: round_error() noexcept { return 0; } 8657: 8657: static constexpr int min_exponent = 0; 8657: static constexpr int min_exponent10 = 0; 8657: static constexpr int max_exponent = 0; 8657: static constexpr int max_exponent10 = 0; 8657: 8657: static constexpr bool has_infinity = false; 8657: static constexpr bool has_quiet_NaN = false; 8657: static constexpr bool has_signaling_NaN = false; 8657: static constexpr float_denorm_style has_denorm = denorm_absent; 8657: static constexpr bool has_denorm_loss = false; 8657: 8657: static constexpr char16_t 8657: infinity() noexcept { return char16_t(); } 8657: 8657: static constexpr char16_t 8657: quiet_NaN() noexcept { return char16_t(); } 8657: 8657: static constexpr char16_t 8657: signaling_NaN() noexcept { return char16_t(); } 8657: 8657: static constexpr char16_t 8657: denorm_min() noexcept { return char16_t(); } 8657: 8657: static constexpr bool is_iec559 = false; 8657: static constexpr bool is_bounded = true; 8657: static constexpr bool is_modulo = !is_signed; 8657: 8657: static constexpr bool traps = true; 8657: static constexpr bool tinyness_before = false; 8657: static constexpr float_round_style round_style = round_toward_zero; 8657: }; 8657: 8657: 8657: template<> 8657: struct numeric_limits 8657: { 8657: static constexpr bool is_specialized = true; 8657: 8657: static constexpr char32_t 8657: 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); } 8657: 8657: static constexpr char32_t 8657: 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); } 8657: 8657: static constexpr char32_t 8657: lowest() noexcept { return min(); } 8657: 8657: static constexpr int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)); 8657: static constexpr int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136); 8657: static constexpr int max_digits10 = 0; 8657: static constexpr bool is_signed = ((char32_t)(-1) < 0); 8657: static constexpr bool is_integer = true; 8657: static constexpr bool is_exact = true; 8657: static constexpr int radix = 2; 8657: 8657: static constexpr char32_t 8657: epsilon() noexcept { return 0; } 8657: 8657: static constexpr char32_t 8657: round_error() noexcept { return 0; } 8657: 8657: static constexpr int min_exponent = 0; 8657: static constexpr int min_exponent10 = 0; 8657: static constexpr int max_exponent = 0; 8657: static constexpr int max_exponent10 = 0; 8657: 8657: static constexpr bool has_infinity = false; 8657: static constexpr bool has_quiet_NaN = false; 8657: static constexpr bool has_signaling_NaN = false; 8657: static constexpr float_denorm_style has_denorm = denorm_absent; 8657: static constexpr bool has_denorm_loss = false; 8657: 8657: static constexpr char32_t 8657: infinity() noexcept { return char32_t(); } 8657: 8657: static constexpr char32_t 8657: quiet_NaN() noexcept { return char32_t(); } 8657: 8657: static constexpr char32_t 8657: signaling_NaN() noexcept { return char32_t(); } 8657: 8657: static constexpr char32_t 8657: denorm_min() noexcept { return char32_t(); } 8657: 8657: static constexpr bool is_iec559 = false; 8657: static constexpr bool is_bounded = true; 8657: static constexpr bool is_modulo = !is_signed; 8657: 8657: static constexpr bool traps = true; 8657: static constexpr bool tinyness_before = false; 8657: static constexpr float_round_style round_style = round_toward_zero; 8657: }; 8657: 8657: 8657: 8657: template<> 8657: struct numeric_limits 8657: { 8657: static constexpr bool is_specialized = true; 8657: 8657: static constexpr short 8657: min() noexcept { return -0x7fff - 1; } 8657: 8657: static constexpr short 8657: max() noexcept { return 0x7fff; } 8657: 8657: 8657: static constexpr short 8657: lowest() noexcept { return min(); } 8657: 8657: 8657: static constexpr int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); 8657: static constexpr int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643L / 2136); 8657: 8657: static constexpr int max_digits10 = 0; 8657: 8657: static constexpr bool is_signed = true; 8657: static constexpr bool is_integer = true; 8657: static constexpr bool is_exact = true; 8657: static constexpr int radix = 2; 8657: 8657: static constexpr short 8657: epsilon() noexcept { return 0; } 8657: 8657: static constexpr short 8657: round_error() noexcept { return 0; } 8657: 8657: static constexpr int min_exponent = 0; 8657: static constexpr int min_exponent10 = 0; 8657: static constexpr int max_exponent = 0; 8657: static constexpr int max_exponent10 = 0; 8657: 8657: static constexpr bool has_infinity = false; 8657: static constexpr bool has_quiet_NaN = false; 8657: static constexpr bool has_signaling_NaN = false; 8657: static constexpr float_denorm_style has_denorm 8657: = denorm_absent; 8657: static constexpr bool has_denorm_loss = false; 8657: 8657: static constexpr short 8657: infinity() noexcept { return short(); } 8657: 8657: static constexpr short 8657: quiet_NaN() noexcept { return short(); } 8657: 8657: static constexpr short 8657: signaling_NaN() noexcept { return short(); } 8657: 8657: static constexpr short 8657: denorm_min() noexcept { return short(); } 8657: 8657: static constexpr bool is_iec559 = false; 8657: static constexpr bool is_bounded = true; 8657: static constexpr bool is_modulo = false; 8657: 8657: static constexpr bool traps = true; 8657: static constexpr bool tinyness_before = false; 8657: static constexpr float_round_style round_style 8657: = round_toward_zero; 8657: }; 8657: 8657: 8657: template<> 8657: struct numeric_limits 8657: { 8657: static constexpr bool is_specialized = true; 8657: 8657: static constexpr unsigned short 8657: min() noexcept { return 0; } 8657: 8657: static constexpr unsigned short 8657: max() noexcept { return 0x7fff * 2U + 1; } 8657: 8657: 8657: static constexpr unsigned short 8657: lowest() noexcept { return min(); } 8657: 8657: 8657: static constexpr int digits 8657: = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); 8657: static constexpr int digits10 8657: = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643L / 2136); 8657: 8657: static constexpr int max_digits10 = 0; 8657: 8657: static constexpr bool is_signed = false; 8657: static constexpr bool is_integer = true; 8657: static constexpr bool is_exact = true; 8657: static constexpr int radix = 2; 8657: 8657: static constexpr unsigned short 8657: epsilon() noexcept { return 0; } 8657: 8657: static constexpr unsigned short 8657: round_error() noexcept { return 0; } 8657: 8657: static constexpr int min_exponent = 0; 8657: static constexpr int min_exponent10 = 0; 8657: static constexpr int max_exponent = 0; 8657: static constexpr int max_exponent10 = 0; 8657: 8657: static constexpr bool has_infinity = false; 8657: static constexpr bool has_quiet_NaN = false; 8657: static constexpr bool has_signaling_NaN = false; 8657: static constexpr float_denorm_style has_denorm 8657: = denorm_absent; 8657: static constexpr bool has_denorm_loss = false; 8657: 8657: static constexpr unsigned short 8657: infinity() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr unsigned short 8657: quiet_NaN() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr unsigned short 8657: signaling_NaN() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr unsigned short 8657: denorm_min() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr bool is_iec559 = false; 8657: static constexpr bool is_bounded = true; 8657: static constexpr bool is_modulo = true; 8657: 8657: static constexpr bool traps = true; 8657: static constexpr bool tinyness_before = false; 8657: static constexpr float_round_style round_style 8657: = round_toward_zero; 8657: }; 8657: 8657: 8657: template<> 8657: struct numeric_limits 8657: { 8657: static constexpr bool is_specialized = true; 8657: 8657: static constexpr int 8657: min() noexcept { return -0x7fffffff - 1; } 8657: 8657: static constexpr int 8657: max() noexcept { return 0x7fffffff; } 8657: 8657: 8657: static constexpr int 8657: lowest() noexcept { return min(); } 8657: 8657: 8657: static constexpr int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); 8657: static constexpr int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643L / 2136); 8657: 8657: static constexpr int max_digits10 = 0; 8657: 8657: static constexpr bool is_signed = true; 8657: static constexpr bool is_integer = true; 8657: static constexpr bool is_exact = true; 8657: static constexpr int radix = 2; 8657: 8657: static constexpr int 8657: epsilon() noexcept { return 0; } 8657: 8657: static constexpr int 8657: round_error() noexcept { return 0; } 8657: 8657: static constexpr int min_exponent = 0; 8657: static constexpr int min_exponent10 = 0; 8657: static constexpr int max_exponent = 0; 8657: static constexpr int max_exponent10 = 0; 8657: 8657: static constexpr bool has_infinity = false; 8657: static constexpr bool has_quiet_NaN = false; 8657: static constexpr bool has_signaling_NaN = false; 8657: static constexpr float_denorm_style has_denorm 8657: = denorm_absent; 8657: static constexpr bool has_denorm_loss = false; 8657: 8657: static constexpr int 8657: infinity() noexcept { return static_cast(0); } 8657: 8657: static constexpr int 8657: quiet_NaN() noexcept { return static_cast(0); } 8657: 8657: static constexpr int 8657: signaling_NaN() noexcept { return static_cast(0); } 8657: 8657: static constexpr int 8657: denorm_min() noexcept { return static_cast(0); } 8657: 8657: static constexpr bool is_iec559 = false; 8657: static constexpr bool is_bounded = true; 8657: static constexpr bool is_modulo = false; 8657: 8657: static constexpr bool traps = true; 8657: static constexpr bool tinyness_before = false; 8657: static constexpr float_round_style round_style 8657: = round_toward_zero; 8657: }; 8657: 8657: 8657: template<> 8657: struct numeric_limits 8657: { 8657: static constexpr bool is_specialized = true; 8657: 8657: static constexpr unsigned int 8657: min() noexcept { return 0; } 8657: 8657: static constexpr unsigned int 8657: max() noexcept { return 0x7fffffff * 2U + 1; } 8657: 8657: 8657: static constexpr unsigned int 8657: lowest() noexcept { return min(); } 8657: 8657: 8657: static constexpr int digits 8657: = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); 8657: static constexpr int digits10 8657: = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643L / 2136); 8657: 8657: static constexpr int max_digits10 = 0; 8657: 8657: static constexpr bool is_signed = false; 8657: static constexpr bool is_integer = true; 8657: static constexpr bool is_exact = true; 8657: static constexpr int radix = 2; 8657: 8657: static constexpr unsigned int 8657: epsilon() noexcept { return 0; } 8657: 8657: static constexpr unsigned int 8657: round_error() noexcept { return 0; } 8657: 8657: static constexpr int min_exponent = 0; 8657: static constexpr int min_exponent10 = 0; 8657: static constexpr int max_exponent = 0; 8657: static constexpr int max_exponent10 = 0; 8657: 8657: static constexpr bool has_infinity = false; 8657: static constexpr bool has_quiet_NaN = false; 8657: static constexpr bool has_signaling_NaN = false; 8657: static constexpr float_denorm_style has_denorm 8657: = denorm_absent; 8657: static constexpr bool has_denorm_loss = false; 8657: 8657: static constexpr unsigned int 8657: infinity() noexcept { return static_cast(0); } 8657: 8657: static constexpr unsigned int 8657: quiet_NaN() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr unsigned int 8657: signaling_NaN() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr unsigned int 8657: denorm_min() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr bool is_iec559 = false; 8657: static constexpr bool is_bounded = true; 8657: static constexpr bool is_modulo = true; 8657: 8657: static constexpr bool traps = true; 8657: static constexpr bool tinyness_before = false; 8657: static constexpr float_round_style round_style 8657: = round_toward_zero; 8657: }; 8657: 8657: 8657: template<> 8657: struct numeric_limits 8657: { 8657: static constexpr bool is_specialized = true; 8657: 8657: static constexpr long 8657: min() noexcept { return -0x7fffffffL - 1; } 8657: 8657: static constexpr long 8657: max() noexcept { return 0x7fffffffL; } 8657: 8657: 8657: static constexpr long 8657: lowest() noexcept { return min(); } 8657: 8657: 8657: static constexpr int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); 8657: static constexpr int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643L / 2136); 8657: 8657: static constexpr int max_digits10 = 0; 8657: 8657: static constexpr bool is_signed = true; 8657: static constexpr bool is_integer = true; 8657: static constexpr bool is_exact = true; 8657: static constexpr int radix = 2; 8657: 8657: static constexpr long 8657: epsilon() noexcept { return 0; } 8657: 8657: static constexpr long 8657: round_error() noexcept { return 0; } 8657: 8657: static constexpr int min_exponent = 0; 8657: static constexpr int min_exponent10 = 0; 8657: static constexpr int max_exponent = 0; 8657: static constexpr int max_exponent10 = 0; 8657: 8657: static constexpr bool has_infinity = false; 8657: static constexpr bool has_quiet_NaN = false; 8657: static constexpr bool has_signaling_NaN = false; 8657: static constexpr float_denorm_style has_denorm 8657: = denorm_absent; 8657: static constexpr bool has_denorm_loss = false; 8657: 8657: static constexpr long 8657: infinity() noexcept { return static_cast(0); } 8657: 8657: static constexpr long 8657: quiet_NaN() noexcept { return static_cast(0); } 8657: 8657: static constexpr long 8657: signaling_NaN() noexcept { return static_cast(0); } 8657: 8657: static constexpr long 8657: denorm_min() noexcept { return static_cast(0); } 8657: 8657: static constexpr bool is_iec559 = false; 8657: static constexpr bool is_bounded = true; 8657: static constexpr bool is_modulo = false; 8657: 8657: static constexpr bool traps = true; 8657: static constexpr bool tinyness_before = false; 8657: static constexpr float_round_style round_style 8657: = round_toward_zero; 8657: }; 8657: 8657: 8657: template<> 8657: struct numeric_limits 8657: { 8657: static constexpr bool is_specialized = true; 8657: 8657: static constexpr unsigned long 8657: min() noexcept { return 0; } 8657: 8657: static constexpr unsigned long 8657: max() noexcept { return 0x7fffffffL * 2UL + 1; } 8657: 8657: 8657: static constexpr unsigned long 8657: lowest() noexcept { return min(); } 8657: 8657: 8657: static constexpr int digits 8657: = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); 8657: static constexpr int digits10 8657: = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643L / 2136); 8657: 8657: static constexpr int max_digits10 = 0; 8657: 8657: static constexpr bool is_signed = false; 8657: static constexpr bool is_integer = true; 8657: static constexpr bool is_exact = true; 8657: static constexpr int radix = 2; 8657: 8657: static constexpr unsigned long 8657: epsilon() noexcept { return 0; } 8657: 8657: static constexpr unsigned long 8657: round_error() noexcept { return 0; } 8657: 8657: static constexpr int min_exponent = 0; 8657: static constexpr int min_exponent10 = 0; 8657: static constexpr int max_exponent = 0; 8657: static constexpr int max_exponent10 = 0; 8657: 8657: static constexpr bool has_infinity = false; 8657: static constexpr bool has_quiet_NaN = false; 8657: static constexpr bool has_signaling_NaN = false; 8657: static constexpr float_denorm_style has_denorm 8657: = denorm_absent; 8657: static constexpr bool has_denorm_loss = false; 8657: 8657: static constexpr unsigned long 8657: infinity() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr unsigned long 8657: quiet_NaN() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr unsigned long 8657: signaling_NaN() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr unsigned long 8657: denorm_min() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr bool is_iec559 = false; 8657: static constexpr bool is_bounded = true; 8657: static constexpr bool is_modulo = true; 8657: 8657: static constexpr bool traps = true; 8657: static constexpr bool tinyness_before = false; 8657: static constexpr float_round_style round_style 8657: = round_toward_zero; 8657: }; 8657: 8657: 8657: template<> 8657: struct numeric_limits 8657: { 8657: static constexpr bool is_specialized = true; 8657: 8657: static constexpr long long 8657: min() noexcept { return -0x7fffffffffffffffLL - 1; } 8657: 8657: static constexpr long long 8657: max() noexcept { return 0x7fffffffffffffffLL; } 8657: 8657: 8657: static constexpr long long 8657: lowest() noexcept { return min(); } 8657: 8657: 8657: static constexpr int digits 8657: = (sizeof(long long) * 8 - ((long long)(-1) < 0)); 8657: static constexpr int digits10 8657: = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643L / 2136); 8657: 8657: static constexpr int max_digits10 = 0; 8657: 8657: static constexpr bool is_signed = true; 8657: static constexpr bool is_integer = true; 8657: static constexpr bool is_exact = true; 8657: static constexpr int radix = 2; 8657: 8657: static constexpr long long 8657: epsilon() noexcept { return 0; } 8657: 8657: static constexpr long long 8657: round_error() noexcept { return 0; } 8657: 8657: static constexpr int min_exponent = 0; 8657: static constexpr int min_exponent10 = 0; 8657: static constexpr int max_exponent = 0; 8657: static constexpr int max_exponent10 = 0; 8657: 8657: static constexpr bool has_infinity = false; 8657: static constexpr bool has_quiet_NaN = false; 8657: static constexpr bool has_signaling_NaN = false; 8657: static constexpr float_denorm_style has_denorm 8657: = denorm_absent; 8657: static constexpr bool has_denorm_loss = false; 8657: 8657: static constexpr long long 8657: infinity() noexcept { return static_cast(0); } 8657: 8657: static constexpr long long 8657: quiet_NaN() noexcept { return static_cast(0); } 8657: 8657: static constexpr long long 8657: signaling_NaN() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr long long 8657: denorm_min() noexcept { return static_cast(0); } 8657: 8657: static constexpr bool is_iec559 = false; 8657: static constexpr bool is_bounded = true; 8657: static constexpr bool is_modulo = false; 8657: 8657: static constexpr bool traps = true; 8657: static constexpr bool tinyness_before = false; 8657: static constexpr float_round_style round_style 8657: = round_toward_zero; 8657: }; 8657: 8657: 8657: template<> 8657: struct numeric_limits 8657: { 8657: static constexpr bool is_specialized = true; 8657: 8657: static constexpr unsigned long long 8657: min() noexcept { return 0; } 8657: 8657: static constexpr unsigned long long 8657: max() noexcept { return 0x7fffffffffffffffLL * 2ULL + 1; } 8657: 8657: 8657: static constexpr unsigned long long 8657: lowest() noexcept { return min(); } 8657: 8657: 8657: static constexpr int digits 8657: = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); 8657: static constexpr int digits10 8657: = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643L / 2136); 8657: 8657: static constexpr int max_digits10 = 0; 8657: 8657: static constexpr bool is_signed = false; 8657: static constexpr bool is_integer = true; 8657: static constexpr bool is_exact = true; 8657: static constexpr int radix = 2; 8657: 8657: static constexpr unsigned long long 8657: epsilon() noexcept { return 0; } 8657: 8657: static constexpr unsigned long long 8657: round_error() noexcept { return 0; } 8657: 8657: static constexpr int min_exponent = 0; 8657: static constexpr int min_exponent10 = 0; 8657: static constexpr int max_exponent = 0; 8657: static constexpr int max_exponent10 = 0; 8657: 8657: static constexpr bool has_infinity = false; 8657: static constexpr bool has_quiet_NaN = false; 8657: static constexpr bool has_signaling_NaN = false; 8657: static constexpr float_denorm_style has_denorm 8657: = denorm_absent; 8657: static constexpr bool has_denorm_loss = false; 8657: 8657: static constexpr unsigned long long 8657: infinity() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr unsigned long long 8657: quiet_NaN() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr unsigned long long 8657: signaling_NaN() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr unsigned long long 8657: denorm_min() noexcept 8657: { return static_cast(0); } 8657: 8657: static constexpr bool is_iec559 = false; 8657: static constexpr bool is_bounded = true; 8657: static constexpr bool is_modulo = true; 8657: 8657: static constexpr bool traps = true; 8657: static constexpr bool tinyness_before = false; 8657: static constexpr float_round_style round_style 8657: = round_toward_zero; 8657: }; 8657: # 1593 "/usr/include/c++/8/limits" 3 8657: template<> 8657: struct numeric_limits 8657: { 8657: static constexpr bool is_specialized = true; 8657: 8657: static constexpr float 8657: min() noexcept { return 1.1754943508222875e-38F; } 8657: 8657: static constexpr float 8657: max() noexcept { return 3.4028234663852886e+38F; } 8657: 8657: 8657: static constexpr float 8657: lowest() noexcept { return -3.4028234663852886e+38F; } 8657: 8657: 8657: static constexpr int digits = 24; 8657: static constexpr int digits10 = 6; 8657: 8657: static constexpr int max_digits10 8657: = (2 + (24) * 643L / 2136); 8657: 8657: static constexpr bool is_signed = true; 8657: static constexpr bool is_integer = false; 8657: static constexpr bool is_exact = false; 8657: static constexpr int radix = 2; 8657: 8657: static constexpr float 8657: epsilon() noexcept { return 1.1920928955078125e-7F; } 8657: 8657: static constexpr float 8657: round_error() noexcept { return 0.5F; } 8657: 8657: static constexpr int min_exponent = (-125); 8657: static constexpr int min_exponent10 = (-37); 8657: static constexpr int max_exponent = 128; 8657: static constexpr int max_exponent10 = 38; 8657: 8657: static constexpr bool has_infinity = 1; 8657: static constexpr bool has_quiet_NaN = 1; 8657: static constexpr bool has_signaling_NaN = has_quiet_NaN; 8657: static constexpr float_denorm_style has_denorm 8657: = bool(1) ? denorm_present : denorm_absent; 8657: static constexpr bool has_denorm_loss 8657: = false; 8657: 8657: static constexpr float 8657: infinity() noexcept { return __builtin_huge_valf(); } 8657: 8657: static constexpr float 8657: quiet_NaN() noexcept { return __builtin_nanf(""); } 8657: 8657: static constexpr float 8657: signaling_NaN() noexcept { return __builtin_nansf(""); } 8657: 8657: static constexpr float 8657: denorm_min() noexcept { return 1.4012984643248171e-45F; } 8657: 8657: static constexpr bool is_iec559 8657: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 8657: static constexpr bool is_bounded = true; 8657: static constexpr bool is_modulo = false; 8657: 8657: static constexpr bool traps = false; 8657: static constexpr bool tinyness_before 8657: = false; 8657: static constexpr float_round_style round_style 8657: = round_to_nearest; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template<> 8657: struct numeric_limits 8657: { 8657: static constexpr bool is_specialized = true; 8657: 8657: static constexpr double 8657: min() noexcept { return double(2.2250738585072014e-308L); } 8657: 8657: static constexpr double 8657: max() noexcept { return double(1.7976931348623157e+308L); } 8657: 8657: 8657: static constexpr double 8657: lowest() noexcept { return -double(1.7976931348623157e+308L); } 8657: 8657: 8657: static constexpr int digits = 53; 8657: static constexpr int digits10 = 15; 8657: 8657: static constexpr int max_digits10 8657: = (2 + (53) * 643L / 2136); 8657: 8657: static constexpr bool is_signed = true; 8657: static constexpr bool is_integer = false; 8657: static constexpr bool is_exact = false; 8657: static constexpr int radix = 2; 8657: 8657: static constexpr double 8657: epsilon() noexcept { return double(2.2204460492503131e-16L); } 8657: 8657: static constexpr double 8657: round_error() noexcept { return 0.5; } 8657: 8657: static constexpr int min_exponent = (-1021); 8657: static constexpr int min_exponent10 = (-307); 8657: static constexpr int max_exponent = 1024; 8657: static constexpr int max_exponent10 = 308; 8657: 8657: static constexpr bool has_infinity = 1; 8657: static constexpr bool has_quiet_NaN = 1; 8657: static constexpr bool has_signaling_NaN = has_quiet_NaN; 8657: static constexpr float_denorm_style has_denorm 8657: = bool(1) ? denorm_present : denorm_absent; 8657: static constexpr bool has_denorm_loss 8657: = false; 8657: 8657: static constexpr double 8657: infinity() noexcept { return __builtin_huge_val(); } 8657: 8657: static constexpr double 8657: quiet_NaN() noexcept { return __builtin_nan(""); } 8657: 8657: static constexpr double 8657: signaling_NaN() noexcept { return __builtin_nans(""); } 8657: 8657: static constexpr double 8657: denorm_min() noexcept { return double(4.9406564584124654e-324L); } 8657: 8657: static constexpr bool is_iec559 8657: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 8657: static constexpr bool is_bounded = true; 8657: static constexpr bool is_modulo = false; 8657: 8657: static constexpr bool traps = false; 8657: static constexpr bool tinyness_before 8657: = false; 8657: static constexpr float_round_style round_style 8657: = round_to_nearest; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template<> 8657: struct numeric_limits 8657: { 8657: static constexpr bool is_specialized = true; 8657: 8657: static constexpr long double 8657: min() noexcept { return 2.2250738585072014e-308L; } 8657: 8657: static constexpr long double 8657: max() noexcept { return 1.7976931348623157e+308L; } 8657: 8657: 8657: static constexpr long double 8657: lowest() noexcept { return -1.7976931348623157e+308L; } 8657: 8657: 8657: static constexpr int digits = 53; 8657: static constexpr int digits10 = 15; 8657: 8657: static constexpr int max_digits10 8657: = (2 + (53) * 643L / 2136); 8657: 8657: static constexpr bool is_signed = true; 8657: static constexpr bool is_integer = false; 8657: static constexpr bool is_exact = false; 8657: static constexpr int radix = 2; 8657: 8657: static constexpr long double 8657: epsilon() noexcept { return 2.2204460492503131e-16L; } 8657: 8657: static constexpr long double 8657: round_error() noexcept { return 0.5L; } 8657: 8657: static constexpr int min_exponent = (-1021); 8657: static constexpr int min_exponent10 = (-307); 8657: static constexpr int max_exponent = 1024; 8657: static constexpr int max_exponent10 = 308; 8657: 8657: static constexpr bool has_infinity = 1; 8657: static constexpr bool has_quiet_NaN = 1; 8657: static constexpr bool has_signaling_NaN = has_quiet_NaN; 8657: static constexpr float_denorm_style has_denorm 8657: = bool(1) ? denorm_present : denorm_absent; 8657: static constexpr bool has_denorm_loss 8657: = false; 8657: 8657: static constexpr long double 8657: infinity() noexcept { return __builtin_huge_vall(); } 8657: 8657: static constexpr long double 8657: quiet_NaN() noexcept { return __builtin_nanl(""); } 8657: 8657: static constexpr long double 8657: signaling_NaN() noexcept { return __builtin_nansl(""); } 8657: 8657: static constexpr long double 8657: denorm_min() noexcept { return 4.9406564584124654e-324L; } 8657: 8657: static constexpr bool is_iec559 8657: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 8657: static constexpr bool is_bounded = true; 8657: static constexpr bool is_modulo = false; 8657: 8657: static constexpr bool traps = false; 8657: static constexpr bool tinyness_before = 8657: false; 8657: static constexpr float_round_style round_style = 8657: round_to_nearest; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: } 8657: # 36 "/usr/include/c++/8/bits/uniform_int_dist.h" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: namespace __detail 8657: { 8657: 8657: template 8657: inline bool 8657: _Power_of_2(_Tp __x) 8657: { 8657: return ((__x - 1) & __x) == 0; 8657: } 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: class uniform_int_distribution 8657: { 8657: static_assert(std::is_integral<_IntType>::value, 8657: "template argument must be an integral type"); 8657: 8657: public: 8657: 8657: typedef _IntType result_type; 8657: 8657: struct param_type 8657: { 8657: typedef uniform_int_distribution<_IntType> distribution_type; 8657: 8657: explicit 8657: param_type(_IntType __a = 0, 8657: _IntType __b = std::numeric_limits<_IntType>::max()) 8657: : _M_a(__a), _M_b(__b) 8657: { 8657: ; 8657: } 8657: 8657: result_type 8657: a() const 8657: { return _M_a; } 8657: 8657: result_type 8657: b() const 8657: { return _M_b; } 8657: 8657: friend bool 8657: operator==(const param_type& __p1, const param_type& __p2) 8657: { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } 8657: 8657: friend bool 8657: operator!=(const param_type& __p1, const param_type& __p2) 8657: { return !(__p1 == __p2); } 8657: 8657: private: 8657: _IntType _M_a; 8657: _IntType _M_b; 8657: }; 8657: 8657: public: 8657: 8657: 8657: 8657: explicit 8657: uniform_int_distribution(_IntType __a = 0, 8657: _IntType __b = std::numeric_limits<_IntType>::max()) 8657: : _M_param(__a, __b) 8657: { } 8657: 8657: explicit 8657: uniform_int_distribution(const param_type& __p) 8657: : _M_param(__p) 8657: { } 8657: 8657: 8657: 8657: 8657: 8657: 8657: void 8657: reset() { } 8657: 8657: result_type 8657: a() const 8657: { return _M_param.a(); } 8657: 8657: result_type 8657: b() const 8657: { return _M_param.b(); } 8657: 8657: 8657: 8657: 8657: param_type 8657: param() const 8657: { return _M_param; } 8657: 8657: 8657: 8657: 8657: 8657: void 8657: param(const param_type& __param) 8657: { _M_param = __param; } 8657: 8657: 8657: 8657: 8657: result_type 8657: min() const 8657: { return this->a(); } 8657: 8657: 8657: 8657: 8657: result_type 8657: max() const 8657: { return this->b(); } 8657: 8657: 8657: 8657: 8657: template 8657: result_type 8657: operator()(_UniformRandomNumberGenerator& __urng) 8657: { return this->operator()(__urng, _M_param); } 8657: 8657: template 8657: result_type 8657: operator()(_UniformRandomNumberGenerator& __urng, 8657: const param_type& __p); 8657: 8657: template 8657: void 8657: __generate(_ForwardIterator __f, _ForwardIterator __t, 8657: _UniformRandomNumberGenerator& __urng) 8657: { this->__generate(__f, __t, __urng, _M_param); } 8657: 8657: template 8657: void 8657: __generate(_ForwardIterator __f, _ForwardIterator __t, 8657: _UniformRandomNumberGenerator& __urng, 8657: const param_type& __p) 8657: { this->__generate_impl(__f, __t, __urng, __p); } 8657: 8657: template 8657: void 8657: __generate(result_type* __f, result_type* __t, 8657: _UniformRandomNumberGenerator& __urng, 8657: const param_type& __p) 8657: { this->__generate_impl(__f, __t, __urng, __p); } 8657: 8657: 8657: 8657: 8657: 8657: friend bool 8657: operator==(const uniform_int_distribution& __d1, 8657: const uniform_int_distribution& __d2) 8657: { return __d1._M_param == __d2._M_param; } 8657: 8657: private: 8657: template 8657: void 8657: __generate_impl(_ForwardIterator __f, _ForwardIterator __t, 8657: _UniformRandomNumberGenerator& __urng, 8657: const param_type& __p); 8657: 8657: param_type _M_param; 8657: }; 8657: 8657: template 8657: template 8657: typename uniform_int_distribution<_IntType>::result_type 8657: uniform_int_distribution<_IntType>:: 8657: operator()(_UniformRandomNumberGenerator& __urng, 8657: const param_type& __param) 8657: { 8657: typedef typename _UniformRandomNumberGenerator::result_type 8657: _Gresult_type; 8657: typedef typename std::make_unsigned::type __utype; 8657: typedef typename std::common_type<_Gresult_type, __utype>::type 8657: __uctype; 8657: 8657: const __uctype __urngmin = __urng.min(); 8657: const __uctype __urngmax = __urng.max(); 8657: const __uctype __urngrange = __urngmax - __urngmin; 8657: const __uctype __urange 8657: = __uctype(__param.b()) - __uctype(__param.a()); 8657: 8657: __uctype __ret; 8657: 8657: if (__urngrange > __urange) 8657: { 8657: 8657: const __uctype __uerange = __urange + 1; 8657: const __uctype __scaling = __urngrange / __uerange; 8657: const __uctype __past = __uerange * __scaling; 8657: do 8657: __ret = __uctype(__urng()) - __urngmin; 8657: while (__ret >= __past); 8657: __ret /= __scaling; 8657: } 8657: else if (__urngrange < __urange) 8657: { 8657: # 264 "/usr/include/c++/8/bits/uniform_int_dist.h" 3 8657: __uctype __tmp; 8657: do 8657: { 8657: const __uctype __uerngrange = __urngrange + 1; 8657: __tmp = (__uerngrange * operator() 8657: (__urng, param_type(0, __urange / __uerngrange))); 8657: __ret = __tmp + (__uctype(__urng()) - __urngmin); 8657: } 8657: while (__ret > __urange || __ret < __tmp); 8657: } 8657: else 8657: __ret = __uctype(__urng()) - __urngmin; 8657: 8657: return __ret + __param.a(); 8657: } 8657: 8657: 8657: template 8657: template 8657: void 8657: uniform_int_distribution<_IntType>:: 8657: __generate_impl(_ForwardIterator __f, _ForwardIterator __t, 8657: _UniformRandomNumberGenerator& __urng, 8657: const param_type& __param) 8657: { 8657: 8657: typedef typename _UniformRandomNumberGenerator::result_type 8657: _Gresult_type; 8657: typedef typename std::make_unsigned::type __utype; 8657: typedef typename std::common_type<_Gresult_type, __utype>::type 8657: __uctype; 8657: 8657: const __uctype __urngmin = __urng.min(); 8657: const __uctype __urngmax = __urng.max(); 8657: const __uctype __urngrange = __urngmax - __urngmin; 8657: const __uctype __urange 8657: = __uctype(__param.b()) - __uctype(__param.a()); 8657: 8657: __uctype __ret; 8657: 8657: if (__urngrange > __urange) 8657: { 8657: if (__detail::_Power_of_2(__urngrange + 1) 8657: && __detail::_Power_of_2(__urange + 1)) 8657: { 8657: while (__f != __t) 8657: { 8657: __ret = __uctype(__urng()) - __urngmin; 8657: *__f++ = (__ret & __urange) + __param.a(); 8657: } 8657: } 8657: else 8657: { 8657: 8657: const __uctype __uerange = __urange + 1; 8657: const __uctype __scaling = __urngrange / __uerange; 8657: const __uctype __past = __uerange * __scaling; 8657: while (__f != __t) 8657: { 8657: do 8657: __ret = __uctype(__urng()) - __urngmin; 8657: while (__ret >= __past); 8657: *__f++ = __ret / __scaling + __param.a(); 8657: } 8657: } 8657: } 8657: else if (__urngrange < __urange) 8657: { 8657: # 348 "/usr/include/c++/8/bits/uniform_int_dist.h" 3 8657: __uctype __tmp; 8657: while (__f != __t) 8657: { 8657: do 8657: { 8657: const __uctype __uerngrange = __urngrange + 1; 8657: __tmp = (__uerngrange * operator() 8657: (__urng, param_type(0, __urange / __uerngrange))); 8657: __ret = __tmp + (__uctype(__urng()) - __urngmin); 8657: } 8657: while (__ret > __urange || __ret < __tmp); 8657: *__f++ = __ret; 8657: } 8657: } 8657: else 8657: while (__f != __t) 8657: *__f++ = __uctype(__urng()) - __urngmin + __param.a(); 8657: } 8657: 8657: 8657: 8657: 8657: } 8657: # 67 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8657: 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: template 8657: void 8657: __move_median_to_first(_Iterator __result,_Iterator __a, _Iterator __b, 8657: _Iterator __c, _Compare __comp) 8657: { 8657: if (__comp(__a, __b)) 8657: { 8657: if (__comp(__b, __c)) 8657: std::iter_swap(__result, __b); 8657: else if (__comp(__a, __c)) 8657: std::iter_swap(__result, __c); 8657: else 8657: std::iter_swap(__result, __a); 8657: } 8657: else if (__comp(__a, __c)) 8657: std::iter_swap(__result, __a); 8657: else if (__comp(__b, __c)) 8657: std::iter_swap(__result, __c); 8657: else 8657: std::iter_swap(__result, __b); 8657: } 8657: 8657: 8657: template 8657: inline _InputIterator 8657: __find_if(_InputIterator __first, _InputIterator __last, 8657: _Predicate __pred, input_iterator_tag) 8657: { 8657: while (__first != __last && !__pred(__first)) 8657: ++__first; 8657: return __first; 8657: } 8657: 8657: 8657: template 8657: _RandomAccessIterator 8657: __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, 8657: _Predicate __pred, random_access_iterator_tag) 8657: { 8657: typename iterator_traits<_RandomAccessIterator>::difference_type 8657: __trip_count = (__last - __first) >> 2; 8657: 8657: for (; __trip_count > 0; --__trip_count) 8657: { 8657: if (__pred(__first)) 8657: return __first; 8657: ++__first; 8657: 8657: if (__pred(__first)) 8657: return __first; 8657: ++__first; 8657: 8657: if (__pred(__first)) 8657: return __first; 8657: ++__first; 8657: 8657: if (__pred(__first)) 8657: return __first; 8657: ++__first; 8657: } 8657: 8657: switch (__last - __first) 8657: { 8657: case 3: 8657: if (__pred(__first)) 8657: return __first; 8657: ++__first; 8657: case 2: 8657: if (__pred(__first)) 8657: return __first; 8657: ++__first; 8657: case 1: 8657: if (__pred(__first)) 8657: return __first; 8657: ++__first; 8657: case 0: 8657: default: 8657: return __last; 8657: } 8657: } 8657: 8657: template 8657: inline _Iterator 8657: __find_if(_Iterator __first, _Iterator __last, _Predicate __pred) 8657: { 8657: return __find_if(__first, __last, __pred, 8657: std::__iterator_category(__first)); 8657: } 8657: 8657: 8657: template 8657: inline _InputIterator 8657: __find_if_not(_InputIterator __first, _InputIterator __last, 8657: _Predicate __pred) 8657: { 8657: return std::__find_if(__first, __last, 8657: __gnu_cxx::__ops::__negate(__pred), 8657: std::__iterator_category(__first)); 8657: } 8657: 8657: 8657: 8657: 8657: template 8657: _InputIterator 8657: __find_if_not_n(_InputIterator __first, _Distance& __len, _Predicate __pred) 8657: { 8657: for (; __len; --__len, (void) ++__first) 8657: if (!__pred(__first)) 8657: break; 8657: return __first; 8657: } 8657: # 202 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: _ForwardIterator1 8657: __search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8657: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8657: _BinaryPredicate __predicate) 8657: { 8657: 8657: if (__first1 == __last1 || __first2 == __last2) 8657: return __first1; 8657: 8657: 8657: _ForwardIterator2 __p1(__first2); 8657: if (++__p1 == __last2) 8657: return std::__find_if(__first1, __last1, 8657: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 8657: 8657: 8657: _ForwardIterator2 __p; 8657: _ForwardIterator1 __current = __first1; 8657: 8657: for (;;) 8657: { 8657: __first1 = 8657: std::__find_if(__first1, __last1, 8657: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 8657: 8657: if (__first1 == __last1) 8657: return __last1; 8657: 8657: __p = __p1; 8657: __current = __first1; 8657: if (++__current == __last1) 8657: return __last1; 8657: 8657: while (__predicate(__current, __p)) 8657: { 8657: if (++__p == __last2) 8657: return __first1; 8657: if (++__current == __last1) 8657: return __last1; 8657: } 8657: ++__first1; 8657: } 8657: return __first1; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: _ForwardIterator 8657: __search_n_aux(_ForwardIterator __first, _ForwardIterator __last, 8657: _Integer __count, _UnaryPredicate __unary_pred, 8657: std::forward_iterator_tag) 8657: { 8657: __first = std::__find_if(__first, __last, __unary_pred); 8657: while (__first != __last) 8657: { 8657: typename iterator_traits<_ForwardIterator>::difference_type 8657: __n = __count; 8657: _ForwardIterator __i = __first; 8657: ++__i; 8657: while (__i != __last && __n != 1 && __unary_pred(__i)) 8657: { 8657: ++__i; 8657: --__n; 8657: } 8657: if (__n == 1) 8657: return __first; 8657: if (__i == __last) 8657: return __last; 8657: __first = std::__find_if(++__i, __last, __unary_pred); 8657: } 8657: return __last; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: template 8657: _RandomAccessIter 8657: __search_n_aux(_RandomAccessIter __first, _RandomAccessIter __last, 8657: _Integer __count, _UnaryPredicate __unary_pred, 8657: std::random_access_iterator_tag) 8657: { 8657: typedef typename std::iterator_traits<_RandomAccessIter>::difference_type 8657: _DistanceType; 8657: 8657: _DistanceType __tailSize = __last - __first; 8657: _DistanceType __remainder = __count; 8657: 8657: while (__remainder <= __tailSize) 8657: { 8657: __first += __remainder; 8657: __tailSize -= __remainder; 8657: 8657: 8657: _RandomAccessIter __backTrack = __first; 8657: while (__unary_pred(--__backTrack)) 8657: { 8657: if (--__remainder == 0) 8657: return (__first - __count); 8657: } 8657: __remainder = __count + 1 - (__first - __backTrack); 8657: } 8657: return __last; 8657: } 8657: 8657: template 8657: _ForwardIterator 8657: __search_n(_ForwardIterator __first, _ForwardIterator __last, 8657: _Integer __count, 8657: _UnaryPredicate __unary_pred) 8657: { 8657: if (__count <= 0) 8657: return __first; 8657: 8657: if (__count == 1) 8657: return std::__find_if(__first, __last, __unary_pred); 8657: 8657: return std::__search_n_aux(__first, __last, __count, __unary_pred, 8657: std::__iterator_category(__first)); 8657: } 8657: 8657: 8657: template 8657: _ForwardIterator1 8657: __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8657: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8657: forward_iterator_tag, forward_iterator_tag, 8657: _BinaryPredicate __comp) 8657: { 8657: if (__first2 == __last2) 8657: return __last1; 8657: 8657: _ForwardIterator1 __result = __last1; 8657: while (1) 8657: { 8657: _ForwardIterator1 __new_result 8657: = std::__search(__first1, __last1, __first2, __last2, __comp); 8657: if (__new_result == __last1) 8657: return __result; 8657: else 8657: { 8657: __result = __new_result; 8657: __first1 = __new_result; 8657: ++__first1; 8657: } 8657: } 8657: } 8657: 8657: 8657: template 8657: _BidirectionalIterator1 8657: __find_end(_BidirectionalIterator1 __first1, 8657: _BidirectionalIterator1 __last1, 8657: _BidirectionalIterator2 __first2, 8657: _BidirectionalIterator2 __last2, 8657: bidirectional_iterator_tag, bidirectional_iterator_tag, 8657: _BinaryPredicate __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1; 8657: typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2; 8657: 8657: _RevIterator1 __rlast1(__first1); 8657: _RevIterator2 __rlast2(__first2); 8657: _RevIterator1 __rresult = std::__search(_RevIterator1(__last1), __rlast1, 8657: _RevIterator2(__last2), __rlast2, 8657: __comp); 8657: 8657: if (__rresult == __rlast1) 8657: return __last1; 8657: else 8657: { 8657: _BidirectionalIterator1 __result = __rresult.base(); 8657: std::advance(__result, -std::distance(__first2, __last2)); 8657: return __result; 8657: } 8657: } 8657: # 423 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator1 8657: find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8657: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__find_end(__first1, __last1, __first2, __last2, 8657: std::__iterator_category(__first1), 8657: std::__iterator_category(__first2), 8657: __gnu_cxx::__ops::__iter_equal_to_iter()); 8657: } 8657: # 471 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator1 8657: find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8657: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8657: _BinaryPredicate __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__find_end(__first1, __last1, __first2, __last2, 8657: std::__iterator_category(__first1), 8657: std::__iterator_category(__first2), 8657: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: # 506 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline bool 8657: all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8657: { return __last == std::find_if_not(__first, __last, __pred); } 8657: # 523 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline bool 8657: none_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8657: { return __last == std::find_if(__first, __last, __pred); } 8657: # 541 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline bool 8657: any_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8657: { return !std::none_of(__first, __last, __pred); } 8657: # 556 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _InputIterator 8657: find_if_not(_InputIterator __first, _InputIterator __last, 8657: _Predicate __pred) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: return std::__find_if_not(__first, __last, 8657: __gnu_cxx::__ops::__pred_iter(__pred)); 8657: } 8657: # 580 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline bool 8657: is_partitioned(_InputIterator __first, _InputIterator __last, 8657: _Predicate __pred) 8657: { 8657: __first = std::find_if_not(__first, __last, __pred); 8657: if (__first == __last) 8657: return true; 8657: ++__first; 8657: return std::none_of(__first, __last, __pred); 8657: } 8657: # 601 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: _ForwardIterator 8657: partition_point(_ForwardIterator __first, _ForwardIterator __last, 8657: _Predicate __pred) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: typedef typename iterator_traits<_ForwardIterator>::difference_type 8657: _DistanceType; 8657: 8657: _DistanceType __len = std::distance(__first, __last); 8657: _DistanceType __half; 8657: _ForwardIterator __middle; 8657: 8657: while (__len > 0) 8657: { 8657: __half = __len >> 1; 8657: __middle = __first; 8657: std::advance(__middle, __half); 8657: if (__pred(*__middle)) 8657: { 8657: __first = __middle; 8657: ++__first; 8657: __len = __len - __half - 1; 8657: } 8657: else 8657: __len = __half; 8657: } 8657: return __first; 8657: } 8657: 8657: 8657: template 8657: _OutputIterator 8657: __remove_copy_if(_InputIterator __first, _InputIterator __last, 8657: _OutputIterator __result, _Predicate __pred) 8657: { 8657: for (; __first != __last; ++__first) 8657: if (!__pred(__first)) 8657: { 8657: *__result = *__first; 8657: ++__result; 8657: } 8657: return __result; 8657: } 8657: # 668 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _OutputIterator 8657: remove_copy(_InputIterator __first, _InputIterator __last, 8657: _OutputIterator __result, const _Tp& __value) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__remove_copy_if(__first, __last, __result, 8657: __gnu_cxx::__ops::__iter_equals_val(__value)); 8657: } 8657: # 700 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _OutputIterator 8657: remove_copy_if(_InputIterator __first, _InputIterator __last, 8657: _OutputIterator __result, _Predicate __pred) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__remove_copy_if(__first, __last, __result, 8657: __gnu_cxx::__ops::__pred_iter(__pred)); 8657: } 8657: # 734 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: _OutputIterator 8657: copy_if(_InputIterator __first, _InputIterator __last, 8657: _OutputIterator __result, _Predicate __pred) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: for (; __first != __last; ++__first) 8657: if (__pred(*__first)) 8657: { 8657: *__result = *__first; 8657: ++__result; 8657: } 8657: return __result; 8657: } 8657: 8657: template 8657: _OutputIterator 8657: __copy_n(_InputIterator __first, _Size __n, 8657: _OutputIterator __result, input_iterator_tag) 8657: { 8657: if (__n > 0) 8657: { 8657: while (true) 8657: { 8657: *__result = *__first; 8657: ++__result; 8657: if (--__n > 0) 8657: ++__first; 8657: else 8657: break; 8657: } 8657: } 8657: return __result; 8657: } 8657: 8657: template 8657: inline _OutputIterator 8657: __copy_n(_RandomAccessIterator __first, _Size __n, 8657: _OutputIterator __result, random_access_iterator_tag) 8657: { return std::copy(__first, __first + __n, __result); } 8657: # 797 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _OutputIterator 8657: copy_n(_InputIterator __first, _Size __n, _OutputIterator __result) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: return std::__copy_n(__first, __n, __result, 8657: std::__iterator_category(__first)); 8657: } 8657: # 825 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: pair<_OutputIterator1, _OutputIterator2> 8657: partition_copy(_InputIterator __first, _InputIterator __last, 8657: _OutputIterator1 __out_true, _OutputIterator2 __out_false, 8657: _Predicate __pred) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: for (; __first != __last; ++__first) 8657: if (__pred(*__first)) 8657: { 8657: *__out_true = *__first; 8657: ++__out_true; 8657: } 8657: else 8657: { 8657: *__out_false = *__first; 8657: ++__out_false; 8657: } 8657: 8657: return pair<_OutputIterator1, _OutputIterator2>(__out_true, __out_false); 8657: } 8657: 8657: 8657: template 8657: _ForwardIterator 8657: __remove_if(_ForwardIterator __first, _ForwardIterator __last, 8657: _Predicate __pred) 8657: { 8657: __first = std::__find_if(__first, __last, __pred); 8657: if (__first == __last) 8657: return __first; 8657: _ForwardIterator __result = __first; 8657: ++__first; 8657: for (; __first != __last; ++__first) 8657: if (!__pred(__first)) 8657: { 8657: *__result = std::move(*__first); 8657: ++__result; 8657: } 8657: return __result; 8657: } 8657: # 894 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator 8657: remove(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __value) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__remove_if(__first, __last, 8657: __gnu_cxx::__ops::__iter_equals_val(__value)); 8657: } 8657: # 927 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator 8657: remove_if(_ForwardIterator __first, _ForwardIterator __last, 8657: _Predicate __pred) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__remove_if(__first, __last, 8657: __gnu_cxx::__ops::__pred_iter(__pred)); 8657: } 8657: 8657: template 8657: _ForwardIterator 8657: __adjacent_find(_ForwardIterator __first, _ForwardIterator __last, 8657: _BinaryPredicate __binary_pred) 8657: { 8657: if (__first == __last) 8657: return __last; 8657: _ForwardIterator __next = __first; 8657: while (++__next != __last) 8657: { 8657: if (__binary_pred(__first, __next)) 8657: return __first; 8657: __first = __next; 8657: } 8657: return __last; 8657: } 8657: 8657: template 8657: _ForwardIterator 8657: __unique(_ForwardIterator __first, _ForwardIterator __last, 8657: _BinaryPredicate __binary_pred) 8657: { 8657: 8657: __first = std::__adjacent_find(__first, __last, __binary_pred); 8657: if (__first == __last) 8657: return __last; 8657: 8657: 8657: _ForwardIterator __dest = __first; 8657: ++__first; 8657: while (++__first != __last) 8657: if (!__binary_pred(__dest, __first)) 8657: *++__dest = std::move(*__first); 8657: return ++__dest; 8657: } 8657: # 993 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator 8657: unique(_ForwardIterator __first, _ForwardIterator __last) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__unique(__first, __last, 8657: __gnu_cxx::__ops::__iter_equal_to_iter()); 8657: } 8657: # 1023 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator 8657: unique(_ForwardIterator __first, _ForwardIterator __last, 8657: _BinaryPredicate __binary_pred) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__unique(__first, __last, 8657: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: _OutputIterator 8657: __unique_copy(_ForwardIterator __first, _ForwardIterator __last, 8657: _OutputIterator __result, _BinaryPredicate __binary_pred, 8657: forward_iterator_tag, output_iterator_tag) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: _ForwardIterator __next = __first; 8657: *__result = *__first; 8657: while (++__next != __last) 8657: if (!__binary_pred(__first, __next)) 8657: { 8657: __first = __next; 8657: *++__result = *__first; 8657: } 8657: return ++__result; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: _OutputIterator 8657: __unique_copy(_InputIterator __first, _InputIterator __last, 8657: _OutputIterator __result, _BinaryPredicate __binary_pred, 8657: input_iterator_tag, output_iterator_tag) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: typename iterator_traits<_InputIterator>::value_type __value = *__first; 8657: __decltype(__gnu_cxx::__ops::__iter_comp_val(__binary_pred)) 8657: __rebound_pred 8657: = __gnu_cxx::__ops::__iter_comp_val(__binary_pred); 8657: *__result = __value; 8657: while (++__first != __last) 8657: if (!__rebound_pred(__first, __value)) 8657: { 8657: __value = *__first; 8657: *++__result = __value; 8657: } 8657: return ++__result; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: _ForwardIterator 8657: __unique_copy(_InputIterator __first, _InputIterator __last, 8657: _ForwardIterator __result, _BinaryPredicate __binary_pred, 8657: input_iterator_tag, forward_iterator_tag) 8657: { 8657: 8657: 8657: 8657: 8657: *__result = *__first; 8657: while (++__first != __last) 8657: if (!__binary_pred(__result, __first)) 8657: *++__result = *__first; 8657: return ++__result; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: void 8657: __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last, 8657: bidirectional_iterator_tag) 8657: { 8657: while (true) 8657: if (__first == __last || __first == --__last) 8657: return; 8657: else 8657: { 8657: std::iter_swap(__first, __last); 8657: ++__first; 8657: } 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: void 8657: __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last, 8657: random_access_iterator_tag) 8657: { 8657: if (__first == __last) 8657: return; 8657: --__last; 8657: while (__first < __last) 8657: { 8657: std::iter_swap(__first, __last); 8657: ++__first; 8657: --__last; 8657: } 8657: } 8657: # 1178 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline void 8657: reverse(_BidirectionalIterator __first, _BidirectionalIterator __last) 8657: { 8657: 8657: 8657: 8657: ; 8657: std::__reverse(__first, __last, std::__iterator_category(__first)); 8657: } 8657: # 1205 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: _OutputIterator 8657: reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last, 8657: _OutputIterator __result) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: while (__first != __last) 8657: { 8657: --__last; 8657: *__result = *__last; 8657: ++__result; 8657: } 8657: return __result; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: template 8657: _EuclideanRingElement 8657: __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) 8657: { 8657: while (__n != 0) 8657: { 8657: _EuclideanRingElement __t = __m % __n; 8657: __m = __n; 8657: __n = __t; 8657: } 8657: return __m; 8657: } 8657: 8657: inline namespace _V2 8657: { 8657: 8657: 8657: template 8657: _ForwardIterator 8657: __rotate(_ForwardIterator __first, 8657: _ForwardIterator __middle, 8657: _ForwardIterator __last, 8657: forward_iterator_tag) 8657: { 8657: if (__first == __middle) 8657: return __last; 8657: else if (__last == __middle) 8657: return __first; 8657: 8657: _ForwardIterator __first2 = __middle; 8657: do 8657: { 8657: std::iter_swap(__first, __first2); 8657: ++__first; 8657: ++__first2; 8657: if (__first == __middle) 8657: __middle = __first2; 8657: } 8657: while (__first2 != __last); 8657: 8657: _ForwardIterator __ret = __first; 8657: 8657: __first2 = __middle; 8657: 8657: while (__first2 != __last) 8657: { 8657: std::iter_swap(__first, __first2); 8657: ++__first; 8657: ++__first2; 8657: if (__first == __middle) 8657: __middle = __first2; 8657: else if (__first2 == __last) 8657: __first2 = __middle; 8657: } 8657: return __ret; 8657: } 8657: 8657: 8657: template 8657: _BidirectionalIterator 8657: __rotate(_BidirectionalIterator __first, 8657: _BidirectionalIterator __middle, 8657: _BidirectionalIterator __last, 8657: bidirectional_iterator_tag) 8657: { 8657: 8657: 8657: 8657: 8657: if (__first == __middle) 8657: return __last; 8657: else if (__last == __middle) 8657: return __first; 8657: 8657: std::__reverse(__first, __middle, bidirectional_iterator_tag()); 8657: std::__reverse(__middle, __last, bidirectional_iterator_tag()); 8657: 8657: while (__first != __middle && __middle != __last) 8657: { 8657: std::iter_swap(__first, --__last); 8657: ++__first; 8657: } 8657: 8657: if (__first == __middle) 8657: { 8657: std::__reverse(__middle, __last, bidirectional_iterator_tag()); 8657: return __last; 8657: } 8657: else 8657: { 8657: std::__reverse(__first, __middle, bidirectional_iterator_tag()); 8657: return __first; 8657: } 8657: } 8657: 8657: 8657: template 8657: _RandomAccessIterator 8657: __rotate(_RandomAccessIterator __first, 8657: _RandomAccessIterator __middle, 8657: _RandomAccessIterator __last, 8657: random_access_iterator_tag) 8657: { 8657: 8657: 8657: 8657: 8657: if (__first == __middle) 8657: return __last; 8657: else if (__last == __middle) 8657: return __first; 8657: 8657: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8657: _Distance; 8657: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8657: _ValueType; 8657: 8657: _Distance __n = __last - __first; 8657: _Distance __k = __middle - __first; 8657: 8657: if (__k == __n - __k) 8657: { 8657: std::swap_ranges(__first, __middle, __middle); 8657: return __middle; 8657: } 8657: 8657: _RandomAccessIterator __p = __first; 8657: _RandomAccessIterator __ret = __first + (__last - __middle); 8657: 8657: for (;;) 8657: { 8657: if (__k < __n - __k) 8657: { 8657: if (__is_pod(_ValueType) && __k == 1) 8657: { 8657: _ValueType __t = std::move(*__p); 8657: std::move(__p + 1, __p + __n, __p); 8657: *(__p + __n - 1) = std::move(__t); 8657: return __ret; 8657: } 8657: _RandomAccessIterator __q = __p + __k; 8657: for (_Distance __i = 0; __i < __n - __k; ++ __i) 8657: { 8657: std::iter_swap(__p, __q); 8657: ++__p; 8657: ++__q; 8657: } 8657: __n %= __k; 8657: if (__n == 0) 8657: return __ret; 8657: std::swap(__n, __k); 8657: __k = __n - __k; 8657: } 8657: else 8657: { 8657: __k = __n - __k; 8657: if (__is_pod(_ValueType) && __k == 1) 8657: { 8657: _ValueType __t = std::move(*(__p + __n - 1)); 8657: std::move_backward(__p, __p + __n - 1, __p + __n); 8657: *__p = std::move(__t); 8657: return __ret; 8657: } 8657: _RandomAccessIterator __q = __p + __n; 8657: __p = __q - __k; 8657: for (_Distance __i = 0; __i < __n - __k; ++ __i) 8657: { 8657: --__p; 8657: --__q; 8657: std::iter_swap(__p, __q); 8657: } 8657: __n %= __k; 8657: if (__n == 0) 8657: return __ret; 8657: std::swap(__n, __k); 8657: } 8657: } 8657: } 8657: # 1432 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator 8657: rotate(_ForwardIterator __first, _ForwardIterator __middle, 8657: _ForwardIterator __last) 8657: { 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__rotate(__first, __middle, __last, 8657: std::__iterator_category(__first)); 8657: } 8657: 8657: } 8657: # 1469 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _OutputIterator 8657: rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, 8657: _ForwardIterator __last, _OutputIterator __result) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::copy(__first, __middle, 8657: std::copy(__middle, __last, __result)); 8657: } 8657: 8657: 8657: template 8657: _ForwardIterator 8657: __partition(_ForwardIterator __first, _ForwardIterator __last, 8657: _Predicate __pred, forward_iterator_tag) 8657: { 8657: if (__first == __last) 8657: return __first; 8657: 8657: while (__pred(*__first)) 8657: if (++__first == __last) 8657: return __first; 8657: 8657: _ForwardIterator __next = __first; 8657: 8657: while (++__next != __last) 8657: if (__pred(*__next)) 8657: { 8657: std::iter_swap(__first, __next); 8657: ++__first; 8657: } 8657: 8657: return __first; 8657: } 8657: 8657: 8657: template 8657: _BidirectionalIterator 8657: __partition(_BidirectionalIterator __first, _BidirectionalIterator __last, 8657: _Predicate __pred, bidirectional_iterator_tag) 8657: { 8657: while (true) 8657: { 8657: while (true) 8657: if (__first == __last) 8657: return __first; 8657: else if (__pred(*__first)) 8657: ++__first; 8657: else 8657: break; 8657: --__last; 8657: while (true) 8657: if (__first == __last) 8657: return __first; 8657: else if (!bool(__pred(*__last))) 8657: --__last; 8657: else 8657: break; 8657: std::iter_swap(__first, __last); 8657: ++__first; 8657: } 8657: } 8657: # 1546 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: _ForwardIterator 8657: __stable_partition_adaptive(_ForwardIterator __first, 8657: _ForwardIterator __last, 8657: _Predicate __pred, _Distance __len, 8657: _Pointer __buffer, 8657: _Distance __buffer_size) 8657: { 8657: if (__len == 1) 8657: return __first; 8657: 8657: if (__len <= __buffer_size) 8657: { 8657: _ForwardIterator __result1 = __first; 8657: _Pointer __result2 = __buffer; 8657: 8657: 8657: 8657: 8657: *__result2 = std::move(*__first); 8657: ++__result2; 8657: ++__first; 8657: for (; __first != __last; ++__first) 8657: if (__pred(__first)) 8657: { 8657: *__result1 = std::move(*__first); 8657: ++__result1; 8657: } 8657: else 8657: { 8657: *__result2 = std::move(*__first); 8657: ++__result2; 8657: } 8657: 8657: std::move(__buffer, __result2, __result1); 8657: return __result1; 8657: } 8657: 8657: _ForwardIterator __middle = __first; 8657: std::advance(__middle, __len / 2); 8657: _ForwardIterator __left_split = 8657: std::__stable_partition_adaptive(__first, __middle, __pred, 8657: __len / 2, __buffer, 8657: __buffer_size); 8657: 8657: 8657: 8657: _Distance __right_len = __len - __len / 2; 8657: _ForwardIterator __right_split = 8657: std::__find_if_not_n(__middle, __right_len, __pred); 8657: 8657: if (__right_len) 8657: __right_split = 8657: std::__stable_partition_adaptive(__right_split, __last, __pred, 8657: __right_len, 8657: __buffer, __buffer_size); 8657: 8657: std::rotate(__left_split, __middle, __right_split); 8657: std::advance(__left_split, std::distance(__middle, __right_split)); 8657: return __left_split; 8657: } 8657: 8657: template 8657: _ForwardIterator 8657: __stable_partition(_ForwardIterator __first, _ForwardIterator __last, 8657: _Predicate __pred) 8657: { 8657: __first = std::__find_if_not(__first, __last, __pred); 8657: 8657: if (__first == __last) 8657: return __first; 8657: 8657: typedef typename iterator_traits<_ForwardIterator>::value_type 8657: _ValueType; 8657: typedef typename iterator_traits<_ForwardIterator>::difference_type 8657: _DistanceType; 8657: 8657: _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first, __last); 8657: return 8657: std::__stable_partition_adaptive(__first, __last, __pred, 8657: _DistanceType(__buf.requested_size()), 8657: __buf.begin(), 8657: _DistanceType(__buf.size())); 8657: } 8657: # 1649 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator 8657: stable_partition(_ForwardIterator __first, _ForwardIterator __last, 8657: _Predicate __pred) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__stable_partition(__first, __last, 8657: __gnu_cxx::__ops::__pred_iter(__pred)); 8657: } 8657: 8657: 8657: template 8657: void 8657: __heap_select(_RandomAccessIterator __first, 8657: _RandomAccessIterator __middle, 8657: _RandomAccessIterator __last, _Compare __comp) 8657: { 8657: std::__make_heap(__first, __middle, __comp); 8657: for (_RandomAccessIterator __i = __middle; __i < __last; ++__i) 8657: if (__comp(__i, __first)) 8657: std::__pop_heap(__first, __middle, __i, __comp); 8657: } 8657: 8657: 8657: 8657: template 8657: _RandomAccessIterator 8657: __partial_sort_copy(_InputIterator __first, _InputIterator __last, 8657: _RandomAccessIterator __result_first, 8657: _RandomAccessIterator __result_last, 8657: _Compare __comp) 8657: { 8657: typedef typename iterator_traits<_InputIterator>::value_type 8657: _InputValueType; 8657: typedef iterator_traits<_RandomAccessIterator> _RItTraits; 8657: typedef typename _RItTraits::difference_type _DistanceType; 8657: 8657: if (__result_first == __result_last) 8657: return __result_last; 8657: _RandomAccessIterator __result_real_last = __result_first; 8657: while (__first != __last && __result_real_last != __result_last) 8657: { 8657: *__result_real_last = *__first; 8657: ++__result_real_last; 8657: ++__first; 8657: } 8657: 8657: std::__make_heap(__result_first, __result_real_last, __comp); 8657: while (__first != __last) 8657: { 8657: if (__comp(__first, __result_first)) 8657: std::__adjust_heap(__result_first, _DistanceType(0), 8657: _DistanceType(__result_real_last 8657: - __result_first), 8657: _InputValueType(*__first), __comp); 8657: ++__first; 8657: } 8657: std::__sort_heap(__result_first, __result_real_last, __comp); 8657: return __result_real_last; 8657: } 8657: # 1735 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _RandomAccessIterator 8657: partial_sort_copy(_InputIterator __first, _InputIterator __last, 8657: _RandomAccessIterator __result_first, 8657: _RandomAccessIterator __result_last) 8657: { 8657: # 1749 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: 8657: return std::__partial_sort_copy(__first, __last, 8657: __result_first, __result_last, 8657: __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: # 1784 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _RandomAccessIterator 8657: partial_sort_copy(_InputIterator __first, _InputIterator __last, 8657: _RandomAccessIterator __result_first, 8657: _RandomAccessIterator __result_last, 8657: _Compare __comp) 8657: { 8657: # 1800 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: 8657: return std::__partial_sort_copy(__first, __last, 8657: __result_first, __result_last, 8657: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: 8657: 8657: template 8657: void 8657: __unguarded_linear_insert(_RandomAccessIterator __last, 8657: _Compare __comp) 8657: { 8657: typename iterator_traits<_RandomAccessIterator>::value_type 8657: __val = std::move(*__last); 8657: _RandomAccessIterator __next = __last; 8657: --__next; 8657: while (__comp(__val, __next)) 8657: { 8657: *__last = std::move(*__next); 8657: __last = __next; 8657: --__next; 8657: } 8657: *__last = std::move(__val); 8657: } 8657: 8657: 8657: template 8657: void 8657: __insertion_sort(_RandomAccessIterator __first, 8657: _RandomAccessIterator __last, _Compare __comp) 8657: { 8657: if (__first == __last) return; 8657: 8657: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8657: { 8657: if (__comp(__i, __first)) 8657: { 8657: typename iterator_traits<_RandomAccessIterator>::value_type 8657: __val = std::move(*__i); 8657: std::move_backward(__first, __i, __i + 1); 8657: *__first = std::move(__val); 8657: } 8657: else 8657: std::__unguarded_linear_insert(__i, 8657: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8657: } 8657: } 8657: 8657: 8657: template 8657: inline void 8657: __unguarded_insertion_sort(_RandomAccessIterator __first, 8657: _RandomAccessIterator __last, _Compare __comp) 8657: { 8657: for (_RandomAccessIterator __i = __first; __i != __last; ++__i) 8657: std::__unguarded_linear_insert(__i, 8657: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: enum { _S_threshold = 16 }; 8657: 8657: 8657: template 8657: void 8657: __final_insertion_sort(_RandomAccessIterator __first, 8657: _RandomAccessIterator __last, _Compare __comp) 8657: { 8657: if (__last - __first > int(_S_threshold)) 8657: { 8657: std::__insertion_sort(__first, __first + int(_S_threshold), __comp); 8657: std::__unguarded_insertion_sort(__first + int(_S_threshold), __last, 8657: __comp); 8657: } 8657: else 8657: std::__insertion_sort(__first, __last, __comp); 8657: } 8657: 8657: 8657: template 8657: _RandomAccessIterator 8657: __unguarded_partition(_RandomAccessIterator __first, 8657: _RandomAccessIterator __last, 8657: _RandomAccessIterator __pivot, _Compare __comp) 8657: { 8657: while (true) 8657: { 8657: while (__comp(__first, __pivot)) 8657: ++__first; 8657: --__last; 8657: while (__comp(__pivot, __last)) 8657: --__last; 8657: if (!(__first < __last)) 8657: return __first; 8657: std::iter_swap(__first, __last); 8657: ++__first; 8657: } 8657: } 8657: 8657: 8657: template 8657: inline _RandomAccessIterator 8657: __unguarded_partition_pivot(_RandomAccessIterator __first, 8657: _RandomAccessIterator __last, _Compare __comp) 8657: { 8657: _RandomAccessIterator __mid = __first + (__last - __first) / 2; 8657: std::__move_median_to_first(__first, __first + 1, __mid, __last - 1, 8657: __comp); 8657: return std::__unguarded_partition(__first + 1, __last, __first, __comp); 8657: } 8657: 8657: template 8657: inline void 8657: __partial_sort(_RandomAccessIterator __first, 8657: _RandomAccessIterator __middle, 8657: _RandomAccessIterator __last, 8657: _Compare __comp) 8657: { 8657: std::__heap_select(__first, __middle, __last, __comp); 8657: std::__sort_heap(__first, __middle, __comp); 8657: } 8657: 8657: 8657: template 8657: void 8657: __introsort_loop(_RandomAccessIterator __first, 8657: _RandomAccessIterator __last, 8657: _Size __depth_limit, _Compare __comp) 8657: { 8657: while (__last - __first > int(_S_threshold)) 8657: { 8657: if (__depth_limit == 0) 8657: { 8657: std::__partial_sort(__first, __last, __last, __comp); 8657: return; 8657: } 8657: --__depth_limit; 8657: _RandomAccessIterator __cut = 8657: std::__unguarded_partition_pivot(__first, __last, __comp); 8657: std::__introsort_loop(__cut, __last, __depth_limit, __comp); 8657: __last = __cut; 8657: } 8657: } 8657: 8657: 8657: 8657: template 8657: inline void 8657: __sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8657: _Compare __comp) 8657: { 8657: if (__first != __last) 8657: { 8657: std::__introsort_loop(__first, __last, 8657: std::__lg(__last - __first) * 2, 8657: __comp); 8657: std::__final_insertion_sort(__first, __last, __comp); 8657: } 8657: } 8657: 8657: template 8657: void 8657: __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth, 8657: _RandomAccessIterator __last, _Size __depth_limit, 8657: _Compare __comp) 8657: { 8657: while (__last - __first > 3) 8657: { 8657: if (__depth_limit == 0) 8657: { 8657: std::__heap_select(__first, __nth + 1, __last, __comp); 8657: 8657: std::iter_swap(__first, __nth); 8657: return; 8657: } 8657: --__depth_limit; 8657: _RandomAccessIterator __cut = 8657: std::__unguarded_partition_pivot(__first, __last, __comp); 8657: if (__cut <= __nth) 8657: __first = __cut; 8657: else 8657: __last = __cut; 8657: } 8657: std::__insertion_sort(__first, __last, __comp); 8657: } 8657: # 2021 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator 8657: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __val, _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__lower_bound(__first, __last, __val, 8657: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8657: } 8657: 8657: template 8657: _ForwardIterator 8657: __upper_bound(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __val, _Compare __comp) 8657: { 8657: typedef typename iterator_traits<_ForwardIterator>::difference_type 8657: _DistanceType; 8657: 8657: _DistanceType __len = std::distance(__first, __last); 8657: 8657: while (__len > 0) 8657: { 8657: _DistanceType __half = __len >> 1; 8657: _ForwardIterator __middle = __first; 8657: std::advance(__middle, __half); 8657: if (__comp(__val, __middle)) 8657: __len = __half; 8657: else 8657: { 8657: __first = __middle; 8657: ++__first; 8657: __len = __len - __half - 1; 8657: } 8657: } 8657: return __first; 8657: } 8657: # 2075 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator 8657: upper_bound(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __val) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__upper_bound(__first, __last, __val, 8657: __gnu_cxx::__ops::__val_less_iter()); 8657: } 8657: # 2105 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator 8657: upper_bound(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __val, _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__upper_bound(__first, __last, __val, 8657: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8657: } 8657: 8657: template 8657: pair<_ForwardIterator, _ForwardIterator> 8657: __equal_range(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __val, 8657: _CompareItTp __comp_it_val, _CompareTpIt __comp_val_it) 8657: { 8657: typedef typename iterator_traits<_ForwardIterator>::difference_type 8657: _DistanceType; 8657: 8657: _DistanceType __len = std::distance(__first, __last); 8657: 8657: while (__len > 0) 8657: { 8657: _DistanceType __half = __len >> 1; 8657: _ForwardIterator __middle = __first; 8657: std::advance(__middle, __half); 8657: if (__comp_it_val(__middle, __val)) 8657: { 8657: __first = __middle; 8657: ++__first; 8657: __len = __len - __half - 1; 8657: } 8657: else if (__comp_val_it(__val, __middle)) 8657: __len = __half; 8657: else 8657: { 8657: _ForwardIterator __left 8657: = std::__lower_bound(__first, __middle, __val, __comp_it_val); 8657: std::advance(__first, __len); 8657: _ForwardIterator __right 8657: = std::__upper_bound(++__middle, __first, __val, __comp_val_it); 8657: return pair<_ForwardIterator, _ForwardIterator>(__left, __right); 8657: } 8657: } 8657: return pair<_ForwardIterator, _ForwardIterator>(__first, __first); 8657: } 8657: # 2176 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline pair<_ForwardIterator, _ForwardIterator> 8657: equal_range(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __val) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__equal_range(__first, __last, __val, 8657: __gnu_cxx::__ops::__iter_less_val(), 8657: __gnu_cxx::__ops::__val_less_iter()); 8657: } 8657: # 2212 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline pair<_ForwardIterator, _ForwardIterator> 8657: equal_range(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __val, _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: ; 8657: 8657: return std::__equal_range(__first, __last, __val, 8657: __gnu_cxx::__ops::__iter_comp_val(__comp), 8657: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8657: } 8657: # 2245 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: bool 8657: binary_search(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __val) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: _ForwardIterator __i 8657: = std::__lower_bound(__first, __last, __val, 8657: __gnu_cxx::__ops::__iter_less_val()); 8657: return __i != __last && !(__val < *__i); 8657: } 8657: # 2278 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: bool 8657: binary_search(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __val, _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: ; 8657: 8657: _ForwardIterator __i 8657: = std::__lower_bound(__first, __last, __val, 8657: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8657: return __i != __last && !bool(__comp(__val, *__i)); 8657: } 8657: 8657: 8657: 8657: 8657: template 8657: void 8657: __move_merge_adaptive(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _InputIterator2 __last2, 8657: _OutputIterator __result, _Compare __comp) 8657: { 8657: while (__first1 != __last1 && __first2 != __last2) 8657: { 8657: if (__comp(__first2, __first1)) 8657: { 8657: *__result = std::move(*__first2); 8657: ++__first2; 8657: } 8657: else 8657: { 8657: *__result = std::move(*__first1); 8657: ++__first1; 8657: } 8657: ++__result; 8657: } 8657: if (__first1 != __last1) 8657: std::move(__first1, __last1, __result); 8657: } 8657: 8657: 8657: template 8657: void 8657: __move_merge_adaptive_backward(_BidirectionalIterator1 __first1, 8657: _BidirectionalIterator1 __last1, 8657: _BidirectionalIterator2 __first2, 8657: _BidirectionalIterator2 __last2, 8657: _BidirectionalIterator3 __result, 8657: _Compare __comp) 8657: { 8657: if (__first1 == __last1) 8657: { 8657: std::move_backward(__first2, __last2, __result); 8657: return; 8657: } 8657: else if (__first2 == __last2) 8657: return; 8657: 8657: --__last1; 8657: --__last2; 8657: while (true) 8657: { 8657: if (__comp(__last2, __last1)) 8657: { 8657: *--__result = std::move(*__last1); 8657: if (__first1 == __last1) 8657: { 8657: std::move_backward(__first2, ++__last2, __result); 8657: return; 8657: } 8657: --__last1; 8657: } 8657: else 8657: { 8657: *--__result = std::move(*__last2); 8657: if (__first2 == __last2) 8657: return; 8657: --__last2; 8657: } 8657: } 8657: } 8657: 8657: 8657: template 8657: _BidirectionalIterator1 8657: __rotate_adaptive(_BidirectionalIterator1 __first, 8657: _BidirectionalIterator1 __middle, 8657: _BidirectionalIterator1 __last, 8657: _Distance __len1, _Distance __len2, 8657: _BidirectionalIterator2 __buffer, 8657: _Distance __buffer_size) 8657: { 8657: _BidirectionalIterator2 __buffer_end; 8657: if (__len1 > __len2 && __len2 <= __buffer_size) 8657: { 8657: if (__len2) 8657: { 8657: __buffer_end = std::move(__middle, __last, __buffer); 8657: std::move_backward(__first, __middle, __last); 8657: return std::move(__buffer, __buffer_end, __first); 8657: } 8657: else 8657: return __first; 8657: } 8657: else if (__len1 <= __buffer_size) 8657: { 8657: if (__len1) 8657: { 8657: __buffer_end = std::move(__first, __middle, __buffer); 8657: std::move(__middle, __last, __first); 8657: return std::move_backward(__buffer, __buffer_end, __last); 8657: } 8657: else 8657: return __last; 8657: } 8657: else 8657: { 8657: std::rotate(__first, __middle, __last); 8657: std::advance(__first, std::distance(__middle, __last)); 8657: return __first; 8657: } 8657: } 8657: 8657: 8657: template 8657: void 8657: __merge_adaptive(_BidirectionalIterator __first, 8657: _BidirectionalIterator __middle, 8657: _BidirectionalIterator __last, 8657: _Distance __len1, _Distance __len2, 8657: _Pointer __buffer, _Distance __buffer_size, 8657: _Compare __comp) 8657: { 8657: if (__len1 <= __len2 && __len1 <= __buffer_size) 8657: { 8657: _Pointer __buffer_end = std::move(__first, __middle, __buffer); 8657: std::__move_merge_adaptive(__buffer, __buffer_end, __middle, __last, 8657: __first, __comp); 8657: } 8657: else if (__len2 <= __buffer_size) 8657: { 8657: _Pointer __buffer_end = std::move(__middle, __last, __buffer); 8657: std::__move_merge_adaptive_backward(__first, __middle, __buffer, 8657: __buffer_end, __last, __comp); 8657: } 8657: else 8657: { 8657: _BidirectionalIterator __first_cut = __first; 8657: _BidirectionalIterator __second_cut = __middle; 8657: _Distance __len11 = 0; 8657: _Distance __len22 = 0; 8657: if (__len1 > __len2) 8657: { 8657: __len11 = __len1 / 2; 8657: std::advance(__first_cut, __len11); 8657: __second_cut 8657: = std::__lower_bound(__middle, __last, *__first_cut, 8657: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8657: __len22 = std::distance(__middle, __second_cut); 8657: } 8657: else 8657: { 8657: __len22 = __len2 / 2; 8657: std::advance(__second_cut, __len22); 8657: __first_cut 8657: = std::__upper_bound(__first, __middle, *__second_cut, 8657: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8657: __len11 = std::distance(__first, __first_cut); 8657: } 8657: 8657: _BidirectionalIterator __new_middle 8657: = std::__rotate_adaptive(__first_cut, __middle, __second_cut, 8657: __len1 - __len11, __len22, __buffer, 8657: __buffer_size); 8657: std::__merge_adaptive(__first, __first_cut, __new_middle, __len11, 8657: __len22, __buffer, __buffer_size, __comp); 8657: std::__merge_adaptive(__new_middle, __second_cut, __last, 8657: __len1 - __len11, 8657: __len2 - __len22, __buffer, 8657: __buffer_size, __comp); 8657: } 8657: } 8657: 8657: 8657: template 8657: void 8657: __merge_without_buffer(_BidirectionalIterator __first, 8657: _BidirectionalIterator __middle, 8657: _BidirectionalIterator __last, 8657: _Distance __len1, _Distance __len2, 8657: _Compare __comp) 8657: { 8657: if (__len1 == 0 || __len2 == 0) 8657: return; 8657: 8657: if (__len1 + __len2 == 2) 8657: { 8657: if (__comp(__middle, __first)) 8657: std::iter_swap(__first, __middle); 8657: return; 8657: } 8657: 8657: _BidirectionalIterator __first_cut = __first; 8657: _BidirectionalIterator __second_cut = __middle; 8657: _Distance __len11 = 0; 8657: _Distance __len22 = 0; 8657: if (__len1 > __len2) 8657: { 8657: __len11 = __len1 / 2; 8657: std::advance(__first_cut, __len11); 8657: __second_cut 8657: = std::__lower_bound(__middle, __last, *__first_cut, 8657: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8657: __len22 = std::distance(__middle, __second_cut); 8657: } 8657: else 8657: { 8657: __len22 = __len2 / 2; 8657: std::advance(__second_cut, __len22); 8657: __first_cut 8657: = std::__upper_bound(__first, __middle, *__second_cut, 8657: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8657: __len11 = std::distance(__first, __first_cut); 8657: } 8657: 8657: std::rotate(__first_cut, __middle, __second_cut); 8657: _BidirectionalIterator __new_middle = __first_cut; 8657: std::advance(__new_middle, std::distance(__middle, __second_cut)); 8657: std::__merge_without_buffer(__first, __first_cut, __new_middle, 8657: __len11, __len22, __comp); 8657: std::__merge_without_buffer(__new_middle, __second_cut, __last, 8657: __len1 - __len11, __len2 - __len22, __comp); 8657: } 8657: 8657: template 8657: void 8657: __inplace_merge(_BidirectionalIterator __first, 8657: _BidirectionalIterator __middle, 8657: _BidirectionalIterator __last, 8657: _Compare __comp) 8657: { 8657: typedef typename iterator_traits<_BidirectionalIterator>::value_type 8657: _ValueType; 8657: typedef typename iterator_traits<_BidirectionalIterator>::difference_type 8657: _DistanceType; 8657: 8657: if (__first == __middle || __middle == __last) 8657: return; 8657: 8657: const _DistanceType __len1 = std::distance(__first, __middle); 8657: const _DistanceType __len2 = std::distance(__middle, __last); 8657: 8657: typedef _Temporary_buffer<_BidirectionalIterator, _ValueType> _TmpBuf; 8657: _TmpBuf __buf(__first, __last); 8657: 8657: if (__buf.begin() == 0) 8657: std::__merge_without_buffer 8657: (__first, __middle, __last, __len1, __len2, __comp); 8657: else 8657: std::__merge_adaptive 8657: (__first, __middle, __last, __len1, __len2, __buf.begin(), 8657: _DistanceType(__buf.size()), __comp); 8657: } 8657: # 2572 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline void 8657: inplace_merge(_BidirectionalIterator __first, 8657: _BidirectionalIterator __middle, 8657: _BidirectionalIterator __last) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: 8657: std::__inplace_merge(__first, __middle, __last, 8657: __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: # 2613 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline void 8657: inplace_merge(_BidirectionalIterator __first, 8657: _BidirectionalIterator __middle, 8657: _BidirectionalIterator __last, 8657: _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: 8657: std::__inplace_merge(__first, __middle, __last, 8657: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: 8657: 8657: 8657: template 8657: _OutputIterator 8657: __move_merge(_InputIterator __first1, _InputIterator __last1, 8657: _InputIterator __first2, _InputIterator __last2, 8657: _OutputIterator __result, _Compare __comp) 8657: { 8657: while (__first1 != __last1 && __first2 != __last2) 8657: { 8657: if (__comp(__first2, __first1)) 8657: { 8657: *__result = std::move(*__first2); 8657: ++__first2; 8657: } 8657: else 8657: { 8657: *__result = std::move(*__first1); 8657: ++__first1; 8657: } 8657: ++__result; 8657: } 8657: return std::move(__first2, __last2, std::move(__first1, __last1, __result)) 8657: 8657: ; 8657: } 8657: 8657: template 8657: void 8657: __merge_sort_loop(_RandomAccessIterator1 __first, 8657: _RandomAccessIterator1 __last, 8657: _RandomAccessIterator2 __result, _Distance __step_size, 8657: _Compare __comp) 8657: { 8657: const _Distance __two_step = 2 * __step_size; 8657: 8657: while (__last - __first >= __two_step) 8657: { 8657: __result = std::__move_merge(__first, __first + __step_size, 8657: __first + __step_size, 8657: __first + __two_step, 8657: __result, __comp); 8657: __first += __two_step; 8657: } 8657: __step_size = std::min(_Distance(__last - __first), __step_size); 8657: 8657: std::__move_merge(__first, __first + __step_size, 8657: __first + __step_size, __last, __result, __comp); 8657: } 8657: 8657: template 8657: void 8657: __chunk_insertion_sort(_RandomAccessIterator __first, 8657: _RandomAccessIterator __last, 8657: _Distance __chunk_size, _Compare __comp) 8657: { 8657: while (__last - __first >= __chunk_size) 8657: { 8657: std::__insertion_sort(__first, __first + __chunk_size, __comp); 8657: __first += __chunk_size; 8657: } 8657: std::__insertion_sort(__first, __last, __comp); 8657: } 8657: 8657: enum { _S_chunk_size = 7 }; 8657: 8657: template 8657: void 8657: __merge_sort_with_buffer(_RandomAccessIterator __first, 8657: _RandomAccessIterator __last, 8657: _Pointer __buffer, _Compare __comp) 8657: { 8657: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8657: _Distance; 8657: 8657: const _Distance __len = __last - __first; 8657: const _Pointer __buffer_last = __buffer + __len; 8657: 8657: _Distance __step_size = _S_chunk_size; 8657: std::__chunk_insertion_sort(__first, __last, __step_size, __comp); 8657: 8657: while (__step_size < __len) 8657: { 8657: std::__merge_sort_loop(__first, __last, __buffer, 8657: __step_size, __comp); 8657: __step_size *= 2; 8657: std::__merge_sort_loop(__buffer, __buffer_last, __first, 8657: __step_size, __comp); 8657: __step_size *= 2; 8657: } 8657: } 8657: 8657: template 8657: void 8657: __stable_sort_adaptive(_RandomAccessIterator __first, 8657: _RandomAccessIterator __last, 8657: _Pointer __buffer, _Distance __buffer_size, 8657: _Compare __comp) 8657: { 8657: const _Distance __len = (__last - __first + 1) / 2; 8657: const _RandomAccessIterator __middle = __first + __len; 8657: if (__len > __buffer_size) 8657: { 8657: std::__stable_sort_adaptive(__first, __middle, __buffer, 8657: __buffer_size, __comp); 8657: std::__stable_sort_adaptive(__middle, __last, __buffer, 8657: __buffer_size, __comp); 8657: } 8657: else 8657: { 8657: std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp); 8657: std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp); 8657: } 8657: std::__merge_adaptive(__first, __middle, __last, 8657: _Distance(__middle - __first), 8657: _Distance(__last - __middle), 8657: __buffer, __buffer_size, 8657: __comp); 8657: } 8657: 8657: 8657: template 8657: void 8657: __inplace_stable_sort(_RandomAccessIterator __first, 8657: _RandomAccessIterator __last, _Compare __comp) 8657: { 8657: if (__last - __first < 15) 8657: { 8657: std::__insertion_sort(__first, __last, __comp); 8657: return; 8657: } 8657: _RandomAccessIterator __middle = __first + (__last - __first) / 2; 8657: std::__inplace_stable_sort(__first, __middle, __comp); 8657: std::__inplace_stable_sort(__middle, __last, __comp); 8657: std::__merge_without_buffer(__first, __middle, __last, 8657: __middle - __first, 8657: __last - __middle, 8657: __comp); 8657: } 8657: # 2785 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: bool 8657: __includes(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _InputIterator2 __last2, 8657: _Compare __comp) 8657: { 8657: while (__first1 != __last1 && __first2 != __last2) 8657: if (__comp(__first2, __first1)) 8657: return false; 8657: else if (__comp(__first1, __first2)) 8657: ++__first1; 8657: else 8657: { 8657: ++__first1; 8657: ++__first2; 8657: } 8657: 8657: return __first2 == __last2; 8657: } 8657: # 2824 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline bool 8657: includes(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _InputIterator2 __last2) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: ; 8657: 8657: return std::__includes(__first1, __last1, __first2, __last2, 8657: __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: # 2868 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline bool 8657: includes(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _InputIterator2 __last2, 8657: _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: ; 8657: 8657: return std::__includes(__first1, __last1, __first2, __last2, 8657: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: # 2903 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: bool 8657: __next_permutation(_BidirectionalIterator __first, 8657: _BidirectionalIterator __last, _Compare __comp) 8657: { 8657: if (__first == __last) 8657: return false; 8657: _BidirectionalIterator __i = __first; 8657: ++__i; 8657: if (__i == __last) 8657: return false; 8657: __i = __last; 8657: --__i; 8657: 8657: for(;;) 8657: { 8657: _BidirectionalIterator __ii = __i; 8657: --__i; 8657: if (__comp(__i, __ii)) 8657: { 8657: _BidirectionalIterator __j = __last; 8657: while (!__comp(__i, --__j)) 8657: {} 8657: std::iter_swap(__i, __j); 8657: std::__reverse(__ii, __last, 8657: std::__iterator_category(__first)); 8657: return true; 8657: } 8657: if (__i == __first) 8657: { 8657: std::__reverse(__first, __last, 8657: std::__iterator_category(__first)); 8657: return false; 8657: } 8657: } 8657: } 8657: # 2952 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline bool 8657: next_permutation(_BidirectionalIterator __first, 8657: _BidirectionalIterator __last) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__next_permutation 8657: (__first, __last, __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: # 2984 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline bool 8657: next_permutation(_BidirectionalIterator __first, 8657: _BidirectionalIterator __last, _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__next_permutation 8657: (__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: 8657: template 8657: bool 8657: __prev_permutation(_BidirectionalIterator __first, 8657: _BidirectionalIterator __last, _Compare __comp) 8657: { 8657: if (__first == __last) 8657: return false; 8657: _BidirectionalIterator __i = __first; 8657: ++__i; 8657: if (__i == __last) 8657: return false; 8657: __i = __last; 8657: --__i; 8657: 8657: for(;;) 8657: { 8657: _BidirectionalIterator __ii = __i; 8657: --__i; 8657: if (__comp(__ii, __i)) 8657: { 8657: _BidirectionalIterator __j = __last; 8657: while (!__comp(--__j, __i)) 8657: {} 8657: std::iter_swap(__i, __j); 8657: std::__reverse(__ii, __last, 8657: std::__iterator_category(__first)); 8657: return true; 8657: } 8657: if (__i == __first) 8657: { 8657: std::__reverse(__first, __last, 8657: std::__iterator_category(__first)); 8657: return false; 8657: } 8657: } 8657: } 8657: # 3052 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline bool 8657: prev_permutation(_BidirectionalIterator __first, 8657: _BidirectionalIterator __last) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__prev_permutation(__first, __last, 8657: __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: # 3084 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline bool 8657: prev_permutation(_BidirectionalIterator __first, 8657: _BidirectionalIterator __last, _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__prev_permutation(__first, __last, 8657: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: 8657: 8657: 8657: 8657: template 8657: _OutputIterator 8657: __replace_copy_if(_InputIterator __first, _InputIterator __last, 8657: _OutputIterator __result, 8657: _Predicate __pred, const _Tp& __new_value) 8657: { 8657: for (; __first != __last; ++__first, (void)++__result) 8657: if (__pred(__first)) 8657: *__result = __new_value; 8657: else 8657: *__result = *__first; 8657: return __result; 8657: } 8657: # 3134 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _OutputIterator 8657: replace_copy(_InputIterator __first, _InputIterator __last, 8657: _OutputIterator __result, 8657: const _Tp& __old_value, const _Tp& __new_value) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__replace_copy_if(__first, __last, __result, 8657: __gnu_cxx::__ops::__iter_equals_val(__old_value), 8657: __new_value); 8657: } 8657: # 3168 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _OutputIterator 8657: replace_copy_if(_InputIterator __first, _InputIterator __last, 8657: _OutputIterator __result, 8657: _Predicate __pred, const _Tp& __new_value) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__replace_copy_if(__first, __last, __result, 8657: __gnu_cxx::__ops::__pred_iter(__pred), 8657: __new_value); 8657: } 8657: 8657: template 8657: typename iterator_traits<_InputIterator>::difference_type 8657: __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8657: { 8657: typename iterator_traits<_InputIterator>::difference_type __n = 0; 8657: for (; __first != __last; ++__first) 8657: if (__pred(__first)) 8657: ++__n; 8657: return __n; 8657: } 8657: # 3207 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline bool 8657: is_sorted(_ForwardIterator __first, _ForwardIterator __last) 8657: { return std::is_sorted_until(__first, __last) == __last; } 8657: # 3221 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline bool 8657: is_sorted(_ForwardIterator __first, _ForwardIterator __last, 8657: _Compare __comp) 8657: { return std::is_sorted_until(__first, __last, __comp) == __last; } 8657: 8657: template 8657: _ForwardIterator 8657: __is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, 8657: _Compare __comp) 8657: { 8657: if (__first == __last) 8657: return __last; 8657: 8657: _ForwardIterator __next = __first; 8657: for (++__next; __next != __last; __first = __next, (void)++__next) 8657: if (__comp(__next, __first)) 8657: return __next; 8657: return __next; 8657: } 8657: # 3250 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator 8657: is_sorted_until(_ForwardIterator __first, _ForwardIterator __last) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__is_sorted_until(__first, __last, 8657: __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: # 3274 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator 8657: is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, 8657: _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__is_sorted_until(__first, __last, 8657: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: # 3299 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: 8657: inline pair 8657: minmax(const _Tp& __a, const _Tp& __b) 8657: { 8657: 8657: 8657: 8657: return __b < __a ? pair(__b, __a) 8657: : pair(__a, __b); 8657: } 8657: # 3320 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: 8657: inline pair 8657: minmax(const _Tp& __a, const _Tp& __b, _Compare __comp) 8657: { 8657: return __comp(__b, __a) ? pair(__b, __a) 8657: : pair(__a, __b); 8657: } 8657: 8657: template 8657: 8657: pair<_ForwardIterator, _ForwardIterator> 8657: __minmax_element(_ForwardIterator __first, _ForwardIterator __last, 8657: _Compare __comp) 8657: { 8657: _ForwardIterator __next = __first; 8657: if (__first == __last 8657: || ++__next == __last) 8657: return std::make_pair(__first, __first); 8657: 8657: _ForwardIterator __min{}, __max{}; 8657: if (__comp(__next, __first)) 8657: { 8657: __min = __next; 8657: __max = __first; 8657: } 8657: else 8657: { 8657: __min = __first; 8657: __max = __next; 8657: } 8657: 8657: __first = __next; 8657: ++__first; 8657: 8657: while (__first != __last) 8657: { 8657: __next = __first; 8657: if (++__next == __last) 8657: { 8657: if (__comp(__first, __min)) 8657: __min = __first; 8657: else if (!__comp(__first, __max)) 8657: __max = __first; 8657: break; 8657: } 8657: 8657: if (__comp(__next, __first)) 8657: { 8657: if (__comp(__next, __min)) 8657: __min = __next; 8657: if (!__comp(__first, __max)) 8657: __max = __first; 8657: } 8657: else 8657: { 8657: if (__comp(__first, __min)) 8657: __min = __first; 8657: if (!__comp(__next, __max)) 8657: __max = __next; 8657: } 8657: 8657: __first = __next; 8657: ++__first; 8657: } 8657: 8657: return std::make_pair(__min, __max); 8657: } 8657: # 3400 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: 8657: inline pair<_ForwardIterator, _ForwardIterator> 8657: minmax_element(_ForwardIterator __first, _ForwardIterator __last) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__minmax_element(__first, __last, 8657: __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: # 3428 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: 8657: inline pair<_ForwardIterator, _ForwardIterator> 8657: minmax_element(_ForwardIterator __first, _ForwardIterator __last, 8657: _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__minmax_element(__first, __last, 8657: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: 8657: 8657: template 8657: 8657: inline _Tp 8657: min(initializer_list<_Tp> __l) 8657: { return *std::min_element(__l.begin(), __l.end()); } 8657: 8657: template 8657: 8657: inline _Tp 8657: min(initializer_list<_Tp> __l, _Compare __comp) 8657: { return *std::min_element(__l.begin(), __l.end(), __comp); } 8657: 8657: template 8657: 8657: inline _Tp 8657: max(initializer_list<_Tp> __l) 8657: { return *std::max_element(__l.begin(), __l.end()); } 8657: 8657: template 8657: 8657: inline _Tp 8657: max(initializer_list<_Tp> __l, _Compare __comp) 8657: { return *std::max_element(__l.begin(), __l.end(), __comp); } 8657: 8657: template 8657: 8657: inline pair<_Tp, _Tp> 8657: minmax(initializer_list<_Tp> __l) 8657: { 8657: pair __p = 8657: std::minmax_element(__l.begin(), __l.end()); 8657: return std::make_pair(*__p.first, *__p.second); 8657: } 8657: 8657: template 8657: 8657: inline pair<_Tp, _Tp> 8657: minmax(initializer_list<_Tp> __l, _Compare __comp) 8657: { 8657: pair __p = 8657: std::minmax_element(__l.begin(), __l.end(), __comp); 8657: return std::make_pair(*__p.first, *__p.second); 8657: } 8657: 8657: template 8657: bool 8657: __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8657: _ForwardIterator2 __first2, _BinaryPredicate __pred) 8657: { 8657: 8657: 8657: for (; __first1 != __last1; ++__first1, (void)++__first2) 8657: if (!__pred(__first1, __first2)) 8657: break; 8657: 8657: if (__first1 == __last1) 8657: return true; 8657: 8657: 8657: 8657: _ForwardIterator2 __last2 = __first2; 8657: std::advance(__last2, std::distance(__first1, __last1)); 8657: for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) 8657: { 8657: if (__scan != std::__find_if(__first1, __scan, 8657: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) 8657: continue; 8657: 8657: auto __matches 8657: = std::__count_if(__first2, __last2, 8657: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); 8657: if (0 == __matches || 8657: std::__count_if(__scan, __last1, 8657: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) 8657: != __matches) 8657: return false; 8657: } 8657: return true; 8657: } 8657: # 3540 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline bool 8657: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8657: _ForwardIterator2 __first2) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__is_permutation(__first1, __last1, __first2, 8657: __gnu_cxx::__ops::__iter_equal_to_iter()); 8657: } 8657: # 3571 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline bool 8657: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8657: _ForwardIterator2 __first2, _BinaryPredicate __pred) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__is_permutation(__first1, __last1, __first2, 8657: __gnu_cxx::__ops::__iter_comp_iter(__pred)); 8657: } 8657: # 3767 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: pair<_IntType, _IntType> 8657: __gen_two_uniform_ints(_IntType __b0, _IntType __b1, 8657: _UniformRandomBitGenerator&& __g) 8657: { 8657: _IntType __x 8657: = uniform_int_distribution<_IntType>{0, (__b0 * __b1) - 1}(__g); 8657: return std::make_pair(__x / __b1, __x % __b1); 8657: } 8657: # 3789 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: void 8657: shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, 8657: _UniformRandomNumberGenerator&& __g) 8657: { 8657: 8657: 8657: 8657: ; 8657: 8657: if (__first == __last) 8657: return; 8657: 8657: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8657: _DistanceType; 8657: 8657: typedef typename std::make_unsigned<_DistanceType>::type __ud_type; 8657: typedef typename std::uniform_int_distribution<__ud_type> __distr_type; 8657: typedef typename __distr_type::param_type __p_type; 8657: 8657: typedef typename remove_reference<_UniformRandomNumberGenerator>::type 8657: _Gen; 8657: typedef typename common_type::type 8657: __uc_type; 8657: 8657: const __uc_type __urngrange = __g.max() - __g.min(); 8657: const __uc_type __urange = __uc_type(__last - __first); 8657: 8657: if (__urngrange / __urange >= __urange) 8657: 8657: { 8657: _RandomAccessIterator __i = __first + 1; 8657: 8657: 8657: 8657: 8657: 8657: if ((__urange % 2) == 0) 8657: { 8657: __distr_type __d{0, 1}; 8657: std::iter_swap(__i++, __first + __d(__g)); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: while (__i != __last) 8657: { 8657: const __uc_type __swap_range = __uc_type(__i - __first) + 1; 8657: 8657: const pair<__uc_type, __uc_type> __pospos = 8657: __gen_two_uniform_ints(__swap_range, __swap_range + 1, __g); 8657: 8657: std::iter_swap(__i++, __first + __pospos.first); 8657: std::iter_swap(__i++, __first + __pospos.second); 8657: } 8657: 8657: return; 8657: } 8657: 8657: __distr_type __d; 8657: 8657: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8657: std::iter_swap(__i, __first + __d(__g, __p_type(0, __i - __first))); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: # 3874 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: _Function 8657: for_each(_InputIterator __first, _InputIterator __last, _Function __f) 8657: { 8657: 8657: 8657: ; 8657: for (; __first != __last; ++__first) 8657: __f(*__first); 8657: return __f; 8657: } 8657: # 3895 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _InputIterator 8657: find(_InputIterator __first, _InputIterator __last, 8657: const _Tp& __val) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: return std::__find_if(__first, __last, 8657: __gnu_cxx::__ops::__iter_equals_val(__val)); 8657: } 8657: # 3919 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _InputIterator 8657: find_if(_InputIterator __first, _InputIterator __last, 8657: _Predicate __pred) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__find_if(__first, __last, 8657: __gnu_cxx::__ops::__pred_iter(__pred)); 8657: } 8657: # 3950 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: _InputIterator 8657: find_first_of(_InputIterator __first1, _InputIterator __last1, 8657: _ForwardIterator __first2, _ForwardIterator __last2) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: for (; __first1 != __last1; ++__first1) 8657: for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) 8657: if (*__first1 == *__iter) 8657: return __first1; 8657: return __last1; 8657: } 8657: # 3990 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: _InputIterator 8657: find_first_of(_InputIterator __first1, _InputIterator __last1, 8657: _ForwardIterator __first2, _ForwardIterator __last2, 8657: _BinaryPredicate __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: for (; __first1 != __last1; ++__first1) 8657: for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) 8657: if (__comp(*__first1, *__iter)) 8657: return __first1; 8657: return __last1; 8657: } 8657: # 4022 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator 8657: adjacent_find(_ForwardIterator __first, _ForwardIterator __last) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__adjacent_find(__first, __last, 8657: __gnu_cxx::__ops::__iter_equal_to_iter()); 8657: } 8657: # 4047 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator 8657: adjacent_find(_ForwardIterator __first, _ForwardIterator __last, 8657: _BinaryPredicate __binary_pred) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__adjacent_find(__first, __last, 8657: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 8657: } 8657: # 4072 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline typename iterator_traits<_InputIterator>::difference_type 8657: count(_InputIterator __first, _InputIterator __last, const _Tp& __value) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__count_if(__first, __last, 8657: __gnu_cxx::__ops::__iter_equals_val(__value)); 8657: } 8657: # 4095 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline typename iterator_traits<_InputIterator>::difference_type 8657: count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__count_if(__first, __last, 8657: __gnu_cxx::__ops::__pred_iter(__pred)); 8657: } 8657: # 4135 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator1 8657: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8657: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__search(__first1, __last1, __first2, __last2, 8657: __gnu_cxx::__ops::__iter_equal_to_iter()); 8657: } 8657: # 4174 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator1 8657: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8657: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8657: _BinaryPredicate __predicate) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__search(__first1, __last1, __first2, __last2, 8657: __gnu_cxx::__ops::__iter_comp_iter(__predicate)); 8657: } 8657: # 4209 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator 8657: search_n(_ForwardIterator __first, _ForwardIterator __last, 8657: _Integer __count, const _Tp& __val) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__search_n(__first, __last, __count, 8657: __gnu_cxx::__ops::__iter_equals_val(__val)); 8657: } 8657: # 4242 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator 8657: search_n(_ForwardIterator __first, _ForwardIterator __last, 8657: _Integer __count, const _Tp& __val, 8657: _BinaryPredicate __binary_pred) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__search_n(__first, __last, __count, 8657: __gnu_cxx::__ops::__iter_comp_val(__binary_pred, __val)); 8657: } 8657: # 4290 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: _OutputIterator 8657: transform(_InputIterator __first, _InputIterator __last, 8657: _OutputIterator __result, _UnaryOperation __unary_op) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: for (; __first != __last; ++__first, (void)++__result) 8657: *__result = __unary_op(*__first); 8657: return __result; 8657: } 8657: # 4327 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: _OutputIterator 8657: transform(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _OutputIterator __result, 8657: _BinaryOperation __binary_op) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: for (; __first1 != __last1; ++__first1, (void)++__first2, ++__result) 8657: *__result = __binary_op(*__first1, *__first2); 8657: return __result; 8657: } 8657: # 4360 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: void 8657: replace(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __old_value, const _Tp& __new_value) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: for (; __first != __last; ++__first) 8657: if (*__first == __old_value) 8657: *__first = __new_value; 8657: } 8657: # 4392 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: void 8657: replace_if(_ForwardIterator __first, _ForwardIterator __last, 8657: _Predicate __pred, const _Tp& __new_value) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: for (; __first != __last; ++__first) 8657: if (__pred(*__first)) 8657: *__first = __new_value; 8657: } 8657: # 4424 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: void 8657: generate(_ForwardIterator __first, _ForwardIterator __last, 8657: _Generator __gen) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: for (; __first != __last; ++__first) 8657: *__first = __gen(); 8657: } 8657: # 4455 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: _OutputIterator 8657: generate_n(_OutputIterator __first, _Size __n, _Generator __gen) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: for (__decltype(__n + 0) __niter = __n; 8657: __niter > 0; --__niter, (void) ++__first) 8657: *__first = __gen(); 8657: return __first; 8657: } 8657: # 4491 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _OutputIterator 8657: unique_copy(_InputIterator __first, _InputIterator __last, 8657: _OutputIterator __result) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: if (__first == __last) 8657: return __result; 8657: return std::__unique_copy(__first, __last, __result, 8657: __gnu_cxx::__ops::__iter_equal_to_iter(), 8657: std::__iterator_category(__first), 8657: std::__iterator_category(__result)); 8657: } 8657: # 4531 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _OutputIterator 8657: unique_copy(_InputIterator __first, _InputIterator __last, 8657: _OutputIterator __result, 8657: _BinaryPredicate __binary_pred) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: if (__first == __last) 8657: return __result; 8657: return std::__unique_copy(__first, __last, __result, 8657: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred), 8657: std::__iterator_category(__first), 8657: std::__iterator_category(__result)); 8657: } 8657: # 4564 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline void 8657: random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last) 8657: { 8657: 8657: 8657: 8657: ; 8657: 8657: if (__first != __last) 8657: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8657: { 8657: 8657: _RandomAccessIterator __j = __first 8657: + std::rand() % ((__i - __first) + 1); 8657: if (__i != __j) 8657: std::iter_swap(__i, __j); 8657: } 8657: } 8657: # 4599 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: void 8657: random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, 8657: 8657: _RandomNumberGenerator&& __rand) 8657: 8657: 8657: 8657: { 8657: 8657: 8657: 8657: ; 8657: 8657: if (__first == __last) 8657: return; 8657: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8657: { 8657: _RandomAccessIterator __j = __first + __rand((__i - __first) + 1); 8657: if (__i != __j) 8657: std::iter_swap(__i, __j); 8657: } 8657: } 8657: # 4639 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _ForwardIterator 8657: partition(_ForwardIterator __first, _ForwardIterator __last, 8657: _Predicate __pred) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: return std::__partition(__first, __last, __pred, 8657: std::__iterator_category(__first)); 8657: } 8657: # 4672 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline void 8657: partial_sort(_RandomAccessIterator __first, 8657: _RandomAccessIterator __middle, 8657: _RandomAccessIterator __last) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: 8657: std::__partial_sort(__first, __middle, __last, 8657: __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: # 4710 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline void 8657: partial_sort(_RandomAccessIterator __first, 8657: _RandomAccessIterator __middle, 8657: _RandomAccessIterator __last, 8657: _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: 8657: std::__partial_sort(__first, __middle, __last, 8657: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: # 4746 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline void 8657: nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, 8657: _RandomAccessIterator __last) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: 8657: if (__first == __last || __nth == __last) 8657: return; 8657: 8657: std::__introselect(__first, __nth, __last, 8657: std::__lg(__last - __first) * 2, 8657: __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: # 4785 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline void 8657: nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, 8657: _RandomAccessIterator __last, _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: 8657: if (__first == __last || __nth == __last) 8657: return; 8657: 8657: std::__introselect(__first, __nth, __last, 8657: std::__lg(__last - __first) * 2, 8657: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: # 4822 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline void 8657: sort(_RandomAccessIterator __first, _RandomAccessIterator __last) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: # 4852 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline void 8657: sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8657: _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: 8657: template 8657: _OutputIterator 8657: __merge(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _InputIterator2 __last2, 8657: _OutputIterator __result, _Compare __comp) 8657: { 8657: while (__first1 != __last1 && __first2 != __last2) 8657: { 8657: if (__comp(__first2, __first1)) 8657: { 8657: *__result = *__first2; 8657: ++__first2; 8657: } 8657: else 8657: { 8657: *__result = *__first1; 8657: ++__first1; 8657: } 8657: ++__result; 8657: } 8657: return std::copy(__first2, __last2, 8657: std::copy(__first1, __last1, __result)); 8657: } 8657: # 4913 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _OutputIterator 8657: merge(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _InputIterator2 __last2, 8657: _OutputIterator __result) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: ; 8657: 8657: return std::__merge(__first1, __last1, 8657: __first2, __last2, __result, 8657: __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: # 4963 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _OutputIterator 8657: merge(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _InputIterator2 __last2, 8657: _OutputIterator __result, _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: ; 8657: 8657: return std::__merge(__first1, __last1, 8657: __first2, __last2, __result, 8657: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: 8657: template 8657: inline void 8657: __stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8657: _Compare __comp) 8657: { 8657: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8657: _ValueType; 8657: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8657: _DistanceType; 8657: 8657: typedef _Temporary_buffer<_RandomAccessIterator, _ValueType> _TmpBuf; 8657: _TmpBuf __buf(__first, __last); 8657: 8657: if (__buf.begin() == 0) 8657: std::__inplace_stable_sort(__first, __last, __comp); 8657: else 8657: std::__stable_sort_adaptive(__first, __last, __buf.begin(), 8657: _DistanceType(__buf.size()), __comp); 8657: } 8657: # 5027 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline void 8657: stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: std::__stable_sort(__first, __last, 8657: __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: # 5061 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline void 8657: stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8657: _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: std::__stable_sort(__first, __last, 8657: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: 8657: template 8657: _OutputIterator 8657: __set_union(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _InputIterator2 __last2, 8657: _OutputIterator __result, _Compare __comp) 8657: { 8657: while (__first1 != __last1 && __first2 != __last2) 8657: { 8657: if (__comp(__first1, __first2)) 8657: { 8657: *__result = *__first1; 8657: ++__first1; 8657: } 8657: else if (__comp(__first2, __first1)) 8657: { 8657: *__result = *__first2; 8657: ++__first2; 8657: } 8657: else 8657: { 8657: *__result = *__first1; 8657: ++__first1; 8657: ++__first2; 8657: } 8657: ++__result; 8657: } 8657: return std::copy(__first2, __last2, 8657: std::copy(__first1, __last1, __result)); 8657: } 8657: # 5130 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _OutputIterator 8657: set_union(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _InputIterator2 __last2, 8657: _OutputIterator __result) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: ; 8657: 8657: return std::__set_union(__first1, __last1, 8657: __first2, __last2, __result, 8657: __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: # 5180 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _OutputIterator 8657: set_union(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _InputIterator2 __last2, 8657: _OutputIterator __result, _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: ; 8657: 8657: return std::__set_union(__first1, __last1, 8657: __first2, __last2, __result, 8657: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: 8657: template 8657: _OutputIterator 8657: __set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _InputIterator2 __last2, 8657: _OutputIterator __result, _Compare __comp) 8657: { 8657: while (__first1 != __last1 && __first2 != __last2) 8657: if (__comp(__first1, __first2)) 8657: ++__first1; 8657: else if (__comp(__first2, __first1)) 8657: ++__first2; 8657: else 8657: { 8657: *__result = *__first1; 8657: ++__first1; 8657: ++__first2; 8657: ++__result; 8657: } 8657: return __result; 8657: } 8657: # 5251 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _OutputIterator 8657: set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _InputIterator2 __last2, 8657: _OutputIterator __result) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: ; 8657: 8657: return std::__set_intersection(__first1, __last1, 8657: __first2, __last2, __result, 8657: __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: # 5300 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _OutputIterator 8657: set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _InputIterator2 __last2, 8657: _OutputIterator __result, _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: ; 8657: 8657: return std::__set_intersection(__first1, __last1, 8657: __first2, __last2, __result, 8657: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: 8657: template 8657: _OutputIterator 8657: __set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _InputIterator2 __last2, 8657: _OutputIterator __result, _Compare __comp) 8657: { 8657: while (__first1 != __last1 && __first2 != __last2) 8657: if (__comp(__first1, __first2)) 8657: { 8657: *__result = *__first1; 8657: ++__first1; 8657: ++__result; 8657: } 8657: else if (__comp(__first2, __first1)) 8657: ++__first2; 8657: else 8657: { 8657: ++__first1; 8657: ++__first2; 8657: } 8657: return std::copy(__first1, __last1, __result); 8657: } 8657: # 5373 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _OutputIterator 8657: set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _InputIterator2 __last2, 8657: _OutputIterator __result) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: ; 8657: 8657: return std::__set_difference(__first1, __last1, 8657: __first2, __last2, __result, 8657: __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: # 5424 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _OutputIterator 8657: set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _InputIterator2 __last2, 8657: _OutputIterator __result, _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: ; 8657: 8657: return std::__set_difference(__first1, __last1, 8657: __first2, __last2, __result, 8657: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: 8657: template 8657: _OutputIterator 8657: __set_symmetric_difference(_InputIterator1 __first1, 8657: _InputIterator1 __last1, 8657: _InputIterator2 __first2, 8657: _InputIterator2 __last2, 8657: _OutputIterator __result, 8657: _Compare __comp) 8657: { 8657: while (__first1 != __last1 && __first2 != __last2) 8657: if (__comp(__first1, __first2)) 8657: { 8657: *__result = *__first1; 8657: ++__first1; 8657: ++__result; 8657: } 8657: else if (__comp(__first2, __first1)) 8657: { 8657: *__result = *__first2; 8657: ++__first2; 8657: ++__result; 8657: } 8657: else 8657: { 8657: ++__first1; 8657: ++__first2; 8657: } 8657: return std::copy(__first2, __last2, 8657: std::copy(__first1, __last1, __result)); 8657: } 8657: # 5503 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _OutputIterator 8657: set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _InputIterator2 __last2, 8657: _OutputIterator __result) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: ; 8657: 8657: return std::__set_symmetric_difference(__first1, __last1, 8657: __first2, __last2, __result, 8657: __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: # 5554 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: inline _OutputIterator 8657: set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _InputIterator2 __last2, 8657: _OutputIterator __result, 8657: _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: ; 8657: ; 8657: 8657: return std::__set_symmetric_difference(__first1, __last1, 8657: __first2, __last2, __result, 8657: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: 8657: template 8657: 8657: _ForwardIterator 8657: __min_element(_ForwardIterator __first, _ForwardIterator __last, 8657: _Compare __comp) 8657: { 8657: if (__first == __last) 8657: return __first; 8657: _ForwardIterator __result = __first; 8657: while (++__first != __last) 8657: if (__comp(__first, __result)) 8657: __result = __first; 8657: return __result; 8657: } 8657: # 5607 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: 8657: _ForwardIterator 8657: inline min_element(_ForwardIterator __first, _ForwardIterator __last) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__min_element(__first, __last, 8657: __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: # 5632 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: 8657: inline _ForwardIterator 8657: min_element(_ForwardIterator __first, _ForwardIterator __last, 8657: _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__min_element(__first, __last, 8657: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: 8657: template 8657: 8657: _ForwardIterator 8657: __max_element(_ForwardIterator __first, _ForwardIterator __last, 8657: _Compare __comp) 8657: { 8657: if (__first == __last) return __first; 8657: _ForwardIterator __result = __first; 8657: while (++__first != __last) 8657: if (__comp(__result, __first)) 8657: __result = __first; 8657: return __result; 8657: } 8657: # 5671 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: 8657: inline _ForwardIterator 8657: max_element(_ForwardIterator __first, _ForwardIterator __last) 8657: { 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__max_element(__first, __last, 8657: __gnu_cxx::__ops::__iter_less_iter()); 8657: } 8657: # 5696 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: template 8657: 8657: inline _ForwardIterator 8657: max_element(_ForwardIterator __first, _ForwardIterator __last, 8657: _Compare __comp) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: ; 8657: 8657: return std::__max_element(__first, __last, 8657: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8657: } 8657: # 5839 "/usr/include/c++/8/bits/stl_algo.h" 3 8657: 8657: 8657: } 8657: # 63 "/usr/include/c++/8/algorithm" 2 3 8657: # 110 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8657: # 191 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef signed char qint8; 8657: typedef unsigned char quint8; 8657: typedef short qint16; 8657: typedef unsigned short quint16; 8657: typedef int qint32; 8657: typedef unsigned int quint32; 8657: # 213 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: typedef long long qint64; 8657: typedef unsigned long long quint64; 8657: 8657: 8657: typedef qint64 qlonglong; 8657: typedef quint64 qulonglong; 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef unsigned char uchar; 8657: typedef unsigned short ushort; 8657: typedef unsigned int uint; 8657: typedef unsigned long ulong; 8657: 8657: 8657: 8657: 8657: 8657: typedef double qreal; 8657: # 356 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: extern "C" 8657: 8657: __attribute__((visibility("default"))) const char *qVersion(void) noexcept; 8657: # 384 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: namespace QtPrivate { 8657: template 8657: struct AlignOfHelper 8657: { 8657: char c; 8657: T type; 8657: 8657: AlignOfHelper(); 8657: ~AlignOfHelper(); 8657: }; 8657: 8657: template 8657: struct AlignOf_Default 8657: { 8657: enum { Value = sizeof(AlignOfHelper) - sizeof(T) }; 8657: }; 8657: 8657: template struct AlignOf : AlignOf_Default { }; 8657: template struct AlignOf : AlignOf {}; 8657: template struct AlignOf : AlignOf {}; 8657: 8657: 8657: template struct AlignOf : AlignOf {}; 8657: # 424 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: } 8657: # 440 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: template struct QIntegerForSize; 8657: template <> struct QIntegerForSize<1> { typedef quint8 Unsigned; typedef qint8 Signed; }; 8657: template <> struct QIntegerForSize<2> { typedef quint16 Unsigned; typedef qint16 Signed; }; 8657: template <> struct QIntegerForSize<4> { typedef quint32 Unsigned; typedef qint32 Signed; }; 8657: template <> struct QIntegerForSize<8> { typedef quint64 Unsigned; typedef qint64 Signed; }; 8657: 8657: 8657: 8657: template struct QIntegerForSizeof: QIntegerForSize { }; 8657: typedef QIntegerForSize<4>::Signed qregisterint; 8657: typedef QIntegerForSize<4>::Unsigned qregisteruint; 8657: typedef QIntegerForSizeof::Unsigned quintptr; 8657: typedef QIntegerForSizeof::Signed qptrdiff; 8657: typedef qptrdiff qintptr; 8657: # 516 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: typedef int QNoImplicitBoolCast; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: constexpr inline T qAbs(const T &t) { return t >= 0 ? t : -t; } 8657: 8657: constexpr inline int qRound(double d) 8657: { return d >= 0.0 ? int(d + 0.5) : int(d - double(int(d-1)) + 0.5) + int(d-1); } 8657: constexpr inline int qRound(float d) 8657: { return d >= 0.0f ? int(d + 0.5f) : int(d - float(int(d-1)) + 0.5f) + int(d-1); } 8657: 8657: constexpr inline qint64 qRound64(double d) 8657: { return d >= 0.0 ? qint64(d + 0.5) : qint64(d - double(qint64(d-1)) + 0.5) + qint64(d-1); } 8657: constexpr inline qint64 qRound64(float d) 8657: { return d >= 0.0f ? qint64(d + 0.5f) : qint64(d - float(qint64(d-1)) + 0.5f) + qint64(d-1); } 8657: 8657: template 8657: constexpr inline const T &qMin(const T &a, const T &b) { return (a < b) ? a : b; } 8657: template 8657: constexpr inline const T &qMax(const T &a, const T &b) { return (a < b) ? b : a; } 8657: template 8657: constexpr inline const T &qBound(const T &min, const T &val, const T &max) 8657: { return qMax(min, qMin(max, val)); } 8657: # 621 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: class QDataStream; 8657: 8657: inline void qt_noop(void) {} 8657: # 655 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: __attribute__((__noreturn__)) __attribute__((visibility("default"))) void qTerminate() noexcept; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) bool qSharedBuild() noexcept; 8657: # 702 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: class QString; 8657: __attribute__((visibility("default"))) QString qt_error_string(int errorCode = -1); 8657: 8657: 8657: __attribute__((__noreturn__)) 8657: 8657: __attribute__((visibility("default"))) void qt_assert(const char *assertion, const char *file, int line) noexcept; 8657: # 723 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: __attribute__((__noreturn__)) 8657: 8657: __attribute__((visibility("default"))) void qt_assert_x(const char *where, const char *what, const char *file, int line) noexcept; 8657: # 756 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: __attribute__((__noreturn__)) __attribute__((visibility("default"))) void qt_check_pointer(const char *, int) noexcept; 8657: __attribute__((visibility("default"))) void qBadAlloc(); 8657: # 769 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: template 8657: inline T *q_check_ptr(T *p) { do { if (!(p)) qBadAlloc(); } while (false); return p; } 8657: 8657: typedef void (*QFunctionPointer)(); 8657: 8657: 8657: 8657: 8657: 8657: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyCompare(double p1, double p2) 8657: { 8657: return (qAbs(p1 - p2) * 1000000000000. <= qMin(qAbs(p1), qAbs(p2))); 8657: } 8657: 8657: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyCompare(float p1, float p2) 8657: { 8657: return (qAbs(p1 - p2) * 100000.f <= qMin(qAbs(p1), qAbs(p2))); 8657: } 8657: 8657: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyIsNull(double d) 8657: { 8657: return qAbs(d) <= 0.000000000001; 8657: } 8657: 8657: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyIsNull(float f) 8657: { 8657: return qAbs(f) <= 0.00001f; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: [[nodiscard]] static inline __attribute__((__unused__)) bool qIsNull(double d) 8657: { 8657: union U { 8657: double d; 8657: quint64 u; 8657: }; 8657: U val; 8657: val.d = d; 8657: return (val.u & static_cast(0x7fffffffffffffffULL)) == 0; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: [[nodiscard]] static inline __attribute__((__unused__)) bool qIsNull(float f) 8657: { 8657: union U { 8657: float f; 8657: quint32 u; 8657: }; 8657: U val; 8657: val.f = f; 8657: return (val.u & 0x7fffffff) == 0; 8657: } 8657: # 850 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: namespace QtPrivate 8657: { 8657: namespace SwapExceptionTester { 8657: using std::swap; 8657: template 8657: void checkSwap(T &t) 8657: noexcept(noexcept(swap(t, t))); 8657: 8657: } 8657: } 8657: 8657: template 8657: inline void qSwap(T &value1, T &value2) 8657: noexcept(noexcept(QtPrivate::SwapExceptionTester::checkSwap(value1))) 8657: { 8657: using std::swap; 8657: swap(value1, value2); 8657: } 8657: # 876 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: __attribute__((visibility("default"))) void *qMallocAligned(size_t size, size_t alignment) __attribute__((alloc_size(1))); 8657: __attribute__((visibility("default"))) void *qReallocAligned(void *ptr, size_t size, size_t oldsize, size_t alignment) __attribute__((alloc_size(2))); 8657: __attribute__((visibility("default"))) void qFreeAligned(void *ptr); 8657: # 918 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: namespace QtPrivate { 8657: template struct QAddConst { typedef const T Type; }; 8657: } 8657: 8657: 8657: template 8657: constexpr typename QtPrivate::QAddConst::Type &qAsConst(T &t) noexcept { return t; } 8657: 8657: template 8657: void qAsConst(const T &&) = delete; 8657: 8657: 8657: 8657: namespace QtPrivate { 8657: 8657: template 8657: class QForeachContainer { 8657: QForeachContainer(const QForeachContainer &) = delete; QForeachContainer &operator=(const QForeachContainer &) = delete; 8657: public: 8657: QForeachContainer(const T &t) : c(t), i(qAsConst(c).begin()), e(qAsConst(c).end()) {} 8657: QForeachContainer(T &&t) : c(std::move(t)), i(qAsConst(c).begin()), e(qAsConst(c).end()) {} 8657: 8657: QForeachContainer(QForeachContainer &&other) 8657: : c(std::move(other.c)), 8657: i(qAsConst(c).begin()), 8657: e(qAsConst(c).end()), 8657: control(std::move(other.control)) 8657: { 8657: } 8657: 8657: QForeachContainer &operator=(QForeachContainer &&other) 8657: { 8657: c = std::move(other.c); 8657: i = qAsConst(c).begin(); 8657: e = qAsConst(c).end(); 8657: control = std::move(other.control); 8657: return *this; 8657: } 8657: 8657: T c; 8657: typename T::const_iterator i, e; 8657: int control = 1; 8657: }; 8657: 8657: template 8657: QForeachContainer::type> qMakeForeachContainer(T &&t) 8657: { 8657: return QForeachContainer::type>(std::forward(t)); 8657: } 8657: 8657: } 8657: # 998 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: template static inline T *qGetPtrHelper(T *ptr) { return ptr; } 8657: template static inline typename Wrapper::pointer qGetPtrHelper(const Wrapper &p) { return p.data(); } 8657: # 1031 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: __attribute__((visibility("default"))) QString qtTrId(const char *id, int n = -1); 8657: # 1063 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: template 8657: struct QNonConstOverload 8657: { 8657: template 8657: constexpr auto operator()(R (T::*ptr)(Args...)) const noexcept -> decltype(ptr) 8657: { return ptr; } 8657: 8657: template 8657: static constexpr auto of(R (T::*ptr)(Args...)) noexcept -> decltype(ptr) 8657: { return ptr; } 8657: }; 8657: 8657: template 8657: struct QConstOverload 8657: { 8657: template 8657: constexpr auto operator()(R (T::*ptr)(Args...) const) const noexcept -> decltype(ptr) 8657: { return ptr; } 8657: 8657: template 8657: static constexpr auto of(R (T::*ptr)(Args...) const) noexcept -> decltype(ptr) 8657: { return ptr; } 8657: }; 8657: 8657: template 8657: struct QOverload : QConstOverload, QNonConstOverload 8657: { 8657: using QConstOverload::of; 8657: using QConstOverload::operator(); 8657: using QNonConstOverload::of; 8657: using QNonConstOverload::operator(); 8657: 8657: template 8657: constexpr auto operator()(R (*ptr)(Args...)) const noexcept -> decltype(ptr) 8657: { return ptr; } 8657: 8657: template 8657: static constexpr auto of(R (*ptr)(Args...)) noexcept -> decltype(ptr) 8657: { return ptr; } 8657: }; 8657: # 1113 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: class QByteArray; 8657: __attribute__((visibility("default"))) QByteArray qgetenv(const char *varName); 8657: __attribute__((visibility("default"))) bool qputenv(const char *varName, const QByteArray& value); 8657: __attribute__((visibility("default"))) bool qunsetenv(const char *varName); 8657: 8657: __attribute__((visibility("default"))) bool qEnvironmentVariableIsEmpty(const char *varName) noexcept; 8657: __attribute__((visibility("default"))) bool qEnvironmentVariableIsSet(const char *varName) noexcept; 8657: __attribute__((visibility("default"))) int qEnvironmentVariableIntValue(const char *varName, bool *ok=nullptr) noexcept; 8657: 8657: inline int qIntCast(double f) { return int(f); } 8657: inline int qIntCast(float f) { return int(f); } 8657: 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) void qsrand(uint seed); 8657: __attribute__((visibility("default"))) int qrand(); 8657: # 1139 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8657: namespace QtPrivate { 8657: 8657: template struct QEnableIf; 8657: template struct QEnableIf { typedef T Type; }; 8657: 8657: template struct QConditional { typedef T Type; }; 8657: template struct QConditional { typedef F Type; }; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 1 3 4 8657: # 41 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 1 3 4 8657: # 42 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: # 56 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8657: template 8657: class QTypeInfo 8657: { 8657: public: 8657: enum { 8657: isSpecialized = std::is_enum::value, 8657: isPointer = false, 8657: isIntegral = std::is_integral::value, 8657: isComplex = !isIntegral && !std::is_enum::value, 8657: isStatic = true, 8657: isRelocatable = std::is_enum::value, 8657: isLarge = (sizeof(T)>sizeof(void*)), 8657: isDummy = false, 8657: sizeOf = sizeof(T) 8657: }; 8657: }; 8657: 8657: template<> 8657: class QTypeInfo 8657: { 8657: public: 8657: enum { 8657: isSpecialized = true, 8657: isPointer = false, 8657: isIntegral = false, 8657: isComplex = false, 8657: isStatic = false, 8657: isRelocatable = false, 8657: isLarge = false, 8657: isDummy = false, 8657: sizeOf = 0 8657: }; 8657: }; 8657: 8657: template 8657: class QTypeInfo 8657: { 8657: public: 8657: enum { 8657: isSpecialized = true, 8657: isPointer = true, 8657: isIntegral = false, 8657: isComplex = false, 8657: isStatic = false, 8657: isRelocatable = true, 8657: isLarge = false, 8657: isDummy = false, 8657: sizeOf = sizeof(T*) 8657: }; 8657: }; 8657: # 122 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8657: template 8657: struct QTypeInfoQuery : public QTypeInfo 8657: { 8657: enum { isRelocatable = !QTypeInfo::isStatic }; 8657: }; 8657: 8657: 8657: template 8657: struct QTypeInfoQuery::isRelocatable || true>::type> : public QTypeInfo 8657: {}; 8657: # 153 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8657: template 8657: class QTypeInfoMerger 8657: { 8657: public: 8657: enum { 8657: isSpecialized = true, 8657: isComplex = QTypeInfoQuery::isComplex || QTypeInfoQuery::isComplex 8657: || QTypeInfoQuery::isComplex || QTypeInfoQuery::isComplex, 8657: isStatic = QTypeInfoQuery::isStatic || QTypeInfoQuery::isStatic 8657: || QTypeInfoQuery::isStatic || QTypeInfoQuery::isStatic, 8657: isRelocatable = QTypeInfoQuery::isRelocatable && QTypeInfoQuery::isRelocatable 8657: && QTypeInfoQuery::isRelocatable && QTypeInfoQuery::isRelocatable, 8657: isLarge = sizeof(T) > sizeof(void*), 8657: isPointer = false, 8657: isIntegral = false, 8657: isDummy = false, 8657: sizeOf = sizeof(T) 8657: }; 8657: }; 8657: # 192 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8657: template class QList; template class QTypeInfo< QList > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isRelocatable = true, isStatic = false, isLarge = (sizeof(QList) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QList) }; }; 8657: template class QVector; template class QTypeInfo< QVector > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isRelocatable = true, isStatic = false, isLarge = (sizeof(QVector) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QVector) }; }; 8657: template class QQueue; template class QTypeInfo< QQueue > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isRelocatable = true, isStatic = false, isLarge = (sizeof(QQueue) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QQueue) }; }; 8657: template class QStack; template class QTypeInfo< QStack > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isRelocatable = true, isStatic = false, isLarge = (sizeof(QStack) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QStack) }; }; 8657: template class QLinkedList; template class QTypeInfo< QLinkedList > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isRelocatable = true, isStatic = false, isLarge = (sizeof(QLinkedList) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QLinkedList) }; }; 8657: template class QSet; template class QTypeInfo< QSet > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isRelocatable = true, isStatic = false, isLarge = (sizeof(QSet) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QSet) }; }; 8657: # 221 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8657: template class QMap; template class QTypeInfo< QMap > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isStatic = (((5<<16)|(9<<8)|(3)) < ((6<<16)|(0<<8)|(0))), isRelocatable = true, isLarge = (sizeof(QMap) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QMap) }; }; 8657: template class QMultiMap; template class QTypeInfo< QMultiMap > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isStatic = (((5<<16)|(9<<8)|(3)) < ((6<<16)|(0<<8)|(0))), isRelocatable = true, isLarge = (sizeof(QMultiMap) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QMultiMap) }; }; 8657: template class QHash; template class QTypeInfo< QHash > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isStatic = (((5<<16)|(9<<8)|(3)) < ((6<<16)|(0<<8)|(0))), isRelocatable = true, isLarge = (sizeof(QHash) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QHash) }; }; 8657: template class QMultiHash; template class QTypeInfo< QMultiHash > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isStatic = (((5<<16)|(9<<8)|(3)) < ((6<<16)|(0<<8)|(0))), isRelocatable = true, isLarge = (sizeof(QMultiHash) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QMultiHash) }; }; 8657: # 236 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8657: enum { 8657: Q_COMPLEX_TYPE = 0, 8657: Q_PRIMITIVE_TYPE = 0x1, 8657: Q_STATIC_TYPE = 0, 8657: Q_MOVABLE_TYPE = 0x2, 8657: Q_DUMMY_TYPE = 0x4, 8657: Q_RELOCATABLE_TYPE = 0x8 8657: }; 8657: # 268 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8657: template class QFlags; 8657: template 8657: class QTypeInfo > { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QFlags)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QFlags >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QFlags) }; static inline const char *name() { return "QFlags"; } }; 8657: # 300 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(bool)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< bool >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(bool) }; static inline const char *name() { return "bool"; } }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(char)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< char >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(char) }; static inline const char *name() { return "char"; } }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(signed char)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< signed char >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(signed char) }; static inline const char *name() { return "signed char"; } }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(uchar)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< uchar >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(uchar) }; static inline const char *name() { return "uchar"; } }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(short)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< short >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(short) }; static inline const char *name() { return "short"; } }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(ushort)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< ushort >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(ushort) }; static inline const char *name() { return "ushort"; } }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(int)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< int >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(int) }; static inline const char *name() { return "int"; } }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(uint)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< uint >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(uint) }; static inline const char *name() { return "uint"; } }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(long)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< long >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(long) }; static inline const char *name() { return "long"; } }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(ulong)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< ulong >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(ulong) }; static inline const char *name() { return "ulong"; } }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(qint64)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< qint64 >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(qint64) }; static inline const char *name() { return "qint64"; } }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(quint64)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< quint64 >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(quint64) }; static inline const char *name() { return "quint64"; } }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(float)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< float >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(float) }; static inline const char *name() { return "float"; } }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(double)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< double >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(double) }; static inline const char *name() { return "double"; } }; 8657: 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(long double)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< long double >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(long double) }; static inline const char *name() { return "long double"; } }; 8657: # 331 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_RELOCATABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_RELOCATABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_RELOCATABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(char16_t)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< char16_t >::value, isDummy = (((Q_RELOCATABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(char16_t) }; static inline const char *name() { return "char16_t"; } }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_RELOCATABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_RELOCATABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_RELOCATABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(char32_t)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< char32_t >::value, isDummy = (((Q_RELOCATABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(char32_t) }; static inline const char *name() { return "char32_t"; } }; 8657: 8657: 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_RELOCATABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_RELOCATABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_RELOCATABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(wchar_t)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< wchar_t >::value, isDummy = (((Q_RELOCATABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(wchar_t) }; static inline const char *name() { return "wchar_t"; } }; 8657: 8657: 8657: 8657: 8657: # 1153 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 1 3 4 8657: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 3 4 8657: 8657: # 69 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 3 4 8657: class QString; 8657: class __attribute__((visibility("default"))) QSysInfo { 8657: public: 8657: enum Sizes { 8657: WordSize = (sizeof(void *)<<3) 8657: }; 8657: # 84 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 3 4 8657: enum Endian { 8657: BigEndian, 8657: LittleEndian 8657: 8657: 8657: 8657: 8657: 8657: 8657: , ByteOrder = LittleEndian 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: enum WinVersion { 8657: WV_None = 0x0000, 8657: 8657: WV_32s = 0x0001, 8657: WV_95 = 0x0002, 8657: WV_98 = 0x0003, 8657: WV_Me = 0x0004, 8657: WV_DOS_based= 0x000f, 8657: 8657: 8657: WV_NT = 0x0010, 8657: WV_2000 = 0x0020, 8657: WV_XP = 0x0030, 8657: WV_2003 = 0x0040, 8657: WV_VISTA = 0x0080, 8657: WV_WINDOWS7 = 0x0090, 8657: WV_WINDOWS8 = 0x00a0, 8657: WV_WINDOWS8_1 = 0x00b0, 8657: WV_WINDOWS10 = 0x00c0, 8657: WV_NT_based = 0x00f0, 8657: 8657: 8657: WV_4_0 = WV_NT, 8657: WV_5_0 = WV_2000, 8657: WV_5_1 = WV_XP, 8657: WV_5_2 = WV_2003, 8657: WV_6_0 = WV_VISTA, 8657: WV_6_1 = WV_WINDOWS7, 8657: WV_6_2 = WV_WINDOWS8, 8657: WV_6_3 = WV_WINDOWS8_1, 8657: WV_10_0 = WV_WINDOWS10, 8657: 8657: WV_CE = 0x0100, 8657: WV_CENET = 0x0200, 8657: WV_CE_5 = 0x0300, 8657: WV_CE_6 = 0x0400, 8657: WV_CE_based = 0x0f00 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: enum MacVersion { 8657: MV_None = 0xffff, 8657: MV_Unknown = 0x0000, 8657: 8657: 8657: MV_9 = (9 == 10 ? 0 + 2 : (9 == 9 ? 1 : 0)), 8657: MV_10_0 = (10 == 10 ? 0 + 2 : (10 == 9 ? 1 : 0)), 8657: MV_10_1 = (10 == 10 ? 1 + 2 : (10 == 9 ? 1 : 0)), 8657: MV_10_2 = (10 == 10 ? 2 + 2 : (10 == 9 ? 1 : 0)), 8657: MV_10_3 = (10 == 10 ? 3 + 2 : (10 == 9 ? 1 : 0)), 8657: MV_10_4 = (10 == 10 ? 4 + 2 : (10 == 9 ? 1 : 0)), 8657: MV_10_5 = (10 == 10 ? 5 + 2 : (10 == 9 ? 1 : 0)), 8657: MV_10_6 = (10 == 10 ? 6 + 2 : (10 == 9 ? 1 : 0)), 8657: MV_10_7 = (10 == 10 ? 7 + 2 : (10 == 9 ? 1 : 0)), 8657: MV_10_8 = (10 == 10 ? 8 + 2 : (10 == 9 ? 1 : 0)), 8657: MV_10_9 = (10 == 10 ? 9 + 2 : (10 == 9 ? 1 : 0)), 8657: MV_10_10 = (10 == 10 ? 10 + 2 : (10 == 9 ? 1 : 0)), 8657: MV_10_11 = (10 == 10 ? 11 + 2 : (10 == 9 ? 1 : 0)), 8657: MV_10_12 = (10 == 10 ? 12 + 2 : (10 == 9 ? 1 : 0)), 8657: 8657: 8657: MV_CHEETAH = MV_10_0, 8657: MV_PUMA = MV_10_1, 8657: MV_JAGUAR = MV_10_2, 8657: MV_PANTHER = MV_10_3, 8657: MV_TIGER = MV_10_4, 8657: MV_LEOPARD = MV_10_5, 8657: MV_SNOWLEOPARD = MV_10_6, 8657: MV_LION = MV_10_7, 8657: MV_MOUNTAINLION = MV_10_8, 8657: MV_MAVERICKS = MV_10_9, 8657: MV_YOSEMITE = MV_10_10, 8657: MV_ELCAPITAN = MV_10_11, 8657: MV_SIERRA = MV_10_12, 8657: 8657: 8657: MV_IOS = 1 << 8, 8657: MV_IOS_4_3 = (QSysInfo::MV_IOS | 4 << 4 | 3), 8657: MV_IOS_5_0 = (QSysInfo::MV_IOS | 5 << 4 | 0), 8657: MV_IOS_5_1 = (QSysInfo::MV_IOS | 5 << 4 | 1), 8657: MV_IOS_6_0 = (QSysInfo::MV_IOS | 6 << 4 | 0), 8657: MV_IOS_6_1 = (QSysInfo::MV_IOS | 6 << 4 | 1), 8657: MV_IOS_7_0 = (QSysInfo::MV_IOS | 7 << 4 | 0), 8657: MV_IOS_7_1 = (QSysInfo::MV_IOS | 7 << 4 | 1), 8657: MV_IOS_8_0 = (QSysInfo::MV_IOS | 8 << 4 | 0), 8657: MV_IOS_8_1 = (QSysInfo::MV_IOS | 8 << 4 | 1), 8657: MV_IOS_8_2 = (QSysInfo::MV_IOS | 8 << 4 | 2), 8657: MV_IOS_8_3 = (QSysInfo::MV_IOS | 8 << 4 | 3), 8657: MV_IOS_8_4 = (QSysInfo::MV_IOS | 8 << 4 | 4), 8657: MV_IOS_9_0 = (QSysInfo::MV_IOS | 9 << 4 | 0), 8657: MV_IOS_9_1 = (QSysInfo::MV_IOS | 9 << 4 | 1), 8657: MV_IOS_9_2 = (QSysInfo::MV_IOS | 9 << 4 | 2), 8657: MV_IOS_9_3 = (QSysInfo::MV_IOS | 9 << 4 | 3), 8657: MV_IOS_10_0 = (QSysInfo::MV_IOS | 10 << 4 | 0), 8657: 8657: 8657: MV_TVOS = 1 << 9, 8657: MV_TVOS_9_0 = (QSysInfo::MV_TVOS | 9 << 4 | 0), 8657: MV_TVOS_9_1 = (QSysInfo::MV_TVOS | 9 << 4 | 1), 8657: MV_TVOS_9_2 = (QSysInfo::MV_TVOS | 9 << 4 | 2), 8657: MV_TVOS_10_0 = (QSysInfo::MV_TVOS | 10 << 4 | 0), 8657: 8657: 8657: MV_WATCHOS = 1 << 10, 8657: MV_WATCHOS_2_0 = (QSysInfo::MV_WATCHOS | 2 << 4 | 0), 8657: MV_WATCHOS_2_1 = (QSysInfo::MV_WATCHOS | 2 << 4 | 1), 8657: MV_WATCHOS_2_2 = (QSysInfo::MV_WATCHOS | 2 << 4 | 2), 8657: MV_WATCHOS_3_0 = (QSysInfo::MV_WATCHOS | 3 << 4 | 0) 8657: }; 8657: 8657: 8657: # 213 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 3 4 8657: #pragma GCC diagnostic push 8657: # 213 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 3 4 8657: 8657: 8657: # 214 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 3 4 8657: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8657: # 214 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 3 4 8657: 8657: 8657: 8657: 8657: 8657: static const WinVersion WindowsVersion = WV_None; 8657: static WinVersion windowsVersion() { return WV_None; } 8657: 8657: 8657: 8657: 8657: 8657: static const MacVersion MacintoshVersion = MV_None; 8657: static MacVersion macVersion() { return MV_None; } 8657: 8657: 8657: # 229 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 3 4 8657: #pragma GCC diagnostic pop 8657: # 229 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 3 4 8657: 8657: 8657: 8657: static QString buildCpuArchitecture(); 8657: static QString currentCpuArchitecture(); 8657: static QString buildAbi(); 8657: 8657: static QString kernelType(); 8657: static QString kernelVersion(); 8657: static QString productType(); 8657: static QString productVersion(); 8657: static QString prettyProductName(); 8657: 8657: static QString machineHostName(); 8657: }; 8657: 8657: 8657: 8657: 8657: # 1154 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlogging.h" 1 3 4 8657: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlogging.h" 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: class QDebug; 8657: class QNoDebug; 8657: 8657: enum QtMsgType { QtDebugMsg, QtWarningMsg, QtCriticalMsg, QtFatalMsg, QtInfoMsg, QtSystemMsg = QtCriticalMsg }; 8657: 8657: class QMessageLogContext 8657: { 8657: QMessageLogContext(const QMessageLogContext &) = delete; QMessageLogContext &operator=(const QMessageLogContext &) = delete; 8657: public: 8657: constexpr QMessageLogContext() 8657: : version(2), line(0), file(nullptr), function(nullptr), category(nullptr) {} 8657: constexpr QMessageLogContext(const char *fileName, int lineNumber, const char *functionName, const char *categoryName) 8657: : version(2), line(lineNumber), file(fileName), function(functionName), category(categoryName) {} 8657: 8657: void copy(const QMessageLogContext &logContext); 8657: 8657: int version; 8657: int line; 8657: const char *file; 8657: const char *function; 8657: const char *category; 8657: 8657: private: 8657: friend class QMessageLogger; 8657: friend class QDebug; 8657: }; 8657: 8657: class QLoggingCategory; 8657: 8657: class __attribute__((visibility("default"))) QMessageLogger 8657: { 8657: QMessageLogger(const QMessageLogger &) = delete; QMessageLogger &operator=(const QMessageLogger &) = delete; 8657: public: 8657: constexpr QMessageLogger() : context() {} 8657: constexpr QMessageLogger(const char *file, int line, const char *function) 8657: : context(file, line, function, "default") {} 8657: constexpr QMessageLogger(const char *file, int line, const char *function, const char *category) 8657: : context(file, line, function, category) {} 8657: 8657: void debug(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8657: void noDebug(const char *, ...) const __attribute__((format(printf, (2), (3)))) 8657: {} 8657: void info(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8657: void warning(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8657: void critical(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8657: 8657: typedef const QLoggingCategory &(*CategoryFunction)(); 8657: 8657: void debug(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8657: void debug(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8657: void info(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8657: void info(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8657: void warning(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8657: void warning(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8657: void critical(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8657: void critical(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8657: 8657: 8657: __attribute__((__noreturn__)) 8657: 8657: void fatal(const char *msg, ...) const noexcept __attribute__((format(printf, (2), (3)))); 8657: 8657: 8657: QDebug debug() const; 8657: QDebug debug(const QLoggingCategory &cat) const; 8657: QDebug debug(CategoryFunction catFunc) const; 8657: QDebug info() const; 8657: QDebug info(const QLoggingCategory &cat) const; 8657: QDebug info(CategoryFunction catFunc) const; 8657: QDebug warning() const; 8657: QDebug warning(const QLoggingCategory &cat) const; 8657: QDebug warning(CategoryFunction catFunc) const; 8657: QDebug critical() const; 8657: QDebug critical(const QLoggingCategory &cat) const; 8657: QDebug critical(CategoryFunction catFunc) const; 8657: 8657: QNoDebug noDebug() const noexcept; 8657: 8657: 8657: private: 8657: QMessageLogContext context; 8657: }; 8657: # 179 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlogging.h" 3 4 8657: __attribute__((visibility("default"))) void qt_message_output(QtMsgType, const QMessageLogContext &context, 8657: const QString &message); 8657: 8657: __attribute__((visibility("default"))) void qErrnoWarning(int code, const char *msg, ...); 8657: __attribute__((visibility("default"))) void qErrnoWarning(const char *msg, ...); 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef void (*QtMessageHandler)(QtMsgType, const QMessageLogContext &, const QString &); 8657: __attribute__((visibility("default"))) QtMessageHandler qInstallMessageHandler(QtMessageHandler); 8657: 8657: __attribute__((visibility("default"))) void qSetMessagePattern(const QString &messagePattern); 8657: __attribute__((visibility("default"))) QString qFormatLogMessage(QtMsgType type, const QMessageLogContext &context, 8657: const QString &buf); 8657: 8657: 8657: # 1155 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qflags.h" 1 3 4 8657: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qflags.h" 3 4 8657: 8657: 8657: class QDataStream; 8657: 8657: class QFlag 8657: { 8657: int i; 8657: public: 8657: constexpr inline QFlag(int ai) noexcept : i(ai) {} 8657: constexpr inline operator int() const noexcept { return i; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: constexpr inline QFlag(long ai) noexcept : i(int(ai)) {} 8657: constexpr inline QFlag(ulong ai) noexcept : i(int(long(ai))) {} 8657: 8657: constexpr inline QFlag(uint ai) noexcept : i(int(ai)) {} 8657: constexpr inline QFlag(short ai) noexcept : i(int(ai)) {} 8657: constexpr inline QFlag(ushort ai) noexcept : i(int(uint(ai))) {} 8657: constexpr inline operator uint() const noexcept { return uint(i); } 8657: 8657: }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QFlag)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QFlag >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QFlag) }; static inline const char *name() { return "QFlag"; } }; 8657: 8657: class QIncompatibleFlag 8657: { 8657: int i; 8657: public: 8657: constexpr inline explicit QIncompatibleFlag(int i) noexcept; 8657: constexpr inline operator int() const noexcept { return i; } 8657: }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QIncompatibleFlag)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QIncompatibleFlag >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QIncompatibleFlag) }; static inline const char *name() { return "QIncompatibleFlag"; } }; 8657: 8657: constexpr inline QIncompatibleFlag::QIncompatibleFlag(int ai) noexcept : i(ai) {} 8657: 8657: 8657: 8657: 8657: template 8657: class QFlags 8657: { 8657: static_assert(bool((sizeof(Enum) <= sizeof(int))), "QFlags uses an int as storage, so an enum with underlying " "long long will overflow.") 8657: 8657: ; 8657: static_assert(bool((std::is_enum::value)), "QFlags is only usable on enumeration types."); 8657: 8657: struct Private; 8657: typedef int (Private::*Zero); 8657: template friend QDataStream &operator>>(QDataStream &, QFlags &); 8657: template friend QDataStream &operator<<(QDataStream &, QFlags); 8657: public: 8657: 8657: 8657: 8657: 8657: 8657: typedef typename std::conditional< 8657: std::is_unsigned::type>::value, 8657: unsigned int, 8657: signed int 8657: >::type Int; 8657: 8657: typedef Enum enum_type; 8657: 8657: 8657: 8657: 8657: 8657: constexpr inline QFlags(Enum f) noexcept : i(Int(f)) {} 8657: constexpr inline QFlags(Zero = nullptr) noexcept : i(0) {} 8657: constexpr inline QFlags(QFlag f) noexcept : i(f) {} 8657: 8657: 8657: constexpr inline QFlags(std::initializer_list flags) noexcept 8657: : i(initializer_list_helper(flags.begin(), flags.end())) {} 8657: 8657: 8657: inline QFlags &operator&=(int mask) noexcept { i &= mask; return *this; } 8657: inline QFlags &operator&=(uint mask) noexcept { i &= mask; return *this; } 8657: inline QFlags &operator&=(Enum mask) noexcept { i &= Int(mask); return *this; } 8657: inline QFlags &operator|=(QFlags f) noexcept { i |= f.i; return *this; } 8657: inline QFlags &operator|=(Enum f) noexcept { i |= Int(f); return *this; } 8657: inline QFlags &operator^=(QFlags f) noexcept { i ^= f.i; return *this; } 8657: inline QFlags &operator^=(Enum f) noexcept { i ^= Int(f); return *this; } 8657: 8657: constexpr inline operator Int() const noexcept { return i; } 8657: 8657: constexpr inline QFlags operator|(QFlags f) const noexcept { return QFlags(QFlag(i | f.i)); } 8657: constexpr inline QFlags operator|(Enum f) const noexcept { return QFlags(QFlag(i | Int(f))); } 8657: constexpr inline QFlags operator^(QFlags f) const noexcept { return QFlags(QFlag(i ^ f.i)); } 8657: constexpr inline QFlags operator^(Enum f) const noexcept { return QFlags(QFlag(i ^ Int(f))); } 8657: constexpr inline QFlags operator&(int mask) const noexcept { return QFlags(QFlag(i & mask)); } 8657: constexpr inline QFlags operator&(uint mask) const noexcept { return QFlags(QFlag(i & mask)); } 8657: constexpr inline QFlags operator&(Enum f) const noexcept { return QFlags(QFlag(i & Int(f))); } 8657: constexpr inline QFlags operator~() const noexcept { return QFlags(QFlag(~i)); } 8657: 8657: constexpr inline bool operator!() const noexcept { return !i; } 8657: 8657: constexpr inline bool testFlag(Enum f) const noexcept { return (i & Int(f)) == Int(f) && (Int(f) != 0 || i == Int(f) ); } 8657: inline QFlags &setFlag(Enum f, bool on = true) noexcept 8657: { 8657: return on ? (*this |= f) : (*this &= ~f); 8657: } 8657: 8657: private: 8657: 8657: constexpr static inline Int initializer_list_helper(typename std::initializer_list::const_iterator it, 8657: typename std::initializer_list::const_iterator end) 8657: noexcept 8657: { 8657: return (it == end ? Int(0) : (Int(*it) | initializer_list_helper(it + 1, end))); 8657: } 8657: 8657: 8657: Int i; 8657: }; 8657: # 196 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qflags.h" 3 4 8657: 8657: # 1157 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 1 3 4 8657: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 1 3 4 8657: # 41 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 1 3 4 8657: # 42 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 2 3 4 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 1 3 4 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qgenericatomic.h" 1 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qgenericatomic.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 1 3 4 8657: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qgenericatomic.h" 2 3 4 8657: 8657: 8657: # 56 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qgenericatomic.h" 3 4 8657: template struct QAtomicOpsSupport { enum { IsSupported = 0 }; }; 8657: template<> struct QAtomicOpsSupport<4> { enum { IsSupported = 1 }; }; 8657: 8657: template struct QAtomicAdditiveType 8657: { 8657: typedef T AdditiveT; 8657: static const int AddScale = 1; 8657: }; 8657: template struct QAtomicAdditiveType 8657: { 8657: typedef qptrdiff AdditiveT; 8657: static const int AddScale = sizeof(T); 8657: }; 8657: 8657: 8657: template struct QGenericAtomicOps 8657: { 8657: template struct AtomicType { typedef T Type; typedef T *PointerType; }; 8657: 8657: template static void acquireMemoryFence(const T &_q_value) noexcept 8657: { 8657: BaseClass::orderedMemoryFence(_q_value); 8657: } 8657: template static void releaseMemoryFence(const T &_q_value) noexcept 8657: { 8657: BaseClass::orderedMemoryFence(_q_value); 8657: } 8657: template static void orderedMemoryFence(const T &) noexcept 8657: { 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T load(const T &_q_value) noexcept 8657: { 8657: return _q_value; 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: void store(T &_q_value, X newValue) noexcept 8657: { 8657: _q_value = newValue; 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T loadAcquire(const T &_q_value) noexcept 8657: { 8657: T tmp = *static_cast(&_q_value); 8657: BaseClass::acquireMemoryFence(_q_value); 8657: return tmp; 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: void storeRelease(T &_q_value, X newValue) noexcept 8657: { 8657: BaseClass::releaseMemoryFence(_q_value); 8657: *static_cast(&_q_value) = newValue; 8657: } 8657: 8657: static inline constexpr bool isReferenceCountingNative() noexcept 8657: { return BaseClass::isFetchAndAddNative(); } 8657: static inline constexpr bool isReferenceCountingWaitFree() noexcept 8657: { return BaseClass::isFetchAndAddWaitFree(); } 8657: template static inline __attribute__((always_inline)) 8657: bool ref(T &_q_value) noexcept 8657: { 8657: return BaseClass::fetchAndAddRelaxed(_q_value, 1) != T(-1); 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: bool deref(T &_q_value) noexcept 8657: { 8657: return BaseClass::fetchAndAddRelaxed(_q_value, -1) != 1; 8657: } 8657: # 141 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qgenericatomic.h" 3 4 8657: template static inline __attribute__((always_inline)) 8657: bool testAndSetAcquire(T &_q_value, X expectedValue, X newValue) noexcept 8657: { 8657: bool tmp = BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue); 8657: BaseClass::acquireMemoryFence(_q_value); 8657: return tmp; 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: bool testAndSetRelease(T &_q_value, X expectedValue, X newValue) noexcept 8657: { 8657: BaseClass::releaseMemoryFence(_q_value); 8657: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue); 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: bool testAndSetOrdered(T &_q_value, X expectedValue, X newValue) noexcept 8657: { 8657: BaseClass::orderedMemoryFence(_q_value); 8657: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue); 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: bool testAndSetAcquire(T &_q_value, X expectedValue, X newValue, X *currentValue) noexcept 8657: { 8657: bool tmp = BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue, currentValue); 8657: BaseClass::acquireMemoryFence(_q_value); 8657: return tmp; 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: bool testAndSetRelease(T &_q_value, X expectedValue, X newValue, X *currentValue) noexcept 8657: { 8657: BaseClass::releaseMemoryFence(_q_value); 8657: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue, currentValue); 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: bool testAndSetOrdered(T &_q_value, X expectedValue, X newValue, X *currentValue) noexcept 8657: { 8657: BaseClass::orderedMemoryFence(_q_value); 8657: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue, currentValue); 8657: } 8657: 8657: static inline constexpr bool isFetchAndStoreNative() noexcept { return false; } 8657: static inline constexpr bool isFetchAndStoreWaitFree() noexcept { return false; } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndStoreRelaxed(T &_q_value, X newValue) noexcept 8657: { 8657: 8657: for(;;) { 8657: T tmp = load(_q_value); 8657: if (BaseClass::testAndSetRelaxed(_q_value, tmp, newValue)) 8657: return tmp; 8657: } 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndStoreAcquire(T &_q_value, X newValue) noexcept 8657: { 8657: T tmp = BaseClass::fetchAndStoreRelaxed(_q_value, newValue); 8657: BaseClass::acquireMemoryFence(_q_value); 8657: return tmp; 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndStoreRelease(T &_q_value, X newValue) noexcept 8657: { 8657: BaseClass::releaseMemoryFence(_q_value); 8657: return BaseClass::fetchAndStoreRelaxed(_q_value, newValue); 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndStoreOrdered(T &_q_value, X newValue) noexcept 8657: { 8657: BaseClass::orderedMemoryFence(_q_value); 8657: return BaseClass::fetchAndStoreRelaxed(_q_value, newValue); 8657: } 8657: 8657: static inline constexpr bool isFetchAndAddNative() noexcept { return false; } 8657: static inline constexpr bool isFetchAndAddWaitFree() noexcept { return false; } 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: 8657: for(;;) { 8657: T tmp = BaseClass::load(_q_value); 8657: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp + valueToAdd))) 8657: return tmp; 8657: } 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndAddAcquire(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: T tmp = BaseClass::fetchAndAddRelaxed(_q_value, valueToAdd); 8657: BaseClass::acquireMemoryFence(_q_value); 8657: return tmp; 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndAddRelease(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: BaseClass::releaseMemoryFence(_q_value); 8657: return BaseClass::fetchAndAddRelaxed(_q_value, valueToAdd); 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndAddOrdered(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: BaseClass::orderedMemoryFence(_q_value); 8657: return BaseClass::fetchAndAddRelaxed(_q_value, valueToAdd); 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndSubRelaxed(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8657: { 8657: 8657: return fetchAndAddRelaxed(_q_value, -operand); 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndSubAcquire(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8657: { 8657: T tmp = BaseClass::fetchAndSubRelaxed(_q_value, operand); 8657: BaseClass::acquireMemoryFence(_q_value); 8657: return tmp; 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndSubRelease(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8657: { 8657: BaseClass::releaseMemoryFence(_q_value); 8657: return BaseClass::fetchAndSubRelaxed(_q_value, operand); 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndSubOrdered(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8657: { 8657: BaseClass::orderedMemoryFence(_q_value); 8657: return BaseClass::fetchAndSubRelaxed(_q_value, operand); 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndAndRelaxed(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8657: { 8657: 8657: T tmp = BaseClass::load(_q_value); 8657: for(;;) { 8657: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp & operand), &tmp)) 8657: return tmp; 8657: } 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndAndAcquire(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8657: { 8657: T tmp = BaseClass::fetchAndAndRelaxed(_q_value, operand); 8657: BaseClass::acquireMemoryFence(_q_value); 8657: return tmp; 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndAndRelease(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8657: { 8657: BaseClass::releaseMemoryFence(_q_value); 8657: return BaseClass::fetchAndAndRelaxed(_q_value, operand); 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndAndOrdered(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8657: { 8657: BaseClass::orderedMemoryFence(_q_value); 8657: return BaseClass::fetchAndAndRelaxed(_q_value, operand); 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndOrRelaxed(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8657: { 8657: 8657: T tmp = BaseClass::load(_q_value); 8657: for(;;) { 8657: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp | operand), &tmp)) 8657: return tmp; 8657: } 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndOrAcquire(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8657: { 8657: T tmp = BaseClass::fetchAndOrRelaxed(_q_value, operand); 8657: BaseClass::acquireMemoryFence(_q_value); 8657: return tmp; 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndOrRelease(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8657: { 8657: BaseClass::releaseMemoryFence(_q_value); 8657: return BaseClass::fetchAndOrRelaxed(_q_value, operand); 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndOrOrdered(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8657: { 8657: BaseClass::orderedMemoryFence(_q_value); 8657: return BaseClass::fetchAndOrRelaxed(_q_value, operand); 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndXorRelaxed(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8657: { 8657: 8657: T tmp = BaseClass::load(_q_value); 8657: for(;;) { 8657: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp ^ operand), &tmp)) 8657: return tmp; 8657: } 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndXorAcquire(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8657: { 8657: T tmp = BaseClass::fetchAndXorRelaxed(_q_value, operand); 8657: BaseClass::acquireMemoryFence(_q_value); 8657: return tmp; 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndXorRelease(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8657: { 8657: BaseClass::releaseMemoryFence(_q_value); 8657: return BaseClass::fetchAndXorRelaxed(_q_value, operand); 8657: } 8657: 8657: template static inline __attribute__((always_inline)) 8657: T fetchAndXorOrdered(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8657: { 8657: BaseClass::orderedMemoryFence(_q_value); 8657: return BaseClass::fetchAndXorRelaxed(_q_value, operand); 8657: } 8657: }; 8657: 8657: 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 2 3 4 8657: # 1 "/usr/include/c++/8/atomic" 1 3 4 8657: # 35 "/usr/include/c++/8/atomic" 3 4 8657: 8657: # 36 "/usr/include/c++/8/atomic" 3 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/atomic_base.h" 1 3 8657: # 33 "/usr/include/c++/8/bits/atomic_base.h" 3 8657: 8657: # 34 "/usr/include/c++/8/bits/atomic_base.h" 3 8657: 8657: 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stdint.h" 1 3 4 8657: # 9 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stdint.h" 3 4 8657: # 1 "/usr/include/stdint.h" 1 3 4 8657: # 26 "/usr/include/stdint.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 8657: # 27 "/usr/include/stdint.h" 2 3 4 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/wchar.h" 1 3 4 8657: # 29 "/usr/include/stdint.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4 8657: # 30 "/usr/include/stdint.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdint-uintn.h" 1 3 4 8657: # 24 "/usr/include/arm-linux-gnueabihf/bits/stdint-uintn.h" 3 4 8657: typedef __uint8_t uint8_t; 8657: typedef __uint16_t uint16_t; 8657: typedef __uint32_t uint32_t; 8657: typedef __uint64_t uint64_t; 8657: # 38 "/usr/include/stdint.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: typedef signed char int_least8_t; 8657: typedef short int int_least16_t; 8657: typedef int int_least32_t; 8657: 8657: 8657: 8657: __extension__ 8657: typedef long long int int_least64_t; 8657: 8657: 8657: 8657: typedef unsigned char uint_least8_t; 8657: typedef unsigned short int uint_least16_t; 8657: typedef unsigned int uint_least32_t; 8657: 8657: 8657: 8657: __extension__ 8657: typedef unsigned long long int uint_least64_t; 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef signed char int_fast8_t; 8657: 8657: 8657: 8657: 8657: 8657: typedef int int_fast16_t; 8657: typedef int int_fast32_t; 8657: __extension__ 8657: typedef long long int int_fast64_t; 8657: 8657: 8657: 8657: typedef unsigned char uint_fast8_t; 8657: 8657: 8657: 8657: 8657: 8657: typedef unsigned int uint_fast16_t; 8657: typedef unsigned int uint_fast32_t; 8657: __extension__ 8657: typedef unsigned long long int uint_fast64_t; 8657: # 103 "/usr/include/stdint.h" 3 4 8657: typedef int intptr_t; 8657: 8657: 8657: typedef unsigned int uintptr_t; 8657: 8657: 8657: 8657: 8657: typedef __intmax_t intmax_t; 8657: typedef __uintmax_t uintmax_t; 8657: # 10 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stdint.h" 2 3 4 8657: # 37 "/usr/include/c++/8/bits/atomic_base.h" 2 3 8657: # 1 "/usr/include/c++/8/bits/atomic_lockfree_defines.h" 1 3 8657: # 33 "/usr/include/c++/8/bits/atomic_lockfree_defines.h" 3 8657: 8657: # 34 "/usr/include/c++/8/bits/atomic_lockfree_defines.h" 3 8657: # 38 "/usr/include/c++/8/bits/atomic_base.h" 2 3 8657: 8657: 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 55 "/usr/include/c++/8/bits/atomic_base.h" 3 8657: typedef enum memory_order 8657: { 8657: memory_order_relaxed, 8657: memory_order_consume, 8657: memory_order_acquire, 8657: memory_order_release, 8657: memory_order_acq_rel, 8657: memory_order_seq_cst 8657: } memory_order; 8657: 8657: enum __memory_order_modifier 8657: { 8657: __memory_order_mask = 0x0ffff, 8657: __memory_order_modifier_mask = 0xffff0000, 8657: __memory_order_hle_acquire = 0x10000, 8657: __memory_order_hle_release = 0x20000 8657: }; 8657: 8657: constexpr memory_order 8657: operator|(memory_order __m, __memory_order_modifier __mod) 8657: { 8657: return memory_order(__m | int(__mod)); 8657: } 8657: 8657: constexpr memory_order 8657: operator&(memory_order __m, __memory_order_modifier __mod) 8657: { 8657: return memory_order(__m & int(__mod)); 8657: } 8657: 8657: 8657: constexpr memory_order 8657: __cmpexch_failure_order2(memory_order __m) noexcept 8657: { 8657: return __m == memory_order_acq_rel ? memory_order_acquire 8657: : __m == memory_order_release ? memory_order_relaxed : __m; 8657: } 8657: 8657: constexpr memory_order 8657: __cmpexch_failure_order(memory_order __m) noexcept 8657: { 8657: return memory_order(__cmpexch_failure_order2(__m & __memory_order_mask) 8657: | (__m & __memory_order_modifier_mask)); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) void 8657: atomic_thread_fence(memory_order __m) noexcept 8657: { __atomic_thread_fence(__m); } 8657: 8657: inline __attribute__((__always_inline__)) void 8657: atomic_signal_fence(memory_order __m) noexcept 8657: { __atomic_signal_fence(__m); } 8657: 8657: 8657: template 8657: inline _Tp 8657: kill_dependency(_Tp __y) noexcept 8657: { 8657: _Tp __ret(__y); 8657: return __ret; 8657: } 8657: 8657: 8657: 8657: template 8657: struct __atomic_base; 8657: 8657: 8657: 8657: 8657: template 8657: struct atomic; 8657: 8657: template 8657: struct atomic<_Tp*>; 8657: 8657: 8657: 8657: typedef bool __atomic_flag_data_type; 8657: # 148 "/usr/include/c++/8/bits/atomic_base.h" 3 8657: extern "C" { 8657: 8657: struct __atomic_flag_base 8657: { 8657: __atomic_flag_data_type _M_i; 8657: }; 8657: 8657: } 8657: 8657: 8657: 8657: 8657: struct atomic_flag : public __atomic_flag_base 8657: { 8657: atomic_flag() noexcept = default; 8657: ~atomic_flag() noexcept = default; 8657: atomic_flag(const atomic_flag&) = delete; 8657: atomic_flag& operator=(const atomic_flag&) = delete; 8657: atomic_flag& operator=(const atomic_flag&) volatile = delete; 8657: 8657: 8657: constexpr atomic_flag(bool __i) noexcept 8657: : __atomic_flag_base{ _S_init(__i) } 8657: { } 8657: 8657: inline __attribute__((__always_inline__)) bool 8657: test_and_set(memory_order __m = memory_order_seq_cst) noexcept 8657: { 8657: return __atomic_test_and_set (&_M_i, __m); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) bool 8657: test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { 8657: return __atomic_test_and_set (&_M_i, __m); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) void 8657: clear(memory_order __m = memory_order_seq_cst) noexcept 8657: { 8657: memory_order __b = __m & __memory_order_mask; 8657: ; 8657: ; 8657: ; 8657: 8657: __atomic_clear (&_M_i, __m); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) void 8657: clear(memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { 8657: memory_order __b = __m & __memory_order_mask; 8657: ; 8657: ; 8657: ; 8657: 8657: __atomic_clear (&_M_i, __m); 8657: } 8657: 8657: private: 8657: static constexpr __atomic_flag_data_type 8657: _S_init(bool __i) 8657: { return __i ? 1 : 0; } 8657: }; 8657: # 237 "/usr/include/c++/8/bits/atomic_base.h" 3 8657: template 8657: struct __atomic_base 8657: { 8657: private: 8657: typedef _ITp __int_type; 8657: 8657: static constexpr int _S_alignment = 8657: sizeof(_ITp) > alignof(_ITp) ? sizeof(_ITp) : alignof(_ITp); 8657: 8657: alignas(_S_alignment) __int_type _M_i; 8657: 8657: public: 8657: __atomic_base() noexcept = default; 8657: ~__atomic_base() noexcept = default; 8657: __atomic_base(const __atomic_base&) = delete; 8657: __atomic_base& operator=(const __atomic_base&) = delete; 8657: __atomic_base& operator=(const __atomic_base&) volatile = delete; 8657: 8657: 8657: constexpr __atomic_base(__int_type __i) noexcept : _M_i (__i) { } 8657: 8657: operator __int_type() const noexcept 8657: { return load(); } 8657: 8657: operator __int_type() const volatile noexcept 8657: { return load(); } 8657: 8657: __int_type 8657: operator=(__int_type __i) noexcept 8657: { 8657: store(__i); 8657: return __i; 8657: } 8657: 8657: __int_type 8657: operator=(__int_type __i) volatile noexcept 8657: { 8657: store(__i); 8657: return __i; 8657: } 8657: 8657: __int_type 8657: operator++(int) noexcept 8657: { return fetch_add(1); } 8657: 8657: __int_type 8657: operator++(int) volatile noexcept 8657: { return fetch_add(1); } 8657: 8657: __int_type 8657: operator--(int) noexcept 8657: { return fetch_sub(1); } 8657: 8657: __int_type 8657: operator--(int) volatile noexcept 8657: { return fetch_sub(1); } 8657: 8657: __int_type 8657: operator++() noexcept 8657: { return __atomic_add_fetch(&_M_i, 1, memory_order_seq_cst); } 8657: 8657: __int_type 8657: operator++() volatile noexcept 8657: { return __atomic_add_fetch(&_M_i, 1, memory_order_seq_cst); } 8657: 8657: __int_type 8657: operator--() noexcept 8657: { return __atomic_sub_fetch(&_M_i, 1, memory_order_seq_cst); } 8657: 8657: __int_type 8657: operator--() volatile noexcept 8657: { return __atomic_sub_fetch(&_M_i, 1, memory_order_seq_cst); } 8657: 8657: __int_type 8657: operator+=(__int_type __i) noexcept 8657: { return __atomic_add_fetch(&_M_i, __i, memory_order_seq_cst); } 8657: 8657: __int_type 8657: operator+=(__int_type __i) volatile noexcept 8657: { return __atomic_add_fetch(&_M_i, __i, memory_order_seq_cst); } 8657: 8657: __int_type 8657: operator-=(__int_type __i) noexcept 8657: { return __atomic_sub_fetch(&_M_i, __i, memory_order_seq_cst); } 8657: 8657: __int_type 8657: operator-=(__int_type __i) volatile noexcept 8657: { return __atomic_sub_fetch(&_M_i, __i, memory_order_seq_cst); } 8657: 8657: __int_type 8657: operator&=(__int_type __i) noexcept 8657: { return __atomic_and_fetch(&_M_i, __i, memory_order_seq_cst); } 8657: 8657: __int_type 8657: operator&=(__int_type __i) volatile noexcept 8657: { return __atomic_and_fetch(&_M_i, __i, memory_order_seq_cst); } 8657: 8657: __int_type 8657: operator|=(__int_type __i) noexcept 8657: { return __atomic_or_fetch(&_M_i, __i, memory_order_seq_cst); } 8657: 8657: __int_type 8657: operator|=(__int_type __i) volatile noexcept 8657: { return __atomic_or_fetch(&_M_i, __i, memory_order_seq_cst); } 8657: 8657: __int_type 8657: operator^=(__int_type __i) noexcept 8657: { return __atomic_xor_fetch(&_M_i, __i, memory_order_seq_cst); } 8657: 8657: __int_type 8657: operator^=(__int_type __i) volatile noexcept 8657: { return __atomic_xor_fetch(&_M_i, __i, memory_order_seq_cst); } 8657: 8657: bool 8657: is_lock_free() const noexcept 8657: { 8657: 8657: return __atomic_is_lock_free(sizeof(_M_i), 8657: reinterpret_cast(-__alignof(_M_i))); 8657: } 8657: 8657: bool 8657: is_lock_free() const volatile noexcept 8657: { 8657: 8657: return __atomic_is_lock_free(sizeof(_M_i), 8657: reinterpret_cast(-__alignof(_M_i))); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) void 8657: store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept 8657: { 8657: memory_order __b = __m & __memory_order_mask; 8657: ; 8657: ; 8657: ; 8657: 8657: __atomic_store_n(&_M_i, __i, __m); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) void 8657: store(__int_type __i, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { 8657: memory_order __b = __m & __memory_order_mask; 8657: ; 8657: ; 8657: ; 8657: 8657: __atomic_store_n(&_M_i, __i, __m); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) __int_type 8657: load(memory_order __m = memory_order_seq_cst) const noexcept 8657: { 8657: memory_order __b = __m & __memory_order_mask; 8657: ; 8657: ; 8657: 8657: return __atomic_load_n(&_M_i, __m); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) __int_type 8657: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8657: { 8657: memory_order __b = __m & __memory_order_mask; 8657: ; 8657: ; 8657: 8657: return __atomic_load_n(&_M_i, __m); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) __int_type 8657: exchange(__int_type __i, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { 8657: return __atomic_exchange_n(&_M_i, __i, __m); 8657: } 8657: 8657: 8657: inline __attribute__((__always_inline__)) __int_type 8657: exchange(__int_type __i, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { 8657: return __atomic_exchange_n(&_M_i, __i, __m); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) bool 8657: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8657: memory_order __m1, memory_order __m2) noexcept 8657: { 8657: memory_order __b2 = __m2 & __memory_order_mask; 8657: memory_order __b1 = __m1 & __memory_order_mask; 8657: ; 8657: ; 8657: ; 8657: 8657: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) bool 8657: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8657: memory_order __m1, 8657: memory_order __m2) volatile noexcept 8657: { 8657: memory_order __b2 = __m2 & __memory_order_mask; 8657: memory_order __b1 = __m1 & __memory_order_mask; 8657: ; 8657: ; 8657: ; 8657: 8657: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) bool 8657: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { 8657: return compare_exchange_weak(__i1, __i2, __m, 8657: __cmpexch_failure_order(__m)); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) bool 8657: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { 8657: return compare_exchange_weak(__i1, __i2, __m, 8657: __cmpexch_failure_order(__m)); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) bool 8657: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8657: memory_order __m1, memory_order __m2) noexcept 8657: { 8657: memory_order __b2 = __m2 & __memory_order_mask; 8657: memory_order __b1 = __m1 & __memory_order_mask; 8657: ; 8657: ; 8657: ; 8657: 8657: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) bool 8657: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8657: memory_order __m1, 8657: memory_order __m2) volatile noexcept 8657: { 8657: memory_order __b2 = __m2 & __memory_order_mask; 8657: memory_order __b1 = __m1 & __memory_order_mask; 8657: 8657: ; 8657: ; 8657: ; 8657: 8657: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) bool 8657: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { 8657: return compare_exchange_strong(__i1, __i2, __m, 8657: __cmpexch_failure_order(__m)); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) bool 8657: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { 8657: return compare_exchange_strong(__i1, __i2, __m, 8657: __cmpexch_failure_order(__m)); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) __int_type 8657: fetch_add(__int_type __i, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { return __atomic_fetch_add(&_M_i, __i, __m); } 8657: 8657: inline __attribute__((__always_inline__)) __int_type 8657: fetch_add(__int_type __i, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { return __atomic_fetch_add(&_M_i, __i, __m); } 8657: 8657: inline __attribute__((__always_inline__)) __int_type 8657: fetch_sub(__int_type __i, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { return __atomic_fetch_sub(&_M_i, __i, __m); } 8657: 8657: inline __attribute__((__always_inline__)) __int_type 8657: fetch_sub(__int_type __i, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { return __atomic_fetch_sub(&_M_i, __i, __m); } 8657: 8657: inline __attribute__((__always_inline__)) __int_type 8657: fetch_and(__int_type __i, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { return __atomic_fetch_and(&_M_i, __i, __m); } 8657: 8657: inline __attribute__((__always_inline__)) __int_type 8657: fetch_and(__int_type __i, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { return __atomic_fetch_and(&_M_i, __i, __m); } 8657: 8657: inline __attribute__((__always_inline__)) __int_type 8657: fetch_or(__int_type __i, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { return __atomic_fetch_or(&_M_i, __i, __m); } 8657: 8657: inline __attribute__((__always_inline__)) __int_type 8657: fetch_or(__int_type __i, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { return __atomic_fetch_or(&_M_i, __i, __m); } 8657: 8657: inline __attribute__((__always_inline__)) __int_type 8657: fetch_xor(__int_type __i, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { return __atomic_fetch_xor(&_M_i, __i, __m); } 8657: 8657: inline __attribute__((__always_inline__)) __int_type 8657: fetch_xor(__int_type __i, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { return __atomic_fetch_xor(&_M_i, __i, __m); } 8657: }; 8657: 8657: 8657: 8657: template 8657: struct __atomic_base<_PTp*> 8657: { 8657: private: 8657: typedef _PTp* __pointer_type; 8657: 8657: __pointer_type _M_p; 8657: 8657: 8657: constexpr ptrdiff_t 8657: _M_type_size(ptrdiff_t __d) const { return __d * sizeof(_PTp); } 8657: 8657: constexpr ptrdiff_t 8657: _M_type_size(ptrdiff_t __d) const volatile { return __d * sizeof(_PTp); } 8657: 8657: public: 8657: __atomic_base() noexcept = default; 8657: ~__atomic_base() noexcept = default; 8657: __atomic_base(const __atomic_base&) = delete; 8657: __atomic_base& operator=(const __atomic_base&) = delete; 8657: __atomic_base& operator=(const __atomic_base&) volatile = delete; 8657: 8657: 8657: constexpr __atomic_base(__pointer_type __p) noexcept : _M_p (__p) { } 8657: 8657: operator __pointer_type() const noexcept 8657: { return load(); } 8657: 8657: operator __pointer_type() const volatile noexcept 8657: { return load(); } 8657: 8657: __pointer_type 8657: operator=(__pointer_type __p) noexcept 8657: { 8657: store(__p); 8657: return __p; 8657: } 8657: 8657: __pointer_type 8657: operator=(__pointer_type __p) volatile noexcept 8657: { 8657: store(__p); 8657: return __p; 8657: } 8657: 8657: __pointer_type 8657: operator++(int) noexcept 8657: { return fetch_add(1); } 8657: 8657: __pointer_type 8657: operator++(int) volatile noexcept 8657: { return fetch_add(1); } 8657: 8657: __pointer_type 8657: operator--(int) noexcept 8657: { return fetch_sub(1); } 8657: 8657: __pointer_type 8657: operator--(int) volatile noexcept 8657: { return fetch_sub(1); } 8657: 8657: __pointer_type 8657: operator++() noexcept 8657: { return __atomic_add_fetch(&_M_p, _M_type_size(1), 8657: memory_order_seq_cst); } 8657: 8657: __pointer_type 8657: operator++() volatile noexcept 8657: { return __atomic_add_fetch(&_M_p, _M_type_size(1), 8657: memory_order_seq_cst); } 8657: 8657: __pointer_type 8657: operator--() noexcept 8657: { return __atomic_sub_fetch(&_M_p, _M_type_size(1), 8657: memory_order_seq_cst); } 8657: 8657: __pointer_type 8657: operator--() volatile noexcept 8657: { return __atomic_sub_fetch(&_M_p, _M_type_size(1), 8657: memory_order_seq_cst); } 8657: 8657: __pointer_type 8657: operator+=(ptrdiff_t __d) noexcept 8657: { return __atomic_add_fetch(&_M_p, _M_type_size(__d), 8657: memory_order_seq_cst); } 8657: 8657: __pointer_type 8657: operator+=(ptrdiff_t __d) volatile noexcept 8657: { return __atomic_add_fetch(&_M_p, _M_type_size(__d), 8657: memory_order_seq_cst); } 8657: 8657: __pointer_type 8657: operator-=(ptrdiff_t __d) noexcept 8657: { return __atomic_sub_fetch(&_M_p, _M_type_size(__d), 8657: memory_order_seq_cst); } 8657: 8657: __pointer_type 8657: operator-=(ptrdiff_t __d) volatile noexcept 8657: { return __atomic_sub_fetch(&_M_p, _M_type_size(__d), 8657: memory_order_seq_cst); } 8657: 8657: bool 8657: is_lock_free() const noexcept 8657: { 8657: 8657: return __atomic_is_lock_free(sizeof(_M_p), 8657: reinterpret_cast(-__alignof(_M_p))); 8657: } 8657: 8657: bool 8657: is_lock_free() const volatile noexcept 8657: { 8657: 8657: return __atomic_is_lock_free(sizeof(_M_p), 8657: reinterpret_cast(-__alignof(_M_p))); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) void 8657: store(__pointer_type __p, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { 8657: memory_order __b = __m & __memory_order_mask; 8657: 8657: ; 8657: ; 8657: ; 8657: 8657: __atomic_store_n(&_M_p, __p, __m); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) void 8657: store(__pointer_type __p, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { 8657: memory_order __b = __m & __memory_order_mask; 8657: ; 8657: ; 8657: ; 8657: 8657: __atomic_store_n(&_M_p, __p, __m); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) __pointer_type 8657: load(memory_order __m = memory_order_seq_cst) const noexcept 8657: { 8657: memory_order __b = __m & __memory_order_mask; 8657: ; 8657: ; 8657: 8657: return __atomic_load_n(&_M_p, __m); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) __pointer_type 8657: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8657: { 8657: memory_order __b = __m & __memory_order_mask; 8657: ; 8657: ; 8657: 8657: return __atomic_load_n(&_M_p, __m); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) __pointer_type 8657: exchange(__pointer_type __p, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { 8657: return __atomic_exchange_n(&_M_p, __p, __m); 8657: } 8657: 8657: 8657: inline __attribute__((__always_inline__)) __pointer_type 8657: exchange(__pointer_type __p, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { 8657: return __atomic_exchange_n(&_M_p, __p, __m); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) bool 8657: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8657: memory_order __m1, 8657: memory_order __m2) noexcept 8657: { 8657: memory_order __b2 = __m2 & __memory_order_mask; 8657: memory_order __b1 = __m1 & __memory_order_mask; 8657: ; 8657: ; 8657: ; 8657: 8657: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) bool 8657: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8657: memory_order __m1, 8657: memory_order __m2) volatile noexcept 8657: { 8657: memory_order __b2 = __m2 & __memory_order_mask; 8657: memory_order __b1 = __m1 & __memory_order_mask; 8657: 8657: ; 8657: ; 8657: ; 8657: 8657: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2); 8657: } 8657: 8657: inline __attribute__((__always_inline__)) __pointer_type 8657: fetch_add(ptrdiff_t __d, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { return __atomic_fetch_add(&_M_p, _M_type_size(__d), __m); } 8657: 8657: inline __attribute__((__always_inline__)) __pointer_type 8657: fetch_add(ptrdiff_t __d, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { return __atomic_fetch_add(&_M_p, _M_type_size(__d), __m); } 8657: 8657: inline __attribute__((__always_inline__)) __pointer_type 8657: fetch_sub(ptrdiff_t __d, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), __m); } 8657: 8657: inline __attribute__((__always_inline__)) __pointer_type 8657: fetch_sub(ptrdiff_t __d, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), __m); } 8657: }; 8657: 8657: 8657: 8657: 8657: } 8657: # 42 "/usr/include/c++/8/atomic" 2 3 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 57 "/usr/include/c++/8/atomic" 3 8657: template 8657: struct atomic; 8657: 8657: 8657: 8657: template<> 8657: struct atomic 8657: { 8657: private: 8657: __atomic_base _M_base; 8657: 8657: public: 8657: atomic() noexcept = default; 8657: ~atomic() noexcept = default; 8657: atomic(const atomic&) = delete; 8657: atomic& operator=(const atomic&) = delete; 8657: atomic& operator=(const atomic&) volatile = delete; 8657: 8657: constexpr atomic(bool __i) noexcept : _M_base(__i) { } 8657: 8657: bool 8657: operator=(bool __i) noexcept 8657: { return _M_base.operator=(__i); } 8657: 8657: bool 8657: operator=(bool __i) volatile noexcept 8657: { return _M_base.operator=(__i); } 8657: 8657: operator bool() const noexcept 8657: { return _M_base.load(); } 8657: 8657: operator bool() const volatile noexcept 8657: { return _M_base.load(); } 8657: 8657: bool 8657: is_lock_free() const noexcept { return _M_base.is_lock_free(); } 8657: 8657: bool 8657: is_lock_free() const volatile noexcept { return _M_base.is_lock_free(); } 8657: 8657: 8657: 8657: 8657: 8657: void 8657: store(bool __i, memory_order __m = memory_order_seq_cst) noexcept 8657: { _M_base.store(__i, __m); } 8657: 8657: void 8657: store(bool __i, memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { _M_base.store(__i, __m); } 8657: 8657: bool 8657: load(memory_order __m = memory_order_seq_cst) const noexcept 8657: { return _M_base.load(__m); } 8657: 8657: bool 8657: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8657: { return _M_base.load(__m); } 8657: 8657: bool 8657: exchange(bool __i, memory_order __m = memory_order_seq_cst) noexcept 8657: { return _M_base.exchange(__i, __m); } 8657: 8657: bool 8657: exchange(bool __i, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { return _M_base.exchange(__i, __m); } 8657: 8657: bool 8657: compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1, 8657: memory_order __m2) noexcept 8657: { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); } 8657: 8657: bool 8657: compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1, 8657: memory_order __m2) volatile noexcept 8657: { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); } 8657: 8657: bool 8657: compare_exchange_weak(bool& __i1, bool __i2, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { return _M_base.compare_exchange_weak(__i1, __i2, __m); } 8657: 8657: bool 8657: compare_exchange_weak(bool& __i1, bool __i2, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { return _M_base.compare_exchange_weak(__i1, __i2, __m); } 8657: 8657: bool 8657: compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1, 8657: memory_order __m2) noexcept 8657: { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); } 8657: 8657: bool 8657: compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1, 8657: memory_order __m2) volatile noexcept 8657: { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); } 8657: 8657: bool 8657: compare_exchange_strong(bool& __i1, bool __i2, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { return _M_base.compare_exchange_strong(__i1, __i2, __m); } 8657: 8657: bool 8657: compare_exchange_strong(bool& __i1, bool __i2, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { return _M_base.compare_exchange_strong(__i1, __i2, __m); } 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct atomic 8657: { 8657: private: 8657: 8657: static constexpr int _S_min_alignment 8657: = (sizeof(_Tp) & (sizeof(_Tp) - 1)) || sizeof(_Tp) > 16 8657: ? 0 : sizeof(_Tp); 8657: 8657: static constexpr int _S_alignment 8657: = _S_min_alignment > alignof(_Tp) ? _S_min_alignment : alignof(_Tp); 8657: 8657: alignas(_S_alignment) _Tp _M_i; 8657: 8657: static_assert(__is_trivially_copyable(_Tp), 8657: "std::atomic requires a trivially copyable type"); 8657: 8657: static_assert(sizeof(_Tp) > 0, 8657: "Incomplete or zero-sized types are not supported"); 8657: 8657: public: 8657: atomic() noexcept = default; 8657: ~atomic() noexcept = default; 8657: atomic(const atomic&) = delete; 8657: atomic& operator=(const atomic&) = delete; 8657: atomic& operator=(const atomic&) volatile = delete; 8657: 8657: constexpr atomic(_Tp __i) noexcept : _M_i(__i) { } 8657: 8657: operator _Tp() const noexcept 8657: { return load(); } 8657: 8657: operator _Tp() const volatile noexcept 8657: { return load(); } 8657: 8657: _Tp 8657: operator=(_Tp __i) noexcept 8657: { store(__i); return __i; } 8657: 8657: _Tp 8657: operator=(_Tp __i) volatile noexcept 8657: { store(__i); return __i; } 8657: 8657: bool 8657: is_lock_free() const noexcept 8657: { 8657: 8657: return __atomic_is_lock_free(sizeof(_M_i), 8657: reinterpret_cast(-__alignof(_M_i))); 8657: } 8657: 8657: bool 8657: is_lock_free() const volatile noexcept 8657: { 8657: 8657: return __atomic_is_lock_free(sizeof(_M_i), 8657: reinterpret_cast(-__alignof(_M_i))); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: void 8657: store(_Tp __i, memory_order __m = memory_order_seq_cst) noexcept 8657: { __atomic_store(std::__addressof(_M_i), std::__addressof(__i), __m); } 8657: 8657: void 8657: store(_Tp __i, memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { __atomic_store(std::__addressof(_M_i), std::__addressof(__i), __m); } 8657: 8657: _Tp 8657: load(memory_order __m = memory_order_seq_cst) const noexcept 8657: { 8657: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8657: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8657: __atomic_load(std::__addressof(_M_i), __ptr, __m); 8657: return *__ptr; 8657: } 8657: 8657: _Tp 8657: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8657: { 8657: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8657: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8657: __atomic_load(std::__addressof(_M_i), __ptr, __m); 8657: return *__ptr; 8657: } 8657: 8657: _Tp 8657: exchange(_Tp __i, memory_order __m = memory_order_seq_cst) noexcept 8657: { 8657: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8657: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8657: __atomic_exchange(std::__addressof(_M_i), std::__addressof(__i), 8657: __ptr, __m); 8657: return *__ptr; 8657: } 8657: 8657: _Tp 8657: exchange(_Tp __i, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { 8657: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8657: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8657: __atomic_exchange(std::__addressof(_M_i), std::__addressof(__i), 8657: __ptr, __m); 8657: return *__ptr; 8657: } 8657: 8657: bool 8657: compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 8657: memory_order __f) noexcept 8657: { 8657: return __atomic_compare_exchange(std::__addressof(_M_i), 8657: std::__addressof(__e), 8657: std::__addressof(__i), 8657: true, __s, __f); 8657: } 8657: 8657: bool 8657: compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 8657: memory_order __f) volatile noexcept 8657: { 8657: return __atomic_compare_exchange(std::__addressof(_M_i), 8657: std::__addressof(__e), 8657: std::__addressof(__i), 8657: true, __s, __f); 8657: } 8657: 8657: bool 8657: compare_exchange_weak(_Tp& __e, _Tp __i, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { return compare_exchange_weak(__e, __i, __m, 8657: __cmpexch_failure_order(__m)); } 8657: 8657: bool 8657: compare_exchange_weak(_Tp& __e, _Tp __i, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { return compare_exchange_weak(__e, __i, __m, 8657: __cmpexch_failure_order(__m)); } 8657: 8657: bool 8657: compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 8657: memory_order __f) noexcept 8657: { 8657: return __atomic_compare_exchange(std::__addressof(_M_i), 8657: std::__addressof(__e), 8657: std::__addressof(__i), 8657: false, __s, __f); 8657: } 8657: 8657: bool 8657: compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 8657: memory_order __f) volatile noexcept 8657: { 8657: return __atomic_compare_exchange(std::__addressof(_M_i), 8657: std::__addressof(__e), 8657: std::__addressof(__i), 8657: false, __s, __f); 8657: } 8657: 8657: bool 8657: compare_exchange_strong(_Tp& __e, _Tp __i, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { return compare_exchange_strong(__e, __i, __m, 8657: __cmpexch_failure_order(__m)); } 8657: 8657: bool 8657: compare_exchange_strong(_Tp& __e, _Tp __i, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { return compare_exchange_strong(__e, __i, __m, 8657: __cmpexch_failure_order(__m)); } 8657: }; 8657: 8657: 8657: 8657: template 8657: struct atomic<_Tp*> 8657: { 8657: typedef _Tp* __pointer_type; 8657: typedef __atomic_base<_Tp*> __base_type; 8657: __base_type _M_b; 8657: 8657: atomic() noexcept = default; 8657: ~atomic() noexcept = default; 8657: atomic(const atomic&) = delete; 8657: atomic& operator=(const atomic&) = delete; 8657: atomic& operator=(const atomic&) volatile = delete; 8657: 8657: constexpr atomic(__pointer_type __p) noexcept : _M_b(__p) { } 8657: 8657: operator __pointer_type() const noexcept 8657: { return __pointer_type(_M_b); } 8657: 8657: operator __pointer_type() const volatile noexcept 8657: { return __pointer_type(_M_b); } 8657: 8657: __pointer_type 8657: operator=(__pointer_type __p) noexcept 8657: { return _M_b.operator=(__p); } 8657: 8657: __pointer_type 8657: operator=(__pointer_type __p) volatile noexcept 8657: { return _M_b.operator=(__p); } 8657: 8657: __pointer_type 8657: operator++(int) noexcept 8657: { return _M_b++; } 8657: 8657: __pointer_type 8657: operator++(int) volatile noexcept 8657: { return _M_b++; } 8657: 8657: __pointer_type 8657: operator--(int) noexcept 8657: { return _M_b--; } 8657: 8657: __pointer_type 8657: operator--(int) volatile noexcept 8657: { return _M_b--; } 8657: 8657: __pointer_type 8657: operator++() noexcept 8657: { return ++_M_b; } 8657: 8657: __pointer_type 8657: operator++() volatile noexcept 8657: { return ++_M_b; } 8657: 8657: __pointer_type 8657: operator--() noexcept 8657: { return --_M_b; } 8657: 8657: __pointer_type 8657: operator--() volatile noexcept 8657: { return --_M_b; } 8657: 8657: __pointer_type 8657: operator+=(ptrdiff_t __d) noexcept 8657: { return _M_b.operator+=(__d); } 8657: 8657: __pointer_type 8657: operator+=(ptrdiff_t __d) volatile noexcept 8657: { return _M_b.operator+=(__d); } 8657: 8657: __pointer_type 8657: operator-=(ptrdiff_t __d) noexcept 8657: { return _M_b.operator-=(__d); } 8657: 8657: __pointer_type 8657: operator-=(ptrdiff_t __d) volatile noexcept 8657: { return _M_b.operator-=(__d); } 8657: 8657: bool 8657: is_lock_free() const noexcept 8657: { return _M_b.is_lock_free(); } 8657: 8657: bool 8657: is_lock_free() const volatile noexcept 8657: { return _M_b.is_lock_free(); } 8657: 8657: 8657: 8657: 8657: 8657: void 8657: store(__pointer_type __p, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { return _M_b.store(__p, __m); } 8657: 8657: void 8657: store(__pointer_type __p, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { return _M_b.store(__p, __m); } 8657: 8657: __pointer_type 8657: load(memory_order __m = memory_order_seq_cst) const noexcept 8657: { return _M_b.load(__m); } 8657: 8657: __pointer_type 8657: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8657: { return _M_b.load(__m); } 8657: 8657: __pointer_type 8657: exchange(__pointer_type __p, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { return _M_b.exchange(__p, __m); } 8657: 8657: __pointer_type 8657: exchange(__pointer_type __p, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { return _M_b.exchange(__p, __m); } 8657: 8657: bool 8657: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8657: memory_order __m1, memory_order __m2) noexcept 8657: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8657: 8657: bool 8657: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8657: memory_order __m1, 8657: memory_order __m2) volatile noexcept 8657: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8657: 8657: bool 8657: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { 8657: return compare_exchange_weak(__p1, __p2, __m, 8657: __cmpexch_failure_order(__m)); 8657: } 8657: 8657: bool 8657: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { 8657: return compare_exchange_weak(__p1, __p2, __m, 8657: __cmpexch_failure_order(__m)); 8657: } 8657: 8657: bool 8657: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8657: memory_order __m1, memory_order __m2) noexcept 8657: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8657: 8657: bool 8657: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8657: memory_order __m1, 8657: memory_order __m2) volatile noexcept 8657: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8657: 8657: bool 8657: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { 8657: return _M_b.compare_exchange_strong(__p1, __p2, __m, 8657: __cmpexch_failure_order(__m)); 8657: } 8657: 8657: bool 8657: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { 8657: return _M_b.compare_exchange_strong(__p1, __p2, __m, 8657: __cmpexch_failure_order(__m)); 8657: } 8657: 8657: __pointer_type 8657: fetch_add(ptrdiff_t __d, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { return _M_b.fetch_add(__d, __m); } 8657: 8657: __pointer_type 8657: fetch_add(ptrdiff_t __d, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { return _M_b.fetch_add(__d, __m); } 8657: 8657: __pointer_type 8657: fetch_sub(ptrdiff_t __d, 8657: memory_order __m = memory_order_seq_cst) noexcept 8657: { return _M_b.fetch_sub(__d, __m); } 8657: 8657: __pointer_type 8657: fetch_sub(ptrdiff_t __d, 8657: memory_order __m = memory_order_seq_cst) volatile noexcept 8657: { return _M_b.fetch_sub(__d, __m); } 8657: }; 8657: 8657: 8657: 8657: template<> 8657: struct atomic : __atomic_base 8657: { 8657: typedef char __integral_type; 8657: typedef __atomic_base __base_type; 8657: 8657: atomic() noexcept = default; 8657: ~atomic() noexcept = default; 8657: atomic(const atomic&) = delete; 8657: atomic& operator=(const atomic&) = delete; 8657: atomic& operator=(const atomic&) volatile = delete; 8657: 8657: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8657: 8657: using __base_type::operator __integral_type; 8657: using __base_type::operator=; 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: template<> 8657: struct atomic : __atomic_base 8657: { 8657: typedef signed char __integral_type; 8657: typedef __atomic_base __base_type; 8657: 8657: atomic() noexcept= default; 8657: ~atomic() noexcept = default; 8657: atomic(const atomic&) = delete; 8657: atomic& operator=(const atomic&) = delete; 8657: atomic& operator=(const atomic&) volatile = delete; 8657: 8657: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8657: 8657: using __base_type::operator __integral_type; 8657: using __base_type::operator=; 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: template<> 8657: struct atomic : __atomic_base 8657: { 8657: typedef unsigned char __integral_type; 8657: typedef __atomic_base __base_type; 8657: 8657: atomic() noexcept= default; 8657: ~atomic() noexcept = default; 8657: atomic(const atomic&) = delete; 8657: atomic& operator=(const atomic&) = delete; 8657: atomic& operator=(const atomic&) volatile = delete; 8657: 8657: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8657: 8657: using __base_type::operator __integral_type; 8657: using __base_type::operator=; 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: template<> 8657: struct atomic : __atomic_base 8657: { 8657: typedef short __integral_type; 8657: typedef __atomic_base __base_type; 8657: 8657: atomic() noexcept = default; 8657: ~atomic() noexcept = default; 8657: atomic(const atomic&) = delete; 8657: atomic& operator=(const atomic&) = delete; 8657: atomic& operator=(const atomic&) volatile = delete; 8657: 8657: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8657: 8657: using __base_type::operator __integral_type; 8657: using __base_type::operator=; 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: template<> 8657: struct atomic : __atomic_base 8657: { 8657: typedef unsigned short __integral_type; 8657: typedef __atomic_base __base_type; 8657: 8657: atomic() noexcept = default; 8657: ~atomic() noexcept = default; 8657: atomic(const atomic&) = delete; 8657: atomic& operator=(const atomic&) = delete; 8657: atomic& operator=(const atomic&) volatile = delete; 8657: 8657: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8657: 8657: using __base_type::operator __integral_type; 8657: using __base_type::operator=; 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: template<> 8657: struct atomic : __atomic_base 8657: { 8657: typedef int __integral_type; 8657: typedef __atomic_base __base_type; 8657: 8657: atomic() noexcept = default; 8657: ~atomic() noexcept = default; 8657: atomic(const atomic&) = delete; 8657: atomic& operator=(const atomic&) = delete; 8657: atomic& operator=(const atomic&) volatile = delete; 8657: 8657: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8657: 8657: using __base_type::operator __integral_type; 8657: using __base_type::operator=; 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: template<> 8657: struct atomic : __atomic_base 8657: { 8657: typedef unsigned int __integral_type; 8657: typedef __atomic_base __base_type; 8657: 8657: atomic() noexcept = default; 8657: ~atomic() noexcept = default; 8657: atomic(const atomic&) = delete; 8657: atomic& operator=(const atomic&) = delete; 8657: atomic& operator=(const atomic&) volatile = delete; 8657: 8657: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8657: 8657: using __base_type::operator __integral_type; 8657: using __base_type::operator=; 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: template<> 8657: struct atomic : __atomic_base 8657: { 8657: typedef long __integral_type; 8657: typedef __atomic_base __base_type; 8657: 8657: atomic() noexcept = default; 8657: ~atomic() noexcept = default; 8657: atomic(const atomic&) = delete; 8657: atomic& operator=(const atomic&) = delete; 8657: atomic& operator=(const atomic&) volatile = delete; 8657: 8657: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8657: 8657: using __base_type::operator __integral_type; 8657: using __base_type::operator=; 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: template<> 8657: struct atomic : __atomic_base 8657: { 8657: typedef unsigned long __integral_type; 8657: typedef __atomic_base __base_type; 8657: 8657: atomic() noexcept = default; 8657: ~atomic() noexcept = default; 8657: atomic(const atomic&) = delete; 8657: atomic& operator=(const atomic&) = delete; 8657: atomic& operator=(const atomic&) volatile = delete; 8657: 8657: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8657: 8657: using __base_type::operator __integral_type; 8657: using __base_type::operator=; 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: template<> 8657: struct atomic : __atomic_base 8657: { 8657: typedef long long __integral_type; 8657: typedef __atomic_base __base_type; 8657: 8657: atomic() noexcept = default; 8657: ~atomic() noexcept = default; 8657: atomic(const atomic&) = delete; 8657: atomic& operator=(const atomic&) = delete; 8657: atomic& operator=(const atomic&) volatile = delete; 8657: 8657: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8657: 8657: using __base_type::operator __integral_type; 8657: using __base_type::operator=; 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: template<> 8657: struct atomic : __atomic_base 8657: { 8657: typedef unsigned long long __integral_type; 8657: typedef __atomic_base __base_type; 8657: 8657: atomic() noexcept = default; 8657: ~atomic() noexcept = default; 8657: atomic(const atomic&) = delete; 8657: atomic& operator=(const atomic&) = delete; 8657: atomic& operator=(const atomic&) volatile = delete; 8657: 8657: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8657: 8657: using __base_type::operator __integral_type; 8657: using __base_type::operator=; 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: template<> 8657: struct atomic : __atomic_base 8657: { 8657: typedef wchar_t __integral_type; 8657: typedef __atomic_base __base_type; 8657: 8657: atomic() noexcept = default; 8657: ~atomic() noexcept = default; 8657: atomic(const atomic&) = delete; 8657: atomic& operator=(const atomic&) = delete; 8657: atomic& operator=(const atomic&) volatile = delete; 8657: 8657: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8657: 8657: using __base_type::operator __integral_type; 8657: using __base_type::operator=; 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: template<> 8657: struct atomic : __atomic_base 8657: { 8657: typedef char16_t __integral_type; 8657: typedef __atomic_base __base_type; 8657: 8657: atomic() noexcept = default; 8657: ~atomic() noexcept = default; 8657: atomic(const atomic&) = delete; 8657: atomic& operator=(const atomic&) = delete; 8657: atomic& operator=(const atomic&) volatile = delete; 8657: 8657: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8657: 8657: using __base_type::operator __integral_type; 8657: using __base_type::operator=; 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: template<> 8657: struct atomic : __atomic_base 8657: { 8657: typedef char32_t __integral_type; 8657: typedef __atomic_base __base_type; 8657: 8657: atomic() noexcept = default; 8657: ~atomic() noexcept = default; 8657: atomic(const atomic&) = delete; 8657: atomic& operator=(const atomic&) = delete; 8657: atomic& operator=(const atomic&) volatile = delete; 8657: 8657: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8657: 8657: using __base_type::operator __integral_type; 8657: using __base_type::operator=; 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: 8657: typedef atomic atomic_bool; 8657: 8657: 8657: typedef atomic atomic_char; 8657: 8657: 8657: typedef atomic atomic_schar; 8657: 8657: 8657: typedef atomic atomic_uchar; 8657: 8657: 8657: typedef atomic atomic_short; 8657: 8657: 8657: typedef atomic atomic_ushort; 8657: 8657: 8657: typedef atomic atomic_int; 8657: 8657: 8657: typedef atomic atomic_uint; 8657: 8657: 8657: typedef atomic atomic_long; 8657: 8657: 8657: typedef atomic atomic_ulong; 8657: 8657: 8657: typedef atomic atomic_llong; 8657: 8657: 8657: typedef atomic atomic_ullong; 8657: 8657: 8657: typedef atomic atomic_wchar_t; 8657: 8657: 8657: typedef atomic atomic_char16_t; 8657: 8657: 8657: typedef atomic atomic_char32_t; 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef atomic atomic_int8_t; 8657: 8657: 8657: typedef atomic atomic_uint8_t; 8657: 8657: 8657: typedef atomic atomic_int16_t; 8657: 8657: 8657: typedef atomic atomic_uint16_t; 8657: 8657: 8657: typedef atomic atomic_int32_t; 8657: 8657: 8657: typedef atomic atomic_uint32_t; 8657: 8657: 8657: typedef atomic atomic_int64_t; 8657: 8657: 8657: typedef atomic atomic_uint64_t; 8657: 8657: 8657: 8657: typedef atomic atomic_int_least8_t; 8657: 8657: 8657: typedef atomic atomic_uint_least8_t; 8657: 8657: 8657: typedef atomic atomic_int_least16_t; 8657: 8657: 8657: typedef atomic atomic_uint_least16_t; 8657: 8657: 8657: typedef atomic atomic_int_least32_t; 8657: 8657: 8657: typedef atomic atomic_uint_least32_t; 8657: 8657: 8657: typedef atomic atomic_int_least64_t; 8657: 8657: 8657: typedef atomic atomic_uint_least64_t; 8657: 8657: 8657: 8657: typedef atomic atomic_int_fast8_t; 8657: 8657: 8657: typedef atomic atomic_uint_fast8_t; 8657: 8657: 8657: typedef atomic atomic_int_fast16_t; 8657: 8657: 8657: typedef atomic atomic_uint_fast16_t; 8657: 8657: 8657: typedef atomic atomic_int_fast32_t; 8657: 8657: 8657: typedef atomic atomic_uint_fast32_t; 8657: 8657: 8657: typedef atomic atomic_int_fast64_t; 8657: 8657: 8657: typedef atomic atomic_uint_fast64_t; 8657: 8657: 8657: 8657: 8657: typedef atomic atomic_intptr_t; 8657: 8657: 8657: typedef atomic atomic_uintptr_t; 8657: 8657: 8657: typedef atomic atomic_size_t; 8657: 8657: 8657: typedef atomic atomic_ptrdiff_t; 8657: 8657: 8657: 8657: typedef atomic atomic_intmax_t; 8657: 8657: 8657: typedef atomic atomic_uintmax_t; 8657: 8657: 8657: 8657: inline bool 8657: atomic_flag_test_and_set_explicit(atomic_flag* __a, 8657: memory_order __m) noexcept 8657: { return __a->test_and_set(__m); } 8657: 8657: inline bool 8657: atomic_flag_test_and_set_explicit(volatile atomic_flag* __a, 8657: memory_order __m) noexcept 8657: { return __a->test_and_set(__m); } 8657: 8657: inline void 8657: atomic_flag_clear_explicit(atomic_flag* __a, memory_order __m) noexcept 8657: { __a->clear(__m); } 8657: 8657: inline void 8657: atomic_flag_clear_explicit(volatile atomic_flag* __a, 8657: memory_order __m) noexcept 8657: { __a->clear(__m); } 8657: 8657: inline bool 8657: atomic_flag_test_and_set(atomic_flag* __a) noexcept 8657: { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); } 8657: 8657: inline bool 8657: atomic_flag_test_and_set(volatile atomic_flag* __a) noexcept 8657: { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); } 8657: 8657: inline void 8657: atomic_flag_clear(atomic_flag* __a) noexcept 8657: { atomic_flag_clear_explicit(__a, memory_order_seq_cst); } 8657: 8657: inline void 8657: atomic_flag_clear(volatile atomic_flag* __a) noexcept 8657: { atomic_flag_clear_explicit(__a, memory_order_seq_cst); } 8657: 8657: 8657: 8657: template 8657: inline bool 8657: atomic_is_lock_free(const atomic<_ITp>* __a) noexcept 8657: { return __a->is_lock_free(); } 8657: 8657: template 8657: inline bool 8657: atomic_is_lock_free(const volatile atomic<_ITp>* __a) noexcept 8657: { return __a->is_lock_free(); } 8657: 8657: template 8657: inline void 8657: atomic_init(atomic<_ITp>* __a, _ITp __i) noexcept 8657: { __a->store(__i, memory_order_relaxed); } 8657: 8657: template 8657: inline void 8657: atomic_init(volatile atomic<_ITp>* __a, _ITp __i) noexcept 8657: { __a->store(__i, memory_order_relaxed); } 8657: 8657: template 8657: inline void 8657: atomic_store_explicit(atomic<_ITp>* __a, _ITp __i, 8657: memory_order __m) noexcept 8657: { __a->store(__i, __m); } 8657: 8657: template 8657: inline void 8657: atomic_store_explicit(volatile atomic<_ITp>* __a, _ITp __i, 8657: memory_order __m) noexcept 8657: { __a->store(__i, __m); } 8657: 8657: template 8657: inline _ITp 8657: atomic_load_explicit(const atomic<_ITp>* __a, memory_order __m) noexcept 8657: { return __a->load(__m); } 8657: 8657: template 8657: inline _ITp 8657: atomic_load_explicit(const volatile atomic<_ITp>* __a, 8657: memory_order __m) noexcept 8657: { return __a->load(__m); } 8657: 8657: template 8657: inline _ITp 8657: atomic_exchange_explicit(atomic<_ITp>* __a, _ITp __i, 8657: memory_order __m) noexcept 8657: { return __a->exchange(__i, __m); } 8657: 8657: template 8657: inline _ITp 8657: atomic_exchange_explicit(volatile atomic<_ITp>* __a, _ITp __i, 8657: memory_order __m) noexcept 8657: { return __a->exchange(__i, __m); } 8657: 8657: template 8657: inline bool 8657: atomic_compare_exchange_weak_explicit(atomic<_ITp>* __a, 8657: _ITp* __i1, _ITp __i2, 8657: memory_order __m1, 8657: memory_order __m2) noexcept 8657: { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); } 8657: 8657: template 8657: inline bool 8657: atomic_compare_exchange_weak_explicit(volatile atomic<_ITp>* __a, 8657: _ITp* __i1, _ITp __i2, 8657: memory_order __m1, 8657: memory_order __m2) noexcept 8657: { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); } 8657: 8657: template 8657: inline bool 8657: atomic_compare_exchange_strong_explicit(atomic<_ITp>* __a, 8657: _ITp* __i1, _ITp __i2, 8657: memory_order __m1, 8657: memory_order __m2) noexcept 8657: { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); } 8657: 8657: template 8657: inline bool 8657: atomic_compare_exchange_strong_explicit(volatile atomic<_ITp>* __a, 8657: _ITp* __i1, _ITp __i2, 8657: memory_order __m1, 8657: memory_order __m2) noexcept 8657: { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); } 8657: 8657: 8657: template 8657: inline void 8657: atomic_store(atomic<_ITp>* __a, _ITp __i) noexcept 8657: { atomic_store_explicit(__a, __i, memory_order_seq_cst); } 8657: 8657: template 8657: inline void 8657: atomic_store(volatile atomic<_ITp>* __a, _ITp __i) noexcept 8657: { atomic_store_explicit(__a, __i, memory_order_seq_cst); } 8657: 8657: template 8657: inline _ITp 8657: atomic_load(const atomic<_ITp>* __a) noexcept 8657: { return atomic_load_explicit(__a, memory_order_seq_cst); } 8657: 8657: template 8657: inline _ITp 8657: atomic_load(const volatile atomic<_ITp>* __a) noexcept 8657: { return atomic_load_explicit(__a, memory_order_seq_cst); } 8657: 8657: template 8657: inline _ITp 8657: atomic_exchange(atomic<_ITp>* __a, _ITp __i) noexcept 8657: { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); } 8657: 8657: template 8657: inline _ITp 8657: atomic_exchange(volatile atomic<_ITp>* __a, _ITp __i) noexcept 8657: { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); } 8657: 8657: template 8657: inline bool 8657: atomic_compare_exchange_weak(atomic<_ITp>* __a, 8657: _ITp* __i1, _ITp __i2) noexcept 8657: { 8657: return atomic_compare_exchange_weak_explicit(__a, __i1, __i2, 8657: memory_order_seq_cst, 8657: memory_order_seq_cst); 8657: } 8657: 8657: template 8657: inline bool 8657: atomic_compare_exchange_weak(volatile atomic<_ITp>* __a, 8657: _ITp* __i1, _ITp __i2) noexcept 8657: { 8657: return atomic_compare_exchange_weak_explicit(__a, __i1, __i2, 8657: memory_order_seq_cst, 8657: memory_order_seq_cst); 8657: } 8657: 8657: template 8657: inline bool 8657: atomic_compare_exchange_strong(atomic<_ITp>* __a, 8657: _ITp* __i1, _ITp __i2) noexcept 8657: { 8657: return atomic_compare_exchange_strong_explicit(__a, __i1, __i2, 8657: memory_order_seq_cst, 8657: memory_order_seq_cst); 8657: } 8657: 8657: template 8657: inline bool 8657: atomic_compare_exchange_strong(volatile atomic<_ITp>* __a, 8657: _ITp* __i1, _ITp __i2) noexcept 8657: { 8657: return atomic_compare_exchange_strong_explicit(__a, __i1, __i2, 8657: memory_order_seq_cst, 8657: memory_order_seq_cst); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_add_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8657: memory_order __m) noexcept 8657: { return __a->fetch_add(__i, __m); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_add_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8657: memory_order __m) noexcept 8657: { return __a->fetch_add(__i, __m); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_sub_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8657: memory_order __m) noexcept 8657: { return __a->fetch_sub(__i, __m); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_sub_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8657: memory_order __m) noexcept 8657: { return __a->fetch_sub(__i, __m); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_and_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8657: memory_order __m) noexcept 8657: { return __a->fetch_and(__i, __m); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_and_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8657: memory_order __m) noexcept 8657: { return __a->fetch_and(__i, __m); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_or_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8657: memory_order __m) noexcept 8657: { return __a->fetch_or(__i, __m); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_or_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8657: memory_order __m) noexcept 8657: { return __a->fetch_or(__i, __m); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_xor_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8657: memory_order __m) noexcept 8657: { return __a->fetch_xor(__i, __m); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_xor_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8657: memory_order __m) noexcept 8657: { return __a->fetch_xor(__i, __m); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_add(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8657: { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_add(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8657: { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_sub(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8657: { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_sub(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8657: { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_and(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8657: { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_and(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8657: { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_or(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8657: { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_or(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8657: { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_xor(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8657: { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); } 8657: 8657: template 8657: inline _ITp 8657: atomic_fetch_xor(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8657: { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); } 8657: 8657: 8657: 8657: template 8657: inline _ITp* 8657: atomic_fetch_add_explicit(atomic<_ITp*>* __a, ptrdiff_t __d, 8657: memory_order __m) noexcept 8657: { return __a->fetch_add(__d, __m); } 8657: 8657: template 8657: inline _ITp* 8657: atomic_fetch_add_explicit(volatile atomic<_ITp*>* __a, ptrdiff_t __d, 8657: memory_order __m) noexcept 8657: { return __a->fetch_add(__d, __m); } 8657: 8657: template 8657: inline _ITp* 8657: atomic_fetch_add(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8657: { return __a->fetch_add(__d); } 8657: 8657: template 8657: inline _ITp* 8657: atomic_fetch_add(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8657: { return __a->fetch_add(__d); } 8657: 8657: template 8657: inline _ITp* 8657: atomic_fetch_sub_explicit(volatile atomic<_ITp*>* __a, 8657: ptrdiff_t __d, memory_order __m) noexcept 8657: { return __a->fetch_sub(__d, __m); } 8657: 8657: template 8657: inline _ITp* 8657: atomic_fetch_sub_explicit(atomic<_ITp*>* __a, ptrdiff_t __d, 8657: memory_order __m) noexcept 8657: { return __a->fetch_sub(__d, __m); } 8657: 8657: template 8657: inline _ITp* 8657: atomic_fetch_sub(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8657: { return __a->fetch_sub(__d); } 8657: 8657: template 8657: inline _ITp* 8657: atomic_fetch_sub(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8657: { return __a->fetch_sub(__d); } 8657: 8657: 8657: 8657: } 8657: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 2 3 4 8657: 8657: 8657: # 75 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 3 4 8657: template struct QAtomicTraits 8657: { static constexpr inline bool isLockFree(); }; 8657: # 89 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 3 4 8657: template <> constexpr inline bool QAtomicTraits<4>::isLockFree() 8657: { return true; } 8657: # 134 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 3 4 8657: template<> struct QAtomicOpsSupport<1> { enum { IsSupported = 1 }; }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template <> constexpr inline bool QAtomicTraits<1>::isLockFree() 8657: { return true; } 8657: # 162 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 3 4 8657: template<> struct QAtomicOpsSupport<2> { enum { IsSupported = 1 }; }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template <> constexpr inline bool QAtomicTraits<2>::isLockFree() 8657: { return false; } 8657: # 191 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 3 4 8657: template<> struct QAtomicOpsSupport<8> { enum { IsSupported = 1 }; }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template <> constexpr inline bool QAtomicTraits<8>::isLockFree() 8657: { return true; } 8657: # 220 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 3 4 8657: template struct QAtomicOps 8657: { 8657: typedef std::atomic Type; 8657: 8657: template static inline 8657: T load(const std::atomic &_q_value) noexcept 8657: { 8657: return _q_value.load(std::memory_order_relaxed); 8657: } 8657: 8657: template static inline 8657: T load(const volatile std::atomic &_q_value) noexcept 8657: { 8657: return _q_value.load(std::memory_order_relaxed); 8657: } 8657: 8657: template static inline 8657: T loadAcquire(const std::atomic &_q_value) noexcept 8657: { 8657: return _q_value.load(std::memory_order_acquire); 8657: } 8657: 8657: template static inline 8657: T loadAcquire(const volatile std::atomic &_q_value) noexcept 8657: { 8657: return _q_value.load(std::memory_order_acquire); 8657: } 8657: 8657: template static inline 8657: void store(std::atomic &_q_value, T newValue) noexcept 8657: { 8657: _q_value.store(newValue, std::memory_order_relaxed); 8657: } 8657: 8657: template static inline 8657: void storeRelease(std::atomic &_q_value, T newValue) noexcept 8657: { 8657: _q_value.store(newValue, std::memory_order_release); 8657: } 8657: 8657: static inline constexpr bool isReferenceCountingNative() noexcept { return isTestAndSetNative(); } 8657: static inline constexpr bool isReferenceCountingWaitFree() noexcept { return false; } 8657: template 8657: static inline bool ref(std::atomic &_q_value) 8657: { 8657: return ++_q_value != 0; 8657: } 8657: 8657: template 8657: static inline bool deref(std::atomic &_q_value) noexcept 8657: { 8657: return --_q_value != 0; 8657: } 8657: 8657: static inline constexpr bool isTestAndSetNative() noexcept 8657: { return QAtomicTraits::isLockFree(); } 8657: static inline constexpr bool isTestAndSetWaitFree() noexcept { return false; } 8657: 8657: template 8657: static bool testAndSetRelaxed(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8657: { 8657: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_relaxed, std::memory_order_relaxed); 8657: if (currentValue) 8657: *currentValue = expectedValue; 8657: return tmp; 8657: } 8657: 8657: template 8657: static bool testAndSetAcquire(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8657: { 8657: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_acquire, std::memory_order_acquire); 8657: if (currentValue) 8657: *currentValue = expectedValue; 8657: return tmp; 8657: } 8657: 8657: template 8657: static bool testAndSetRelease(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8657: { 8657: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_release, std::memory_order_relaxed); 8657: if (currentValue) 8657: *currentValue = expectedValue; 8657: return tmp; 8657: } 8657: 8657: template 8657: static bool testAndSetOrdered(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8657: { 8657: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_acq_rel, std::memory_order_acquire); 8657: if (currentValue) 8657: *currentValue = expectedValue; 8657: return tmp; 8657: } 8657: 8657: static inline constexpr bool isFetchAndStoreNative() noexcept { return isTestAndSetNative(); } 8657: static inline constexpr bool isFetchAndStoreWaitFree() noexcept { return false; } 8657: 8657: template 8657: static T fetchAndStoreRelaxed(std::atomic &_q_value, T newValue) noexcept 8657: { 8657: return _q_value.exchange(newValue, std::memory_order_relaxed); 8657: } 8657: 8657: template 8657: static T fetchAndStoreAcquire(std::atomic &_q_value, T newValue) noexcept 8657: { 8657: return _q_value.exchange(newValue, std::memory_order_acquire); 8657: } 8657: 8657: template 8657: static T fetchAndStoreRelease(std::atomic &_q_value, T newValue) noexcept 8657: { 8657: return _q_value.exchange(newValue, std::memory_order_release); 8657: } 8657: 8657: template 8657: static T fetchAndStoreOrdered(std::atomic &_q_value, T newValue) noexcept 8657: { 8657: return _q_value.exchange(newValue, std::memory_order_acq_rel); 8657: } 8657: 8657: static inline constexpr bool isFetchAndAddNative() noexcept { return isTestAndSetNative(); } 8657: static inline constexpr bool isFetchAndAddWaitFree() noexcept { return false; } 8657: 8657: template static inline 8657: T fetchAndAddRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_add(valueToAdd, std::memory_order_relaxed); 8657: } 8657: 8657: template static inline 8657: T fetchAndAddAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_add(valueToAdd, std::memory_order_acquire); 8657: } 8657: 8657: template static inline 8657: T fetchAndAddRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_add(valueToAdd, std::memory_order_release); 8657: } 8657: 8657: template static inline 8657: T fetchAndAddOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_add(valueToAdd, std::memory_order_acq_rel); 8657: } 8657: 8657: template static inline 8657: T fetchAndSubRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_sub(valueToAdd, std::memory_order_relaxed); 8657: } 8657: 8657: template static inline 8657: T fetchAndSubAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_sub(valueToAdd, std::memory_order_acquire); 8657: } 8657: 8657: template static inline 8657: T fetchAndSubRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_sub(valueToAdd, std::memory_order_release); 8657: } 8657: 8657: template static inline 8657: T fetchAndSubOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_sub(valueToAdd, std::memory_order_acq_rel); 8657: } 8657: 8657: template static inline 8657: T fetchAndAndRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_and(valueToAdd, std::memory_order_relaxed); 8657: } 8657: 8657: template static inline 8657: T fetchAndAndAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_and(valueToAdd, std::memory_order_acquire); 8657: } 8657: 8657: template static inline 8657: T fetchAndAndRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_and(valueToAdd, std::memory_order_release); 8657: } 8657: 8657: template static inline 8657: T fetchAndAndOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_and(valueToAdd, std::memory_order_acq_rel); 8657: } 8657: 8657: template static inline 8657: T fetchAndOrRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_or(valueToAdd, std::memory_order_relaxed); 8657: } 8657: 8657: template static inline 8657: T fetchAndOrAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_or(valueToAdd, std::memory_order_acquire); 8657: } 8657: 8657: template static inline 8657: T fetchAndOrRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_or(valueToAdd, std::memory_order_release); 8657: } 8657: 8657: template static inline 8657: T fetchAndOrOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_or(valueToAdd, std::memory_order_acq_rel); 8657: } 8657: 8657: template static inline 8657: T fetchAndXorRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_xor(valueToAdd, std::memory_order_relaxed); 8657: } 8657: 8657: template static inline 8657: T fetchAndXorAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_xor(valueToAdd, std::memory_order_acquire); 8657: } 8657: 8657: template static inline 8657: T fetchAndXorRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_xor(valueToAdd, std::memory_order_release); 8657: } 8657: 8657: template static inline 8657: T fetchAndXorOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8657: { 8657: return _q_value.fetch_xor(valueToAdd, std::memory_order_acq_rel); 8657: } 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: # 54 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 2 3 4 8657: # 64 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 3 4 8657: 8657: # 64 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 3 4 8657: #pragma GCC diagnostic push 8657: # 64 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 3 4 8657: 8657: 8657: 8657: 8657: # 89 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 3 4 8657: template 8657: class QBasicAtomicInteger 8657: { 8657: public: 8657: typedef QAtomicOps Ops; 8657: 8657: static_assert(bool(QTypeInfo::isIntegral), "template parameter is not an integral type"); 8657: static_assert(bool(QAtomicOpsSupport::IsSupported), "template parameter is an integral of a size not supported on this platform"); 8657: 8657: typename Ops::Type _q_value; 8657: 8657: 8657: 8657: T load() const noexcept { return Ops::load(_q_value); } 8657: void store(T newValue) noexcept { Ops::store(_q_value, newValue); } 8657: 8657: T loadAcquire() const noexcept { return Ops::loadAcquire(_q_value); } 8657: void storeRelease(T newValue) noexcept { Ops::storeRelease(_q_value, newValue); } 8657: operator T() const noexcept { return loadAcquire(); } 8657: T operator=(T newValue) noexcept { storeRelease(newValue); return newValue; } 8657: 8657: static constexpr bool isReferenceCountingNative() noexcept { return Ops::isReferenceCountingNative(); } 8657: static constexpr bool isReferenceCountingWaitFree() noexcept { return Ops::isReferenceCountingWaitFree(); } 8657: 8657: bool ref() noexcept { return Ops::ref(_q_value); } 8657: bool deref() noexcept { return Ops::deref(_q_value); } 8657: 8657: static constexpr bool isTestAndSetNative() noexcept { return Ops::isTestAndSetNative(); } 8657: static constexpr bool isTestAndSetWaitFree() noexcept { return Ops::isTestAndSetWaitFree(); } 8657: 8657: bool testAndSetRelaxed(T expectedValue, T newValue) noexcept 8657: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue); } 8657: bool testAndSetAcquire(T expectedValue, T newValue) noexcept 8657: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue); } 8657: bool testAndSetRelease(T expectedValue, T newValue) noexcept 8657: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue); } 8657: bool testAndSetOrdered(T expectedValue, T newValue) noexcept 8657: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue); } 8657: 8657: bool testAndSetRelaxed(T expectedValue, T newValue, T ¤tValue) noexcept 8657: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue, ¤tValue); } 8657: bool testAndSetAcquire(T expectedValue, T newValue, T ¤tValue) noexcept 8657: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue, ¤tValue); } 8657: bool testAndSetRelease(T expectedValue, T newValue, T ¤tValue) noexcept 8657: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue, ¤tValue); } 8657: bool testAndSetOrdered(T expectedValue, T newValue, T ¤tValue) noexcept 8657: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue, ¤tValue); } 8657: 8657: static constexpr bool isFetchAndStoreNative() noexcept { return Ops::isFetchAndStoreNative(); } 8657: static constexpr bool isFetchAndStoreWaitFree() noexcept { return Ops::isFetchAndStoreWaitFree(); } 8657: 8657: T fetchAndStoreRelaxed(T newValue) noexcept 8657: { return Ops::fetchAndStoreRelaxed(_q_value, newValue); } 8657: T fetchAndStoreAcquire(T newValue) noexcept 8657: { return Ops::fetchAndStoreAcquire(_q_value, newValue); } 8657: T fetchAndStoreRelease(T newValue) noexcept 8657: { return Ops::fetchAndStoreRelease(_q_value, newValue); } 8657: T fetchAndStoreOrdered(T newValue) noexcept 8657: { return Ops::fetchAndStoreOrdered(_q_value, newValue); } 8657: 8657: static constexpr bool isFetchAndAddNative() noexcept { return Ops::isFetchAndAddNative(); } 8657: static constexpr bool isFetchAndAddWaitFree() noexcept { return Ops::isFetchAndAddWaitFree(); } 8657: 8657: T fetchAndAddRelaxed(T valueToAdd) noexcept 8657: { return Ops::fetchAndAddRelaxed(_q_value, valueToAdd); } 8657: T fetchAndAddAcquire(T valueToAdd) noexcept 8657: { return Ops::fetchAndAddAcquire(_q_value, valueToAdd); } 8657: T fetchAndAddRelease(T valueToAdd) noexcept 8657: { return Ops::fetchAndAddRelease(_q_value, valueToAdd); } 8657: T fetchAndAddOrdered(T valueToAdd) noexcept 8657: { return Ops::fetchAndAddOrdered(_q_value, valueToAdd); } 8657: 8657: T fetchAndSubRelaxed(T valueToAdd) noexcept 8657: { return Ops::fetchAndSubRelaxed(_q_value, valueToAdd); } 8657: T fetchAndSubAcquire(T valueToAdd) noexcept 8657: { return Ops::fetchAndSubAcquire(_q_value, valueToAdd); } 8657: T fetchAndSubRelease(T valueToAdd) noexcept 8657: { return Ops::fetchAndSubRelease(_q_value, valueToAdd); } 8657: T fetchAndSubOrdered(T valueToAdd) noexcept 8657: { return Ops::fetchAndSubOrdered(_q_value, valueToAdd); } 8657: 8657: T fetchAndAndRelaxed(T valueToAdd) noexcept 8657: { return Ops::fetchAndAndRelaxed(_q_value, valueToAdd); } 8657: T fetchAndAndAcquire(T valueToAdd) noexcept 8657: { return Ops::fetchAndAndAcquire(_q_value, valueToAdd); } 8657: T fetchAndAndRelease(T valueToAdd) noexcept 8657: { return Ops::fetchAndAndRelease(_q_value, valueToAdd); } 8657: T fetchAndAndOrdered(T valueToAdd) noexcept 8657: { return Ops::fetchAndAndOrdered(_q_value, valueToAdd); } 8657: 8657: T fetchAndOrRelaxed(T valueToAdd) noexcept 8657: { return Ops::fetchAndOrRelaxed(_q_value, valueToAdd); } 8657: T fetchAndOrAcquire(T valueToAdd) noexcept 8657: { return Ops::fetchAndOrAcquire(_q_value, valueToAdd); } 8657: T fetchAndOrRelease(T valueToAdd) noexcept 8657: { return Ops::fetchAndOrRelease(_q_value, valueToAdd); } 8657: T fetchAndOrOrdered(T valueToAdd) noexcept 8657: { return Ops::fetchAndOrOrdered(_q_value, valueToAdd); } 8657: 8657: T fetchAndXorRelaxed(T valueToAdd) noexcept 8657: { return Ops::fetchAndXorRelaxed(_q_value, valueToAdd); } 8657: T fetchAndXorAcquire(T valueToAdd) noexcept 8657: { return Ops::fetchAndXorAcquire(_q_value, valueToAdd); } 8657: T fetchAndXorRelease(T valueToAdd) noexcept 8657: { return Ops::fetchAndXorRelease(_q_value, valueToAdd); } 8657: T fetchAndXorOrdered(T valueToAdd) noexcept 8657: { return Ops::fetchAndXorOrdered(_q_value, valueToAdd); } 8657: 8657: T operator++() noexcept 8657: { return fetchAndAddOrdered(1) + 1; } 8657: T operator++(int) noexcept 8657: { return fetchAndAddOrdered(1); } 8657: T operator--() noexcept 8657: { return fetchAndSubOrdered(1) - 1; } 8657: T operator--(int) noexcept 8657: { return fetchAndSubOrdered(1); } 8657: 8657: T operator+=(T v) noexcept 8657: { return fetchAndAddOrdered(v) + v; } 8657: T operator-=(T v) noexcept 8657: { return fetchAndSubOrdered(v) - v; } 8657: T operator&=(T v) noexcept 8657: { return fetchAndAndOrdered(v) & v; } 8657: T operator|=(T v) noexcept 8657: { return fetchAndOrOrdered(v) | v; } 8657: T operator^=(T v) noexcept 8657: { return fetchAndXorOrdered(v) ^ v; } 8657: 8657: 8657: 8657: QBasicAtomicInteger() = default; 8657: constexpr QBasicAtomicInteger(T value) noexcept : _q_value(value) {} 8657: QBasicAtomicInteger(const QBasicAtomicInteger &) = delete; 8657: QBasicAtomicInteger &operator=(const QBasicAtomicInteger &) = delete; 8657: QBasicAtomicInteger &operator=(const QBasicAtomicInteger &) volatile = delete; 8657: 8657: }; 8657: typedef QBasicAtomicInteger QBasicAtomicInt; 8657: 8657: template 8657: class QBasicAtomicPointer 8657: { 8657: public: 8657: typedef X *Type; 8657: typedef QAtomicOps Ops; 8657: typedef typename Ops::Type AtomicType; 8657: 8657: AtomicType _q_value; 8657: 8657: Type load() const noexcept { return Ops::load(_q_value); } 8657: void store(Type newValue) noexcept { Ops::store(_q_value, newValue); } 8657: operator Type() const noexcept { return loadAcquire(); } 8657: Type operator=(Type newValue) noexcept { storeRelease(newValue); return newValue; } 8657: 8657: 8657: Type loadAcquire() const noexcept { return Ops::loadAcquire(_q_value); } 8657: void storeRelease(Type newValue) noexcept { Ops::storeRelease(_q_value, newValue); } 8657: 8657: static constexpr bool isTestAndSetNative() noexcept { return Ops::isTestAndSetNative(); } 8657: static constexpr bool isTestAndSetWaitFree() noexcept { return Ops::isTestAndSetWaitFree(); } 8657: 8657: bool testAndSetRelaxed(Type expectedValue, Type newValue) noexcept 8657: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue); } 8657: bool testAndSetAcquire(Type expectedValue, Type newValue) noexcept 8657: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue); } 8657: bool testAndSetRelease(Type expectedValue, Type newValue) noexcept 8657: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue); } 8657: bool testAndSetOrdered(Type expectedValue, Type newValue) noexcept 8657: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue); } 8657: 8657: bool testAndSetRelaxed(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8657: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue, ¤tValue); } 8657: bool testAndSetAcquire(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8657: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue, ¤tValue); } 8657: bool testAndSetRelease(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8657: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue, ¤tValue); } 8657: bool testAndSetOrdered(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8657: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue, ¤tValue); } 8657: 8657: static constexpr bool isFetchAndStoreNative() noexcept { return Ops::isFetchAndStoreNative(); } 8657: static constexpr bool isFetchAndStoreWaitFree() noexcept { return Ops::isFetchAndStoreWaitFree(); } 8657: 8657: Type fetchAndStoreRelaxed(Type newValue) noexcept 8657: { return Ops::fetchAndStoreRelaxed(_q_value, newValue); } 8657: Type fetchAndStoreAcquire(Type newValue) noexcept 8657: { return Ops::fetchAndStoreAcquire(_q_value, newValue); } 8657: Type fetchAndStoreRelease(Type newValue) noexcept 8657: { return Ops::fetchAndStoreRelease(_q_value, newValue); } 8657: Type fetchAndStoreOrdered(Type newValue) noexcept 8657: { return Ops::fetchAndStoreOrdered(_q_value, newValue); } 8657: 8657: static constexpr bool isFetchAndAddNative() noexcept { return Ops::isFetchAndAddNative(); } 8657: static constexpr bool isFetchAndAddWaitFree() noexcept { return Ops::isFetchAndAddWaitFree(); } 8657: 8657: Type fetchAndAddRelaxed(qptrdiff valueToAdd) noexcept 8657: { return Ops::fetchAndAddRelaxed(_q_value, valueToAdd); } 8657: Type fetchAndAddAcquire(qptrdiff valueToAdd) noexcept 8657: { return Ops::fetchAndAddAcquire(_q_value, valueToAdd); } 8657: Type fetchAndAddRelease(qptrdiff valueToAdd) noexcept 8657: { return Ops::fetchAndAddRelease(_q_value, valueToAdd); } 8657: Type fetchAndAddOrdered(qptrdiff valueToAdd) noexcept 8657: { return Ops::fetchAndAddOrdered(_q_value, valueToAdd); } 8657: 8657: Type fetchAndSubRelaxed(qptrdiff valueToAdd) noexcept 8657: { return Ops::fetchAndSubRelaxed(_q_value, valueToAdd); } 8657: Type fetchAndSubAcquire(qptrdiff valueToAdd) noexcept 8657: { return Ops::fetchAndSubAcquire(_q_value, valueToAdd); } 8657: Type fetchAndSubRelease(qptrdiff valueToAdd) noexcept 8657: { return Ops::fetchAndSubRelease(_q_value, valueToAdd); } 8657: Type fetchAndSubOrdered(qptrdiff valueToAdd) noexcept 8657: { return Ops::fetchAndSubOrdered(_q_value, valueToAdd); } 8657: 8657: Type operator++() noexcept 8657: { return fetchAndAddOrdered(1) + 1; } 8657: Type operator++(int) noexcept 8657: { return fetchAndAddOrdered(1); } 8657: Type operator--() noexcept 8657: { return fetchAndSubOrdered(1) - 1; } 8657: Type operator--(int) noexcept 8657: { return fetchAndSubOrdered(1); } 8657: Type operator+=(qptrdiff valueToAdd) noexcept 8657: { return fetchAndAddOrdered(valueToAdd) + valueToAdd; } 8657: Type operator-=(qptrdiff valueToSub) noexcept 8657: { return fetchAndSubOrdered(valueToSub) - valueToSub; } 8657: 8657: 8657: QBasicAtomicPointer() = default; 8657: constexpr QBasicAtomicPointer(Type value) noexcept : _q_value(value) {} 8657: QBasicAtomicPointer(const QBasicAtomicPointer &) = delete; 8657: QBasicAtomicPointer &operator=(const QBasicAtomicPointer &) = delete; 8657: QBasicAtomicPointer &operator=(const QBasicAtomicPointer &) volatile = delete; 8657: 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: # 329 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 3 4 8657: #pragma GCC diagnostic pop 8657: # 329 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 3 4 8657: 8657: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 2 3 4 8657: 8657: 8657: 8657: 8657: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8657: #pragma GCC diagnostic push 8657: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8657: 8657: 8657: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8657: #pragma GCC diagnostic ignored "-Wextra" 8657: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8657: 8657: 8657: 8657: template 8657: class QAtomicInteger : public QBasicAtomicInteger 8657: { 8657: public: 8657: 8657: 8657: constexpr QAtomicInteger(T value = 0) noexcept : QBasicAtomicInteger(value) {} 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: inline QAtomicInteger(const QAtomicInteger &other) noexcept 8657: 8657: : QBasicAtomicInteger() 8657: 8657: { 8657: this->storeRelease(other.loadAcquire()); 8657: } 8657: 8657: inline QAtomicInteger &operator=(const QAtomicInteger &other) noexcept 8657: { 8657: this->storeRelease(other.loadAcquire()); 8657: return *this; 8657: } 8657: # 151 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8657: }; 8657: 8657: class QAtomicInt : public QAtomicInteger 8657: { 8657: public: 8657: 8657: 8657: 8657: 8657: constexpr 8657: 8657: QAtomicInt(int value = 0) noexcept : QAtomicInteger(value) {} 8657: }; 8657: 8657: 8657: template 8657: class QAtomicPointer : public QBasicAtomicPointer 8657: { 8657: public: 8657: 8657: constexpr QAtomicPointer(T *value = 0) noexcept : QBasicAtomicPointer(value) {} 8657: 8657: 8657: 8657: 8657: 8657: 8657: inline QAtomicPointer(const QAtomicPointer &other) noexcept 8657: 8657: : QBasicAtomicPointer() 8657: 8657: { 8657: this->storeRelease(other.loadAcquire()); 8657: } 8657: 8657: inline QAtomicPointer &operator=(const QAtomicPointer &other) noexcept 8657: { 8657: this->storeRelease(other.loadAcquire()); 8657: return *this; 8657: } 8657: # 222 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8657: }; 8657: 8657: 8657: # 224 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8657: #pragma GCC diagnostic pop 8657: # 224 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8657: 8657: # 236 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8657: template 8657: inline void qAtomicAssign(T *&d, T *x) 8657: { 8657: if (d == x) 8657: return; 8657: x->ref.ref(); 8657: if (!d->ref.deref()) 8657: delete d; 8657: d = x; 8657: } 8657: # 255 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8657: template 8657: inline void qAtomicDetach(T *&d) 8657: { 8657: if (d->ref.load() == 1) 8657: return; 8657: T *x = d; 8657: d = new T(*d); 8657: if (!x->ref.deref()) 8657: delete x; 8657: } 8657: 8657: 8657: # 1159 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobalstatic.h" 1 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobalstatic.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 1 3 4 8657: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobalstatic.h" 2 3 4 8657: 8657: 8657: 8657: namespace QtGlobalStatic { 8657: enum GuardValues { 8657: Destroyed = -2, 8657: Initialized = -1, 8657: Uninitialized = 0, 8657: Initializing = 1 8657: }; 8657: } 8657: # 127 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobalstatic.h" 3 4 8657: template 8657: struct QGlobalStatic 8657: { 8657: typedef T Type; 8657: 8657: bool isDestroyed() const { return guard.load() <= QtGlobalStatic::Destroyed; } 8657: bool exists() const { return guard.load() == QtGlobalStatic::Initialized; } 8657: operator Type *() { if (isDestroyed()) return 0; return innerFunction(); } 8657: Type *operator()() { if (isDestroyed()) return 0; return innerFunction(); } 8657: Type *operator->() 8657: { 8657: do { } while ((false) && (!isDestroyed())); 8657: return innerFunction(); 8657: } 8657: Type &operator*() 8657: { 8657: do { } while ((false) && (!isDestroyed())); 8657: return *innerFunction(); 8657: } 8657: }; 8657: # 161 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobalstatic.h" 3 4 8657: 8657: # 1160 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qnumeric.h" 1 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qnumeric.h" 3 4 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) bool qIsInf(double d); 8657: __attribute__((visibility("default"))) bool qIsNaN(double d); 8657: __attribute__((visibility("default"))) bool qIsFinite(double d); 8657: __attribute__((visibility("default"))) bool qIsInf(float f); 8657: __attribute__((visibility("default"))) bool qIsNaN(float f); 8657: __attribute__((visibility("default"))) bool qIsFinite(float f); 8657: __attribute__((visibility("default"))) double qSNaN(); 8657: __attribute__((visibility("default"))) double qQNaN(); 8657: __attribute__((visibility("default"))) double qInf(); 8657: 8657: __attribute__((visibility("default"))) quint32 qFloatDistance(float a, float b); 8657: __attribute__((visibility("default"))) quint64 qFloatDistance(double a, double b); 8657: 8657: 8657: 8657: 8657: 8657: 8657: # 1161 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qversiontagging.h" 1 3 4 8657: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qversiontagging.h" 3 4 8657: 8657: # 88 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qversiontagging.h" 3 4 8657: 8657: # 1162 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qchar.h" 2 3 4 8657: 8657: 8657: 8657: 8657: class QString; 8657: 8657: struct QLatin1Char 8657: { 8657: public: 8657: constexpr inline explicit QLatin1Char(char c) noexcept : ch(c) {} 8657: constexpr inline char toLatin1() const noexcept { return ch; } 8657: constexpr inline ushort unicode() const noexcept { return ushort(uchar(ch)); } 8657: 8657: private: 8657: char ch; 8657: }; 8657: 8657: 8657: class __attribute__((visibility("default"))) QChar { 8657: public: 8657: enum SpecialCharacter { 8657: Null = 0x0000, 8657: Tabulation = 0x0009, 8657: LineFeed = 0x000a, 8657: CarriageReturn = 0x000d, 8657: Space = 0x0020, 8657: Nbsp = 0x00a0, 8657: SoftHyphen = 0x00ad, 8657: ReplacementCharacter = 0xfffd, 8657: ObjectReplacementCharacter = 0xfffc, 8657: ByteOrderMark = 0xfeff, 8657: ByteOrderSwapped = 0xfffe, 8657: ParagraphSeparator = 0x2029, 8657: LineSeparator = 0x2028, 8657: LastValidCodePoint = 0x10ffff 8657: }; 8657: 8657: constexpr QChar() noexcept : ucs(0) {} 8657: constexpr QChar(ushort rc) noexcept : ucs(rc) {} 8657: constexpr QChar(uchar c, uchar r) noexcept : ucs(ushort((r << 8) | c)) {} 8657: constexpr QChar(short rc) noexcept : ucs(ushort(rc)) {} 8657: constexpr QChar(uint rc) noexcept : ucs(ushort(rc & 0xffff)) {} 8657: constexpr QChar(int rc) noexcept : ucs(ushort(rc & 0xffff)) {} 8657: constexpr QChar(SpecialCharacter s) noexcept : ucs(ushort(s)) {} 8657: constexpr QChar(QLatin1Char ch) noexcept : ucs(ch.unicode()) {} 8657: # 98 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qchar.h" 3 4 8657: enum Category 8657: { 8657: Mark_NonSpacing, 8657: Mark_SpacingCombining, 8657: Mark_Enclosing, 8657: 8657: Number_DecimalDigit, 8657: Number_Letter, 8657: Number_Other, 8657: 8657: Separator_Space, 8657: Separator_Line, 8657: Separator_Paragraph, 8657: 8657: Other_Control, 8657: Other_Format, 8657: Other_Surrogate, 8657: Other_PrivateUse, 8657: Other_NotAssigned, 8657: 8657: Letter_Uppercase, 8657: Letter_Lowercase, 8657: Letter_Titlecase, 8657: Letter_Modifier, 8657: Letter_Other, 8657: 8657: Punctuation_Connector, 8657: Punctuation_Dash, 8657: Punctuation_Open, 8657: Punctuation_Close, 8657: Punctuation_InitialQuote, 8657: Punctuation_FinalQuote, 8657: Punctuation_Other, 8657: 8657: Symbol_Math, 8657: Symbol_Currency, 8657: Symbol_Modifier, 8657: Symbol_Other 8657: }; 8657: 8657: enum Script 8657: { 8657: Script_Unknown, 8657: Script_Inherited, 8657: Script_Common, 8657: 8657: Script_Latin, 8657: Script_Greek, 8657: Script_Cyrillic, 8657: Script_Armenian, 8657: Script_Hebrew, 8657: Script_Arabic, 8657: Script_Syriac, 8657: Script_Thaana, 8657: Script_Devanagari, 8657: Script_Bengali, 8657: Script_Gurmukhi, 8657: Script_Gujarati, 8657: Script_Oriya, 8657: Script_Tamil, 8657: Script_Telugu, 8657: Script_Kannada, 8657: Script_Malayalam, 8657: Script_Sinhala, 8657: Script_Thai, 8657: Script_Lao, 8657: Script_Tibetan, 8657: Script_Myanmar, 8657: Script_Georgian, 8657: Script_Hangul, 8657: Script_Ethiopic, 8657: Script_Cherokee, 8657: Script_CanadianAboriginal, 8657: Script_Ogham, 8657: Script_Runic, 8657: Script_Khmer, 8657: Script_Mongolian, 8657: Script_Hiragana, 8657: Script_Katakana, 8657: Script_Bopomofo, 8657: Script_Han, 8657: Script_Yi, 8657: Script_OldItalic, 8657: Script_Gothic, 8657: Script_Deseret, 8657: Script_Tagalog, 8657: Script_Hanunoo, 8657: Script_Buhid, 8657: Script_Tagbanwa, 8657: Script_Coptic, 8657: 8657: 8657: Script_Limbu, 8657: Script_TaiLe, 8657: Script_LinearB, 8657: Script_Ugaritic, 8657: Script_Shavian, 8657: Script_Osmanya, 8657: Script_Cypriot, 8657: Script_Braille, 8657: 8657: 8657: Script_Buginese, 8657: Script_NewTaiLue, 8657: Script_Glagolitic, 8657: Script_Tifinagh, 8657: Script_SylotiNagri, 8657: Script_OldPersian, 8657: Script_Kharoshthi, 8657: 8657: 8657: Script_Balinese, 8657: Script_Cuneiform, 8657: Script_Phoenician, 8657: Script_PhagsPa, 8657: Script_Nko, 8657: 8657: 8657: Script_Sundanese, 8657: Script_Lepcha, 8657: Script_OlChiki, 8657: Script_Vai, 8657: Script_Saurashtra, 8657: Script_KayahLi, 8657: Script_Rejang, 8657: Script_Lycian, 8657: Script_Carian, 8657: Script_Lydian, 8657: Script_Cham, 8657: 8657: 8657: Script_TaiTham, 8657: Script_TaiViet, 8657: Script_Avestan, 8657: Script_EgyptianHieroglyphs, 8657: Script_Samaritan, 8657: Script_Lisu, 8657: Script_Bamum, 8657: Script_Javanese, 8657: Script_MeeteiMayek, 8657: Script_ImperialAramaic, 8657: Script_OldSouthArabian, 8657: Script_InscriptionalParthian, 8657: Script_InscriptionalPahlavi, 8657: Script_OldTurkic, 8657: Script_Kaithi, 8657: 8657: 8657: Script_Batak, 8657: Script_Brahmi, 8657: Script_Mandaic, 8657: 8657: 8657: Script_Chakma, 8657: Script_MeroiticCursive, 8657: Script_MeroiticHieroglyphs, 8657: Script_Miao, 8657: Script_Sharada, 8657: Script_SoraSompeng, 8657: Script_Takri, 8657: 8657: 8657: Script_CaucasianAlbanian, 8657: Script_BassaVah, 8657: Script_Duployan, 8657: Script_Elbasan, 8657: Script_Grantha, 8657: Script_PahawhHmong, 8657: Script_Khojki, 8657: Script_LinearA, 8657: Script_Mahajani, 8657: Script_Manichaean, 8657: Script_MendeKikakui, 8657: Script_Modi, 8657: Script_Mro, 8657: Script_OldNorthArabian, 8657: Script_Nabataean, 8657: Script_Palmyrene, 8657: Script_PauCinHau, 8657: Script_OldPermic, 8657: Script_PsalterPahlavi, 8657: Script_Siddham, 8657: Script_Khudawadi, 8657: Script_Tirhuta, 8657: Script_WarangCiti, 8657: 8657: 8657: Script_Ahom, 8657: Script_AnatolianHieroglyphs, 8657: Script_Hatran, 8657: Script_Multani, 8657: Script_OldHungarian, 8657: Script_SignWriting, 8657: 8657: ScriptCount 8657: }; 8657: 8657: enum Direction 8657: { 8657: DirL, DirR, DirEN, DirES, DirET, DirAN, DirCS, DirB, DirS, DirWS, DirON, 8657: DirLRE, DirLRO, DirAL, DirRLE, DirRLO, DirPDF, DirNSM, DirBN, 8657: DirLRI, DirRLI, DirFSI, DirPDI 8657: }; 8657: 8657: enum Decomposition 8657: { 8657: NoDecomposition, 8657: Canonical, 8657: Font, 8657: NoBreak, 8657: Initial, 8657: Medial, 8657: Final, 8657: Isolated, 8657: Circle, 8657: Super, 8657: Sub, 8657: Vertical, 8657: Wide, 8657: Narrow, 8657: Small, 8657: Square, 8657: Compat, 8657: Fraction 8657: }; 8657: 8657: enum JoiningType { 8657: Joining_None, 8657: Joining_Causing, 8657: Joining_Dual, 8657: Joining_Right, 8657: Joining_Left, 8657: Joining_Transparent 8657: }; 8657: 8657: 8657: enum Joining 8657: { 8657: OtherJoining, Dual, Right, Center 8657: }; 8657: 8657: 8657: enum CombiningClass 8657: { 8657: Combining_BelowLeftAttached = 200, 8657: Combining_BelowAttached = 202, 8657: Combining_BelowRightAttached = 204, 8657: Combining_LeftAttached = 208, 8657: Combining_RightAttached = 210, 8657: Combining_AboveLeftAttached = 212, 8657: Combining_AboveAttached = 214, 8657: Combining_AboveRightAttached = 216, 8657: 8657: Combining_BelowLeft = 218, 8657: Combining_Below = 220, 8657: Combining_BelowRight = 222, 8657: Combining_Left = 224, 8657: Combining_Right = 226, 8657: Combining_AboveLeft = 228, 8657: Combining_Above = 230, 8657: Combining_AboveRight = 232, 8657: 8657: Combining_DoubleBelow = 233, 8657: Combining_DoubleAbove = 234, 8657: Combining_IotaSubscript = 240 8657: }; 8657: 8657: enum UnicodeVersion { 8657: Unicode_Unassigned, 8657: Unicode_1_1, 8657: Unicode_2_0, 8657: Unicode_2_1_2, 8657: Unicode_3_0, 8657: Unicode_3_1, 8657: Unicode_3_2, 8657: Unicode_4_0, 8657: Unicode_4_1, 8657: Unicode_5_0, 8657: Unicode_5_1, 8657: Unicode_5_2, 8657: Unicode_6_0, 8657: Unicode_6_1, 8657: Unicode_6_2, 8657: Unicode_6_3, 8657: Unicode_7_0, 8657: Unicode_8_0 8657: }; 8657: 8657: 8657: inline Category category() const noexcept { return QChar::category(ucs); } 8657: inline Direction direction() const noexcept { return QChar::direction(ucs); } 8657: inline JoiningType joiningType() const noexcept { return QChar::joiningType(ucs); } 8657: 8657: inline Joining joining() const noexcept 8657: { 8657: switch (QChar::joiningType(ucs)) { 8657: case QChar::Joining_Causing: return QChar::Center; 8657: case QChar::Joining_Dual: return QChar::Dual; 8657: case QChar::Joining_Right: return QChar::Right; 8657: case QChar::Joining_None: 8657: case QChar::Joining_Left: 8657: case QChar::Joining_Transparent: 8657: default: return QChar::OtherJoining; 8657: } 8657: } 8657: 8657: inline unsigned char combiningClass() const noexcept { return QChar::combiningClass(ucs); } 8657: 8657: inline QChar mirroredChar() const noexcept { return QChar::mirroredChar(ucs); } 8657: inline bool hasMirrored() const noexcept { return QChar::hasMirrored(ucs); } 8657: 8657: QString decomposition() const; 8657: inline Decomposition decompositionTag() const noexcept { return QChar::decompositionTag(ucs); } 8657: 8657: inline int digitValue() const noexcept { return QChar::digitValue(ucs); } 8657: inline QChar toLower() const noexcept { return QChar::toLower(ucs); } 8657: inline QChar toUpper() const noexcept { return QChar::toUpper(ucs); } 8657: inline QChar toTitleCase() const noexcept { return QChar::toTitleCase(ucs); } 8657: inline QChar toCaseFolded() const noexcept { return QChar::toCaseFolded(ucs); } 8657: 8657: inline Script script() const noexcept { return QChar::script(ucs); } 8657: 8657: inline UnicodeVersion unicodeVersion() const noexcept { return QChar::unicodeVersion(ucs); } 8657: 8657: 8657: 8657: 8657: constexpr inline char toLatin1() const noexcept { return ucs > 0xff ? '\0' : char(ucs); } 8657: constexpr inline ushort unicode() const noexcept { return ucs; } 8657: inline ushort &unicode() noexcept { return ucs; } 8657: 8657: 8657: 8657: 8657: 8657: static constexpr inline QChar fromLatin1(char c) noexcept { return QChar(ushort(uchar(c))); } 8657: 8657: constexpr inline bool isNull() const noexcept { return ucs == 0; } 8657: 8657: inline bool isPrint() const noexcept { return QChar::isPrint(ucs); } 8657: constexpr inline bool isSpace() const noexcept { return QChar::isSpace(ucs); } 8657: inline bool isMark() const noexcept { return QChar::isMark(ucs); } 8657: inline bool isPunct() const noexcept { return QChar::isPunct(ucs); } 8657: inline bool isSymbol() const noexcept { return QChar::isSymbol(ucs); } 8657: constexpr inline bool isLetter() const noexcept { return QChar::isLetter(ucs); } 8657: constexpr inline bool isNumber() const noexcept { return QChar::isNumber(ucs); } 8657: constexpr inline bool isLetterOrNumber() const noexcept { return QChar::isLetterOrNumber(ucs); } 8657: constexpr inline bool isDigit() const noexcept { return QChar::isDigit(ucs); } 8657: constexpr inline bool isLower() const noexcept { return QChar::isLower(ucs); } 8657: constexpr inline bool isUpper() const noexcept { return QChar::isUpper(ucs); } 8657: constexpr inline bool isTitleCase() const noexcept { return QChar::isTitleCase(ucs); } 8657: 8657: constexpr inline bool isNonCharacter() const noexcept { return QChar::isNonCharacter(ucs); } 8657: constexpr inline bool isHighSurrogate() const noexcept { return QChar::isHighSurrogate(ucs); } 8657: constexpr inline bool isLowSurrogate() const noexcept { return QChar::isLowSurrogate(ucs); } 8657: constexpr inline bool isSurrogate() const noexcept { return QChar::isSurrogate(ucs); } 8657: 8657: constexpr inline uchar cell() const noexcept { return uchar(ucs & 0xff); } 8657: constexpr inline uchar row() const noexcept { return uchar((ucs>>8)&0xff); } 8657: inline void setCell(uchar acell) noexcept { ucs = ushort((ucs & 0xff00) + acell); } 8657: inline void setRow(uchar arow) noexcept { ucs = ushort((ushort(arow)<<8) + (ucs&0xff)); } 8657: 8657: static constexpr inline bool isNonCharacter(uint ucs4) noexcept 8657: { 8657: return ucs4 >= 0xfdd0 && (ucs4 <= 0xfdef || (ucs4 & 0xfffe) == 0xfffe); 8657: } 8657: static constexpr inline bool isHighSurrogate(uint ucs4) noexcept 8657: { 8657: return ((ucs4 & 0xfffffc00) == 0xd800); 8657: } 8657: static constexpr inline bool isLowSurrogate(uint ucs4) noexcept 8657: { 8657: return ((ucs4 & 0xfffffc00) == 0xdc00); 8657: } 8657: static constexpr inline bool isSurrogate(uint ucs4) noexcept 8657: { 8657: return (ucs4 - 0xd800u < 2048u); 8657: } 8657: static constexpr inline bool requiresSurrogates(uint ucs4) noexcept 8657: { 8657: return (ucs4 >= 0x10000); 8657: } 8657: static constexpr inline uint surrogateToUcs4(ushort high, ushort low) noexcept 8657: { 8657: return (uint(high)<<10) + low - 0x35fdc00; 8657: } 8657: static constexpr inline uint surrogateToUcs4(QChar high, QChar low) noexcept 8657: { 8657: return surrogateToUcs4(high.ucs, low.ucs); 8657: } 8657: static constexpr inline ushort highSurrogate(uint ucs4) noexcept 8657: { 8657: return ushort((ucs4>>10) + 0xd7c0); 8657: } 8657: static constexpr inline ushort lowSurrogate(uint ucs4) noexcept 8657: { 8657: return ushort(ucs4%0x400 + 0xdc00); 8657: } 8657: 8657: static Category category(uint ucs4) noexcept __attribute__((const)); 8657: static Direction direction(uint ucs4) noexcept __attribute__((const)); 8657: static JoiningType joiningType(uint ucs4) noexcept __attribute__((const)); 8657: 8657: static Joining joining(uint ucs4) noexcept __attribute__((const)); 8657: 8657: static unsigned char combiningClass(uint ucs4) noexcept __attribute__((const)); 8657: 8657: static uint mirroredChar(uint ucs4) noexcept __attribute__((const)); 8657: static bool hasMirrored(uint ucs4) noexcept __attribute__((const)); 8657: 8657: static QString decomposition(uint ucs4); 8657: static Decomposition decompositionTag(uint ucs4) noexcept __attribute__((const)); 8657: 8657: static int digitValue(uint ucs4) noexcept __attribute__((const)); 8657: static uint toLower(uint ucs4) noexcept __attribute__((const)); 8657: static uint toUpper(uint ucs4) noexcept __attribute__((const)); 8657: static uint toTitleCase(uint ucs4) noexcept __attribute__((const)); 8657: static uint toCaseFolded(uint ucs4) noexcept __attribute__((const)); 8657: 8657: static Script script(uint ucs4) noexcept __attribute__((const)); 8657: 8657: static UnicodeVersion unicodeVersion(uint ucs4) noexcept __attribute__((const)); 8657: 8657: static UnicodeVersion currentUnicodeVersion() noexcept __attribute__((const)); 8657: 8657: static bool isPrint(uint ucs4) noexcept __attribute__((const)); 8657: static constexpr inline bool isSpace(uint ucs4) noexcept __attribute__((const)) 8657: { 8657: 8657: return ucs4 == 0x20 || (ucs4 <= 0x0d && ucs4 >= 0x09) 8657: || (ucs4 > 127 && (ucs4 == 0x85 || ucs4 == 0xa0 || QChar::isSpace_helper(ucs4))); 8657: } 8657: static bool isMark(uint ucs4) noexcept __attribute__((const)); 8657: static bool isPunct(uint ucs4) noexcept __attribute__((const)); 8657: static bool isSymbol(uint ucs4) noexcept __attribute__((const)); 8657: static constexpr inline bool isLetter(uint ucs4) noexcept __attribute__((const)) 8657: { 8657: return (ucs4 >= 'A' && ucs4 <= 'z' && (ucs4 >= 'a' || ucs4 <= 'Z')) 8657: || (ucs4 > 127 && QChar::isLetter_helper(ucs4)); 8657: } 8657: static constexpr inline bool isNumber(uint ucs4) noexcept __attribute__((const)) 8657: { return (ucs4 <= '9' && ucs4 >= '0') || (ucs4 > 127 && QChar::isNumber_helper(ucs4)); } 8657: static constexpr inline bool isLetterOrNumber(uint ucs4) noexcept __attribute__((const)) 8657: { 8657: return (ucs4 >= 'A' && ucs4 <= 'z' && (ucs4 >= 'a' || ucs4 <= 'Z')) 8657: || (ucs4 >= '0' && ucs4 <= '9') 8657: || (ucs4 > 127 && QChar::isLetterOrNumber_helper(ucs4)); 8657: } 8657: static constexpr inline bool isDigit(uint ucs4) noexcept __attribute__((const)) 8657: { return (ucs4 <= '9' && ucs4 >= '0') || (ucs4 > 127 && QChar::category(ucs4) == Number_DecimalDigit); } 8657: static constexpr inline bool isLower(uint ucs4) noexcept __attribute__((const)) 8657: { return (ucs4 <= 'z' && ucs4 >= 'a') || (ucs4 > 127 && QChar::category(ucs4) == Letter_Lowercase); } 8657: static constexpr inline bool isUpper(uint ucs4) noexcept __attribute__((const)) 8657: { return (ucs4 <= 'Z' && ucs4 >= 'A') || (ucs4 > 127 && QChar::category(ucs4) == Letter_Uppercase); } 8657: static constexpr inline bool isTitleCase(uint ucs4) noexcept __attribute__((const)) 8657: { return ucs4 > 127 && QChar::category(ucs4) == Letter_Titlecase; } 8657: 8657: private: 8657: static bool isSpace_helper(uint ucs4) noexcept __attribute__((const)); 8657: static bool isLetter_helper(uint ucs4) noexcept __attribute__((const)); 8657: static bool isNumber_helper(uint ucs4) noexcept __attribute__((const)); 8657: static bool isLetterOrNumber_helper(uint ucs4) noexcept __attribute__((const)); 8657: 8657: 8657: QChar(char c) noexcept; 8657: QChar(uchar c) noexcept; 8657: 8657: 8657: friend constexpr bool operator==(QChar, QChar) noexcept; 8657: friend constexpr bool operator< (QChar, QChar) noexcept; 8657: ushort ucs; 8657: }; 8657: 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QChar)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QChar >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QChar) }; static inline const char *name() { return "QChar"; } }; 8657: 8657: constexpr inline bool operator==(QChar c1, QChar c2) noexcept { return c1.ucs == c2.ucs; } 8657: constexpr inline bool operator< (QChar c1, QChar c2) noexcept { return c1.ucs < c2.ucs; } 8657: 8657: constexpr inline bool operator!=(QChar c1, QChar c2) noexcept { return !operator==(c1, c2); } 8657: constexpr inline bool operator>=(QChar c1, QChar c2) noexcept { return !operator< (c1, c2); } 8657: constexpr inline bool operator> (QChar c1, QChar c2) noexcept { return operator< (c2, c1); } 8657: constexpr inline bool operator<=(QChar c1, QChar c2) noexcept { return !operator< (c2, c1); } 8657: 8657: 8657: constexpr inline bool operator==(QChar lhs, std::nullptr_t) noexcept { return lhs.isNull(); } 8657: constexpr inline bool operator< (QChar, std::nullptr_t) noexcept { return false; } 8657: constexpr inline bool operator==(std::nullptr_t, QChar rhs) noexcept { return rhs.isNull(); } 8657: constexpr inline bool operator< (std::nullptr_t, QChar rhs) noexcept { return !rhs.isNull(); } 8657: 8657: constexpr inline bool operator!=(QChar lhs, std::nullptr_t) noexcept { return !operator==(lhs, nullptr); } 8657: constexpr inline bool operator>=(QChar lhs, std::nullptr_t) noexcept { return !operator< (lhs, nullptr); } 8657: constexpr inline bool operator> (QChar lhs, std::nullptr_t) noexcept { return operator< (nullptr, lhs); } 8657: constexpr inline bool operator<=(QChar lhs, std::nullptr_t) noexcept { return !operator< (nullptr, lhs); } 8657: 8657: constexpr inline bool operator!=(std::nullptr_t, QChar rhs) noexcept { return !operator==(nullptr, rhs); } 8657: constexpr inline bool operator>=(std::nullptr_t, QChar rhs) noexcept { return !operator< (nullptr, rhs); } 8657: constexpr inline bool operator> (std::nullptr_t, QChar rhs) noexcept { return operator< (rhs, nullptr); } 8657: constexpr inline bool operator<=(std::nullptr_t, QChar rhs) noexcept { return !operator< (rhs, nullptr); } 8657: 8657: 8657: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, QChar); 8657: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QChar &); 8657: 8657: 8657: 8657: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 1 3 4 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrefcount.h" 1 3 4 8657: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrefcount.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 1 3 4 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrefcount.h" 2 3 4 8657: 8657: 8657: 8657: 8657: namespace QtPrivate 8657: { 8657: 8657: class RefCount 8657: { 8657: public: 8657: inline bool ref() noexcept { 8657: int count = atomic.load(); 8657: 8657: if (count == 0) 8657: return false; 8657: 8657: if (count != -1) 8657: atomic.ref(); 8657: return true; 8657: } 8657: 8657: inline bool deref() noexcept { 8657: int count = atomic.load(); 8657: 8657: if (count == 0) 8657: return false; 8657: 8657: if (count == -1) 8657: return true; 8657: return atomic.deref(); 8657: } 8657: 8657: 8657: bool setSharable(bool sharable) noexcept 8657: { 8657: do { } while ((false) && (!isShared())); 8657: if (sharable) 8657: return atomic.testAndSetRelaxed(0, 1); 8657: else 8657: return atomic.testAndSetRelaxed(1, 0); 8657: } 8657: 8657: bool isSharable() const noexcept 8657: { 8657: 8657: return atomic.load() != 0; 8657: } 8657: 8657: 8657: bool isStatic() const noexcept 8657: { 8657: 8657: return atomic.load() == -1; 8657: } 8657: 8657: bool isShared() const noexcept 8657: { 8657: int count = atomic.load(); 8657: return (count != 1) && (count != 0); 8657: } 8657: 8657: void initializeOwned() noexcept { atomic.store(1); } 8657: void initializeUnsharable() noexcept { atomic.store(0); } 8657: 8657: QBasicAtomicInt atomic; 8657: }; 8657: 8657: } 8657: 8657: 8657: 8657: 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qnamespace.h" 1 3 4 8657: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qnamespace.h" 3 4 8657: 8657: 8657: 8657: struct QMetaObject; 8657: const QMetaObject *qt_getQtMetaObject() noexcept; 8657: # 64 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qnamespace.h" 3 4 8657: namespace 8657: 8657: 8657: 8657: Qt { 8657: 8657: 8657: 8657: 8657: 8657: 8657: enum GlobalColor { 8657: color0, 8657: color1, 8657: black, 8657: white, 8657: darkGray, 8657: gray, 8657: lightGray, 8657: red, 8657: green, 8657: blue, 8657: cyan, 8657: magenta, 8657: yellow, 8657: darkRed, 8657: darkGreen, 8657: darkBlue, 8657: darkCyan, 8657: darkMagenta, 8657: darkYellow, 8657: transparent 8657: }; 8657: 8657: enum KeyboardModifier { 8657: NoModifier = 0x00000000, 8657: ShiftModifier = 0x02000000, 8657: ControlModifier = 0x04000000, 8657: AltModifier = 0x08000000, 8657: MetaModifier = 0x10000000, 8657: KeypadModifier = 0x20000000, 8657: GroupSwitchModifier = 0x40000000, 8657: 8657: KeyboardModifierMask = 0xfe000000 8657: }; 8657: typedef QFlags KeyboardModifiers; 8657: 8657: 8657: 8657: 8657: 8657: 8657: enum Modifier { 8657: META = Qt::MetaModifier, 8657: SHIFT = Qt::ShiftModifier, 8657: CTRL = Qt::ControlModifier, 8657: ALT = Qt::AltModifier, 8657: MODIFIER_MASK = KeyboardModifierMask, 8657: UNICODE_ACCEL = 0x00000000 8657: }; 8657: 8657: enum MouseButton { 8657: NoButton = 0x00000000, 8657: LeftButton = 0x00000001, 8657: RightButton = 0x00000002, 8657: MidButton = 0x00000004, 8657: MiddleButton = MidButton, 8657: BackButton = 0x00000008, 8657: XButton1 = BackButton, 8657: ExtraButton1 = XButton1, 8657: ForwardButton = 0x00000010, 8657: XButton2 = ForwardButton, 8657: ExtraButton2 = ForwardButton, 8657: TaskButton = 0x00000020, 8657: ExtraButton3 = TaskButton, 8657: ExtraButton4 = 0x00000040, 8657: ExtraButton5 = 0x00000080, 8657: ExtraButton6 = 0x00000100, 8657: ExtraButton7 = 0x00000200, 8657: ExtraButton8 = 0x00000400, 8657: ExtraButton9 = 0x00000800, 8657: ExtraButton10 = 0x00001000, 8657: ExtraButton11 = 0x00002000, 8657: ExtraButton12 = 0x00004000, 8657: ExtraButton13 = 0x00008000, 8657: ExtraButton14 = 0x00010000, 8657: ExtraButton15 = 0x00020000, 8657: ExtraButton16 = 0x00040000, 8657: ExtraButton17 = 0x00080000, 8657: ExtraButton18 = 0x00100000, 8657: ExtraButton19 = 0x00200000, 8657: ExtraButton20 = 0x00400000, 8657: ExtraButton21 = 0x00800000, 8657: ExtraButton22 = 0x01000000, 8657: ExtraButton23 = 0x02000000, 8657: ExtraButton24 = 0x04000000, 8657: AllButtons = 0x07ffffff, 8657: MaxMouseButton = ExtraButton24, 8657: 8657: MouseButtonMask = 0xffffffff 8657: }; 8657: typedef QFlags MouseButtons; 8657: 8657: enum Orientation { 8657: Horizontal = 0x1, 8657: Vertical = 0x2 8657: }; 8657: 8657: typedef QFlags Orientations; 8657: 8657: enum FocusPolicy { 8657: NoFocus = 0, 8657: TabFocus = 0x1, 8657: ClickFocus = 0x2, 8657: StrongFocus = TabFocus | ClickFocus | 0x8, 8657: WheelFocus = StrongFocus | 0x4 8657: }; 8657: 8657: enum TabFocusBehavior { 8657: NoTabFocus = 0x00, 8657: TabFocusTextControls = 0x01, 8657: TabFocusListControls = 0x02, 8657: TabFocusAllControls = 0xff 8657: }; 8657: 8657: enum SortOrder { 8657: AscendingOrder, 8657: DescendingOrder 8657: }; 8657: 8657: enum TileRule { 8657: StretchTile, 8657: RepeatTile, 8657: RoundTile 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: enum AlignmentFlag { 8657: AlignLeft = 0x0001, 8657: AlignLeading = AlignLeft, 8657: AlignRight = 0x0002, 8657: AlignTrailing = AlignRight, 8657: AlignHCenter = 0x0004, 8657: AlignJustify = 0x0008, 8657: AlignAbsolute = 0x0010, 8657: AlignHorizontal_Mask = AlignLeft | AlignRight | AlignHCenter | AlignJustify | AlignAbsolute, 8657: 8657: AlignTop = 0x0020, 8657: AlignBottom = 0x0040, 8657: AlignVCenter = 0x0080, 8657: AlignBaseline = 0x0100, 8657: 8657: 8657: 8657: 8657: AlignVertical_Mask = AlignTop | AlignBottom | AlignVCenter | AlignBaseline, 8657: 8657: AlignCenter = AlignVCenter | AlignHCenter 8657: }; 8657: 8657: typedef QFlags Alignment; 8657: 8657: enum TextFlag { 8657: TextSingleLine = 0x0100, 8657: TextDontClip = 0x0200, 8657: TextExpandTabs = 0x0400, 8657: TextShowMnemonic = 0x0800, 8657: TextWordWrap = 0x1000, 8657: TextWrapAnywhere = 0x2000, 8657: TextDontPrint = 0x4000, 8657: TextIncludeTrailingSpaces = 0x08000000, 8657: TextHideMnemonic = 0x8000, 8657: TextJustificationForced = 0x10000, 8657: TextForceLeftToRight = 0x20000, 8657: TextForceRightToLeft = 0x40000, 8657: 8657: 8657: TextLongestVariant = 0x80000, 8657: TextBypassShaping = 0x100000 8657: }; 8657: 8657: enum TextElideMode { 8657: ElideLeft, 8657: ElideRight, 8657: ElideMiddle, 8657: ElideNone 8657: }; 8657: 8657: enum WhiteSpaceMode { 8657: WhiteSpaceNormal, 8657: WhiteSpacePre, 8657: WhiteSpaceNoWrap, 8657: WhiteSpaceModeUndefined = -1 8657: }; 8657: 8657: enum HitTestAccuracy { ExactHit, FuzzyHit }; 8657: 8657: enum WindowType { 8657: Widget = 0x00000000, 8657: Window = 0x00000001, 8657: Dialog = 0x00000002 | Window, 8657: Sheet = 0x00000004 | Window, 8657: Drawer = Sheet | Dialog, 8657: Popup = 0x00000008 | Window, 8657: Tool = Popup | Dialog, 8657: ToolTip = Popup | Sheet, 8657: SplashScreen = ToolTip | Dialog, 8657: Desktop = 0x00000010 | Window, 8657: SubWindow = 0x00000012, 8657: ForeignWindow = 0x00000020 | Window, 8657: CoverWindow = 0x00000040 | Window, 8657: 8657: WindowType_Mask = 0x000000ff, 8657: MSWindowsFixedSizeDialogHint = 0x00000100, 8657: MSWindowsOwnDC = 0x00000200, 8657: BypassWindowManagerHint = 0x00000400, 8657: X11BypassWindowManagerHint = BypassWindowManagerHint, 8657: FramelessWindowHint = 0x00000800, 8657: WindowTitleHint = 0x00001000, 8657: WindowSystemMenuHint = 0x00002000, 8657: WindowMinimizeButtonHint = 0x00004000, 8657: WindowMaximizeButtonHint = 0x00008000, 8657: WindowMinMaxButtonsHint = WindowMinimizeButtonHint | WindowMaximizeButtonHint, 8657: WindowContextHelpButtonHint = 0x00010000, 8657: WindowShadeButtonHint = 0x00020000, 8657: WindowStaysOnTopHint = 0x00040000, 8657: WindowTransparentForInput = 0x00080000, 8657: WindowOverridesSystemGestures = 0x00100000, 8657: WindowDoesNotAcceptFocus = 0x00200000, 8657: MaximizeUsingFullscreenGeometryHint = 0x00400000, 8657: 8657: CustomizeWindowHint = 0x02000000, 8657: WindowStaysOnBottomHint = 0x04000000, 8657: WindowCloseButtonHint = 0x08000000, 8657: MacWindowToolBarButtonHint = 0x10000000, 8657: BypassGraphicsProxyWidget = 0x20000000, 8657: NoDropShadowWindowHint = 0x40000000, 8657: WindowFullscreenButtonHint = 0x80000000 8657: }; 8657: 8657: typedef QFlags WindowFlags; 8657: 8657: enum WindowState { 8657: WindowNoState = 0x00000000, 8657: WindowMinimized = 0x00000001, 8657: WindowMaximized = 0x00000002, 8657: WindowFullScreen = 0x00000004, 8657: WindowActive = 0x00000008 8657: }; 8657: 8657: typedef QFlags WindowStates; 8657: 8657: enum ApplicationState { 8657: ApplicationSuspended = 0x00000000, 8657: ApplicationHidden = 0x00000001, 8657: ApplicationInactive = 0x00000002, 8657: ApplicationActive = 0x00000004 8657: }; 8657: 8657: typedef QFlags ApplicationStates; 8657: 8657: enum ScreenOrientation { 8657: PrimaryOrientation = 0x00000000, 8657: PortraitOrientation = 0x00000001, 8657: LandscapeOrientation = 0x00000002, 8657: InvertedPortraitOrientation = 0x00000004, 8657: InvertedLandscapeOrientation = 0x00000008 8657: }; 8657: 8657: typedef QFlags ScreenOrientations; 8657: 8657: enum WidgetAttribute { 8657: WA_Disabled = 0, 8657: WA_UnderMouse = 1, 8657: WA_MouseTracking = 2, 8657: WA_ContentsPropagated = 3, 8657: WA_OpaquePaintEvent = 4, 8657: WA_NoBackground = WA_OpaquePaintEvent, 8657: WA_StaticContents = 5, 8657: WA_LaidOut = 7, 8657: WA_PaintOnScreen = 8, 8657: WA_NoSystemBackground = 9, 8657: WA_UpdatesDisabled = 10, 8657: WA_Mapped = 11, 8657: WA_MacNoClickThrough = 12, 8657: WA_InputMethodEnabled = 14, 8657: WA_WState_Visible = 15, 8657: WA_WState_Hidden = 16, 8657: 8657: WA_ForceDisabled = 32, 8657: WA_KeyCompression = 33, 8657: WA_PendingMoveEvent = 34, 8657: WA_PendingResizeEvent = 35, 8657: WA_SetPalette = 36, 8657: WA_SetFont = 37, 8657: WA_SetCursor = 38, 8657: WA_NoChildEventsFromChildren = 39, 8657: WA_WindowModified = 41, 8657: WA_Resized = 42, 8657: WA_Moved = 43, 8657: WA_PendingUpdate = 44, 8657: WA_InvalidSize = 45, 8657: WA_MacBrushedMetal = 46, 8657: WA_MacMetalStyle = WA_MacBrushedMetal, 8657: WA_CustomWhatsThis = 47, 8657: WA_LayoutOnEntireRect = 48, 8657: WA_OutsideWSRange = 49, 8657: WA_GrabbedShortcut = 50, 8657: WA_TransparentForMouseEvents = 51, 8657: WA_PaintUnclipped = 52, 8657: WA_SetWindowIcon = 53, 8657: WA_NoMouseReplay = 54, 8657: WA_DeleteOnClose = 55, 8657: WA_RightToLeft = 56, 8657: WA_SetLayoutDirection = 57, 8657: WA_NoChildEventsForParent = 58, 8657: WA_ForceUpdatesDisabled = 59, 8657: 8657: WA_WState_Created = 60, 8657: WA_WState_CompressKeys = 61, 8657: WA_WState_InPaintEvent = 62, 8657: WA_WState_Reparented = 63, 8657: WA_WState_ConfigPending = 64, 8657: WA_WState_Polished = 66, 8657: WA_WState_DND = 67, 8657: WA_WState_OwnSizePolicy = 68, 8657: WA_WState_ExplicitShowHide = 69, 8657: 8657: WA_ShowModal = 70, 8657: WA_MouseNoMask = 71, 8657: WA_GroupLeader = 72, 8657: WA_NoMousePropagation = 73, 8657: WA_Hover = 74, 8657: WA_InputMethodTransparent = 75, 8657: WA_QuitOnClose = 76, 8657: 8657: WA_KeyboardFocusChange = 77, 8657: 8657: WA_AcceptDrops = 78, 8657: WA_DropSiteRegistered = 79, 8657: WA_ForceAcceptDrops = WA_DropSiteRegistered, 8657: 8657: WA_WindowPropagation = 80, 8657: 8657: WA_NoX11EventCompression = 81, 8657: WA_TintedBackground = 82, 8657: WA_X11OpenGLOverlay = 83, 8657: WA_AlwaysShowToolTips = 84, 8657: WA_MacOpaqueSizeGrip = 85, 8657: WA_SetStyle = 86, 8657: 8657: WA_SetLocale = 87, 8657: WA_MacShowFocusRect = 88, 8657: 8657: WA_MacNormalSize = 89, 8657: WA_MacSmallSize = 90, 8657: WA_MacMiniSize = 91, 8657: 8657: WA_LayoutUsesWidgetRect = 92, 8657: WA_StyledBackground = 93, 8657: WA_MSWindowsUseDirect3D = 94, 8657: WA_CanHostQMdiSubWindowTitleBar = 95, 8657: 8657: WA_MacAlwaysShowToolWindow = 96, 8657: 8657: WA_StyleSheet = 97, 8657: 8657: WA_ShowWithoutActivating = 98, 8657: 8657: WA_X11BypassTransientForHint = 99, 8657: 8657: WA_NativeWindow = 100, 8657: WA_DontCreateNativeAncestors = 101, 8657: 8657: WA_MacVariableSize = 102, 8657: 8657: WA_DontShowOnScreen = 103, 8657: 8657: 8657: WA_X11NetWmWindowTypeDesktop = 104, 8657: WA_X11NetWmWindowTypeDock = 105, 8657: WA_X11NetWmWindowTypeToolBar = 106, 8657: WA_X11NetWmWindowTypeMenu = 107, 8657: WA_X11NetWmWindowTypeUtility = 108, 8657: WA_X11NetWmWindowTypeSplash = 109, 8657: WA_X11NetWmWindowTypeDialog = 110, 8657: WA_X11NetWmWindowTypeDropDownMenu = 111, 8657: WA_X11NetWmWindowTypePopupMenu = 112, 8657: WA_X11NetWmWindowTypeToolTip = 113, 8657: WA_X11NetWmWindowTypeNotification = 114, 8657: WA_X11NetWmWindowTypeCombo = 115, 8657: WA_X11NetWmWindowTypeDND = 116, 8657: 8657: WA_MacFrameworkScaled = 117, 8657: 8657: WA_SetWindowModality = 118, 8657: WA_WState_WindowOpacitySet = 119, 8657: WA_TranslucentBackground = 120, 8657: 8657: WA_AcceptTouchEvents = 121, 8657: WA_WState_AcceptedTouchBeginEvent = 122, 8657: WA_TouchPadAcceptSingleTouchEvents = 123, 8657: 8657: WA_X11DoNotAcceptFocus = 126, 8657: WA_MacNoShadow = 127, 8657: 8657: WA_AlwaysStackOnTop = 128, 8657: 8657: WA_TabletTracking = 129, 8657: 8657: 8657: WA_AttributeCount 8657: }; 8657: 8657: enum ApplicationAttribute 8657: { 8657: AA_ImmediateWidgetCreation = 0, 8657: AA_MSWindowsUseDirect3DByDefault = 1, 8657: AA_DontShowIconsInMenus = 2, 8657: AA_NativeWindows = 3, 8657: AA_DontCreateNativeWidgetSiblings = 4, 8657: AA_PluginApplication = 5, 8657: AA_MacPluginApplication = AA_PluginApplication, 8657: AA_DontUseNativeMenuBar = 6, 8657: AA_MacDontSwapCtrlAndMeta = 7, 8657: AA_Use96Dpi = 8, 8657: AA_X11InitThreads = 10, 8657: AA_SynthesizeTouchForUnhandledMouseEvents = 11, 8657: AA_SynthesizeMouseForUnhandledTouchEvents = 12, 8657: AA_UseHighDpiPixmaps = 13, 8657: AA_ForceRasterWidgets = 14, 8657: AA_UseDesktopOpenGL = 15, 8657: AA_UseOpenGLES = 16, 8657: AA_UseSoftwareOpenGL = 17, 8657: AA_ShareOpenGLContexts = 18, 8657: AA_SetPalette = 19, 8657: AA_EnableHighDpiScaling = 20, 8657: AA_DisableHighDpiScaling = 21, 8657: AA_UseStyleSheetPropagationInWidgetStyles = 22, 8657: AA_DontUseNativeDialogs = 23, 8657: AA_SynthesizeMouseForUnhandledTabletEvents = 24, 8657: AA_CompressHighFrequencyEvents = 25, 8657: AA_DontCheckOpenGLContextThreadAffinity = 26, 8657: AA_DisableShaderDiskCache = 27, 8657: 8657: 8657: AA_AttributeCount 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: enum ImageConversionFlag { 8657: ColorMode_Mask = 0x00000003, 8657: AutoColor = 0x00000000, 8657: ColorOnly = 0x00000003, 8657: MonoOnly = 0x00000002, 8657: 8657: 8657: AlphaDither_Mask = 0x0000000c, 8657: ThresholdAlphaDither = 0x00000000, 8657: OrderedAlphaDither = 0x00000004, 8657: DiffuseAlphaDither = 0x00000008, 8657: NoAlpha = 0x0000000c, 8657: 8657: Dither_Mask = 0x00000030, 8657: DiffuseDither = 0x00000000, 8657: OrderedDither = 0x00000010, 8657: ThresholdDither = 0x00000020, 8657: 8657: 8657: DitherMode_Mask = 0x000000c0, 8657: AutoDither = 0x00000000, 8657: PreferDither = 0x00000040, 8657: AvoidDither = 0x00000080, 8657: 8657: NoOpaqueDetection = 0x00000100, 8657: NoFormatConversion = 0x00000200 8657: }; 8657: typedef QFlags ImageConversionFlags; 8657: 8657: enum BGMode { 8657: TransparentMode, 8657: OpaqueMode 8657: }; 8657: 8657: enum Key { 8657: Key_Escape = 0x01000000, 8657: Key_Tab = 0x01000001, 8657: Key_Backtab = 0x01000002, 8657: Key_Backspace = 0x01000003, 8657: Key_Return = 0x01000004, 8657: Key_Enter = 0x01000005, 8657: Key_Insert = 0x01000006, 8657: Key_Delete = 0x01000007, 8657: Key_Pause = 0x01000008, 8657: Key_Print = 0x01000009, 8657: Key_SysReq = 0x0100000a, 8657: Key_Clear = 0x0100000b, 8657: Key_Home = 0x01000010, 8657: Key_End = 0x01000011, 8657: Key_Left = 0x01000012, 8657: Key_Up = 0x01000013, 8657: Key_Right = 0x01000014, 8657: Key_Down = 0x01000015, 8657: Key_PageUp = 0x01000016, 8657: Key_PageDown = 0x01000017, 8657: Key_Shift = 0x01000020, 8657: Key_Control = 0x01000021, 8657: Key_Meta = 0x01000022, 8657: Key_Alt = 0x01000023, 8657: Key_CapsLock = 0x01000024, 8657: Key_NumLock = 0x01000025, 8657: Key_ScrollLock = 0x01000026, 8657: Key_F1 = 0x01000030, 8657: Key_F2 = 0x01000031, 8657: Key_F3 = 0x01000032, 8657: Key_F4 = 0x01000033, 8657: Key_F5 = 0x01000034, 8657: Key_F6 = 0x01000035, 8657: Key_F7 = 0x01000036, 8657: Key_F8 = 0x01000037, 8657: Key_F9 = 0x01000038, 8657: Key_F10 = 0x01000039, 8657: Key_F11 = 0x0100003a, 8657: Key_F12 = 0x0100003b, 8657: Key_F13 = 0x0100003c, 8657: Key_F14 = 0x0100003d, 8657: Key_F15 = 0x0100003e, 8657: Key_F16 = 0x0100003f, 8657: Key_F17 = 0x01000040, 8657: Key_F18 = 0x01000041, 8657: Key_F19 = 0x01000042, 8657: Key_F20 = 0x01000043, 8657: Key_F21 = 0x01000044, 8657: Key_F22 = 0x01000045, 8657: Key_F23 = 0x01000046, 8657: Key_F24 = 0x01000047, 8657: Key_F25 = 0x01000048, 8657: Key_F26 = 0x01000049, 8657: Key_F27 = 0x0100004a, 8657: Key_F28 = 0x0100004b, 8657: Key_F29 = 0x0100004c, 8657: Key_F30 = 0x0100004d, 8657: Key_F31 = 0x0100004e, 8657: Key_F32 = 0x0100004f, 8657: Key_F33 = 0x01000050, 8657: Key_F34 = 0x01000051, 8657: Key_F35 = 0x01000052, 8657: Key_Super_L = 0x01000053, 8657: Key_Super_R = 0x01000054, 8657: Key_Menu = 0x01000055, 8657: Key_Hyper_L = 0x01000056, 8657: Key_Hyper_R = 0x01000057, 8657: Key_Help = 0x01000058, 8657: Key_Direction_L = 0x01000059, 8657: Key_Direction_R = 0x01000060, 8657: Key_Space = 0x20, 8657: Key_Any = Key_Space, 8657: Key_Exclam = 0x21, 8657: Key_QuoteDbl = 0x22, 8657: Key_NumberSign = 0x23, 8657: Key_Dollar = 0x24, 8657: Key_Percent = 0x25, 8657: Key_Ampersand = 0x26, 8657: Key_Apostrophe = 0x27, 8657: Key_ParenLeft = 0x28, 8657: Key_ParenRight = 0x29, 8657: Key_Asterisk = 0x2a, 8657: Key_Plus = 0x2b, 8657: Key_Comma = 0x2c, 8657: Key_Minus = 0x2d, 8657: Key_Period = 0x2e, 8657: Key_Slash = 0x2f, 8657: Key_0 = 0x30, 8657: Key_1 = 0x31, 8657: Key_2 = 0x32, 8657: Key_3 = 0x33, 8657: Key_4 = 0x34, 8657: Key_5 = 0x35, 8657: Key_6 = 0x36, 8657: Key_7 = 0x37, 8657: Key_8 = 0x38, 8657: Key_9 = 0x39, 8657: Key_Colon = 0x3a, 8657: Key_Semicolon = 0x3b, 8657: Key_Less = 0x3c, 8657: Key_Equal = 0x3d, 8657: Key_Greater = 0x3e, 8657: Key_Question = 0x3f, 8657: Key_At = 0x40, 8657: Key_A = 0x41, 8657: Key_B = 0x42, 8657: Key_C = 0x43, 8657: Key_D = 0x44, 8657: Key_E = 0x45, 8657: Key_F = 0x46, 8657: Key_G = 0x47, 8657: Key_H = 0x48, 8657: Key_I = 0x49, 8657: Key_J = 0x4a, 8657: Key_K = 0x4b, 8657: Key_L = 0x4c, 8657: Key_M = 0x4d, 8657: Key_N = 0x4e, 8657: Key_O = 0x4f, 8657: Key_P = 0x50, 8657: Key_Q = 0x51, 8657: Key_R = 0x52, 8657: Key_S = 0x53, 8657: Key_T = 0x54, 8657: Key_U = 0x55, 8657: Key_V = 0x56, 8657: Key_W = 0x57, 8657: Key_X = 0x58, 8657: Key_Y = 0x59, 8657: Key_Z = 0x5a, 8657: Key_BracketLeft = 0x5b, 8657: Key_Backslash = 0x5c, 8657: Key_BracketRight = 0x5d, 8657: Key_AsciiCircum = 0x5e, 8657: Key_Underscore = 0x5f, 8657: Key_QuoteLeft = 0x60, 8657: Key_BraceLeft = 0x7b, 8657: Key_Bar = 0x7c, 8657: Key_BraceRight = 0x7d, 8657: Key_AsciiTilde = 0x7e, 8657: 8657: Key_nobreakspace = 0x0a0, 8657: Key_exclamdown = 0x0a1, 8657: Key_cent = 0x0a2, 8657: Key_sterling = 0x0a3, 8657: Key_currency = 0x0a4, 8657: Key_yen = 0x0a5, 8657: Key_brokenbar = 0x0a6, 8657: Key_section = 0x0a7, 8657: Key_diaeresis = 0x0a8, 8657: Key_copyright = 0x0a9, 8657: Key_ordfeminine = 0x0aa, 8657: Key_guillemotleft = 0x0ab, 8657: Key_notsign = 0x0ac, 8657: Key_hyphen = 0x0ad, 8657: Key_registered = 0x0ae, 8657: Key_macron = 0x0af, 8657: Key_degree = 0x0b0, 8657: Key_plusminus = 0x0b1, 8657: Key_twosuperior = 0x0b2, 8657: Key_threesuperior = 0x0b3, 8657: Key_acute = 0x0b4, 8657: Key_mu = 0x0b5, 8657: Key_paragraph = 0x0b6, 8657: Key_periodcentered = 0x0b7, 8657: Key_cedilla = 0x0b8, 8657: Key_onesuperior = 0x0b9, 8657: Key_masculine = 0x0ba, 8657: Key_guillemotright = 0x0bb, 8657: Key_onequarter = 0x0bc, 8657: Key_onehalf = 0x0bd, 8657: Key_threequarters = 0x0be, 8657: Key_questiondown = 0x0bf, 8657: Key_Agrave = 0x0c0, 8657: Key_Aacute = 0x0c1, 8657: Key_Acircumflex = 0x0c2, 8657: Key_Atilde = 0x0c3, 8657: Key_Adiaeresis = 0x0c4, 8657: Key_Aring = 0x0c5, 8657: Key_AE = 0x0c6, 8657: Key_Ccedilla = 0x0c7, 8657: Key_Egrave = 0x0c8, 8657: Key_Eacute = 0x0c9, 8657: Key_Ecircumflex = 0x0ca, 8657: Key_Ediaeresis = 0x0cb, 8657: Key_Igrave = 0x0cc, 8657: Key_Iacute = 0x0cd, 8657: Key_Icircumflex = 0x0ce, 8657: Key_Idiaeresis = 0x0cf, 8657: Key_ETH = 0x0d0, 8657: Key_Ntilde = 0x0d1, 8657: Key_Ograve = 0x0d2, 8657: Key_Oacute = 0x0d3, 8657: Key_Ocircumflex = 0x0d4, 8657: Key_Otilde = 0x0d5, 8657: Key_Odiaeresis = 0x0d6, 8657: Key_multiply = 0x0d7, 8657: Key_Ooblique = 0x0d8, 8657: Key_Ugrave = 0x0d9, 8657: Key_Uacute = 0x0da, 8657: Key_Ucircumflex = 0x0db, 8657: Key_Udiaeresis = 0x0dc, 8657: Key_Yacute = 0x0dd, 8657: Key_THORN = 0x0de, 8657: Key_ssharp = 0x0df, 8657: Key_division = 0x0f7, 8657: Key_ydiaeresis = 0x0ff, 8657: 8657: 8657: 8657: 8657: 8657: 8657: Key_AltGr = 0x01001103, 8657: Key_Multi_key = 0x01001120, 8657: Key_Codeinput = 0x01001137, 8657: Key_SingleCandidate = 0x0100113c, 8657: Key_MultipleCandidate = 0x0100113d, 8657: Key_PreviousCandidate = 0x0100113e, 8657: 8657: 8657: Key_Mode_switch = 0x0100117e, 8657: 8657: 8657: 8657: Key_Kanji = 0x01001121, 8657: Key_Muhenkan = 0x01001122, 8657: 8657: Key_Henkan = 0x01001123, 8657: Key_Romaji = 0x01001124, 8657: Key_Hiragana = 0x01001125, 8657: Key_Katakana = 0x01001126, 8657: Key_Hiragana_Katakana = 0x01001127, 8657: Key_Zenkaku = 0x01001128, 8657: Key_Hankaku = 0x01001129, 8657: Key_Zenkaku_Hankaku = 0x0100112a, 8657: Key_Touroku = 0x0100112b, 8657: Key_Massyo = 0x0100112c, 8657: Key_Kana_Lock = 0x0100112d, 8657: Key_Kana_Shift = 0x0100112e, 8657: Key_Eisu_Shift = 0x0100112f, 8657: Key_Eisu_toggle = 0x01001130, 8657: # 806 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qnamespace.h" 3 4 8657: Key_Hangul = 0x01001131, 8657: Key_Hangul_Start = 0x01001132, 8657: Key_Hangul_End = 0x01001133, 8657: Key_Hangul_Hanja = 0x01001134, 8657: Key_Hangul_Jamo = 0x01001135, 8657: Key_Hangul_Romaja = 0x01001136, 8657: 8657: Key_Hangul_Jeonja = 0x01001138, 8657: Key_Hangul_Banja = 0x01001139, 8657: Key_Hangul_PreHanja = 0x0100113a, 8657: Key_Hangul_PostHanja = 0x0100113b, 8657: 8657: 8657: 8657: Key_Hangul_Special = 0x0100113f, 8657: 8657: 8657: 8657: Key_Dead_Grave = 0x01001250, 8657: Key_Dead_Acute = 0x01001251, 8657: Key_Dead_Circumflex = 0x01001252, 8657: Key_Dead_Tilde = 0x01001253, 8657: Key_Dead_Macron = 0x01001254, 8657: Key_Dead_Breve = 0x01001255, 8657: Key_Dead_Abovedot = 0x01001256, 8657: Key_Dead_Diaeresis = 0x01001257, 8657: Key_Dead_Abovering = 0x01001258, 8657: Key_Dead_Doubleacute = 0x01001259, 8657: Key_Dead_Caron = 0x0100125a, 8657: Key_Dead_Cedilla = 0x0100125b, 8657: Key_Dead_Ogonek = 0x0100125c, 8657: Key_Dead_Iota = 0x0100125d, 8657: Key_Dead_Voiced_Sound = 0x0100125e, 8657: Key_Dead_Semivoiced_Sound = 0x0100125f, 8657: Key_Dead_Belowdot = 0x01001260, 8657: Key_Dead_Hook = 0x01001261, 8657: Key_Dead_Horn = 0x01001262, 8657: 8657: 8657: Key_Back = 0x01000061, 8657: Key_Forward = 0x01000062, 8657: Key_Stop = 0x01000063, 8657: Key_Refresh = 0x01000064, 8657: Key_VolumeDown = 0x01000070, 8657: Key_VolumeMute = 0x01000071, 8657: Key_VolumeUp = 0x01000072, 8657: Key_BassBoost = 0x01000073, 8657: Key_BassUp = 0x01000074, 8657: Key_BassDown = 0x01000075, 8657: Key_TrebleUp = 0x01000076, 8657: Key_TrebleDown = 0x01000077, 8657: Key_MediaPlay = 0x01000080, 8657: Key_MediaStop = 0x01000081, 8657: Key_MediaPrevious = 0x01000082, 8657: Key_MediaNext = 0x01000083, 8657: Key_MediaRecord = 0x01000084, 8657: Key_MediaPause = 0x1000085, 8657: Key_MediaTogglePlayPause = 0x1000086, 8657: Key_HomePage = 0x01000090, 8657: Key_Favorites = 0x01000091, 8657: Key_Search = 0x01000092, 8657: Key_Standby = 0x01000093, 8657: Key_OpenUrl = 0x01000094, 8657: Key_LaunchMail = 0x010000a0, 8657: Key_LaunchMedia = 0x010000a1, 8657: Key_Launch0 = 0x010000a2, 8657: Key_Launch1 = 0x010000a3, 8657: Key_Launch2 = 0x010000a4, 8657: Key_Launch3 = 0x010000a5, 8657: Key_Launch4 = 0x010000a6, 8657: Key_Launch5 = 0x010000a7, 8657: Key_Launch6 = 0x010000a8, 8657: Key_Launch7 = 0x010000a9, 8657: Key_Launch8 = 0x010000aa, 8657: Key_Launch9 = 0x010000ab, 8657: Key_LaunchA = 0x010000ac, 8657: Key_LaunchB = 0x010000ad, 8657: Key_LaunchC = 0x010000ae, 8657: Key_LaunchD = 0x010000af, 8657: Key_LaunchE = 0x010000b0, 8657: Key_LaunchF = 0x010000b1, 8657: Key_MonBrightnessUp = 0x010000b2, 8657: Key_MonBrightnessDown = 0x010000b3, 8657: Key_KeyboardLightOnOff = 0x010000b4, 8657: Key_KeyboardBrightnessUp = 0x010000b5, 8657: Key_KeyboardBrightnessDown = 0x010000b6, 8657: Key_PowerOff = 0x010000b7, 8657: Key_WakeUp = 0x010000b8, 8657: Key_Eject = 0x010000b9, 8657: Key_ScreenSaver = 0x010000ba, 8657: Key_WWW = 0x010000bb, 8657: Key_Memo = 0x010000bc, 8657: Key_LightBulb = 0x010000bd, 8657: Key_Shop = 0x010000be, 8657: Key_History = 0x010000bf, 8657: Key_AddFavorite = 0x010000c0, 8657: Key_HotLinks = 0x010000c1, 8657: Key_BrightnessAdjust = 0x010000c2, 8657: Key_Finance = 0x010000c3, 8657: Key_Community = 0x010000c4, 8657: Key_AudioRewind = 0x010000c5, 8657: Key_BackForward = 0x010000c6, 8657: Key_ApplicationLeft = 0x010000c7, 8657: Key_ApplicationRight = 0x010000c8, 8657: Key_Book = 0x010000c9, 8657: Key_CD = 0x010000ca, 8657: Key_Calculator = 0x010000cb, 8657: Key_ToDoList = 0x010000cc, 8657: Key_ClearGrab = 0x010000cd, 8657: Key_Close = 0x010000ce, 8657: Key_Copy = 0x010000cf, 8657: Key_Cut = 0x010000d0, 8657: Key_Display = 0x010000d1, 8657: Key_DOS = 0x010000d2, 8657: Key_Documents = 0x010000d3, 8657: Key_Excel = 0x010000d4, 8657: Key_Explorer = 0x010000d5, 8657: Key_Game = 0x010000d6, 8657: Key_Go = 0x010000d7, 8657: Key_iTouch = 0x010000d8, 8657: Key_LogOff = 0x010000d9, 8657: Key_Market = 0x010000da, 8657: Key_Meeting = 0x010000db, 8657: Key_MenuKB = 0x010000dc, 8657: Key_MenuPB = 0x010000dd, 8657: Key_MySites = 0x010000de, 8657: Key_News = 0x010000df, 8657: Key_OfficeHome = 0x010000e0, 8657: Key_Option = 0x010000e1, 8657: Key_Paste = 0x010000e2, 8657: Key_Phone = 0x010000e3, 8657: Key_Calendar = 0x010000e4, 8657: Key_Reply = 0x010000e5, 8657: Key_Reload = 0x010000e6, 8657: Key_RotateWindows = 0x010000e7, 8657: Key_RotationPB = 0x010000e8, 8657: Key_RotationKB = 0x010000e9, 8657: Key_Save = 0x010000ea, 8657: Key_Send = 0x010000eb, 8657: Key_Spell = 0x010000ec, 8657: Key_SplitScreen = 0x010000ed, 8657: Key_Support = 0x010000ee, 8657: Key_TaskPane = 0x010000ef, 8657: Key_Terminal = 0x010000f0, 8657: Key_Tools = 0x010000f1, 8657: Key_Travel = 0x010000f2, 8657: Key_Video = 0x010000f3, 8657: Key_Word = 0x010000f4, 8657: Key_Xfer = 0x010000f5, 8657: Key_ZoomIn = 0x010000f6, 8657: Key_ZoomOut = 0x010000f7, 8657: Key_Away = 0x010000f8, 8657: Key_Messenger = 0x010000f9, 8657: Key_WebCam = 0x010000fa, 8657: Key_MailForward = 0x010000fb, 8657: Key_Pictures = 0x010000fc, 8657: Key_Music = 0x010000fd, 8657: Key_Battery = 0x010000fe, 8657: Key_Bluetooth = 0x010000ff, 8657: Key_WLAN = 0x01000100, 8657: Key_UWB = 0x01000101, 8657: Key_AudioForward = 0x01000102, 8657: Key_AudioRepeat = 0x01000103, 8657: Key_AudioRandomPlay = 0x01000104, 8657: Key_Subtitle = 0x01000105, 8657: Key_AudioCycleTrack = 0x01000106, 8657: Key_Time = 0x01000107, 8657: Key_Hibernate = 0x01000108, 8657: Key_View = 0x01000109, 8657: Key_TopMenu = 0x0100010a, 8657: Key_PowerDown = 0x0100010b, 8657: Key_Suspend = 0x0100010c, 8657: Key_ContrastAdjust = 0x0100010d, 8657: 8657: Key_LaunchG = 0x0100010e, 8657: Key_LaunchH = 0x0100010f, 8657: 8657: Key_TouchpadToggle = 0x01000110, 8657: Key_TouchpadOn = 0x01000111, 8657: Key_TouchpadOff = 0x01000112, 8657: 8657: Key_MicMute = 0x01000113, 8657: 8657: Key_Red = 0x01000114, 8657: Key_Green = 0x01000115, 8657: Key_Yellow = 0x01000116, 8657: Key_Blue = 0x01000117, 8657: 8657: Key_ChannelUp = 0x01000118, 8657: Key_ChannelDown = 0x01000119, 8657: 8657: Key_Guide = 0x0100011a, 8657: Key_Info = 0x0100011b, 8657: Key_Settings = 0x0100011c, 8657: 8657: Key_MicVolumeUp = 0x0100011d, 8657: Key_MicVolumeDown = 0x0100011e, 8657: 8657: Key_New = 0x01000120, 8657: Key_Open = 0x01000121, 8657: Key_Find = 0x01000122, 8657: Key_Undo = 0x01000123, 8657: Key_Redo = 0x01000124, 8657: 8657: Key_MediaLast = 0x0100ffff, 8657: 8657: 8657: Key_Select = 0x01010000, 8657: Key_Yes = 0x01010001, 8657: Key_No = 0x01010002, 8657: 8657: 8657: Key_Cancel = 0x01020001, 8657: Key_Printer = 0x01020002, 8657: Key_Execute = 0x01020003, 8657: Key_Sleep = 0x01020004, 8657: Key_Play = 0x01020005, 8657: Key_Zoom = 0x01020006, 8657: 8657: 8657: 8657: Key_Exit = 0x0102000a, 8657: 8657: 8657: Key_Context1 = 0x01100000, 8657: Key_Context2 = 0x01100001, 8657: Key_Context3 = 0x01100002, 8657: Key_Context4 = 0x01100003, 8657: Key_Call = 0x01100004, 8657: Key_Hangup = 0x01100005, 8657: Key_Flip = 0x01100006, 8657: Key_ToggleCallHangup = 0x01100007, 8657: Key_VoiceDial = 0x01100008, 8657: Key_LastNumberRedial = 0x01100009, 8657: 8657: Key_Camera = 0x01100020, 8657: Key_CameraFocus = 0x01100021, 8657: 8657: Key_unknown = 0x01ffffff 8657: }; 8657: 8657: enum ArrowType { 8657: NoArrow, 8657: UpArrow, 8657: DownArrow, 8657: LeftArrow, 8657: RightArrow 8657: }; 8657: 8657: enum PenStyle { 8657: NoPen, 8657: SolidLine, 8657: DashLine, 8657: DotLine, 8657: DashDotLine, 8657: DashDotDotLine, 8657: CustomDashLine 8657: 8657: , MPenStyle = 0x0f 8657: 8657: }; 8657: 8657: enum PenCapStyle { 8657: FlatCap = 0x00, 8657: SquareCap = 0x10, 8657: RoundCap = 0x20, 8657: MPenCapStyle = 0x30 8657: }; 8657: 8657: enum PenJoinStyle { 8657: MiterJoin = 0x00, 8657: BevelJoin = 0x40, 8657: RoundJoin = 0x80, 8657: SvgMiterJoin = 0x100, 8657: MPenJoinStyle = 0x1c0 8657: }; 8657: 8657: enum BrushStyle { 8657: NoBrush, 8657: SolidPattern, 8657: Dense1Pattern, 8657: Dense2Pattern, 8657: Dense3Pattern, 8657: Dense4Pattern, 8657: Dense5Pattern, 8657: Dense6Pattern, 8657: Dense7Pattern, 8657: HorPattern, 8657: VerPattern, 8657: CrossPattern, 8657: BDiagPattern, 8657: FDiagPattern, 8657: DiagCrossPattern, 8657: LinearGradientPattern, 8657: RadialGradientPattern, 8657: ConicalGradientPattern, 8657: TexturePattern = 24 8657: }; 8657: 8657: enum SizeMode { 8657: AbsoluteSize, 8657: RelativeSize 8657: }; 8657: 8657: enum UIEffect { 8657: UI_General, 8657: UI_AnimateMenu, 8657: UI_FadeMenu, 8657: UI_AnimateCombo, 8657: UI_AnimateTooltip, 8657: UI_FadeTooltip, 8657: UI_AnimateToolBox 8657: }; 8657: 8657: enum CursorShape { 8657: ArrowCursor, 8657: UpArrowCursor, 8657: CrossCursor, 8657: WaitCursor, 8657: IBeamCursor, 8657: SizeVerCursor, 8657: SizeHorCursor, 8657: SizeBDiagCursor, 8657: SizeFDiagCursor, 8657: SizeAllCursor, 8657: BlankCursor, 8657: SplitVCursor, 8657: SplitHCursor, 8657: PointingHandCursor, 8657: ForbiddenCursor, 8657: WhatsThisCursor, 8657: BusyCursor, 8657: OpenHandCursor, 8657: ClosedHandCursor, 8657: DragCopyCursor, 8657: DragMoveCursor, 8657: DragLinkCursor, 8657: LastCursor = DragLinkCursor, 8657: BitmapCursor = 24, 8657: CustomCursor = 25 8657: }; 8657: 8657: enum TextFormat { 8657: PlainText, 8657: RichText, 8657: AutoText 8657: }; 8657: 8657: enum AspectRatioMode { 8657: IgnoreAspectRatio, 8657: KeepAspectRatio, 8657: KeepAspectRatioByExpanding 8657: }; 8657: 8657: enum DockWidgetArea { 8657: LeftDockWidgetArea = 0x1, 8657: RightDockWidgetArea = 0x2, 8657: TopDockWidgetArea = 0x4, 8657: BottomDockWidgetArea = 0x8, 8657: 8657: DockWidgetArea_Mask = 0xf, 8657: AllDockWidgetAreas = DockWidgetArea_Mask, 8657: NoDockWidgetArea = 0 8657: }; 8657: enum DockWidgetAreaSizes { 8657: NDockWidgetAreas = 4 8657: }; 8657: 8657: typedef QFlags DockWidgetAreas; 8657: 8657: enum ToolBarArea { 8657: LeftToolBarArea = 0x1, 8657: RightToolBarArea = 0x2, 8657: TopToolBarArea = 0x4, 8657: BottomToolBarArea = 0x8, 8657: 8657: ToolBarArea_Mask = 0xf, 8657: AllToolBarAreas = ToolBarArea_Mask, 8657: NoToolBarArea = 0 8657: }; 8657: 8657: enum ToolBarAreaSizes { 8657: NToolBarAreas = 4 8657: }; 8657: 8657: typedef QFlags ToolBarAreas; 8657: 8657: enum DateFormat { 8657: TextDate, 8657: ISODate, 8657: SystemLocaleDate, 8657: LocalDate = SystemLocaleDate, 8657: LocaleDate, 8657: SystemLocaleShortDate, 8657: SystemLocaleLongDate, 8657: DefaultLocaleShortDate, 8657: DefaultLocaleLongDate, 8657: RFC2822Date, 8657: ISODateWithMs 8657: }; 8657: 8657: enum TimeSpec { 8657: LocalTime, 8657: UTC, 8657: OffsetFromUTC, 8657: TimeZone 8657: }; 8657: 8657: enum DayOfWeek { 8657: Monday = 1, 8657: Tuesday = 2, 8657: Wednesday = 3, 8657: Thursday = 4, 8657: Friday = 5, 8657: Saturday = 6, 8657: Sunday = 7 8657: }; 8657: 8657: enum ScrollBarPolicy { 8657: ScrollBarAsNeeded, 8657: ScrollBarAlwaysOff, 8657: ScrollBarAlwaysOn 8657: }; 8657: 8657: enum CaseSensitivity { 8657: CaseInsensitive, 8657: CaseSensitive 8657: }; 8657: 8657: enum Corner { 8657: TopLeftCorner = 0x00000, 8657: TopRightCorner = 0x00001, 8657: BottomLeftCorner = 0x00002, 8657: BottomRightCorner = 0x00003 8657: }; 8657: 8657: enum Edge { 8657: TopEdge = 0x00001, 8657: LeftEdge = 0x00002, 8657: RightEdge = 0x00004, 8657: BottomEdge = 0x00008 8657: }; 8657: 8657: typedef QFlags Edges; 8657: 8657: enum ConnectionType { 8657: AutoConnection, 8657: DirectConnection, 8657: QueuedConnection, 8657: BlockingQueuedConnection, 8657: UniqueConnection = 0x80 8657: }; 8657: 8657: enum ShortcutContext { 8657: WidgetShortcut, 8657: WindowShortcut, 8657: ApplicationShortcut, 8657: WidgetWithChildrenShortcut 8657: }; 8657: 8657: enum FillRule { 8657: OddEvenFill, 8657: WindingFill 8657: }; 8657: 8657: enum MaskMode { 8657: MaskInColor, 8657: MaskOutColor 8657: }; 8657: 8657: enum ClipOperation { 8657: NoClip, 8657: ReplaceClip, 8657: IntersectClip 8657: }; 8657: 8657: 8657: enum ItemSelectionMode { 8657: ContainsItemShape = 0x0, 8657: IntersectsItemShape = 0x1, 8657: ContainsItemBoundingRect = 0x2, 8657: IntersectsItemBoundingRect = 0x3 8657: }; 8657: 8657: enum ItemSelectionOperation { 8657: ReplaceSelection, 8657: AddToSelection 8657: }; 8657: 8657: enum TransformationMode { 8657: FastTransformation, 8657: SmoothTransformation 8657: }; 8657: 8657: enum Axis { 8657: XAxis, 8657: YAxis, 8657: ZAxis 8657: }; 8657: 8657: enum FocusReason { 8657: MouseFocusReason, 8657: TabFocusReason, 8657: BacktabFocusReason, 8657: ActiveWindowFocusReason, 8657: PopupFocusReason, 8657: ShortcutFocusReason, 8657: MenuBarFocusReason, 8657: OtherFocusReason, 8657: NoFocusReason 8657: }; 8657: 8657: enum ContextMenuPolicy { 8657: NoContextMenu, 8657: DefaultContextMenu, 8657: ActionsContextMenu, 8657: CustomContextMenu, 8657: PreventContextMenu 8657: }; 8657: 8657: enum InputMethodQuery { 8657: ImEnabled = 0x1, 8657: ImCursorRectangle = 0x2, 8657: ImMicroFocus = 0x2, 8657: ImFont = 0x4, 8657: ImCursorPosition = 0x8, 8657: ImSurroundingText = 0x10, 8657: ImCurrentSelection = 0x20, 8657: ImMaximumTextLength = 0x40, 8657: ImAnchorPosition = 0x80, 8657: ImHints = 0x100, 8657: ImPreferredLanguage = 0x200, 8657: 8657: ImAbsolutePosition = 0x400, 8657: ImTextBeforeCursor = 0x800, 8657: ImTextAfterCursor = 0x1000, 8657: ImEnterKeyType = 0x2000, 8657: ImAnchorRectangle = 0x4000, 8657: ImInputItemClipRectangle = 0x8000, 8657: 8657: ImPlatformData = 0x80000000, 8657: ImQueryInput = ImCursorRectangle | ImCursorPosition | ImSurroundingText | 8657: ImCurrentSelection | ImAnchorRectangle | ImAnchorPosition, 8657: ImQueryAll = 0xffffffff 8657: }; 8657: typedef QFlags InputMethodQueries; 8657: 8657: enum InputMethodHint { 8657: ImhNone = 0x0, 8657: 8657: ImhHiddenText = 0x1, 8657: ImhSensitiveData = 0x2, 8657: ImhNoAutoUppercase = 0x4, 8657: ImhPreferNumbers = 0x8, 8657: ImhPreferUppercase = 0x10, 8657: ImhPreferLowercase = 0x20, 8657: ImhNoPredictiveText = 0x40, 8657: 8657: ImhDate = 0x80, 8657: ImhTime = 0x100, 8657: 8657: ImhPreferLatin = 0x200, 8657: 8657: ImhMultiLine = 0x400, 8657: 8657: ImhDigitsOnly = 0x10000, 8657: ImhFormattedNumbersOnly = 0x20000, 8657: ImhUppercaseOnly = 0x40000, 8657: ImhLowercaseOnly = 0x80000, 8657: ImhDialableCharactersOnly = 0x100000, 8657: ImhEmailCharactersOnly = 0x200000, 8657: ImhUrlCharactersOnly = 0x400000, 8657: ImhLatinOnly = 0x800000, 8657: 8657: ImhExclusiveInputMask = 0xffff0000 8657: }; 8657: typedef QFlags InputMethodHints; 8657: 8657: enum EnterKeyType { 8657: EnterKeyDefault, 8657: EnterKeyReturn, 8657: EnterKeyDone, 8657: EnterKeyGo, 8657: EnterKeySend, 8657: EnterKeySearch, 8657: EnterKeyNext, 8657: EnterKeyPrevious 8657: }; 8657: 8657: enum ToolButtonStyle { 8657: ToolButtonIconOnly, 8657: ToolButtonTextOnly, 8657: ToolButtonTextBesideIcon, 8657: ToolButtonTextUnderIcon, 8657: ToolButtonFollowStyle 8657: }; 8657: 8657: enum LayoutDirection { 8657: LeftToRight, 8657: RightToLeft, 8657: LayoutDirectionAuto 8657: }; 8657: 8657: enum AnchorPoint { 8657: AnchorLeft = 0, 8657: AnchorHorizontalCenter, 8657: AnchorRight, 8657: AnchorTop, 8657: AnchorVerticalCenter, 8657: AnchorBottom 8657: }; 8657: 8657: enum FindChildOption { 8657: FindDirectChildrenOnly = 0x0, 8657: FindChildrenRecursively = 0x1 8657: }; 8657: typedef QFlags FindChildOptions; 8657: 8657: enum DropAction { 8657: CopyAction = 0x1, 8657: MoveAction = 0x2, 8657: LinkAction = 0x4, 8657: ActionMask = 0xff, 8657: TargetMoveAction = 0x8002, 8657: IgnoreAction = 0x0 8657: }; 8657: typedef QFlags DropActions; 8657: 8657: enum CheckState { 8657: Unchecked, 8657: PartiallyChecked, 8657: Checked 8657: }; 8657: 8657: enum ItemDataRole { 8657: DisplayRole = 0, 8657: DecorationRole = 1, 8657: EditRole = 2, 8657: ToolTipRole = 3, 8657: StatusTipRole = 4, 8657: WhatsThisRole = 5, 8657: 8657: FontRole = 6, 8657: TextAlignmentRole = 7, 8657: BackgroundColorRole = 8, 8657: BackgroundRole = 8, 8657: TextColorRole = 9, 8657: ForegroundRole = 9, 8657: CheckStateRole = 10, 8657: 8657: AccessibleTextRole = 11, 8657: AccessibleDescriptionRole = 12, 8657: 8657: SizeHintRole = 13, 8657: InitialSortOrderRole = 14, 8657: 8657: DisplayPropertyRole = 27, 8657: DecorationPropertyRole = 28, 8657: ToolTipPropertyRole = 29, 8657: StatusTipPropertyRole = 30, 8657: WhatsThisPropertyRole = 31, 8657: 8657: UserRole = 0x0100 8657: }; 8657: 8657: enum ItemFlag { 8657: NoItemFlags = 0, 8657: ItemIsSelectable = 1, 8657: ItemIsEditable = 2, 8657: ItemIsDragEnabled = 4, 8657: ItemIsDropEnabled = 8, 8657: ItemIsUserCheckable = 16, 8657: ItemIsEnabled = 32, 8657: ItemIsAutoTristate = 64, 8657: 8657: ItemIsTristate = ItemIsAutoTristate, 8657: 8657: ItemNeverHasChildren = 128, 8657: ItemIsUserTristate = 256 8657: }; 8657: typedef QFlags ItemFlags; 8657: 8657: enum MatchFlag { 8657: MatchExactly = 0, 8657: MatchContains = 1, 8657: MatchStartsWith = 2, 8657: MatchEndsWith = 3, 8657: MatchRegExp = 4, 8657: MatchWildcard = 5, 8657: MatchFixedString = 8, 8657: MatchCaseSensitive = 16, 8657: MatchWrap = 32, 8657: MatchRecursive = 64 8657: }; 8657: typedef QFlags MatchFlags; 8657: 8657: typedef void * HANDLE; 8657: 8657: 8657: 8657: 8657: enum WindowModality { 8657: NonModal, 8657: WindowModal, 8657: ApplicationModal 8657: }; 8657: 8657: enum TextInteractionFlag { 8657: NoTextInteraction = 0, 8657: TextSelectableByMouse = 1, 8657: TextSelectableByKeyboard = 2, 8657: LinksAccessibleByMouse = 4, 8657: LinksAccessibleByKeyboard = 8, 8657: TextEditable = 16, 8657: 8657: TextEditorInteraction = TextSelectableByMouse | TextSelectableByKeyboard | TextEditable, 8657: TextBrowserInteraction = TextSelectableByMouse | LinksAccessibleByMouse | LinksAccessibleByKeyboard 8657: }; 8657: typedef QFlags TextInteractionFlags; 8657: 8657: enum EventPriority { 8657: HighEventPriority = 1, 8657: NormalEventPriority = 0, 8657: LowEventPriority = -1 8657: }; 8657: 8657: enum SizeHint { 8657: MinimumSize, 8657: PreferredSize, 8657: MaximumSize, 8657: MinimumDescent, 8657: NSizeHints 8657: }; 8657: 8657: enum WindowFrameSection { 8657: NoSection, 8657: LeftSection, 8657: TopLeftSection, 8657: TopSection, 8657: TopRightSection, 8657: RightSection, 8657: BottomRightSection, 8657: BottomSection, 8657: BottomLeftSection, 8657: TitleBarArea 8657: }; 8657: 8657: 8657: enum class Initialization { 8657: Uninitialized 8657: }; 8657: static constexpr __attribute__((__unused__)) Initialization Uninitialized = Initialization::Uninitialized; 8657: 8657: 8657: 8657: 8657: 8657: 8657: enum CoordinateSystem { 8657: DeviceCoordinates, 8657: LogicalCoordinates 8657: }; 8657: 8657: enum TouchPointState { 8657: TouchPointPressed = 0x01, 8657: TouchPointMoved = 0x02, 8657: TouchPointStationary = 0x04, 8657: TouchPointReleased = 0x08 8657: }; 8657: typedef QFlags TouchPointStates; 8657: 8657: 8657: enum GestureState 8657: { 8657: NoGesture, 8657: GestureStarted = 1, 8657: GestureUpdated = 2, 8657: GestureFinished = 3, 8657: GestureCanceled = 4 8657: }; 8657: 8657: enum GestureType 8657: { 8657: TapGesture = 1, 8657: TapAndHoldGesture = 2, 8657: PanGesture = 3, 8657: PinchGesture = 4, 8657: SwipeGesture = 5, 8657: 8657: CustomGesture = 0x0100, 8657: 8657: LastGestureType = ~0u 8657: }; 8657: 8657: enum GestureFlag 8657: { 8657: DontStartGestureOnChildren = 0x01, 8657: ReceivePartialGestures = 0x02, 8657: IgnoredGesturesPropagateToParent = 0x04 8657: }; 8657: typedef QFlags GestureFlags; 8657: 8657: enum NativeGestureType 8657: { 8657: BeginNativeGesture, 8657: EndNativeGesture, 8657: PanNativeGesture, 8657: ZoomNativeGesture, 8657: SmartZoomNativeGesture, 8657: RotateNativeGesture, 8657: SwipeNativeGesture 8657: }; 8657: 8657: 8657: 8657: enum NavigationMode 8657: { 8657: NavigationModeNone, 8657: NavigationModeKeypadTabOrder, 8657: NavigationModeKeypadDirectional, 8657: NavigationModeCursorAuto, 8657: NavigationModeCursorForceVisible 8657: }; 8657: 8657: enum CursorMoveStyle { 8657: LogicalMoveStyle, 8657: VisualMoveStyle 8657: }; 8657: 8657: enum TimerType { 8657: PreciseTimer, 8657: CoarseTimer, 8657: VeryCoarseTimer 8657: }; 8657: 8657: enum ScrollPhase { 8657: NoScrollPhase = 0, 8657: ScrollBegin, 8657: ScrollUpdate, 8657: ScrollEnd 8657: }; 8657: 8657: enum MouseEventSource { 8657: MouseEventNotSynthesized, 8657: MouseEventSynthesizedBySystem, 8657: MouseEventSynthesizedByQt, 8657: MouseEventSynthesizedByApplication 8657: }; 8657: 8657: enum MouseEventFlag { 8657: MouseEventCreatedDoubleClick = 0x01, 8657: MouseEventFlagMask = 0xFF 8657: }; 8657: typedef QFlags MouseEventFlags; 8657: 8657: enum ChecksumType { 8657: ChecksumIso3309, 8657: ChecksumItuV41 8657: }; 8657: 8657: 8657: 8657: inline const QMetaObject *qt_getEnumMetaObject(ScrollBarPolicy) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScrollBarPolicy) noexcept { return "ScrollBarPolicy"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(FocusPolicy) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(FocusPolicy) noexcept { return "FocusPolicy"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ContextMenuPolicy) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ContextMenuPolicy) noexcept { return "ContextMenuPolicy"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ArrowType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ArrowType) noexcept { return "ArrowType"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ToolButtonStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ToolButtonStyle) noexcept { return "ToolButtonStyle"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(PenStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(PenStyle) noexcept { return "PenStyle"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(PenCapStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(PenCapStyle) noexcept { return "PenCapStyle"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(PenJoinStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(PenJoinStyle) noexcept { return "PenJoinStyle"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(BrushStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(BrushStyle) noexcept { return "BrushStyle"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(FillRule) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(FillRule) noexcept { return "FillRule"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(MaskMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MaskMode) noexcept { return "MaskMode"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(BGMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(BGMode) noexcept { return "BGMode"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ClipOperation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ClipOperation) noexcept { return "ClipOperation"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(SizeMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(SizeMode) noexcept { return "SizeMode"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(Axis) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Axis) noexcept { return "Axis"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(Corner) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Corner) noexcept { return "Corner"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(Edge) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Edge) noexcept { return "Edge"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(LayoutDirection) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(LayoutDirection) noexcept { return "LayoutDirection"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(SizeHint) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(SizeHint) noexcept { return "SizeHint"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(Orientation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Orientation) noexcept { return "Orientation"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(DropAction) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DropAction) noexcept { return "DropAction"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(Alignment) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Alignment) noexcept { return "Alignment"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(TextFlag) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextFlag) noexcept { return "TextFlag"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(Orientations) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Orientations) noexcept { return "Orientations"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(DropActions) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DropActions) noexcept { return "DropActions"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(Edges) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Edges) noexcept { return "Edges"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(DockWidgetAreas) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DockWidgetAreas) noexcept { return "DockWidgetAreas"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ToolBarAreas) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ToolBarAreas) noexcept { return "ToolBarAreas"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(DockWidgetArea) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DockWidgetArea) noexcept { return "DockWidgetArea"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ToolBarArea) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ToolBarArea) noexcept { return "ToolBarArea"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(TextFormat) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextFormat) noexcept { return "TextFormat"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(TextElideMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextElideMode) noexcept { return "TextElideMode"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(DateFormat) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DateFormat) noexcept { return "DateFormat"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(TimeSpec) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TimeSpec) noexcept { return "TimeSpec"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(DayOfWeek) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DayOfWeek) noexcept { return "DayOfWeek"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(CursorShape) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CursorShape) noexcept { return "CursorShape"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(GlobalColor) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(GlobalColor) noexcept { return "GlobalColor"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(AspectRatioMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(AspectRatioMode) noexcept { return "AspectRatioMode"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(TransformationMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TransformationMode) noexcept { return "TransformationMode"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ImageConversionFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ImageConversionFlags) noexcept { return "ImageConversionFlags"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(Key) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Key) noexcept { return "Key"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ShortcutContext) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ShortcutContext) noexcept { return "ShortcutContext"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(TextInteractionFlag) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextInteractionFlag) noexcept { return "TextInteractionFlag"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(TextInteractionFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextInteractionFlags) noexcept { return "TextInteractionFlags"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ItemSelectionMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemSelectionMode) noexcept { return "ItemSelectionMode"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ItemSelectionOperation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemSelectionOperation) noexcept { return "ItemSelectionOperation"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ItemFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemFlags) noexcept { return "ItemFlags"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(CheckState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CheckState) noexcept { return "CheckState"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ItemDataRole) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemDataRole) noexcept { return "ItemDataRole"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(SortOrder) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(SortOrder) noexcept { return "SortOrder"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(CaseSensitivity) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CaseSensitivity) noexcept { return "CaseSensitivity"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(MatchFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MatchFlags) noexcept { return "MatchFlags"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(KeyboardModifiers) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(KeyboardModifiers) noexcept { return "KeyboardModifiers"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(MouseButtons) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MouseButtons) noexcept { return "MouseButtons"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(WindowType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowType) noexcept { return "WindowType"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(WindowState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowState) noexcept { return "WindowState"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(WindowModality) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowModality) noexcept { return "WindowModality"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(WidgetAttribute) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WidgetAttribute) noexcept { return "WidgetAttribute"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ApplicationAttribute) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ApplicationAttribute) noexcept { return "ApplicationAttribute"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(WindowFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowFlags) noexcept { return "WindowFlags"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(WindowStates) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowStates) noexcept { return "WindowStates"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(FocusReason) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(FocusReason) noexcept { return "FocusReason"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(InputMethodHint) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodHint) noexcept { return "InputMethodHint"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(InputMethodQuery) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodQuery) noexcept { return "InputMethodQuery"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(InputMethodHints) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodHints) noexcept { return "InputMethodHints"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(EnterKeyType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(EnterKeyType) noexcept { return "EnterKeyType"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(InputMethodQueries) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodQueries) noexcept { return "InputMethodQueries"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(TouchPointStates) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TouchPointStates) noexcept { return "TouchPointStates"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ScreenOrientation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScreenOrientation) noexcept { return "ScreenOrientation"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ScreenOrientations) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScreenOrientations) noexcept { return "ScreenOrientations"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ConnectionType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ConnectionType) noexcept { return "ConnectionType"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ApplicationState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ApplicationState) noexcept { return "ApplicationState"; } 8657: 8657: inline const QMetaObject *qt_getEnumMetaObject(GestureState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(GestureState) noexcept { return "GestureState"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(GestureType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(GestureType) noexcept { return "GestureType"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(NativeGestureType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(NativeGestureType) noexcept { return "NativeGestureType"; } 8657: 8657: inline const QMetaObject *qt_getEnumMetaObject(CursorMoveStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CursorMoveStyle) noexcept { return "CursorMoveStyle"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(TimerType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TimerType) noexcept { return "TimerType"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ScrollPhase) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScrollPhase) noexcept { return "ScrollPhase"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(MouseEventSource) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MouseEventSource) noexcept { return "MouseEventSource"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(MouseEventFlag) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MouseEventFlag) noexcept { return "MouseEventFlag"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(ChecksumType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ChecksumType) noexcept { return "ChecksumType"; } 8657: inline const QMetaObject *qt_getEnumMetaObject(TabFocusBehavior) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TabFocusBehavior) noexcept { return "TabFocusBehavior"; } 8657: 8657: 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: constexpr inline QFlags operator|(Qt::MouseButtons::enum_type f1, Qt::MouseButtons::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::MouseButtons::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::MouseButtons::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(Qt::Orientations::enum_type f1, Qt::Orientations::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::Orientations::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::Orientations::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(Qt::KeyboardModifiers::enum_type f1, Qt::KeyboardModifiers::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::KeyboardModifiers::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::KeyboardModifiers::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(Qt::WindowFlags::enum_type f1, Qt::WindowFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::WindowFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::WindowFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(Qt::Alignment::enum_type f1, Qt::Alignment::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::Alignment::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::Alignment::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(Qt::Edges::enum_type f1, Qt::Edges::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::Edges::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::Edges::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(Qt::ImageConversionFlags::enum_type f1, Qt::ImageConversionFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::ImageConversionFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::ImageConversionFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(Qt::DockWidgetAreas::enum_type f1, Qt::DockWidgetAreas::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::DockWidgetAreas::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::DockWidgetAreas::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(Qt::ToolBarAreas::enum_type f1, Qt::ToolBarAreas::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::ToolBarAreas::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::ToolBarAreas::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(Qt::WindowStates::enum_type f1, Qt::WindowStates::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::WindowStates::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::WindowStates::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(Qt::ScreenOrientations::enum_type f1, Qt::ScreenOrientations::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::ScreenOrientations::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::ScreenOrientations::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(Qt::DropActions::enum_type f1, Qt::DropActions::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::DropActions::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::DropActions::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(Qt::ItemFlags::enum_type f1, Qt::ItemFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::ItemFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::ItemFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(Qt::MatchFlags::enum_type f1, Qt::MatchFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::MatchFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::MatchFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(Qt::TextInteractionFlags::enum_type f1, Qt::TextInteractionFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::TextInteractionFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::TextInteractionFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(Qt::InputMethodQueries::enum_type f1, Qt::InputMethodQueries::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::InputMethodQueries::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::InputMethodQueries::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(Qt::InputMethodHints::enum_type f1, Qt::InputMethodHints::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::InputMethodHints::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::InputMethodHints::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(Qt::TouchPointStates::enum_type f1, Qt::TouchPointStates::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::TouchPointStates::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::TouchPointStates::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(Qt::MouseEventFlags::enum_type f1, Qt::MouseEventFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::MouseEventFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::MouseEventFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: 8657: constexpr inline QFlags operator|(Qt::GestureFlags::enum_type f1, Qt::GestureFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::GestureFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::GestureFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: 8657: 8657: typedef bool (*qInternalCallback)(void **); 8657: 8657: class __attribute__((visibility("default"))) QInternal { 8657: public: 8657: enum PaintDeviceFlags { 8657: UnknownDevice = 0x00, 8657: Widget = 0x01, 8657: Pixmap = 0x02, 8657: Image = 0x03, 8657: Printer = 0x04, 8657: Picture = 0x05, 8657: Pbuffer = 0x06, 8657: FramebufferObject = 0x07, 8657: CustomRaster = 0x08, 8657: MacQuartz = 0x09, 8657: PaintBuffer = 0x0a, 8657: OpenGL = 0x0b 8657: }; 8657: enum RelayoutType { 8657: RelayoutNormal, 8657: RelayoutDragging, 8657: RelayoutDropped 8657: }; 8657: 8657: enum DockPosition { 8657: LeftDock, 8657: RightDock, 8657: TopDock, 8657: BottomDock, 8657: DockCount 8657: }; 8657: 8657: enum Callback { 8657: EventNotifyCallback, 8657: LastCallback 8657: }; 8657: static bool registerCallback(Callback, qInternalCallback); 8657: static bool unregisterCallback(Callback, qInternalCallback); 8657: static bool activateCallbacks(Callback, void **); 8657: }; 8657: 8657: 8657: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qarraydata.h" 1 3 4 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qarraydata.h" 3 4 8657: # 1 "/usr/include/string.h" 1 3 4 8657: # 26 "/usr/include/string.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 8657: # 27 "/usr/include/string.h" 2 3 4 8657: 8657: extern "C" { 8657: 8657: 8657: 8657: 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8657: # 34 "/usr/include/string.h" 2 3 4 8657: # 42 "/usr/include/string.h" 3 4 8657: extern void *memcpy (void *__restrict __dest, const void *__restrict __src, 8657: size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern void *memmove (void *__dest, const void *__src, size_t __n) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: 8657: 8657: extern void *memccpy (void *__restrict __dest, const void *__restrict __src, 8657: int __c, size_t __n) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: 8657: extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int memcmp (const void *__s1, const void *__s2, size_t __n) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: extern "C++" 8657: { 8657: extern void *memchr (void *__s, int __c, size_t __n) 8657: throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8657: extern const void *memchr (const void *__s, int __c, size_t __n) 8657: throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void * 8657: memchr (void *__s, int __c, size_t __n) throw () 8657: { 8657: return __builtin_memchr (__s, __c, __n); 8657: } 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const void * 8657: memchr (const void *__s, int __c, size_t __n) throw () 8657: { 8657: return __builtin_memchr (__s, __c, __n); 8657: } 8657: 8657: } 8657: # 98 "/usr/include/string.h" 3 4 8657: extern "C++" void *rawmemchr (void *__s, int __c) 8657: throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8657: extern "C++" const void *rawmemchr (const void *__s, int __c) 8657: throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern "C++" void *memrchr (void *__s, int __c, size_t __n) 8657: throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8657: extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) 8657: throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8657: # 121 "/usr/include/string.h" 3 4 8657: extern char *strcpy (char *__restrict __dest, const char *__restrict __src) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: extern char *strncpy (char *__restrict __dest, 8657: const char *__restrict __src, size_t __n) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern char *strcat (char *__restrict __dest, const char *__restrict __src) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: extern char *strncat (char *__restrict __dest, const char *__restrict __src, 8657: size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int strcmp (const char *__s1, const char *__s2) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: extern int strncmp (const char *__s1, const char *__s2, size_t __n) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int strcoll (const char *__s1, const char *__s2) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: extern size_t strxfrm (char *__restrict __dest, 8657: const char *__restrict __src, size_t __n) 8657: throw () __attribute__ ((__nonnull__ (2))); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 8657: 8657: 8657: extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, 8657: locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); 8657: 8657: 8657: 8657: 8657: 8657: extern char *strdup (const char *__s) 8657: throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern char *strndup (const char *__string, size_t __n) 8657: throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 8657: # 203 "/usr/include/string.h" 3 4 8657: extern "C++" 8657: { 8657: extern char *strchr (char *__s, int __c) 8657: throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8657: extern const char *strchr (const char *__s, int __c) 8657: throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8657: strchr (char *__s, int __c) throw () 8657: { 8657: return __builtin_strchr (__s, __c); 8657: } 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8657: strchr (const char *__s, int __c) throw () 8657: { 8657: return __builtin_strchr (__s, __c); 8657: } 8657: 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern "C++" 8657: { 8657: extern char *strrchr (char *__s, int __c) 8657: throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8657: extern const char *strrchr (const char *__s, int __c) 8657: throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8657: strrchr (char *__s, int __c) throw () 8657: { 8657: return __builtin_strrchr (__s, __c); 8657: } 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8657: strrchr (const char *__s, int __c) throw () 8657: { 8657: return __builtin_strrchr (__s, __c); 8657: } 8657: 8657: } 8657: # 260 "/usr/include/string.h" 3 4 8657: extern "C++" char *strchrnul (char *__s, int __c) 8657: throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8657: extern "C++" const char *strchrnul (const char *__s, int __c) 8657: throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8657: # 272 "/usr/include/string.h" 3 4 8657: extern size_t strcspn (const char *__s, const char *__reject) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern size_t strspn (const char *__s, const char *__accept) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern "C++" 8657: { 8657: extern char *strpbrk (char *__s, const char *__accept) 8657: throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8657: extern const char *strpbrk (const char *__s, const char *__accept) 8657: throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8657: strpbrk (char *__s, const char *__accept) throw () 8657: { 8657: return __builtin_strpbrk (__s, __accept); 8657: } 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8657: strpbrk (const char *__s, const char *__accept) throw () 8657: { 8657: return __builtin_strpbrk (__s, __accept); 8657: } 8657: 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern "C++" 8657: { 8657: extern char *strstr (char *__haystack, const char *__needle) 8657: throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8657: extern const char *strstr (const char *__haystack, const char *__needle) 8657: throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8657: strstr (char *__haystack, const char *__needle) throw () 8657: { 8657: return __builtin_strstr (__haystack, __needle); 8657: } 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8657: strstr (const char *__haystack, const char *__needle) throw () 8657: { 8657: return __builtin_strstr (__haystack, __needle); 8657: } 8657: 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern char *strtok (char *__restrict __s, const char *__restrict __delim) 8657: throw () __attribute__ ((__nonnull__ (2))); 8657: 8657: 8657: 8657: extern char *__strtok_r (char *__restrict __s, 8657: const char *__restrict __delim, 8657: char **__restrict __save_ptr) 8657: throw () __attribute__ ((__nonnull__ (2, 3))); 8657: 8657: extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, 8657: char **__restrict __save_ptr) 8657: throw () __attribute__ ((__nonnull__ (2, 3))); 8657: 8657: 8657: 8657: 8657: 8657: extern "C++" char *strcasestr (char *__haystack, const char *__needle) 8657: throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8657: extern "C++" const char *strcasestr (const char *__haystack, 8657: const char *__needle) 8657: throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8657: # 368 "/usr/include/string.h" 3 4 8657: extern void *memmem (const void *__haystack, size_t __haystacklen, 8657: const void *__needle, size_t __needlelen) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); 8657: 8657: 8657: 8657: extern void *__mempcpy (void *__restrict __dest, 8657: const void *__restrict __src, size_t __n) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: extern void *mempcpy (void *__restrict __dest, 8657: const void *__restrict __src, size_t __n) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: 8657: extern size_t strlen (const char *__s) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: extern size_t strnlen (const char *__string, size_t __maxlen) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: extern char *strerror (int __errnum) throw (); 8657: # 420 "/usr/include/string.h" 3 4 8657: extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) 8657: throw () __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: 8657: extern char *strerror_l (int __errnum, locale_t __l) throw (); 8657: 8657: 8657: 8657: # 1 "/usr/include/strings.h" 1 3 4 8657: # 23 "/usr/include/strings.h" 3 4 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8657: # 24 "/usr/include/strings.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern "C" { 8657: 8657: 8657: 8657: extern int bcmp (const void *__s1, const void *__s2, size_t __n) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern void bcopy (const void *__src, void *__dest, size_t __n) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: extern "C++" 8657: { 8657: extern char *index (char *__s, int __c) 8657: throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8657: extern const char *index (const char *__s, int __c) 8657: throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8657: index (char *__s, int __c) throw () 8657: { 8657: return __builtin_index (__s, __c); 8657: } 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8657: index (const char *__s, int __c) throw () 8657: { 8657: return __builtin_index (__s, __c); 8657: } 8657: 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern "C++" 8657: { 8657: extern char *rindex (char *__s, int __c) 8657: throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8657: extern const char *rindex (const char *__s, int __c) 8657: throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8657: rindex (char *__s, int __c) throw () 8657: { 8657: return __builtin_rindex (__s, __c); 8657: } 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8657: rindex (const char *__s, int __c) throw () 8657: { 8657: return __builtin_rindex (__s, __c); 8657: } 8657: 8657: } 8657: # 104 "/usr/include/strings.h" 3 4 8657: extern int ffs (int __i) throw () __attribute__ ((__const__)); 8657: 8657: 8657: 8657: 8657: 8657: extern int ffsl (long int __l) throw () __attribute__ ((__const__)); 8657: __extension__ extern int ffsll (long long int __ll) 8657: throw () __attribute__ ((__const__)); 8657: 8657: 8657: 8657: extern int strcasecmp (const char *__s1, const char *__s2) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 8657: 8657: 8657: 8657: extern int strncasecmp_l (const char *__s1, const char *__s2, 8657: size_t __n, locale_t __loc) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); 8657: 8657: 8657: } 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/strings_fortified.h" 1 3 4 8657: # 22 "/usr/include/arm-linux-gnueabihf/bits/strings_fortified.h" 3 4 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 8657: __attribute__ ((__leaf__)) bcopy (const void *__src, void *__dest, size_t __len) throw () 8657: { 8657: (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8657: } 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 8657: __attribute__ ((__leaf__)) bzero (void *__dest, size_t __len) throw () 8657: { 8657: (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0)); 8657: } 8657: # 145 "/usr/include/strings.h" 2 3 4 8657: # 432 "/usr/include/string.h" 2 3 4 8657: 8657: 8657: 8657: extern void explicit_bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: extern char *strsep (char **__restrict __stringp, 8657: const char *__restrict __delim) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: 8657: extern char *strsignal (int __sig) throw (); 8657: 8657: 8657: extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: extern char *__stpncpy (char *__restrict __dest, 8657: const char *__restrict __src, size_t __n) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: extern char *stpncpy (char *__restrict __dest, 8657: const char *__restrict __src, size_t __n) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: 8657: extern int strverscmp (const char *__s1, const char *__s2) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern "C++" char *basename (char *__filename) 8657: throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); 8657: extern "C++" const char *basename (const char *__filename) 8657: throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); 8657: # 494 "/usr/include/string.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/string_fortified.h" 1 3 4 8657: # 30 "/usr/include/arm-linux-gnueabihf/bits/string_fortified.h" 3 4 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8657: __attribute__ ((__leaf__)) memcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) throw () 8657: 8657: { 8657: return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8657: } 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8657: __attribute__ ((__leaf__)) memmove (void *__dest, const void *__src, size_t __len) throw () 8657: { 8657: return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8657: } 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8657: __attribute__ ((__leaf__)) mempcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) throw () 8657: 8657: { 8657: return __builtin___mempcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8657: } 8657: # 58 "/usr/include/arm-linux-gnueabihf/bits/string_fortified.h" 3 4 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8657: __attribute__ ((__leaf__)) memset (void *__dest, int __ch, size_t __len) throw () 8657: { 8657: # 71 "/usr/include/arm-linux-gnueabihf/bits/string_fortified.h" 3 4 8657: return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0)); 8657: } 8657: 8657: 8657: 8657: 8657: void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 8657: __attribute__ ((__leaf__)) explicit_bzero (void *__dest, size_t __len) throw () 8657: { 8657: __explicit_bzero_chk (__dest, __len, __builtin_object_size (__dest, 0)); 8657: } 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8657: __attribute__ ((__leaf__)) strcpy (char *__restrict __dest, const char *__restrict __src) throw () 8657: { 8657: return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 8657: } 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8657: __attribute__ ((__leaf__)) stpcpy (char *__restrict __dest, const char *__restrict __src) throw () 8657: { 8657: return __builtin___stpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 8657: } 8657: 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8657: __attribute__ ((__leaf__)) strncpy (char *__restrict __dest, const char *__restrict __src, size_t __len) throw () 8657: 8657: { 8657: return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); 8657: } 8657: 8657: 8657: extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n, 8657: size_t __destlen) throw (); 8657: extern char *__stpncpy_alias (char *__dest, const char *__src, size_t __n) throw () __asm__ ("" "stpncpy") 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8657: __attribute__ ((__leaf__)) stpncpy (char *__dest, const char *__src, size_t __n) throw () 8657: { 8657: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 8657: && (!__builtin_constant_p (__n) || __n > __builtin_object_size (__dest, 2 > 1))) 8657: return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1)); 8657: return __stpncpy_alias (__dest, __src, __n); 8657: } 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8657: __attribute__ ((__leaf__)) strcat (char *__restrict __dest, const char *__restrict __src) throw () 8657: { 8657: return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 8657: } 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8657: __attribute__ ((__leaf__)) strncat (char *__restrict __dest, const char *__restrict __src, size_t __len) throw () 8657: 8657: { 8657: return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); 8657: } 8657: # 495 "/usr/include/string.h" 2 3 4 8657: 8657: 8657: 8657: } 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qarraydata.h" 2 3 4 8657: 8657: 8657: 8657: struct __attribute__((visibility("default"))) QArrayData 8657: { 8657: QtPrivate::RefCount ref; 8657: int size; 8657: uint alloc : 31; 8657: uint capacityReserved : 1; 8657: 8657: qptrdiff offset; 8657: 8657: void *data() 8657: { 8657: do { } while ((false) && (size == 0 || offset < 0 || size_t(offset) >= sizeof(QArrayData))) 8657: ; 8657: return reinterpret_cast(this) + offset; 8657: } 8657: 8657: const void *data() const 8657: { 8657: do { } while ((false) && (size == 0 || offset < 0 || size_t(offset) >= sizeof(QArrayData))) 8657: ; 8657: return reinterpret_cast(this) + offset; 8657: } 8657: 8657: 8657: 8657: 8657: bool isMutable() const 8657: { 8657: return alloc != 0; 8657: } 8657: 8657: enum AllocationOption { 8657: CapacityReserved = 0x1, 8657: 8657: Unsharable = 0x2, 8657: 8657: RawData = 0x4, 8657: Grow = 0x8, 8657: 8657: Default = 0 8657: }; 8657: 8657: typedef QFlags AllocationOptions; 8657: 8657: size_t detachCapacity(size_t newSize) const 8657: { 8657: if (capacityReserved && newSize < alloc) 8657: return alloc; 8657: return newSize; 8657: } 8657: 8657: AllocationOptions detachFlags() const 8657: { 8657: AllocationOptions result; 8657: if (capacityReserved) 8657: result |= CapacityReserved; 8657: return result; 8657: } 8657: 8657: AllocationOptions cloneFlags() const 8657: { 8657: AllocationOptions result; 8657: if (capacityReserved) 8657: result |= CapacityReserved; 8657: return result; 8657: } 8657: 8657: [[nodiscard]] static QArrayData *allocate(size_t objectSize, size_t alignment, 8657: size_t capacity, AllocationOptions options = Default) noexcept; 8657: [[nodiscard]] static QArrayData *reallocateUnaligned(QArrayData *data, size_t objectSize, 8657: size_t newCapacity, AllocationOptions newOptions = Default) noexcept; 8657: static void deallocate(QArrayData *data, size_t objectSize, 8657: size_t alignment) noexcept; 8657: 8657: static const QArrayData shared_null[2]; 8657: static QArrayData *sharedNull() noexcept { return const_cast(shared_null); } 8657: }; 8657: 8657: constexpr inline QFlags operator|(QArrayData::AllocationOptions::enum_type f1, QArrayData::AllocationOptions::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QArrayData::AllocationOptions::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QArrayData::AllocationOptions::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: 8657: template 8657: struct QTypedArrayData 8657: : QArrayData 8657: { 8657: 8657: class iterator { 8657: public: 8657: T *i; 8657: typedef std::random_access_iterator_tag iterator_category; 8657: typedef int difference_type; 8657: typedef T value_type; 8657: typedef T *pointer; 8657: typedef T &reference; 8657: 8657: inline iterator() : i(nullptr) {} 8657: inline iterator(T *n) : i(n) {} 8657: inline iterator(const iterator &o): i(o.i){} 8657: inline T &operator*() const { return *i; } 8657: inline T *operator->() const { return i; } 8657: inline T &operator[](int j) const { return *(i + j); } 8657: inline bool operator==(const iterator &o) const { return i == o.i; } 8657: inline bool operator!=(const iterator &o) const { return i != o.i; } 8657: inline bool operator<(const iterator& other) const { return i < other.i; } 8657: inline bool operator<=(const iterator& other) const { return i <= other.i; } 8657: inline bool operator>(const iterator& other) const { return i > other.i; } 8657: inline bool operator>=(const iterator& other) const { return i >= other.i; } 8657: inline iterator &operator++() { ++i; return *this; } 8657: inline iterator operator++(int) { T *n = i; ++i; return n; } 8657: inline iterator &operator--() { i--; return *this; } 8657: inline iterator operator--(int) { T *n = i; i--; return n; } 8657: inline iterator &operator+=(int j) { i+=j; return *this; } 8657: inline iterator &operator-=(int j) { i-=j; return *this; } 8657: inline iterator operator+(int j) const { return iterator(i+j); } 8657: inline iterator operator-(int j) const { return iterator(i-j); } 8657: inline int operator-(iterator j) const { return i - j.i; } 8657: inline operator T*() const { return i; } 8657: }; 8657: friend class iterator; 8657: 8657: class const_iterator { 8657: public: 8657: const T *i; 8657: typedef std::random_access_iterator_tag iterator_category; 8657: typedef int difference_type; 8657: typedef T value_type; 8657: typedef const T *pointer; 8657: typedef const T &reference; 8657: 8657: inline const_iterator() : i(nullptr) {} 8657: inline const_iterator(const T *n) : i(n) {} 8657: inline const_iterator(const const_iterator &o): i(o.i) {} 8657: inline explicit const_iterator(const iterator &o): i(o.i) {} 8657: inline const T &operator*() const { return *i; } 8657: inline const T *operator->() const { return i; } 8657: inline const T &operator[](int j) const { return *(i + j); } 8657: inline bool operator==(const const_iterator &o) const { return i == o.i; } 8657: inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8657: inline bool operator<(const const_iterator& other) const { return i < other.i; } 8657: inline bool operator<=(const const_iterator& other) const { return i <= other.i; } 8657: inline bool operator>(const const_iterator& other) const { return i > other.i; } 8657: inline bool operator>=(const const_iterator& other) const { return i >= other.i; } 8657: inline const_iterator &operator++() { ++i; return *this; } 8657: inline const_iterator operator++(int) { const T *n = i; ++i; return n; } 8657: inline const_iterator &operator--() { i--; return *this; } 8657: inline const_iterator operator--(int) { const T *n = i; i--; return n; } 8657: inline const_iterator &operator+=(int j) { i+=j; return *this; } 8657: inline const_iterator &operator-=(int j) { i-=j; return *this; } 8657: inline const_iterator operator+(int j) const { return const_iterator(i+j); } 8657: inline const_iterator operator-(int j) const { return const_iterator(i-j); } 8657: inline int operator-(const_iterator j) const { return i - j.i; } 8657: inline operator const T*() const { return i; } 8657: }; 8657: friend class const_iterator; 8657: 8657: 8657: 8657: 8657: 8657: T *data() { return static_cast(QArrayData::data()); } 8657: const T *data() const { return static_cast(QArrayData::data()); } 8657: 8657: iterator begin(iterator = iterator()) { return data(); } 8657: iterator end(iterator = iterator()) { return data() + size; } 8657: const_iterator begin(const_iterator = const_iterator()) const { return data(); } 8657: const_iterator end(const_iterator = const_iterator()) const { return data() + size; } 8657: const_iterator constBegin(const_iterator = const_iterator()) const { return data(); } 8657: const_iterator constEnd(const_iterator = const_iterator()) const { return data() + size; } 8657: 8657: class AlignmentDummy { QArrayData header; T data; }; 8657: 8657: [[nodiscard]] static QTypedArrayData *allocate(size_t capacity, 8657: AllocationOptions options = Default) 8657: { 8657: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8657: return static_cast(QArrayData::allocate(sizeof(T), 8657: alignof(AlignmentDummy), capacity, options)); 8657: } 8657: 8657: static QTypedArrayData *reallocateUnaligned(QTypedArrayData *data, size_t capacity, 8657: AllocationOptions options = Default) 8657: { 8657: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8657: return static_cast(QArrayData::reallocateUnaligned(data, sizeof(T), 8657: capacity, options)); 8657: } 8657: 8657: static void deallocate(QArrayData *data) 8657: { 8657: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8657: QArrayData::deallocate(data, sizeof(T), alignof(AlignmentDummy)); 8657: } 8657: 8657: static QTypedArrayData *fromRawData(const T *data, size_t n, 8657: AllocationOptions options = Default) 8657: { 8657: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8657: QTypedArrayData *result = allocate(0, options | RawData); 8657: if (result) { 8657: do { } while ((false) && (!result->ref.isShared())); 8657: 8657: result->offset = reinterpret_cast(data) 8657: - reinterpret_cast(result); 8657: result->size = int(n); 8657: } 8657: return result; 8657: } 8657: 8657: static QTypedArrayData *sharedNull() noexcept 8657: { 8657: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8657: return static_cast(QArrayData::sharedNull()); 8657: } 8657: 8657: static QTypedArrayData *sharedEmpty() 8657: { 8657: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8657: return allocate( 0); 8657: } 8657: 8657: 8657: static QTypedArrayData *unsharableEmpty() 8657: { 8657: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8657: return allocate( 0, Unsharable); 8657: } 8657: 8657: }; 8657: 8657: template 8657: struct QStaticArrayData 8657: { 8657: QArrayData header; 8657: T data[N]; 8657: }; 8657: 8657: 8657: template 8657: struct QArrayDataPointerRef 8657: { 8657: QTypedArrayData *ptr; 8657: }; 8657: # 369 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qarraydata.h" 3 4 8657: namespace QtPrivate { 8657: struct __attribute__((visibility("default"))) QContainerImplHelper 8657: { 8657: enum CutResult { Null, Empty, Full, Subset }; 8657: static CutResult mid(int originalLength, int *position, int *length); 8657: }; 8657: } 8657: 8657: 8657: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 2 3 4 8657: 8657: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8657: # 36 "/usr/include/c++/8/stdlib.h" 3 4 8657: # 1 "/usr/include/c++/8/cstdlib" 1 3 4 8657: # 39 "/usr/include/c++/8/cstdlib" 3 4 8657: 8657: # 40 "/usr/include/c++/8/cstdlib" 3 8657: # 37 "/usr/include/c++/8/stdlib.h" 2 3 4 8657: 8657: using std::abort; 8657: using std::atexit; 8657: using std::exit; 8657: 8657: 8657: using std::at_quick_exit; 8657: 8657: 8657: using std::quick_exit; 8657: 8657: 8657: 8657: 8657: using std::div_t; 8657: using std::ldiv_t; 8657: 8657: using std::abs; 8657: using std::atof; 8657: using std::atoi; 8657: using std::atol; 8657: using std::bsearch; 8657: using std::calloc; 8657: using std::div; 8657: using std::free; 8657: using std::getenv; 8657: using std::labs; 8657: using std::ldiv; 8657: using std::malloc; 8657: 8657: using std::mblen; 8657: using std::mbstowcs; 8657: using std::mbtowc; 8657: 8657: using std::qsort; 8657: using std::rand; 8657: using std::realloc; 8657: using std::srand; 8657: using std::strtod; 8657: using std::strtol; 8657: using std::strtoul; 8657: using std::system; 8657: 8657: using std::wcstombs; 8657: using std::wctomb; 8657: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 2 3 4 8657: 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h" 1 3 4 8657: # 40 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h" 3 4 8657: typedef __builtin_va_list __gnuc_va_list; 8657: # 99 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h" 3 4 8657: typedef __gnuc_va_list va_list; 8657: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 2 3 4 8657: 8657: # 1 "/usr/include/c++/8/string" 1 3 4 8657: # 36 "/usr/include/c++/8/string" 3 4 8657: 8657: # 37 "/usr/include/c++/8/string" 3 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/stringfwd.h" 1 3 8657: # 37 "/usr/include/c++/8/bits/stringfwd.h" 3 8657: 8657: # 38 "/usr/include/c++/8/bits/stringfwd.h" 3 8657: 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct char_traits; 8657: 8657: template<> struct char_traits; 8657: 8657: 8657: template<> struct char_traits; 8657: 8657: 8657: 8657: 8657: template<> struct char_traits; 8657: template<> struct char_traits; 8657: 8657: 8657: namespace __cxx11 { 8657: 8657: template, 8657: typename _Alloc = allocator<_CharT> > 8657: class basic_string; 8657: 8657: 8657: typedef basic_string string; 8657: 8657: 8657: 8657: typedef basic_string wstring; 8657: 8657: 8657: 8657: 8657: 8657: typedef basic_string u16string; 8657: 8657: 8657: typedef basic_string u32string; 8657: 8657: 8657: } 8657: 8657: 8657: 8657: 8657: } 8657: # 40 "/usr/include/c++/8/string" 2 3 8657: # 1 "/usr/include/c++/8/bits/char_traits.h" 1 3 8657: # 37 "/usr/include/c++/8/bits/char_traits.h" 3 8657: 8657: # 38 "/usr/include/c++/8/bits/char_traits.h" 3 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/postypes.h" 1 3 8657: # 38 "/usr/include/c++/8/bits/postypes.h" 3 8657: 8657: # 39 "/usr/include/c++/8/bits/postypes.h" 3 8657: 8657: # 1 "/usr/include/c++/8/cwchar" 1 3 8657: # 39 "/usr/include/c++/8/cwchar" 3 8657: 8657: # 40 "/usr/include/c++/8/cwchar" 3 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/wchar.h" 1 3 4 8657: # 27 "/usr/include/wchar.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 8657: # 28 "/usr/include/wchar.h" 2 3 4 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/floatn.h" 1 3 4 8657: # 31 "/usr/include/wchar.h" 2 3 4 8657: 8657: 8657: 8657: 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8657: # 36 "/usr/include/wchar.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/wint_t.h" 1 3 4 8657: # 20 "/usr/include/arm-linux-gnueabihf/bits/types/wint_t.h" 3 4 8657: typedef unsigned int wint_t; 8657: # 42 "/usr/include/wchar.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/mbstate_t.h" 1 3 4 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/__mbstate_t.h" 1 3 4 8657: # 13 "/usr/include/arm-linux-gnueabihf/bits/types/__mbstate_t.h" 3 4 8657: typedef struct 8657: { 8657: int __count; 8657: union 8657: { 8657: unsigned int __wch; 8657: char __wchb[4]; 8657: } __value; 8657: } __mbstate_t; 8657: # 5 "/usr/include/arm-linux-gnueabihf/bits/types/mbstate_t.h" 2 3 4 8657: 8657: typedef __mbstate_t mbstate_t; 8657: # 43 "/usr/include/wchar.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/__FILE.h" 1 3 4 8657: 8657: 8657: 8657: struct _IO_FILE; 8657: typedef struct _IO_FILE __FILE; 8657: # 44 "/usr/include/wchar.h" 2 3 4 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/FILE.h" 1 3 4 8657: 8657: 8657: 8657: struct _IO_FILE; 8657: 8657: 8657: typedef struct _IO_FILE FILE; 8657: # 47 "/usr/include/wchar.h" 2 3 4 8657: # 79 "/usr/include/wchar.h" 3 4 8657: extern "C" { 8657: 8657: 8657: 8657: struct tm; 8657: 8657: 8657: 8657: extern wchar_t *wcscpy (wchar_t *__restrict __dest, 8657: const wchar_t *__restrict __src) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern wchar_t *wcsncpy (wchar_t *__restrict __dest, 8657: const wchar_t *__restrict __src, size_t __n) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern wchar_t *wcscat (wchar_t *__restrict __dest, 8657: const wchar_t *__restrict __src) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: extern wchar_t *wcsncat (wchar_t *__restrict __dest, 8657: const wchar_t *__restrict __src, size_t __n) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 8657: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) throw (); 8657: 8657: 8657: extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2, 8657: size_t __n) throw (); 8657: 8657: 8657: 8657: extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 8657: locale_t __loc) throw (); 8657: 8657: extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 8657: size_t __n, locale_t __loc) throw (); 8657: 8657: 8657: 8657: 8657: extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) throw (); 8657: 8657: 8657: 8657: extern size_t wcsxfrm (wchar_t *__restrict __s1, 8657: const wchar_t *__restrict __s2, size_t __n) throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2, 8657: locale_t __loc) throw (); 8657: 8657: 8657: 8657: 8657: extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2, 8657: size_t __n, locale_t __loc) throw (); 8657: 8657: 8657: extern wchar_t *wcsdup (const wchar_t *__s) throw () __attribute__ ((__malloc__)); 8657: 8657: 8657: 8657: 8657: extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc) 8657: throw () __asm ("wcschr") __attribute__ ((__pure__)); 8657: extern "C++" const wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc) 8657: throw () __asm ("wcschr") __attribute__ ((__pure__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc) 8657: throw () __asm ("wcsrchr") __attribute__ ((__pure__)); 8657: extern "C++" const wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc) 8657: throw () __asm ("wcsrchr") __attribute__ ((__pure__)); 8657: # 181 "/usr/include/wchar.h" 3 4 8657: extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc) 8657: throw () __attribute__ ((__pure__)); 8657: 8657: 8657: 8657: 8657: extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject) 8657: throw () __attribute__ ((__pure__)); 8657: 8657: 8657: extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept) 8657: throw () __attribute__ ((__pure__)); 8657: 8657: 8657: extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, const wchar_t *__accept) 8657: throw () __asm ("wcspbrk") __attribute__ ((__pure__)); 8657: extern "C++" const wchar_t *wcspbrk (const wchar_t *__wcs, 8657: const wchar_t *__accept) 8657: throw () __asm ("wcspbrk") __attribute__ ((__pure__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern "C++" wchar_t *wcsstr (wchar_t *__haystack, const wchar_t *__needle) 8657: throw () __asm ("wcsstr") __attribute__ ((__pure__)); 8657: extern "C++" const wchar_t *wcsstr (const wchar_t *__haystack, 8657: const wchar_t *__needle) 8657: throw () __asm ("wcsstr") __attribute__ ((__pure__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern wchar_t *wcstok (wchar_t *__restrict __s, 8657: const wchar_t *__restrict __delim, 8657: wchar_t **__restrict __ptr) throw (); 8657: 8657: 8657: extern size_t wcslen (const wchar_t *__s) throw () __attribute__ ((__pure__)); 8657: 8657: 8657: 8657: 8657: extern "C++" wchar_t *wcswcs (wchar_t *__haystack, const wchar_t *__needle) 8657: throw () __asm ("wcswcs") __attribute__ ((__pure__)); 8657: extern "C++" const wchar_t *wcswcs (const wchar_t *__haystack, 8657: const wchar_t *__needle) 8657: throw () __asm ("wcswcs") __attribute__ ((__pure__)); 8657: # 240 "/usr/include/wchar.h" 3 4 8657: extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen) 8657: throw () __attribute__ ((__pure__)); 8657: 8657: 8657: 8657: 8657: 8657: extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n) 8657: throw () __asm ("wmemchr") __attribute__ ((__pure__)); 8657: extern "C++" const wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, 8657: size_t __n) 8657: throw () __asm ("wmemchr") __attribute__ ((__pure__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 8657: throw () __attribute__ ((__pure__)); 8657: 8657: 8657: extern wchar_t *wmemcpy (wchar_t *__restrict __s1, 8657: const wchar_t *__restrict __s2, size_t __n) throw (); 8657: 8657: 8657: 8657: extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) 8657: throw (); 8657: 8657: 8657: extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); 8657: 8657: 8657: 8657: 8657: extern wchar_t *wmempcpy (wchar_t *__restrict __s1, 8657: const wchar_t *__restrict __s2, size_t __n) 8657: throw (); 8657: 8657: 8657: 8657: 8657: 8657: extern wint_t btowc (int __c) throw (); 8657: 8657: 8657: 8657: extern int wctob (wint_t __c) throw (); 8657: 8657: 8657: 8657: extern int mbsinit (const mbstate_t *__ps) throw () __attribute__ ((__pure__)); 8657: 8657: 8657: 8657: extern size_t mbrtowc (wchar_t *__restrict __pwc, 8657: const char *__restrict __s, size_t __n, 8657: mbstate_t *__restrict __p) throw (); 8657: 8657: 8657: extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, 8657: mbstate_t *__restrict __ps) throw (); 8657: 8657: 8657: extern size_t __mbrlen (const char *__restrict __s, size_t __n, 8657: mbstate_t *__restrict __ps) throw (); 8657: extern size_t mbrlen (const char *__restrict __s, size_t __n, 8657: mbstate_t *__restrict __ps) throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern wint_t __btowc_alias (int __c) __asm ("btowc"); 8657: extern __inline __attribute__ ((__gnu_inline__)) wint_t 8657: __attribute__ ((__leaf__)) btowc (int __c) throw () 8657: { return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f' 8657: ? (wint_t) __c : __btowc_alias (__c)); } 8657: 8657: extern int __wctob_alias (wint_t __c) __asm ("wctob"); 8657: extern __inline __attribute__ ((__gnu_inline__)) int 8657: __attribute__ ((__leaf__)) wctob (wint_t __wc) throw () 8657: { return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f' 8657: ? (int) __wc : __wctob_alias (__wc)); } 8657: 8657: extern __inline __attribute__ ((__gnu_inline__)) size_t 8657: __attribute__ ((__leaf__)) mbrlen (const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw () 8657: 8657: { return (__ps != __null 8657: ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); } 8657: 8657: 8657: 8657: 8657: extern size_t mbsrtowcs (wchar_t *__restrict __dst, 8657: const char **__restrict __src, size_t __len, 8657: mbstate_t *__restrict __ps) throw (); 8657: 8657: 8657: 8657: extern size_t wcsrtombs (char *__restrict __dst, 8657: const wchar_t **__restrict __src, size_t __len, 8657: mbstate_t *__restrict __ps) throw (); 8657: 8657: 8657: 8657: 8657: 8657: extern size_t mbsnrtowcs (wchar_t *__restrict __dst, 8657: const char **__restrict __src, size_t __nmc, 8657: size_t __len, mbstate_t *__restrict __ps) throw (); 8657: 8657: 8657: 8657: extern size_t wcsnrtombs (char *__restrict __dst, 8657: const wchar_t **__restrict __src, 8657: size_t __nwc, size_t __len, 8657: mbstate_t *__restrict __ps) throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int wcwidth (wchar_t __c) throw (); 8657: 8657: 8657: 8657: extern int wcswidth (const wchar_t *__s, size_t __n) throw (); 8657: 8657: 8657: 8657: 8657: 8657: extern double wcstod (const wchar_t *__restrict __nptr, 8657: wchar_t **__restrict __endptr) throw (); 8657: 8657: 8657: 8657: extern float wcstof (const wchar_t *__restrict __nptr, 8657: wchar_t **__restrict __endptr) throw (); 8657: extern long double wcstold (const wchar_t *__restrict __nptr, 8657: wchar_t **__restrict __endptr) throw (); 8657: # 397 "/usr/include/wchar.h" 3 4 8657: extern long int wcstol (const wchar_t *__restrict __nptr, 8657: wchar_t **__restrict __endptr, int __base) throw (); 8657: 8657: 8657: 8657: extern unsigned long int wcstoul (const wchar_t *__restrict __nptr, 8657: wchar_t **__restrict __endptr, int __base) 8657: throw (); 8657: 8657: 8657: 8657: 8657: __extension__ 8657: extern long long int wcstoll (const wchar_t *__restrict __nptr, 8657: wchar_t **__restrict __endptr, int __base) 8657: throw (); 8657: 8657: 8657: 8657: __extension__ 8657: extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr, 8657: wchar_t **__restrict __endptr, 8657: int __base) throw (); 8657: 8657: 8657: 8657: 8657: 8657: __extension__ 8657: extern long long int wcstoq (const wchar_t *__restrict __nptr, 8657: wchar_t **__restrict __endptr, int __base) 8657: throw (); 8657: 8657: 8657: 8657: __extension__ 8657: extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr, 8657: wchar_t **__restrict __endptr, 8657: int __base) throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern long int wcstol_l (const wchar_t *__restrict __nptr, 8657: wchar_t **__restrict __endptr, int __base, 8657: locale_t __loc) throw (); 8657: 8657: extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr, 8657: wchar_t **__restrict __endptr, 8657: int __base, locale_t __loc) throw (); 8657: 8657: __extension__ 8657: extern long long int wcstoll_l (const wchar_t *__restrict __nptr, 8657: wchar_t **__restrict __endptr, 8657: int __base, locale_t __loc) throw (); 8657: 8657: __extension__ 8657: extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr, 8657: wchar_t **__restrict __endptr, 8657: int __base, locale_t __loc) 8657: throw (); 8657: 8657: extern double wcstod_l (const wchar_t *__restrict __nptr, 8657: wchar_t **__restrict __endptr, locale_t __loc) 8657: throw (); 8657: 8657: extern float wcstof_l (const wchar_t *__restrict __nptr, 8657: wchar_t **__restrict __endptr, locale_t __loc) 8657: throw (); 8657: 8657: extern long double wcstold_l (const wchar_t *__restrict __nptr, 8657: wchar_t **__restrict __endptr, 8657: locale_t __loc) throw (); 8657: # 484 "/usr/include/wchar.h" 3 4 8657: extern wchar_t *wcpcpy (wchar_t *__restrict __dest, 8657: const wchar_t *__restrict __src) throw (); 8657: 8657: 8657: 8657: extern wchar_t *wcpncpy (wchar_t *__restrict __dest, 8657: const wchar_t *__restrict __src, size_t __n) 8657: throw (); 8657: # 500 "/usr/include/wchar.h" 3 4 8657: extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw (); 8657: 8657: 8657: 8657: 8657: 8657: extern int fwide (__FILE *__fp, int __mode) throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int fwprintf (__FILE *__restrict __stream, 8657: const wchar_t *__restrict __format, ...) 8657: ; 8657: 8657: 8657: 8657: 8657: extern int wprintf (const wchar_t *__restrict __format, ...) 8657: ; 8657: 8657: extern int swprintf (wchar_t *__restrict __s, size_t __n, 8657: const wchar_t *__restrict __format, ...) 8657: throw () ; 8657: 8657: 8657: 8657: 8657: 8657: extern int vfwprintf (__FILE *__restrict __s, 8657: const wchar_t *__restrict __format, 8657: __gnuc_va_list __arg) 8657: ; 8657: 8657: 8657: 8657: 8657: extern int vwprintf (const wchar_t *__restrict __format, 8657: __gnuc_va_list __arg) 8657: ; 8657: 8657: 8657: extern int vswprintf (wchar_t *__restrict __s, size_t __n, 8657: const wchar_t *__restrict __format, 8657: __gnuc_va_list __arg) 8657: throw () ; 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int fwscanf (__FILE *__restrict __stream, 8657: const wchar_t *__restrict __format, ...) 8657: ; 8657: 8657: 8657: 8657: 8657: extern int wscanf (const wchar_t *__restrict __format, ...) 8657: ; 8657: 8657: extern int swscanf (const wchar_t *__restrict __s, 8657: const wchar_t *__restrict __format, ...) 8657: throw () ; 8657: # 606 "/usr/include/wchar.h" 3 4 8657: extern int vfwscanf (__FILE *__restrict __s, 8657: const wchar_t *__restrict __format, 8657: __gnuc_va_list __arg) 8657: ; 8657: 8657: 8657: 8657: 8657: extern int vwscanf (const wchar_t *__restrict __format, 8657: __gnuc_va_list __arg) 8657: ; 8657: 8657: extern int vswscanf (const wchar_t *__restrict __s, 8657: const wchar_t *__restrict __format, 8657: __gnuc_va_list __arg) 8657: throw () ; 8657: # 660 "/usr/include/wchar.h" 3 4 8657: extern wint_t fgetwc (__FILE *__stream); 8657: extern wint_t getwc (__FILE *__stream); 8657: 8657: 8657: 8657: 8657: 8657: extern wint_t getwchar (void); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern wint_t fputwc (wchar_t __wc, __FILE *__stream); 8657: extern wint_t putwc (wchar_t __wc, __FILE *__stream); 8657: 8657: 8657: 8657: 8657: 8657: extern wint_t putwchar (wchar_t __wc); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, 8657: __FILE *__restrict __stream); 8657: 8657: 8657: 8657: 8657: 8657: extern int fputws (const wchar_t *__restrict __ws, 8657: __FILE *__restrict __stream); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern wint_t ungetwc (wint_t __wc, __FILE *__stream); 8657: # 715 "/usr/include/wchar.h" 3 4 8657: extern wint_t getwc_unlocked (__FILE *__stream); 8657: extern wint_t getwchar_unlocked (void); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern wint_t fgetwc_unlocked (__FILE *__stream); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); 8657: # 741 "/usr/include/wchar.h" 3 4 8657: extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); 8657: extern wint_t putwchar_unlocked (wchar_t __wc); 8657: # 751 "/usr/include/wchar.h" 3 4 8657: extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, 8657: __FILE *__restrict __stream); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int fputws_unlocked (const wchar_t *__restrict __ws, 8657: __FILE *__restrict __stream); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, 8657: const wchar_t *__restrict __format, 8657: const struct tm *__restrict __tp) throw (); 8657: 8657: 8657: 8657: 8657: extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, 8657: const wchar_t *__restrict __format, 8657: const struct tm *__restrict __tp, 8657: locale_t __loc) throw (); 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/wchar2.h" 1 3 4 8657: # 24 "/usr/include/arm-linux-gnueabihf/bits/wchar2.h" 3 4 8657: extern wchar_t *__wmemcpy_chk (wchar_t *__restrict __s1, 8657: const wchar_t *__restrict __s2, size_t __n, 8657: size_t __ns1) throw (); 8657: extern wchar_t *__wmemcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () __asm__ ("" "wmemcpy") 8657: 8657: 8657: ; 8657: 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") 8657: 8657: 8657: 8657: __attribute__((__warning__ ("wmemcpy called with length bigger than size of destination " "buffer"))) 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8657: __attribute__ ((__leaf__)) wmemcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () 8657: 8657: { 8657: if (__builtin_object_size (__s1, 0) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__n)) 8657: return __wmemcpy_chk (__s1, __s2, __n, 8657: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8657: 8657: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 8657: return __wmemcpy_chk_warn (__s1, __s2, __n, 8657: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8657: } 8657: return __wmemcpy_alias (__s1, __s2, __n); 8657: } 8657: 8657: 8657: extern wchar_t *__wmemmove_chk (wchar_t *__s1, const wchar_t *__s2, 8657: size_t __n, size_t __ns1) throw (); 8657: extern wchar_t *__wmemmove_alias (wchar_t *__s1, const wchar_t *__s2, size_t __n) throw () __asm__ ("" "wmemmove") 8657: 8657: ; 8657: extern wchar_t *__wmemmove_chk_warn (wchar_t *__s1, const wchar_t *__s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmemmove_chk") 8657: 8657: 8657: __attribute__((__warning__ ("wmemmove called with length bigger than size of destination " "buffer"))) 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8657: __attribute__ ((__leaf__)) wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) throw () 8657: { 8657: if (__builtin_object_size (__s1, 0) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__n)) 8657: return __wmemmove_chk (__s1, __s2, __n, 8657: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8657: 8657: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 8657: return __wmemmove_chk_warn (__s1, __s2, __n, 8657: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8657: } 8657: return __wmemmove_alias (__s1, __s2, __n); 8657: } 8657: 8657: 8657: 8657: extern wchar_t *__wmempcpy_chk (wchar_t *__restrict __s1, 8657: const wchar_t *__restrict __s2, size_t __n, 8657: size_t __ns1) throw (); 8657: extern wchar_t *__wmempcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () __asm__ ("" "wmempcpy") 8657: 8657: 8657: ; 8657: 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") 8657: 8657: 8657: 8657: __attribute__((__warning__ ("wmempcpy called with length bigger than size of destination " "buffer"))) 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8657: __attribute__ ((__leaf__)) wmempcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () 8657: 8657: { 8657: if (__builtin_object_size (__s1, 0) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__n)) 8657: return __wmempcpy_chk (__s1, __s2, __n, 8657: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8657: 8657: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 8657: return __wmempcpy_chk_warn (__s1, __s2, __n, 8657: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8657: } 8657: return __wmempcpy_alias (__s1, __s2, __n); 8657: } 8657: 8657: 8657: 8657: extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n, 8657: size_t __ns) throw (); 8657: extern wchar_t *__wmemset_alias (wchar_t *__s, wchar_t __c, size_t __n) throw () __asm__ ("" "wmemset") 8657: ; 8657: extern wchar_t *__wmemset_chk_warn (wchar_t *__s, wchar_t __c, size_t __n, size_t __ns) throw () __asm__ ("" "__wmemset_chk") 8657: 8657: 8657: __attribute__((__warning__ ("wmemset called with length bigger than size of destination " "buffer"))) 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8657: __attribute__ ((__leaf__)) wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw () 8657: { 8657: if (__builtin_object_size (__s, 0) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__n)) 8657: return __wmemset_chk (__s, __c, __n, __builtin_object_size (__s, 0) / sizeof (wchar_t)); 8657: 8657: if (__n > __builtin_object_size (__s, 0) / sizeof (wchar_t)) 8657: return __wmemset_chk_warn (__s, __c, __n, 8657: __builtin_object_size (__s, 0) / sizeof (wchar_t)); 8657: } 8657: return __wmemset_alias (__s, __c, __n); 8657: } 8657: 8657: 8657: extern wchar_t *__wcscpy_chk (wchar_t *__restrict __dest, 8657: const wchar_t *__restrict __src, 8657: size_t __n) throw (); 8657: extern wchar_t *__wcscpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcscpy") 8657: 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8657: __attribute__ ((__leaf__)) wcscpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 8657: { 8657: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8657: return __wcscpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8657: return __wcscpy_alias (__dest, __src); 8657: } 8657: 8657: 8657: extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest, 8657: const wchar_t *__restrict __src, 8657: size_t __destlen) throw (); 8657: extern wchar_t *__wcpcpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcpcpy") 8657: 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8657: __attribute__ ((__leaf__)) wcpcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 8657: { 8657: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8657: return __wcpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8657: return __wcpcpy_alias (__dest, __src); 8657: } 8657: 8657: 8657: extern wchar_t *__wcsncpy_chk (wchar_t *__restrict __dest, 8657: const wchar_t *__restrict __src, size_t __n, 8657: size_t __destlen) throw (); 8657: extern wchar_t *__wcsncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcsncpy") 8657: 8657: 8657: ; 8657: 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") 8657: 8657: 8657: 8657: __attribute__((__warning__ ("wcsncpy called with length bigger than size of destination " "buffer"))) 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8657: __attribute__ ((__leaf__)) wcsncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 8657: 8657: { 8657: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__n)) 8657: return __wcsncpy_chk (__dest, __src, __n, 8657: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8657: if (__n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) 8657: return __wcsncpy_chk_warn (__dest, __src, __n, 8657: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8657: } 8657: return __wcsncpy_alias (__dest, __src, __n); 8657: } 8657: 8657: 8657: extern wchar_t *__wcpncpy_chk (wchar_t *__restrict __dest, 8657: const wchar_t *__restrict __src, size_t __n, 8657: size_t __destlen) throw (); 8657: extern wchar_t *__wcpncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcpncpy") 8657: 8657: 8657: ; 8657: 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") 8657: 8657: 8657: 8657: __attribute__((__warning__ ("wcpncpy called with length bigger than size of destination " "buffer"))) 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8657: __attribute__ ((__leaf__)) wcpncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 8657: 8657: { 8657: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__n)) 8657: return __wcpncpy_chk (__dest, __src, __n, 8657: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8657: if (__n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) 8657: return __wcpncpy_chk_warn (__dest, __src, __n, 8657: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8657: } 8657: return __wcpncpy_alias (__dest, __src, __n); 8657: } 8657: 8657: 8657: extern wchar_t *__wcscat_chk (wchar_t *__restrict __dest, 8657: const wchar_t *__restrict __src, 8657: size_t __destlen) throw (); 8657: extern wchar_t *__wcscat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcscat") 8657: 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8657: __attribute__ ((__leaf__)) wcscat (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 8657: { 8657: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8657: return __wcscat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8657: return __wcscat_alias (__dest, __src); 8657: } 8657: 8657: 8657: extern wchar_t *__wcsncat_chk (wchar_t *__restrict __dest, 8657: const wchar_t *__restrict __src, 8657: size_t __n, size_t __destlen) throw (); 8657: extern wchar_t *__wcsncat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcsncat") 8657: 8657: 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8657: __attribute__ ((__leaf__)) wcsncat (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 8657: 8657: { 8657: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8657: return __wcsncat_chk (__dest, __src, __n, 8657: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8657: return __wcsncat_alias (__dest, __src, __n); 8657: } 8657: 8657: 8657: extern int __swprintf_chk (wchar_t *__restrict __s, size_t __n, 8657: int __flag, size_t __s_len, 8657: const wchar_t *__restrict __format, ...) 8657: throw () ; 8657: 8657: extern int __swprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) throw () __asm__ ("" "swprintf") 8657: 8657: 8657: ; 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: __attribute__ ((__leaf__)) swprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) throw () 8657: 8657: { 8657: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 || 2 > 1) 8657: return __swprintf_chk (__s, __n, 2 - 1, 8657: __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8657: __fmt, __builtin_va_arg_pack ()); 8657: return __swprintf_alias (__s, __n, __fmt, __builtin_va_arg_pack ()); 8657: } 8657: # 303 "/usr/include/arm-linux-gnueabihf/bits/wchar2.h" 3 4 8657: extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n, 8657: int __flag, size_t __s_len, 8657: const wchar_t *__restrict __format, 8657: __gnuc_va_list __arg) 8657: throw () ; 8657: 8657: extern int __vswprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) throw () __asm__ ("" "vswprintf") 8657: 8657: 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: __attribute__ ((__leaf__)) vswprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) throw () 8657: 8657: { 8657: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 || 2 > 1) 8657: return __vswprintf_chk (__s, __n, 2 - 1, 8657: __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), __fmt, __ap); 8657: return __vswprintf_alias (__s, __n, __fmt, __ap); 8657: } 8657: 8657: 8657: 8657: 8657: extern int __fwprintf_chk (__FILE *__restrict __stream, int __flag, 8657: const wchar_t *__restrict __format, ...); 8657: extern int __wprintf_chk (int __flag, const wchar_t *__restrict __format, 8657: ...); 8657: extern int __vfwprintf_chk (__FILE *__restrict __stream, int __flag, 8657: const wchar_t *__restrict __format, 8657: __gnuc_va_list __ap); 8657: extern int __vwprintf_chk (int __flag, const wchar_t *__restrict __format, 8657: __gnuc_va_list __ap); 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: wprintf (const wchar_t *__restrict __fmt, ...) 8657: { 8657: return __wprintf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 8657: } 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: fwprintf (__FILE *__restrict __stream, const wchar_t *__restrict __fmt, ...) 8657: { 8657: return __fwprintf_chk (__stream, 2 - 1, __fmt, 8657: __builtin_va_arg_pack ()); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: vwprintf (const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 8657: { 8657: return __vwprintf_chk (2 - 1, __fmt, __ap); 8657: } 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: vfwprintf (__FILE *__restrict __stream, 8657: const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 8657: { 8657: return __vfwprintf_chk (__stream, 2 - 1, __fmt, __ap); 8657: } 8657: 8657: 8657: 8657: extern wchar_t *__fgetws_chk (wchar_t *__restrict __s, size_t __size, int __n, 8657: __FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8657: extern wchar_t *__fgetws_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws") 8657: 8657: __attribute__ ((__warn_unused_result__)); 8657: extern wchar_t *__fgetws_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_chk") 8657: 8657: 8657: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws called with bigger size than length " "of destination buffer"))) 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 8657: fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) 8657: { 8657: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__n) || __n <= 0) 8657: return __fgetws_chk (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8657: __n, __stream); 8657: 8657: if ((size_t) __n > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t)) 8657: return __fgetws_chk_warn (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8657: __n, __stream); 8657: } 8657: return __fgetws_alias (__s, __n, __stream); 8657: } 8657: 8657: 8657: extern wchar_t *__fgetws_unlocked_chk (wchar_t *__restrict __s, size_t __size, 8657: int __n, __FILE *__restrict __stream) 8657: __attribute__ ((__warn_unused_result__)); 8657: extern wchar_t *__fgetws_unlocked_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws_unlocked") 8657: 8657: 8657: __attribute__ ((__warn_unused_result__)); 8657: extern wchar_t *__fgetws_unlocked_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_unlocked_chk") 8657: 8657: 8657: 8657: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws_unlocked called with bigger size than length " "of destination buffer"))) 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 8657: fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) 8657: { 8657: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__n) || __n <= 0) 8657: return __fgetws_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8657: __n, __stream); 8657: 8657: if ((size_t) __n > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t)) 8657: return __fgetws_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8657: __n, __stream); 8657: } 8657: return __fgetws_unlocked_alias (__s, __n, __stream); 8657: } 8657: 8657: 8657: 8657: extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar, 8657: mbstate_t *__restrict __p, 8657: size_t __buflen) throw () __attribute__ ((__warn_unused_result__)); 8657: extern size_t __wcrtomb_alias (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcrtomb") 8657: 8657: __attribute__ ((__warn_unused_result__)); 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 8657: __attribute__ ((__leaf__)) wcrtomb (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) throw () 8657: 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) 8657: return __wcrtomb_chk (__s, __wchar, __ps, __builtin_object_size (__s, 2 > 1)); 8657: return __wcrtomb_alias (__s, __wchar, __ps); 8657: } 8657: 8657: 8657: extern size_t __mbsrtowcs_chk (wchar_t *__restrict __dst, 8657: const char **__restrict __src, 8657: size_t __len, mbstate_t *__restrict __ps, 8657: size_t __dstlen) throw (); 8657: extern size_t __mbsrtowcs_alias (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "mbsrtowcs") 8657: 8657: 8657: 8657: ; 8657: 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") 8657: 8657: 8657: 8657: 8657: __attribute__((__warning__ ("mbsrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8657: __attribute__ ((__leaf__)) mbsrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () 8657: 8657: { 8657: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__len)) 8657: return __mbsrtowcs_chk (__dst, __src, __len, __ps, 8657: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8657: 8657: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 8657: return __mbsrtowcs_chk_warn (__dst, __src, __len, __ps, 8657: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8657: } 8657: return __mbsrtowcs_alias (__dst, __src, __len, __ps); 8657: } 8657: 8657: 8657: extern size_t __wcsrtombs_chk (char *__restrict __dst, 8657: const wchar_t **__restrict __src, 8657: size_t __len, mbstate_t *__restrict __ps, 8657: size_t __dstlen) throw (); 8657: extern size_t __wcsrtombs_alias (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcsrtombs") 8657: 8657: 8657: 8657: ; 8657: 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") 8657: 8657: 8657: 8657: 8657: __attribute__((__warning__ ("wcsrtombs called with dst buffer smaller than len"))); 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8657: __attribute__ ((__leaf__)) wcsrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () 8657: 8657: { 8657: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__len)) 8657: return __wcsrtombs_chk (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)); 8657: 8657: if (__len > __builtin_object_size (__dst, 2 > 1)) 8657: return __wcsrtombs_chk_warn (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)); 8657: } 8657: return __wcsrtombs_alias (__dst, __src, __len, __ps); 8657: } 8657: 8657: 8657: 8657: extern size_t __mbsnrtowcs_chk (wchar_t *__restrict __dst, 8657: const char **__restrict __src, size_t __nmc, 8657: size_t __len, mbstate_t *__restrict __ps, 8657: size_t __dstlen) throw (); 8657: 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") 8657: 8657: 8657: 8657: ; 8657: 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") 8657: 8657: 8657: 8657: 8657: __attribute__((__warning__ ("mbsnrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8657: __attribute__ ((__leaf__)) mbsnrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw () 8657: 8657: { 8657: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__len)) 8657: return __mbsnrtowcs_chk (__dst, __src, __nmc, __len, __ps, 8657: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8657: 8657: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 8657: return __mbsnrtowcs_chk_warn (__dst, __src, __nmc, __len, __ps, 8657: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8657: } 8657: return __mbsnrtowcs_alias (__dst, __src, __nmc, __len, __ps); 8657: } 8657: 8657: 8657: extern size_t __wcsnrtombs_chk (char *__restrict __dst, 8657: const wchar_t **__restrict __src, 8657: size_t __nwc, size_t __len, 8657: mbstate_t *__restrict __ps, size_t __dstlen) 8657: throw (); 8657: 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") 8657: 8657: 8657: 8657: ; 8657: 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") 8657: 8657: 8657: 8657: 8657: 8657: __attribute__((__warning__ ("wcsnrtombs called with dst buffer smaller than len"))); 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8657: __attribute__ ((__leaf__)) wcsnrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw () 8657: 8657: { 8657: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__len)) 8657: return __wcsnrtombs_chk (__dst, __src, __nwc, __len, __ps, 8657: __builtin_object_size (__dst, 2 > 1)); 8657: 8657: if (__len > __builtin_object_size (__dst, 2 > 1)) 8657: return __wcsnrtombs_chk_warn (__dst, __src, __nwc, __len, __ps, 8657: __builtin_object_size (__dst, 2 > 1)); 8657: } 8657: return __wcsnrtombs_alias (__dst, __src, __nwc, __len, __ps); 8657: } 8657: # 784 "/usr/include/wchar.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: } 8657: # 45 "/usr/include/c++/8/cwchar" 2 3 8657: # 62 "/usr/include/c++/8/cwchar" 3 8657: namespace std 8657: { 8657: using ::mbstate_t; 8657: } 8657: # 135 "/usr/include/c++/8/cwchar" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: using ::wint_t; 8657: 8657: using ::btowc; 8657: using ::fgetwc; 8657: using ::fgetws; 8657: using ::fputwc; 8657: using ::fputws; 8657: using ::fwide; 8657: using ::fwprintf; 8657: using ::fwscanf; 8657: using ::getwc; 8657: using ::getwchar; 8657: using ::mbrlen; 8657: using ::mbrtowc; 8657: using ::mbsinit; 8657: using ::mbsrtowcs; 8657: using ::putwc; 8657: using ::putwchar; 8657: 8657: using ::swprintf; 8657: 8657: using ::swscanf; 8657: using ::ungetwc; 8657: using ::vfwprintf; 8657: 8657: using ::vfwscanf; 8657: 8657: 8657: using ::vswprintf; 8657: 8657: 8657: using ::vswscanf; 8657: 8657: using ::vwprintf; 8657: 8657: using ::vwscanf; 8657: 8657: using ::wcrtomb; 8657: using ::wcscat; 8657: using ::wcscmp; 8657: using ::wcscoll; 8657: using ::wcscpy; 8657: using ::wcscspn; 8657: using ::wcsftime; 8657: using ::wcslen; 8657: using ::wcsncat; 8657: using ::wcsncmp; 8657: using ::wcsncpy; 8657: using ::wcsrtombs; 8657: using ::wcsspn; 8657: using ::wcstod; 8657: 8657: using ::wcstof; 8657: 8657: using ::wcstok; 8657: using ::wcstol; 8657: using ::wcstoul; 8657: using ::wcsxfrm; 8657: using ::wctob; 8657: using ::wmemcmp; 8657: using ::wmemcpy; 8657: using ::wmemmove; 8657: using ::wmemset; 8657: using ::wprintf; 8657: using ::wscanf; 8657: using ::wcschr; 8657: using ::wcspbrk; 8657: using ::wcsrchr; 8657: using ::wcsstr; 8657: using ::wmemchr; 8657: # 232 "/usr/include/c++/8/cwchar" 3 8657: 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: namespace __gnu_cxx 8657: { 8657: 8657: 8657: 8657: 8657: 8657: using ::wcstold; 8657: # 257 "/usr/include/c++/8/cwchar" 3 8657: using ::wcstoll; 8657: using ::wcstoull; 8657: 8657: } 8657: 8657: namespace std 8657: { 8657: using ::__gnu_cxx::wcstold; 8657: using ::__gnu_cxx::wcstoll; 8657: using ::__gnu_cxx::wcstoull; 8657: } 8657: # 277 "/usr/include/c++/8/cwchar" 3 8657: namespace std 8657: { 8657: 8657: using std::wcstof; 8657: 8657: 8657: using std::vfwscanf; 8657: 8657: 8657: using std::vswscanf; 8657: 8657: 8657: using std::vwscanf; 8657: 8657: 8657: 8657: using std::wcstold; 8657: using std::wcstoll; 8657: using std::wcstoull; 8657: 8657: } 8657: # 41 "/usr/include/c++/8/bits/postypes.h" 2 3 8657: # 68 "/usr/include/c++/8/bits/postypes.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 90 "/usr/include/c++/8/bits/postypes.h" 3 8657: typedef long long streamoff; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef ptrdiff_t streamsize; 8657: # 111 "/usr/include/c++/8/bits/postypes.h" 3 8657: template 8657: class fpos 8657: { 8657: private: 8657: streamoff _M_off; 8657: _StateT _M_state; 8657: 8657: public: 8657: 8657: 8657: 8657: 8657: fpos() 8657: : _M_off(0), _M_state() { } 8657: # 133 "/usr/include/c++/8/bits/postypes.h" 3 8657: fpos(streamoff __off) 8657: : _M_off(__off), _M_state() { } 8657: 8657: 8657: operator streamoff() const { return _M_off; } 8657: 8657: 8657: void 8657: state(_StateT __st) 8657: { _M_state = __st; } 8657: 8657: 8657: _StateT 8657: state() const 8657: { return _M_state; } 8657: 8657: 8657: 8657: 8657: 8657: fpos& 8657: operator+=(streamoff __off) 8657: { 8657: _M_off += __off; 8657: return *this; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: fpos& 8657: operator-=(streamoff __off) 8657: { 8657: _M_off -= __off; 8657: return *this; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: fpos 8657: operator+(streamoff __off) const 8657: { 8657: fpos __pos(*this); 8657: __pos += __off; 8657: return __pos; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: fpos 8657: operator-(streamoff __off) const 8657: { 8657: fpos __pos(*this); 8657: __pos -= __off; 8657: return __pos; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: streamoff 8657: operator-(const fpos& __other) const 8657: { return _M_off - __other._M_off; } 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline bool 8657: operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 8657: { return streamoff(__lhs) == streamoff(__rhs); } 8657: 8657: template 8657: inline bool 8657: operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 8657: { return streamoff(__lhs) != streamoff(__rhs); } 8657: 8657: 8657: 8657: 8657: 8657: typedef fpos streampos; 8657: 8657: typedef fpos wstreampos; 8657: 8657: 8657: 8657: typedef fpos u16streampos; 8657: 8657: typedef fpos u32streampos; 8657: 8657: 8657: 8657: } 8657: # 41 "/usr/include/c++/8/bits/char_traits.h" 2 3 8657: # 1 "/usr/include/c++/8/cwchar" 1 3 8657: # 39 "/usr/include/c++/8/cwchar" 3 8657: 8657: # 40 "/usr/include/c++/8/cwchar" 3 8657: # 42 "/usr/include/c++/8/bits/char_traits.h" 2 3 8657: 8657: 8657: 8657: 8657: 8657: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 61 "/usr/include/c++/8/bits/char_traits.h" 3 8657: template 8657: struct _Char_types 8657: { 8657: typedef unsigned long int_type; 8657: typedef std::streampos pos_type; 8657: typedef std::streamoff off_type; 8657: typedef std::mbstate_t state_type; 8657: }; 8657: # 86 "/usr/include/c++/8/bits/char_traits.h" 3 8657: template 8657: struct char_traits 8657: { 8657: typedef _CharT char_type; 8657: typedef typename _Char_types<_CharT>::int_type int_type; 8657: typedef typename _Char_types<_CharT>::pos_type pos_type; 8657: typedef typename _Char_types<_CharT>::off_type off_type; 8657: typedef typename _Char_types<_CharT>::state_type state_type; 8657: 8657: static void 8657: assign(char_type& __c1, const char_type& __c2) 8657: { __c1 = __c2; } 8657: 8657: static constexpr bool 8657: eq(const char_type& __c1, const char_type& __c2) 8657: { return __c1 == __c2; } 8657: 8657: static constexpr bool 8657: lt(const char_type& __c1, const char_type& __c2) 8657: { return __c1 < __c2; } 8657: 8657: static int 8657: compare(const char_type* __s1, const char_type* __s2, std::size_t __n); 8657: 8657: static std::size_t 8657: length(const char_type* __s); 8657: 8657: static const char_type* 8657: find(const char_type* __s, std::size_t __n, const char_type& __a); 8657: 8657: static char_type* 8657: move(char_type* __s1, const char_type* __s2, std::size_t __n); 8657: 8657: static char_type* 8657: copy(char_type* __s1, const char_type* __s2, std::size_t __n); 8657: 8657: static char_type* 8657: assign(char_type* __s, std::size_t __n, char_type __a); 8657: 8657: static constexpr char_type 8657: to_char_type(const int_type& __c) 8657: { return static_cast(__c); } 8657: 8657: static constexpr int_type 8657: to_int_type(const char_type& __c) 8657: { return static_cast(__c); } 8657: 8657: static constexpr bool 8657: eq_int_type(const int_type& __c1, const int_type& __c2) 8657: { return __c1 == __c2; } 8657: 8657: static constexpr int_type 8657: eof() 8657: { return static_cast(-1); } 8657: 8657: static constexpr int_type 8657: not_eof(const int_type& __c) 8657: { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); } 8657: }; 8657: 8657: 8657: 8657: template 8657: int 8657: char_traits<_CharT>:: 8657: compare(const char_type* __s1, const char_type* __s2, std::size_t __n) 8657: { 8657: for (std::size_t __i = 0; __i < __n; ++__i) 8657: if (lt(__s1[__i], __s2[__i])) 8657: return -1; 8657: else if (lt(__s2[__i], __s1[__i])) 8657: return 1; 8657: return 0; 8657: } 8657: 8657: template 8657: std::size_t 8657: char_traits<_CharT>:: 8657: length(const char_type* __p) 8657: { 8657: std::size_t __i = 0; 8657: while (!eq(__p[__i], char_type())) 8657: ++__i; 8657: return __i; 8657: } 8657: 8657: template 8657: const typename char_traits<_CharT>::char_type* 8657: char_traits<_CharT>:: 8657: find(const char_type* __s, std::size_t __n, const char_type& __a) 8657: { 8657: for (std::size_t __i = 0; __i < __n; ++__i) 8657: if (eq(__s[__i], __a)) 8657: return __s + __i; 8657: return 0; 8657: } 8657: 8657: template 8657: typename char_traits<_CharT>::char_type* 8657: char_traits<_CharT>:: 8657: move(char_type* __s1, const char_type* __s2, std::size_t __n) 8657: { 8657: return static_cast<_CharT*>(__builtin_memmove(__s1, __s2, 8657: __n * sizeof(char_type))); 8657: } 8657: 8657: template 8657: typename char_traits<_CharT>::char_type* 8657: char_traits<_CharT>:: 8657: copy(char_type* __s1, const char_type* __s2, std::size_t __n) 8657: { 8657: 8657: std::copy(__s2, __s2 + __n, __s1); 8657: return __s1; 8657: } 8657: 8657: template 8657: typename char_traits<_CharT>::char_type* 8657: char_traits<_CharT>:: 8657: assign(char_type* __s, std::size_t __n, char_type __a) 8657: { 8657: 8657: std::fill_n(__s, __n, __a); 8657: return __s; 8657: } 8657: 8657: 8657: } 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 268 "/usr/include/c++/8/bits/char_traits.h" 3 8657: template 8657: struct char_traits : public __gnu_cxx::char_traits<_CharT> 8657: { }; 8657: 8657: 8657: 8657: template<> 8657: struct char_traits 8657: { 8657: typedef char char_type; 8657: typedef int int_type; 8657: typedef streampos pos_type; 8657: typedef streamoff off_type; 8657: typedef mbstate_t state_type; 8657: 8657: static void 8657: assign(char_type& __c1, const char_type& __c2) noexcept 8657: { __c1 = __c2; } 8657: 8657: static constexpr bool 8657: eq(const char_type& __c1, const char_type& __c2) noexcept 8657: { return __c1 == __c2; } 8657: 8657: static constexpr bool 8657: lt(const char_type& __c1, const char_type& __c2) noexcept 8657: { 8657: 8657: return (static_cast(__c1) 8657: < static_cast(__c2)); 8657: } 8657: 8657: static int 8657: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: if (__n == 0) 8657: return 0; 8657: return __builtin_memcmp(__s1, __s2, __n); 8657: } 8657: 8657: static size_t 8657: length(const char_type* __s) 8657: { 8657: 8657: 8657: 8657: 8657: return __builtin_strlen(__s); 8657: } 8657: 8657: static const char_type* 8657: find(const char_type* __s, size_t __n, const char_type& __a) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: if (__n == 0) 8657: return 0; 8657: return static_cast(__builtin_memchr(__s, __a, __n)); 8657: } 8657: 8657: static char_type* 8657: move(char_type* __s1, const char_type* __s2, size_t __n) 8657: { 8657: if (__n == 0) 8657: return __s1; 8657: return static_cast(__builtin_memmove(__s1, __s2, __n)); 8657: } 8657: 8657: static char_type* 8657: copy(char_type* __s1, const char_type* __s2, size_t __n) 8657: { 8657: if (__n == 0) 8657: return __s1; 8657: return static_cast(__builtin_memcpy(__s1, __s2, __n)); 8657: } 8657: 8657: static char_type* 8657: assign(char_type* __s, size_t __n, char_type __a) 8657: { 8657: if (__n == 0) 8657: return __s; 8657: return static_cast(__builtin_memset(__s, __a, __n)); 8657: } 8657: 8657: static constexpr char_type 8657: to_char_type(const int_type& __c) noexcept 8657: { return static_cast(__c); } 8657: 8657: 8657: 8657: static constexpr int_type 8657: to_int_type(const char_type& __c) noexcept 8657: { return static_cast(static_cast(__c)); } 8657: 8657: static constexpr bool 8657: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8657: { return __c1 == __c2; } 8657: 8657: static constexpr int_type 8657: eof() noexcept 8657: { return static_cast(-1); } 8657: 8657: static constexpr int_type 8657: not_eof(const int_type& __c) noexcept 8657: { return (__c == eof()) ? 0 : __c; } 8657: }; 8657: 8657: 8657: 8657: 8657: template<> 8657: struct char_traits 8657: { 8657: typedef wchar_t char_type; 8657: typedef wint_t int_type; 8657: typedef streamoff off_type; 8657: typedef wstreampos pos_type; 8657: typedef mbstate_t state_type; 8657: 8657: static void 8657: assign(char_type& __c1, const char_type& __c2) noexcept 8657: { __c1 = __c2; } 8657: 8657: static constexpr bool 8657: eq(const char_type& __c1, const char_type& __c2) noexcept 8657: { return __c1 == __c2; } 8657: 8657: static constexpr bool 8657: lt(const char_type& __c1, const char_type& __c2) noexcept 8657: { return __c1 < __c2; } 8657: 8657: static int 8657: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: if (__n == 0) 8657: return 0; 8657: else 8657: return wmemcmp(__s1, __s2, __n); 8657: } 8657: 8657: static size_t 8657: length(const char_type* __s) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: return wcslen(__s); 8657: } 8657: 8657: static const char_type* 8657: find(const char_type* __s, size_t __n, const char_type& __a) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: if (__n == 0) 8657: return 0; 8657: else 8657: return wmemchr(__s, __a, __n); 8657: } 8657: 8657: static char_type* 8657: move(char_type* __s1, const char_type* __s2, size_t __n) 8657: { 8657: if (__n == 0) 8657: return __s1; 8657: return wmemmove(__s1, __s2, __n); 8657: } 8657: 8657: static char_type* 8657: copy(char_type* __s1, const char_type* __s2, size_t __n) 8657: { 8657: if (__n == 0) 8657: return __s1; 8657: return wmemcpy(__s1, __s2, __n); 8657: } 8657: 8657: static char_type* 8657: assign(char_type* __s, size_t __n, char_type __a) 8657: { 8657: if (__n == 0) 8657: return __s; 8657: return wmemset(__s, __a, __n); 8657: } 8657: 8657: static constexpr char_type 8657: to_char_type(const int_type& __c) noexcept 8657: { return char_type(__c); } 8657: 8657: static constexpr int_type 8657: to_int_type(const char_type& __c) noexcept 8657: { return int_type(__c); } 8657: 8657: static constexpr bool 8657: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8657: { return __c1 == __c2; } 8657: 8657: static constexpr int_type 8657: eof() noexcept 8657: { return static_cast((0xffffffffu)); } 8657: 8657: static constexpr int_type 8657: not_eof(const int_type& __c) noexcept 8657: { return eq_int_type(__c, eof()) ? 0 : __c; } 8657: }; 8657: 8657: 8657: 8657: } 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/cstdint" 1 3 8657: # 32 "/usr/include/c++/8/cstdint" 3 8657: 8657: # 33 "/usr/include/c++/8/cstdint" 3 8657: # 46 "/usr/include/c++/8/cstdint" 3 8657: namespace std 8657: { 8657: using ::int8_t; 8657: using ::int16_t; 8657: using ::int32_t; 8657: using ::int64_t; 8657: 8657: using ::int_fast8_t; 8657: using ::int_fast16_t; 8657: using ::int_fast32_t; 8657: using ::int_fast64_t; 8657: 8657: using ::int_least8_t; 8657: using ::int_least16_t; 8657: using ::int_least32_t; 8657: using ::int_least64_t; 8657: 8657: using ::intmax_t; 8657: using ::intptr_t; 8657: 8657: using ::uint8_t; 8657: using ::uint16_t; 8657: using ::uint32_t; 8657: using ::uint64_t; 8657: 8657: using ::uint_fast8_t; 8657: using ::uint_fast16_t; 8657: using ::uint_fast32_t; 8657: using ::uint_fast64_t; 8657: 8657: using ::uint_least8_t; 8657: using ::uint_least16_t; 8657: using ::uint_least32_t; 8657: using ::uint_least64_t; 8657: 8657: using ::uintmax_t; 8657: using ::uintptr_t; 8657: } 8657: # 502 "/usr/include/c++/8/bits/char_traits.h" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: template<> 8657: struct char_traits 8657: { 8657: typedef char16_t char_type; 8657: typedef uint_least16_t int_type; 8657: typedef streamoff off_type; 8657: typedef u16streampos pos_type; 8657: typedef mbstate_t state_type; 8657: 8657: static void 8657: assign(char_type& __c1, const char_type& __c2) noexcept 8657: { __c1 = __c2; } 8657: 8657: static constexpr bool 8657: eq(const char_type& __c1, const char_type& __c2) noexcept 8657: { return __c1 == __c2; } 8657: 8657: static constexpr bool 8657: lt(const char_type& __c1, const char_type& __c2) noexcept 8657: { return __c1 < __c2; } 8657: 8657: static int 8657: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8657: { 8657: for (size_t __i = 0; __i < __n; ++__i) 8657: if (lt(__s1[__i], __s2[__i])) 8657: return -1; 8657: else if (lt(__s2[__i], __s1[__i])) 8657: return 1; 8657: return 0; 8657: } 8657: 8657: static size_t 8657: length(const char_type* __s) 8657: { 8657: size_t __i = 0; 8657: while (!eq(__s[__i], char_type())) 8657: ++__i; 8657: return __i; 8657: } 8657: 8657: static const char_type* 8657: find(const char_type* __s, size_t __n, const char_type& __a) 8657: { 8657: for (size_t __i = 0; __i < __n; ++__i) 8657: if (eq(__s[__i], __a)) 8657: return __s + __i; 8657: return 0; 8657: } 8657: 8657: static char_type* 8657: move(char_type* __s1, const char_type* __s2, size_t __n) 8657: { 8657: if (__n == 0) 8657: return __s1; 8657: return (static_cast 8657: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 8657: } 8657: 8657: static char_type* 8657: copy(char_type* __s1, const char_type* __s2, size_t __n) 8657: { 8657: if (__n == 0) 8657: return __s1; 8657: return (static_cast 8657: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 8657: } 8657: 8657: static char_type* 8657: assign(char_type* __s, size_t __n, char_type __a) 8657: { 8657: for (size_t __i = 0; __i < __n; ++__i) 8657: assign(__s[__i], __a); 8657: return __s; 8657: } 8657: 8657: static constexpr char_type 8657: to_char_type(const int_type& __c) noexcept 8657: { return char_type(__c); } 8657: 8657: static constexpr int_type 8657: to_int_type(const char_type& __c) noexcept 8657: { return __c == eof() ? int_type(0xfffd) : int_type(__c); } 8657: 8657: static constexpr bool 8657: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8657: { return __c1 == __c2; } 8657: 8657: static constexpr int_type 8657: eof() noexcept 8657: { return static_cast(-1); } 8657: 8657: static constexpr int_type 8657: not_eof(const int_type& __c) noexcept 8657: { return eq_int_type(__c, eof()) ? 0 : __c; } 8657: }; 8657: 8657: template<> 8657: struct char_traits 8657: { 8657: typedef char32_t char_type; 8657: typedef uint_least32_t int_type; 8657: typedef streamoff off_type; 8657: typedef u32streampos pos_type; 8657: typedef mbstate_t state_type; 8657: 8657: static void 8657: assign(char_type& __c1, const char_type& __c2) noexcept 8657: { __c1 = __c2; } 8657: 8657: static constexpr bool 8657: eq(const char_type& __c1, const char_type& __c2) noexcept 8657: { return __c1 == __c2; } 8657: 8657: static constexpr bool 8657: lt(const char_type& __c1, const char_type& __c2) noexcept 8657: { return __c1 < __c2; } 8657: 8657: static int 8657: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8657: { 8657: for (size_t __i = 0; __i < __n; ++__i) 8657: if (lt(__s1[__i], __s2[__i])) 8657: return -1; 8657: else if (lt(__s2[__i], __s1[__i])) 8657: return 1; 8657: return 0; 8657: } 8657: 8657: static size_t 8657: length(const char_type* __s) 8657: { 8657: size_t __i = 0; 8657: while (!eq(__s[__i], char_type())) 8657: ++__i; 8657: return __i; 8657: } 8657: 8657: static const char_type* 8657: find(const char_type* __s, size_t __n, const char_type& __a) 8657: { 8657: for (size_t __i = 0; __i < __n; ++__i) 8657: if (eq(__s[__i], __a)) 8657: return __s + __i; 8657: return 0; 8657: } 8657: 8657: static char_type* 8657: move(char_type* __s1, const char_type* __s2, size_t __n) 8657: { 8657: if (__n == 0) 8657: return __s1; 8657: return (static_cast 8657: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 8657: } 8657: 8657: static char_type* 8657: copy(char_type* __s1, const char_type* __s2, size_t __n) 8657: { 8657: if (__n == 0) 8657: return __s1; 8657: return (static_cast 8657: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 8657: } 8657: 8657: static char_type* 8657: assign(char_type* __s, size_t __n, char_type __a) 8657: { 8657: for (size_t __i = 0; __i < __n; ++__i) 8657: assign(__s[__i], __a); 8657: return __s; 8657: } 8657: 8657: static constexpr char_type 8657: to_char_type(const int_type& __c) noexcept 8657: { return char_type(__c); } 8657: 8657: static constexpr int_type 8657: to_int_type(const char_type& __c) noexcept 8657: { return int_type(__c); } 8657: 8657: static constexpr bool 8657: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8657: { return __c1 == __c2; } 8657: 8657: static constexpr int_type 8657: eof() noexcept 8657: { return static_cast(-1); } 8657: 8657: static constexpr int_type 8657: not_eof(const int_type& __c) noexcept 8657: { return eq_int_type(__c, eof()) ? 0 : __c; } 8657: }; 8657: 8657: 8657: } 8657: # 41 "/usr/include/c++/8/string" 2 3 8657: # 1 "/usr/include/c++/8/bits/allocator.h" 1 3 8657: # 46 "/usr/include/c++/8/bits/allocator.h" 3 8657: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++allocator.h" 1 3 8657: # 33 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++allocator.h" 3 8657: # 1 "/usr/include/c++/8/ext/new_allocator.h" 1 3 8657: # 40 "/usr/include/c++/8/ext/new_allocator.h" 3 8657: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: using std::size_t; 8657: using std::ptrdiff_t; 8657: # 57 "/usr/include/c++/8/ext/new_allocator.h" 3 8657: template 8657: class new_allocator 8657: { 8657: public: 8657: typedef size_t size_type; 8657: typedef ptrdiff_t difference_type; 8657: typedef _Tp* pointer; 8657: typedef const _Tp* const_pointer; 8657: typedef _Tp& reference; 8657: typedef const _Tp& const_reference; 8657: typedef _Tp value_type; 8657: 8657: template 8657: struct rebind 8657: { typedef new_allocator<_Tp1> other; }; 8657: 8657: 8657: 8657: 8657: typedef std::true_type propagate_on_container_move_assignment; 8657: 8657: 8657: new_allocator() noexcept { } 8657: 8657: new_allocator(const new_allocator&) noexcept { } 8657: 8657: template 8657: new_allocator(const new_allocator<_Tp1>&) noexcept { } 8657: 8657: ~new_allocator() noexcept { } 8657: 8657: pointer 8657: address(reference __x) const noexcept 8657: { return std::__addressof(__x); } 8657: 8657: const_pointer 8657: address(const_reference __x) const noexcept 8657: { return std::__addressof(__x); } 8657: 8657: 8657: 8657: pointer 8657: allocate(size_type __n, const void* = static_cast(0)) 8657: { 8657: if (__n > this->max_size()) 8657: std::__throw_bad_alloc(); 8657: # 111 "/usr/include/c++/8/ext/new_allocator.h" 3 8657: return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 8657: } 8657: 8657: 8657: void 8657: deallocate(pointer __p, size_type) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ::operator delete(__p); 8657: } 8657: 8657: size_type 8657: max_size() const noexcept 8657: { return size_t(-1) / sizeof(_Tp); } 8657: 8657: 8657: template 8657: void 8657: construct(_Up* __p, _Args&&... __args) 8657: { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } 8657: 8657: template 8657: void 8657: destroy(_Up* __p) { __p->~_Up(); } 8657: # 151 "/usr/include/c++/8/ext/new_allocator.h" 3 8657: }; 8657: 8657: template 8657: inline bool 8657: operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&) 8657: { return true; } 8657: 8657: template 8657: inline bool 8657: operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&) 8657: { return false; } 8657: 8657: 8657: } 8657: # 34 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++allocator.h" 2 3 8657: 8657: 8657: namespace std 8657: { 8657: # 47 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++allocator.h" 3 8657: template 8657: using __allocator_base = __gnu_cxx::new_allocator<_Tp>; 8657: } 8657: # 47 "/usr/include/c++/8/bits/allocator.h" 2 3 8657: # 57 "/usr/include/c++/8/bits/allocator.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template<> 8657: class allocator 8657: { 8657: public: 8657: typedef size_t size_type; 8657: typedef ptrdiff_t difference_type; 8657: typedef void* pointer; 8657: typedef const void* const_pointer; 8657: typedef void value_type; 8657: 8657: template 8657: struct rebind 8657: { typedef allocator<_Tp1> other; }; 8657: 8657: 8657: 8657: 8657: typedef true_type propagate_on_container_move_assignment; 8657: 8657: typedef true_type is_always_equal; 8657: 8657: template 8657: void 8657: construct(_Up* __p, _Args&&... __args) 8657: { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } 8657: 8657: template 8657: void 8657: destroy(_Up* __p) { __p->~_Up(); } 8657: 8657: }; 8657: # 107 "/usr/include/c++/8/bits/allocator.h" 3 8657: template 8657: class allocator : public __allocator_base<_Tp> 8657: { 8657: public: 8657: typedef size_t size_type; 8657: typedef ptrdiff_t difference_type; 8657: typedef _Tp* pointer; 8657: typedef const _Tp* const_pointer; 8657: typedef _Tp& reference; 8657: typedef const _Tp& const_reference; 8657: typedef _Tp value_type; 8657: 8657: template 8657: struct rebind 8657: { typedef allocator<_Tp1> other; }; 8657: 8657: 8657: 8657: 8657: typedef true_type propagate_on_container_move_assignment; 8657: 8657: typedef true_type is_always_equal; 8657: 8657: 8657: allocator() throw() { } 8657: 8657: allocator(const allocator& __a) throw() 8657: : __allocator_base<_Tp>(__a) { } 8657: 8657: template 8657: allocator(const allocator<_Tp1>&) throw() { } 8657: 8657: ~allocator() throw() { } 8657: 8657: 8657: }; 8657: 8657: template 8657: inline bool 8657: operator==(const allocator<_T1>&, const allocator<_T2>&) 8657: noexcept 8657: { return true; } 8657: 8657: template 8657: inline bool 8657: operator==(const allocator<_Tp>&, const allocator<_Tp>&) 8657: noexcept 8657: { return true; } 8657: 8657: template 8657: inline bool 8657: operator!=(const allocator<_T1>&, const allocator<_T2>&) 8657: noexcept 8657: { return false; } 8657: 8657: template 8657: inline bool 8657: operator!=(const allocator<_Tp>&, const allocator<_Tp>&) 8657: noexcept 8657: { return false; } 8657: 8657: 8657: 8657: template 8657: class allocator 8657: { 8657: public: 8657: typedef _Tp value_type; 8657: template allocator(const allocator<_Up>&) { } 8657: }; 8657: 8657: template 8657: class allocator 8657: { 8657: public: 8657: typedef _Tp value_type; 8657: template allocator(const allocator<_Up>&) { } 8657: }; 8657: 8657: template 8657: class allocator 8657: { 8657: public: 8657: typedef _Tp value_type; 8657: template allocator(const allocator<_Up>&) { } 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern template class allocator; 8657: extern template class allocator; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct __alloc_swap 8657: { static void _S_do_it(_Alloc&, _Alloc&) noexcept { } }; 8657: 8657: template 8657: struct __alloc_swap<_Alloc, false> 8657: { 8657: static void 8657: _S_do_it(_Alloc& __one, _Alloc& __two) noexcept 8657: { 8657: 8657: if (__one != __two) 8657: swap(__one, __two); 8657: } 8657: }; 8657: 8657: 8657: template 8657: struct __alloc_neq 8657: { 8657: static bool 8657: _S_do_it(const _Alloc&, const _Alloc&) 8657: { return false; } 8657: }; 8657: 8657: template 8657: struct __alloc_neq<_Alloc, false> 8657: { 8657: static bool 8657: _S_do_it(const _Alloc& __one, const _Alloc& __two) 8657: { return __one != __two; } 8657: }; 8657: 8657: 8657: template, 8657: is_nothrow_move_constructible>::value> 8657: struct __shrink_to_fit_aux 8657: { static bool _S_do_it(_Tp&) noexcept { return false; } }; 8657: 8657: template 8657: struct __shrink_to_fit_aux<_Tp, true> 8657: { 8657: static bool 8657: _S_do_it(_Tp& __c) noexcept 8657: { 8657: 8657: try 8657: { 8657: _Tp(__make_move_if_noexcept_iterator(__c.begin()), 8657: __make_move_if_noexcept_iterator(__c.end()), 8657: __c.get_allocator()).swap(__c); 8657: return true; 8657: } 8657: catch(...) 8657: { return false; } 8657: 8657: 8657: 8657: } 8657: }; 8657: 8657: 8657: 8657: } 8657: # 42 "/usr/include/c++/8/string" 2 3 8657: 8657: # 1 "/usr/include/c++/8/bits/localefwd.h" 1 3 8657: # 37 "/usr/include/c++/8/bits/localefwd.h" 3 8657: 8657: # 38 "/usr/include/c++/8/bits/localefwd.h" 3 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++locale.h" 1 3 8657: # 39 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++locale.h" 3 8657: 8657: # 40 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++locale.h" 3 8657: 8657: # 1 "/usr/include/c++/8/clocale" 1 3 8657: # 39 "/usr/include/c++/8/clocale" 3 8657: 8657: # 40 "/usr/include/c++/8/clocale" 3 8657: 8657: 8657: # 1 "/usr/include/locale.h" 1 3 4 8657: # 28 "/usr/include/locale.h" 3 4 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8657: # 29 "/usr/include/locale.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/locale.h" 1 3 4 8657: # 30 "/usr/include/locale.h" 2 3 4 8657: 8657: extern "C" { 8657: # 51 "/usr/include/locale.h" 3 4 8657: struct lconv 8657: { 8657: 8657: 8657: char *decimal_point; 8657: char *thousands_sep; 8657: 8657: 8657: 8657: 8657: 8657: char *grouping; 8657: 8657: 8657: 8657: 8657: 8657: char *int_curr_symbol; 8657: char *currency_symbol; 8657: char *mon_decimal_point; 8657: char *mon_thousands_sep; 8657: char *mon_grouping; 8657: char *positive_sign; 8657: char *negative_sign; 8657: char int_frac_digits; 8657: char frac_digits; 8657: 8657: char p_cs_precedes; 8657: 8657: char p_sep_by_space; 8657: 8657: char n_cs_precedes; 8657: 8657: char n_sep_by_space; 8657: 8657: 8657: 8657: 8657: 8657: 8657: char p_sign_posn; 8657: char n_sign_posn; 8657: 8657: 8657: char int_p_cs_precedes; 8657: 8657: char int_p_sep_by_space; 8657: 8657: char int_n_cs_precedes; 8657: 8657: char int_n_sep_by_space; 8657: 8657: 8657: 8657: 8657: 8657: 8657: char int_p_sign_posn; 8657: char int_n_sign_posn; 8657: # 118 "/usr/include/locale.h" 3 4 8657: }; 8657: 8657: 8657: 8657: extern char *setlocale (int __category, const char *__locale) throw (); 8657: 8657: 8657: extern struct lconv *localeconv (void) throw (); 8657: # 141 "/usr/include/locale.h" 3 4 8657: extern locale_t newlocale (int __category_mask, const char *__locale, 8657: locale_t __base) throw (); 8657: # 176 "/usr/include/locale.h" 3 4 8657: extern locale_t duplocale (locale_t __dataset) throw (); 8657: 8657: 8657: 8657: extern void freelocale (locale_t __dataset) throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern locale_t uselocale (locale_t __dataset) throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: } 8657: # 43 "/usr/include/c++/8/clocale" 2 3 8657: # 51 "/usr/include/c++/8/clocale" 3 8657: namespace std 8657: { 8657: using ::lconv; 8657: using ::setlocale; 8657: using ::localeconv; 8657: } 8657: # 42 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++locale.h" 2 3 8657: 8657: 8657: 8657: 8657: 8657: 8657: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: extern "C" __typeof(uselocale) __uselocale; 8657: 8657: 8657: } 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: typedef __locale_t __c_locale; 8657: 8657: 8657: 8657: 8657: 8657: inline int 8657: __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)), 8657: char* __out, 8657: const int __size __attribute__ ((__unused__)), 8657: const char* __fmt, ...) 8657: { 8657: 8657: __c_locale __old = __gnu_cxx::__uselocale(__cloc); 8657: # 88 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++locale.h" 3 8657: __builtin_va_list __args; 8657: __builtin_va_start(__args, __fmt); 8657: 8657: 8657: const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); 8657: 8657: 8657: 8657: 8657: __builtin_va_end(__args); 8657: 8657: 8657: __gnu_cxx::__uselocale(__old); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: return __ret; 8657: } 8657: 8657: 8657: } 8657: # 41 "/usr/include/c++/8/bits/localefwd.h" 2 3 8657: # 1 "/usr/include/c++/8/iosfwd" 1 3 8657: # 36 "/usr/include/c++/8/iosfwd" 3 8657: 8657: # 37 "/usr/include/c++/8/iosfwd" 3 8657: 8657: 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 74 "/usr/include/c++/8/iosfwd" 3 8657: class ios_base; 8657: 8657: template > 8657: class basic_ios; 8657: 8657: template > 8657: class basic_streambuf; 8657: 8657: template > 8657: class basic_istream; 8657: 8657: template > 8657: class basic_ostream; 8657: 8657: template > 8657: class basic_iostream; 8657: 8657: 8657: namespace __cxx11 { 8657: 8657: template, 8657: typename _Alloc = allocator<_CharT> > 8657: class basic_stringbuf; 8657: 8657: template, 8657: typename _Alloc = allocator<_CharT> > 8657: class basic_istringstream; 8657: 8657: template, 8657: typename _Alloc = allocator<_CharT> > 8657: class basic_ostringstream; 8657: 8657: template, 8657: typename _Alloc = allocator<_CharT> > 8657: class basic_stringstream; 8657: 8657: } 8657: 8657: template > 8657: class basic_filebuf; 8657: 8657: template > 8657: class basic_ifstream; 8657: 8657: template > 8657: class basic_ofstream; 8657: 8657: template > 8657: class basic_fstream; 8657: 8657: template > 8657: class istreambuf_iterator; 8657: 8657: template > 8657: class ostreambuf_iterator; 8657: 8657: 8657: 8657: typedef basic_ios ios; 8657: 8657: 8657: typedef basic_streambuf streambuf; 8657: 8657: 8657: typedef basic_istream istream; 8657: 8657: 8657: typedef basic_ostream ostream; 8657: 8657: 8657: typedef basic_iostream iostream; 8657: 8657: 8657: typedef basic_stringbuf stringbuf; 8657: 8657: 8657: typedef basic_istringstream istringstream; 8657: 8657: 8657: typedef basic_ostringstream ostringstream; 8657: 8657: 8657: typedef basic_stringstream stringstream; 8657: 8657: 8657: typedef basic_filebuf filebuf; 8657: 8657: 8657: typedef basic_ifstream ifstream; 8657: 8657: 8657: typedef basic_ofstream ofstream; 8657: 8657: 8657: typedef basic_fstream fstream; 8657: 8657: 8657: 8657: typedef basic_ios wios; 8657: 8657: 8657: typedef basic_streambuf wstreambuf; 8657: 8657: 8657: typedef basic_istream wistream; 8657: 8657: 8657: typedef basic_ostream wostream; 8657: 8657: 8657: typedef basic_iostream wiostream; 8657: 8657: 8657: typedef basic_stringbuf wstringbuf; 8657: 8657: 8657: typedef basic_istringstream wistringstream; 8657: 8657: 8657: typedef basic_ostringstream wostringstream; 8657: 8657: 8657: typedef basic_stringstream wstringstream; 8657: 8657: 8657: typedef basic_filebuf wfilebuf; 8657: 8657: 8657: typedef basic_ifstream wifstream; 8657: 8657: 8657: typedef basic_ofstream wofstream; 8657: 8657: 8657: typedef basic_fstream wfstream; 8657: 8657: 8657: 8657: 8657: } 8657: # 42 "/usr/include/c++/8/bits/localefwd.h" 2 3 8657: # 1 "/usr/include/c++/8/cctype" 1 3 8657: # 39 "/usr/include/c++/8/cctype" 3 8657: 8657: # 40 "/usr/include/c++/8/cctype" 3 8657: 8657: 8657: # 1 "/usr/include/ctype.h" 1 3 4 8657: # 28 "/usr/include/ctype.h" 3 4 8657: extern "C" { 8657: # 46 "/usr/include/ctype.h" 3 4 8657: enum 8657: { 8657: _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), 8657: _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), 8657: _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), 8657: _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), 8657: _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), 8657: _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), 8657: _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), 8657: _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), 8657: _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), 8657: _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), 8657: _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), 8657: _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) 8657: }; 8657: # 79 "/usr/include/ctype.h" 3 4 8657: extern const unsigned short int **__ctype_b_loc (void) 8657: throw () __attribute__ ((__const__)); 8657: extern const __int32_t **__ctype_tolower_loc (void) 8657: throw () __attribute__ ((__const__)); 8657: extern const __int32_t **__ctype_toupper_loc (void) 8657: throw () __attribute__ ((__const__)); 8657: # 108 "/usr/include/ctype.h" 3 4 8657: extern int isalnum (int) throw (); 8657: extern int isalpha (int) throw (); 8657: extern int iscntrl (int) throw (); 8657: extern int isdigit (int) throw (); 8657: extern int islower (int) throw (); 8657: extern int isgraph (int) throw (); 8657: extern int isprint (int) throw (); 8657: extern int ispunct (int) throw (); 8657: extern int isspace (int) throw (); 8657: extern int isupper (int) throw (); 8657: extern int isxdigit (int) throw (); 8657: 8657: 8657: 8657: extern int tolower (int __c) throw (); 8657: 8657: 8657: extern int toupper (int __c) throw (); 8657: 8657: 8657: 8657: 8657: extern int isblank (int) throw (); 8657: 8657: 8657: 8657: 8657: extern int isctype (int __c, int __mask) throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int isascii (int __c) throw (); 8657: 8657: 8657: 8657: extern int toascii (int __c) throw (); 8657: 8657: 8657: 8657: extern int _toupper (int) throw (); 8657: extern int _tolower (int) throw (); 8657: # 251 "/usr/include/ctype.h" 3 4 8657: extern int isalnum_l (int, locale_t) throw (); 8657: extern int isalpha_l (int, locale_t) throw (); 8657: extern int iscntrl_l (int, locale_t) throw (); 8657: extern int isdigit_l (int, locale_t) throw (); 8657: extern int islower_l (int, locale_t) throw (); 8657: extern int isgraph_l (int, locale_t) throw (); 8657: extern int isprint_l (int, locale_t) throw (); 8657: extern int ispunct_l (int, locale_t) throw (); 8657: extern int isspace_l (int, locale_t) throw (); 8657: extern int isupper_l (int, locale_t) throw (); 8657: extern int isxdigit_l (int, locale_t) throw (); 8657: 8657: extern int isblank_l (int, locale_t) throw (); 8657: 8657: 8657: 8657: extern int __tolower_l (int __c, locale_t __l) throw (); 8657: extern int tolower_l (int __c, locale_t __l) throw (); 8657: 8657: 8657: extern int __toupper_l (int __c, locale_t __l) throw (); 8657: extern int toupper_l (int __c, locale_t __l) throw (); 8657: # 327 "/usr/include/ctype.h" 3 4 8657: } 8657: # 43 "/usr/include/c++/8/cctype" 2 3 8657: # 62 "/usr/include/c++/8/cctype" 3 8657: namespace std 8657: { 8657: using ::isalnum; 8657: using ::isalpha; 8657: using ::iscntrl; 8657: using ::isdigit; 8657: using ::isgraph; 8657: using ::islower; 8657: using ::isprint; 8657: using ::ispunct; 8657: using ::isspace; 8657: using ::isupper; 8657: using ::isxdigit; 8657: using ::tolower; 8657: using ::toupper; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: namespace std 8657: { 8657: using ::isblank; 8657: } 8657: # 43 "/usr/include/c++/8/bits/localefwd.h" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 55 "/usr/include/c++/8/bits/localefwd.h" 3 8657: class locale; 8657: 8657: template 8657: bool 8657: has_facet(const locale&) throw(); 8657: 8657: template 8657: const _Facet& 8657: use_facet(const locale&); 8657: 8657: 8657: template 8657: bool 8657: isspace(_CharT, const locale&); 8657: 8657: template 8657: bool 8657: isprint(_CharT, const locale&); 8657: 8657: template 8657: bool 8657: iscntrl(_CharT, const locale&); 8657: 8657: template 8657: bool 8657: isupper(_CharT, const locale&); 8657: 8657: template 8657: bool 8657: islower(_CharT, const locale&); 8657: 8657: template 8657: bool 8657: isalpha(_CharT, const locale&); 8657: 8657: template 8657: bool 8657: isdigit(_CharT, const locale&); 8657: 8657: template 8657: bool 8657: ispunct(_CharT, const locale&); 8657: 8657: template 8657: bool 8657: isxdigit(_CharT, const locale&); 8657: 8657: template 8657: bool 8657: isalnum(_CharT, const locale&); 8657: 8657: template 8657: bool 8657: isgraph(_CharT, const locale&); 8657: 8657: 8657: template 8657: bool 8657: isblank(_CharT, const locale&); 8657: 8657: 8657: template 8657: _CharT 8657: toupper(_CharT, const locale&); 8657: 8657: template 8657: _CharT 8657: tolower(_CharT, const locale&); 8657: 8657: 8657: class ctype_base; 8657: template 8657: class ctype; 8657: template<> class ctype; 8657: 8657: template<> class ctype; 8657: 8657: template 8657: class ctype_byname; 8657: 8657: 8657: class codecvt_base; 8657: template 8657: class codecvt; 8657: template<> class codecvt; 8657: 8657: template<> class codecvt; 8657: 8657: template 8657: class codecvt_byname; 8657: 8657: 8657: 8657: template > 8657: class num_get; 8657: template > 8657: class num_put; 8657: 8657: namespace __cxx11 { 8657: template class numpunct; 8657: template class numpunct_byname; 8657: } 8657: 8657: namespace __cxx11 { 8657: 8657: template 8657: class collate; 8657: template 8657: class collate_byname; 8657: } 8657: 8657: 8657: class time_base; 8657: namespace __cxx11 { 8657: template > 8657: class time_get; 8657: template > 8657: class time_get_byname; 8657: } 8657: template > 8657: class time_put; 8657: template > 8657: class time_put_byname; 8657: 8657: 8657: class money_base; 8657: namespace __cxx11 { 8657: template > 8657: class money_get; 8657: template > 8657: class money_put; 8657: } 8657: namespace __cxx11 { 8657: template 8657: class moneypunct; 8657: template 8657: class moneypunct_byname; 8657: } 8657: 8657: 8657: class messages_base; 8657: namespace __cxx11 { 8657: template 8657: class messages; 8657: template 8657: class messages_byname; 8657: } 8657: 8657: 8657: } 8657: # 44 "/usr/include/c++/8/string" 2 3 8657: # 1 "/usr/include/c++/8/bits/ostream_insert.h" 1 3 8657: # 33 "/usr/include/c++/8/bits/ostream_insert.h" 3 8657: 8657: # 34 "/usr/include/c++/8/bits/ostream_insert.h" 3 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/cxxabi_forced.h" 1 3 8657: # 34 "/usr/include/c++/8/bits/cxxabi_forced.h" 3 8657: 8657: # 35 "/usr/include/c++/8/bits/cxxabi_forced.h" 3 8657: 8657: #pragma GCC visibility push(default) 8657: 8657: 8657: namespace __cxxabiv1 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: class __forced_unwind 8657: { 8657: virtual ~__forced_unwind() throw(); 8657: 8657: 8657: virtual void __pure_dummy() = 0; 8657: }; 8657: } 8657: 8657: 8657: #pragma GCC visibility pop 8657: # 37 "/usr/include/c++/8/bits/ostream_insert.h" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: template 8657: inline void 8657: __ostream_write(basic_ostream<_CharT, _Traits>& __out, 8657: const _CharT* __s, streamsize __n) 8657: { 8657: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8657: typedef typename __ostream_type::ios_base __ios_base; 8657: 8657: const streamsize __put = __out.rdbuf()->sputn(__s, __n); 8657: if (__put != __n) 8657: __out.setstate(__ios_base::badbit); 8657: } 8657: 8657: template 8657: inline void 8657: __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n) 8657: { 8657: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8657: typedef typename __ostream_type::ios_base __ios_base; 8657: 8657: const _CharT __c = __out.fill(); 8657: for (; __n > 0; --__n) 8657: { 8657: const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c); 8657: if (_Traits::eq_int_type(__put, _Traits::eof())) 8657: { 8657: __out.setstate(__ios_base::badbit); 8657: break; 8657: } 8657: } 8657: } 8657: 8657: template 8657: basic_ostream<_CharT, _Traits>& 8657: __ostream_insert(basic_ostream<_CharT, _Traits>& __out, 8657: const _CharT* __s, streamsize __n) 8657: { 8657: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8657: typedef typename __ostream_type::ios_base __ios_base; 8657: 8657: typename __ostream_type::sentry __cerb(__out); 8657: if (__cerb) 8657: { 8657: try 8657: { 8657: const streamsize __w = __out.width(); 8657: if (__w > __n) 8657: { 8657: const bool __left = ((__out.flags() 8657: & __ios_base::adjustfield) 8657: == __ios_base::left); 8657: if (!__left) 8657: __ostream_fill(__out, __w - __n); 8657: if (__out.good()) 8657: __ostream_write(__out, __s, __n); 8657: if (__left && __out.good()) 8657: __ostream_fill(__out, __w - __n); 8657: } 8657: else 8657: __ostream_write(__out, __s, __n); 8657: __out.width(0); 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: __out._M_setstate(__ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { __out._M_setstate(__ios_base::badbit); } 8657: } 8657: return __out; 8657: } 8657: 8657: 8657: 8657: 8657: extern template ostream& __ostream_insert(ostream&, const char*, streamsize); 8657: 8657: 8657: extern template wostream& __ostream_insert(wostream&, const wchar_t*, 8657: streamsize); 8657: 8657: 8657: 8657: 8657: } 8657: # 45 "/usr/include/c++/8/string" 2 3 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/stl_function.h" 1 3 8657: # 63 "/usr/include/c++/8/bits/stl_function.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 104 "/usr/include/c++/8/bits/stl_function.h" 3 8657: template 8657: struct unary_function 8657: { 8657: 8657: typedef _Arg argument_type; 8657: 8657: 8657: typedef _Result result_type; 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: struct binary_function 8657: { 8657: 8657: typedef _Arg1 first_argument_type; 8657: 8657: 8657: typedef _Arg2 second_argument_type; 8657: 8657: 8657: typedef _Result result_type; 8657: }; 8657: # 166 "/usr/include/c++/8/bits/stl_function.h" 3 8657: template 8657: struct plus : public binary_function<_Tp, _Tp, _Tp> 8657: { 8657: 8657: _Tp 8657: operator()(const _Tp& __x, const _Tp& __y) const 8657: { return __x + __y; } 8657: }; 8657: 8657: 8657: template 8657: struct minus : public binary_function<_Tp, _Tp, _Tp> 8657: { 8657: 8657: _Tp 8657: operator()(const _Tp& __x, const _Tp& __y) const 8657: { return __x - __y; } 8657: }; 8657: 8657: 8657: template 8657: struct multiplies : public binary_function<_Tp, _Tp, _Tp> 8657: { 8657: 8657: _Tp 8657: operator()(const _Tp& __x, const _Tp& __y) const 8657: { return __x * __y; } 8657: }; 8657: 8657: 8657: template 8657: struct divides : public binary_function<_Tp, _Tp, _Tp> 8657: { 8657: 8657: _Tp 8657: operator()(const _Tp& __x, const _Tp& __y) const 8657: { return __x / __y; } 8657: }; 8657: 8657: 8657: template 8657: struct modulus : public binary_function<_Tp, _Tp, _Tp> 8657: { 8657: 8657: _Tp 8657: operator()(const _Tp& __x, const _Tp& __y) const 8657: { return __x % __y; } 8657: }; 8657: 8657: 8657: template 8657: struct negate : public unary_function<_Tp, _Tp> 8657: { 8657: 8657: _Tp 8657: operator()(const _Tp& __x) const 8657: { return -__x; } 8657: }; 8657: # 350 "/usr/include/c++/8/bits/stl_function.h" 3 8657: template 8657: struct equal_to : public binary_function<_Tp, _Tp, bool> 8657: { 8657: 8657: bool 8657: operator()(const _Tp& __x, const _Tp& __y) const 8657: { return __x == __y; } 8657: }; 8657: 8657: 8657: template 8657: struct not_equal_to : public binary_function<_Tp, _Tp, bool> 8657: { 8657: 8657: bool 8657: operator()(const _Tp& __x, const _Tp& __y) const 8657: { return __x != __y; } 8657: }; 8657: 8657: 8657: template 8657: struct greater : public binary_function<_Tp, _Tp, bool> 8657: { 8657: 8657: bool 8657: operator()(const _Tp& __x, const _Tp& __y) const 8657: { return __x > __y; } 8657: }; 8657: 8657: 8657: template 8657: struct less : public binary_function<_Tp, _Tp, bool> 8657: { 8657: 8657: bool 8657: operator()(const _Tp& __x, const _Tp& __y) const 8657: { return __x < __y; } 8657: }; 8657: 8657: 8657: template 8657: struct greater_equal : public binary_function<_Tp, _Tp, bool> 8657: { 8657: 8657: bool 8657: operator()(const _Tp& __x, const _Tp& __y) const 8657: { return __x >= __y; } 8657: }; 8657: 8657: 8657: template 8657: struct less_equal : public binary_function<_Tp, _Tp, bool> 8657: { 8657: 8657: bool 8657: operator()(const _Tp& __x, const _Tp& __y) const 8657: { return __x <= __y; } 8657: }; 8657: # 523 "/usr/include/c++/8/bits/stl_function.h" 3 8657: template 8657: struct logical_and : public binary_function<_Tp, _Tp, bool> 8657: { 8657: 8657: bool 8657: operator()(const _Tp& __x, const _Tp& __y) const 8657: { return __x && __y; } 8657: }; 8657: 8657: 8657: template 8657: struct logical_or : public binary_function<_Tp, _Tp, bool> 8657: { 8657: 8657: bool 8657: operator()(const _Tp& __x, const _Tp& __y) const 8657: { return __x || __y; } 8657: }; 8657: 8657: 8657: template 8657: struct logical_not : public unary_function<_Tp, bool> 8657: { 8657: 8657: bool 8657: operator()(const _Tp& __x) const 8657: { return !__x; } 8657: }; 8657: # 616 "/usr/include/c++/8/bits/stl_function.h" 3 8657: template 8657: struct bit_and : public binary_function<_Tp, _Tp, _Tp> 8657: { 8657: 8657: _Tp 8657: operator()(const _Tp& __x, const _Tp& __y) const 8657: { return __x & __y; } 8657: }; 8657: 8657: template 8657: struct bit_or : public binary_function<_Tp, _Tp, _Tp> 8657: { 8657: 8657: _Tp 8657: operator()(const _Tp& __x, const _Tp& __y) const 8657: { return __x | __y; } 8657: }; 8657: 8657: template 8657: struct bit_xor : public binary_function<_Tp, _Tp, _Tp> 8657: { 8657: 8657: _Tp 8657: operator()(const _Tp& __x, const _Tp& __y) const 8657: { return __x ^ __y; } 8657: }; 8657: 8657: template 8657: struct bit_not : public unary_function<_Tp, _Tp> 8657: { 8657: 8657: _Tp 8657: operator()(const _Tp& __x) const 8657: { return ~__x; } 8657: }; 8657: # 740 "/usr/include/c++/8/bits/stl_function.h" 3 8657: template 8657: class unary_negate 8657: : public unary_function 8657: { 8657: protected: 8657: _Predicate _M_pred; 8657: 8657: public: 8657: 8657: explicit 8657: unary_negate(const _Predicate& __x) : _M_pred(__x) { } 8657: 8657: 8657: bool 8657: operator()(const typename _Predicate::argument_type& __x) const 8657: { return !_M_pred(__x); } 8657: }; 8657: 8657: 8657: template 8657: 8657: inline unary_negate<_Predicate> 8657: not1(const _Predicate& __pred) 8657: { return unary_negate<_Predicate>(__pred); } 8657: 8657: 8657: template 8657: class binary_negate 8657: : public binary_function 8657: { 8657: protected: 8657: _Predicate _M_pred; 8657: 8657: public: 8657: 8657: explicit 8657: binary_negate(const _Predicate& __x) : _M_pred(__x) { } 8657: 8657: 8657: bool 8657: operator()(const typename _Predicate::first_argument_type& __x, 8657: const typename _Predicate::second_argument_type& __y) const 8657: { return !_M_pred(__x, __y); } 8657: }; 8657: 8657: 8657: template 8657: 8657: inline binary_negate<_Predicate> 8657: not2(const _Predicate& __pred) 8657: { return binary_negate<_Predicate>(__pred); } 8657: # 817 "/usr/include/c++/8/bits/stl_function.h" 3 8657: template 8657: class pointer_to_unary_function : public unary_function<_Arg, _Result> 8657: { 8657: protected: 8657: _Result (*_M_ptr)(_Arg); 8657: 8657: public: 8657: pointer_to_unary_function() { } 8657: 8657: explicit 8657: pointer_to_unary_function(_Result (*__x)(_Arg)) 8657: : _M_ptr(__x) { } 8657: 8657: _Result 8657: operator()(_Arg __x) const 8657: { return _M_ptr(__x); } 8657: }; 8657: 8657: 8657: template 8657: inline pointer_to_unary_function<_Arg, _Result> 8657: ptr_fun(_Result (*__x)(_Arg)) 8657: { return pointer_to_unary_function<_Arg, _Result>(__x); } 8657: 8657: 8657: template 8657: class pointer_to_binary_function 8657: : public binary_function<_Arg1, _Arg2, _Result> 8657: { 8657: protected: 8657: _Result (*_M_ptr)(_Arg1, _Arg2); 8657: 8657: public: 8657: pointer_to_binary_function() { } 8657: 8657: explicit 8657: pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) 8657: : _M_ptr(__x) { } 8657: 8657: _Result 8657: operator()(_Arg1 __x, _Arg2 __y) const 8657: { return _M_ptr(__x, __y); } 8657: }; 8657: 8657: 8657: template 8657: inline pointer_to_binary_function<_Arg1, _Arg2, _Result> 8657: ptr_fun(_Result (*__x)(_Arg1, _Arg2)) 8657: { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); } 8657: 8657: 8657: template 8657: struct _Identity 8657: : public unary_function<_Tp, _Tp> 8657: { 8657: _Tp& 8657: operator()(_Tp& __x) const 8657: { return __x; } 8657: 8657: const _Tp& 8657: operator()(const _Tp& __x) const 8657: { return __x; } 8657: }; 8657: 8657: 8657: template struct _Identity : _Identity<_Tp> { }; 8657: 8657: template 8657: struct _Select1st 8657: : public unary_function<_Pair, typename _Pair::first_type> 8657: { 8657: typename _Pair::first_type& 8657: operator()(_Pair& __x) const 8657: { return __x.first; } 8657: 8657: const typename _Pair::first_type& 8657: operator()(const _Pair& __x) const 8657: { return __x.first; } 8657: 8657: 8657: template 8657: typename _Pair2::first_type& 8657: operator()(_Pair2& __x) const 8657: { return __x.first; } 8657: 8657: template 8657: const typename _Pair2::first_type& 8657: operator()(const _Pair2& __x) const 8657: { return __x.first; } 8657: 8657: }; 8657: 8657: template 8657: struct _Select2nd 8657: : public unary_function<_Pair, typename _Pair::second_type> 8657: { 8657: typename _Pair::second_type& 8657: operator()(_Pair& __x) const 8657: { return __x.second; } 8657: 8657: const typename _Pair::second_type& 8657: operator()(const _Pair& __x) const 8657: { return __x.second; } 8657: }; 8657: # 940 "/usr/include/c++/8/bits/stl_function.h" 3 8657: template 8657: class mem_fun_t : public unary_function<_Tp*, _Ret> 8657: { 8657: public: 8657: explicit 8657: mem_fun_t(_Ret (_Tp::*__pf)()) 8657: : _M_f(__pf) { } 8657: 8657: _Ret 8657: operator()(_Tp* __p) const 8657: { return (__p->*_M_f)(); } 8657: 8657: private: 8657: _Ret (_Tp::*_M_f)(); 8657: }; 8657: 8657: 8657: 8657: template 8657: class const_mem_fun_t : public unary_function 8657: { 8657: public: 8657: explicit 8657: const_mem_fun_t(_Ret (_Tp::*__pf)() const) 8657: : _M_f(__pf) { } 8657: 8657: _Ret 8657: operator()(const _Tp* __p) const 8657: { return (__p->*_M_f)(); } 8657: 8657: private: 8657: _Ret (_Tp::*_M_f)() const; 8657: }; 8657: 8657: 8657: 8657: template 8657: class mem_fun_ref_t : public unary_function<_Tp, _Ret> 8657: { 8657: public: 8657: explicit 8657: mem_fun_ref_t(_Ret (_Tp::*__pf)()) 8657: : _M_f(__pf) { } 8657: 8657: _Ret 8657: operator()(_Tp& __r) const 8657: { return (__r.*_M_f)(); } 8657: 8657: private: 8657: _Ret (_Tp::*_M_f)(); 8657: }; 8657: 8657: 8657: 8657: template 8657: class const_mem_fun_ref_t : public unary_function<_Tp, _Ret> 8657: { 8657: public: 8657: explicit 8657: const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) 8657: : _M_f(__pf) { } 8657: 8657: _Ret 8657: operator()(const _Tp& __r) const 8657: { return (__r.*_M_f)(); } 8657: 8657: private: 8657: _Ret (_Tp::*_M_f)() const; 8657: }; 8657: 8657: 8657: 8657: template 8657: class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret> 8657: { 8657: public: 8657: explicit 8657: mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) 8657: : _M_f(__pf) { } 8657: 8657: _Ret 8657: operator()(_Tp* __p, _Arg __x) const 8657: { return (__p->*_M_f)(__x); } 8657: 8657: private: 8657: _Ret (_Tp::*_M_f)(_Arg); 8657: }; 8657: 8657: 8657: 8657: template 8657: class const_mem_fun1_t : public binary_function 8657: { 8657: public: 8657: explicit 8657: const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) 8657: : _M_f(__pf) { } 8657: 8657: _Ret 8657: operator()(const _Tp* __p, _Arg __x) const 8657: { return (__p->*_M_f)(__x); } 8657: 8657: private: 8657: _Ret (_Tp::*_M_f)(_Arg) const; 8657: }; 8657: 8657: 8657: 8657: template 8657: class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 8657: { 8657: public: 8657: explicit 8657: mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) 8657: : _M_f(__pf) { } 8657: 8657: _Ret 8657: operator()(_Tp& __r, _Arg __x) const 8657: { return (__r.*_M_f)(__x); } 8657: 8657: private: 8657: _Ret (_Tp::*_M_f)(_Arg); 8657: }; 8657: 8657: 8657: 8657: template 8657: class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 8657: { 8657: public: 8657: explicit 8657: const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) 8657: : _M_f(__pf) { } 8657: 8657: _Ret 8657: operator()(const _Tp& __r, _Arg __x) const 8657: { return (__r.*_M_f)(__x); } 8657: 8657: private: 8657: _Ret (_Tp::*_M_f)(_Arg) const; 8657: }; 8657: 8657: 8657: 8657: template 8657: inline mem_fun_t<_Ret, _Tp> 8657: mem_fun(_Ret (_Tp::*__f)()) 8657: { return mem_fun_t<_Ret, _Tp>(__f); } 8657: 8657: template 8657: inline const_mem_fun_t<_Ret, _Tp> 8657: mem_fun(_Ret (_Tp::*__f)() const) 8657: { return const_mem_fun_t<_Ret, _Tp>(__f); } 8657: 8657: template 8657: inline mem_fun_ref_t<_Ret, _Tp> 8657: mem_fun_ref(_Ret (_Tp::*__f)()) 8657: { return mem_fun_ref_t<_Ret, _Tp>(__f); } 8657: 8657: template 8657: inline const_mem_fun_ref_t<_Ret, _Tp> 8657: mem_fun_ref(_Ret (_Tp::*__f)() const) 8657: { return const_mem_fun_ref_t<_Ret, _Tp>(__f); } 8657: 8657: template 8657: inline mem_fun1_t<_Ret, _Tp, _Arg> 8657: mem_fun(_Ret (_Tp::*__f)(_Arg)) 8657: { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 8657: 8657: template 8657: inline const_mem_fun1_t<_Ret, _Tp, _Arg> 8657: mem_fun(_Ret (_Tp::*__f)(_Arg) const) 8657: { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 8657: 8657: template 8657: inline mem_fun1_ref_t<_Ret, _Tp, _Arg> 8657: mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) 8657: { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 8657: 8657: template 8657: inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> 8657: mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) 8657: { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 8657: 8657: 8657: 8657: 8657: } 8657: 8657: 8657: # 1 "/usr/include/c++/8/backward/binders.h" 1 3 8657: # 60 "/usr/include/c++/8/backward/binders.h" 3 8657: #pragma GCC diagnostic push 8657: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 107 "/usr/include/c++/8/backward/binders.h" 3 8657: template 8657: class binder1st 8657: : public unary_function 8657: { 8657: protected: 8657: _Operation op; 8657: typename _Operation::first_argument_type value; 8657: 8657: public: 8657: binder1st(const _Operation& __x, 8657: const typename _Operation::first_argument_type& __y) 8657: : op(__x), value(__y) { } 8657: 8657: typename _Operation::result_type 8657: operator()(const typename _Operation::second_argument_type& __x) const 8657: { return op(value, __x); } 8657: 8657: 8657: 8657: typename _Operation::result_type 8657: operator()(typename _Operation::second_argument_type& __x) const 8657: { return op(value, __x); } 8657: } __attribute__ ((__deprecated__)); 8657: 8657: 8657: template 8657: inline binder1st<_Operation> 8657: bind1st(const _Operation& __fn, const _Tp& __x) 8657: { 8657: typedef typename _Operation::first_argument_type _Arg1_type; 8657: return binder1st<_Operation>(__fn, _Arg1_type(__x)); 8657: } 8657: 8657: 8657: template 8657: class binder2nd 8657: : public unary_function 8657: { 8657: protected: 8657: _Operation op; 8657: typename _Operation::second_argument_type value; 8657: 8657: public: 8657: binder2nd(const _Operation& __x, 8657: const typename _Operation::second_argument_type& __y) 8657: : op(__x), value(__y) { } 8657: 8657: typename _Operation::result_type 8657: operator()(const typename _Operation::first_argument_type& __x) const 8657: { return op(__x, value); } 8657: 8657: 8657: 8657: typename _Operation::result_type 8657: operator()(typename _Operation::first_argument_type& __x) const 8657: { return op(__x, value); } 8657: } __attribute__ ((__deprecated__)); 8657: 8657: 8657: template 8657: inline binder2nd<_Operation> 8657: bind2nd(const _Operation& __fn, const _Tp& __x) 8657: { 8657: typedef typename _Operation::second_argument_type _Arg2_type; 8657: return binder2nd<_Operation>(__fn, _Arg2_type(__x)); 8657: } 8657: 8657: 8657: 8657: } 8657: 8657: #pragma GCC diagnostic pop 8657: # 1131 "/usr/include/c++/8/bits/stl_function.h" 2 3 8657: # 49 "/usr/include/c++/8/string" 2 3 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/range_access.h" 1 3 8657: # 33 "/usr/include/c++/8/bits/range_access.h" 3 8657: 8657: # 34 "/usr/include/c++/8/bits/range_access.h" 3 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline auto 8657: begin(_Container& __cont) -> decltype(__cont.begin()) 8657: { return __cont.begin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline auto 8657: begin(const _Container& __cont) -> decltype(__cont.begin()) 8657: { return __cont.begin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline auto 8657: end(_Container& __cont) -> decltype(__cont.end()) 8657: { return __cont.end(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline auto 8657: end(const _Container& __cont) -> decltype(__cont.end()) 8657: { return __cont.end(); } 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline _Tp* 8657: begin(_Tp (&__arr)[_Nm]) 8657: { return __arr; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline _Tp* 8657: end(_Tp (&__arr)[_Nm]) 8657: { return __arr + _Nm; } 8657: # 323 "/usr/include/c++/8/bits/range_access.h" 3 8657: 8657: } 8657: # 52 "/usr/include/c++/8/string" 2 3 8657: # 1 "/usr/include/c++/8/bits/basic_string.h" 1 3 8657: # 37 "/usr/include/c++/8/bits/basic_string.h" 3 8657: 8657: # 38 "/usr/include/c++/8/bits/basic_string.h" 3 8657: 8657: # 1 "/usr/include/c++/8/ext/atomicity.h" 1 3 8657: # 32 "/usr/include/c++/8/ext/atomicity.h" 3 8657: 8657: # 33 "/usr/include/c++/8/ext/atomicity.h" 3 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr.h" 1 3 8657: # 30 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr.h" 3 8657: #pragma GCC visibility push(default) 8657: # 148 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr.h" 3 8657: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 1 3 8657: # 35 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 8657: # 1 "/usr/include/pthread.h" 1 3 4 8657: # 23 "/usr/include/pthread.h" 3 4 8657: # 1 "/usr/include/sched.h" 1 3 4 8657: # 29 "/usr/include/sched.h" 3 4 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8657: # 30 "/usr/include/sched.h" 2 3 4 8657: # 43 "/usr/include/sched.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/sched.h" 1 3 4 8657: # 75 "/usr/include/arm-linux-gnueabihf/bits/sched.h" 3 4 8657: struct sched_param 8657: { 8657: int sched_priority; 8657: }; 8657: 8657: extern "C" { 8657: 8657: 8657: 8657: extern int clone (int (*__fn) (void *__arg), void *__child_stack, 8657: int __flags, void *__arg, ...) throw (); 8657: 8657: 8657: extern int unshare (int __flags) throw (); 8657: 8657: 8657: extern int sched_getcpu (void) throw (); 8657: 8657: 8657: extern int setns (int __fd, int __nstype) throw (); 8657: 8657: 8657: } 8657: # 44 "/usr/include/sched.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/cpu-set.h" 1 3 4 8657: # 32 "/usr/include/arm-linux-gnueabihf/bits/cpu-set.h" 3 4 8657: typedef unsigned long int __cpu_mask; 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef struct 8657: { 8657: __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; 8657: } cpu_set_t; 8657: # 115 "/usr/include/arm-linux-gnueabihf/bits/cpu-set.h" 3 4 8657: extern "C" { 8657: 8657: extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) 8657: throw (); 8657: extern cpu_set_t *__sched_cpualloc (size_t __count) throw () __attribute__ ((__warn_unused_result__)); 8657: extern void __sched_cpufree (cpu_set_t *__set) throw (); 8657: 8657: } 8657: # 45 "/usr/include/sched.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern "C" { 8657: 8657: 8657: extern int sched_setparam (__pid_t __pid, const struct sched_param *__param) 8657: throw (); 8657: 8657: 8657: extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw (); 8657: 8657: 8657: extern int sched_setscheduler (__pid_t __pid, int __policy, 8657: const struct sched_param *__param) throw (); 8657: 8657: 8657: extern int sched_getscheduler (__pid_t __pid) throw (); 8657: 8657: 8657: extern int sched_yield (void) throw (); 8657: 8657: 8657: extern int sched_get_priority_max (int __algorithm) throw (); 8657: 8657: 8657: extern int sched_get_priority_min (int __algorithm) throw (); 8657: 8657: 8657: extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw (); 8657: # 121 "/usr/include/sched.h" 3 4 8657: extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, 8657: const cpu_set_t *__cpuset) throw (); 8657: 8657: 8657: extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, 8657: cpu_set_t *__cpuset) throw (); 8657: 8657: 8657: } 8657: # 24 "/usr/include/pthread.h" 2 3 4 8657: # 1 "/usr/include/time.h" 1 3 4 8657: # 29 "/usr/include/time.h" 3 4 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8657: # 30 "/usr/include/time.h" 2 3 4 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/time.h" 1 3 4 8657: # 73 "/usr/include/arm-linux-gnueabihf/bits/time.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/timex.h" 1 3 4 8657: # 26 "/usr/include/arm-linux-gnueabihf/bits/timex.h" 3 4 8657: struct timex 8657: { 8657: unsigned int modes; 8657: __syscall_slong_t offset; 8657: __syscall_slong_t freq; 8657: __syscall_slong_t maxerror; 8657: __syscall_slong_t esterror; 8657: int status; 8657: __syscall_slong_t constant; 8657: __syscall_slong_t precision; 8657: __syscall_slong_t tolerance; 8657: struct timeval time; 8657: __syscall_slong_t tick; 8657: __syscall_slong_t ppsfreq; 8657: __syscall_slong_t jitter; 8657: int shift; 8657: __syscall_slong_t stabil; 8657: __syscall_slong_t jitcnt; 8657: __syscall_slong_t calcnt; 8657: __syscall_slong_t errcnt; 8657: __syscall_slong_t stbcnt; 8657: 8657: int tai; 8657: 8657: 8657: int :32; int :32; int :32; int :32; 8657: int :32; int :32; int :32; int :32; 8657: int :32; int :32; int :32; 8657: }; 8657: # 74 "/usr/include/arm-linux-gnueabihf/bits/time.h" 2 3 4 8657: 8657: extern "C" { 8657: 8657: 8657: extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) throw (); 8657: 8657: } 8657: # 34 "/usr/include/time.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/struct_tm.h" 1 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: struct tm 8657: { 8657: int tm_sec; 8657: int tm_min; 8657: int tm_hour; 8657: int tm_mday; 8657: int tm_mon; 8657: int tm_year; 8657: int tm_wday; 8657: int tm_yday; 8657: int tm_isdst; 8657: 8657: 8657: long int tm_gmtoff; 8657: const char *tm_zone; 8657: 8657: 8657: 8657: 8657: }; 8657: # 40 "/usr/include/time.h" 2 3 4 8657: # 48 "/usr/include/time.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/struct_itimerspec.h" 1 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: struct itimerspec 8657: { 8657: struct timespec it_interval; 8657: struct timespec it_value; 8657: }; 8657: # 49 "/usr/include/time.h" 2 3 4 8657: struct sigevent; 8657: # 68 "/usr/include/time.h" 3 4 8657: extern "C" { 8657: 8657: 8657: 8657: extern clock_t clock (void) throw (); 8657: 8657: 8657: extern time_t time (time_t *__timer) throw (); 8657: 8657: 8657: extern double difftime (time_t __time1, time_t __time0) 8657: throw () __attribute__ ((__const__)); 8657: 8657: 8657: extern time_t mktime (struct tm *__tp) throw (); 8657: 8657: 8657: 8657: 8657: 8657: extern size_t strftime (char *__restrict __s, size_t __maxsize, 8657: const char *__restrict __format, 8657: const struct tm *__restrict __tp) throw (); 8657: 8657: 8657: 8657: 8657: extern char *strptime (const char *__restrict __s, 8657: const char *__restrict __fmt, struct tm *__tp) 8657: throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern size_t strftime_l (char *__restrict __s, size_t __maxsize, 8657: const char *__restrict __format, 8657: const struct tm *__restrict __tp, 8657: locale_t __loc) throw (); 8657: 8657: 8657: 8657: extern char *strptime_l (const char *__restrict __s, 8657: const char *__restrict __fmt, struct tm *__tp, 8657: locale_t __loc) throw (); 8657: 8657: 8657: 8657: 8657: 8657: extern struct tm *gmtime (const time_t *__timer) throw (); 8657: 8657: 8657: 8657: extern struct tm *localtime (const time_t *__timer) throw (); 8657: 8657: 8657: 8657: 8657: extern struct tm *gmtime_r (const time_t *__restrict __timer, 8657: struct tm *__restrict __tp) throw (); 8657: 8657: 8657: 8657: extern struct tm *localtime_r (const time_t *__restrict __timer, 8657: struct tm *__restrict __tp) throw (); 8657: 8657: 8657: 8657: 8657: extern char *asctime (const struct tm *__tp) throw (); 8657: 8657: 8657: extern char *ctime (const time_t *__timer) throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern char *asctime_r (const struct tm *__restrict __tp, 8657: char *__restrict __buf) throw (); 8657: 8657: 8657: extern char *ctime_r (const time_t *__restrict __timer, 8657: char *__restrict __buf) throw (); 8657: 8657: 8657: 8657: 8657: extern char *__tzname[2]; 8657: extern int __daylight; 8657: extern long int __timezone; 8657: 8657: 8657: 8657: 8657: extern char *tzname[2]; 8657: 8657: 8657: 8657: extern void tzset (void) throw (); 8657: 8657: 8657: 8657: extern int daylight; 8657: extern long int timezone; 8657: 8657: 8657: 8657: 8657: 8657: extern int stime (const time_t *__when) throw (); 8657: # 196 "/usr/include/time.h" 3 4 8657: extern time_t timegm (struct tm *__tp) throw (); 8657: 8657: 8657: extern time_t timelocal (struct tm *__tp) throw (); 8657: 8657: 8657: extern int dysize (int __year) throw () __attribute__ ((__const__)); 8657: # 211 "/usr/include/time.h" 3 4 8657: extern int nanosleep (const struct timespec *__requested_time, 8657: struct timespec *__remaining); 8657: 8657: 8657: 8657: extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); 8657: 8657: 8657: extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); 8657: 8657: 8657: extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) 8657: throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int clock_nanosleep (clockid_t __clock_id, int __flags, 8657: const struct timespec *__req, 8657: struct timespec *__rem); 8657: 8657: 8657: extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); 8657: 8657: 8657: 8657: 8657: extern int timer_create (clockid_t __clock_id, 8657: struct sigevent *__restrict __evp, 8657: timer_t *__restrict __timerid) throw (); 8657: 8657: 8657: extern int timer_delete (timer_t __timerid) throw (); 8657: 8657: 8657: extern int timer_settime (timer_t __timerid, int __flags, 8657: const struct itimerspec *__restrict __value, 8657: struct itimerspec *__restrict __ovalue) throw (); 8657: 8657: 8657: extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) 8657: throw (); 8657: 8657: 8657: extern int timer_getoverrun (timer_t __timerid) throw (); 8657: 8657: 8657: 8657: 8657: 8657: extern int timespec_get (struct timespec *__ts, int __base) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: # 280 "/usr/include/time.h" 3 4 8657: extern int getdate_err; 8657: # 289 "/usr/include/time.h" 3 4 8657: extern struct tm *getdate (const char *__string); 8657: # 303 "/usr/include/time.h" 3 4 8657: extern int getdate_r (const char *__restrict __string, 8657: struct tm *__restrict __resbufp); 8657: 8657: 8657: } 8657: # 25 "/usr/include/pthread.h" 2 3 4 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/setjmp.h" 1 3 4 8657: # 33 "/usr/include/arm-linux-gnueabihf/bits/setjmp.h" 3 4 8657: typedef int __jmp_buf[64] __attribute__((__aligned__ (8))); 8657: # 28 "/usr/include/pthread.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4 8657: # 29 "/usr/include/pthread.h" 2 3 4 8657: 8657: 8657: 8657: 8657: enum 8657: { 8657: PTHREAD_CREATE_JOINABLE, 8657: 8657: PTHREAD_CREATE_DETACHED 8657: 8657: }; 8657: 8657: 8657: 8657: enum 8657: { 8657: PTHREAD_MUTEX_TIMED_NP, 8657: PTHREAD_MUTEX_RECURSIVE_NP, 8657: PTHREAD_MUTEX_ERRORCHECK_NP, 8657: PTHREAD_MUTEX_ADAPTIVE_NP 8657: 8657: , 8657: PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, 8657: PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, 8657: PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, 8657: PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL 8657: 8657: 8657: 8657: , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP 8657: 8657: }; 8657: 8657: 8657: 8657: 8657: enum 8657: { 8657: PTHREAD_MUTEX_STALLED, 8657: PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, 8657: PTHREAD_MUTEX_ROBUST, 8657: PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: enum 8657: { 8657: PTHREAD_PRIO_NONE, 8657: PTHREAD_PRIO_INHERIT, 8657: PTHREAD_PRIO_PROTECT 8657: }; 8657: # 115 "/usr/include/pthread.h" 3 4 8657: enum 8657: { 8657: PTHREAD_RWLOCK_PREFER_READER_NP, 8657: PTHREAD_RWLOCK_PREFER_WRITER_NP, 8657: PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, 8657: PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP 8657: }; 8657: # 156 "/usr/include/pthread.h" 3 4 8657: enum 8657: { 8657: PTHREAD_INHERIT_SCHED, 8657: 8657: PTHREAD_EXPLICIT_SCHED 8657: 8657: }; 8657: 8657: 8657: 8657: enum 8657: { 8657: PTHREAD_SCOPE_SYSTEM, 8657: 8657: PTHREAD_SCOPE_PROCESS 8657: 8657: }; 8657: 8657: 8657: 8657: enum 8657: { 8657: PTHREAD_PROCESS_PRIVATE, 8657: 8657: PTHREAD_PROCESS_SHARED 8657: 8657: }; 8657: # 191 "/usr/include/pthread.h" 3 4 8657: struct _pthread_cleanup_buffer 8657: { 8657: void (*__routine) (void *); 8657: void *__arg; 8657: int __canceltype; 8657: struct _pthread_cleanup_buffer *__prev; 8657: }; 8657: 8657: 8657: enum 8657: { 8657: PTHREAD_CANCEL_ENABLE, 8657: 8657: PTHREAD_CANCEL_DISABLE 8657: 8657: }; 8657: enum 8657: { 8657: PTHREAD_CANCEL_DEFERRED, 8657: 8657: PTHREAD_CANCEL_ASYNCHRONOUS 8657: 8657: }; 8657: # 229 "/usr/include/pthread.h" 3 4 8657: extern "C" { 8657: 8657: 8657: 8657: 8657: extern int pthread_create (pthread_t *__restrict __newthread, 8657: const pthread_attr_t *__restrict __attr, 8657: void *(*__start_routine) (void *), 8657: void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3))); 8657: 8657: 8657: 8657: 8657: 8657: extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int pthread_join (pthread_t __th, void **__thread_return); 8657: 8657: 8657: 8657: 8657: extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, 8657: const struct timespec *__abstime); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int pthread_detach (pthread_t __th) throw (); 8657: 8657: 8657: 8657: extern pthread_t pthread_self (void) throw () __attribute__ ((__const__)); 8657: 8657: 8657: extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) 8657: throw () __attribute__ ((__const__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_attr_destroy (pthread_attr_t *__attr) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr, 8657: int *__detachstate) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, 8657: int __detachstate) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: extern int pthread_attr_getguardsize (const pthread_attr_t *__attr, 8657: size_t *__guardsize) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int pthread_attr_setguardsize (pthread_attr_t *__attr, 8657: size_t __guardsize) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr, 8657: struct sched_param *__restrict __param) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, 8657: const struct sched_param *__restrict 8657: __param) throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict 8657: __attr, int *__restrict __policy) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict 8657: __attr, int *__restrict __inherit) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, 8657: int __inherit) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr, 8657: int *__restrict __scope) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict 8657: __attr, void **__restrict __stackaddr) 8657: throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); 8657: 8657: 8657: 8657: 8657: 8657: extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, 8657: void *__stackaddr) 8657: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); 8657: 8657: 8657: extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict 8657: __attr, size_t *__restrict __stacksize) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: 8657: extern int pthread_attr_setstacksize (pthread_attr_t *__attr, 8657: size_t __stacksize) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr, 8657: void **__restrict __stackaddr, 8657: size_t *__restrict __stacksize) 8657: throw () __attribute__ ((__nonnull__ (1, 2, 3))); 8657: 8657: 8657: 8657: 8657: extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, 8657: size_t __stacksize) throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: 8657: extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, 8657: size_t __cpusetsize, 8657: const cpu_set_t *__cpuset) 8657: throw () __attribute__ ((__nonnull__ (1, 3))); 8657: 8657: 8657: 8657: extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, 8657: size_t __cpusetsize, 8657: cpu_set_t *__cpuset) 8657: throw () __attribute__ ((__nonnull__ (1, 3))); 8657: 8657: 8657: extern int pthread_getattr_default_np (pthread_attr_t *__attr) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: extern int pthread_setattr_default_np (const pthread_attr_t *__attr) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) 8657: throw () __attribute__ ((__nonnull__ (2))); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int pthread_setschedparam (pthread_t __target_thread, int __policy, 8657: const struct sched_param *__param) 8657: throw () __attribute__ ((__nonnull__ (3))); 8657: 8657: 8657: extern int pthread_getschedparam (pthread_t __target_thread, 8657: int *__restrict __policy, 8657: struct sched_param *__restrict __param) 8657: throw () __attribute__ ((__nonnull__ (2, 3))); 8657: 8657: 8657: extern int pthread_setschedprio (pthread_t __target_thread, int __prio) 8657: throw (); 8657: 8657: 8657: 8657: 8657: extern int pthread_getname_np (pthread_t __target_thread, char *__buf, 8657: size_t __buflen) 8657: throw () __attribute__ ((__nonnull__ (2))); 8657: 8657: 8657: extern int pthread_setname_np (pthread_t __target_thread, const char *__name) 8657: throw () __attribute__ ((__nonnull__ (2))); 8657: 8657: 8657: 8657: 8657: 8657: extern int pthread_getconcurrency (void) throw (); 8657: 8657: 8657: extern int pthread_setconcurrency (int __level) throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int pthread_yield (void) throw (); 8657: 8657: 8657: 8657: 8657: extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, 8657: const cpu_set_t *__cpuset) 8657: throw () __attribute__ ((__nonnull__ (3))); 8657: 8657: 8657: extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, 8657: cpu_set_t *__cpuset) 8657: throw () __attribute__ ((__nonnull__ (3))); 8657: # 495 "/usr/include/pthread.h" 3 4 8657: extern int pthread_once (pthread_once_t *__once_control, 8657: void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); 8657: # 507 "/usr/include/pthread.h" 3 4 8657: extern int pthread_setcancelstate (int __state, int *__oldstate); 8657: 8657: 8657: 8657: extern int pthread_setcanceltype (int __type, int *__oldtype); 8657: 8657: 8657: extern int pthread_cancel (pthread_t __th); 8657: 8657: 8657: 8657: 8657: extern void pthread_testcancel (void); 8657: 8657: 8657: 8657: 8657: typedef struct 8657: { 8657: struct 8657: { 8657: __jmp_buf __cancel_jmp_buf; 8657: int __mask_was_saved; 8657: } __cancel_jmp_buf[1]; 8657: void *__pad[4]; 8657: } __pthread_unwind_buf_t __attribute__ ((__aligned__)); 8657: # 541 "/usr/include/pthread.h" 3 4 8657: struct __pthread_cleanup_frame 8657: { 8657: void (*__cancel_routine) (void *); 8657: void *__cancel_arg; 8657: int __do_it; 8657: int __cancel_type; 8657: }; 8657: 8657: 8657: 8657: 8657: class __pthread_cleanup_class 8657: { 8657: void (*__cancel_routine) (void *); 8657: void *__cancel_arg; 8657: int __do_it; 8657: int __cancel_type; 8657: 8657: public: 8657: __pthread_cleanup_class (void (*__fct) (void *), void *__arg) 8657: : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { } 8657: ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); } 8657: void __setdoit (int __newval) { __do_it = __newval; } 8657: void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, 8657: &__cancel_type); } 8657: void __restore () const { pthread_setcanceltype (__cancel_type, 0); } 8657: }; 8657: # 743 "/usr/include/pthread.h" 3 4 8657: struct __jmp_buf_tag; 8657: extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw (); 8657: 8657: 8657: 8657: 8657: 8657: extern int pthread_mutex_init (pthread_mutex_t *__mutex, 8657: const pthread_mutexattr_t *__mutexattr) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_mutex_lock (pthread_mutex_t *__mutex) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, 8657: const struct timespec *__restrict 8657: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: extern int pthread_mutex_getprioceiling (const pthread_mutex_t * 8657: __restrict __mutex, 8657: int *__restrict __prioceiling) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, 8657: int __prioceiling, 8657: int *__restrict __old_ceiling) 8657: throw () __attribute__ ((__nonnull__ (1, 3))); 8657: 8657: 8657: 8657: 8657: extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: # 807 "/usr/include/pthread.h" 3 4 8657: extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t * 8657: __restrict __attr, 8657: int *__restrict __pshared) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, 8657: int __pshared) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict 8657: __attr, int *__restrict __kind) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: 8657: extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t * 8657: __restrict __attr, 8657: int *__restrict __protocol) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, 8657: int __protocol) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t * 8657: __restrict __attr, 8657: int *__restrict __prioceiling) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, 8657: int __prioceiling) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr, 8657: int *__robustness) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr, 8657: int *__robustness) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, 8657: int __robustness) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, 8657: int __robustness) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: # 889 "/usr/include/pthread.h" 3 4 8657: extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, 8657: const pthread_rwlockattr_t *__restrict 8657: __attr) throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, 8657: const struct timespec *__restrict 8657: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, 8657: const struct timespec *__restrict 8657: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: 8657: extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: 8657: extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * 8657: __restrict __attr, 8657: int *__restrict __pshared) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, 8657: int __pshared) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t * 8657: __restrict __attr, 8657: int *__restrict __pref) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, 8657: int __pref) throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int pthread_cond_init (pthread_cond_t *__restrict __cond, 8657: const pthread_condattr_t *__restrict __cond_attr) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_cond_destroy (pthread_cond_t *__cond) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_cond_signal (pthread_cond_t *__cond) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_cond_broadcast (pthread_cond_t *__cond) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, 8657: pthread_mutex_t *__restrict __mutex) 8657: __attribute__ ((__nonnull__ (1, 2))); 8657: # 1001 "/usr/include/pthread.h" 3 4 8657: extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, 8657: pthread_mutex_t *__restrict __mutex, 8657: const struct timespec *__restrict __abstime) 8657: __attribute__ ((__nonnull__ (1, 2, 3))); 8657: 8657: 8657: 8657: 8657: extern int pthread_condattr_init (pthread_condattr_t *__attr) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_condattr_destroy (pthread_condattr_t *__attr) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_condattr_getpshared (const pthread_condattr_t * 8657: __restrict __attr, 8657: int *__restrict __pshared) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, 8657: int __pshared) throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: extern int pthread_condattr_getclock (const pthread_condattr_t * 8657: __restrict __attr, 8657: __clockid_t *__restrict __clock_id) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int pthread_condattr_setclock (pthread_condattr_t *__attr, 8657: __clockid_t __clock_id) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: # 1045 "/usr/include/pthread.h" 3 4 8657: extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_spin_destroy (pthread_spinlock_t *__lock) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_spin_lock (pthread_spinlock_t *__lock) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_spin_trylock (pthread_spinlock_t *__lock) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_spin_unlock (pthread_spinlock_t *__lock) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, 8657: const pthread_barrierattr_t *__restrict 8657: __attr, unsigned int __count) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_barrier_wait (pthread_barrier_t *__barrier) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: 8657: extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t * 8657: __restrict __attr, 8657: int *__restrict __pshared) 8657: throw () __attribute__ ((__nonnull__ (1, 2))); 8657: 8657: 8657: extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, 8657: int __pshared) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: # 1112 "/usr/include/pthread.h" 3 4 8657: extern int pthread_key_create (pthread_key_t *__key, 8657: void (*__destr_function) (void *)) 8657: throw () __attribute__ ((__nonnull__ (1))); 8657: 8657: 8657: extern int pthread_key_delete (pthread_key_t __key) throw (); 8657: 8657: 8657: extern void *pthread_getspecific (pthread_key_t __key) throw (); 8657: 8657: 8657: extern int pthread_setspecific (pthread_key_t __key, 8657: const void *__pointer) throw () ; 8657: 8657: 8657: 8657: 8657: extern int pthread_getcpuclockid (pthread_t __thread_id, 8657: __clockid_t *__clock_id) 8657: throw () __attribute__ ((__nonnull__ (2))); 8657: # 1146 "/usr/include/pthread.h" 3 4 8657: extern int pthread_atfork (void (*__prepare) (void), 8657: void (*__parent) (void), 8657: void (*__child) (void)) throw (); 8657: 8657: 8657: 8657: 8657: extern __inline __attribute__ ((__gnu_inline__)) int 8657: __attribute__ ((__leaf__)) pthread_equal (pthread_t __thread1, pthread_t __thread2) throw () 8657: { 8657: return __thread1 == __thread2; 8657: } 8657: 8657: 8657: } 8657: # 36 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 2 3 8657: # 47 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 8657: typedef pthread_t __gthread_t; 8657: typedef pthread_key_t __gthread_key_t; 8657: typedef pthread_once_t __gthread_once_t; 8657: typedef pthread_mutex_t __gthread_mutex_t; 8657: typedef pthread_mutex_t __gthread_recursive_mutex_t; 8657: typedef pthread_cond_t __gthread_cond_t; 8657: typedef struct timespec __gthread_time_t; 8657: # 101 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 8657: static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once"))); 8657: static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific"))); 8657: static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific"))); 8657: 8657: static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create"))); 8657: static __typeof(pthread_join) __gthrw_pthread_join __attribute__ ((__weakref__("pthread_join"))); 8657: static __typeof(pthread_equal) __gthrw_pthread_equal __attribute__ ((__weakref__("pthread_equal"))); 8657: static __typeof(pthread_self) __gthrw_pthread_self __attribute__ ((__weakref__("pthread_self"))); 8657: static __typeof(pthread_detach) __gthrw_pthread_detach __attribute__ ((__weakref__("pthread_detach"))); 8657: 8657: static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel"))); 8657: 8657: static __typeof(sched_yield) __gthrw_sched_yield __attribute__ ((__weakref__("sched_yield"))); 8657: 8657: static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock"))); 8657: static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock"))); 8657: 8657: static __typeof(pthread_mutex_timedlock) __gthrw_pthread_mutex_timedlock __attribute__ ((__weakref__("pthread_mutex_timedlock"))); 8657: 8657: static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock"))); 8657: static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init"))); 8657: static __typeof(pthread_mutex_destroy) __gthrw_pthread_mutex_destroy __attribute__ ((__weakref__("pthread_mutex_destroy"))); 8657: 8657: static __typeof(pthread_cond_init) __gthrw_pthread_cond_init __attribute__ ((__weakref__("pthread_cond_init"))); 8657: static __typeof(pthread_cond_broadcast) __gthrw_pthread_cond_broadcast __attribute__ ((__weakref__("pthread_cond_broadcast"))); 8657: static __typeof(pthread_cond_signal) __gthrw_pthread_cond_signal __attribute__ ((__weakref__("pthread_cond_signal"))); 8657: static __typeof(pthread_cond_wait) __gthrw_pthread_cond_wait __attribute__ ((__weakref__("pthread_cond_wait"))); 8657: static __typeof(pthread_cond_timedwait) __gthrw_pthread_cond_timedwait __attribute__ ((__weakref__("pthread_cond_timedwait"))); 8657: static __typeof(pthread_cond_destroy) __gthrw_pthread_cond_destroy __attribute__ ((__weakref__("pthread_cond_destroy"))); 8657: 8657: static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create"))); 8657: static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete"))); 8657: static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init"))); 8657: static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype"))); 8657: static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy"))); 8657: # 236 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 8657: static __typeof(pthread_key_create) __gthrw___pthread_key_create __attribute__ ((__weakref__("__pthread_key_create"))); 8657: # 246 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 8657: static inline int 8657: __gthread_active_p (void) 8657: { 8657: static void *const __gthread_active_ptr 8657: = __extension__ (void *) &__gthrw___pthread_key_create; 8657: return __gthread_active_ptr != 0; 8657: } 8657: # 658 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 8657: static inline int 8657: __gthread_create (__gthread_t *__threadid, void *(*__func) (void*), 8657: void *__args) 8657: { 8657: return __gthrw_pthread_create (__threadid, __null, __func, __args); 8657: } 8657: 8657: static inline int 8657: __gthread_join (__gthread_t __threadid, void **__value_ptr) 8657: { 8657: return __gthrw_pthread_join (__threadid, __value_ptr); 8657: } 8657: 8657: static inline int 8657: __gthread_detach (__gthread_t __threadid) 8657: { 8657: return __gthrw_pthread_detach (__threadid); 8657: } 8657: 8657: static inline int 8657: __gthread_equal (__gthread_t __t1, __gthread_t __t2) 8657: { 8657: return __gthrw_pthread_equal (__t1, __t2); 8657: } 8657: 8657: static inline __gthread_t 8657: __gthread_self (void) 8657: { 8657: return __gthrw_pthread_self (); 8657: } 8657: 8657: static inline int 8657: __gthread_yield (void) 8657: { 8657: return __gthrw_sched_yield (); 8657: } 8657: 8657: static inline int 8657: __gthread_once (__gthread_once_t *__once, void (*__func) (void)) 8657: { 8657: if (__gthread_active_p ()) 8657: return __gthrw_pthread_once (__once, __func); 8657: else 8657: return -1; 8657: } 8657: 8657: static inline int 8657: __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) 8657: { 8657: return __gthrw_pthread_key_create (__key, __dtor); 8657: } 8657: 8657: static inline int 8657: __gthread_key_delete (__gthread_key_t __key) 8657: { 8657: return __gthrw_pthread_key_delete (__key); 8657: } 8657: 8657: static inline void * 8657: __gthread_getspecific (__gthread_key_t __key) 8657: { 8657: return __gthrw_pthread_getspecific (__key); 8657: } 8657: 8657: static inline int 8657: __gthread_setspecific (__gthread_key_t __key, const void *__ptr) 8657: { 8657: return __gthrw_pthread_setspecific (__key, __ptr); 8657: } 8657: 8657: static inline void 8657: __gthread_mutex_init_function (__gthread_mutex_t *__mutex) 8657: { 8657: if (__gthread_active_p ()) 8657: __gthrw_pthread_mutex_init (__mutex, __null); 8657: } 8657: 8657: static inline int 8657: __gthread_mutex_destroy (__gthread_mutex_t *__mutex) 8657: { 8657: if (__gthread_active_p ()) 8657: return __gthrw_pthread_mutex_destroy (__mutex); 8657: else 8657: return 0; 8657: } 8657: 8657: static inline int 8657: __gthread_mutex_lock (__gthread_mutex_t *__mutex) 8657: { 8657: if (__gthread_active_p ()) 8657: return __gthrw_pthread_mutex_lock (__mutex); 8657: else 8657: return 0; 8657: } 8657: 8657: static inline int 8657: __gthread_mutex_trylock (__gthread_mutex_t *__mutex) 8657: { 8657: if (__gthread_active_p ()) 8657: return __gthrw_pthread_mutex_trylock (__mutex); 8657: else 8657: return 0; 8657: } 8657: 8657: 8657: static inline int 8657: __gthread_mutex_timedlock (__gthread_mutex_t *__mutex, 8657: const __gthread_time_t *__abs_timeout) 8657: { 8657: if (__gthread_active_p ()) 8657: return __gthrw_pthread_mutex_timedlock (__mutex, __abs_timeout); 8657: else 8657: return 0; 8657: } 8657: 8657: 8657: static inline int 8657: __gthread_mutex_unlock (__gthread_mutex_t *__mutex) 8657: { 8657: if (__gthread_active_p ()) 8657: return __gthrw_pthread_mutex_unlock (__mutex); 8657: else 8657: return 0; 8657: } 8657: # 807 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 8657: static inline int 8657: __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) 8657: { 8657: return __gthread_mutex_lock (__mutex); 8657: } 8657: 8657: static inline int 8657: __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) 8657: { 8657: return __gthread_mutex_trylock (__mutex); 8657: } 8657: 8657: 8657: static inline int 8657: __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, 8657: const __gthread_time_t *__abs_timeout) 8657: { 8657: return __gthread_mutex_timedlock (__mutex, __abs_timeout); 8657: } 8657: 8657: 8657: static inline int 8657: __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) 8657: { 8657: return __gthread_mutex_unlock (__mutex); 8657: } 8657: 8657: static inline int 8657: __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex) 8657: { 8657: return __gthread_mutex_destroy (__mutex); 8657: } 8657: # 849 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 8657: static inline int 8657: __gthread_cond_broadcast (__gthread_cond_t *__cond) 8657: { 8657: return __gthrw_pthread_cond_broadcast (__cond); 8657: } 8657: 8657: static inline int 8657: __gthread_cond_signal (__gthread_cond_t *__cond) 8657: { 8657: return __gthrw_pthread_cond_signal (__cond); 8657: } 8657: 8657: static inline int 8657: __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex) 8657: { 8657: return __gthrw_pthread_cond_wait (__cond, __mutex); 8657: } 8657: 8657: static inline int 8657: __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex, 8657: const __gthread_time_t *__abs_timeout) 8657: { 8657: return __gthrw_pthread_cond_timedwait (__cond, __mutex, __abs_timeout); 8657: } 8657: 8657: static inline int 8657: __gthread_cond_wait_recursive (__gthread_cond_t *__cond, 8657: __gthread_recursive_mutex_t *__mutex) 8657: { 8657: return __gthread_cond_wait (__cond, __mutex); 8657: } 8657: 8657: static inline int 8657: __gthread_cond_destroy (__gthread_cond_t* __cond) 8657: { 8657: return __gthrw_pthread_cond_destroy (__cond); 8657: } 8657: # 149 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr.h" 2 3 8657: 8657: 8657: #pragma GCC visibility pop 8657: # 36 "/usr/include/c++/8/ext/atomicity.h" 2 3 8657: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/atomic_word.h" 1 3 8657: # 32 "/usr/include/arm-linux-gnueabihf/c++/8/bits/atomic_word.h" 3 8657: typedef int _Atomic_word; 8657: # 37 "/usr/include/c++/8/ext/atomicity.h" 2 3 8657: 8657: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: static inline _Atomic_word 8657: __exchange_and_add(volatile _Atomic_word* __mem, int __val) 8657: { return __atomic_fetch_add(__mem, __val, 4); } 8657: 8657: static inline void 8657: __atomic_add(volatile _Atomic_word* __mem, int __val) 8657: { __atomic_fetch_add(__mem, __val, 4); } 8657: # 64 "/usr/include/c++/8/ext/atomicity.h" 3 8657: static inline _Atomic_word 8657: __exchange_and_add_single(_Atomic_word* __mem, int __val) 8657: { 8657: _Atomic_word __result = *__mem; 8657: *__mem += __val; 8657: return __result; 8657: } 8657: 8657: static inline void 8657: __atomic_add_single(_Atomic_word* __mem, int __val) 8657: { *__mem += __val; } 8657: 8657: static inline _Atomic_word 8657: __attribute__ ((__unused__)) 8657: __exchange_and_add_dispatch(_Atomic_word* __mem, int __val) 8657: { 8657: 8657: if (__gthread_active_p()) 8657: return __exchange_and_add(__mem, __val); 8657: else 8657: return __exchange_and_add_single(__mem, __val); 8657: 8657: 8657: 8657: } 8657: 8657: static inline void 8657: __attribute__ ((__unused__)) 8657: __atomic_add_dispatch(_Atomic_word* __mem, int __val) 8657: { 8657: 8657: if (__gthread_active_p()) 8657: __atomic_add(__mem, __val); 8657: else 8657: __atomic_add_single(__mem, __val); 8657: 8657: 8657: 8657: } 8657: 8657: 8657: } 8657: # 40 "/usr/include/c++/8/bits/basic_string.h" 2 3 8657: # 52 "/usr/include/c++/8/bits/basic_string.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: namespace __cxx11 { 8657: # 76 "/usr/include/c++/8/bits/basic_string.h" 3 8657: template 8657: class basic_string 8657: { 8657: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8657: rebind<_CharT>::other _Char_alloc_type; 8657: typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; 8657: 8657: 8657: public: 8657: typedef _Traits traits_type; 8657: typedef typename _Traits::char_type value_type; 8657: typedef _Char_alloc_type allocator_type; 8657: typedef typename _Alloc_traits::size_type size_type; 8657: typedef typename _Alloc_traits::difference_type difference_type; 8657: typedef typename _Alloc_traits::reference reference; 8657: typedef typename _Alloc_traits::const_reference const_reference; 8657: typedef typename _Alloc_traits::pointer pointer; 8657: typedef typename _Alloc_traits::const_pointer const_pointer; 8657: typedef __gnu_cxx::__normal_iterator iterator; 8657: typedef __gnu_cxx::__normal_iterator 8657: const_iterator; 8657: typedef std::reverse_iterator const_reverse_iterator; 8657: typedef std::reverse_iterator reverse_iterator; 8657: 8657: 8657: static const size_type npos = static_cast(-1); 8657: 8657: private: 8657: 8657: 8657: 8657: 8657: typedef const_iterator __const_iterator; 8657: # 139 "/usr/include/c++/8/bits/basic_string.h" 3 8657: struct _Alloc_hider : allocator_type 8657: { 8657: 8657: 8657: 8657: 8657: _Alloc_hider(pointer __dat, const _Alloc& __a) 8657: : allocator_type(__a), _M_p(__dat) { } 8657: 8657: _Alloc_hider(pointer __dat, _Alloc&& __a = _Alloc()) 8657: : allocator_type(std::move(__a)), _M_p(__dat) { } 8657: 8657: 8657: pointer _M_p; 8657: }; 8657: 8657: _Alloc_hider _M_dataplus; 8657: size_type _M_string_length; 8657: 8657: enum { _S_local_capacity = 15 / sizeof(_CharT) }; 8657: 8657: union 8657: { 8657: _CharT _M_local_buf[_S_local_capacity + 1]; 8657: size_type _M_allocated_capacity; 8657: }; 8657: 8657: void 8657: _M_data(pointer __p) 8657: { _M_dataplus._M_p = __p; } 8657: 8657: void 8657: _M_length(size_type __length) 8657: { _M_string_length = __length; } 8657: 8657: pointer 8657: _M_data() const 8657: { return _M_dataplus._M_p; } 8657: 8657: pointer 8657: _M_local_data() 8657: { 8657: 8657: return std::pointer_traits::pointer_to(*_M_local_buf); 8657: 8657: 8657: 8657: } 8657: 8657: const_pointer 8657: _M_local_data() const 8657: { 8657: 8657: return std::pointer_traits::pointer_to(*_M_local_buf); 8657: 8657: 8657: 8657: } 8657: 8657: void 8657: _M_capacity(size_type __capacity) 8657: { _M_allocated_capacity = __capacity; } 8657: 8657: void 8657: _M_set_length(size_type __n) 8657: { 8657: _M_length(__n); 8657: traits_type::assign(_M_data()[__n], _CharT()); 8657: } 8657: 8657: bool 8657: _M_is_local() const 8657: { return _M_data() == _M_local_data(); } 8657: 8657: 8657: pointer 8657: _M_create(size_type&, size_type); 8657: 8657: void 8657: _M_dispose() 8657: { 8657: if (!_M_is_local()) 8657: _M_destroy(_M_allocated_capacity); 8657: } 8657: 8657: void 8657: _M_destroy(size_type __size) throw() 8657: { _Alloc_traits::deallocate(_M_get_allocator(), _M_data(), __size + 1); } 8657: 8657: 8657: 8657: template 8657: void 8657: _M_construct_aux(_InIterator __beg, _InIterator __end, 8657: std::__false_type) 8657: { 8657: typedef typename iterator_traits<_InIterator>::iterator_category _Tag; 8657: _M_construct(__beg, __end, _Tag()); 8657: } 8657: 8657: 8657: 8657: template 8657: void 8657: _M_construct_aux(_Integer __beg, _Integer __end, std::__true_type) 8657: { _M_construct_aux_2(static_cast(__beg), __end); } 8657: 8657: void 8657: _M_construct_aux_2(size_type __req, _CharT __c) 8657: { _M_construct(__req, __c); } 8657: 8657: template 8657: void 8657: _M_construct(_InIterator __beg, _InIterator __end) 8657: { 8657: typedef typename std::__is_integer<_InIterator>::__type _Integral; 8657: _M_construct_aux(__beg, __end, _Integral()); 8657: } 8657: 8657: 8657: template 8657: void 8657: _M_construct(_InIterator __beg, _InIterator __end, 8657: std::input_iterator_tag); 8657: 8657: 8657: 8657: template 8657: void 8657: _M_construct(_FwdIterator __beg, _FwdIterator __end, 8657: std::forward_iterator_tag); 8657: 8657: void 8657: _M_construct(size_type __req, _CharT __c); 8657: 8657: allocator_type& 8657: _M_get_allocator() 8657: { return _M_dataplus; } 8657: 8657: const allocator_type& 8657: _M_get_allocator() const 8657: { return _M_dataplus; } 8657: 8657: private: 8657: # 298 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: _M_check(size_type __pos, const char* __s) const 8657: { 8657: if (__pos > this->size()) 8657: __throw_out_of_range_fmt(("%s: __pos (which is %zu) > " "this->size() (which is %zu)") 8657: , 8657: __s, __pos, this->size()); 8657: return __pos; 8657: } 8657: 8657: void 8657: _M_check_length(size_type __n1, size_type __n2, const char* __s) const 8657: { 8657: if (this->max_size() - (this->size() - __n1) < __n2) 8657: __throw_length_error((__s)); 8657: } 8657: 8657: 8657: 8657: size_type 8657: _M_limit(size_type __pos, size_type __off) const noexcept 8657: { 8657: const bool __testoff = __off < this->size() - __pos; 8657: return __testoff ? __off : this->size() - __pos; 8657: } 8657: 8657: 8657: bool 8657: _M_disjunct(const _CharT* __s) const noexcept 8657: { 8657: return (less()(__s, _M_data()) 8657: || less()(_M_data() + this->size(), __s)); 8657: } 8657: 8657: 8657: 8657: static void 8657: _S_copy(_CharT* __d, const _CharT* __s, size_type __n) 8657: { 8657: if (__n == 1) 8657: traits_type::assign(*__d, *__s); 8657: else 8657: traits_type::copy(__d, __s, __n); 8657: } 8657: 8657: static void 8657: _S_move(_CharT* __d, const _CharT* __s, size_type __n) 8657: { 8657: if (__n == 1) 8657: traits_type::assign(*__d, *__s); 8657: else 8657: traits_type::move(__d, __s, __n); 8657: } 8657: 8657: static void 8657: _S_assign(_CharT* __d, size_type __n, _CharT __c) 8657: { 8657: if (__n == 1) 8657: traits_type::assign(*__d, __c); 8657: else 8657: traits_type::assign(__d, __n, __c); 8657: } 8657: 8657: 8657: 8657: template 8657: static void 8657: _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) 8657: { 8657: for (; __k1 != __k2; ++__k1, (void)++__p) 8657: traits_type::assign(*__p, *__k1); 8657: } 8657: 8657: static void 8657: _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) noexcept 8657: { _S_copy_chars(__p, __k1.base(), __k2.base()); } 8657: 8657: static void 8657: _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) 8657: noexcept 8657: { _S_copy_chars(__p, __k1.base(), __k2.base()); } 8657: 8657: static void 8657: _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) noexcept 8657: { _S_copy(__p, __k1, __k2 - __k1); } 8657: 8657: static void 8657: _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) 8657: noexcept 8657: { _S_copy(__p, __k1, __k2 - __k1); } 8657: 8657: static int 8657: _S_compare(size_type __n1, size_type __n2) noexcept 8657: { 8657: const difference_type __d = difference_type(__n1 - __n2); 8657: 8657: if (__d > __gnu_cxx::__numeric_traits::__max) 8657: return __gnu_cxx::__numeric_traits::__max; 8657: else if (__d < __gnu_cxx::__numeric_traits::__min) 8657: return __gnu_cxx::__numeric_traits::__min; 8657: else 8657: return int(__d); 8657: } 8657: 8657: void 8657: _M_assign(const basic_string&); 8657: 8657: void 8657: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 8657: size_type __len2); 8657: 8657: void 8657: _M_erase(size_type __pos, size_type __n); 8657: 8657: public: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: basic_string() 8657: noexcept(is_nothrow_default_constructible<_Alloc>::value) 8657: : _M_dataplus(_M_local_data()) 8657: { _M_set_length(0); } 8657: 8657: 8657: 8657: 8657: explicit 8657: basic_string(const _Alloc& __a) noexcept 8657: : _M_dataplus(_M_local_data(), __a) 8657: { _M_set_length(0); } 8657: 8657: 8657: 8657: 8657: 8657: basic_string(const basic_string& __str) 8657: : _M_dataplus(_M_local_data(), 8657: _Alloc_traits::_S_select_on_copy(__str._M_get_allocator())) 8657: { _M_construct(__str._M_data(), __str._M_data() + __str.length()); } 8657: # 450 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string(const basic_string& __str, size_type __pos, 8657: const _Alloc& __a = _Alloc()) 8657: : _M_dataplus(_M_local_data(), __a) 8657: { 8657: const _CharT* __start = __str._M_data() 8657: + __str._M_check(__pos, "basic_string::basic_string"); 8657: _M_construct(__start, __start + __str._M_limit(__pos, npos)); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: basic_string(const basic_string& __str, size_type __pos, 8657: size_type __n) 8657: : _M_dataplus(_M_local_data()) 8657: { 8657: const _CharT* __start = __str._M_data() 8657: + __str._M_check(__pos, "basic_string::basic_string"); 8657: _M_construct(__start, __start + __str._M_limit(__pos, __n)); 8657: } 8657: # 481 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string(const basic_string& __str, size_type __pos, 8657: size_type __n, const _Alloc& __a) 8657: : _M_dataplus(_M_local_data(), __a) 8657: { 8657: const _CharT* __start 8657: = __str._M_data() + __str._M_check(__pos, "string::string"); 8657: _M_construct(__start, __start + __str._M_limit(__pos, __n)); 8657: } 8657: # 499 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string(const _CharT* __s, size_type __n, 8657: const _Alloc& __a = _Alloc()) 8657: : _M_dataplus(_M_local_data(), __a) 8657: { _M_construct(__s, __s + __n); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()) 8657: : _M_dataplus(_M_local_data(), __a) 8657: { _M_construct(__s, __s ? __s + traits_type::length(__s) : __s+npos); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()) 8657: : _M_dataplus(_M_local_data(), __a) 8657: { _M_construct(__n, __c); } 8657: # 531 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string(basic_string&& __str) noexcept 8657: : _M_dataplus(_M_local_data(), std::move(__str._M_get_allocator())) 8657: { 8657: if (__str._M_is_local()) 8657: { 8657: traits_type::copy(_M_local_buf, __str._M_local_buf, 8657: _S_local_capacity + 1); 8657: } 8657: else 8657: { 8657: _M_data(__str._M_data()); 8657: _M_capacity(__str._M_allocated_capacity); 8657: } 8657: 8657: 8657: 8657: 8657: _M_length(__str.length()); 8657: __str._M_data(__str._M_local_data()); 8657: __str._M_set_length(0); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc()) 8657: : _M_dataplus(_M_local_data(), __a) 8657: { _M_construct(__l.begin(), __l.end()); } 8657: 8657: basic_string(const basic_string& __str, const _Alloc& __a) 8657: : _M_dataplus(_M_local_data(), __a) 8657: { _M_construct(__str.begin(), __str.end()); } 8657: 8657: basic_string(basic_string&& __str, const _Alloc& __a) 8657: noexcept(_Alloc_traits::_S_always_equal()) 8657: : _M_dataplus(_M_local_data(), __a) 8657: { 8657: if (__str._M_is_local()) 8657: { 8657: traits_type::copy(_M_local_buf, __str._M_local_buf, 8657: _S_local_capacity + 1); 8657: _M_length(__str.length()); 8657: __str._M_set_length(0); 8657: } 8657: else if (_Alloc_traits::_S_always_equal() 8657: || __str.get_allocator() == __a) 8657: { 8657: _M_data(__str._M_data()); 8657: _M_length(__str.length()); 8657: _M_capacity(__str._M_allocated_capacity); 8657: __str._M_data(__str._M_local_buf); 8657: __str._M_set_length(0); 8657: } 8657: else 8657: _M_construct(__str.begin(), __str.end()); 8657: } 8657: # 599 "/usr/include/c++/8/bits/basic_string.h" 3 8657: template> 8657: 8657: 8657: 8657: basic_string(_InputIterator __beg, _InputIterator __end, 8657: const _Alloc& __a = _Alloc()) 8657: : _M_dataplus(_M_local_data(), __a) 8657: { _M_construct(__beg, __end); } 8657: # 646 "/usr/include/c++/8/bits/basic_string.h" 3 8657: ~basic_string() 8657: { _M_dispose(); } 8657: 8657: 8657: 8657: 8657: 8657: basic_string& 8657: operator=(const basic_string& __str) 8657: { 8657: 8657: if (_Alloc_traits::_S_propagate_on_copy_assign()) 8657: { 8657: if (!_Alloc_traits::_S_always_equal() && !_M_is_local() 8657: && _M_get_allocator() != __str._M_get_allocator()) 8657: { 8657: 8657: 8657: if (__str.size() <= _S_local_capacity) 8657: { 8657: _M_destroy(_M_allocated_capacity); 8657: _M_data(_M_local_data()); 8657: _M_set_length(0); 8657: } 8657: else 8657: { 8657: const auto __len = __str.size(); 8657: auto __alloc = __str._M_get_allocator(); 8657: 8657: auto __ptr = _Alloc_traits::allocate(__alloc, __len + 1); 8657: _M_destroy(_M_allocated_capacity); 8657: _M_data(__ptr); 8657: _M_capacity(__len); 8657: _M_set_length(__len); 8657: } 8657: } 8657: std::__alloc_on_copy(_M_get_allocator(), __str._M_get_allocator()); 8657: } 8657: 8657: return this->assign(__str); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: basic_string& 8657: operator=(const _CharT* __s) 8657: { return this->assign(__s); } 8657: # 703 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: operator=(_CharT __c) 8657: { 8657: this->assign(1, __c); 8657: return *this; 8657: } 8657: # 721 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: operator=(basic_string&& __str) 8657: noexcept(_Alloc_traits::_S_nothrow_move()) 8657: { 8657: if (!_M_is_local() && _Alloc_traits::_S_propagate_on_move_assign() 8657: && !_Alloc_traits::_S_always_equal() 8657: && _M_get_allocator() != __str._M_get_allocator()) 8657: { 8657: 8657: _M_destroy(_M_allocated_capacity); 8657: _M_data(_M_local_data()); 8657: _M_set_length(0); 8657: } 8657: 8657: std::__alloc_on_move(_M_get_allocator(), __str._M_get_allocator()); 8657: 8657: if (!__str._M_is_local() 8657: && (_Alloc_traits::_S_propagate_on_move_assign() 8657: || _Alloc_traits::_S_always_equal())) 8657: { 8657: pointer __data = nullptr; 8657: size_type __capacity; 8657: if (!_M_is_local()) 8657: { 8657: if (_Alloc_traits::_S_always_equal()) 8657: { 8657: __data = _M_data(); 8657: __capacity = _M_allocated_capacity; 8657: } 8657: else 8657: _M_destroy(_M_allocated_capacity); 8657: } 8657: 8657: _M_data(__str._M_data()); 8657: _M_length(__str.length()); 8657: _M_capacity(__str._M_allocated_capacity); 8657: if (__data) 8657: { 8657: __str._M_data(__data); 8657: __str._M_capacity(__capacity); 8657: } 8657: else 8657: __str._M_data(__str._M_local_buf); 8657: } 8657: else 8657: assign(__str); 8657: __str.clear(); 8657: return *this; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: basic_string& 8657: operator=(initializer_list<_CharT> __l) 8657: { 8657: this->assign(__l.begin(), __l.size()); 8657: return *this; 8657: } 8657: # 806 "/usr/include/c++/8/bits/basic_string.h" 3 8657: iterator 8657: begin() noexcept 8657: { return iterator(_M_data()); } 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: begin() const noexcept 8657: { return const_iterator(_M_data()); } 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: end() noexcept 8657: { return iterator(_M_data() + this->size()); } 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: end() const noexcept 8657: { return const_iterator(_M_data() + this->size()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: rbegin() noexcept 8657: { return reverse_iterator(this->end()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: rbegin() const noexcept 8657: { return const_reverse_iterator(this->end()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: rend() noexcept 8657: { return reverse_iterator(this->begin()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: rend() const noexcept 8657: { return const_reverse_iterator(this->begin()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: cbegin() const noexcept 8657: { return const_iterator(this->_M_data()); } 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: cend() const noexcept 8657: { return const_iterator(this->_M_data() + this->size()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: crbegin() const noexcept 8657: { return const_reverse_iterator(this->end()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: crend() const noexcept 8657: { return const_reverse_iterator(this->begin()); } 8657: 8657: 8657: public: 8657: 8657: 8657: 8657: size_type 8657: size() const noexcept 8657: { return _M_string_length; } 8657: 8657: 8657: 8657: size_type 8657: length() const noexcept 8657: { return _M_string_length; } 8657: 8657: 8657: size_type 8657: max_size() const noexcept 8657: { return (_Alloc_traits::max_size(_M_get_allocator()) - 1) / 2; } 8657: # 935 "/usr/include/c++/8/bits/basic_string.h" 3 8657: void 8657: resize(size_type __n, _CharT __c); 8657: # 948 "/usr/include/c++/8/bits/basic_string.h" 3 8657: void 8657: resize(size_type __n) 8657: { this->resize(__n, _CharT()); } 8657: 8657: 8657: 8657: void 8657: shrink_to_fit() noexcept 8657: { 8657: 8657: if (capacity() > size()) 8657: { 8657: try 8657: { reserve(0); } 8657: catch(...) 8657: { } 8657: } 8657: 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: size_type 8657: capacity() const noexcept 8657: { 8657: return _M_is_local() ? size_type(_S_local_capacity) 8657: : _M_allocated_capacity; 8657: } 8657: # 997 "/usr/include/c++/8/bits/basic_string.h" 3 8657: void 8657: reserve(size_type __res_arg = 0); 8657: 8657: 8657: 8657: 8657: void 8657: clear() noexcept 8657: { _M_set_length(0); } 8657: 8657: 8657: 8657: 8657: 8657: bool 8657: empty() const noexcept 8657: { return this->size() == 0; } 8657: # 1026 "/usr/include/c++/8/bits/basic_string.h" 3 8657: const_reference 8657: operator[] (size_type __pos) const noexcept 8657: { 8657: ; 8657: return _M_data()[__pos]; 8657: } 8657: # 1043 "/usr/include/c++/8/bits/basic_string.h" 3 8657: reference 8657: operator[](size_type __pos) 8657: { 8657: 8657: 8657: ; 8657: 8657: ; 8657: return _M_data()[__pos]; 8657: } 8657: # 1064 "/usr/include/c++/8/bits/basic_string.h" 3 8657: const_reference 8657: at(size_type __n) const 8657: { 8657: if (__n >= this->size()) 8657: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8657: 8657: , 8657: __n, this->size()); 8657: return _M_data()[__n]; 8657: } 8657: # 1085 "/usr/include/c++/8/bits/basic_string.h" 3 8657: reference 8657: at(size_type __n) 8657: { 8657: if (__n >= size()) 8657: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8657: 8657: , 8657: __n, this->size()); 8657: return _M_data()[__n]; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reference 8657: front() noexcept 8657: { 8657: ; 8657: return operator[](0); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: const_reference 8657: front() const noexcept 8657: { 8657: ; 8657: return operator[](0); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: reference 8657: back() noexcept 8657: { 8657: ; 8657: return operator[](this->size() - 1); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: const_reference 8657: back() const noexcept 8657: { 8657: ; 8657: return operator[](this->size() - 1); 8657: } 8657: # 1148 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: operator+=(const basic_string& __str) 8657: { return this->append(__str); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: basic_string& 8657: operator+=(const _CharT* __s) 8657: { return this->append(__s); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: basic_string& 8657: operator+=(_CharT __c) 8657: { 8657: this->push_back(__c); 8657: return *this; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: basic_string& 8657: operator+=(initializer_list<_CharT> __l) 8657: { return this->append(__l.begin(), __l.size()); } 8657: # 1201 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: append(const basic_string& __str) 8657: { return _M_append(__str._M_data(), __str.size()); } 8657: # 1218 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: append(const basic_string& __str, size_type __pos, size_type __n) 8657: { return _M_append(__str._M_data() 8657: + __str._M_check(__pos, "basic_string::append"), 8657: __str._M_limit(__pos, __n)); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: basic_string& 8657: append(const _CharT* __s, size_type __n) 8657: { 8657: ; 8657: _M_check_length(size_type(0), __n, "basic_string::append"); 8657: return _M_append(__s, __n); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: basic_string& 8657: append(const _CharT* __s) 8657: { 8657: ; 8657: const size_type __n = traits_type::length(__s); 8657: _M_check_length(size_type(0), __n, "basic_string::append"); 8657: return _M_append(__s, __n); 8657: } 8657: # 1260 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: append(size_type __n, _CharT __c) 8657: { return _M_replace_aux(this->size(), size_type(0), __n, __c); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: basic_string& 8657: append(initializer_list<_CharT> __l) 8657: { return this->append(__l.begin(), __l.size()); } 8657: # 1284 "/usr/include/c++/8/bits/basic_string.h" 3 8657: template> 8657: 8657: 8657: 8657: basic_string& 8657: append(_InputIterator __first, _InputIterator __last) 8657: { return this->replace(end(), end(), __first, __last); } 8657: # 1329 "/usr/include/c++/8/bits/basic_string.h" 3 8657: void 8657: push_back(_CharT __c) 8657: { 8657: const size_type __size = this->size(); 8657: if (__size + 1 > this->capacity()) 8657: this->_M_mutate(__size, size_type(0), 0, size_type(1)); 8657: traits_type::assign(this->_M_data()[__size], __c); 8657: this->_M_set_length(__size + 1); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: basic_string& 8657: assign(const basic_string& __str) 8657: { 8657: this->_M_assign(__str); 8657: return *this; 8657: } 8657: # 1360 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: assign(basic_string&& __str) 8657: noexcept(_Alloc_traits::_S_nothrow_move()) 8657: { 8657: 8657: 8657: return *this = std::move(__str); 8657: } 8657: # 1383 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: assign(const basic_string& __str, size_type __pos, size_type __n) 8657: { return _M_replace(size_type(0), this->size(), __str._M_data() 8657: + __str._M_check(__pos, "basic_string::assign"), 8657: __str._M_limit(__pos, __n)); } 8657: # 1399 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: assign(const _CharT* __s, size_type __n) 8657: { 8657: ; 8657: return _M_replace(size_type(0), this->size(), __s, __n); 8657: } 8657: # 1415 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: assign(const _CharT* __s) 8657: { 8657: ; 8657: return _M_replace(size_type(0), this->size(), __s, 8657: traits_type::length(__s)); 8657: } 8657: # 1432 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: assign(size_type __n, _CharT __c) 8657: { return _M_replace_aux(size_type(0), this->size(), __n, __c); } 8657: # 1445 "/usr/include/c++/8/bits/basic_string.h" 3 8657: template> 8657: 8657: 8657: 8657: basic_string& 8657: assign(_InputIterator __first, _InputIterator __last) 8657: { return this->replace(begin(), end(), __first, __last); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: basic_string& 8657: assign(initializer_list<_CharT> __l) 8657: { return this->assign(__l.begin(), __l.size()); } 8657: # 1513 "/usr/include/c++/8/bits/basic_string.h" 3 8657: iterator 8657: insert(const_iterator __p, size_type __n, _CharT __c) 8657: { 8657: ; 8657: const size_type __pos = __p - begin(); 8657: this->replace(__p, __p, __n, __c); 8657: return iterator(this->_M_data() + __pos); 8657: } 8657: # 1555 "/usr/include/c++/8/bits/basic_string.h" 3 8657: template> 8657: iterator 8657: insert(const_iterator __p, _InputIterator __beg, _InputIterator __end) 8657: { 8657: ; 8657: const size_type __pos = __p - begin(); 8657: this->replace(__p, __p, __beg, __end); 8657: return iterator(this->_M_data() + __pos); 8657: } 8657: # 1591 "/usr/include/c++/8/bits/basic_string.h" 3 8657: void 8657: insert(iterator __p, initializer_list<_CharT> __l) 8657: { 8657: ; 8657: this->insert(__p - begin(), __l.begin(), __l.size()); 8657: } 8657: # 1611 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: insert(size_type __pos1, const basic_string& __str) 8657: { return this->replace(__pos1, size_type(0), 8657: __str._M_data(), __str.size()); } 8657: # 1634 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: insert(size_type __pos1, const basic_string& __str, 8657: size_type __pos2, size_type __n) 8657: { return this->replace(__pos1, size_type(0), __str._M_data() 8657: + __str._M_check(__pos2, "basic_string::insert"), 8657: __str._M_limit(__pos2, __n)); } 8657: # 1657 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: insert(size_type __pos, const _CharT* __s, size_type __n) 8657: { return this->replace(__pos, size_type(0), __s, __n); } 8657: # 1676 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: insert(size_type __pos, const _CharT* __s) 8657: { 8657: ; 8657: return this->replace(__pos, size_type(0), __s, 8657: traits_type::length(__s)); 8657: } 8657: # 1700 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: insert(size_type __pos, size_type __n, _CharT __c) 8657: { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), 8657: size_type(0), __n, __c); } 8657: # 1718 "/usr/include/c++/8/bits/basic_string.h" 3 8657: iterator 8657: insert(__const_iterator __p, _CharT __c) 8657: { 8657: ; 8657: const size_type __pos = __p - begin(); 8657: _M_replace_aux(__pos, size_type(0), size_type(1), __c); 8657: return iterator(_M_data() + __pos); 8657: } 8657: # 1778 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: erase(size_type __pos = 0, size_type __n = npos) 8657: { 8657: _M_check(__pos, "basic_string::erase"); 8657: if (__n == npos) 8657: this->_M_set_length(__pos); 8657: else if (__n != 0) 8657: this->_M_erase(__pos, _M_limit(__pos, __n)); 8657: return *this; 8657: } 8657: # 1797 "/usr/include/c++/8/bits/basic_string.h" 3 8657: iterator 8657: erase(__const_iterator __position) 8657: { 8657: 8657: ; 8657: const size_type __pos = __position - begin(); 8657: this->_M_erase(__pos, size_type(1)); 8657: return iterator(_M_data() + __pos); 8657: } 8657: # 1816 "/usr/include/c++/8/bits/basic_string.h" 3 8657: iterator 8657: erase(__const_iterator __first, __const_iterator __last) 8657: { 8657: 8657: ; 8657: const size_type __pos = __first - begin(); 8657: if (__last == end()) 8657: this->_M_set_length(__pos); 8657: else 8657: this->_M_erase(__pos, __last - __first); 8657: return iterator(this->_M_data() + __pos); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: void 8657: pop_back() noexcept 8657: { 8657: ; 8657: _M_erase(size() - 1, 1); 8657: } 8657: # 1860 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: replace(size_type __pos, size_type __n, const basic_string& __str) 8657: { return this->replace(__pos, __n, __str._M_data(), __str.size()); } 8657: # 1882 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: replace(size_type __pos1, size_type __n1, const basic_string& __str, 8657: size_type __pos2, size_type __n2) 8657: { return this->replace(__pos1, __n1, __str._M_data() 8657: + __str._M_check(__pos2, "basic_string::replace"), 8657: __str._M_limit(__pos2, __n2)); } 8657: # 1907 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: replace(size_type __pos, size_type __n1, const _CharT* __s, 8657: size_type __n2) 8657: { 8657: ; 8657: return _M_replace(_M_check(__pos, "basic_string::replace"), 8657: _M_limit(__pos, __n1), __s, __n2); 8657: } 8657: # 1932 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: replace(size_type __pos, size_type __n1, const _CharT* __s) 8657: { 8657: ; 8657: return this->replace(__pos, __n1, __s, traits_type::length(__s)); 8657: } 8657: # 1956 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) 8657: { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), 8657: _M_limit(__pos, __n1), __n2, __c); } 8657: # 1974 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: replace(__const_iterator __i1, __const_iterator __i2, 8657: const basic_string& __str) 8657: { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } 8657: # 1994 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: replace(__const_iterator __i1, __const_iterator __i2, 8657: const _CharT* __s, size_type __n) 8657: { 8657: 8657: ; 8657: return this->replace(__i1 - begin(), __i2 - __i1, __s, __n); 8657: } 8657: # 2016 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: replace(__const_iterator __i1, __const_iterator __i2, const _CharT* __s) 8657: { 8657: ; 8657: return this->replace(__i1, __i2, __s, traits_type::length(__s)); 8657: } 8657: # 2037 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: replace(__const_iterator __i1, __const_iterator __i2, size_type __n, 8657: _CharT __c) 8657: { 8657: 8657: ; 8657: return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __c); 8657: } 8657: # 2062 "/usr/include/c++/8/bits/basic_string.h" 3 8657: template> 8657: basic_string& 8657: replace(const_iterator __i1, const_iterator __i2, 8657: _InputIterator __k1, _InputIterator __k2) 8657: { 8657: 8657: ; 8657: ; 8657: return this->_M_replace_dispatch(__i1, __i2, __k1, __k2, 8657: std::__false_type()); 8657: } 8657: # 2094 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& 8657: replace(__const_iterator __i1, __const_iterator __i2, 8657: _CharT* __k1, _CharT* __k2) 8657: { 8657: 8657: ; 8657: ; 8657: return this->replace(__i1 - begin(), __i2 - __i1, 8657: __k1, __k2 - __k1); 8657: } 8657: 8657: basic_string& 8657: replace(__const_iterator __i1, __const_iterator __i2, 8657: const _CharT* __k1, const _CharT* __k2) 8657: { 8657: 8657: ; 8657: ; 8657: return this->replace(__i1 - begin(), __i2 - __i1, 8657: __k1, __k2 - __k1); 8657: } 8657: 8657: basic_string& 8657: replace(__const_iterator __i1, __const_iterator __i2, 8657: iterator __k1, iterator __k2) 8657: { 8657: 8657: ; 8657: ; 8657: return this->replace(__i1 - begin(), __i2 - __i1, 8657: __k1.base(), __k2 - __k1); 8657: } 8657: 8657: basic_string& 8657: replace(__const_iterator __i1, __const_iterator __i2, 8657: const_iterator __k1, const_iterator __k2) 8657: { 8657: 8657: ; 8657: ; 8657: return this->replace(__i1 - begin(), __i2 - __i1, 8657: __k1.base(), __k2 - __k1); 8657: } 8657: # 2153 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string& replace(const_iterator __i1, const_iterator __i2, 8657: initializer_list<_CharT> __l) 8657: { return this->replace(__i1, __i2, __l.begin(), __l.size()); } 8657: # 2212 "/usr/include/c++/8/bits/basic_string.h" 3 8657: private: 8657: template 8657: basic_string& 8657: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 8657: _Integer __n, _Integer __val, __true_type) 8657: { return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __val); } 8657: 8657: template 8657: basic_string& 8657: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 8657: _InputIterator __k1, _InputIterator __k2, 8657: __false_type); 8657: 8657: basic_string& 8657: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 8657: _CharT __c); 8657: 8657: basic_string& 8657: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 8657: const size_type __len2); 8657: 8657: basic_string& 8657: _M_append(const _CharT* __s, size_type __n); 8657: 8657: public: 8657: # 2250 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: copy(_CharT* __s, size_type __n, size_type __pos = 0) const; 8657: # 2260 "/usr/include/c++/8/bits/basic_string.h" 3 8657: void 8657: swap(basic_string& __s) noexcept; 8657: # 2270 "/usr/include/c++/8/bits/basic_string.h" 3 8657: const _CharT* 8657: c_str() const noexcept 8657: { return _M_data(); } 8657: # 2282 "/usr/include/c++/8/bits/basic_string.h" 3 8657: const _CharT* 8657: data() const noexcept 8657: { return _M_data(); } 8657: # 2301 "/usr/include/c++/8/bits/basic_string.h" 3 8657: allocator_type 8657: get_allocator() const noexcept 8657: { return _M_get_allocator(); } 8657: # 2317 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find(const _CharT* __s, size_type __pos, size_type __n) const 8657: noexcept; 8657: # 2331 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find(const basic_string& __str, size_type __pos = 0) const 8657: noexcept 8657: { return this->find(__str.data(), __pos, __str.size()); } 8657: # 2363 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find(const _CharT* __s, size_type __pos = 0) const noexcept 8657: { 8657: ; 8657: return this->find(__s, __pos, traits_type::length(__s)); 8657: } 8657: # 2380 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find(_CharT __c, size_type __pos = 0) const noexcept; 8657: # 2393 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: rfind(const basic_string& __str, size_type __pos = npos) const 8657: noexcept 8657: { return this->rfind(__str.data(), __pos, __str.size()); } 8657: # 2427 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: rfind(const _CharT* __s, size_type __pos, size_type __n) const 8657: noexcept; 8657: # 2441 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: rfind(const _CharT* __s, size_type __pos = npos) const 8657: { 8657: ; 8657: return this->rfind(__s, __pos, traits_type::length(__s)); 8657: } 8657: # 2458 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: rfind(_CharT __c, size_type __pos = npos) const noexcept; 8657: # 2472 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find_first_of(const basic_string& __str, size_type __pos = 0) const 8657: noexcept 8657: { return this->find_first_of(__str.data(), __pos, __str.size()); } 8657: # 2507 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 8657: noexcept; 8657: # 2521 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find_first_of(const _CharT* __s, size_type __pos = 0) const 8657: noexcept 8657: { 8657: ; 8657: return this->find_first_of(__s, __pos, traits_type::length(__s)); 8657: } 8657: # 2541 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find_first_of(_CharT __c, size_type __pos = 0) const noexcept 8657: { return this->find(__c, __pos); } 8657: # 2556 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find_last_of(const basic_string& __str, size_type __pos = npos) const 8657: noexcept 8657: { return this->find_last_of(__str.data(), __pos, __str.size()); } 8657: # 2591 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 8657: noexcept; 8657: # 2605 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find_last_of(const _CharT* __s, size_type __pos = npos) const 8657: noexcept 8657: { 8657: ; 8657: return this->find_last_of(__s, __pos, traits_type::length(__s)); 8657: } 8657: # 2625 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find_last_of(_CharT __c, size_type __pos = npos) const noexcept 8657: { return this->rfind(__c, __pos); } 8657: # 2639 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find_first_not_of(const basic_string& __str, size_type __pos = 0) const 8657: noexcept 8657: { return this->find_first_not_of(__str.data(), __pos, __str.size()); } 8657: # 2674 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find_first_not_of(const _CharT* __s, size_type __pos, 8657: size_type __n) const noexcept; 8657: # 2688 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find_first_not_of(const _CharT* __s, size_type __pos = 0) const 8657: noexcept 8657: { 8657: ; 8657: return this->find_first_not_of(__s, __pos, traits_type::length(__s)); 8657: } 8657: # 2706 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find_first_not_of(_CharT __c, size_type __pos = 0) const 8657: noexcept; 8657: # 2721 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find_last_not_of(const basic_string& __str, size_type __pos = npos) const 8657: noexcept 8657: { return this->find_last_not_of(__str.data(), __pos, __str.size()); } 8657: # 2756 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find_last_not_of(const _CharT* __s, size_type __pos, 8657: size_type __n) const noexcept; 8657: # 2770 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find_last_not_of(const _CharT* __s, size_type __pos = npos) const 8657: noexcept 8657: { 8657: ; 8657: return this->find_last_not_of(__s, __pos, traits_type::length(__s)); 8657: } 8657: # 2788 "/usr/include/c++/8/bits/basic_string.h" 3 8657: size_type 8657: find_last_not_of(_CharT __c, size_type __pos = npos) const 8657: noexcept; 8657: # 2804 "/usr/include/c++/8/bits/basic_string.h" 3 8657: basic_string 8657: substr(size_type __pos = 0, size_type __n = npos) const 8657: { return basic_string(*this, 8657: _M_check(__pos, "basic_string::substr"), __n); } 8657: # 2823 "/usr/include/c++/8/bits/basic_string.h" 3 8657: int 8657: compare(const basic_string& __str) const 8657: { 8657: const size_type __size = this->size(); 8657: const size_type __osize = __str.size(); 8657: const size_type __len = std::min(__size, __osize); 8657: 8657: int __r = traits_type::compare(_M_data(), __str.data(), __len); 8657: if (!__r) 8657: __r = _S_compare(__size, __osize); 8657: return __r; 8657: } 8657: # 2916 "/usr/include/c++/8/bits/basic_string.h" 3 8657: int 8657: compare(size_type __pos, size_type __n, const basic_string& __str) const; 8657: # 2942 "/usr/include/c++/8/bits/basic_string.h" 3 8657: int 8657: compare(size_type __pos1, size_type __n1, const basic_string& __str, 8657: size_type __pos2, size_type __n2) const; 8657: # 2960 "/usr/include/c++/8/bits/basic_string.h" 3 8657: int 8657: compare(const _CharT* __s) const noexcept; 8657: # 2984 "/usr/include/c++/8/bits/basic_string.h" 3 8657: int 8657: compare(size_type __pos, size_type __n1, const _CharT* __s) const; 8657: # 3011 "/usr/include/c++/8/bits/basic_string.h" 3 8657: int 8657: compare(size_type __pos, size_type __n1, const _CharT* __s, 8657: size_type __n2) const; 8657: 8657: 8657: template friend class basic_stringbuf; 8657: }; 8657: } 8657: # 5886 "/usr/include/c++/8/bits/basic_string.h" 3 8657: template 8657: basic_string<_CharT, _Traits, _Alloc> 8657: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8657: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8657: { 8657: basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 8657: __str.append(__rhs); 8657: return __str; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: basic_string<_CharT,_Traits,_Alloc> 8657: operator+(const _CharT* __lhs, 8657: const basic_string<_CharT,_Traits,_Alloc>& __rhs); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: basic_string<_CharT,_Traits,_Alloc> 8657: operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline basic_string<_CharT, _Traits, _Alloc> 8657: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8657: const _CharT* __rhs) 8657: { 8657: basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 8657: __str.append(__rhs); 8657: return __str; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline basic_string<_CharT, _Traits, _Alloc> 8657: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) 8657: { 8657: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8657: typedef typename __string_type::size_type __size_type; 8657: __string_type __str(__lhs); 8657: __str.append(__size_type(1), __rhs); 8657: return __str; 8657: } 8657: 8657: 8657: template 8657: inline basic_string<_CharT, _Traits, _Alloc> 8657: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8657: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8657: { return std::move(__lhs.append(__rhs)); } 8657: 8657: template 8657: inline basic_string<_CharT, _Traits, _Alloc> 8657: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8657: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8657: { return std::move(__rhs.insert(0, __lhs)); } 8657: 8657: template 8657: inline basic_string<_CharT, _Traits, _Alloc> 8657: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8657: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8657: { 8657: const auto __size = __lhs.size() + __rhs.size(); 8657: const bool __cond = (__size > __lhs.capacity() 8657: && __size <= __rhs.capacity()); 8657: return __cond ? std::move(__rhs.insert(0, __lhs)) 8657: : std::move(__lhs.append(__rhs)); 8657: } 8657: 8657: template 8657: inline basic_string<_CharT, _Traits, _Alloc> 8657: operator+(const _CharT* __lhs, 8657: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8657: { return std::move(__rhs.insert(0, __lhs)); } 8657: 8657: template 8657: inline basic_string<_CharT, _Traits, _Alloc> 8657: operator+(_CharT __lhs, 8657: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8657: { return std::move(__rhs.insert(0, 1, __lhs)); } 8657: 8657: template 8657: inline basic_string<_CharT, _Traits, _Alloc> 8657: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8657: const _CharT* __rhs) 8657: { return std::move(__lhs.append(__rhs)); } 8657: 8657: template 8657: inline basic_string<_CharT, _Traits, _Alloc> 8657: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8657: _CharT __rhs) 8657: { return std::move(__lhs.append(1, __rhs)); } 8657: # 6007 "/usr/include/c++/8/bits/basic_string.h" 3 8657: template 8657: inline bool 8657: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8657: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8657: noexcept 8657: { return __lhs.compare(__rhs) == 0; } 8657: 8657: template 8657: inline 8657: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type 8657: operator==(const basic_string<_CharT>& __lhs, 8657: const basic_string<_CharT>& __rhs) noexcept 8657: { return (__lhs.size() == __rhs.size() 8657: && !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(), 8657: __lhs.size())); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline bool 8657: operator==(const _CharT* __lhs, 8657: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8657: { return __rhs.compare(__lhs) == 0; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline bool 8657: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8657: const _CharT* __rhs) 8657: { return __lhs.compare(__rhs) == 0; } 8657: # 6054 "/usr/include/c++/8/bits/basic_string.h" 3 8657: template 8657: inline bool 8657: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8657: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8657: noexcept 8657: { return !(__lhs == __rhs); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline bool 8657: operator!=(const _CharT* __lhs, 8657: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8657: { return !(__lhs == __rhs); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline bool 8657: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8657: const _CharT* __rhs) 8657: { return !(__lhs == __rhs); } 8657: # 6092 "/usr/include/c++/8/bits/basic_string.h" 3 8657: template 8657: inline bool 8657: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8657: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8657: noexcept 8657: { return __lhs.compare(__rhs) < 0; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline bool 8657: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8657: const _CharT* __rhs) 8657: { return __lhs.compare(__rhs) < 0; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline bool 8657: operator<(const _CharT* __lhs, 8657: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8657: { return __rhs.compare(__lhs) > 0; } 8657: # 6130 "/usr/include/c++/8/bits/basic_string.h" 3 8657: template 8657: inline bool 8657: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8657: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8657: noexcept 8657: { return __lhs.compare(__rhs) > 0; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline bool 8657: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8657: const _CharT* __rhs) 8657: { return __lhs.compare(__rhs) > 0; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline bool 8657: operator>(const _CharT* __lhs, 8657: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8657: { return __rhs.compare(__lhs) < 0; } 8657: # 6168 "/usr/include/c++/8/bits/basic_string.h" 3 8657: template 8657: inline bool 8657: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8657: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8657: noexcept 8657: { return __lhs.compare(__rhs) <= 0; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline bool 8657: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8657: const _CharT* __rhs) 8657: { return __lhs.compare(__rhs) <= 0; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline bool 8657: operator<=(const _CharT* __lhs, 8657: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8657: { return __rhs.compare(__lhs) >= 0; } 8657: # 6206 "/usr/include/c++/8/bits/basic_string.h" 3 8657: template 8657: inline bool 8657: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8657: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8657: noexcept 8657: { return __lhs.compare(__rhs) >= 0; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline bool 8657: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8657: const _CharT* __rhs) 8657: { return __lhs.compare(__rhs) >= 0; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline bool 8657: operator>=(const _CharT* __lhs, 8657: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8657: { return __rhs.compare(__lhs) <= 0; } 8657: # 6244 "/usr/include/c++/8/bits/basic_string.h" 3 8657: template 8657: inline void 8657: swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, 8657: basic_string<_CharT, _Traits, _Alloc>& __rhs) 8657: noexcept(noexcept(__lhs.swap(__rhs))) 8657: { __lhs.swap(__rhs); } 8657: # 6264 "/usr/include/c++/8/bits/basic_string.h" 3 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: operator>>(basic_istream<_CharT, _Traits>& __is, 8657: basic_string<_CharT, _Traits, _Alloc>& __str); 8657: 8657: template<> 8657: basic_istream& 8657: operator>>(basic_istream& __is, basic_string& __str); 8657: # 6282 "/usr/include/c++/8/bits/basic_string.h" 3 8657: template 8657: inline basic_ostream<_CharT, _Traits>& 8657: operator<<(basic_ostream<_CharT, _Traits>& __os, 8657: const basic_string<_CharT, _Traits, _Alloc>& __str) 8657: { 8657: 8657: 8657: return __ostream_insert(__os, __str.data(), __str.size()); 8657: } 8657: # 6305 "/usr/include/c++/8/bits/basic_string.h" 3 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: getline(basic_istream<_CharT, _Traits>& __is, 8657: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); 8657: # 6322 "/usr/include/c++/8/bits/basic_string.h" 3 8657: template 8657: inline basic_istream<_CharT, _Traits>& 8657: getline(basic_istream<_CharT, _Traits>& __is, 8657: basic_string<_CharT, _Traits, _Alloc>& __str) 8657: { return std::getline(__is, __str, __is.widen('\n')); } 8657: 8657: 8657: 8657: template 8657: inline basic_istream<_CharT, _Traits>& 8657: getline(basic_istream<_CharT, _Traits>&& __is, 8657: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 8657: { return std::getline(__is, __str, __delim); } 8657: 8657: 8657: template 8657: inline basic_istream<_CharT, _Traits>& 8657: getline(basic_istream<_CharT, _Traits>&& __is, 8657: basic_string<_CharT, _Traits, _Alloc>& __str) 8657: { return std::getline(__is, __str); } 8657: 8657: 8657: template<> 8657: basic_istream& 8657: getline(basic_istream& __in, basic_string& __str, 8657: char __delim); 8657: 8657: 8657: template<> 8657: basic_istream& 8657: getline(basic_istream& __in, basic_string& __str, 8657: wchar_t __delim); 8657: 8657: 8657: 8657: } 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/ext/string_conversions.h" 1 3 8657: # 32 "/usr/include/c++/8/ext/string_conversions.h" 3 8657: 8657: # 33 "/usr/include/c++/8/ext/string_conversions.h" 3 8657: # 41 "/usr/include/c++/8/ext/string_conversions.h" 3 8657: # 1 "/usr/include/c++/8/cstdlib" 1 3 8657: # 39 "/usr/include/c++/8/cstdlib" 3 8657: 8657: # 40 "/usr/include/c++/8/cstdlib" 3 8657: # 42 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8657: # 1 "/usr/include/c++/8/cwchar" 1 3 8657: # 39 "/usr/include/c++/8/cwchar" 3 8657: 8657: # 40 "/usr/include/c++/8/cwchar" 3 8657: # 43 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8657: # 1 "/usr/include/c++/8/cstdio" 1 3 8657: # 39 "/usr/include/c++/8/cstdio" 3 8657: 8657: # 40 "/usr/include/c++/8/cstdio" 3 8657: 8657: 8657: # 1 "/usr/include/stdio.h" 1 3 4 8657: # 27 "/usr/include/stdio.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 8657: # 28 "/usr/include/stdio.h" 2 3 4 8657: 8657: extern "C" { 8657: 8657: 8657: 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8657: # 34 "/usr/include/stdio.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/libio.h" 1 3 4 8657: # 31 "/usr/include/libio.h" 3 4 8657: # 1 "/usr/include/_G_config.h" 1 3 4 8657: # 15 "/usr/include/_G_config.h" 3 4 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8657: # 16 "/usr/include/_G_config.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef struct 8657: { 8657: __off_t __pos; 8657: __mbstate_t __state; 8657: } _G_fpos_t; 8657: typedef struct 8657: { 8657: __off64_t __pos; 8657: __mbstate_t __state; 8657: } _G_fpos64_t; 8657: # 32 "/usr/include/libio.h" 2 3 4 8657: # 145 "/usr/include/libio.h" 3 4 8657: struct _IO_jump_t; struct _IO_FILE; 8657: 8657: 8657: 8657: 8657: typedef void _IO_lock_t; 8657: 8657: 8657: 8657: 8657: 8657: struct _IO_marker { 8657: struct _IO_marker *_next; 8657: struct _IO_FILE *_sbuf; 8657: 8657: 8657: 8657: int _pos; 8657: # 173 "/usr/include/libio.h" 3 4 8657: }; 8657: 8657: 8657: enum __codecvt_result 8657: { 8657: __codecvt_ok, 8657: __codecvt_partial, 8657: __codecvt_error, 8657: __codecvt_noconv 8657: }; 8657: # 241 "/usr/include/libio.h" 3 4 8657: struct _IO_FILE { 8657: int _flags; 8657: 8657: 8657: 8657: 8657: char* _IO_read_ptr; 8657: char* _IO_read_end; 8657: char* _IO_read_base; 8657: char* _IO_write_base; 8657: char* _IO_write_ptr; 8657: char* _IO_write_end; 8657: char* _IO_buf_base; 8657: char* _IO_buf_end; 8657: 8657: char *_IO_save_base; 8657: char *_IO_backup_base; 8657: char *_IO_save_end; 8657: 8657: struct _IO_marker *_markers; 8657: 8657: struct _IO_FILE *_chain; 8657: 8657: int _fileno; 8657: 8657: 8657: 8657: int _flags2; 8657: 8657: __off_t _old_offset; 8657: 8657: 8657: 8657: unsigned short _cur_column; 8657: signed char _vtable_offset; 8657: char _shortbuf[1]; 8657: 8657: 8657: 8657: _IO_lock_t *_lock; 8657: # 289 "/usr/include/libio.h" 3 4 8657: __off64_t _offset; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: void *__pad1; 8657: void *__pad2; 8657: void *__pad3; 8657: void *__pad4; 8657: 8657: size_t __pad5; 8657: int _mode; 8657: 8657: char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; 8657: 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: struct _IO_FILE_plus; 8657: 8657: extern struct _IO_FILE_plus _IO_2_1_stdin_; 8657: extern struct _IO_FILE_plus _IO_2_1_stdout_; 8657: extern struct _IO_FILE_plus _IO_2_1_stderr_; 8657: # 333 "/usr/include/libio.h" 3 4 8657: typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf, 8657: size_t __n); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); 8657: 8657: 8657: typedef int __io_close_fn (void *__cookie); 8657: 8657: 8657: 8657: 8657: typedef __io_read_fn cookie_read_function_t; 8657: typedef __io_write_fn cookie_write_function_t; 8657: typedef __io_seek_fn cookie_seek_function_t; 8657: typedef __io_close_fn cookie_close_function_t; 8657: 8657: 8657: typedef struct 8657: { 8657: __io_read_fn *read; 8657: __io_write_fn *write; 8657: __io_seek_fn *seek; 8657: __io_close_fn *close; 8657: } _IO_cookie_io_functions_t; 8657: typedef _IO_cookie_io_functions_t cookie_io_functions_t; 8657: 8657: struct _IO_cookie_file; 8657: 8657: 8657: extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, 8657: void *__cookie, _IO_cookie_io_functions_t __fns); 8657: 8657: 8657: 8657: 8657: extern "C" { 8657: 8657: 8657: extern int __underflow (_IO_FILE *); 8657: extern int __uflow (_IO_FILE *); 8657: extern int __overflow (_IO_FILE *, int); 8657: # 429 "/usr/include/libio.h" 3 4 8657: extern int _IO_getc (_IO_FILE *__fp); 8657: extern int _IO_putc (int __c, _IO_FILE *__fp); 8657: extern int _IO_feof (_IO_FILE *__fp) throw (); 8657: extern int _IO_ferror (_IO_FILE *__fp) throw (); 8657: 8657: extern int _IO_peekc_locked (_IO_FILE *__fp); 8657: 8657: 8657: 8657: 8657: 8657: extern void _IO_flockfile (_IO_FILE *) throw (); 8657: extern void _IO_funlockfile (_IO_FILE *) throw (); 8657: extern int _IO_ftrylockfile (_IO_FILE *) throw (); 8657: # 458 "/usr/include/libio.h" 3 4 8657: extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, 8657: __gnuc_va_list, int *__restrict); 8657: extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, 8657: __gnuc_va_list); 8657: extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t); 8657: extern size_t _IO_sgetn (_IO_FILE *, void *, size_t); 8657: 8657: extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int); 8657: extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int); 8657: 8657: extern void _IO_free_backup_area (_IO_FILE *) throw (); 8657: # 520 "/usr/include/libio.h" 3 4 8657: } 8657: # 42 "/usr/include/stdio.h" 2 3 4 8657: # 78 "/usr/include/stdio.h" 3 4 8657: typedef _G_fpos_t fpos_t; 8657: 8657: 8657: 8657: 8657: typedef _G_fpos64_t fpos64_t; 8657: # 131 "/usr/include/stdio.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdio_lim.h" 1 3 4 8657: # 132 "/usr/include/stdio.h" 2 3 4 8657: 8657: 8657: 8657: extern struct _IO_FILE *stdin; 8657: extern struct _IO_FILE *stdout; 8657: extern struct _IO_FILE *stderr; 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int remove (const char *__filename) throw (); 8657: 8657: extern int rename (const char *__old, const char *__new) throw (); 8657: 8657: 8657: 8657: extern int renameat (int __oldfd, const char *__old, int __newfd, 8657: const char *__new) throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern FILE *tmpfile (void) __attribute__ ((__warn_unused_result__)); 8657: # 169 "/usr/include/stdio.h" 3 4 8657: extern FILE *tmpfile64 (void) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: extern char *tmpnam (char *__s) throw () __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: extern char *tmpnam_r (char *__s) throw () __attribute__ ((__warn_unused_result__)); 8657: # 190 "/usr/include/stdio.h" 3 4 8657: extern char *tempnam (const char *__dir, const char *__pfx) 8657: throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int fclose (FILE *__stream); 8657: 8657: 8657: 8657: 8657: extern int fflush (FILE *__stream); 8657: # 213 "/usr/include/stdio.h" 3 4 8657: extern int fflush_unlocked (FILE *__stream); 8657: # 223 "/usr/include/stdio.h" 3 4 8657: extern int fcloseall (void); 8657: # 232 "/usr/include/stdio.h" 3 4 8657: extern FILE *fopen (const char *__restrict __filename, 8657: const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: extern FILE *freopen (const char *__restrict __filename, 8657: const char *__restrict __modes, 8657: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8657: # 256 "/usr/include/stdio.h" 3 4 8657: extern FILE *fopen64 (const char *__restrict __filename, 8657: const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); 8657: extern FILE *freopen64 (const char *__restrict __filename, 8657: const char *__restrict __modes, 8657: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: extern FILE *fdopen (int __fd, const char *__modes) throw () __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: 8657: extern FILE *fopencookie (void *__restrict __magic_cookie, 8657: const char *__restrict __modes, 8657: _IO_cookie_io_functions_t __io_funcs) throw () __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) 8657: throw () __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: 8657: extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); 8657: 8657: 8657: 8657: extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, 8657: int __modes, size_t __n) throw (); 8657: 8657: 8657: 8657: 8657: extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, 8657: size_t __size) throw (); 8657: 8657: 8657: extern void setlinebuf (FILE *__stream) throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int fprintf (FILE *__restrict __stream, 8657: const char *__restrict __format, ...); 8657: 8657: 8657: 8657: 8657: extern int printf (const char *__restrict __format, ...); 8657: 8657: extern int sprintf (char *__restrict __s, 8657: const char *__restrict __format, ...) throw (); 8657: 8657: 8657: 8657: 8657: 8657: extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, 8657: __gnuc_va_list __arg); 8657: 8657: 8657: 8657: 8657: extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); 8657: 8657: extern int vsprintf (char *__restrict __s, const char *__restrict __format, 8657: __gnuc_va_list __arg) throw (); 8657: 8657: 8657: 8657: extern int snprintf (char *__restrict __s, size_t __maxlen, 8657: const char *__restrict __format, ...) 8657: throw () __attribute__ ((__format__ (__printf__, 3, 4))); 8657: 8657: extern int vsnprintf (char *__restrict __s, size_t __maxlen, 8657: const char *__restrict __format, __gnuc_va_list __arg) 8657: throw () __attribute__ ((__format__ (__printf__, 3, 0))); 8657: 8657: 8657: 8657: 8657: 8657: extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, 8657: __gnuc_va_list __arg) 8657: throw () __attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 8657: extern int __asprintf (char **__restrict __ptr, 8657: const char *__restrict __fmt, ...) 8657: throw () __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 8657: extern int asprintf (char **__restrict __ptr, 8657: const char *__restrict __fmt, ...) 8657: throw () __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: extern int vdprintf (int __fd, const char *__restrict __fmt, 8657: __gnuc_va_list __arg) 8657: __attribute__ ((__format__ (__printf__, 2, 0))); 8657: extern int dprintf (int __fd, const char *__restrict __fmt, ...) 8657: __attribute__ ((__format__ (__printf__, 2, 3))); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int fscanf (FILE *__restrict __stream, 8657: const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: extern int scanf (const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 8657: 8657: extern int sscanf (const char *__restrict __s, 8657: const char *__restrict __format, ...) throw (); 8657: # 420 "/usr/include/stdio.h" 3 4 8657: extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, 8657: __gnuc_va_list __arg) 8657: __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: 8657: extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) 8657: __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: extern int vsscanf (const char *__restrict __s, 8657: const char *__restrict __format, __gnuc_va_list __arg) 8657: throw () __attribute__ ((__format__ (__scanf__, 2, 0))); 8657: # 477 "/usr/include/stdio.h" 3 4 8657: extern int fgetc (FILE *__stream); 8657: extern int getc (FILE *__stream); 8657: 8657: 8657: 8657: 8657: 8657: extern int getchar (void); 8657: # 495 "/usr/include/stdio.h" 3 4 8657: extern int getc_unlocked (FILE *__stream); 8657: extern int getchar_unlocked (void); 8657: # 506 "/usr/include/stdio.h" 3 4 8657: extern int fgetc_unlocked (FILE *__stream); 8657: # 517 "/usr/include/stdio.h" 3 4 8657: extern int fputc (int __c, FILE *__stream); 8657: extern int putc (int __c, FILE *__stream); 8657: 8657: 8657: 8657: 8657: 8657: extern int putchar (int __c); 8657: # 537 "/usr/include/stdio.h" 3 4 8657: extern int fputc_unlocked (int __c, FILE *__stream); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int putc_unlocked (int __c, FILE *__stream); 8657: extern int putchar_unlocked (int __c); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int getw (FILE *__stream); 8657: 8657: 8657: extern int putw (int __w, FILE *__stream); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 8657: __attribute__ ((__warn_unused_result__)); 8657: # 577 "/usr/include/stdio.h" 3 4 8657: extern char *gets (char *__s) __attribute__ ((__warn_unused_result__)) __attribute__ ((__deprecated__)); 8657: # 587 "/usr/include/stdio.h" 3 4 8657: extern char *fgets_unlocked (char *__restrict __s, int __n, 8657: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8657: # 603 "/usr/include/stdio.h" 3 4 8657: extern __ssize_t __getdelim (char **__restrict __lineptr, 8657: size_t *__restrict __n, int __delimiter, 8657: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8657: extern __ssize_t getdelim (char **__restrict __lineptr, 8657: size_t *__restrict __n, int __delimiter, 8657: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern __ssize_t getline (char **__restrict __lineptr, 8657: size_t *__restrict __n, 8657: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int fputs (const char *__restrict __s, FILE *__restrict __stream); 8657: 8657: 8657: 8657: 8657: 8657: extern int puts (const char *__s); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int ungetc (int __c, FILE *__stream); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern size_t fread (void *__restrict __ptr, size_t __size, 8657: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: extern size_t fwrite (const void *__restrict __ptr, size_t __size, 8657: size_t __n, FILE *__restrict __s); 8657: # 662 "/usr/include/stdio.h" 3 4 8657: extern int fputs_unlocked (const char *__restrict __s, 8657: FILE *__restrict __stream); 8657: # 673 "/usr/include/stdio.h" 3 4 8657: extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, 8657: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8657: extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, 8657: size_t __n, FILE *__restrict __stream); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int fseek (FILE *__stream, long int __off, int __whence); 8657: 8657: 8657: 8657: 8657: extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: extern void rewind (FILE *__stream); 8657: # 707 "/usr/include/stdio.h" 3 4 8657: extern int fseeko (FILE *__stream, __off_t __off, int __whence); 8657: 8657: 8657: 8657: 8657: extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__)); 8657: # 731 "/usr/include/stdio.h" 3 4 8657: extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); 8657: 8657: 8657: 8657: 8657: extern int fsetpos (FILE *__stream, const fpos_t *__pos); 8657: # 750 "/usr/include/stdio.h" 3 4 8657: extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); 8657: extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__)); 8657: extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); 8657: extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos); 8657: 8657: 8657: 8657: extern void clearerr (FILE *__stream) throw (); 8657: 8657: extern int feof (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8657: 8657: extern int ferror (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: extern void clearerr_unlocked (FILE *__stream) throw (); 8657: extern int feof_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8657: extern int ferror_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern void perror (const char *__s); 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/sys_errlist.h" 1 3 4 8657: # 26 "/usr/include/arm-linux-gnueabihf/bits/sys_errlist.h" 3 4 8657: extern int sys_nerr; 8657: extern const char *const sys_errlist[]; 8657: 8657: 8657: extern int _sys_nerr; 8657: extern const char *const _sys_errlist[]; 8657: # 782 "/usr/include/stdio.h" 2 3 4 8657: 8657: 8657: 8657: 8657: extern int fileno (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: extern int fileno_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8657: # 800 "/usr/include/stdio.h" 3 4 8657: extern FILE *popen (const char *__command, const char *__modes) __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: 8657: 8657: 8657: extern int pclose (FILE *__stream); 8657: 8657: 8657: 8657: 8657: 8657: extern char *ctermid (char *__s) throw (); 8657: 8657: 8657: 8657: 8657: 8657: extern char *cuserid (char *__s); 8657: 8657: 8657: 8657: 8657: struct obstack; 8657: 8657: 8657: extern int obstack_printf (struct obstack *__restrict __obstack, 8657: const char *__restrict __format, ...) 8657: throw () __attribute__ ((__format__ (__printf__, 2, 3))); 8657: extern int obstack_vprintf (struct obstack *__restrict __obstack, 8657: const char *__restrict __format, 8657: __gnuc_va_list __args) 8657: throw () __attribute__ ((__format__ (__printf__, 2, 0))); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern void flockfile (FILE *__stream) throw (); 8657: 8657: 8657: 8657: extern int ftrylockfile (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8657: 8657: 8657: extern void funlockfile (FILE *__stream) throw (); 8657: # 859 "/usr/include/stdio.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdio.h" 1 3 4 8657: # 43 "/usr/include/arm-linux-gnueabihf/bits/stdio.h" 3 4 8657: extern __inline __attribute__ ((__gnu_inline__)) int 8657: getchar (void) 8657: { 8657: return _IO_getc (stdin); 8657: } 8657: 8657: 8657: 8657: 8657: extern __inline __attribute__ ((__gnu_inline__)) int 8657: fgetc_unlocked (FILE *__fp) 8657: { 8657: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: extern __inline __attribute__ ((__gnu_inline__)) int 8657: getc_unlocked (FILE *__fp) 8657: { 8657: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 8657: } 8657: 8657: 8657: extern __inline __attribute__ ((__gnu_inline__)) int 8657: getchar_unlocked (void) 8657: { 8657: return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); 8657: } 8657: 8657: 8657: 8657: 8657: extern __inline __attribute__ ((__gnu_inline__)) int 8657: putchar (int __c) 8657: { 8657: return _IO_putc (__c, stdout); 8657: } 8657: 8657: 8657: 8657: 8657: extern __inline __attribute__ ((__gnu_inline__)) int 8657: fputc_unlocked (int __c, FILE *__stream) 8657: { 8657: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: extern __inline __attribute__ ((__gnu_inline__)) int 8657: putc_unlocked (int __c, FILE *__stream) 8657: { 8657: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 8657: } 8657: 8657: 8657: extern __inline __attribute__ ((__gnu_inline__)) int 8657: putchar_unlocked (int __c) 8657: { 8657: return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: extern __inline __attribute__ ((__gnu_inline__)) __ssize_t 8657: getline (char **__lineptr, size_t *__n, FILE *__stream) 8657: { 8657: return __getdelim (__lineptr, __n, '\n', __stream); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: extern __inline __attribute__ ((__gnu_inline__)) int 8657: __attribute__ ((__leaf__)) feof_unlocked (FILE *__stream) throw () 8657: { 8657: return (((__stream)->_flags & 0x10) != 0); 8657: } 8657: 8657: 8657: extern __inline __attribute__ ((__gnu_inline__)) int 8657: __attribute__ ((__leaf__)) ferror_unlocked (FILE *__stream) throw () 8657: { 8657: return (((__stream)->_flags & 0x20) != 0); 8657: } 8657: # 860 "/usr/include/stdio.h" 2 3 4 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdio2.h" 1 3 4 8657: # 23 "/usr/include/arm-linux-gnueabihf/bits/stdio2.h" 3 4 8657: extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, 8657: const char *__restrict __format, ...) throw (); 8657: extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, 8657: const char *__restrict __format, 8657: __gnuc_va_list __ap) throw (); 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: __attribute__ ((__leaf__)) sprintf (char *__restrict __s, const char *__restrict __fmt, ...) throw () 8657: { 8657: return __builtin___sprintf_chk (__s, 2 - 1, 8657: __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: __attribute__ ((__leaf__)) vsprintf (char *__restrict __s, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8657: 8657: { 8657: return __builtin___vsprintf_chk (__s, 2 - 1, 8657: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 8657: } 8657: 8657: 8657: 8657: extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, 8657: size_t __slen, const char *__restrict __format, 8657: ...) throw (); 8657: extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, 8657: size_t __slen, const char *__restrict __format, 8657: __gnuc_va_list __ap) throw (); 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: __attribute__ ((__leaf__)) snprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, ...) throw () 8657: 8657: { 8657: return __builtin___snprintf_chk (__s, __n, 2 - 1, 8657: __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: __attribute__ ((__leaf__)) vsnprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8657: 8657: { 8657: return __builtin___vsnprintf_chk (__s, __n, 2 - 1, 8657: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: extern int __fprintf_chk (FILE *__restrict __stream, int __flag, 8657: const char *__restrict __format, ...); 8657: extern int __printf_chk (int __flag, const char *__restrict __format, ...); 8657: extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, 8657: const char *__restrict __format, __gnuc_va_list __ap); 8657: extern int __vprintf_chk (int __flag, const char *__restrict __format, 8657: __gnuc_va_list __ap); 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: fprintf (FILE *__restrict __stream, const char *__restrict __fmt, ...) 8657: { 8657: return __fprintf_chk (__stream, 2 - 1, __fmt, 8657: __builtin_va_arg_pack ()); 8657: } 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: printf (const char *__restrict __fmt, ...) 8657: { 8657: return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: vprintf (const char *__restrict __fmt, __gnuc_va_list __ap) 8657: { 8657: 8657: return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap); 8657: 8657: 8657: 8657: } 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: vfprintf (FILE *__restrict __stream, 8657: const char *__restrict __fmt, __gnuc_va_list __ap) 8657: { 8657: return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap); 8657: } 8657: 8657: 8657: extern int __dprintf_chk (int __fd, int __flag, const char *__restrict __fmt, 8657: ...) __attribute__ ((__format__ (__printf__, 3, 4))); 8657: extern int __vdprintf_chk (int __fd, int __flag, 8657: const char *__restrict __fmt, __gnuc_va_list __arg) 8657: __attribute__ ((__format__ (__printf__, 3, 0))); 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: dprintf (int __fd, const char *__restrict __fmt, ...) 8657: { 8657: return __dprintf_chk (__fd, 2 - 1, __fmt, 8657: __builtin_va_arg_pack ()); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: vdprintf (int __fd, const char *__restrict __fmt, __gnuc_va_list __ap) 8657: { 8657: return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap); 8657: } 8657: 8657: 8657: 8657: 8657: extern int __asprintf_chk (char **__restrict __ptr, int __flag, 8657: const char *__restrict __fmt, ...) 8657: throw () __attribute__ ((__format__ (__printf__, 3, 4))) __attribute__ ((__warn_unused_result__)); 8657: extern int __vasprintf_chk (char **__restrict __ptr, int __flag, 8657: const char *__restrict __fmt, __gnuc_va_list __arg) 8657: throw () __attribute__ ((__format__ (__printf__, 3, 0))) __attribute__ ((__warn_unused_result__)); 8657: extern int __obstack_printf_chk (struct obstack *__restrict __obstack, 8657: int __flag, const char *__restrict __format, 8657: ...) 8657: throw () __attribute__ ((__format__ (__printf__, 3, 4))); 8657: extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack, 8657: int __flag, 8657: const char *__restrict __format, 8657: __gnuc_va_list __args) 8657: throw () __attribute__ ((__format__ (__printf__, 3, 0))); 8657: 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: __attribute__ ((__leaf__)) asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) throw () 8657: { 8657: return __asprintf_chk (__ptr, 2 - 1, __fmt, 8657: __builtin_va_arg_pack ()); 8657: } 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: __attribute__ ((__leaf__)) __asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) throw () 8657: 8657: { 8657: return __asprintf_chk (__ptr, 2 - 1, __fmt, 8657: __builtin_va_arg_pack ()); 8657: } 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: __attribute__ ((__leaf__)) obstack_printf (struct obstack *__restrict __obstack, const char *__restrict __fmt, ...) throw () 8657: 8657: { 8657: return __obstack_printf_chk (__obstack, 2 - 1, __fmt, 8657: __builtin_va_arg_pack ()); 8657: } 8657: # 206 "/usr/include/arm-linux-gnueabihf/bits/stdio2.h" 3 4 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: __attribute__ ((__leaf__)) vasprintf (char **__restrict __ptr, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8657: 8657: { 8657: return __vasprintf_chk (__ptr, 2 - 1, __fmt, __ap); 8657: } 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8657: __attribute__ ((__leaf__)) obstack_vprintf (struct obstack *__restrict __obstack, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8657: 8657: { 8657: return __obstack_vprintf_chk (__obstack, 2 - 1, __fmt, 8657: __ap); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__)); 8657: extern char *__gets_warn (char *__str) __asm__ ("" "gets") 8657: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use fgets or getline instead, gets can't " "specify buffer size"))) 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8657: gets (char *__str) 8657: { 8657: if (__builtin_object_size (__str, 2 > 1) != (size_t) -1) 8657: return __gets_chk (__str, __builtin_object_size (__str, 2 > 1)); 8657: return __gets_warn (__str); 8657: } 8657: 8657: 8657: extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, 8657: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8657: extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") 8657: 8657: __attribute__ ((__warn_unused_result__)); 8657: extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk") 8657: 8657: 8657: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer"))) 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8657: fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 8657: { 8657: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__n) || __n <= 0) 8657: return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8657: 8657: if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) 8657: return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8657: } 8657: return __fgets_alias (__s, __n, __stream); 8657: } 8657: 8657: extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, 8657: size_t __size, size_t __n, 8657: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8657: extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") 8657: 8657: 8657: __attribute__ ((__warn_unused_result__)); 8657: extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk") 8657: 8657: 8657: 8657: 8657: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer"))) 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 8657: fread (void *__restrict __ptr, size_t __size, size_t __n, 8657: FILE *__restrict __stream) 8657: { 8657: if (__builtin_object_size (__ptr, 0) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__size) 8657: || !__builtin_constant_p (__n) 8657: || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) 8657: return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); 8657: 8657: if (__size * __n > __builtin_object_size (__ptr, 0)) 8657: return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); 8657: } 8657: return __fread_alias (__ptr, __size, __n, __stream); 8657: } 8657: 8657: 8657: extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, 8657: int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8657: extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked") 8657: 8657: __attribute__ ((__warn_unused_result__)); 8657: extern char *__fgets_unlocked_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_unlocked_chk") 8657: 8657: 8657: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets_unlocked called with bigger size than length " "of destination buffer"))) 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8657: fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) 8657: { 8657: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__n) || __n <= 0) 8657: return __fgets_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8657: 8657: if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) 8657: return __fgets_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8657: } 8657: return __fgets_unlocked_alias (__s, __n, __stream); 8657: } 8657: 8657: 8657: 8657: 8657: extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, 8657: size_t __size, size_t __n, 8657: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8657: extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked") 8657: 8657: 8657: __attribute__ ((__warn_unused_result__)); 8657: 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") 8657: 8657: 8657: 8657: 8657: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer"))) 8657: ; 8657: 8657: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 8657: fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, 8657: FILE *__restrict __stream) 8657: { 8657: if (__builtin_object_size (__ptr, 0) != (size_t) -1) 8657: { 8657: if (!__builtin_constant_p (__size) 8657: || !__builtin_constant_p (__n) 8657: || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) 8657: return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, 8657: __stream); 8657: 8657: if (__size * __n > __builtin_object_size (__ptr, 0)) 8657: return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, 8657: __stream); 8657: } 8657: 8657: 8657: if (__builtin_constant_p (__size) 8657: && __builtin_constant_p (__n) 8657: && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) 8657: && __size * __n <= 8) 8657: { 8657: size_t __cnt = __size * __n; 8657: char *__cptr = (char *) __ptr; 8657: if (__cnt == 0) 8657: return 0; 8657: 8657: for (; __cnt > 0; --__cnt) 8657: { 8657: int __c = (__builtin_expect (((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow (__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++); 8657: if (__c == (-1)) 8657: break; 8657: *__cptr++ = __c; 8657: } 8657: return (__cptr - (char *) __ptr) / __size; 8657: } 8657: 8657: return __fread_unlocked_alias (__ptr, __size, __n, __stream); 8657: } 8657: # 863 "/usr/include/stdio.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: } 8657: # 43 "/usr/include/c++/8/cstdio" 2 3 8657: # 96 "/usr/include/c++/8/cstdio" 3 8657: namespace std 8657: { 8657: using ::FILE; 8657: using ::fpos_t; 8657: 8657: using ::clearerr; 8657: using ::fclose; 8657: using ::feof; 8657: using ::ferror; 8657: using ::fflush; 8657: using ::fgetc; 8657: using ::fgetpos; 8657: using ::fgets; 8657: using ::fopen; 8657: using ::fprintf; 8657: using ::fputc; 8657: using ::fputs; 8657: using ::fread; 8657: using ::freopen; 8657: using ::fscanf; 8657: using ::fseek; 8657: using ::fsetpos; 8657: using ::ftell; 8657: using ::fwrite; 8657: using ::getc; 8657: using ::getchar; 8657: 8657: 8657: using ::gets; 8657: 8657: using ::perror; 8657: using ::printf; 8657: using ::putc; 8657: using ::putchar; 8657: using ::puts; 8657: using ::remove; 8657: using ::rename; 8657: using ::rewind; 8657: using ::scanf; 8657: using ::setbuf; 8657: using ::setvbuf; 8657: using ::sprintf; 8657: using ::sscanf; 8657: using ::tmpfile; 8657: 8657: using ::tmpnam; 8657: 8657: using ::ungetc; 8657: using ::vfprintf; 8657: using ::vprintf; 8657: using ::vsprintf; 8657: } 8657: # 157 "/usr/include/c++/8/cstdio" 3 8657: namespace __gnu_cxx 8657: { 8657: # 175 "/usr/include/c++/8/cstdio" 3 8657: using ::snprintf; 8657: using ::vfscanf; 8657: using ::vscanf; 8657: using ::vsnprintf; 8657: using ::vsscanf; 8657: 8657: } 8657: 8657: namespace std 8657: { 8657: using ::__gnu_cxx::snprintf; 8657: using ::__gnu_cxx::vfscanf; 8657: using ::__gnu_cxx::vscanf; 8657: using ::__gnu_cxx::vsnprintf; 8657: using ::__gnu_cxx::vsscanf; 8657: } 8657: # 44 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8657: # 1 "/usr/include/c++/8/cerrno" 1 3 8657: # 39 "/usr/include/c++/8/cerrno" 3 8657: 8657: # 40 "/usr/include/c++/8/cerrno" 3 8657: 8657: 8657: # 1 "/usr/include/errno.h" 1 3 4 8657: # 28 "/usr/include/errno.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/errno.h" 1 3 4 8657: # 26 "/usr/include/arm-linux-gnueabihf/bits/errno.h" 3 4 8657: # 1 "/usr/include/linux/errno.h" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/asm/errno.h" 1 3 4 8657: # 1 "/usr/include/asm-generic/errno.h" 1 3 4 8657: 8657: 8657: 8657: # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 8657: # 5 "/usr/include/asm-generic/errno.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/asm/errno.h" 2 3 4 8657: # 1 "/usr/include/linux/errno.h" 2 3 4 8657: # 27 "/usr/include/arm-linux-gnueabihf/bits/errno.h" 2 3 4 8657: # 29 "/usr/include/errno.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: extern "C" { 8657: 8657: 8657: extern int *__errno_location (void) throw () __attribute__ ((__const__)); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern char *program_invocation_name; 8657: extern char *program_invocation_short_name; 8657: 8657: 8657: 8657: 8657: 8657: typedef int error_t; 8657: 8657: 8657: 8657: 8657: } 8657: # 43 "/usr/include/c++/8/cerrno" 2 3 8657: # 45 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8657: 8657: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: template 8657: _Ret 8657: __stoa(_TRet (*__convf) (const _CharT*, _CharT**, _Base...), 8657: const char* __name, const _CharT* __str, std::size_t* __idx, 8657: _Base... __base) 8657: { 8657: _Ret __ret; 8657: 8657: _CharT* __endptr; 8657: 8657: struct _Save_errno { 8657: _Save_errno() : _M_errno((*__errno_location ())) { (*__errno_location ()) = 0; } 8657: ~_Save_errno() { if ((*__errno_location ()) == 0) (*__errno_location ()) = _M_errno; } 8657: int _M_errno; 8657: } const __save_errno; 8657: 8657: struct _Range_chk { 8657: static bool 8657: _S_chk(_TRet, std::false_type) { return false; } 8657: 8657: static bool 8657: _S_chk(_TRet __val, std::true_type) 8657: { 8657: return __val < _TRet(__numeric_traits::__min) 8657: || __val > _TRet(__numeric_traits::__max); 8657: } 8657: }; 8657: 8657: const _TRet __tmp = __convf(__str, &__endptr, __base...); 8657: 8657: if (__endptr == __str) 8657: std::__throw_invalid_argument(__name); 8657: else if ((*__errno_location ()) == 34 8657: || _Range_chk::_S_chk(__tmp, std::is_same<_Ret, int>{})) 8657: std::__throw_out_of_range(__name); 8657: else 8657: __ret = __tmp; 8657: 8657: if (__idx) 8657: *__idx = __endptr - __str; 8657: 8657: return __ret; 8657: } 8657: 8657: 8657: template 8657: _String 8657: __to_xstring(int (*__convf) (_CharT*, std::size_t, const _CharT*, 8657: __builtin_va_list), std::size_t __n, 8657: const _CharT* __fmt, ...) 8657: { 8657: 8657: 8657: _CharT* __s = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8657: * __n)); 8657: 8657: __builtin_va_list __args; 8657: __builtin_va_start(__args, __fmt); 8657: 8657: const int __len = __convf(__s, __n, __fmt, __args); 8657: 8657: __builtin_va_end(__args); 8657: 8657: return _String(__s, __s + __len); 8657: } 8657: 8657: 8657: } 8657: # 6362 "/usr/include/c++/8/bits/basic_string.h" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: namespace __cxx11 { 8657: 8657: 8657: 8657: inline int 8657: stoi(const string& __str, size_t* __idx = 0, int __base = 10) 8657: { return __gnu_cxx::__stoa(&std::strtol, "stoi", __str.c_str(), 8657: __idx, __base); } 8657: 8657: inline long 8657: stol(const string& __str, size_t* __idx = 0, int __base = 10) 8657: { return __gnu_cxx::__stoa(&std::strtol, "stol", __str.c_str(), 8657: __idx, __base); } 8657: 8657: inline unsigned long 8657: stoul(const string& __str, size_t* __idx = 0, int __base = 10) 8657: { return __gnu_cxx::__stoa(&std::strtoul, "stoul", __str.c_str(), 8657: __idx, __base); } 8657: 8657: inline long long 8657: stoll(const string& __str, size_t* __idx = 0, int __base = 10) 8657: { return __gnu_cxx::__stoa(&std::strtoll, "stoll", __str.c_str(), 8657: __idx, __base); } 8657: 8657: inline unsigned long long 8657: stoull(const string& __str, size_t* __idx = 0, int __base = 10) 8657: { return __gnu_cxx::__stoa(&std::strtoull, "stoull", __str.c_str(), 8657: __idx, __base); } 8657: 8657: 8657: inline float 8657: stof(const string& __str, size_t* __idx = 0) 8657: { return __gnu_cxx::__stoa(&std::strtof, "stof", __str.c_str(), __idx); } 8657: 8657: inline double 8657: stod(const string& __str, size_t* __idx = 0) 8657: { return __gnu_cxx::__stoa(&std::strtod, "stod", __str.c_str(), __idx); } 8657: 8657: inline long double 8657: stold(const string& __str, size_t* __idx = 0) 8657: { return __gnu_cxx::__stoa(&std::strtold, "stold", __str.c_str(), __idx); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: inline string 8657: to_string(int __val) 8657: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(int), 8657: "%d", __val); } 8657: 8657: inline string 8657: to_string(unsigned __val) 8657: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8657: 4 * sizeof(unsigned), 8657: "%u", __val); } 8657: 8657: inline string 8657: to_string(long __val) 8657: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(long), 8657: "%ld", __val); } 8657: 8657: inline string 8657: to_string(unsigned long __val) 8657: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8657: 4 * sizeof(unsigned long), 8657: "%lu", __val); } 8657: 8657: inline string 8657: to_string(long long __val) 8657: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8657: 4 * sizeof(long long), 8657: "%lld", __val); } 8657: 8657: inline string 8657: to_string(unsigned long long __val) 8657: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8657: 4 * sizeof(unsigned long long), 8657: "%llu", __val); } 8657: 8657: inline string 8657: to_string(float __val) 8657: { 8657: const int __n = 8657: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8657: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 8657: "%f", __val); 8657: } 8657: 8657: inline string 8657: to_string(double __val) 8657: { 8657: const int __n = 8657: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8657: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 8657: "%f", __val); 8657: } 8657: 8657: inline string 8657: to_string(long double __val) 8657: { 8657: const int __n = 8657: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8657: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 8657: "%Lf", __val); 8657: } 8657: 8657: 8657: 8657: inline int 8657: stoi(const wstring& __str, size_t* __idx = 0, int __base = 10) 8657: { return __gnu_cxx::__stoa(&std::wcstol, "stoi", __str.c_str(), 8657: __idx, __base); } 8657: 8657: inline long 8657: stol(const wstring& __str, size_t* __idx = 0, int __base = 10) 8657: { return __gnu_cxx::__stoa(&std::wcstol, "stol", __str.c_str(), 8657: __idx, __base); } 8657: 8657: inline unsigned long 8657: stoul(const wstring& __str, size_t* __idx = 0, int __base = 10) 8657: { return __gnu_cxx::__stoa(&std::wcstoul, "stoul", __str.c_str(), 8657: __idx, __base); } 8657: 8657: inline long long 8657: stoll(const wstring& __str, size_t* __idx = 0, int __base = 10) 8657: { return __gnu_cxx::__stoa(&std::wcstoll, "stoll", __str.c_str(), 8657: __idx, __base); } 8657: 8657: inline unsigned long long 8657: stoull(const wstring& __str, size_t* __idx = 0, int __base = 10) 8657: { return __gnu_cxx::__stoa(&std::wcstoull, "stoull", __str.c_str(), 8657: __idx, __base); } 8657: 8657: 8657: inline float 8657: stof(const wstring& __str, size_t* __idx = 0) 8657: { return __gnu_cxx::__stoa(&std::wcstof, "stof", __str.c_str(), __idx); } 8657: 8657: inline double 8657: stod(const wstring& __str, size_t* __idx = 0) 8657: { return __gnu_cxx::__stoa(&std::wcstod, "stod", __str.c_str(), __idx); } 8657: 8657: inline long double 8657: stold(const wstring& __str, size_t* __idx = 0) 8657: { return __gnu_cxx::__stoa(&std::wcstold, "stold", __str.c_str(), __idx); } 8657: 8657: 8657: 8657: inline wstring 8657: to_wstring(int __val) 8657: { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(int), 8657: L"%d", __val); } 8657: 8657: inline wstring 8657: to_wstring(unsigned __val) 8657: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8657: 4 * sizeof(unsigned), 8657: L"%u", __val); } 8657: 8657: inline wstring 8657: to_wstring(long __val) 8657: { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(long), 8657: L"%ld", __val); } 8657: 8657: inline wstring 8657: to_wstring(unsigned long __val) 8657: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8657: 4 * sizeof(unsigned long), 8657: L"%lu", __val); } 8657: 8657: inline wstring 8657: to_wstring(long long __val) 8657: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8657: 4 * sizeof(long long), 8657: L"%lld", __val); } 8657: 8657: inline wstring 8657: to_wstring(unsigned long long __val) 8657: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8657: 4 * sizeof(unsigned long long), 8657: L"%llu", __val); } 8657: 8657: inline wstring 8657: to_wstring(float __val) 8657: { 8657: const int __n = 8657: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8657: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 8657: L"%f", __val); 8657: } 8657: 8657: inline wstring 8657: to_wstring(double __val) 8657: { 8657: const int __n = 8657: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8657: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 8657: L"%f", __val); 8657: } 8657: 8657: inline wstring 8657: to_wstring(long double __val) 8657: { 8657: const int __n = 8657: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8657: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 8657: L"%Lf", __val); 8657: } 8657: 8657: 8657: 8657: } 8657: 8657: } 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/functional_hash.h" 1 3 8657: # 33 "/usr/include/c++/8/bits/functional_hash.h" 3 8657: 8657: # 34 "/usr/include/c++/8/bits/functional_hash.h" 3 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 49 "/usr/include/c++/8/bits/functional_hash.h" 3 8657: template 8657: struct __hash_base 8657: { 8657: typedef _Result result_type ; 8657: typedef _Arg argument_type ; 8657: }; 8657: 8657: 8657: template 8657: struct hash; 8657: 8657: template 8657: struct __poison_hash 8657: { 8657: static constexpr bool __enable_hash_call = false; 8657: private: 8657: 8657: __poison_hash(__poison_hash&&); 8657: ~__poison_hash(); 8657: }; 8657: 8657: template 8657: struct __poison_hash<_Tp, __void_t()(declval<_Tp>()))>> 8657: { 8657: static constexpr bool __enable_hash_call = true; 8657: }; 8657: 8657: 8657: template::value> 8657: struct __hash_enum 8657: { 8657: private: 8657: 8657: __hash_enum(__hash_enum&&); 8657: ~__hash_enum(); 8657: }; 8657: 8657: 8657: template 8657: struct __hash_enum<_Tp, true> : public __hash_base 8657: { 8657: size_t 8657: operator()(_Tp __val) const noexcept 8657: { 8657: using __type = typename underlying_type<_Tp>::type; 8657: return hash<__type>{}(static_cast<__type>(__val)); 8657: } 8657: }; 8657: 8657: 8657: 8657: template 8657: struct hash : __hash_enum<_Tp> 8657: { }; 8657: 8657: 8657: template 8657: struct hash<_Tp*> : public __hash_base 8657: { 8657: size_t 8657: operator()(_Tp* __p) const noexcept 8657: { return reinterpret_cast(__p); } 8657: }; 8657: # 124 "/usr/include/c++/8/bits/functional_hash.h" 3 8657: template<> struct hash : public __hash_base { size_t operator()(bool __val) const noexcept { return static_cast(__val); } }; 8657: 8657: 8657: template<> struct hash : public __hash_base { size_t operator()(char __val) const noexcept { return static_cast(__val); } }; 8657: 8657: 8657: template<> struct hash : public __hash_base { size_t operator()(signed char __val) const noexcept { return static_cast(__val); } }; 8657: 8657: 8657: template<> struct hash : public __hash_base { size_t operator()(unsigned char __val) const noexcept { return static_cast(__val); } }; 8657: 8657: 8657: template<> struct hash : public __hash_base { size_t operator()(wchar_t __val) const noexcept { return static_cast(__val); } }; 8657: 8657: 8657: template<> struct hash : public __hash_base { size_t operator()(char16_t __val) const noexcept { return static_cast(__val); } }; 8657: 8657: 8657: template<> struct hash : public __hash_base { size_t operator()(char32_t __val) const noexcept { return static_cast(__val); } }; 8657: 8657: 8657: template<> struct hash : public __hash_base { size_t operator()(short __val) const noexcept { return static_cast(__val); } }; 8657: 8657: 8657: template<> struct hash : public __hash_base { size_t operator()(int __val) const noexcept { return static_cast(__val); } }; 8657: 8657: 8657: template<> struct hash : public __hash_base { size_t operator()(long __val) const noexcept { return static_cast(__val); } }; 8657: 8657: 8657: template<> struct hash : public __hash_base { size_t operator()(long long __val) const noexcept { return static_cast(__val); } }; 8657: 8657: 8657: template<> struct hash : public __hash_base { size_t operator()(unsigned short __val) const noexcept { return static_cast(__val); } }; 8657: 8657: 8657: template<> struct hash : public __hash_base { size_t operator()(unsigned int __val) const noexcept { return static_cast(__val); } }; 8657: 8657: 8657: template<> struct hash : public __hash_base { size_t operator()(unsigned long __val) const noexcept { return static_cast(__val); } }; 8657: 8657: 8657: template<> struct hash : public __hash_base { size_t operator()(unsigned long long __val) const noexcept { return static_cast(__val); } }; 8657: # 187 "/usr/include/c++/8/bits/functional_hash.h" 3 8657: struct _Hash_impl 8657: { 8657: static size_t 8657: hash(const void* __ptr, size_t __clength, 8657: size_t __seed = static_cast(0xc70f6907UL)) 8657: { return _Hash_bytes(__ptr, __clength, __seed); } 8657: 8657: template 8657: static size_t 8657: hash(const _Tp& __val) 8657: { return hash(&__val, sizeof(__val)); } 8657: 8657: template 8657: static size_t 8657: __hash_combine(const _Tp& __val, size_t __hash) 8657: { return hash(&__val, sizeof(__val), __hash); } 8657: }; 8657: 8657: 8657: struct _Fnv_hash_impl 8657: { 8657: static size_t 8657: hash(const void* __ptr, size_t __clength, 8657: size_t __seed = static_cast(2166136261UL)) 8657: { return _Fnv_hash_bytes(__ptr, __clength, __seed); } 8657: 8657: template 8657: static size_t 8657: hash(const _Tp& __val) 8657: { return hash(&__val, sizeof(__val)); } 8657: 8657: template 8657: static size_t 8657: __hash_combine(const _Tp& __val, size_t __hash) 8657: { return hash(&__val, sizeof(__val), __hash); } 8657: }; 8657: 8657: 8657: template<> 8657: struct hash : public __hash_base 8657: { 8657: size_t 8657: operator()(float __val) const noexcept 8657: { 8657: 8657: return __val != 0.0f ? std::_Hash_impl::hash(__val) : 0; 8657: } 8657: }; 8657: 8657: 8657: template<> 8657: struct hash : public __hash_base 8657: { 8657: size_t 8657: operator()(double __val) const noexcept 8657: { 8657: 8657: return __val != 0.0 ? std::_Hash_impl::hash(__val) : 0; 8657: } 8657: }; 8657: 8657: 8657: template<> 8657: struct hash 8657: : public __hash_base 8657: { 8657: __attribute__ ((__pure__)) size_t 8657: operator()(long double __val) const noexcept; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct __is_fast_hash : public std::true_type 8657: { }; 8657: 8657: template<> 8657: struct __is_fast_hash> : public std::false_type 8657: { }; 8657: 8657: 8657: } 8657: # 6588 "/usr/include/c++/8/bits/basic_string.h" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: template<> 8657: struct hash 8657: : public __hash_base 8657: { 8657: size_t 8657: operator()(const string& __s) const noexcept 8657: { return std::_Hash_impl::hash(__s.data(), __s.length()); } 8657: }; 8657: 8657: template<> 8657: struct __is_fast_hash> : std::false_type 8657: { }; 8657: 8657: 8657: 8657: template<> 8657: struct hash 8657: : public __hash_base 8657: { 8657: size_t 8657: operator()(const wstring& __s) const noexcept 8657: { return std::_Hash_impl::hash(__s.data(), 8657: __s.length() * sizeof(wchar_t)); } 8657: }; 8657: 8657: template<> 8657: struct __is_fast_hash> : std::false_type 8657: { }; 8657: 8657: 8657: 8657: 8657: 8657: template<> 8657: struct hash 8657: : public __hash_base 8657: { 8657: size_t 8657: operator()(const u16string& __s) const noexcept 8657: { return std::_Hash_impl::hash(__s.data(), 8657: __s.length() * sizeof(char16_t)); } 8657: }; 8657: 8657: template<> 8657: struct __is_fast_hash> : std::false_type 8657: { }; 8657: 8657: 8657: template<> 8657: struct hash 8657: : public __hash_base 8657: { 8657: size_t 8657: operator()(const u32string& __s) const noexcept 8657: { return std::_Hash_impl::hash(__s.data(), 8657: __s.length() * sizeof(char32_t)); } 8657: }; 8657: 8657: template<> 8657: struct __is_fast_hash> : std::false_type 8657: { }; 8657: # 6700 "/usr/include/c++/8/bits/basic_string.h" 3 8657: 8657: } 8657: # 53 "/usr/include/c++/8/string" 2 3 8657: # 1 "/usr/include/c++/8/bits/basic_string.tcc" 1 3 8657: # 42 "/usr/include/c++/8/bits/basic_string.tcc" 3 8657: 8657: # 43 "/usr/include/c++/8/bits/basic_string.tcc" 3 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: template 8657: const typename basic_string<_CharT, _Traits, _Alloc>::size_type 8657: basic_string<_CharT, _Traits, _Alloc>::npos; 8657: 8657: template 8657: void 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: swap(basic_string& __s) noexcept 8657: { 8657: if (this == &__s) 8657: return; 8657: 8657: _Alloc_traits::_S_on_swap(_M_get_allocator(), __s._M_get_allocator()); 8657: 8657: if (_M_is_local()) 8657: if (__s._M_is_local()) 8657: { 8657: if (length() && __s.length()) 8657: { 8657: _CharT __tmp_data[_S_local_capacity + 1]; 8657: traits_type::copy(__tmp_data, __s._M_local_buf, 8657: _S_local_capacity + 1); 8657: traits_type::copy(__s._M_local_buf, _M_local_buf, 8657: _S_local_capacity + 1); 8657: traits_type::copy(_M_local_buf, __tmp_data, 8657: _S_local_capacity + 1); 8657: } 8657: else if (__s.length()) 8657: { 8657: traits_type::copy(_M_local_buf, __s._M_local_buf, 8657: _S_local_capacity + 1); 8657: _M_length(__s.length()); 8657: __s._M_set_length(0); 8657: return; 8657: } 8657: else if (length()) 8657: { 8657: traits_type::copy(__s._M_local_buf, _M_local_buf, 8657: _S_local_capacity + 1); 8657: __s._M_length(length()); 8657: _M_set_length(0); 8657: return; 8657: } 8657: } 8657: else 8657: { 8657: const size_type __tmp_capacity = __s._M_allocated_capacity; 8657: traits_type::copy(__s._M_local_buf, _M_local_buf, 8657: _S_local_capacity + 1); 8657: _M_data(__s._M_data()); 8657: __s._M_data(__s._M_local_buf); 8657: _M_capacity(__tmp_capacity); 8657: } 8657: else 8657: { 8657: const size_type __tmp_capacity = _M_allocated_capacity; 8657: if (__s._M_is_local()) 8657: { 8657: traits_type::copy(_M_local_buf, __s._M_local_buf, 8657: _S_local_capacity + 1); 8657: __s._M_data(_M_data()); 8657: _M_data(_M_local_buf); 8657: } 8657: else 8657: { 8657: pointer __tmp_ptr = _M_data(); 8657: _M_data(__s._M_data()); 8657: __s._M_data(__tmp_ptr); 8657: _M_capacity(__s._M_allocated_capacity); 8657: } 8657: __s._M_capacity(__tmp_capacity); 8657: } 8657: 8657: const size_type __tmp_length = length(); 8657: _M_length(__s.length()); 8657: __s._M_length(__tmp_length); 8657: } 8657: 8657: template 8657: typename basic_string<_CharT, _Traits, _Alloc>::pointer 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: _M_create(size_type& __capacity, size_type __old_capacity) 8657: { 8657: 8657: 8657: if (__capacity > max_size()) 8657: std::__throw_length_error(("basic_string::_M_create")); 8657: 8657: 8657: 8657: 8657: if (__capacity > __old_capacity && __capacity < 2 * __old_capacity) 8657: { 8657: __capacity = 2 * __old_capacity; 8657: 8657: if (__capacity > max_size()) 8657: __capacity = max_size(); 8657: } 8657: 8657: 8657: 8657: return _Alloc_traits::allocate(_M_get_allocator(), __capacity + 1); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: template 8657: template 8657: void 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: _M_construct(_InIterator __beg, _InIterator __end, 8657: std::input_iterator_tag) 8657: { 8657: size_type __len = 0; 8657: size_type __capacity = size_type(_S_local_capacity); 8657: 8657: while (__beg != __end && __len < __capacity) 8657: { 8657: _M_data()[__len++] = *__beg; 8657: ++__beg; 8657: } 8657: 8657: try 8657: { 8657: while (__beg != __end) 8657: { 8657: if (__len == __capacity) 8657: { 8657: 8657: __capacity = __len + 1; 8657: pointer __another = _M_create(__capacity, __len); 8657: this->_S_copy(__another, _M_data(), __len); 8657: _M_dispose(); 8657: _M_data(__another); 8657: _M_capacity(__capacity); 8657: } 8657: _M_data()[__len++] = *__beg; 8657: ++__beg; 8657: } 8657: } 8657: catch(...) 8657: { 8657: _M_dispose(); 8657: throw; 8657: } 8657: 8657: _M_set_length(__len); 8657: } 8657: 8657: template 8657: template 8657: void 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: _M_construct(_InIterator __beg, _InIterator __end, 8657: std::forward_iterator_tag) 8657: { 8657: 8657: if (__gnu_cxx::__is_null_pointer(__beg) && __beg != __end) 8657: std::__throw_logic_error(("basic_string::" "_M_construct null not valid") 8657: ); 8657: 8657: size_type __dnew = static_cast(std::distance(__beg, __end)); 8657: 8657: if (__dnew > size_type(_S_local_capacity)) 8657: { 8657: _M_data(_M_create(__dnew, size_type(0))); 8657: _M_capacity(__dnew); 8657: } 8657: 8657: 8657: try 8657: { this->_S_copy_chars(_M_data(), __beg, __end); } 8657: catch(...) 8657: { 8657: _M_dispose(); 8657: throw; 8657: } 8657: 8657: _M_set_length(__dnew); 8657: } 8657: 8657: template 8657: void 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: _M_construct(size_type __n, _CharT __c) 8657: { 8657: if (__n > size_type(_S_local_capacity)) 8657: { 8657: _M_data(_M_create(__n, size_type(0))); 8657: _M_capacity(__n); 8657: } 8657: 8657: if (__n) 8657: this->_S_assign(_M_data(), __n, __c); 8657: 8657: _M_set_length(__n); 8657: } 8657: 8657: template 8657: void 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: _M_assign(const basic_string& __str) 8657: { 8657: if (this != &__str) 8657: { 8657: const size_type __rsize = __str.length(); 8657: const size_type __capacity = capacity(); 8657: 8657: if (__rsize > __capacity) 8657: { 8657: size_type __new_capacity = __rsize; 8657: pointer __tmp = _M_create(__new_capacity, __capacity); 8657: _M_dispose(); 8657: _M_data(__tmp); 8657: _M_capacity(__new_capacity); 8657: } 8657: 8657: if (__rsize) 8657: this->_S_copy(_M_data(), __str._M_data(), __rsize); 8657: 8657: _M_set_length(__rsize); 8657: } 8657: } 8657: 8657: template 8657: void 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: reserve(size_type __res) 8657: { 8657: 8657: if (__res < length()) 8657: __res = length(); 8657: 8657: const size_type __capacity = capacity(); 8657: if (__res != __capacity) 8657: { 8657: if (__res > __capacity 8657: || __res > size_type(_S_local_capacity)) 8657: { 8657: pointer __tmp = _M_create(__res, __capacity); 8657: this->_S_copy(__tmp, _M_data(), length() + 1); 8657: _M_dispose(); 8657: _M_data(__tmp); 8657: _M_capacity(__res); 8657: } 8657: else if (!_M_is_local()) 8657: { 8657: this->_S_copy(_M_local_data(), _M_data(), length() + 1); 8657: _M_destroy(__capacity); 8657: _M_data(_M_local_data()); 8657: } 8657: } 8657: } 8657: 8657: template 8657: void 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 8657: size_type __len2) 8657: { 8657: const size_type __how_much = length() - __pos - __len1; 8657: 8657: size_type __new_capacity = length() + __len2 - __len1; 8657: pointer __r = _M_create(__new_capacity, capacity()); 8657: 8657: if (__pos) 8657: this->_S_copy(__r, _M_data(), __pos); 8657: if (__s && __len2) 8657: this->_S_copy(__r + __pos, __s, __len2); 8657: if (__how_much) 8657: this->_S_copy(__r + __pos + __len2, 8657: _M_data() + __pos + __len1, __how_much); 8657: 8657: _M_dispose(); 8657: _M_data(__r); 8657: _M_capacity(__new_capacity); 8657: } 8657: 8657: template 8657: void 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: _M_erase(size_type __pos, size_type __n) 8657: { 8657: const size_type __how_much = length() - __pos - __n; 8657: 8657: if (__how_much && __n) 8657: this->_S_move(_M_data() + __pos, _M_data() + __pos + __n, __how_much); 8657: 8657: _M_set_length(length() - __n); 8657: } 8657: 8657: template 8657: void 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: resize(size_type __n, _CharT __c) 8657: { 8657: const size_type __size = this->size(); 8657: if (__size < __n) 8657: this->append(__n - __size, __c); 8657: else if (__n < __size) 8657: this->_M_set_length(__n); 8657: } 8657: 8657: template 8657: basic_string<_CharT, _Traits, _Alloc>& 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: _M_append(const _CharT* __s, size_type __n) 8657: { 8657: const size_type __len = __n + this->size(); 8657: 8657: if (__len <= this->capacity()) 8657: { 8657: if (__n) 8657: this->_S_copy(this->_M_data() + this->size(), __s, __n); 8657: } 8657: else 8657: this->_M_mutate(this->size(), size_type(0), __s, __n); 8657: 8657: this->_M_set_length(__len); 8657: return *this; 8657: } 8657: 8657: template 8657: template 8657: basic_string<_CharT, _Traits, _Alloc>& 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 8657: _InputIterator __k1, _InputIterator __k2, 8657: std::__false_type) 8657: { 8657: const basic_string __s(__k1, __k2); 8657: const size_type __n1 = __i2 - __i1; 8657: return _M_replace(__i1 - begin(), __n1, __s._M_data(), 8657: __s.size()); 8657: } 8657: 8657: template 8657: basic_string<_CharT, _Traits, _Alloc>& 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 8657: _CharT __c) 8657: { 8657: _M_check_length(__n1, __n2, "basic_string::_M_replace_aux"); 8657: 8657: const size_type __old_size = this->size(); 8657: const size_type __new_size = __old_size + __n2 - __n1; 8657: 8657: if (__new_size <= this->capacity()) 8657: { 8657: pointer __p = this->_M_data() + __pos1; 8657: 8657: const size_type __how_much = __old_size - __pos1 - __n1; 8657: if (__how_much && __n1 != __n2) 8657: this->_S_move(__p + __n2, __p + __n1, __how_much); 8657: } 8657: else 8657: this->_M_mutate(__pos1, __n1, 0, __n2); 8657: 8657: if (__n2) 8657: this->_S_assign(this->_M_data() + __pos1, __n2, __c); 8657: 8657: this->_M_set_length(__new_size); 8657: return *this; 8657: } 8657: 8657: template 8657: basic_string<_CharT, _Traits, _Alloc>& 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 8657: const size_type __len2) 8657: { 8657: _M_check_length(__len1, __len2, "basic_string::_M_replace"); 8657: 8657: const size_type __old_size = this->size(); 8657: const size_type __new_size = __old_size + __len2 - __len1; 8657: 8657: if (__new_size <= this->capacity()) 8657: { 8657: pointer __p = this->_M_data() + __pos; 8657: 8657: const size_type __how_much = __old_size - __pos - __len1; 8657: if (_M_disjunct(__s)) 8657: { 8657: if (__how_much && __len1 != __len2) 8657: this->_S_move(__p + __len2, __p + __len1, __how_much); 8657: if (__len2) 8657: this->_S_copy(__p, __s, __len2); 8657: } 8657: else 8657: { 8657: 8657: if (__len2 && __len2 <= __len1) 8657: this->_S_move(__p, __s, __len2); 8657: if (__how_much && __len1 != __len2) 8657: this->_S_move(__p + __len2, __p + __len1, __how_much); 8657: if (__len2 > __len1) 8657: { 8657: if (__s + __len2 <= __p + __len1) 8657: this->_S_move(__p, __s, __len2); 8657: else if (__s >= __p + __len1) 8657: this->_S_copy(__p, __s + __len2 - __len1, __len2); 8657: else 8657: { 8657: const size_type __nleft = (__p + __len1) - __s; 8657: this->_S_move(__p, __s, __nleft); 8657: this->_S_copy(__p + __nleft, __p + __len2, 8657: __len2 - __nleft); 8657: } 8657: } 8657: } 8657: } 8657: else 8657: this->_M_mutate(__pos, __len1, __s, __len2); 8657: 8657: this->_M_set_length(__new_size); 8657: return *this; 8657: } 8657: 8657: template 8657: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: copy(_CharT* __s, size_type __n, size_type __pos) const 8657: { 8657: _M_check(__pos, "basic_string::copy"); 8657: __n = _M_limit(__pos, __n); 8657: ; 8657: if (__n) 8657: _S_copy(__s, _M_data() + __pos, __n); 8657: 8657: return __n; 8657: } 8657: # 1155 "/usr/include/c++/8/bits/basic_string.tcc" 3 8657: template 8657: basic_string<_CharT, _Traits, _Alloc> 8657: operator+(const _CharT* __lhs, 8657: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8657: { 8657: ; 8657: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8657: typedef typename __string_type::size_type __size_type; 8657: const __size_type __len = _Traits::length(__lhs); 8657: __string_type __str; 8657: __str.reserve(__len + __rhs.size()); 8657: __str.append(__lhs, __len); 8657: __str.append(__rhs); 8657: return __str; 8657: } 8657: 8657: template 8657: basic_string<_CharT, _Traits, _Alloc> 8657: operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8657: { 8657: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8657: typedef typename __string_type::size_type __size_type; 8657: __string_type __str; 8657: const __size_type __len = __rhs.size(); 8657: __str.reserve(__len + 1); 8657: __str.append(__size_type(1), __lhs); 8657: __str.append(__rhs); 8657: return __str; 8657: } 8657: 8657: template 8657: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: find(const _CharT* __s, size_type __pos, size_type __n) const 8657: noexcept 8657: { 8657: ; 8657: const size_type __size = this->size(); 8657: 8657: if (__n == 0) 8657: return __pos <= __size ? __pos : npos; 8657: if (__pos >= __size) 8657: return npos; 8657: 8657: const _CharT __elem0 = __s[0]; 8657: const _CharT* const __data = data(); 8657: const _CharT* __first = __data + __pos; 8657: const _CharT* const __last = __data + __size; 8657: size_type __len = __size - __pos; 8657: 8657: while (__len >= __n) 8657: { 8657: 8657: __first = traits_type::find(__first, __len - __n + 1, __elem0); 8657: if (!__first) 8657: return npos; 8657: 8657: 8657: 8657: if (traits_type::compare(__first, __s, __n) == 0) 8657: return __first - __data; 8657: __len = __last - ++__first; 8657: } 8657: return npos; 8657: } 8657: 8657: template 8657: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: find(_CharT __c, size_type __pos) const noexcept 8657: { 8657: size_type __ret = npos; 8657: const size_type __size = this->size(); 8657: if (__pos < __size) 8657: { 8657: const _CharT* __data = _M_data(); 8657: const size_type __n = __size - __pos; 8657: const _CharT* __p = traits_type::find(__data + __pos, __n, __c); 8657: if (__p) 8657: __ret = __p - __data; 8657: } 8657: return __ret; 8657: } 8657: 8657: template 8657: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: rfind(const _CharT* __s, size_type __pos, size_type __n) const 8657: noexcept 8657: { 8657: ; 8657: const size_type __size = this->size(); 8657: if (__n <= __size) 8657: { 8657: __pos = std::min(size_type(__size - __n), __pos); 8657: const _CharT* __data = _M_data(); 8657: do 8657: { 8657: if (traits_type::compare(__data + __pos, __s, __n) == 0) 8657: return __pos; 8657: } 8657: while (__pos-- > 0); 8657: } 8657: return npos; 8657: } 8657: 8657: template 8657: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: rfind(_CharT __c, size_type __pos) const noexcept 8657: { 8657: size_type __size = this->size(); 8657: if (__size) 8657: { 8657: if (--__size > __pos) 8657: __size = __pos; 8657: for (++__size; __size-- > 0; ) 8657: if (traits_type::eq(_M_data()[__size], __c)) 8657: return __size; 8657: } 8657: return npos; 8657: } 8657: 8657: template 8657: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 8657: noexcept 8657: { 8657: ; 8657: for (; __n && __pos < this->size(); ++__pos) 8657: { 8657: const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); 8657: if (__p) 8657: return __pos; 8657: } 8657: return npos; 8657: } 8657: 8657: template 8657: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 8657: noexcept 8657: { 8657: ; 8657: size_type __size = this->size(); 8657: if (__size && __n) 8657: { 8657: if (--__size > __pos) 8657: __size = __pos; 8657: do 8657: { 8657: if (traits_type::find(__s, __n, _M_data()[__size])) 8657: return __size; 8657: } 8657: while (__size-- != 0); 8657: } 8657: return npos; 8657: } 8657: 8657: template 8657: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const 8657: noexcept 8657: { 8657: ; 8657: for (; __pos < this->size(); ++__pos) 8657: if (!traits_type::find(__s, __n, _M_data()[__pos])) 8657: return __pos; 8657: return npos; 8657: } 8657: 8657: template 8657: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: find_first_not_of(_CharT __c, size_type __pos) const noexcept 8657: { 8657: for (; __pos < this->size(); ++__pos) 8657: if (!traits_type::eq(_M_data()[__pos], __c)) 8657: return __pos; 8657: return npos; 8657: } 8657: 8657: template 8657: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const 8657: noexcept 8657: { 8657: ; 8657: size_type __size = this->size(); 8657: if (__size) 8657: { 8657: if (--__size > __pos) 8657: __size = __pos; 8657: do 8657: { 8657: if (!traits_type::find(__s, __n, _M_data()[__size])) 8657: return __size; 8657: } 8657: while (__size--); 8657: } 8657: return npos; 8657: } 8657: 8657: template 8657: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: find_last_not_of(_CharT __c, size_type __pos) const noexcept 8657: { 8657: size_type __size = this->size(); 8657: if (__size) 8657: { 8657: if (--__size > __pos) 8657: __size = __pos; 8657: do 8657: { 8657: if (!traits_type::eq(_M_data()[__size], __c)) 8657: return __size; 8657: } 8657: while (__size--); 8657: } 8657: return npos; 8657: } 8657: 8657: template 8657: int 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: compare(size_type __pos, size_type __n, const basic_string& __str) const 8657: { 8657: _M_check(__pos, "basic_string::compare"); 8657: __n = _M_limit(__pos, __n); 8657: const size_type __osize = __str.size(); 8657: const size_type __len = std::min(__n, __osize); 8657: int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); 8657: if (!__r) 8657: __r = _S_compare(__n, __osize); 8657: return __r; 8657: } 8657: 8657: template 8657: int 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: compare(size_type __pos1, size_type __n1, const basic_string& __str, 8657: size_type __pos2, size_type __n2) const 8657: { 8657: _M_check(__pos1, "basic_string::compare"); 8657: __str._M_check(__pos2, "basic_string::compare"); 8657: __n1 = _M_limit(__pos1, __n1); 8657: __n2 = __str._M_limit(__pos2, __n2); 8657: const size_type __len = std::min(__n1, __n2); 8657: int __r = traits_type::compare(_M_data() + __pos1, 8657: __str.data() + __pos2, __len); 8657: if (!__r) 8657: __r = _S_compare(__n1, __n2); 8657: return __r; 8657: } 8657: 8657: template 8657: int 8657: basic_string<_CharT, _Traits, _Alloc>:: 8657: compare(const _CharT* __s) const noexcept 8657: { 8657: ; 8657: const size_type __size = this->size(); 8657: const size_type __osize = traits_type::length(__s); 8657: const size_type __len = std::min(__size, __osize); 8657: int __r = traits_type::compare(_M_data(), __s, __len); 8657: if (!__r) 8657: __r = _S_compare(__size, __osize); 8657: return __r; 8657: } 8657: 8657: template 8657: int 8657: basic_string <_CharT, _Traits, _Alloc>:: 8657: compare(size_type __pos, size_type __n1, const _CharT* __s) const 8657: { 8657: ; 8657: _M_check(__pos, "basic_string::compare"); 8657: __n1 = _M_limit(__pos, __n1); 8657: const size_type __osize = traits_type::length(__s); 8657: const size_type __len = std::min(__n1, __osize); 8657: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 8657: if (!__r) 8657: __r = _S_compare(__n1, __osize); 8657: return __r; 8657: } 8657: 8657: template 8657: int 8657: basic_string <_CharT, _Traits, _Alloc>:: 8657: compare(size_type __pos, size_type __n1, const _CharT* __s, 8657: size_type __n2) const 8657: { 8657: ; 8657: _M_check(__pos, "basic_string::compare"); 8657: __n1 = _M_limit(__pos, __n1); 8657: const size_type __len = std::min(__n1, __n2); 8657: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 8657: if (!__r) 8657: __r = _S_compare(__n1, __n2); 8657: return __r; 8657: } 8657: 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: operator>>(basic_istream<_CharT, _Traits>& __in, 8657: basic_string<_CharT, _Traits, _Alloc>& __str) 8657: { 8657: typedef basic_istream<_CharT, _Traits> __istream_type; 8657: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8657: typedef typename __istream_type::ios_base __ios_base; 8657: typedef typename __istream_type::int_type __int_type; 8657: typedef typename __string_type::size_type __size_type; 8657: typedef ctype<_CharT> __ctype_type; 8657: typedef typename __ctype_type::ctype_base __ctype_base; 8657: 8657: __size_type __extracted = 0; 8657: typename __ios_base::iostate __err = __ios_base::goodbit; 8657: typename __istream_type::sentry __cerb(__in, false); 8657: if (__cerb) 8657: { 8657: try 8657: { 8657: 8657: __str.erase(); 8657: _CharT __buf[128]; 8657: __size_type __len = 0; 8657: const streamsize __w = __in.width(); 8657: const __size_type __n = __w > 0 ? static_cast<__size_type>(__w) 8657: : __str.max_size(); 8657: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 8657: const __int_type __eof = _Traits::eof(); 8657: __int_type __c = __in.rdbuf()->sgetc(); 8657: 8657: while (__extracted < __n 8657: && !_Traits::eq_int_type(__c, __eof) 8657: && !__ct.is(__ctype_base::space, 8657: _Traits::to_char_type(__c))) 8657: { 8657: if (__len == sizeof(__buf) / sizeof(_CharT)) 8657: { 8657: __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); 8657: __len = 0; 8657: } 8657: __buf[__len++] = _Traits::to_char_type(__c); 8657: ++__extracted; 8657: __c = __in.rdbuf()->snextc(); 8657: } 8657: __str.append(__buf, __len); 8657: 8657: if (_Traits::eq_int_type(__c, __eof)) 8657: __err |= __ios_base::eofbit; 8657: __in.width(0); 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: __in._M_setstate(__ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { 8657: 8657: 8657: 8657: __in._M_setstate(__ios_base::badbit); 8657: } 8657: } 8657: 8657: if (!__extracted) 8657: __err |= __ios_base::failbit; 8657: if (__err) 8657: __in.setstate(__err); 8657: return __in; 8657: } 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: getline(basic_istream<_CharT, _Traits>& __in, 8657: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 8657: { 8657: typedef basic_istream<_CharT, _Traits> __istream_type; 8657: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8657: typedef typename __istream_type::ios_base __ios_base; 8657: typedef typename __istream_type::int_type __int_type; 8657: typedef typename __string_type::size_type __size_type; 8657: 8657: __size_type __extracted = 0; 8657: const __size_type __n = __str.max_size(); 8657: typename __ios_base::iostate __err = __ios_base::goodbit; 8657: typename __istream_type::sentry __cerb(__in, true); 8657: if (__cerb) 8657: { 8657: try 8657: { 8657: __str.erase(); 8657: const __int_type __idelim = _Traits::to_int_type(__delim); 8657: const __int_type __eof = _Traits::eof(); 8657: __int_type __c = __in.rdbuf()->sgetc(); 8657: 8657: while (__extracted < __n 8657: && !_Traits::eq_int_type(__c, __eof) 8657: && !_Traits::eq_int_type(__c, __idelim)) 8657: { 8657: __str += _Traits::to_char_type(__c); 8657: ++__extracted; 8657: __c = __in.rdbuf()->snextc(); 8657: } 8657: 8657: if (_Traits::eq_int_type(__c, __eof)) 8657: __err |= __ios_base::eofbit; 8657: else if (_Traits::eq_int_type(__c, __idelim)) 8657: { 8657: ++__extracted; 8657: __in.rdbuf()->sbumpc(); 8657: } 8657: else 8657: __err |= __ios_base::failbit; 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: __in._M_setstate(__ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { 8657: 8657: 8657: 8657: __in._M_setstate(__ios_base::badbit); 8657: } 8657: } 8657: if (!__extracted) 8657: __err |= __ios_base::failbit; 8657: if (__err) 8657: __in.setstate(__err); 8657: return __in; 8657: } 8657: 8657: 8657: 8657: 8657: extern template class basic_string; 8657: extern template 8657: basic_istream& 8657: operator>>(basic_istream&, string&); 8657: extern template 8657: basic_ostream& 8657: operator<<(basic_ostream&, const string&); 8657: extern template 8657: basic_istream& 8657: getline(basic_istream&, string&, char); 8657: extern template 8657: basic_istream& 8657: getline(basic_istream&, string&); 8657: 8657: 8657: extern template class basic_string; 8657: extern template 8657: basic_istream& 8657: operator>>(basic_istream&, wstring&); 8657: extern template 8657: basic_ostream& 8657: operator<<(basic_ostream&, const wstring&); 8657: extern template 8657: basic_istream& 8657: getline(basic_istream&, wstring&, wchar_t); 8657: extern template 8657: basic_istream& 8657: getline(basic_istream&, wstring&); 8657: 8657: 8657: 8657: 8657: } 8657: # 54 "/usr/include/c++/8/string" 2 3 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 2 3 4 8657: # 1 "/usr/include/c++/8/iterator" 1 3 4 8657: # 58 "/usr/include/c++/8/iterator" 3 4 8657: 8657: # 59 "/usr/include/c++/8/iterator" 3 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/ostream" 1 3 8657: # 36 "/usr/include/c++/8/ostream" 3 8657: 8657: # 37 "/usr/include/c++/8/ostream" 3 8657: 8657: # 1 "/usr/include/c++/8/ios" 1 3 8657: # 36 "/usr/include/c++/8/ios" 3 8657: 8657: # 37 "/usr/include/c++/8/ios" 3 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/ios_base.h" 1 3 8657: # 37 "/usr/include/c++/8/bits/ios_base.h" 3 8657: 8657: # 38 "/usr/include/c++/8/bits/ios_base.h" 3 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/locale_classes.h" 1 3 8657: # 37 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: 8657: # 38 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: 8657: 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 62 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: class locale 8657: { 8657: public: 8657: 8657: 8657: typedef int category; 8657: 8657: 8657: class facet; 8657: class id; 8657: class _Impl; 8657: 8657: friend class facet; 8657: friend class _Impl; 8657: 8657: template 8657: friend bool 8657: has_facet(const locale&) throw(); 8657: 8657: template 8657: friend const _Facet& 8657: use_facet(const locale&); 8657: 8657: template 8657: friend struct __use_cache; 8657: # 98 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: static const category none = 0; 8657: static const category ctype = 1L << 0; 8657: static const category numeric = 1L << 1; 8657: static const category collate = 1L << 2; 8657: static const category time = 1L << 3; 8657: static const category monetary = 1L << 4; 8657: static const category messages = 1L << 5; 8657: static const category all = (ctype | numeric | collate | 8657: time | monetary | messages); 8657: # 117 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: locale() throw(); 8657: # 126 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: locale(const locale& __other) throw(); 8657: # 136 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: explicit 8657: locale(const char* __s); 8657: # 151 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: locale(const locale& __base, const char* __s, category __cat); 8657: # 162 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: explicit 8657: locale(const std::string& __s) : locale(__s.c_str()) { } 8657: # 177 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: locale(const locale& __base, const std::string& __s, category __cat) 8657: : locale(__base, __s.c_str(), __cat) { } 8657: # 192 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: locale(const locale& __base, const locale& __add, category __cat); 8657: # 205 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: template 8657: locale(const locale& __other, _Facet* __f); 8657: 8657: 8657: ~locale() throw(); 8657: # 219 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: const locale& 8657: operator=(const locale& __other) throw(); 8657: # 234 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: template 8657: locale 8657: combine(const locale& __other) const; 8657: 8657: 8657: 8657: 8657: 8657: 8657: __attribute ((__abi_tag__ ("cxx11"))) 8657: string 8657: name() const; 8657: # 254 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: bool 8657: operator==(const locale& __other) const throw(); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: bool 8657: operator!=(const locale& __other) const throw() 8657: { return !(this->operator==(__other)); } 8657: # 282 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: template 8657: bool 8657: operator()(const basic_string<_Char, _Traits, _Alloc>& __s1, 8657: const basic_string<_Char, _Traits, _Alloc>& __s2) const; 8657: # 298 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: static locale 8657: global(const locale& __loc); 8657: 8657: 8657: 8657: 8657: static const locale& 8657: classic(); 8657: 8657: private: 8657: 8657: _Impl* _M_impl; 8657: 8657: 8657: static _Impl* _S_classic; 8657: 8657: 8657: static _Impl* _S_global; 8657: 8657: 8657: 8657: 8657: 8657: static const char* const* const _S_categories; 8657: # 333 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: enum { _S_categories_size = 6 + 6 }; 8657: 8657: 8657: static __gthread_once_t _S_once; 8657: 8657: 8657: explicit 8657: locale(_Impl*) throw(); 8657: 8657: static void 8657: _S_initialize(); 8657: 8657: static void 8657: _S_initialize_once() throw(); 8657: 8657: static category 8657: _S_normalize_category(category); 8657: 8657: void 8657: _M_coalesce(const locale& __base, const locale& __add, category __cat); 8657: 8657: 8657: static const id* const _S_twinned_facets[]; 8657: 8657: }; 8657: # 371 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: class locale::facet 8657: { 8657: private: 8657: friend class locale; 8657: friend class locale::_Impl; 8657: 8657: mutable _Atomic_word _M_refcount; 8657: 8657: 8657: static __c_locale _S_c_locale; 8657: 8657: 8657: static const char _S_c_name[2]; 8657: 8657: 8657: static __gthread_once_t _S_once; 8657: 8657: 8657: static void 8657: _S_initialize_once(); 8657: 8657: protected: 8657: # 402 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: explicit 8657: facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0) 8657: { } 8657: 8657: 8657: virtual 8657: ~facet(); 8657: 8657: static void 8657: _S_create_c_locale(__c_locale& __cloc, const char* __s, 8657: __c_locale __old = 0); 8657: 8657: static __c_locale 8657: _S_clone_c_locale(__c_locale& __cloc) throw(); 8657: 8657: static void 8657: _S_destroy_c_locale(__c_locale& __cloc); 8657: 8657: static __c_locale 8657: _S_lc_ctype_c_locale(__c_locale __cloc, const char* __s); 8657: 8657: 8657: 8657: static __c_locale 8657: _S_get_c_locale(); 8657: 8657: __attribute__ ((__const__)) static const char* 8657: _S_get_c_name() throw(); 8657: # 438 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: facet(const facet&) = delete; 8657: 8657: facet& 8657: operator=(const facet&) = delete; 8657: 8657: 8657: private: 8657: void 8657: _M_add_reference() const throw() 8657: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 8657: 8657: void 8657: _M_remove_reference() const throw() 8657: { 8657: 8657: ; 8657: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 8657: { 8657: ; 8657: try 8657: { delete this; } 8657: catch(...) 8657: { } 8657: } 8657: } 8657: 8657: const facet* _M_sso_shim(const id*) const; 8657: const facet* _M_cow_shim(const id*) const; 8657: 8657: protected: 8657: class __shim; 8657: }; 8657: # 483 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: class locale::id 8657: { 8657: private: 8657: friend class locale; 8657: friend class locale::_Impl; 8657: 8657: template 8657: friend const _Facet& 8657: use_facet(const locale&); 8657: 8657: template 8657: friend bool 8657: has_facet(const locale&) throw(); 8657: 8657: 8657: 8657: 8657: mutable size_t _M_index; 8657: 8657: 8657: static _Atomic_word _S_refcount; 8657: 8657: void 8657: operator=(const id&); 8657: 8657: id(const id&); 8657: 8657: public: 8657: 8657: 8657: 8657: id() { } 8657: 8657: size_t 8657: _M_id() const throw(); 8657: }; 8657: 8657: 8657: 8657: class locale::_Impl 8657: { 8657: public: 8657: 8657: friend class locale; 8657: friend class locale::facet; 8657: 8657: template 8657: friend bool 8657: has_facet(const locale&) throw(); 8657: 8657: template 8657: friend const _Facet& 8657: use_facet(const locale&); 8657: 8657: template 8657: friend struct __use_cache; 8657: 8657: private: 8657: 8657: _Atomic_word _M_refcount; 8657: const facet** _M_facets; 8657: size_t _M_facets_size; 8657: const facet** _M_caches; 8657: char** _M_names; 8657: static const locale::id* const _S_id_ctype[]; 8657: static const locale::id* const _S_id_numeric[]; 8657: static const locale::id* const _S_id_collate[]; 8657: static const locale::id* const _S_id_time[]; 8657: static const locale::id* const _S_id_monetary[]; 8657: static const locale::id* const _S_id_messages[]; 8657: static const locale::id* const* const _S_facet_categories[]; 8657: 8657: void 8657: _M_add_reference() throw() 8657: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 8657: 8657: void 8657: _M_remove_reference() throw() 8657: { 8657: 8657: ; 8657: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 8657: { 8657: ; 8657: try 8657: { delete this; } 8657: catch(...) 8657: { } 8657: } 8657: } 8657: 8657: _Impl(const _Impl&, size_t); 8657: _Impl(const char*, size_t); 8657: _Impl(size_t) throw(); 8657: 8657: ~_Impl() throw(); 8657: 8657: _Impl(const _Impl&); 8657: 8657: void 8657: operator=(const _Impl&); 8657: 8657: bool 8657: _M_check_same_name() 8657: { 8657: bool __ret = true; 8657: if (_M_names[1]) 8657: 8657: for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i) 8657: __ret = __builtin_strcmp(_M_names[__i], _M_names[__i + 1]) == 0; 8657: return __ret; 8657: } 8657: 8657: void 8657: _M_replace_categories(const _Impl*, category); 8657: 8657: void 8657: _M_replace_category(const _Impl*, const locale::id* const*); 8657: 8657: void 8657: _M_replace_facet(const _Impl*, const locale::id*); 8657: 8657: void 8657: _M_install_facet(const locale::id*, const facet*); 8657: 8657: template 8657: void 8657: _M_init_facet(_Facet* __facet) 8657: { _M_install_facet(&_Facet::id, __facet); } 8657: 8657: template 8657: void 8657: _M_init_facet_unchecked(_Facet* __facet) 8657: { 8657: __facet->_M_add_reference(); 8657: _M_facets[_Facet::id._M_id()] = __facet; 8657: } 8657: 8657: void 8657: _M_install_cache(const facet*, size_t); 8657: 8657: void _M_init_extra(facet**); 8657: void _M_init_extra(void*, void*, const char*, const char*); 8657: }; 8657: # 641 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: template 8657: class __cxx11:: collate : public locale::facet 8657: { 8657: public: 8657: 8657: 8657: 8657: typedef _CharT char_type; 8657: typedef basic_string<_CharT> string_type; 8657: 8657: 8657: protected: 8657: 8657: 8657: __c_locale _M_c_locale_collate; 8657: 8657: public: 8657: 8657: static locale::id id; 8657: # 668 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: explicit 8657: collate(size_t __refs = 0) 8657: : facet(__refs), _M_c_locale_collate(_S_get_c_locale()) 8657: { } 8657: # 682 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: explicit 8657: collate(__c_locale __cloc, size_t __refs = 0) 8657: : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc)) 8657: { } 8657: # 699 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: int 8657: compare(const _CharT* __lo1, const _CharT* __hi1, 8657: const _CharT* __lo2, const _CharT* __hi2) const 8657: { return this->do_compare(__lo1, __hi1, __lo2, __hi2); } 8657: # 718 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: string_type 8657: transform(const _CharT* __lo, const _CharT* __hi) const 8657: { return this->do_transform(__lo, __hi); } 8657: # 732 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: long 8657: hash(const _CharT* __lo, const _CharT* __hi) const 8657: { return this->do_hash(__lo, __hi); } 8657: 8657: 8657: int 8657: _M_compare(const _CharT*, const _CharT*) const throw(); 8657: 8657: size_t 8657: _M_transform(_CharT*, const _CharT*, size_t) const throw(); 8657: 8657: protected: 8657: 8657: virtual 8657: ~collate() 8657: { _S_destroy_c_locale(_M_c_locale_collate); } 8657: # 761 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: virtual int 8657: do_compare(const _CharT* __lo1, const _CharT* __hi1, 8657: const _CharT* __lo2, const _CharT* __hi2) const; 8657: # 775 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: virtual string_type 8657: do_transform(const _CharT* __lo, const _CharT* __hi) const; 8657: # 788 "/usr/include/c++/8/bits/locale_classes.h" 3 8657: virtual long 8657: do_hash(const _CharT* __lo, const _CharT* __hi) const; 8657: }; 8657: 8657: template 8657: locale::id collate<_CharT>::id; 8657: 8657: 8657: template<> 8657: int 8657: collate::_M_compare(const char*, const char*) const throw(); 8657: 8657: template<> 8657: size_t 8657: collate::_M_transform(char*, const char*, size_t) const throw(); 8657: 8657: 8657: template<> 8657: int 8657: collate::_M_compare(const wchar_t*, const wchar_t*) const throw(); 8657: 8657: template<> 8657: size_t 8657: collate::_M_transform(wchar_t*, const wchar_t*, size_t) const throw(); 8657: 8657: 8657: 8657: template 8657: class __cxx11:: collate_byname : public collate<_CharT> 8657: { 8657: public: 8657: 8657: 8657: typedef _CharT char_type; 8657: typedef basic_string<_CharT> string_type; 8657: 8657: 8657: explicit 8657: collate_byname(const char* __s, size_t __refs = 0) 8657: : collate<_CharT>(__refs) 8657: { 8657: if (__builtin_strcmp(__s, "C") != 0 8657: && __builtin_strcmp(__s, "POSIX") != 0) 8657: { 8657: this->_S_destroy_c_locale(this->_M_c_locale_collate); 8657: this->_S_create_c_locale(this->_M_c_locale_collate, __s); 8657: } 8657: } 8657: 8657: 8657: explicit 8657: collate_byname(const string& __s, size_t __refs = 0) 8657: : collate_byname(__s.c_str(), __refs) { } 8657: 8657: 8657: protected: 8657: virtual 8657: ~collate_byname() { } 8657: }; 8657: 8657: 8657: } 8657: 8657: # 1 "/usr/include/c++/8/bits/locale_classes.tcc" 1 3 8657: # 37 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8657: 8657: # 38 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: template 8657: locale:: 8657: locale(const locale& __other, _Facet* __f) 8657: { 8657: _M_impl = new _Impl(*__other._M_impl, 1); 8657: 8657: try 8657: { _M_impl->_M_install_facet(&_Facet::id, __f); } 8657: catch(...) 8657: { 8657: _M_impl->_M_remove_reference(); 8657: throw; 8657: } 8657: delete [] _M_impl->_M_names[0]; 8657: _M_impl->_M_names[0] = 0; 8657: } 8657: 8657: template 8657: locale 8657: locale:: 8657: combine(const locale& __other) const 8657: { 8657: _Impl* __tmp = new _Impl(*_M_impl, 1); 8657: try 8657: { 8657: __tmp->_M_replace_facet(__other._M_impl, &_Facet::id); 8657: } 8657: catch(...) 8657: { 8657: __tmp->_M_remove_reference(); 8657: throw; 8657: } 8657: return locale(__tmp); 8657: } 8657: 8657: template 8657: bool 8657: locale:: 8657: operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1, 8657: const basic_string<_CharT, _Traits, _Alloc>& __s2) const 8657: { 8657: typedef std::collate<_CharT> __collate_type; 8657: const __collate_type& __collate = use_facet<__collate_type>(*this); 8657: return (__collate.compare(__s1.data(), __s1.data() + __s1.length(), 8657: __s2.data(), __s2.data() + __s2.length()) < 0); 8657: } 8657: # 102 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8657: template 8657: bool 8657: has_facet(const locale& __loc) throw() 8657: { 8657: const size_t __i = _Facet::id._M_id(); 8657: const locale::facet** __facets = __loc._M_impl->_M_facets; 8657: return (__i < __loc._M_impl->_M_facets_size 8657: 8657: && dynamic_cast(__facets[__i])); 8657: 8657: 8657: 8657: } 8657: # 130 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8657: template 8657: const _Facet& 8657: use_facet(const locale& __loc) 8657: { 8657: const size_t __i = _Facet::id._M_id(); 8657: const locale::facet** __facets = __loc._M_impl->_M_facets; 8657: if (__i >= __loc._M_impl->_M_facets_size || !__facets[__i]) 8657: __throw_bad_cast(); 8657: 8657: return dynamic_cast(*__facets[__i]); 8657: 8657: 8657: 8657: } 8657: 8657: 8657: 8657: template 8657: int 8657: collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const throw () 8657: { return 0; } 8657: 8657: 8657: template 8657: size_t 8657: collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const throw () 8657: { return 0; } 8657: 8657: template 8657: int 8657: collate<_CharT>:: 8657: do_compare(const _CharT* __lo1, const _CharT* __hi1, 8657: const _CharT* __lo2, const _CharT* __hi2) const 8657: { 8657: 8657: 8657: const string_type __one(__lo1, __hi1); 8657: const string_type __two(__lo2, __hi2); 8657: 8657: const _CharT* __p = __one.c_str(); 8657: const _CharT* __pend = __one.data() + __one.length(); 8657: const _CharT* __q = __two.c_str(); 8657: const _CharT* __qend = __two.data() + __two.length(); 8657: 8657: 8657: 8657: 8657: for (;;) 8657: { 8657: const int __res = _M_compare(__p, __q); 8657: if (__res) 8657: return __res; 8657: 8657: __p += char_traits<_CharT>::length(__p); 8657: __q += char_traits<_CharT>::length(__q); 8657: if (__p == __pend && __q == __qend) 8657: return 0; 8657: else if (__p == __pend) 8657: return -1; 8657: else if (__q == __qend) 8657: return 1; 8657: 8657: __p++; 8657: __q++; 8657: } 8657: } 8657: 8657: template 8657: typename collate<_CharT>::string_type 8657: collate<_CharT>:: 8657: do_transform(const _CharT* __lo, const _CharT* __hi) const 8657: { 8657: string_type __ret; 8657: 8657: 8657: const string_type __str(__lo, __hi); 8657: 8657: const _CharT* __p = __str.c_str(); 8657: const _CharT* __pend = __str.data() + __str.length(); 8657: 8657: size_t __len = (__hi - __lo) * 2; 8657: 8657: _CharT* __c = new _CharT[__len]; 8657: 8657: try 8657: { 8657: 8657: 8657: 8657: for (;;) 8657: { 8657: 8657: size_t __res = _M_transform(__c, __p, __len); 8657: 8657: 8657: if (__res >= __len) 8657: { 8657: __len = __res + 1; 8657: delete [] __c, __c = 0; 8657: __c = new _CharT[__len]; 8657: __res = _M_transform(__c, __p, __len); 8657: } 8657: 8657: __ret.append(__c, __res); 8657: __p += char_traits<_CharT>::length(__p); 8657: if (__p == __pend) 8657: break; 8657: 8657: __p++; 8657: __ret.push_back(_CharT()); 8657: } 8657: } 8657: catch(...) 8657: { 8657: delete [] __c; 8657: throw; 8657: } 8657: 8657: delete [] __c; 8657: 8657: return __ret; 8657: } 8657: 8657: template 8657: long 8657: collate<_CharT>:: 8657: do_hash(const _CharT* __lo, const _CharT* __hi) const 8657: { 8657: unsigned long __val = 0; 8657: for (; __lo < __hi; ++__lo) 8657: __val = 8657: *__lo + ((__val << 7) 8657: | (__val >> (__gnu_cxx::__numeric_traits:: 8657: __digits - 7))); 8657: return static_cast(__val); 8657: } 8657: 8657: 8657: 8657: 8657: extern template class collate; 8657: extern template class collate_byname; 8657: 8657: extern template 8657: const collate& 8657: use_facet >(const locale&); 8657: 8657: extern template 8657: bool 8657: has_facet >(const locale&); 8657: 8657: 8657: extern template class collate; 8657: extern template class collate_byname; 8657: 8657: extern template 8657: const collate& 8657: use_facet >(const locale&); 8657: 8657: extern template 8657: bool 8657: has_facet >(const locale&); 8657: 8657: 8657: 8657: 8657: } 8657: # 852 "/usr/include/c++/8/bits/locale_classes.h" 2 3 8657: # 42 "/usr/include/c++/8/bits/ios_base.h" 2 3 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/system_error" 1 3 8657: # 32 "/usr/include/c++/8/system_error" 3 8657: 8657: # 33 "/usr/include/c++/8/system_error" 3 8657: 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/error_constants.h" 1 3 8657: # 34 "/usr/include/arm-linux-gnueabihf/c++/8/bits/error_constants.h" 3 8657: # 1 "/usr/include/c++/8/cerrno" 1 3 8657: # 39 "/usr/include/c++/8/cerrno" 3 8657: 8657: # 40 "/usr/include/c++/8/cerrno" 3 8657: # 35 "/usr/include/arm-linux-gnueabihf/c++/8/bits/error_constants.h" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: enum class errc 8657: { 8657: address_family_not_supported = 97, 8657: address_in_use = 98, 8657: address_not_available = 99, 8657: already_connected = 106, 8657: argument_list_too_long = 7, 8657: argument_out_of_domain = 33, 8657: bad_address = 14, 8657: bad_file_descriptor = 9, 8657: 8657: 8657: bad_message = 74, 8657: 8657: 8657: broken_pipe = 32, 8657: connection_aborted = 103, 8657: connection_already_in_progress = 114, 8657: connection_refused = 111, 8657: connection_reset = 104, 8657: cross_device_link = 18, 8657: destination_address_required = 89, 8657: device_or_resource_busy = 16, 8657: directory_not_empty = 39, 8657: executable_format_error = 8, 8657: file_exists = 17, 8657: file_too_large = 27, 8657: filename_too_long = 36, 8657: function_not_supported = 38, 8657: host_unreachable = 113, 8657: 8657: 8657: identifier_removed = 43, 8657: 8657: 8657: illegal_byte_sequence = 84, 8657: inappropriate_io_control_operation = 25, 8657: interrupted = 4, 8657: invalid_argument = 22, 8657: invalid_seek = 29, 8657: io_error = 5, 8657: is_a_directory = 21, 8657: message_size = 90, 8657: network_down = 100, 8657: network_reset = 102, 8657: network_unreachable = 101, 8657: no_buffer_space = 105, 8657: no_child_process = 10, 8657: 8657: 8657: no_link = 67, 8657: 8657: 8657: no_lock_available = 37, 8657: 8657: 8657: no_message_available = 61, 8657: 8657: 8657: no_message = 42, 8657: no_protocol_option = 92, 8657: no_space_on_device = 28, 8657: 8657: 8657: no_stream_resources = 63, 8657: 8657: 8657: no_such_device_or_address = 6, 8657: no_such_device = 19, 8657: no_such_file_or_directory = 2, 8657: no_such_process = 3, 8657: not_a_directory = 20, 8657: not_a_socket = 88, 8657: 8657: 8657: not_a_stream = 60, 8657: 8657: 8657: not_connected = 107, 8657: not_enough_memory = 12, 8657: 8657: 8657: not_supported = 95, 8657: 8657: 8657: 8657: operation_canceled = 125, 8657: 8657: 8657: operation_in_progress = 115, 8657: operation_not_permitted = 1, 8657: operation_not_supported = 95, 8657: operation_would_block = 11, 8657: 8657: 8657: owner_dead = 130, 8657: 8657: 8657: permission_denied = 13, 8657: 8657: 8657: protocol_error = 71, 8657: 8657: 8657: protocol_not_supported = 93, 8657: read_only_file_system = 30, 8657: resource_deadlock_would_occur = 35, 8657: resource_unavailable_try_again = 11, 8657: result_out_of_range = 34, 8657: 8657: 8657: state_not_recoverable = 131, 8657: 8657: 8657: 8657: stream_timeout = 62, 8657: 8657: 8657: 8657: text_file_busy = 26, 8657: 8657: 8657: timed_out = 110, 8657: too_many_files_open_in_system = 23, 8657: too_many_files_open = 24, 8657: too_many_links = 31, 8657: too_many_symbolic_link_levels = 40, 8657: 8657: 8657: value_too_large = 75, 8657: 8657: 8657: wrong_protocol_type = 91 8657: }; 8657: 8657: 8657: } 8657: # 40 "/usr/include/c++/8/system_error" 2 3 8657: 8657: # 1 "/usr/include/c++/8/stdexcept" 1 3 8657: # 36 "/usr/include/c++/8/stdexcept" 3 8657: 8657: # 37 "/usr/include/c++/8/stdexcept" 3 8657: 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: struct __cow_string 8657: { 8657: union { 8657: const char* _M_p; 8657: char _M_bytes[sizeof(const char*)]; 8657: }; 8657: 8657: __cow_string(); 8657: __cow_string(const std::string&); 8657: __cow_string(const char*, size_t); 8657: __cow_string(const __cow_string&) noexcept; 8657: __cow_string& operator=(const __cow_string&) noexcept; 8657: ~__cow_string(); 8657: 8657: __cow_string(__cow_string&&) noexcept; 8657: __cow_string& operator=(__cow_string&&) noexcept; 8657: 8657: }; 8657: 8657: typedef basic_string __sso_string; 8657: # 113 "/usr/include/c++/8/stdexcept" 3 8657: class logic_error : public exception 8657: { 8657: __cow_string _M_msg; 8657: 8657: public: 8657: 8657: explicit 8657: logic_error(const string& __arg) ; 8657: 8657: 8657: explicit 8657: logic_error(const char*) ; 8657: 8657: 8657: 8657: logic_error(const logic_error&) noexcept; 8657: logic_error& operator=(const logic_error&) noexcept; 8657: 8657: 8657: virtual ~logic_error() noexcept; 8657: 8657: 8657: 8657: virtual const char* 8657: what() const noexcept; 8657: 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: 8657: class domain_error : public logic_error 8657: { 8657: public: 8657: explicit domain_error(const string& __arg) ; 8657: 8657: explicit domain_error(const char*) ; 8657: 8657: virtual ~domain_error() noexcept; 8657: }; 8657: 8657: 8657: class invalid_argument : public logic_error 8657: { 8657: public: 8657: explicit invalid_argument(const string& __arg) ; 8657: 8657: explicit invalid_argument(const char*) ; 8657: 8657: virtual ~invalid_argument() noexcept; 8657: }; 8657: 8657: 8657: 8657: class length_error : public logic_error 8657: { 8657: public: 8657: explicit length_error(const string& __arg) ; 8657: 8657: explicit length_error(const char*) ; 8657: 8657: virtual ~length_error() noexcept; 8657: }; 8657: 8657: 8657: 8657: class out_of_range : public logic_error 8657: { 8657: public: 8657: explicit out_of_range(const string& __arg) ; 8657: 8657: explicit out_of_range(const char*) ; 8657: 8657: virtual ~out_of_range() noexcept; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: class runtime_error : public exception 8657: { 8657: __cow_string _M_msg; 8657: 8657: public: 8657: 8657: explicit 8657: runtime_error(const string& __arg) ; 8657: 8657: 8657: explicit 8657: runtime_error(const char*) ; 8657: 8657: 8657: 8657: runtime_error(const runtime_error&) noexcept; 8657: runtime_error& operator=(const runtime_error&) noexcept; 8657: 8657: 8657: virtual ~runtime_error() noexcept; 8657: 8657: 8657: 8657: virtual const char* 8657: what() const noexcept; 8657: 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: class range_error : public runtime_error 8657: { 8657: public: 8657: explicit range_error(const string& __arg) ; 8657: 8657: explicit range_error(const char*) ; 8657: 8657: virtual ~range_error() noexcept; 8657: }; 8657: 8657: 8657: class overflow_error : public runtime_error 8657: { 8657: public: 8657: explicit overflow_error(const string& __arg) ; 8657: 8657: explicit overflow_error(const char*) ; 8657: 8657: virtual ~overflow_error() noexcept; 8657: }; 8657: 8657: 8657: class underflow_error : public runtime_error 8657: { 8657: public: 8657: explicit underflow_error(const string& __arg) ; 8657: 8657: explicit underflow_error(const char*) ; 8657: 8657: virtual ~underflow_error() noexcept; 8657: }; 8657: 8657: 8657: 8657: 8657: } 8657: # 42 "/usr/include/c++/8/system_error" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: class error_code; 8657: class error_condition; 8657: class system_error; 8657: 8657: 8657: template 8657: struct is_error_code_enum : public false_type { }; 8657: 8657: 8657: template 8657: struct is_error_condition_enum : public false_type { }; 8657: 8657: template<> 8657: struct is_error_condition_enum 8657: : public true_type { }; 8657: # 71 "/usr/include/c++/8/system_error" 3 8657: inline namespace _V2 { 8657: 8657: 8657: class error_category 8657: { 8657: public: 8657: constexpr error_category() noexcept = default; 8657: 8657: virtual ~error_category(); 8657: 8657: error_category(const error_category&) = delete; 8657: error_category& operator=(const error_category&) = delete; 8657: 8657: virtual const char* 8657: name() const noexcept = 0; 8657: 8657: 8657: 8657: 8657: 8657: 8657: private: 8657: __attribute ((__abi_tag__ ("cxx11"))) 8657: virtual __cow_string 8657: _M_message(int) const; 8657: 8657: public: 8657: __attribute ((__abi_tag__ ("cxx11"))) 8657: virtual string 8657: message(int) const = 0; 8657: # 110 "/usr/include/c++/8/system_error" 3 8657: public: 8657: virtual error_condition 8657: default_error_condition(int __i) const noexcept; 8657: 8657: virtual bool 8657: equivalent(int __i, const error_condition& __cond) const noexcept; 8657: 8657: virtual bool 8657: equivalent(const error_code& __code, int __i) const noexcept; 8657: 8657: bool 8657: operator<(const error_category& __other) const noexcept 8657: { return less()(this, &__other); } 8657: 8657: bool 8657: operator==(const error_category& __other) const noexcept 8657: { return this == &__other; } 8657: 8657: bool 8657: operator!=(const error_category& __other) const noexcept 8657: { return this != &__other; } 8657: }; 8657: 8657: 8657: __attribute__ ((__const__)) const error_category& system_category() noexcept; 8657: __attribute__ ((__const__)) const error_category& generic_category() noexcept; 8657: 8657: } 8657: 8657: error_code make_error_code(errc) noexcept; 8657: 8657: template 8657: struct hash; 8657: 8657: 8657: 8657: struct error_code 8657: { 8657: error_code() noexcept 8657: : _M_value(0), _M_cat(&system_category()) { } 8657: 8657: error_code(int __v, const error_category& __cat) noexcept 8657: : _M_value(__v), _M_cat(&__cat) { } 8657: 8657: template::value>::type> 8657: error_code(_ErrorCodeEnum __e) noexcept 8657: { *this = make_error_code(__e); } 8657: 8657: void 8657: assign(int __v, const error_category& __cat) noexcept 8657: { 8657: _M_value = __v; 8657: _M_cat = &__cat; 8657: } 8657: 8657: void 8657: clear() noexcept 8657: { assign(0, system_category()); } 8657: 8657: 8657: template 8657: typename enable_if::value, 8657: error_code&>::type 8657: operator=(_ErrorCodeEnum __e) noexcept 8657: { return *this = make_error_code(__e); } 8657: 8657: int 8657: value() const noexcept { return _M_value; } 8657: 8657: const error_category& 8657: category() const noexcept { return *_M_cat; } 8657: 8657: error_condition 8657: default_error_condition() const noexcept; 8657: 8657: __attribute ((__abi_tag__ ("cxx11"))) 8657: string 8657: message() const 8657: { return category().message(value()); } 8657: 8657: explicit operator bool() const noexcept 8657: { return _M_value != 0; } 8657: 8657: 8657: private: 8657: friend class hash; 8657: 8657: int _M_value; 8657: const error_category* _M_cat; 8657: }; 8657: 8657: 8657: inline error_code 8657: make_error_code(errc __e) noexcept 8657: { return error_code(static_cast(__e), generic_category()); } 8657: 8657: inline bool 8657: operator<(const error_code& __lhs, const error_code& __rhs) noexcept 8657: { 8657: return (__lhs.category() < __rhs.category() 8657: || (__lhs.category() == __rhs.category() 8657: && __lhs.value() < __rhs.value())); 8657: } 8657: 8657: template 8657: basic_ostream<_CharT, _Traits>& 8657: operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e) 8657: { return (__os << __e.category().name() << ':' << __e.value()); } 8657: 8657: error_condition make_error_condition(errc) noexcept; 8657: 8657: 8657: 8657: struct error_condition 8657: { 8657: error_condition() noexcept 8657: : _M_value(0), _M_cat(&generic_category()) { } 8657: 8657: error_condition(int __v, const error_category& __cat) noexcept 8657: : _M_value(__v), _M_cat(&__cat) { } 8657: 8657: template::value>::type> 8657: error_condition(_ErrorConditionEnum __e) noexcept 8657: { *this = make_error_condition(__e); } 8657: 8657: void 8657: assign(int __v, const error_category& __cat) noexcept 8657: { 8657: _M_value = __v; 8657: _M_cat = &__cat; 8657: } 8657: 8657: 8657: template 8657: typename enable_if::value, error_condition&>::type 8657: operator=(_ErrorConditionEnum __e) noexcept 8657: { return *this = make_error_condition(__e); } 8657: 8657: void 8657: clear() noexcept 8657: { assign(0, generic_category()); } 8657: 8657: 8657: int 8657: value() const noexcept { return _M_value; } 8657: 8657: const error_category& 8657: category() const noexcept { return *_M_cat; } 8657: 8657: __attribute ((__abi_tag__ ("cxx11"))) 8657: string 8657: message() const 8657: { return category().message(value()); } 8657: 8657: explicit operator bool() const noexcept 8657: { return _M_value != 0; } 8657: 8657: 8657: private: 8657: int _M_value; 8657: const error_category* _M_cat; 8657: }; 8657: 8657: 8657: inline error_condition 8657: make_error_condition(errc __e) noexcept 8657: { return error_condition(static_cast(__e), generic_category()); } 8657: 8657: inline bool 8657: operator<(const error_condition& __lhs, 8657: const error_condition& __rhs) noexcept 8657: { 8657: return (__lhs.category() < __rhs.category() 8657: || (__lhs.category() == __rhs.category() 8657: && __lhs.value() < __rhs.value())); 8657: } 8657: 8657: 8657: inline bool 8657: operator==(const error_code& __lhs, const error_code& __rhs) noexcept 8657: { return (__lhs.category() == __rhs.category() 8657: && __lhs.value() == __rhs.value()); } 8657: 8657: inline bool 8657: operator==(const error_code& __lhs, const error_condition& __rhs) noexcept 8657: { 8657: return (__lhs.category().equivalent(__lhs.value(), __rhs) 8657: || __rhs.category().equivalent(__lhs, __rhs.value())); 8657: } 8657: 8657: inline bool 8657: operator==(const error_condition& __lhs, const error_code& __rhs) noexcept 8657: { 8657: return (__rhs.category().equivalent(__rhs.value(), __lhs) 8657: || __lhs.category().equivalent(__rhs, __lhs.value())); 8657: } 8657: 8657: inline bool 8657: operator==(const error_condition& __lhs, 8657: const error_condition& __rhs) noexcept 8657: { 8657: return (__lhs.category() == __rhs.category() 8657: && __lhs.value() == __rhs.value()); 8657: } 8657: 8657: inline bool 8657: operator!=(const error_code& __lhs, const error_code& __rhs) noexcept 8657: { return !(__lhs == __rhs); } 8657: 8657: inline bool 8657: operator!=(const error_code& __lhs, const error_condition& __rhs) noexcept 8657: { return !(__lhs == __rhs); } 8657: 8657: inline bool 8657: operator!=(const error_condition& __lhs, const error_code& __rhs) noexcept 8657: { return !(__lhs == __rhs); } 8657: 8657: inline bool 8657: operator!=(const error_condition& __lhs, 8657: const error_condition& __rhs) noexcept 8657: { return !(__lhs == __rhs); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: class system_error : public std::runtime_error 8657: { 8657: private: 8657: error_code _M_code; 8657: 8657: public: 8657: system_error(error_code __ec = error_code()) 8657: : runtime_error(__ec.message()), _M_code(__ec) { } 8657: 8657: system_error(error_code __ec, const string& __what) 8657: : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { } 8657: 8657: system_error(error_code __ec, const char* __what) 8657: : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { } 8657: 8657: system_error(int __v, const error_category& __ecat, const char* __what) 8657: : system_error(error_code(__v, __ecat), __what) { } 8657: 8657: system_error(int __v, const error_category& __ecat) 8657: : runtime_error(error_code(__v, __ecat).message()), 8657: _M_code(__v, __ecat) { } 8657: 8657: system_error(int __v, const error_category& __ecat, const string& __what) 8657: : runtime_error(__what + ": " + error_code(__v, __ecat).message()), 8657: _M_code(__v, __ecat) { } 8657: 8657: virtual ~system_error() noexcept; 8657: 8657: const error_code& 8657: code() const noexcept { return _M_code; } 8657: }; 8657: 8657: 8657: } 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: template<> 8657: struct hash 8657: : public __hash_base 8657: { 8657: size_t 8657: operator()(const error_code& __e) const noexcept 8657: { 8657: const size_t __tmp = std::_Hash_impl::hash(__e._M_value); 8657: return std::_Hash_impl::__hash_combine(__e._M_cat, __tmp); 8657: } 8657: }; 8657: # 414 "/usr/include/c++/8/system_error" 3 8657: 8657: } 8657: # 47 "/usr/include/c++/8/bits/ios_base.h" 2 3 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: enum _Ios_Fmtflags 8657: { 8657: _S_boolalpha = 1L << 0, 8657: _S_dec = 1L << 1, 8657: _S_fixed = 1L << 2, 8657: _S_hex = 1L << 3, 8657: _S_internal = 1L << 4, 8657: _S_left = 1L << 5, 8657: _S_oct = 1L << 6, 8657: _S_right = 1L << 7, 8657: _S_scientific = 1L << 8, 8657: _S_showbase = 1L << 9, 8657: _S_showpoint = 1L << 10, 8657: _S_showpos = 1L << 11, 8657: _S_skipws = 1L << 12, 8657: _S_unitbuf = 1L << 13, 8657: _S_uppercase = 1L << 14, 8657: _S_adjustfield = _S_left | _S_right | _S_internal, 8657: _S_basefield = _S_dec | _S_oct | _S_hex, 8657: _S_floatfield = _S_scientific | _S_fixed, 8657: _S_ios_fmtflags_end = 1L << 16, 8657: _S_ios_fmtflags_max = 0x7fffffff, 8657: _S_ios_fmtflags_min = ~0x7fffffff 8657: }; 8657: 8657: inline constexpr _Ios_Fmtflags 8657: operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 8657: { return _Ios_Fmtflags(static_cast(__a) & static_cast(__b)); } 8657: 8657: inline constexpr _Ios_Fmtflags 8657: operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 8657: { return _Ios_Fmtflags(static_cast(__a) | static_cast(__b)); } 8657: 8657: inline constexpr _Ios_Fmtflags 8657: operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 8657: { return _Ios_Fmtflags(static_cast(__a) ^ static_cast(__b)); } 8657: 8657: inline constexpr _Ios_Fmtflags 8657: operator~(_Ios_Fmtflags __a) 8657: { return _Ios_Fmtflags(~static_cast(__a)); } 8657: 8657: inline const _Ios_Fmtflags& 8657: operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 8657: { return __a = __a | __b; } 8657: 8657: inline const _Ios_Fmtflags& 8657: operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 8657: { return __a = __a & __b; } 8657: 8657: inline const _Ios_Fmtflags& 8657: operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 8657: { return __a = __a ^ __b; } 8657: 8657: 8657: enum _Ios_Openmode 8657: { 8657: _S_app = 1L << 0, 8657: _S_ate = 1L << 1, 8657: _S_bin = 1L << 2, 8657: _S_in = 1L << 3, 8657: _S_out = 1L << 4, 8657: _S_trunc = 1L << 5, 8657: _S_ios_openmode_end = 1L << 16, 8657: _S_ios_openmode_max = 0x7fffffff, 8657: _S_ios_openmode_min = ~0x7fffffff 8657: }; 8657: 8657: inline constexpr _Ios_Openmode 8657: operator&(_Ios_Openmode __a, _Ios_Openmode __b) 8657: { return _Ios_Openmode(static_cast(__a) & static_cast(__b)); } 8657: 8657: inline constexpr _Ios_Openmode 8657: operator|(_Ios_Openmode __a, _Ios_Openmode __b) 8657: { return _Ios_Openmode(static_cast(__a) | static_cast(__b)); } 8657: 8657: inline constexpr _Ios_Openmode 8657: operator^(_Ios_Openmode __a, _Ios_Openmode __b) 8657: { return _Ios_Openmode(static_cast(__a) ^ static_cast(__b)); } 8657: 8657: inline constexpr _Ios_Openmode 8657: operator~(_Ios_Openmode __a) 8657: { return _Ios_Openmode(~static_cast(__a)); } 8657: 8657: inline const _Ios_Openmode& 8657: operator|=(_Ios_Openmode& __a, _Ios_Openmode __b) 8657: { return __a = __a | __b; } 8657: 8657: inline const _Ios_Openmode& 8657: operator&=(_Ios_Openmode& __a, _Ios_Openmode __b) 8657: { return __a = __a & __b; } 8657: 8657: inline const _Ios_Openmode& 8657: operator^=(_Ios_Openmode& __a, _Ios_Openmode __b) 8657: { return __a = __a ^ __b; } 8657: 8657: 8657: enum _Ios_Iostate 8657: { 8657: _S_goodbit = 0, 8657: _S_badbit = 1L << 0, 8657: _S_eofbit = 1L << 1, 8657: _S_failbit = 1L << 2, 8657: _S_ios_iostate_end = 1L << 16, 8657: _S_ios_iostate_max = 0x7fffffff, 8657: _S_ios_iostate_min = ~0x7fffffff 8657: }; 8657: 8657: inline constexpr _Ios_Iostate 8657: operator&(_Ios_Iostate __a, _Ios_Iostate __b) 8657: { return _Ios_Iostate(static_cast(__a) & static_cast(__b)); } 8657: 8657: inline constexpr _Ios_Iostate 8657: operator|(_Ios_Iostate __a, _Ios_Iostate __b) 8657: { return _Ios_Iostate(static_cast(__a) | static_cast(__b)); } 8657: 8657: inline constexpr _Ios_Iostate 8657: operator^(_Ios_Iostate __a, _Ios_Iostate __b) 8657: { return _Ios_Iostate(static_cast(__a) ^ static_cast(__b)); } 8657: 8657: inline constexpr _Ios_Iostate 8657: operator~(_Ios_Iostate __a) 8657: { return _Ios_Iostate(~static_cast(__a)); } 8657: 8657: inline const _Ios_Iostate& 8657: operator|=(_Ios_Iostate& __a, _Ios_Iostate __b) 8657: { return __a = __a | __b; } 8657: 8657: inline const _Ios_Iostate& 8657: operator&=(_Ios_Iostate& __a, _Ios_Iostate __b) 8657: { return __a = __a & __b; } 8657: 8657: inline const _Ios_Iostate& 8657: operator^=(_Ios_Iostate& __a, _Ios_Iostate __b) 8657: { return __a = __a ^ __b; } 8657: 8657: 8657: enum _Ios_Seekdir 8657: { 8657: _S_beg = 0, 8657: _S_cur = 1, 8657: _S_end = 2, 8657: _S_ios_seekdir_end = 1L << 16 8657: }; 8657: 8657: 8657: 8657: enum class io_errc { stream = 1 }; 8657: 8657: template <> struct is_error_code_enum : public true_type { }; 8657: 8657: const error_category& iostream_category() noexcept; 8657: 8657: inline error_code 8657: make_error_code(io_errc __e) noexcept 8657: { return error_code(static_cast(__e), iostream_category()); } 8657: 8657: inline error_condition 8657: make_error_condition(io_errc __e) noexcept 8657: { return error_condition(static_cast(__e), iostream_category()); } 8657: # 228 "/usr/include/c++/8/bits/ios_base.h" 3 8657: class ios_base 8657: { 8657: # 246 "/usr/include/c++/8/bits/ios_base.h" 3 8657: public: 8657: # 255 "/usr/include/c++/8/bits/ios_base.h" 3 8657: class __attribute ((__abi_tag__ ("cxx11"))) failure : public system_error 8657: { 8657: public: 8657: explicit 8657: failure(const string& __str); 8657: 8657: 8657: explicit 8657: failure(const string&, const error_code&); 8657: 8657: explicit 8657: failure(const char*, const error_code& = io_errc::stream); 8657: 8657: 8657: virtual 8657: ~failure() throw(); 8657: 8657: virtual const char* 8657: what() const throw(); 8657: }; 8657: # 323 "/usr/include/c++/8/bits/ios_base.h" 3 8657: typedef _Ios_Fmtflags fmtflags; 8657: 8657: 8657: static const fmtflags boolalpha = _S_boolalpha; 8657: 8657: 8657: static const fmtflags dec = _S_dec; 8657: 8657: 8657: static const fmtflags fixed = _S_fixed; 8657: 8657: 8657: static const fmtflags hex = _S_hex; 8657: 8657: 8657: 8657: 8657: static const fmtflags internal = _S_internal; 8657: 8657: 8657: 8657: static const fmtflags left = _S_left; 8657: 8657: 8657: static const fmtflags oct = _S_oct; 8657: 8657: 8657: 8657: static const fmtflags right = _S_right; 8657: 8657: 8657: static const fmtflags scientific = _S_scientific; 8657: 8657: 8657: 8657: static const fmtflags showbase = _S_showbase; 8657: 8657: 8657: 8657: static const fmtflags showpoint = _S_showpoint; 8657: 8657: 8657: static const fmtflags showpos = _S_showpos; 8657: 8657: 8657: static const fmtflags skipws = _S_skipws; 8657: 8657: 8657: static const fmtflags unitbuf = _S_unitbuf; 8657: 8657: 8657: 8657: static const fmtflags uppercase = _S_uppercase; 8657: 8657: 8657: static const fmtflags adjustfield = _S_adjustfield; 8657: 8657: 8657: static const fmtflags basefield = _S_basefield; 8657: 8657: 8657: static const fmtflags floatfield = _S_floatfield; 8657: # 398 "/usr/include/c++/8/bits/ios_base.h" 3 8657: typedef _Ios_Iostate iostate; 8657: 8657: 8657: 8657: static const iostate badbit = _S_badbit; 8657: 8657: 8657: static const iostate eofbit = _S_eofbit; 8657: 8657: 8657: 8657: 8657: static const iostate failbit = _S_failbit; 8657: 8657: 8657: static const iostate goodbit = _S_goodbit; 8657: # 429 "/usr/include/c++/8/bits/ios_base.h" 3 8657: typedef _Ios_Openmode openmode; 8657: 8657: 8657: static const openmode app = _S_app; 8657: 8657: 8657: static const openmode ate = _S_ate; 8657: 8657: 8657: 8657: 8657: static const openmode binary = _S_bin; 8657: 8657: 8657: static const openmode in = _S_in; 8657: 8657: 8657: static const openmode out = _S_out; 8657: 8657: 8657: static const openmode trunc = _S_trunc; 8657: # 461 "/usr/include/c++/8/bits/ios_base.h" 3 8657: typedef _Ios_Seekdir seekdir; 8657: 8657: 8657: static const seekdir beg = _S_beg; 8657: 8657: 8657: static const seekdir cur = _S_cur; 8657: 8657: 8657: static const seekdir end = _S_end; 8657: 8657: 8657: 8657: typedef int io_state; 8657: typedef int open_mode; 8657: typedef int seek_dir; 8657: 8657: typedef std::streampos streampos; 8657: typedef std::streamoff streamoff; 8657: # 489 "/usr/include/c++/8/bits/ios_base.h" 3 8657: enum event 8657: { 8657: erase_event, 8657: imbue_event, 8657: copyfmt_event 8657: }; 8657: # 506 "/usr/include/c++/8/bits/ios_base.h" 3 8657: typedef void (*event_callback) (event __e, ios_base& __b, int __i); 8657: # 518 "/usr/include/c++/8/bits/ios_base.h" 3 8657: void 8657: register_callback(event_callback __fn, int __index); 8657: 8657: protected: 8657: streamsize _M_precision; 8657: streamsize _M_width; 8657: fmtflags _M_flags; 8657: iostate _M_exception; 8657: iostate _M_streambuf_state; 8657: 8657: 8657: 8657: struct _Callback_list 8657: { 8657: 8657: _Callback_list* _M_next; 8657: ios_base::event_callback _M_fn; 8657: int _M_index; 8657: _Atomic_word _M_refcount; 8657: 8657: _Callback_list(ios_base::event_callback __fn, int __index, 8657: _Callback_list* __cb) 8657: : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { } 8657: 8657: void 8657: _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 8657: 8657: 8657: int 8657: _M_remove_reference() 8657: { 8657: 8657: ; 8657: int __res = __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1); 8657: if (__res == 0) 8657: { 8657: ; 8657: } 8657: return __res; 8657: } 8657: }; 8657: 8657: _Callback_list* _M_callbacks; 8657: 8657: void 8657: _M_call_callbacks(event __ev) throw(); 8657: 8657: void 8657: _M_dispose_callbacks(void) throw(); 8657: 8657: 8657: struct _Words 8657: { 8657: void* _M_pword; 8657: long _M_iword; 8657: _Words() : _M_pword(0), _M_iword(0) { } 8657: }; 8657: 8657: 8657: _Words _M_word_zero; 8657: 8657: 8657: 8657: enum { _S_local_word_size = 8 }; 8657: _Words _M_local_word[_S_local_word_size]; 8657: 8657: 8657: int _M_word_size; 8657: _Words* _M_word; 8657: 8657: _Words& 8657: _M_grow_words(int __index, bool __iword); 8657: 8657: 8657: locale _M_ios_locale; 8657: 8657: void 8657: _M_init() throw(); 8657: 8657: public: 8657: 8657: 8657: 8657: 8657: 8657: class Init 8657: { 8657: friend class ios_base; 8657: public: 8657: Init(); 8657: ~Init(); 8657: 8657: private: 8657: static _Atomic_word _S_refcount; 8657: static bool _S_synced_with_stdio; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: fmtflags 8657: flags() const 8657: { return _M_flags; } 8657: # 631 "/usr/include/c++/8/bits/ios_base.h" 3 8657: fmtflags 8657: flags(fmtflags __fmtfl) 8657: { 8657: fmtflags __old = _M_flags; 8657: _M_flags = __fmtfl; 8657: return __old; 8657: } 8657: # 647 "/usr/include/c++/8/bits/ios_base.h" 3 8657: fmtflags 8657: setf(fmtflags __fmtfl) 8657: { 8657: fmtflags __old = _M_flags; 8657: _M_flags |= __fmtfl; 8657: return __old; 8657: } 8657: # 664 "/usr/include/c++/8/bits/ios_base.h" 3 8657: fmtflags 8657: setf(fmtflags __fmtfl, fmtflags __mask) 8657: { 8657: fmtflags __old = _M_flags; 8657: _M_flags &= ~__mask; 8657: _M_flags |= (__fmtfl & __mask); 8657: return __old; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: void 8657: unsetf(fmtflags __mask) 8657: { _M_flags &= ~__mask; } 8657: # 690 "/usr/include/c++/8/bits/ios_base.h" 3 8657: streamsize 8657: precision() const 8657: { return _M_precision; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: streamsize 8657: precision(streamsize __prec) 8657: { 8657: streamsize __old = _M_precision; 8657: _M_precision = __prec; 8657: return __old; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: streamsize 8657: width() const 8657: { return _M_width; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: streamsize 8657: width(streamsize __wide) 8657: { 8657: streamsize __old = _M_width; 8657: _M_width = __wide; 8657: return __old; 8657: } 8657: # 741 "/usr/include/c++/8/bits/ios_base.h" 3 8657: static bool 8657: sync_with_stdio(bool __sync = true); 8657: # 753 "/usr/include/c++/8/bits/ios_base.h" 3 8657: locale 8657: imbue(const locale& __loc) throw(); 8657: # 764 "/usr/include/c++/8/bits/ios_base.h" 3 8657: locale 8657: getloc() const 8657: { return _M_ios_locale; } 8657: # 775 "/usr/include/c++/8/bits/ios_base.h" 3 8657: const locale& 8657: _M_getloc() const 8657: { return _M_ios_locale; } 8657: # 794 "/usr/include/c++/8/bits/ios_base.h" 3 8657: static int 8657: xalloc() throw(); 8657: # 810 "/usr/include/c++/8/bits/ios_base.h" 3 8657: long& 8657: iword(int __ix) 8657: { 8657: _Words& __word = (__ix < _M_word_size) 8657: ? _M_word[__ix] : _M_grow_words(__ix, true); 8657: return __word._M_iword; 8657: } 8657: # 831 "/usr/include/c++/8/bits/ios_base.h" 3 8657: void*& 8657: pword(int __ix) 8657: { 8657: _Words& __word = (__ix < _M_word_size) 8657: ? _M_word[__ix] : _M_grow_words(__ix, false); 8657: return __word._M_pword; 8657: } 8657: # 848 "/usr/include/c++/8/bits/ios_base.h" 3 8657: virtual ~ios_base(); 8657: 8657: protected: 8657: ios_base() throw (); 8657: # 862 "/usr/include/c++/8/bits/ios_base.h" 3 8657: public: 8657: ios_base(const ios_base&) = delete; 8657: 8657: ios_base& 8657: operator=(const ios_base&) = delete; 8657: 8657: protected: 8657: void 8657: _M_move(ios_base&) noexcept; 8657: 8657: void 8657: _M_swap(ios_base& __rhs) noexcept; 8657: 8657: }; 8657: 8657: 8657: 8657: inline ios_base& 8657: boolalpha(ios_base& __base) 8657: { 8657: __base.setf(ios_base::boolalpha); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: noboolalpha(ios_base& __base) 8657: { 8657: __base.unsetf(ios_base::boolalpha); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: showbase(ios_base& __base) 8657: { 8657: __base.setf(ios_base::showbase); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: noshowbase(ios_base& __base) 8657: { 8657: __base.unsetf(ios_base::showbase); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: showpoint(ios_base& __base) 8657: { 8657: __base.setf(ios_base::showpoint); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: noshowpoint(ios_base& __base) 8657: { 8657: __base.unsetf(ios_base::showpoint); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: showpos(ios_base& __base) 8657: { 8657: __base.setf(ios_base::showpos); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: noshowpos(ios_base& __base) 8657: { 8657: __base.unsetf(ios_base::showpos); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: skipws(ios_base& __base) 8657: { 8657: __base.setf(ios_base::skipws); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: noskipws(ios_base& __base) 8657: { 8657: __base.unsetf(ios_base::skipws); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: uppercase(ios_base& __base) 8657: { 8657: __base.setf(ios_base::uppercase); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: nouppercase(ios_base& __base) 8657: { 8657: __base.unsetf(ios_base::uppercase); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: unitbuf(ios_base& __base) 8657: { 8657: __base.setf(ios_base::unitbuf); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: nounitbuf(ios_base& __base) 8657: { 8657: __base.unsetf(ios_base::unitbuf); 8657: return __base; 8657: } 8657: 8657: 8657: 8657: inline ios_base& 8657: internal(ios_base& __base) 8657: { 8657: __base.setf(ios_base::internal, ios_base::adjustfield); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: left(ios_base& __base) 8657: { 8657: __base.setf(ios_base::left, ios_base::adjustfield); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: right(ios_base& __base) 8657: { 8657: __base.setf(ios_base::right, ios_base::adjustfield); 8657: return __base; 8657: } 8657: 8657: 8657: 8657: inline ios_base& 8657: dec(ios_base& __base) 8657: { 8657: __base.setf(ios_base::dec, ios_base::basefield); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: hex(ios_base& __base) 8657: { 8657: __base.setf(ios_base::hex, ios_base::basefield); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: oct(ios_base& __base) 8657: { 8657: __base.setf(ios_base::oct, ios_base::basefield); 8657: return __base; 8657: } 8657: 8657: 8657: 8657: inline ios_base& 8657: fixed(ios_base& __base) 8657: { 8657: __base.setf(ios_base::fixed, ios_base::floatfield); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: scientific(ios_base& __base) 8657: { 8657: __base.setf(ios_base::scientific, ios_base::floatfield); 8657: return __base; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: inline ios_base& 8657: hexfloat(ios_base& __base) 8657: { 8657: __base.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield); 8657: return __base; 8657: } 8657: 8657: 8657: inline ios_base& 8657: defaultfloat(ios_base& __base) 8657: { 8657: __base.unsetf(ios_base::floatfield); 8657: return __base; 8657: } 8657: 8657: 8657: 8657: } 8657: # 43 "/usr/include/c++/8/ios" 2 3 8657: # 1 "/usr/include/c++/8/streambuf" 1 3 8657: # 36 "/usr/include/c++/8/streambuf" 3 8657: 8657: # 37 "/usr/include/c++/8/streambuf" 3 8657: # 45 "/usr/include/c++/8/streambuf" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: template 8657: streamsize 8657: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*, 8657: basic_streambuf<_CharT, _Traits>*, bool&); 8657: # 121 "/usr/include/c++/8/streambuf" 3 8657: template 8657: class basic_streambuf 8657: { 8657: public: 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef _CharT char_type; 8657: typedef _Traits traits_type; 8657: typedef typename traits_type::int_type int_type; 8657: typedef typename traits_type::pos_type pos_type; 8657: typedef typename traits_type::off_type off_type; 8657: 8657: 8657: 8657: 8657: typedef basic_streambuf __streambuf_type; 8657: 8657: 8657: friend class basic_ios; 8657: friend class basic_istream; 8657: friend class basic_ostream; 8657: friend class istreambuf_iterator; 8657: friend class ostreambuf_iterator; 8657: 8657: friend streamsize 8657: __copy_streambufs_eof<>(basic_streambuf*, basic_streambuf*, bool&); 8657: 8657: template 8657: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8657: _CharT2*>::__type 8657: __copy_move_a2(istreambuf_iterator<_CharT2>, 8657: istreambuf_iterator<_CharT2>, _CharT2*); 8657: 8657: template 8657: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8657: istreambuf_iterator<_CharT2> >::__type 8657: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8657: const _CharT2&); 8657: 8657: template 8657: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8657: void>::__type 8657: advance(istreambuf_iterator<_CharT2>&, _Distance); 8657: 8657: template 8657: friend basic_istream<_CharT2, _Traits2>& 8657: operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*); 8657: 8657: template 8657: friend basic_istream<_CharT2, _Traits2>& 8657: operator>>(basic_istream<_CharT2, _Traits2>&, 8657: basic_string<_CharT2, _Traits2, _Alloc>&); 8657: 8657: template 8657: friend basic_istream<_CharT2, _Traits2>& 8657: getline(basic_istream<_CharT2, _Traits2>&, 8657: basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2); 8657: 8657: protected: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: char_type* _M_in_beg; 8657: char_type* _M_in_cur; 8657: char_type* _M_in_end; 8657: char_type* _M_out_beg; 8657: char_type* _M_out_cur; 8657: char_type* _M_out_end; 8657: 8657: 8657: locale _M_buf_locale; 8657: 8657: public: 8657: 8657: virtual 8657: ~basic_streambuf() 8657: { } 8657: # 215 "/usr/include/c++/8/streambuf" 3 8657: locale 8657: pubimbue(const locale& __loc) 8657: { 8657: locale __tmp(this->getloc()); 8657: this->imbue(__loc); 8657: _M_buf_locale = __loc; 8657: return __tmp; 8657: } 8657: # 232 "/usr/include/c++/8/streambuf" 3 8657: locale 8657: getloc() const 8657: { return _M_buf_locale; } 8657: # 245 "/usr/include/c++/8/streambuf" 3 8657: basic_streambuf* 8657: pubsetbuf(char_type* __s, streamsize __n) 8657: { return this->setbuf(__s, __n); } 8657: # 257 "/usr/include/c++/8/streambuf" 3 8657: pos_type 8657: pubseekoff(off_type __off, ios_base::seekdir __way, 8657: ios_base::openmode __mode = ios_base::in | ios_base::out) 8657: { return this->seekoff(__off, __way, __mode); } 8657: # 269 "/usr/include/c++/8/streambuf" 3 8657: pos_type 8657: pubseekpos(pos_type __sp, 8657: ios_base::openmode __mode = ios_base::in | ios_base::out) 8657: { return this->seekpos(__sp, __mode); } 8657: 8657: 8657: 8657: 8657: int 8657: pubsync() { return this->sync(); } 8657: # 290 "/usr/include/c++/8/streambuf" 3 8657: streamsize 8657: in_avail() 8657: { 8657: const streamsize __ret = this->egptr() - this->gptr(); 8657: return __ret ? __ret : this->showmanyc(); 8657: } 8657: # 304 "/usr/include/c++/8/streambuf" 3 8657: int_type 8657: snextc() 8657: { 8657: int_type __ret = traits_type::eof(); 8657: if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(), 8657: __ret), true)) 8657: __ret = this->sgetc(); 8657: return __ret; 8657: } 8657: # 322 "/usr/include/c++/8/streambuf" 3 8657: int_type 8657: sbumpc() 8657: { 8657: int_type __ret; 8657: if (__builtin_expect(this->gptr() < this->egptr(), true)) 8657: { 8657: __ret = traits_type::to_int_type(*this->gptr()); 8657: this->gbump(1); 8657: } 8657: else 8657: __ret = this->uflow(); 8657: return __ret; 8657: } 8657: # 344 "/usr/include/c++/8/streambuf" 3 8657: int_type 8657: sgetc() 8657: { 8657: int_type __ret; 8657: if (__builtin_expect(this->gptr() < this->egptr(), true)) 8657: __ret = traits_type::to_int_type(*this->gptr()); 8657: else 8657: __ret = this->underflow(); 8657: return __ret; 8657: } 8657: # 363 "/usr/include/c++/8/streambuf" 3 8657: streamsize 8657: sgetn(char_type* __s, streamsize __n) 8657: { return this->xsgetn(__s, __n); } 8657: # 378 "/usr/include/c++/8/streambuf" 3 8657: int_type 8657: sputbackc(char_type __c) 8657: { 8657: int_type __ret; 8657: const bool __testpos = this->eback() < this->gptr(); 8657: if (__builtin_expect(!__testpos || 8657: !traits_type::eq(__c, this->gptr()[-1]), false)) 8657: __ret = this->pbackfail(traits_type::to_int_type(__c)); 8657: else 8657: { 8657: this->gbump(-1); 8657: __ret = traits_type::to_int_type(*this->gptr()); 8657: } 8657: return __ret; 8657: } 8657: # 403 "/usr/include/c++/8/streambuf" 3 8657: int_type 8657: sungetc() 8657: { 8657: int_type __ret; 8657: if (__builtin_expect(this->eback() < this->gptr(), true)) 8657: { 8657: this->gbump(-1); 8657: __ret = traits_type::to_int_type(*this->gptr()); 8657: } 8657: else 8657: __ret = this->pbackfail(); 8657: return __ret; 8657: } 8657: # 430 "/usr/include/c++/8/streambuf" 3 8657: int_type 8657: sputc(char_type __c) 8657: { 8657: int_type __ret; 8657: if (__builtin_expect(this->pptr() < this->epptr(), true)) 8657: { 8657: *this->pptr() = __c; 8657: this->pbump(1); 8657: __ret = traits_type::to_int_type(__c); 8657: } 8657: else 8657: __ret = this->overflow(traits_type::to_int_type(__c)); 8657: return __ret; 8657: } 8657: # 456 "/usr/include/c++/8/streambuf" 3 8657: streamsize 8657: sputn(const char_type* __s, streamsize __n) 8657: { return this->xsputn(__s, __n); } 8657: 8657: protected: 8657: # 470 "/usr/include/c++/8/streambuf" 3 8657: basic_streambuf() 8657: : _M_in_beg(0), _M_in_cur(0), _M_in_end(0), 8657: _M_out_beg(0), _M_out_cur(0), _M_out_end(0), 8657: _M_buf_locale(locale()) 8657: { } 8657: # 488 "/usr/include/c++/8/streambuf" 3 8657: char_type* 8657: eback() const { return _M_in_beg; } 8657: 8657: char_type* 8657: gptr() const { return _M_in_cur; } 8657: 8657: char_type* 8657: egptr() const { return _M_in_end; } 8657: # 504 "/usr/include/c++/8/streambuf" 3 8657: void 8657: gbump(int __n) { _M_in_cur += __n; } 8657: # 515 "/usr/include/c++/8/streambuf" 3 8657: void 8657: setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) 8657: { 8657: _M_in_beg = __gbeg; 8657: _M_in_cur = __gnext; 8657: _M_in_end = __gend; 8657: } 8657: # 535 "/usr/include/c++/8/streambuf" 3 8657: char_type* 8657: pbase() const { return _M_out_beg; } 8657: 8657: char_type* 8657: pptr() const { return _M_out_cur; } 8657: 8657: char_type* 8657: epptr() const { return _M_out_end; } 8657: # 551 "/usr/include/c++/8/streambuf" 3 8657: void 8657: pbump(int __n) { _M_out_cur += __n; } 8657: # 561 "/usr/include/c++/8/streambuf" 3 8657: void 8657: setp(char_type* __pbeg, char_type* __pend) 8657: { 8657: _M_out_beg = _M_out_cur = __pbeg; 8657: _M_out_end = __pend; 8657: } 8657: # 582 "/usr/include/c++/8/streambuf" 3 8657: virtual void 8657: imbue(const locale& __loc __attribute__ ((__unused__))) 8657: { } 8657: # 597 "/usr/include/c++/8/streambuf" 3 8657: virtual basic_streambuf* 8657: setbuf(char_type*, streamsize) 8657: { return this; } 8657: # 608 "/usr/include/c++/8/streambuf" 3 8657: virtual pos_type 8657: seekoff(off_type, ios_base::seekdir, 8657: ios_base::openmode = ios_base::in | ios_base::out) 8657: { return pos_type(off_type(-1)); } 8657: # 620 "/usr/include/c++/8/streambuf" 3 8657: virtual pos_type 8657: seekpos(pos_type, 8657: ios_base::openmode = ios_base::in | ios_base::out) 8657: { return pos_type(off_type(-1)); } 8657: # 633 "/usr/include/c++/8/streambuf" 3 8657: virtual int 8657: sync() { return 0; } 8657: # 655 "/usr/include/c++/8/streambuf" 3 8657: virtual streamsize 8657: showmanyc() { return 0; } 8657: # 671 "/usr/include/c++/8/streambuf" 3 8657: virtual streamsize 8657: xsgetn(char_type* __s, streamsize __n); 8657: # 693 "/usr/include/c++/8/streambuf" 3 8657: virtual int_type 8657: underflow() 8657: { return traits_type::eof(); } 8657: # 706 "/usr/include/c++/8/streambuf" 3 8657: virtual int_type 8657: uflow() 8657: { 8657: int_type __ret = traits_type::eof(); 8657: const bool __testeof = traits_type::eq_int_type(this->underflow(), 8657: __ret); 8657: if (!__testeof) 8657: { 8657: __ret = traits_type::to_int_type(*this->gptr()); 8657: this->gbump(1); 8657: } 8657: return __ret; 8657: } 8657: # 730 "/usr/include/c++/8/streambuf" 3 8657: virtual int_type 8657: pbackfail(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 8657: { return traits_type::eof(); } 8657: # 748 "/usr/include/c++/8/streambuf" 3 8657: virtual streamsize 8657: xsputn(const char_type* __s, streamsize __n); 8657: # 774 "/usr/include/c++/8/streambuf" 3 8657: virtual int_type 8657: overflow(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 8657: { return traits_type::eof(); } 8657: 8657: 8657: 8657: public: 8657: # 790 "/usr/include/c++/8/streambuf" 3 8657: [[__deprecated__("stossc is deprecated, use sbumpc instead")]] 8657: 8657: void 8657: stossc() 8657: { 8657: if (this->gptr() < this->egptr()) 8657: this->gbump(1); 8657: else 8657: this->uflow(); 8657: } 8657: 8657: 8657: 8657: void 8657: __safe_gbump(streamsize __n) { _M_in_cur += __n; } 8657: 8657: void 8657: __safe_pbump(streamsize __n) { _M_out_cur += __n; } 8657: 8657: 8657: 8657: 8657: protected: 8657: 8657: basic_streambuf(const basic_streambuf&); 8657: 8657: basic_streambuf& 8657: operator=(const basic_streambuf&); 8657: 8657: 8657: void 8657: swap(basic_streambuf& __sb) 8657: { 8657: std::swap(_M_in_beg, __sb._M_in_beg); 8657: std::swap(_M_in_cur, __sb._M_in_cur); 8657: std::swap(_M_in_end, __sb._M_in_end); 8657: std::swap(_M_out_beg, __sb._M_out_beg); 8657: std::swap(_M_out_cur, __sb._M_out_cur); 8657: std::swap(_M_out_end, __sb._M_out_end); 8657: std::swap(_M_buf_locale, __sb._M_buf_locale); 8657: } 8657: 8657: }; 8657: 8657: 8657: template 8657: std::basic_streambuf<_CharT, _Traits>:: 8657: basic_streambuf(const basic_streambuf&) = default; 8657: 8657: template 8657: std::basic_streambuf<_CharT, _Traits>& 8657: std::basic_streambuf<_CharT, _Traits>:: 8657: operator=(const basic_streambuf&) = default; 8657: 8657: 8657: 8657: template<> 8657: streamsize 8657: __copy_streambufs_eof(basic_streambuf* __sbin, 8657: basic_streambuf* __sbout, bool& __ineof); 8657: 8657: template<> 8657: streamsize 8657: __copy_streambufs_eof(basic_streambuf* __sbin, 8657: basic_streambuf* __sbout, bool& __ineof); 8657: 8657: 8657: 8657: 8657: 8657: } 8657: 8657: # 1 "/usr/include/c++/8/bits/streambuf.tcc" 1 3 8657: # 37 "/usr/include/c++/8/bits/streambuf.tcc" 3 8657: 8657: # 38 "/usr/include/c++/8/bits/streambuf.tcc" 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: template 8657: streamsize 8657: basic_streambuf<_CharT, _Traits>:: 8657: xsgetn(char_type* __s, streamsize __n) 8657: { 8657: streamsize __ret = 0; 8657: while (__ret < __n) 8657: { 8657: const streamsize __buf_len = this->egptr() - this->gptr(); 8657: if (__buf_len) 8657: { 8657: const streamsize __remaining = __n - __ret; 8657: const streamsize __len = std::min(__buf_len, __remaining); 8657: traits_type::copy(__s, this->gptr(), __len); 8657: __ret += __len; 8657: __s += __len; 8657: this->__safe_gbump(__len); 8657: } 8657: 8657: if (__ret < __n) 8657: { 8657: const int_type __c = this->uflow(); 8657: if (!traits_type::eq_int_type(__c, traits_type::eof())) 8657: { 8657: traits_type::assign(*__s++, traits_type::to_char_type(__c)); 8657: ++__ret; 8657: } 8657: else 8657: break; 8657: } 8657: } 8657: return __ret; 8657: } 8657: 8657: template 8657: streamsize 8657: basic_streambuf<_CharT, _Traits>:: 8657: xsputn(const char_type* __s, streamsize __n) 8657: { 8657: streamsize __ret = 0; 8657: while (__ret < __n) 8657: { 8657: const streamsize __buf_len = this->epptr() - this->pptr(); 8657: if (__buf_len) 8657: { 8657: const streamsize __remaining = __n - __ret; 8657: const streamsize __len = std::min(__buf_len, __remaining); 8657: traits_type::copy(this->pptr(), __s, __len); 8657: __ret += __len; 8657: __s += __len; 8657: this->__safe_pbump(__len); 8657: } 8657: 8657: if (__ret < __n) 8657: { 8657: int_type __c = this->overflow(traits_type::to_int_type(*__s)); 8657: if (!traits_type::eq_int_type(__c, traits_type::eof())) 8657: { 8657: ++__ret; 8657: ++__s; 8657: } 8657: else 8657: break; 8657: } 8657: } 8657: return __ret; 8657: } 8657: 8657: 8657: 8657: 8657: template 8657: streamsize 8657: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin, 8657: basic_streambuf<_CharT, _Traits>* __sbout, 8657: bool& __ineof) 8657: { 8657: streamsize __ret = 0; 8657: __ineof = true; 8657: typename _Traits::int_type __c = __sbin->sgetc(); 8657: while (!_Traits::eq_int_type(__c, _Traits::eof())) 8657: { 8657: __c = __sbout->sputc(_Traits::to_char_type(__c)); 8657: if (_Traits::eq_int_type(__c, _Traits::eof())) 8657: { 8657: __ineof = false; 8657: break; 8657: } 8657: ++__ret; 8657: __c = __sbin->snextc(); 8657: } 8657: return __ret; 8657: } 8657: 8657: template 8657: inline streamsize 8657: __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin, 8657: basic_streambuf<_CharT, _Traits>* __sbout) 8657: { 8657: bool __ineof; 8657: return __copy_streambufs_eof(__sbin, __sbout, __ineof); 8657: } 8657: 8657: 8657: 8657: 8657: extern template class basic_streambuf; 8657: extern template 8657: streamsize 8657: __copy_streambufs(basic_streambuf*, 8657: basic_streambuf*); 8657: extern template 8657: streamsize 8657: __copy_streambufs_eof(basic_streambuf*, 8657: basic_streambuf*, bool&); 8657: 8657: 8657: extern template class basic_streambuf; 8657: extern template 8657: streamsize 8657: __copy_streambufs(basic_streambuf*, 8657: basic_streambuf*); 8657: extern template 8657: streamsize 8657: __copy_streambufs_eof(basic_streambuf*, 8657: basic_streambuf*, bool&); 8657: 8657: 8657: 8657: 8657: } 8657: # 863 "/usr/include/c++/8/streambuf" 2 3 8657: # 44 "/usr/include/c++/8/ios" 2 3 8657: # 1 "/usr/include/c++/8/bits/basic_ios.h" 1 3 8657: # 33 "/usr/include/c++/8/bits/basic_ios.h" 3 8657: 8657: # 34 "/usr/include/c++/8/bits/basic_ios.h" 3 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/locale_facets.h" 1 3 8657: # 37 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: 8657: # 38 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: 8657: # 1 "/usr/include/c++/8/cwctype" 1 3 8657: # 39 "/usr/include/c++/8/cwctype" 3 8657: 8657: # 40 "/usr/include/c++/8/cwctype" 3 8657: # 50 "/usr/include/c++/8/cwctype" 3 8657: # 1 "/usr/include/wctype.h" 1 3 4 8657: # 38 "/usr/include/wctype.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/wctype-wchar.h" 1 3 4 8657: # 38 "/usr/include/arm-linux-gnueabihf/bits/wctype-wchar.h" 3 4 8657: typedef unsigned long int wctype_t; 8657: # 56 "/usr/include/arm-linux-gnueabihf/bits/wctype-wchar.h" 3 4 8657: enum 8657: { 8657: __ISwupper = 0, 8657: __ISwlower = 1, 8657: __ISwalpha = 2, 8657: __ISwdigit = 3, 8657: __ISwxdigit = 4, 8657: __ISwspace = 5, 8657: __ISwprint = 6, 8657: __ISwgraph = 7, 8657: __ISwblank = 8, 8657: __ISwcntrl = 9, 8657: __ISwpunct = 10, 8657: __ISwalnum = 11, 8657: 8657: _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))), 8657: _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))), 8657: _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))), 8657: _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))), 8657: _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))), 8657: _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))), 8657: _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))), 8657: _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))), 8657: _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))), 8657: _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))), 8657: _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))), 8657: _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24)))) 8657: }; 8657: 8657: 8657: 8657: extern "C" { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int iswalnum (wint_t __wc) throw (); 8657: 8657: 8657: 8657: 8657: 8657: extern int iswalpha (wint_t __wc) throw (); 8657: 8657: 8657: extern int iswcntrl (wint_t __wc) throw (); 8657: 8657: 8657: 8657: extern int iswdigit (wint_t __wc) throw (); 8657: 8657: 8657: 8657: extern int iswgraph (wint_t __wc) throw (); 8657: 8657: 8657: 8657: 8657: extern int iswlower (wint_t __wc) throw (); 8657: 8657: 8657: extern int iswprint (wint_t __wc) throw (); 8657: 8657: 8657: 8657: 8657: extern int iswpunct (wint_t __wc) throw (); 8657: 8657: 8657: 8657: 8657: extern int iswspace (wint_t __wc) throw (); 8657: 8657: 8657: 8657: 8657: extern int iswupper (wint_t __wc) throw (); 8657: 8657: 8657: 8657: 8657: extern int iswxdigit (wint_t __wc) throw (); 8657: 8657: 8657: 8657: 8657: 8657: extern int iswblank (wint_t __wc) throw (); 8657: # 155 "/usr/include/arm-linux-gnueabihf/bits/wctype-wchar.h" 3 4 8657: extern wctype_t wctype (const char *__property) throw (); 8657: 8657: 8657: 8657: extern int iswctype (wint_t __wc, wctype_t __desc) throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern wint_t towlower (wint_t __wc) throw (); 8657: 8657: 8657: extern wint_t towupper (wint_t __wc) throw (); 8657: 8657: } 8657: # 39 "/usr/include/wctype.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: extern "C" { 8657: 8657: 8657: 8657: typedef const __int32_t *wctrans_t; 8657: 8657: 8657: 8657: extern wctrans_t wctrans (const char *__property) throw (); 8657: 8657: 8657: extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern int iswalnum_l (wint_t __wc, locale_t __locale) throw (); 8657: 8657: 8657: 8657: 8657: 8657: extern int iswalpha_l (wint_t __wc, locale_t __locale) throw (); 8657: 8657: 8657: extern int iswcntrl_l (wint_t __wc, locale_t __locale) throw (); 8657: 8657: 8657: 8657: extern int iswdigit_l (wint_t __wc, locale_t __locale) throw (); 8657: 8657: 8657: 8657: extern int iswgraph_l (wint_t __wc, locale_t __locale) throw (); 8657: 8657: 8657: 8657: 8657: extern int iswlower_l (wint_t __wc, locale_t __locale) throw (); 8657: 8657: 8657: extern int iswprint_l (wint_t __wc, locale_t __locale) throw (); 8657: 8657: 8657: 8657: 8657: extern int iswpunct_l (wint_t __wc, locale_t __locale) throw (); 8657: 8657: 8657: 8657: 8657: extern int iswspace_l (wint_t __wc, locale_t __locale) throw (); 8657: 8657: 8657: 8657: 8657: extern int iswupper_l (wint_t __wc, locale_t __locale) throw (); 8657: 8657: 8657: 8657: 8657: extern int iswxdigit_l (wint_t __wc, locale_t __locale) throw (); 8657: 8657: 8657: 8657: 8657: extern int iswblank_l (wint_t __wc, locale_t __locale) throw (); 8657: 8657: 8657: 8657: extern wctype_t wctype_l (const char *__property, locale_t __locale) 8657: throw (); 8657: 8657: 8657: 8657: extern int iswctype_l (wint_t __wc, wctype_t __desc, locale_t __locale) 8657: throw (); 8657: 8657: 8657: 8657: 8657: 8657: 8657: extern wint_t towlower_l (wint_t __wc, locale_t __locale) throw (); 8657: 8657: 8657: extern wint_t towupper_l (wint_t __wc, locale_t __locale) throw (); 8657: 8657: 8657: 8657: extern wctrans_t wctrans_l (const char *__property, locale_t __locale) 8657: throw (); 8657: 8657: 8657: extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc, 8657: locale_t __locale) throw (); 8657: 8657: 8657: 8657: } 8657: # 51 "/usr/include/c++/8/cwctype" 2 3 8657: # 80 "/usr/include/c++/8/cwctype" 3 8657: namespace std 8657: { 8657: using ::wctrans_t; 8657: using ::wctype_t; 8657: using ::wint_t; 8657: 8657: using ::iswalnum; 8657: using ::iswalpha; 8657: 8657: using ::iswblank; 8657: 8657: using ::iswcntrl; 8657: using ::iswctype; 8657: using ::iswdigit; 8657: using ::iswgraph; 8657: using ::iswlower; 8657: using ::iswprint; 8657: using ::iswpunct; 8657: using ::iswspace; 8657: using ::iswupper; 8657: using ::iswxdigit; 8657: using ::towctrans; 8657: using ::towlower; 8657: using ::towupper; 8657: using ::wctrans; 8657: using ::wctype; 8657: } 8657: # 40 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8657: # 1 "/usr/include/c++/8/cctype" 1 3 8657: # 39 "/usr/include/c++/8/cctype" 3 8657: 8657: # 40 "/usr/include/c++/8/cctype" 3 8657: # 41 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8657: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/ctype_base.h" 1 3 8657: # 36 "/usr/include/arm-linux-gnueabihf/c++/8/bits/ctype_base.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: struct ctype_base 8657: { 8657: 8657: typedef const int* __to_type; 8657: 8657: 8657: 8657: typedef unsigned short mask; 8657: static const mask upper = _ISupper; 8657: static const mask lower = _ISlower; 8657: static const mask alpha = _ISalpha; 8657: static const mask digit = _ISdigit; 8657: static const mask xdigit = _ISxdigit; 8657: static const mask space = _ISspace; 8657: static const mask print = _ISprint; 8657: static const mask graph = _ISalpha | _ISdigit | _ISpunct; 8657: static const mask cntrl = _IScntrl; 8657: static const mask punct = _ISpunct; 8657: static const mask alnum = _ISalpha | _ISdigit; 8657: 8657: static const mask blank = _ISblank; 8657: 8657: }; 8657: 8657: 8657: } 8657: # 42 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8657: 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/streambuf_iterator.h" 1 3 8657: # 33 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8657: 8657: # 34 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8657: 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 49 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8657: template 8657: class istreambuf_iterator 8657: : public iterator 8657: 8657: 8657: 8657: { 8657: public: 8657: 8657: 8657: 8657: typedef _CharT char_type; 8657: typedef _Traits traits_type; 8657: typedef typename _Traits::int_type int_type; 8657: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 8657: typedef basic_istream<_CharT, _Traits> istream_type; 8657: 8657: 8657: template 8657: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8657: ostreambuf_iterator<_CharT2> >::__type 8657: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8657: ostreambuf_iterator<_CharT2>); 8657: 8657: template 8657: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8657: _CharT2*>::__type 8657: __copy_move_a2(istreambuf_iterator<_CharT2>, 8657: istreambuf_iterator<_CharT2>, _CharT2*); 8657: 8657: template 8657: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8657: istreambuf_iterator<_CharT2> >::__type 8657: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8657: const _CharT2&); 8657: 8657: template 8657: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8657: void>::__type 8657: advance(istreambuf_iterator<_CharT2>&, _Distance); 8657: 8657: private: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: mutable streambuf_type* _M_sbuf; 8657: int_type _M_c; 8657: 8657: public: 8657: 8657: constexpr istreambuf_iterator() noexcept 8657: : _M_sbuf(0), _M_c(traits_type::eof()) { } 8657: 8657: 8657: istreambuf_iterator(const istreambuf_iterator&) noexcept = default; 8657: 8657: ~istreambuf_iterator() = default; 8657: 8657: 8657: 8657: istreambuf_iterator(istream_type& __s) noexcept 8657: : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { } 8657: 8657: 8657: istreambuf_iterator(streambuf_type* __s) noexcept 8657: : _M_sbuf(__s), _M_c(traits_type::eof()) { } 8657: 8657: 8657: 8657: 8657: char_type 8657: operator*() const 8657: { 8657: int_type __c = _M_get(); 8657: # 139 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8657: return traits_type::to_char_type(__c); 8657: } 8657: 8657: 8657: istreambuf_iterator& 8657: operator++() 8657: { 8657: 8657: 8657: 8657: ; 8657: 8657: _M_sbuf->sbumpc(); 8657: _M_c = traits_type::eof(); 8657: return *this; 8657: } 8657: 8657: 8657: istreambuf_iterator 8657: operator++(int) 8657: { 8657: 8657: 8657: 8657: ; 8657: 8657: istreambuf_iterator __old = *this; 8657: __old._M_c = _M_sbuf->sbumpc(); 8657: _M_c = traits_type::eof(); 8657: return __old; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: bool 8657: equal(const istreambuf_iterator& __b) const 8657: { return _M_at_eof() == __b._M_at_eof(); } 8657: 8657: private: 8657: int_type 8657: _M_get() const 8657: { 8657: int_type __ret = _M_c; 8657: if (_M_sbuf && _S_is_eof(__ret) && _S_is_eof(__ret = _M_sbuf->sgetc())) 8657: _M_sbuf = 0; 8657: return __ret; 8657: } 8657: 8657: bool 8657: _M_at_eof() const 8657: { return _S_is_eof(_M_get()); } 8657: 8657: static bool 8657: _S_is_eof(int_type __c) 8657: { 8657: const int_type __eof = traits_type::eof(); 8657: return traits_type::eq_int_type(__c, __eof); 8657: } 8657: }; 8657: 8657: template 8657: inline bool 8657: operator==(const istreambuf_iterator<_CharT, _Traits>& __a, 8657: const istreambuf_iterator<_CharT, _Traits>& __b) 8657: { return __a.equal(__b); } 8657: 8657: template 8657: inline bool 8657: operator!=(const istreambuf_iterator<_CharT, _Traits>& __a, 8657: const istreambuf_iterator<_CharT, _Traits>& __b) 8657: { return !__a.equal(__b); } 8657: 8657: 8657: template 8657: class ostreambuf_iterator 8657: : public iterator 8657: { 8657: public: 8657: 8657: 8657: 8657: typedef _CharT char_type; 8657: typedef _Traits traits_type; 8657: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 8657: typedef basic_ostream<_CharT, _Traits> ostream_type; 8657: 8657: 8657: template 8657: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8657: ostreambuf_iterator<_CharT2> >::__type 8657: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8657: ostreambuf_iterator<_CharT2>); 8657: 8657: private: 8657: streambuf_type* _M_sbuf; 8657: bool _M_failed; 8657: 8657: public: 8657: 8657: ostreambuf_iterator(ostream_type& __s) noexcept 8657: : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { } 8657: 8657: 8657: ostreambuf_iterator(streambuf_type* __s) noexcept 8657: : _M_sbuf(__s), _M_failed(!_M_sbuf) { } 8657: 8657: 8657: ostreambuf_iterator& 8657: operator=(_CharT __c) 8657: { 8657: if (!_M_failed && 8657: _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof())) 8657: _M_failed = true; 8657: return *this; 8657: } 8657: 8657: 8657: ostreambuf_iterator& 8657: operator*() 8657: { return *this; } 8657: 8657: 8657: ostreambuf_iterator& 8657: operator++(int) 8657: { return *this; } 8657: 8657: 8657: ostreambuf_iterator& 8657: operator++() 8657: { return *this; } 8657: 8657: 8657: bool 8657: failed() const noexcept 8657: { return _M_failed; } 8657: 8657: ostreambuf_iterator& 8657: _M_put(const _CharT* __ws, streamsize __len) 8657: { 8657: if (__builtin_expect(!_M_failed, true) 8657: && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len, 8657: false)) 8657: _M_failed = true; 8657: return *this; 8657: } 8657: }; 8657: 8657: 8657: template 8657: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8657: ostreambuf_iterator<_CharT> >::__type 8657: copy(istreambuf_iterator<_CharT> __first, 8657: istreambuf_iterator<_CharT> __last, 8657: ostreambuf_iterator<_CharT> __result) 8657: { 8657: if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed) 8657: { 8657: bool __ineof; 8657: __copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof); 8657: if (!__ineof) 8657: __result._M_failed = true; 8657: } 8657: return __result; 8657: } 8657: 8657: template 8657: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8657: ostreambuf_iterator<_CharT> >::__type 8657: __copy_move_a2(_CharT* __first, _CharT* __last, 8657: ostreambuf_iterator<_CharT> __result) 8657: { 8657: const streamsize __num = __last - __first; 8657: if (__num > 0) 8657: __result._M_put(__first, __num); 8657: return __result; 8657: } 8657: 8657: template 8657: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8657: ostreambuf_iterator<_CharT> >::__type 8657: __copy_move_a2(const _CharT* __first, const _CharT* __last, 8657: ostreambuf_iterator<_CharT> __result) 8657: { 8657: const streamsize __num = __last - __first; 8657: if (__num > 0) 8657: __result._M_put(__first, __num); 8657: return __result; 8657: } 8657: 8657: template 8657: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8657: _CharT*>::__type 8657: __copy_move_a2(istreambuf_iterator<_CharT> __first, 8657: istreambuf_iterator<_CharT> __last, _CharT* __result) 8657: { 8657: typedef istreambuf_iterator<_CharT> __is_iterator_type; 8657: typedef typename __is_iterator_type::traits_type traits_type; 8657: typedef typename __is_iterator_type::streambuf_type streambuf_type; 8657: typedef typename traits_type::int_type int_type; 8657: 8657: if (__first._M_sbuf && !__last._M_sbuf) 8657: { 8657: streambuf_type* __sb = __first._M_sbuf; 8657: int_type __c = __sb->sgetc(); 8657: while (!traits_type::eq_int_type(__c, traits_type::eof())) 8657: { 8657: const streamsize __n = __sb->egptr() - __sb->gptr(); 8657: if (__n > 1) 8657: { 8657: traits_type::copy(__result, __sb->gptr(), __n); 8657: __sb->__safe_gbump(__n); 8657: __result += __n; 8657: __c = __sb->underflow(); 8657: } 8657: else 8657: { 8657: *__result++ = traits_type::to_char_type(__c); 8657: __c = __sb->snextc(); 8657: } 8657: } 8657: } 8657: return __result; 8657: } 8657: 8657: template 8657: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8657: istreambuf_iterator<_CharT> >::__type 8657: find(istreambuf_iterator<_CharT> __first, 8657: istreambuf_iterator<_CharT> __last, const _CharT& __val) 8657: { 8657: typedef istreambuf_iterator<_CharT> __is_iterator_type; 8657: typedef typename __is_iterator_type::traits_type traits_type; 8657: typedef typename __is_iterator_type::streambuf_type streambuf_type; 8657: typedef typename traits_type::int_type int_type; 8657: const int_type __eof = traits_type::eof(); 8657: 8657: if (__first._M_sbuf && !__last._M_sbuf) 8657: { 8657: const int_type __ival = traits_type::to_int_type(__val); 8657: streambuf_type* __sb = __first._M_sbuf; 8657: int_type __c = __sb->sgetc(); 8657: while (!traits_type::eq_int_type(__c, __eof) 8657: && !traits_type::eq_int_type(__c, __ival)) 8657: { 8657: streamsize __n = __sb->egptr() - __sb->gptr(); 8657: if (__n > 1) 8657: { 8657: const _CharT* __p = traits_type::find(__sb->gptr(), 8657: __n, __val); 8657: if (__p) 8657: __n = __p - __sb->gptr(); 8657: __sb->__safe_gbump(__n); 8657: __c = __sb->sgetc(); 8657: } 8657: else 8657: __c = __sb->snextc(); 8657: } 8657: 8657: __first._M_c = __eof; 8657: } 8657: 8657: return __first; 8657: } 8657: 8657: template 8657: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8657: void>::__type 8657: advance(istreambuf_iterator<_CharT>& __i, _Distance __n) 8657: { 8657: if (__n == 0) 8657: return; 8657: 8657: ; 8657: 8657: 8657: ; 8657: 8657: typedef istreambuf_iterator<_CharT> __is_iterator_type; 8657: typedef typename __is_iterator_type::traits_type traits_type; 8657: typedef typename __is_iterator_type::streambuf_type streambuf_type; 8657: typedef typename traits_type::int_type int_type; 8657: const int_type __eof = traits_type::eof(); 8657: 8657: streambuf_type* __sb = __i._M_sbuf; 8657: while (__n > 0) 8657: { 8657: streamsize __size = __sb->egptr() - __sb->gptr(); 8657: if (__size > __n) 8657: { 8657: __sb->__safe_gbump(__n); 8657: break; 8657: } 8657: 8657: __sb->__safe_gbump(__size); 8657: __n -= __size; 8657: if (traits_type::eq_int_type(__sb->underflow(), __eof)) 8657: { 8657: 8657: 8657: ; 8657: break; 8657: } 8657: } 8657: 8657: __i._M_c = __eof; 8657: } 8657: 8657: 8657: 8657: 8657: } 8657: # 49 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 71 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: template 8657: void 8657: __convert_to_v(const char*, _Tp&, ios_base::iostate&, 8657: const __c_locale&) throw(); 8657: 8657: 8657: template<> 8657: void 8657: __convert_to_v(const char*, float&, ios_base::iostate&, 8657: const __c_locale&) throw(); 8657: 8657: template<> 8657: void 8657: __convert_to_v(const char*, double&, ios_base::iostate&, 8657: const __c_locale&) throw(); 8657: 8657: template<> 8657: void 8657: __convert_to_v(const char*, long double&, ios_base::iostate&, 8657: const __c_locale&) throw(); 8657: 8657: 8657: 8657: template 8657: struct __pad 8657: { 8657: static void 8657: _S_pad(ios_base& __io, _CharT __fill, _CharT* __news, 8657: const _CharT* __olds, streamsize __newlen, streamsize __oldlen); 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: _CharT* 8657: __add_grouping(_CharT* __s, _CharT __sep, 8657: const char* __gbeg, size_t __gsize, 8657: const _CharT* __first, const _CharT* __last); 8657: 8657: 8657: 8657: 8657: template 8657: inline 8657: ostreambuf_iterator<_CharT> 8657: __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len) 8657: { 8657: __s._M_put(__ws, __len); 8657: return __s; 8657: } 8657: 8657: 8657: template 8657: inline 8657: _OutIter 8657: __write(_OutIter __s, const _CharT* __ws, int __len) 8657: { 8657: for (int __j = 0; __j < __len; __j++, ++__s) 8657: *__s = __ws[__j]; 8657: return __s; 8657: } 8657: # 149 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: template 8657: class __ctype_abstract_base : public locale::facet, public ctype_base 8657: { 8657: public: 8657: 8657: 8657: typedef _CharT char_type; 8657: # 168 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: bool 8657: is(mask __m, char_type __c) const 8657: { return this->do_is(__m, __c); } 8657: # 185 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: const char_type* 8657: is(const char_type *__lo, const char_type *__hi, mask *__vec) const 8657: { return this->do_is(__lo, __hi, __vec); } 8657: # 201 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: const char_type* 8657: scan_is(mask __m, const char_type* __lo, const char_type* __hi) const 8657: { return this->do_scan_is(__m, __lo, __hi); } 8657: # 217 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: const char_type* 8657: scan_not(mask __m, const char_type* __lo, const char_type* __hi) const 8657: { return this->do_scan_not(__m, __lo, __hi); } 8657: # 231 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: char_type 8657: toupper(char_type __c) const 8657: { return this->do_toupper(__c); } 8657: # 246 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: const char_type* 8657: toupper(char_type *__lo, const char_type* __hi) const 8657: { return this->do_toupper(__lo, __hi); } 8657: # 260 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: char_type 8657: tolower(char_type __c) const 8657: { return this->do_tolower(__c); } 8657: # 275 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: const char_type* 8657: tolower(char_type* __lo, const char_type* __hi) const 8657: { return this->do_tolower(__lo, __hi); } 8657: # 292 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: char_type 8657: widen(char __c) const 8657: { return this->do_widen(__c); } 8657: # 311 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: const char* 8657: widen(const char* __lo, const char* __hi, char_type* __to) const 8657: { return this->do_widen(__lo, __hi, __to); } 8657: # 330 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: char 8657: narrow(char_type __c, char __dfault) const 8657: { return this->do_narrow(__c, __dfault); } 8657: # 352 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: const char_type* 8657: narrow(const char_type* __lo, const char_type* __hi, 8657: char __dfault, char* __to) const 8657: { return this->do_narrow(__lo, __hi, __dfault, __to); } 8657: 8657: protected: 8657: explicit 8657: __ctype_abstract_base(size_t __refs = 0): facet(__refs) { } 8657: 8657: virtual 8657: ~__ctype_abstract_base() { } 8657: # 377 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual bool 8657: do_is(mask __m, char_type __c) const = 0; 8657: # 396 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual const char_type* 8657: do_is(const char_type* __lo, const char_type* __hi, 8657: mask* __vec) const = 0; 8657: # 415 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual const char_type* 8657: do_scan_is(mask __m, const char_type* __lo, 8657: const char_type* __hi) const = 0; 8657: # 434 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual const char_type* 8657: do_scan_not(mask __m, const char_type* __lo, 8657: const char_type* __hi) const = 0; 8657: # 452 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual char_type 8657: do_toupper(char_type __c) const = 0; 8657: # 469 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual const char_type* 8657: do_toupper(char_type* __lo, const char_type* __hi) const = 0; 8657: # 485 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual char_type 8657: do_tolower(char_type __c) const = 0; 8657: # 502 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual const char_type* 8657: do_tolower(char_type* __lo, const char_type* __hi) const = 0; 8657: # 521 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual char_type 8657: do_widen(char __c) const = 0; 8657: # 542 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual const char* 8657: do_widen(const char* __lo, const char* __hi, char_type* __to) const = 0; 8657: # 563 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual char 8657: do_narrow(char_type __c, char __dfault) const = 0; 8657: # 588 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual const char_type* 8657: do_narrow(const char_type* __lo, const char_type* __hi, 8657: char __dfault, char* __to) const = 0; 8657: }; 8657: # 611 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: template 8657: class ctype : public __ctype_abstract_base<_CharT> 8657: { 8657: public: 8657: 8657: typedef _CharT char_type; 8657: typedef typename __ctype_abstract_base<_CharT>::mask mask; 8657: 8657: 8657: static locale::id id; 8657: 8657: explicit 8657: ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { } 8657: 8657: protected: 8657: virtual 8657: ~ctype(); 8657: 8657: virtual bool 8657: do_is(mask __m, char_type __c) const; 8657: 8657: virtual const char_type* 8657: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 8657: 8657: virtual const char_type* 8657: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 8657: 8657: virtual const char_type* 8657: do_scan_not(mask __m, const char_type* __lo, 8657: const char_type* __hi) const; 8657: 8657: virtual char_type 8657: do_toupper(char_type __c) const; 8657: 8657: virtual const char_type* 8657: do_toupper(char_type* __lo, const char_type* __hi) const; 8657: 8657: virtual char_type 8657: do_tolower(char_type __c) const; 8657: 8657: virtual const char_type* 8657: do_tolower(char_type* __lo, const char_type* __hi) const; 8657: 8657: virtual char_type 8657: do_widen(char __c) const; 8657: 8657: virtual const char* 8657: do_widen(const char* __lo, const char* __hi, char_type* __dest) const; 8657: 8657: virtual char 8657: do_narrow(char_type, char __dfault) const; 8657: 8657: virtual const char_type* 8657: do_narrow(const char_type* __lo, const char_type* __hi, 8657: char __dfault, char* __to) const; 8657: }; 8657: 8657: template 8657: locale::id ctype<_CharT>::id; 8657: # 680 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: template<> 8657: class ctype : public locale::facet, public ctype_base 8657: { 8657: public: 8657: 8657: 8657: typedef char char_type; 8657: 8657: protected: 8657: 8657: __c_locale _M_c_locale_ctype; 8657: bool _M_del; 8657: __to_type _M_toupper; 8657: __to_type _M_tolower; 8657: const mask* _M_table; 8657: mutable char _M_widen_ok; 8657: mutable char _M_widen[1 + static_cast(-1)]; 8657: mutable char _M_narrow[1 + static_cast(-1)]; 8657: mutable char _M_narrow_ok; 8657: 8657: 8657: public: 8657: 8657: static locale::id id; 8657: 8657: static const size_t table_size = 1 + static_cast(-1); 8657: # 717 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: explicit 8657: ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0); 8657: # 730 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: explicit 8657: ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false, 8657: size_t __refs = 0); 8657: # 743 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: inline bool 8657: is(mask __m, char __c) const; 8657: # 758 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: inline const char* 8657: is(const char* __lo, const char* __hi, mask* __vec) const; 8657: # 772 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: inline const char* 8657: scan_is(mask __m, const char* __lo, const char* __hi) const; 8657: # 786 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: inline const char* 8657: scan_not(mask __m, const char* __lo, const char* __hi) const; 8657: # 801 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: char_type 8657: toupper(char_type __c) const 8657: { return this->do_toupper(__c); } 8657: # 818 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: const char_type* 8657: toupper(char_type *__lo, const char_type* __hi) const 8657: { return this->do_toupper(__lo, __hi); } 8657: # 834 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: char_type 8657: tolower(char_type __c) const 8657: { return this->do_tolower(__c); } 8657: # 851 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: const char_type* 8657: tolower(char_type* __lo, const char_type* __hi) const 8657: { return this->do_tolower(__lo, __hi); } 8657: # 871 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: char_type 8657: widen(char __c) const 8657: { 8657: if (_M_widen_ok) 8657: return _M_widen[static_cast(__c)]; 8657: this->_M_widen_init(); 8657: return this->do_widen(__c); 8657: } 8657: # 898 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: const char* 8657: widen(const char* __lo, const char* __hi, char_type* __to) const 8657: { 8657: if (_M_widen_ok == 1) 8657: { 8657: __builtin_memcpy(__to, __lo, __hi - __lo); 8657: return __hi; 8657: } 8657: if (!_M_widen_ok) 8657: _M_widen_init(); 8657: return this->do_widen(__lo, __hi, __to); 8657: } 8657: # 929 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: char 8657: narrow(char_type __c, char __dfault) const 8657: { 8657: if (_M_narrow[static_cast(__c)]) 8657: return _M_narrow[static_cast(__c)]; 8657: const char __t = do_narrow(__c, __dfault); 8657: if (__t != __dfault) 8657: _M_narrow[static_cast(__c)] = __t; 8657: return __t; 8657: } 8657: # 962 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: const char_type* 8657: narrow(const char_type* __lo, const char_type* __hi, 8657: char __dfault, char* __to) const 8657: { 8657: if (__builtin_expect(_M_narrow_ok == 1, true)) 8657: { 8657: __builtin_memcpy(__to, __lo, __hi - __lo); 8657: return __hi; 8657: } 8657: if (!_M_narrow_ok) 8657: _M_narrow_init(); 8657: return this->do_narrow(__lo, __hi, __dfault, __to); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: const mask* 8657: table() const throw() 8657: { return _M_table; } 8657: 8657: 8657: static const mask* 8657: classic_table() throw(); 8657: protected: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: virtual 8657: ~ctype(); 8657: # 1011 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual char_type 8657: do_toupper(char_type __c) const; 8657: # 1028 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual const char_type* 8657: do_toupper(char_type* __lo, const char_type* __hi) const; 8657: # 1044 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual char_type 8657: do_tolower(char_type __c) const; 8657: # 1061 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual const char_type* 8657: do_tolower(char_type* __lo, const char_type* __hi) const; 8657: # 1081 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual char_type 8657: do_widen(char __c) const 8657: { return __c; } 8657: # 1104 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual const char* 8657: do_widen(const char* __lo, const char* __hi, char_type* __to) const 8657: { 8657: __builtin_memcpy(__to, __lo, __hi - __lo); 8657: return __hi; 8657: } 8657: # 1130 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual char 8657: do_narrow(char_type __c, char __dfault __attribute__((__unused__))) const 8657: { return __c; } 8657: # 1156 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual const char_type* 8657: do_narrow(const char_type* __lo, const char_type* __hi, 8657: char __dfault __attribute__((__unused__)), char* __to) const 8657: { 8657: __builtin_memcpy(__to, __lo, __hi - __lo); 8657: return __hi; 8657: } 8657: 8657: private: 8657: void _M_narrow_init() const; 8657: void _M_widen_init() const; 8657: }; 8657: # 1181 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: template<> 8657: class ctype : public __ctype_abstract_base 8657: { 8657: public: 8657: 8657: 8657: typedef wchar_t char_type; 8657: typedef wctype_t __wmask_type; 8657: 8657: protected: 8657: __c_locale _M_c_locale_ctype; 8657: 8657: 8657: bool _M_narrow_ok; 8657: char _M_narrow[128]; 8657: wint_t _M_widen[1 + static_cast(-1)]; 8657: 8657: 8657: mask _M_bit[16]; 8657: __wmask_type _M_wmask[16]; 8657: 8657: public: 8657: 8657: 8657: static locale::id id; 8657: # 1214 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: explicit 8657: ctype(size_t __refs = 0); 8657: # 1225 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: explicit 8657: ctype(__c_locale __cloc, size_t __refs = 0); 8657: 8657: protected: 8657: __wmask_type 8657: _M_convert_to_wmask(const mask __m) const throw(); 8657: 8657: 8657: virtual 8657: ~ctype(); 8657: # 1249 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual bool 8657: do_is(mask __m, char_type __c) const; 8657: # 1268 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual const char_type* 8657: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 8657: # 1286 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual const char_type* 8657: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 8657: # 1304 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual const char_type* 8657: do_scan_not(mask __m, const char_type* __lo, 8657: const char_type* __hi) const; 8657: # 1321 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual char_type 8657: do_toupper(char_type __c) const; 8657: # 1338 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual const char_type* 8657: do_toupper(char_type* __lo, const char_type* __hi) const; 8657: # 1354 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual char_type 8657: do_tolower(char_type __c) const; 8657: # 1371 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual const char_type* 8657: do_tolower(char_type* __lo, const char_type* __hi) const; 8657: # 1391 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual char_type 8657: do_widen(char __c) const; 8657: # 1413 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual const char* 8657: do_widen(const char* __lo, const char* __hi, char_type* __to) const; 8657: # 1436 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual char 8657: do_narrow(char_type __c, char __dfault) const; 8657: # 1462 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual const char_type* 8657: do_narrow(const char_type* __lo, const char_type* __hi, 8657: char __dfault, char* __to) const; 8657: 8657: 8657: void 8657: _M_initialize_ctype() throw(); 8657: }; 8657: 8657: 8657: 8657: template 8657: class ctype_byname : public ctype<_CharT> 8657: { 8657: public: 8657: typedef typename ctype<_CharT>::mask mask; 8657: 8657: explicit 8657: ctype_byname(const char* __s, size_t __refs = 0); 8657: 8657: 8657: explicit 8657: ctype_byname(const string& __s, size_t __refs = 0) 8657: : ctype_byname(__s.c_str(), __refs) { } 8657: 8657: 8657: protected: 8657: virtual 8657: ~ctype_byname() { } 8657: }; 8657: 8657: 8657: template<> 8657: class ctype_byname : public ctype 8657: { 8657: public: 8657: explicit 8657: ctype_byname(const char* __s, size_t __refs = 0); 8657: 8657: 8657: explicit 8657: ctype_byname(const string& __s, size_t __refs = 0); 8657: 8657: 8657: protected: 8657: virtual 8657: ~ctype_byname(); 8657: }; 8657: 8657: 8657: template<> 8657: class ctype_byname : public ctype 8657: { 8657: public: 8657: explicit 8657: ctype_byname(const char* __s, size_t __refs = 0); 8657: 8657: 8657: explicit 8657: ctype_byname(const string& __s, size_t __refs = 0); 8657: 8657: 8657: protected: 8657: virtual 8657: ~ctype_byname(); 8657: }; 8657: 8657: 8657: 8657: } 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/ctype_inline.h" 1 3 8657: # 37 "/usr/include/arm-linux-gnueabihf/c++/8/bits/ctype_inline.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: bool 8657: ctype:: 8657: is(mask __m, char __c) const 8657: { return _M_table[static_cast(__c)] & __m; } 8657: 8657: const char* 8657: ctype:: 8657: is(const char* __low, const char* __high, mask* __vec) const 8657: { 8657: while (__low < __high) 8657: *__vec++ = _M_table[static_cast(*__low++)]; 8657: return __high; 8657: } 8657: 8657: const char* 8657: ctype:: 8657: scan_is(mask __m, const char* __low, const char* __high) const 8657: { 8657: while (__low < __high 8657: && !(_M_table[static_cast(*__low)] & __m)) 8657: ++__low; 8657: return __low; 8657: } 8657: 8657: const char* 8657: ctype:: 8657: scan_not(mask __m, const char* __low, const char* __high) const 8657: { 8657: while (__low < __high 8657: && (_M_table[static_cast(*__low)] & __m) != 0) 8657: ++__low; 8657: return __low; 8657: } 8657: 8657: 8657: } 8657: # 1535 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: class __num_base 8657: { 8657: public: 8657: 8657: 8657: enum 8657: { 8657: _S_ominus, 8657: _S_oplus, 8657: _S_ox, 8657: _S_oX, 8657: _S_odigits, 8657: _S_odigits_end = _S_odigits + 16, 8657: _S_oudigits = _S_odigits_end, 8657: _S_oudigits_end = _S_oudigits + 16, 8657: _S_oe = _S_odigits + 14, 8657: _S_oE = _S_oudigits + 14, 8657: _S_oend = _S_oudigits_end 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: static const char* _S_atoms_out; 8657: 8657: 8657: 8657: static const char* _S_atoms_in; 8657: 8657: enum 8657: { 8657: _S_iminus, 8657: _S_iplus, 8657: _S_ix, 8657: _S_iX, 8657: _S_izero, 8657: _S_ie = _S_izero + 14, 8657: _S_iE = _S_izero + 20, 8657: _S_iend = 26 8657: }; 8657: 8657: 8657: 8657: static void 8657: _S_format_float(const ios_base& __io, char* __fptr, char __mod) throw(); 8657: }; 8657: 8657: template 8657: struct __numpunct_cache : public locale::facet 8657: { 8657: const char* _M_grouping; 8657: size_t _M_grouping_size; 8657: bool _M_use_grouping; 8657: const _CharT* _M_truename; 8657: size_t _M_truename_size; 8657: const _CharT* _M_falsename; 8657: size_t _M_falsename_size; 8657: _CharT _M_decimal_point; 8657: _CharT _M_thousands_sep; 8657: 8657: 8657: 8657: 8657: 8657: _CharT _M_atoms_out[__num_base::_S_oend]; 8657: 8657: 8657: 8657: 8657: 8657: _CharT _M_atoms_in[__num_base::_S_iend]; 8657: 8657: bool _M_allocated; 8657: 8657: __numpunct_cache(size_t __refs = 0) 8657: : facet(__refs), _M_grouping(0), _M_grouping_size(0), 8657: _M_use_grouping(false), 8657: _M_truename(0), _M_truename_size(0), _M_falsename(0), 8657: _M_falsename_size(0), _M_decimal_point(_CharT()), 8657: _M_thousands_sep(_CharT()), _M_allocated(false) 8657: { } 8657: 8657: ~__numpunct_cache(); 8657: 8657: void 8657: _M_cache(const locale& __loc); 8657: 8657: private: 8657: __numpunct_cache& 8657: operator=(const __numpunct_cache&); 8657: 8657: explicit 8657: __numpunct_cache(const __numpunct_cache&); 8657: }; 8657: 8657: template 8657: __numpunct_cache<_CharT>::~__numpunct_cache() 8657: { 8657: if (_M_allocated) 8657: { 8657: delete [] _M_grouping; 8657: delete [] _M_truename; 8657: delete [] _M_falsename; 8657: } 8657: } 8657: 8657: namespace __cxx11 { 8657: # 1665 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: template 8657: class numpunct : public locale::facet 8657: { 8657: public: 8657: 8657: 8657: 8657: typedef _CharT char_type; 8657: typedef basic_string<_CharT> string_type; 8657: 8657: typedef __numpunct_cache<_CharT> __cache_type; 8657: 8657: protected: 8657: __cache_type* _M_data; 8657: 8657: public: 8657: 8657: static locale::id id; 8657: 8657: 8657: 8657: 8657: 8657: 8657: explicit 8657: numpunct(size_t __refs = 0) 8657: : facet(__refs), _M_data(0) 8657: { _M_initialize_numpunct(); } 8657: # 1703 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: explicit 8657: numpunct(__cache_type* __cache, size_t __refs = 0) 8657: : facet(__refs), _M_data(__cache) 8657: { _M_initialize_numpunct(); } 8657: # 1717 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: explicit 8657: numpunct(__c_locale __cloc, size_t __refs = 0) 8657: : facet(__refs), _M_data(0) 8657: { _M_initialize_numpunct(__cloc); } 8657: # 1731 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: char_type 8657: decimal_point() const 8657: { return this->do_decimal_point(); } 8657: # 1744 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: char_type 8657: thousands_sep() const 8657: { return this->do_thousands_sep(); } 8657: # 1775 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: string 8657: grouping() const 8657: { return this->do_grouping(); } 8657: # 1788 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: string_type 8657: truename() const 8657: { return this->do_truename(); } 8657: # 1801 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: string_type 8657: falsename() const 8657: { return this->do_falsename(); } 8657: 8657: protected: 8657: 8657: virtual 8657: ~numpunct(); 8657: # 1818 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual char_type 8657: do_decimal_point() const 8657: { return _M_data->_M_decimal_point; } 8657: # 1830 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual char_type 8657: do_thousands_sep() const 8657: { return _M_data->_M_thousands_sep; } 8657: # 1843 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual string 8657: do_grouping() const 8657: { return _M_data->_M_grouping; } 8657: # 1856 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual string_type 8657: do_truename() const 8657: { return _M_data->_M_truename; } 8657: # 1869 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual string_type 8657: do_falsename() const 8657: { return _M_data->_M_falsename; } 8657: 8657: 8657: void 8657: _M_initialize_numpunct(__c_locale __cloc = 0); 8657: }; 8657: 8657: template 8657: locale::id numpunct<_CharT>::id; 8657: 8657: template<> 8657: numpunct::~numpunct(); 8657: 8657: template<> 8657: void 8657: numpunct::_M_initialize_numpunct(__c_locale __cloc); 8657: 8657: 8657: template<> 8657: numpunct::~numpunct(); 8657: 8657: template<> 8657: void 8657: numpunct::_M_initialize_numpunct(__c_locale __cloc); 8657: 8657: 8657: 8657: template 8657: class numpunct_byname : public numpunct<_CharT> 8657: { 8657: public: 8657: typedef _CharT char_type; 8657: typedef basic_string<_CharT> string_type; 8657: 8657: explicit 8657: numpunct_byname(const char* __s, size_t __refs = 0) 8657: : numpunct<_CharT>(__refs) 8657: { 8657: if (__builtin_strcmp(__s, "C") != 0 8657: && __builtin_strcmp(__s, "POSIX") != 0) 8657: { 8657: __c_locale __tmp; 8657: this->_S_create_c_locale(__tmp, __s); 8657: this->_M_initialize_numpunct(__tmp); 8657: this->_S_destroy_c_locale(__tmp); 8657: } 8657: } 8657: 8657: 8657: explicit 8657: numpunct_byname(const string& __s, size_t __refs = 0) 8657: : numpunct_byname(__s.c_str(), __refs) { } 8657: 8657: 8657: protected: 8657: virtual 8657: ~numpunct_byname() { } 8657: }; 8657: 8657: } 8657: 8657: 8657: # 1947 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: template 8657: class num_get : public locale::facet 8657: { 8657: public: 8657: 8657: 8657: 8657: typedef _CharT char_type; 8657: typedef _InIter iter_type; 8657: 8657: 8657: 8657: static locale::id id; 8657: # 1968 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: explicit 8657: num_get(size_t __refs = 0) : facet(__refs) { } 8657: # 1994 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: iter_type 8657: get(iter_type __in, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, bool& __v) const 8657: { return this->do_get(__in, __end, __io, __err, __v); } 8657: # 2031 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: iter_type 8657: get(iter_type __in, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, long& __v) const 8657: { return this->do_get(__in, __end, __io, __err, __v); } 8657: 8657: iter_type 8657: get(iter_type __in, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, unsigned short& __v) const 8657: { return this->do_get(__in, __end, __io, __err, __v); } 8657: 8657: iter_type 8657: get(iter_type __in, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, unsigned int& __v) const 8657: { return this->do_get(__in, __end, __io, __err, __v); } 8657: 8657: iter_type 8657: get(iter_type __in, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, unsigned long& __v) const 8657: { return this->do_get(__in, __end, __io, __err, __v); } 8657: 8657: 8657: iter_type 8657: get(iter_type __in, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, long long& __v) const 8657: { return this->do_get(__in, __end, __io, __err, __v); } 8657: 8657: iter_type 8657: get(iter_type __in, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, unsigned long long& __v) const 8657: { return this->do_get(__in, __end, __io, __err, __v); } 8657: # 2091 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: iter_type 8657: get(iter_type __in, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, float& __v) const 8657: { return this->do_get(__in, __end, __io, __err, __v); } 8657: 8657: iter_type 8657: get(iter_type __in, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, double& __v) const 8657: { return this->do_get(__in, __end, __io, __err, __v); } 8657: 8657: iter_type 8657: get(iter_type __in, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, long double& __v) const 8657: { return this->do_get(__in, __end, __io, __err, __v); } 8657: # 2134 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: iter_type 8657: get(iter_type __in, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, void*& __v) const 8657: { return this->do_get(__in, __end, __io, __err, __v); } 8657: 8657: protected: 8657: 8657: virtual ~num_get() { } 8657: 8657: __attribute ((__abi_tag__ ("cxx11"))) 8657: iter_type 8657: _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&, 8657: string&) const; 8657: 8657: template 8657: __attribute ((__abi_tag__ ("cxx11"))) 8657: iter_type 8657: _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&, 8657: _ValueT&) const; 8657: 8657: template 8657: typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type 8657: _M_find(const _CharT2*, size_t __len, _CharT2 __c) const 8657: { 8657: int __ret = -1; 8657: if (__len <= 10) 8657: { 8657: if (__c >= _CharT2('0') && __c < _CharT2(_CharT2('0') + __len)) 8657: __ret = __c - _CharT2('0'); 8657: } 8657: else 8657: { 8657: if (__c >= _CharT2('0') && __c <= _CharT2('9')) 8657: __ret = __c - _CharT2('0'); 8657: else if (__c >= _CharT2('a') && __c <= _CharT2('f')) 8657: __ret = 10 + (__c - _CharT2('a')); 8657: else if (__c >= _CharT2('A') && __c <= _CharT2('F')) 8657: __ret = 10 + (__c - _CharT2('A')); 8657: } 8657: return __ret; 8657: } 8657: 8657: template 8657: typename __gnu_cxx::__enable_if::__value, 8657: int>::__type 8657: _M_find(const _CharT2* __zero, size_t __len, _CharT2 __c) const 8657: { 8657: int __ret = -1; 8657: const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c); 8657: if (__q) 8657: { 8657: __ret = __q - __zero; 8657: if (__ret > 15) 8657: __ret -= 6; 8657: } 8657: return __ret; 8657: } 8657: # 2207 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual iter_type 8657: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const; 8657: 8657: virtual iter_type 8657: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, long& __v) const 8657: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8657: 8657: virtual iter_type 8657: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, unsigned short& __v) const 8657: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8657: 8657: virtual iter_type 8657: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, unsigned int& __v) const 8657: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8657: 8657: virtual iter_type 8657: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, unsigned long& __v) const 8657: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8657: 8657: 8657: virtual iter_type 8657: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, long long& __v) const 8657: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8657: 8657: virtual iter_type 8657: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, unsigned long long& __v) const 8657: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8657: 8657: 8657: virtual iter_type 8657: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, float&) const; 8657: 8657: virtual iter_type 8657: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 8657: double&) const; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: virtual iter_type 8657: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 8657: long double&) const; 8657: 8657: 8657: virtual iter_type 8657: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, void*&) const; 8657: # 2270 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: }; 8657: 8657: template 8657: locale::id num_get<_CharT, _InIter>::id; 8657: # 2288 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: template 8657: class num_put : public locale::facet 8657: { 8657: public: 8657: 8657: 8657: 8657: typedef _CharT char_type; 8657: typedef _OutIter iter_type; 8657: 8657: 8657: 8657: static locale::id id; 8657: # 2309 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: explicit 8657: num_put(size_t __refs = 0) : facet(__refs) { } 8657: # 2327 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: iter_type 8657: put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 8657: { return this->do_put(__s, __io, __fill, __v); } 8657: # 2369 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: iter_type 8657: put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 8657: { return this->do_put(__s, __io, __fill, __v); } 8657: 8657: iter_type 8657: put(iter_type __s, ios_base& __io, char_type __fill, 8657: unsigned long __v) const 8657: { return this->do_put(__s, __io, __fill, __v); } 8657: 8657: 8657: iter_type 8657: put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const 8657: { return this->do_put(__s, __io, __fill, __v); } 8657: 8657: iter_type 8657: put(iter_type __s, ios_base& __io, char_type __fill, 8657: unsigned long long __v) const 8657: { return this->do_put(__s, __io, __fill, __v); } 8657: # 2432 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: iter_type 8657: put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 8657: { return this->do_put(__s, __io, __fill, __v); } 8657: 8657: iter_type 8657: put(iter_type __s, ios_base& __io, char_type __fill, 8657: long double __v) const 8657: { return this->do_put(__s, __io, __fill, __v); } 8657: # 2457 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: iter_type 8657: put(iter_type __s, ios_base& __io, char_type __fill, 8657: const void* __v) const 8657: { return this->do_put(__s, __io, __fill, __v); } 8657: 8657: protected: 8657: template 8657: iter_type 8657: _M_insert_float(iter_type, ios_base& __io, char_type __fill, 8657: char __mod, _ValueT __v) const; 8657: 8657: void 8657: _M_group_float(const char* __grouping, size_t __grouping_size, 8657: char_type __sep, const char_type* __p, char_type* __new, 8657: char_type* __cs, int& __len) const; 8657: 8657: template 8657: iter_type 8657: _M_insert_int(iter_type, ios_base& __io, char_type __fill, 8657: _ValueT __v) const; 8657: 8657: void 8657: _M_group_int(const char* __grouping, size_t __grouping_size, 8657: char_type __sep, ios_base& __io, char_type* __new, 8657: char_type* __cs, int& __len) const; 8657: 8657: void 8657: _M_pad(char_type __fill, streamsize __w, ios_base& __io, 8657: char_type* __new, const char_type* __cs, int& __len) const; 8657: 8657: 8657: virtual 8657: ~num_put() { } 8657: # 2505 "/usr/include/c++/8/bits/locale_facets.h" 3 8657: virtual iter_type 8657: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const; 8657: 8657: virtual iter_type 8657: do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 8657: { return _M_insert_int(__s, __io, __fill, __v); } 8657: 8657: virtual iter_type 8657: do_put(iter_type __s, ios_base& __io, char_type __fill, 8657: unsigned long __v) const 8657: { return _M_insert_int(__s, __io, __fill, __v); } 8657: 8657: 8657: virtual iter_type 8657: do_put(iter_type __s, ios_base& __io, char_type __fill, 8657: long long __v) const 8657: { return _M_insert_int(__s, __io, __fill, __v); } 8657: 8657: virtual iter_type 8657: do_put(iter_type __s, ios_base& __io, char_type __fill, 8657: unsigned long long __v) const 8657: { return _M_insert_int(__s, __io, __fill, __v); } 8657: 8657: 8657: virtual iter_type 8657: do_put(iter_type, ios_base&, char_type, double) const; 8657: 8657: 8657: 8657: 8657: 8657: 8657: virtual iter_type 8657: do_put(iter_type, ios_base&, char_type, long double) const; 8657: 8657: 8657: virtual iter_type 8657: do_put(iter_type, ios_base&, char_type, const void*) const; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: template 8657: locale::id num_put<_CharT, _OutIter>::id; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline bool 8657: isspace(_CharT __c, const locale& __loc) 8657: { return use_facet >(__loc).is(ctype_base::space, __c); } 8657: 8657: 8657: template 8657: inline bool 8657: isprint(_CharT __c, const locale& __loc) 8657: { return use_facet >(__loc).is(ctype_base::print, __c); } 8657: 8657: 8657: template 8657: inline bool 8657: iscntrl(_CharT __c, const locale& __loc) 8657: { return use_facet >(__loc).is(ctype_base::cntrl, __c); } 8657: 8657: 8657: template 8657: inline bool 8657: isupper(_CharT __c, const locale& __loc) 8657: { return use_facet >(__loc).is(ctype_base::upper, __c); } 8657: 8657: 8657: template 8657: inline bool 8657: islower(_CharT __c, const locale& __loc) 8657: { return use_facet >(__loc).is(ctype_base::lower, __c); } 8657: 8657: 8657: template 8657: inline bool 8657: isalpha(_CharT __c, const locale& __loc) 8657: { return use_facet >(__loc).is(ctype_base::alpha, __c); } 8657: 8657: 8657: template 8657: inline bool 8657: isdigit(_CharT __c, const locale& __loc) 8657: { return use_facet >(__loc).is(ctype_base::digit, __c); } 8657: 8657: 8657: template 8657: inline bool 8657: ispunct(_CharT __c, const locale& __loc) 8657: { return use_facet >(__loc).is(ctype_base::punct, __c); } 8657: 8657: 8657: template 8657: inline bool 8657: isxdigit(_CharT __c, const locale& __loc) 8657: { return use_facet >(__loc).is(ctype_base::xdigit, __c); } 8657: 8657: 8657: template 8657: inline bool 8657: isalnum(_CharT __c, const locale& __loc) 8657: { return use_facet >(__loc).is(ctype_base::alnum, __c); } 8657: 8657: 8657: template 8657: inline bool 8657: isgraph(_CharT __c, const locale& __loc) 8657: { return use_facet >(__loc).is(ctype_base::graph, __c); } 8657: 8657: 8657: 8657: template 8657: inline bool 8657: isblank(_CharT __c, const locale& __loc) 8657: { return use_facet >(__loc).is(ctype_base::blank, __c); } 8657: 8657: 8657: 8657: template 8657: inline _CharT 8657: toupper(_CharT __c, const locale& __loc) 8657: { return use_facet >(__loc).toupper(__c); } 8657: 8657: 8657: template 8657: inline _CharT 8657: tolower(_CharT __c, const locale& __loc) 8657: { return use_facet >(__loc).tolower(__c); } 8657: 8657: 8657: } 8657: 8657: # 1 "/usr/include/c++/8/bits/locale_facets.tcc" 1 3 8657: # 33 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8657: 8657: # 34 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: template 8657: struct __use_cache 8657: { 8657: const _Facet* 8657: operator() (const locale& __loc) const; 8657: }; 8657: 8657: 8657: template 8657: struct __use_cache<__numpunct_cache<_CharT> > 8657: { 8657: const __numpunct_cache<_CharT>* 8657: operator() (const locale& __loc) const 8657: { 8657: const size_t __i = numpunct<_CharT>::id._M_id(); 8657: const locale::facet** __caches = __loc._M_impl->_M_caches; 8657: if (!__caches[__i]) 8657: { 8657: __numpunct_cache<_CharT>* __tmp = 0; 8657: try 8657: { 8657: __tmp = new __numpunct_cache<_CharT>; 8657: __tmp->_M_cache(__loc); 8657: } 8657: catch(...) 8657: { 8657: delete __tmp; 8657: throw; 8657: } 8657: __loc._M_impl->_M_install_cache(__tmp, __i); 8657: } 8657: return static_cast*>(__caches[__i]); 8657: } 8657: }; 8657: 8657: template 8657: void 8657: __numpunct_cache<_CharT>::_M_cache(const locale& __loc) 8657: { 8657: const numpunct<_CharT>& __np = use_facet >(__loc); 8657: 8657: char* __grouping = 0; 8657: _CharT* __truename = 0; 8657: _CharT* __falsename = 0; 8657: try 8657: { 8657: const string& __g = __np.grouping(); 8657: _M_grouping_size = __g.size(); 8657: __grouping = new char[_M_grouping_size]; 8657: __g.copy(__grouping, _M_grouping_size); 8657: _M_use_grouping = (_M_grouping_size 8657: && static_cast(__grouping[0]) > 0 8657: && (__grouping[0] 8657: != __gnu_cxx::__numeric_traits::__max)); 8657: 8657: const basic_string<_CharT>& __tn = __np.truename(); 8657: _M_truename_size = __tn.size(); 8657: __truename = new _CharT[_M_truename_size]; 8657: __tn.copy(__truename, _M_truename_size); 8657: 8657: const basic_string<_CharT>& __fn = __np.falsename(); 8657: _M_falsename_size = __fn.size(); 8657: __falsename = new _CharT[_M_falsename_size]; 8657: __fn.copy(__falsename, _M_falsename_size); 8657: 8657: _M_decimal_point = __np.decimal_point(); 8657: _M_thousands_sep = __np.thousands_sep(); 8657: 8657: const ctype<_CharT>& __ct = use_facet >(__loc); 8657: __ct.widen(__num_base::_S_atoms_out, 8657: __num_base::_S_atoms_out 8657: + __num_base::_S_oend, _M_atoms_out); 8657: __ct.widen(__num_base::_S_atoms_in, 8657: __num_base::_S_atoms_in 8657: + __num_base::_S_iend, _M_atoms_in); 8657: 8657: _M_grouping = __grouping; 8657: _M_truename = __truename; 8657: _M_falsename = __falsename; 8657: _M_allocated = true; 8657: } 8657: catch(...) 8657: { 8657: delete [] __grouping; 8657: delete [] __truename; 8657: delete [] __falsename; 8657: throw; 8657: } 8657: } 8657: # 139 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8657: __attribute__ ((__pure__)) bool 8657: __verify_grouping(const char* __grouping, size_t __grouping_size, 8657: const string& __grouping_tmp) throw (); 8657: 8657: 8657: 8657: template 8657: __attribute ((__abi_tag__ ("cxx11"))) 8657: _InIter 8657: num_get<_CharT, _InIter>:: 8657: _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io, 8657: ios_base::iostate& __err, string& __xtrc) const 8657: { 8657: typedef char_traits<_CharT> __traits_type; 8657: typedef __numpunct_cache<_CharT> __cache_type; 8657: __use_cache<__cache_type> __uc; 8657: const locale& __loc = __io._M_getloc(); 8657: const __cache_type* __lc = __uc(__loc); 8657: const _CharT* __lit = __lc->_M_atoms_in; 8657: char_type __c = char_type(); 8657: 8657: 8657: bool __testeof = __beg == __end; 8657: 8657: 8657: if (!__testeof) 8657: { 8657: __c = *__beg; 8657: const bool __plus = __c == __lit[__num_base::_S_iplus]; 8657: if ((__plus || __c == __lit[__num_base::_S_iminus]) 8657: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8657: && !(__c == __lc->_M_decimal_point)) 8657: { 8657: __xtrc += __plus ? '+' : '-'; 8657: if (++__beg != __end) 8657: __c = *__beg; 8657: else 8657: __testeof = true; 8657: } 8657: } 8657: 8657: 8657: bool __found_mantissa = false; 8657: int __sep_pos = 0; 8657: while (!__testeof) 8657: { 8657: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8657: || __c == __lc->_M_decimal_point) 8657: break; 8657: else if (__c == __lit[__num_base::_S_izero]) 8657: { 8657: if (!__found_mantissa) 8657: { 8657: __xtrc += '0'; 8657: __found_mantissa = true; 8657: } 8657: ++__sep_pos; 8657: 8657: if (++__beg != __end) 8657: __c = *__beg; 8657: else 8657: __testeof = true; 8657: } 8657: else 8657: break; 8657: } 8657: 8657: 8657: bool __found_dec = false; 8657: bool __found_sci = false; 8657: string __found_grouping; 8657: if (__lc->_M_use_grouping) 8657: __found_grouping.reserve(32); 8657: const char_type* __lit_zero = __lit + __num_base::_S_izero; 8657: 8657: if (!__lc->_M_allocated) 8657: 8657: while (!__testeof) 8657: { 8657: const int __digit = _M_find(__lit_zero, 10, __c); 8657: if (__digit != -1) 8657: { 8657: __xtrc += '0' + __digit; 8657: __found_mantissa = true; 8657: } 8657: else if (__c == __lc->_M_decimal_point 8657: && !__found_dec && !__found_sci) 8657: { 8657: __xtrc += '.'; 8657: __found_dec = true; 8657: } 8657: else if ((__c == __lit[__num_base::_S_ie] 8657: || __c == __lit[__num_base::_S_iE]) 8657: && !__found_sci && __found_mantissa) 8657: { 8657: 8657: __xtrc += 'e'; 8657: __found_sci = true; 8657: 8657: 8657: if (++__beg != __end) 8657: { 8657: __c = *__beg; 8657: const bool __plus = __c == __lit[__num_base::_S_iplus]; 8657: if (__plus || __c == __lit[__num_base::_S_iminus]) 8657: __xtrc += __plus ? '+' : '-'; 8657: else 8657: continue; 8657: } 8657: else 8657: { 8657: __testeof = true; 8657: break; 8657: } 8657: } 8657: else 8657: break; 8657: 8657: if (++__beg != __end) 8657: __c = *__beg; 8657: else 8657: __testeof = true; 8657: } 8657: else 8657: while (!__testeof) 8657: { 8657: 8657: 8657: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8657: { 8657: if (!__found_dec && !__found_sci) 8657: { 8657: 8657: 8657: if (__sep_pos) 8657: { 8657: __found_grouping += static_cast(__sep_pos); 8657: __sep_pos = 0; 8657: } 8657: else 8657: { 8657: 8657: 8657: __xtrc.clear(); 8657: break; 8657: } 8657: } 8657: else 8657: break; 8657: } 8657: else if (__c == __lc->_M_decimal_point) 8657: { 8657: if (!__found_dec && !__found_sci) 8657: { 8657: 8657: 8657: 8657: if (__found_grouping.size()) 8657: __found_grouping += static_cast(__sep_pos); 8657: __xtrc += '.'; 8657: __found_dec = true; 8657: } 8657: else 8657: break; 8657: } 8657: else 8657: { 8657: const char_type* __q = 8657: __traits_type::find(__lit_zero, 10, __c); 8657: if (__q) 8657: { 8657: __xtrc += '0' + (__q - __lit_zero); 8657: __found_mantissa = true; 8657: ++__sep_pos; 8657: } 8657: else if ((__c == __lit[__num_base::_S_ie] 8657: || __c == __lit[__num_base::_S_iE]) 8657: && !__found_sci && __found_mantissa) 8657: { 8657: 8657: if (__found_grouping.size() && !__found_dec) 8657: __found_grouping += static_cast(__sep_pos); 8657: __xtrc += 'e'; 8657: __found_sci = true; 8657: 8657: 8657: if (++__beg != __end) 8657: { 8657: __c = *__beg; 8657: const bool __plus = __c == __lit[__num_base::_S_iplus]; 8657: if ((__plus || __c == __lit[__num_base::_S_iminus]) 8657: && !(__lc->_M_use_grouping 8657: && __c == __lc->_M_thousands_sep) 8657: && !(__c == __lc->_M_decimal_point)) 8657: __xtrc += __plus ? '+' : '-'; 8657: else 8657: continue; 8657: } 8657: else 8657: { 8657: __testeof = true; 8657: break; 8657: } 8657: } 8657: else 8657: break; 8657: } 8657: 8657: if (++__beg != __end) 8657: __c = *__beg; 8657: else 8657: __testeof = true; 8657: } 8657: 8657: 8657: 8657: if (__found_grouping.size()) 8657: { 8657: 8657: if (!__found_dec && !__found_sci) 8657: __found_grouping += static_cast(__sep_pos); 8657: 8657: if (!std::__verify_grouping(__lc->_M_grouping, 8657: __lc->_M_grouping_size, 8657: __found_grouping)) 8657: __err = ios_base::failbit; 8657: } 8657: 8657: return __beg; 8657: } 8657: 8657: template 8657: template 8657: __attribute ((__abi_tag__ ("cxx11"))) 8657: _InIter 8657: num_get<_CharT, _InIter>:: 8657: _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io, 8657: ios_base::iostate& __err, _ValueT& __v) const 8657: { 8657: typedef char_traits<_CharT> __traits_type; 8657: using __gnu_cxx::__add_unsigned; 8657: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 8657: typedef __numpunct_cache<_CharT> __cache_type; 8657: __use_cache<__cache_type> __uc; 8657: const locale& __loc = __io._M_getloc(); 8657: const __cache_type* __lc = __uc(__loc); 8657: const _CharT* __lit = __lc->_M_atoms_in; 8657: char_type __c = char_type(); 8657: 8657: 8657: const ios_base::fmtflags __basefield = __io.flags() 8657: & ios_base::basefield; 8657: const bool __oct = __basefield == ios_base::oct; 8657: int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10); 8657: 8657: 8657: bool __testeof = __beg == __end; 8657: 8657: 8657: bool __negative = false; 8657: if (!__testeof) 8657: { 8657: __c = *__beg; 8657: __negative = __c == __lit[__num_base::_S_iminus]; 8657: if ((__negative || __c == __lit[__num_base::_S_iplus]) 8657: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8657: && !(__c == __lc->_M_decimal_point)) 8657: { 8657: if (++__beg != __end) 8657: __c = *__beg; 8657: else 8657: __testeof = true; 8657: } 8657: } 8657: 8657: 8657: 8657: bool __found_zero = false; 8657: int __sep_pos = 0; 8657: while (!__testeof) 8657: { 8657: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8657: || __c == __lc->_M_decimal_point) 8657: break; 8657: else if (__c == __lit[__num_base::_S_izero] 8657: && (!__found_zero || __base == 10)) 8657: { 8657: __found_zero = true; 8657: ++__sep_pos; 8657: if (__basefield == 0) 8657: __base = 8; 8657: if (__base == 8) 8657: __sep_pos = 0; 8657: } 8657: else if (__found_zero 8657: && (__c == __lit[__num_base::_S_ix] 8657: || __c == __lit[__num_base::_S_iX])) 8657: { 8657: if (__basefield == 0) 8657: __base = 16; 8657: if (__base == 16) 8657: { 8657: __found_zero = false; 8657: __sep_pos = 0; 8657: } 8657: else 8657: break; 8657: } 8657: else 8657: break; 8657: 8657: if (++__beg != __end) 8657: { 8657: __c = *__beg; 8657: if (!__found_zero) 8657: break; 8657: } 8657: else 8657: __testeof = true; 8657: } 8657: 8657: 8657: 8657: const size_t __len = (__base == 16 ? __num_base::_S_iend 8657: - __num_base::_S_izero : __base); 8657: 8657: 8657: typedef __gnu_cxx::__numeric_traits<_ValueT> __num_traits; 8657: string __found_grouping; 8657: if (__lc->_M_use_grouping) 8657: __found_grouping.reserve(32); 8657: bool __testfail = false; 8657: bool __testoverflow = false; 8657: const __unsigned_type __max = 8657: (__negative && __num_traits::__is_signed) 8657: ? -static_cast<__unsigned_type>(__num_traits::__min) 8657: : __num_traits::__max; 8657: const __unsigned_type __smax = __max / __base; 8657: __unsigned_type __result = 0; 8657: int __digit = 0; 8657: const char_type* __lit_zero = __lit + __num_base::_S_izero; 8657: 8657: if (!__lc->_M_allocated) 8657: 8657: while (!__testeof) 8657: { 8657: __digit = _M_find(__lit_zero, __len, __c); 8657: if (__digit == -1) 8657: break; 8657: 8657: if (__result > __smax) 8657: __testoverflow = true; 8657: else 8657: { 8657: __result *= __base; 8657: __testoverflow |= __result > __max - __digit; 8657: __result += __digit; 8657: ++__sep_pos; 8657: } 8657: 8657: if (++__beg != __end) 8657: __c = *__beg; 8657: else 8657: __testeof = true; 8657: } 8657: else 8657: while (!__testeof) 8657: { 8657: 8657: 8657: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8657: { 8657: 8657: 8657: if (__sep_pos) 8657: { 8657: __found_grouping += static_cast(__sep_pos); 8657: __sep_pos = 0; 8657: } 8657: else 8657: { 8657: __testfail = true; 8657: break; 8657: } 8657: } 8657: else if (__c == __lc->_M_decimal_point) 8657: break; 8657: else 8657: { 8657: const char_type* __q = 8657: __traits_type::find(__lit_zero, __len, __c); 8657: if (!__q) 8657: break; 8657: 8657: __digit = __q - __lit_zero; 8657: if (__digit > 15) 8657: __digit -= 6; 8657: if (__result > __smax) 8657: __testoverflow = true; 8657: else 8657: { 8657: __result *= __base; 8657: __testoverflow |= __result > __max - __digit; 8657: __result += __digit; 8657: ++__sep_pos; 8657: } 8657: } 8657: 8657: if (++__beg != __end) 8657: __c = *__beg; 8657: else 8657: __testeof = true; 8657: } 8657: 8657: 8657: 8657: if (__found_grouping.size()) 8657: { 8657: 8657: __found_grouping += static_cast(__sep_pos); 8657: 8657: if (!std::__verify_grouping(__lc->_M_grouping, 8657: __lc->_M_grouping_size, 8657: __found_grouping)) 8657: __err = ios_base::failbit; 8657: } 8657: 8657: 8657: 8657: if ((!__sep_pos && !__found_zero && !__found_grouping.size()) 8657: || __testfail) 8657: { 8657: __v = 0; 8657: __err = ios_base::failbit; 8657: } 8657: else if (__testoverflow) 8657: { 8657: if (__negative && __num_traits::__is_signed) 8657: __v = __num_traits::__min; 8657: else 8657: __v = __num_traits::__max; 8657: __err = ios_base::failbit; 8657: } 8657: else 8657: __v = __negative ? -__result : __result; 8657: 8657: if (__testeof) 8657: __err |= ios_base::eofbit; 8657: return __beg; 8657: } 8657: 8657: 8657: 8657: template 8657: _InIter 8657: num_get<_CharT, _InIter>:: 8657: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, bool& __v) const 8657: { 8657: if (!(__io.flags() & ios_base::boolalpha)) 8657: { 8657: 8657: 8657: 8657: long __l = -1; 8657: __beg = _M_extract_int(__beg, __end, __io, __err, __l); 8657: if (__l == 0 || __l == 1) 8657: __v = bool(__l); 8657: else 8657: { 8657: 8657: 8657: __v = true; 8657: __err = ios_base::failbit; 8657: if (__beg == __end) 8657: __err |= ios_base::eofbit; 8657: } 8657: } 8657: else 8657: { 8657: 8657: typedef __numpunct_cache<_CharT> __cache_type; 8657: __use_cache<__cache_type> __uc; 8657: const locale& __loc = __io._M_getloc(); 8657: const __cache_type* __lc = __uc(__loc); 8657: 8657: bool __testf = true; 8657: bool __testt = true; 8657: bool __donef = __lc->_M_falsename_size == 0; 8657: bool __donet = __lc->_M_truename_size == 0; 8657: bool __testeof = false; 8657: size_t __n = 0; 8657: while (!__donef || !__donet) 8657: { 8657: if (__beg == __end) 8657: { 8657: __testeof = true; 8657: break; 8657: } 8657: 8657: const char_type __c = *__beg; 8657: 8657: if (!__donef) 8657: __testf = __c == __lc->_M_falsename[__n]; 8657: 8657: if (!__testf && __donet) 8657: break; 8657: 8657: if (!__donet) 8657: __testt = __c == __lc->_M_truename[__n]; 8657: 8657: if (!__testt && __donef) 8657: break; 8657: 8657: if (!__testt && !__testf) 8657: break; 8657: 8657: ++__n; 8657: ++__beg; 8657: 8657: __donef = !__testf || __n >= __lc->_M_falsename_size; 8657: __donet = !__testt || __n >= __lc->_M_truename_size; 8657: } 8657: if (__testf && __n == __lc->_M_falsename_size && __n) 8657: { 8657: __v = false; 8657: if (__testt && __n == __lc->_M_truename_size) 8657: __err = ios_base::failbit; 8657: else 8657: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 8657: } 8657: else if (__testt && __n == __lc->_M_truename_size && __n) 8657: { 8657: __v = true; 8657: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 8657: } 8657: else 8657: { 8657: 8657: 8657: __v = false; 8657: __err = ios_base::failbit; 8657: if (__testeof) 8657: __err |= ios_base::eofbit; 8657: } 8657: } 8657: return __beg; 8657: } 8657: 8657: template 8657: _InIter 8657: num_get<_CharT, _InIter>:: 8657: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, float& __v) const 8657: { 8657: string __xtrc; 8657: __xtrc.reserve(32); 8657: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 8657: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 8657: if (__beg == __end) 8657: __err |= ios_base::eofbit; 8657: return __beg; 8657: } 8657: 8657: template 8657: _InIter 8657: num_get<_CharT, _InIter>:: 8657: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, double& __v) const 8657: { 8657: string __xtrc; 8657: __xtrc.reserve(32); 8657: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 8657: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 8657: if (__beg == __end) 8657: __err |= ios_base::eofbit; 8657: return __beg; 8657: } 8657: # 735 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8657: template 8657: _InIter 8657: num_get<_CharT, _InIter>:: 8657: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, long double& __v) const 8657: { 8657: string __xtrc; 8657: __xtrc.reserve(32); 8657: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 8657: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 8657: if (__beg == __end) 8657: __err |= ios_base::eofbit; 8657: return __beg; 8657: } 8657: 8657: template 8657: _InIter 8657: num_get<_CharT, _InIter>:: 8657: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8657: ios_base::iostate& __err, void*& __v) const 8657: { 8657: 8657: typedef ios_base::fmtflags fmtflags; 8657: const fmtflags __fmt = __io.flags(); 8657: __io.flags((__fmt & ~ios_base::basefield) | ios_base::hex); 8657: 8657: typedef __gnu_cxx::__conditional_type<(sizeof(void*) 8657: <= sizeof(unsigned long)), 8657: unsigned long, unsigned long long>::__type _UIntPtrType; 8657: 8657: _UIntPtrType __ul; 8657: __beg = _M_extract_int(__beg, __end, __io, __err, __ul); 8657: 8657: 8657: __io.flags(__fmt); 8657: 8657: __v = reinterpret_cast(__ul); 8657: return __beg; 8657: } 8657: 8657: 8657: 8657: template 8657: void 8657: num_put<_CharT, _OutIter>:: 8657: _M_pad(_CharT __fill, streamsize __w, ios_base& __io, 8657: _CharT* __new, const _CharT* __cs, int& __len) const 8657: { 8657: 8657: 8657: __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, 8657: __cs, __w, __len); 8657: __len = static_cast(__w); 8657: } 8657: 8657: 8657: 8657: template 8657: int 8657: __int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit, 8657: ios_base::fmtflags __flags, bool __dec) 8657: { 8657: _CharT* __buf = __bufend; 8657: if (__builtin_expect(__dec, true)) 8657: { 8657: 8657: do 8657: { 8657: *--__buf = __lit[(__v % 10) + __num_base::_S_odigits]; 8657: __v /= 10; 8657: } 8657: while (__v != 0); 8657: } 8657: else if ((__flags & ios_base::basefield) == ios_base::oct) 8657: { 8657: 8657: do 8657: { 8657: *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits]; 8657: __v >>= 3; 8657: } 8657: while (__v != 0); 8657: } 8657: else 8657: { 8657: 8657: const bool __uppercase = __flags & ios_base::uppercase; 8657: const int __case_offset = __uppercase ? __num_base::_S_oudigits 8657: : __num_base::_S_odigits; 8657: do 8657: { 8657: *--__buf = __lit[(__v & 0xf) + __case_offset]; 8657: __v >>= 4; 8657: } 8657: while (__v != 0); 8657: } 8657: return __bufend - __buf; 8657: } 8657: 8657: 8657: 8657: template 8657: void 8657: num_put<_CharT, _OutIter>:: 8657: _M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep, 8657: ios_base&, _CharT* __new, _CharT* __cs, int& __len) const 8657: { 8657: _CharT* __p = std::__add_grouping(__new, __sep, __grouping, 8657: __grouping_size, __cs, __cs + __len); 8657: __len = __p - __new; 8657: } 8657: 8657: template 8657: template 8657: _OutIter 8657: num_put<_CharT, _OutIter>:: 8657: _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill, 8657: _ValueT __v) const 8657: { 8657: using __gnu_cxx::__add_unsigned; 8657: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 8657: typedef __numpunct_cache<_CharT> __cache_type; 8657: __use_cache<__cache_type> __uc; 8657: const locale& __loc = __io._M_getloc(); 8657: const __cache_type* __lc = __uc(__loc); 8657: const _CharT* __lit = __lc->_M_atoms_out; 8657: const ios_base::fmtflags __flags = __io.flags(); 8657: 8657: 8657: const int __ilen = 5 * sizeof(_ValueT); 8657: _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8657: * __ilen)); 8657: 8657: 8657: 8657: const ios_base::fmtflags __basefield = __flags & ios_base::basefield; 8657: const bool __dec = (__basefield != ios_base::oct 8657: && __basefield != ios_base::hex); 8657: const __unsigned_type __u = ((__v > 0 || !__dec) 8657: ? __unsigned_type(__v) 8657: : -__unsigned_type(__v)); 8657: int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec); 8657: __cs += __ilen - __len; 8657: 8657: 8657: if (__lc->_M_use_grouping) 8657: { 8657: 8657: 8657: _CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8657: * (__len + 1) 8657: * 2)); 8657: _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size, 8657: __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len); 8657: __cs = __cs2 + 2; 8657: } 8657: 8657: 8657: if (__builtin_expect(__dec, true)) 8657: { 8657: 8657: if (__v >= 0) 8657: { 8657: if (bool(__flags & ios_base::showpos) 8657: && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) 8657: *--__cs = __lit[__num_base::_S_oplus], ++__len; 8657: } 8657: else 8657: *--__cs = __lit[__num_base::_S_ominus], ++__len; 8657: } 8657: else if (bool(__flags & ios_base::showbase) && __v) 8657: { 8657: if (__basefield == ios_base::oct) 8657: *--__cs = __lit[__num_base::_S_odigits], ++__len; 8657: else 8657: { 8657: 8657: const bool __uppercase = __flags & ios_base::uppercase; 8657: *--__cs = __lit[__num_base::_S_ox + __uppercase]; 8657: 8657: *--__cs = __lit[__num_base::_S_odigits]; 8657: __len += 2; 8657: } 8657: } 8657: 8657: 8657: const streamsize __w = __io.width(); 8657: if (__w > static_cast(__len)) 8657: { 8657: _CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8657: * __w)); 8657: _M_pad(__fill, __w, __io, __cs3, __cs, __len); 8657: __cs = __cs3; 8657: } 8657: __io.width(0); 8657: 8657: 8657: 8657: return std::__write(__s, __cs, __len); 8657: } 8657: 8657: template 8657: void 8657: num_put<_CharT, _OutIter>:: 8657: _M_group_float(const char* __grouping, size_t __grouping_size, 8657: _CharT __sep, const _CharT* __p, _CharT* __new, 8657: _CharT* __cs, int& __len) const 8657: { 8657: 8657: 8657: 8657: const int __declen = __p ? __p - __cs : __len; 8657: _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping, 8657: __grouping_size, 8657: __cs, __cs + __declen); 8657: 8657: 8657: int __newlen = __p2 - __new; 8657: if (__p) 8657: { 8657: char_traits<_CharT>::copy(__p2, __p, __len - __declen); 8657: __newlen += __len - __declen; 8657: } 8657: __len = __newlen; 8657: } 8657: # 971 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8657: template 8657: template 8657: _OutIter 8657: num_put<_CharT, _OutIter>:: 8657: _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod, 8657: _ValueT __v) const 8657: { 8657: typedef __numpunct_cache<_CharT> __cache_type; 8657: __use_cache<__cache_type> __uc; 8657: const locale& __loc = __io._M_getloc(); 8657: const __cache_type* __lc = __uc(__loc); 8657: 8657: 8657: const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision(); 8657: 8657: const int __max_digits = 8657: __gnu_cxx::__numeric_traits<_ValueT>::__digits10; 8657: 8657: 8657: int __len; 8657: 8657: char __fbuf[16]; 8657: __num_base::_S_format_float(__io, __fbuf, __mod); 8657: 8657: 8657: 8657: const bool __use_prec = 8657: (__io.flags() & ios_base::floatfield) != ios_base::floatfield; 8657: 8657: 8657: 8657: int __cs_size = __max_digits * 3; 8657: char* __cs = static_cast(__builtin_alloca(__cs_size)); 8657: if (__use_prec) 8657: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8657: __fbuf, __prec, __v); 8657: else 8657: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8657: __fbuf, __v); 8657: 8657: 8657: if (__len >= __cs_size) 8657: { 8657: __cs_size = __len + 1; 8657: __cs = static_cast(__builtin_alloca(__cs_size)); 8657: if (__use_prec) 8657: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8657: __fbuf, __prec, __v); 8657: else 8657: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8657: __fbuf, __v); 8657: } 8657: # 1044 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8657: const ctype<_CharT>& __ctype = use_facet >(__loc); 8657: 8657: _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8657: * __len)); 8657: __ctype.widen(__cs, __cs + __len, __ws); 8657: 8657: 8657: _CharT* __wp = 0; 8657: const char* __p = char_traits::find(__cs, __len, '.'); 8657: if (__p) 8657: { 8657: __wp = __ws + (__p - __cs); 8657: *__wp = __lc->_M_decimal_point; 8657: } 8657: 8657: 8657: 8657: 8657: if (__lc->_M_use_grouping 8657: && (__wp || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9' 8657: && __cs[1] >= '0' && __cs[2] >= '0'))) 8657: { 8657: 8657: 8657: _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8657: * __len * 2)); 8657: 8657: streamsize __off = 0; 8657: if (__cs[0] == '-' || __cs[0] == '+') 8657: { 8657: __off = 1; 8657: __ws2[0] = __ws[0]; 8657: __len -= 1; 8657: } 8657: 8657: _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size, 8657: __lc->_M_thousands_sep, __wp, __ws2 + __off, 8657: __ws + __off, __len); 8657: __len += __off; 8657: 8657: __ws = __ws2; 8657: } 8657: 8657: 8657: const streamsize __w = __io.width(); 8657: if (__w > static_cast(__len)) 8657: { 8657: _CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8657: * __w)); 8657: _M_pad(__fill, __w, __io, __ws3, __ws, __len); 8657: __ws = __ws3; 8657: } 8657: __io.width(0); 8657: 8657: 8657: 8657: return std::__write(__s, __ws, __len); 8657: } 8657: 8657: template 8657: _OutIter 8657: num_put<_CharT, _OutIter>:: 8657: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 8657: { 8657: const ios_base::fmtflags __flags = __io.flags(); 8657: if ((__flags & ios_base::boolalpha) == 0) 8657: { 8657: const long __l = __v; 8657: __s = _M_insert_int(__s, __io, __fill, __l); 8657: } 8657: else 8657: { 8657: typedef __numpunct_cache<_CharT> __cache_type; 8657: __use_cache<__cache_type> __uc; 8657: const locale& __loc = __io._M_getloc(); 8657: const __cache_type* __lc = __uc(__loc); 8657: 8657: const _CharT* __name = __v ? __lc->_M_truename 8657: : __lc->_M_falsename; 8657: int __len = __v ? __lc->_M_truename_size 8657: : __lc->_M_falsename_size; 8657: 8657: const streamsize __w = __io.width(); 8657: if (__w > static_cast(__len)) 8657: { 8657: const streamsize __plen = __w - __len; 8657: _CharT* __ps 8657: = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8657: * __plen)); 8657: 8657: char_traits<_CharT>::assign(__ps, __plen, __fill); 8657: __io.width(0); 8657: 8657: if ((__flags & ios_base::adjustfield) == ios_base::left) 8657: { 8657: __s = std::__write(__s, __name, __len); 8657: __s = std::__write(__s, __ps, __plen); 8657: } 8657: else 8657: { 8657: __s = std::__write(__s, __ps, __plen); 8657: __s = std::__write(__s, __name, __len); 8657: } 8657: return __s; 8657: } 8657: __io.width(0); 8657: __s = std::__write(__s, __name, __len); 8657: } 8657: return __s; 8657: } 8657: 8657: template 8657: _OutIter 8657: num_put<_CharT, _OutIter>:: 8657: do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 8657: { return _M_insert_float(__s, __io, __fill, char(), __v); } 8657: # 1169 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8657: template 8657: _OutIter 8657: num_put<_CharT, _OutIter>:: 8657: do_put(iter_type __s, ios_base& __io, char_type __fill, 8657: long double __v) const 8657: { return _M_insert_float(__s, __io, __fill, 'L', __v); } 8657: 8657: template 8657: _OutIter 8657: num_put<_CharT, _OutIter>:: 8657: do_put(iter_type __s, ios_base& __io, char_type __fill, 8657: const void* __v) const 8657: { 8657: const ios_base::fmtflags __flags = __io.flags(); 8657: const ios_base::fmtflags __fmt = ~(ios_base::basefield 8657: | ios_base::uppercase); 8657: __io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase)); 8657: 8657: typedef __gnu_cxx::__conditional_type<(sizeof(const void*) 8657: <= sizeof(unsigned long)), 8657: unsigned long, unsigned long long>::__type _UIntPtrType; 8657: 8657: __s = _M_insert_int(__s, __io, __fill, 8657: reinterpret_cast<_UIntPtrType>(__v)); 8657: __io.flags(__flags); 8657: return __s; 8657: } 8657: 8657: 8657: # 1206 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8657: template 8657: void 8657: __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill, 8657: _CharT* __news, const _CharT* __olds, 8657: streamsize __newlen, streamsize __oldlen) 8657: { 8657: const size_t __plen = static_cast(__newlen - __oldlen); 8657: const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield; 8657: 8657: 8657: if (__adjust == ios_base::left) 8657: { 8657: _Traits::copy(__news, __olds, __oldlen); 8657: _Traits::assign(__news + __oldlen, __plen, __fill); 8657: return; 8657: } 8657: 8657: size_t __mod = 0; 8657: if (__adjust == ios_base::internal) 8657: { 8657: 8657: 8657: 8657: const locale& __loc = __io._M_getloc(); 8657: const ctype<_CharT>& __ctype = use_facet >(__loc); 8657: 8657: if (__ctype.widen('-') == __olds[0] 8657: || __ctype.widen('+') == __olds[0]) 8657: { 8657: __news[0] = __olds[0]; 8657: __mod = 1; 8657: ++__news; 8657: } 8657: else if (__ctype.widen('0') == __olds[0] 8657: && __oldlen > 1 8657: && (__ctype.widen('x') == __olds[1] 8657: || __ctype.widen('X') == __olds[1])) 8657: { 8657: __news[0] = __olds[0]; 8657: __news[1] = __olds[1]; 8657: __mod = 2; 8657: __news += 2; 8657: } 8657: 8657: } 8657: _Traits::assign(__news, __plen, __fill); 8657: _Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod); 8657: } 8657: 8657: template 8657: _CharT* 8657: __add_grouping(_CharT* __s, _CharT __sep, 8657: const char* __gbeg, size_t __gsize, 8657: const _CharT* __first, const _CharT* __last) 8657: { 8657: size_t __idx = 0; 8657: size_t __ctr = 0; 8657: 8657: while (__last - __first > __gbeg[__idx] 8657: && static_cast(__gbeg[__idx]) > 0 8657: && __gbeg[__idx] != __gnu_cxx::__numeric_traits::__max) 8657: { 8657: __last -= __gbeg[__idx]; 8657: __idx < __gsize - 1 ? ++__idx : ++__ctr; 8657: } 8657: 8657: while (__first != __last) 8657: *__s++ = *__first++; 8657: 8657: while (__ctr--) 8657: { 8657: *__s++ = __sep; 8657: for (char __i = __gbeg[__idx]; __i > 0; --__i) 8657: *__s++ = *__first++; 8657: } 8657: 8657: while (__idx--) 8657: { 8657: *__s++ = __sep; 8657: for (char __i = __gbeg[__idx]; __i > 0; --__i) 8657: *__s++ = *__first++; 8657: } 8657: 8657: return __s; 8657: } 8657: 8657: 8657: 8657: 8657: extern template class __cxx11:: numpunct; 8657: extern template class __cxx11:: numpunct_byname; 8657: extern template class num_get; 8657: extern template class num_put; 8657: extern template class ctype_byname; 8657: 8657: extern template 8657: const ctype& 8657: use_facet >(const locale&); 8657: 8657: extern template 8657: const numpunct& 8657: use_facet >(const locale&); 8657: 8657: extern template 8657: const num_put& 8657: use_facet >(const locale&); 8657: 8657: extern template 8657: const num_get& 8657: use_facet >(const locale&); 8657: 8657: extern template 8657: bool 8657: has_facet >(const locale&); 8657: 8657: extern template 8657: bool 8657: has_facet >(const locale&); 8657: 8657: extern template 8657: bool 8657: has_facet >(const locale&); 8657: 8657: extern template 8657: bool 8657: has_facet >(const locale&); 8657: 8657: 8657: extern template class __cxx11:: numpunct; 8657: extern template class __cxx11:: numpunct_byname; 8657: extern template class num_get; 8657: extern template class num_put; 8657: extern template class ctype_byname; 8657: 8657: extern template 8657: const ctype& 8657: use_facet >(const locale&); 8657: 8657: extern template 8657: const numpunct& 8657: use_facet >(const locale&); 8657: 8657: extern template 8657: const num_put& 8657: use_facet >(const locale&); 8657: 8657: extern template 8657: const num_get& 8657: use_facet >(const locale&); 8657: 8657: extern template 8657: bool 8657: has_facet >(const locale&); 8657: 8657: extern template 8657: bool 8657: has_facet >(const locale&); 8657: 8657: extern template 8657: bool 8657: has_facet >(const locale&); 8657: 8657: extern template 8657: bool 8657: has_facet >(const locale&); 8657: 8657: 8657: 8657: 8657: } 8657: # 2652 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8657: # 38 "/usr/include/c++/8/bits/basic_ios.h" 2 3 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: template 8657: inline const _Facet& 8657: __check_facet(const _Facet* __f) 8657: { 8657: if (!__f) 8657: __throw_bad_cast(); 8657: return *__f; 8657: } 8657: # 66 "/usr/include/c++/8/bits/basic_ios.h" 3 8657: template 8657: class basic_ios : public ios_base 8657: { 8657: public: 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef _CharT char_type; 8657: typedef typename _Traits::int_type int_type; 8657: typedef typename _Traits::pos_type pos_type; 8657: typedef typename _Traits::off_type off_type; 8657: typedef _Traits traits_type; 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef ctype<_CharT> __ctype_type; 8657: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 8657: __num_put_type; 8657: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 8657: __num_get_type; 8657: 8657: 8657: 8657: protected: 8657: basic_ostream<_CharT, _Traits>* _M_tie; 8657: mutable char_type _M_fill; 8657: mutable bool _M_fill_init; 8657: basic_streambuf<_CharT, _Traits>* _M_streambuf; 8657: 8657: 8657: const __ctype_type* _M_ctype; 8657: 8657: const __num_put_type* _M_num_put; 8657: 8657: const __num_get_type* _M_num_get; 8657: 8657: public: 8657: # 117 "/usr/include/c++/8/bits/basic_ios.h" 3 8657: explicit operator bool() const 8657: { return !this->fail(); } 8657: 8657: 8657: 8657: 8657: 8657: bool 8657: operator!() const 8657: { return this->fail(); } 8657: # 136 "/usr/include/c++/8/bits/basic_ios.h" 3 8657: iostate 8657: rdstate() const 8657: { return _M_streambuf_state; } 8657: # 147 "/usr/include/c++/8/bits/basic_ios.h" 3 8657: void 8657: clear(iostate __state = goodbit); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: void 8657: setstate(iostate __state) 8657: { this->clear(this->rdstate() | __state); } 8657: 8657: 8657: 8657: 8657: void 8657: _M_setstate(iostate __state) 8657: { 8657: 8657: 8657: _M_streambuf_state |= __state; 8657: if (this->exceptions() & __state) 8657: throw; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: bool 8657: good() const 8657: { return this->rdstate() == 0; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: bool 8657: eof() const 8657: { return (this->rdstate() & eofbit) != 0; } 8657: # 200 "/usr/include/c++/8/bits/basic_ios.h" 3 8657: bool 8657: fail() const 8657: { return (this->rdstate() & (badbit | failbit)) != 0; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: bool 8657: bad() const 8657: { return (this->rdstate() & badbit) != 0; } 8657: # 221 "/usr/include/c++/8/bits/basic_ios.h" 3 8657: iostate 8657: exceptions() const 8657: { return _M_exception; } 8657: # 256 "/usr/include/c++/8/bits/basic_ios.h" 3 8657: void 8657: exceptions(iostate __except) 8657: { 8657: _M_exception = __except; 8657: this->clear(_M_streambuf_state); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: explicit 8657: basic_ios(basic_streambuf<_CharT, _Traits>* __sb) 8657: : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0), 8657: _M_ctype(0), _M_num_put(0), _M_num_get(0) 8657: { this->init(__sb); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: virtual 8657: ~basic_ios() { } 8657: # 294 "/usr/include/c++/8/bits/basic_ios.h" 3 8657: basic_ostream<_CharT, _Traits>* 8657: tie() const 8657: { return _M_tie; } 8657: # 306 "/usr/include/c++/8/bits/basic_ios.h" 3 8657: basic_ostream<_CharT, _Traits>* 8657: tie(basic_ostream<_CharT, _Traits>* __tiestr) 8657: { 8657: basic_ostream<_CharT, _Traits>* __old = _M_tie; 8657: _M_tie = __tiestr; 8657: return __old; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: basic_streambuf<_CharT, _Traits>* 8657: rdbuf() const 8657: { return _M_streambuf; } 8657: # 346 "/usr/include/c++/8/bits/basic_ios.h" 3 8657: basic_streambuf<_CharT, _Traits>* 8657: rdbuf(basic_streambuf<_CharT, _Traits>* __sb); 8657: # 360 "/usr/include/c++/8/bits/basic_ios.h" 3 8657: basic_ios& 8657: copyfmt(const basic_ios& __rhs); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: char_type 8657: fill() const 8657: { 8657: if (!_M_fill_init) 8657: { 8657: _M_fill = this->widen(' '); 8657: _M_fill_init = true; 8657: } 8657: return _M_fill; 8657: } 8657: # 389 "/usr/include/c++/8/bits/basic_ios.h" 3 8657: char_type 8657: fill(char_type __ch) 8657: { 8657: char_type __old = this->fill(); 8657: _M_fill = __ch; 8657: return __old; 8657: } 8657: # 409 "/usr/include/c++/8/bits/basic_ios.h" 3 8657: locale 8657: imbue(const locale& __loc); 8657: # 429 "/usr/include/c++/8/bits/basic_ios.h" 3 8657: char 8657: narrow(char_type __c, char __dfault) const 8657: { return __check_facet(_M_ctype).narrow(__c, __dfault); } 8657: # 448 "/usr/include/c++/8/bits/basic_ios.h" 3 8657: char_type 8657: widen(char __c) const 8657: { return __check_facet(_M_ctype).widen(__c); } 8657: 8657: protected: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: basic_ios() 8657: : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false), 8657: _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0) 8657: { } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: void 8657: init(basic_streambuf<_CharT, _Traits>* __sb); 8657: 8657: 8657: basic_ios(const basic_ios&) = delete; 8657: basic_ios& operator=(const basic_ios&) = delete; 8657: 8657: void 8657: move(basic_ios& __rhs) 8657: { 8657: ios_base::_M_move(__rhs); 8657: _M_cache_locale(_M_ios_locale); 8657: this->tie(__rhs.tie(nullptr)); 8657: _M_fill = __rhs._M_fill; 8657: _M_fill_init = __rhs._M_fill_init; 8657: _M_streambuf = nullptr; 8657: } 8657: 8657: void 8657: move(basic_ios&& __rhs) 8657: { this->move(__rhs); } 8657: 8657: void 8657: swap(basic_ios& __rhs) noexcept 8657: { 8657: ios_base::_M_swap(__rhs); 8657: _M_cache_locale(_M_ios_locale); 8657: __rhs._M_cache_locale(__rhs._M_ios_locale); 8657: std::swap(_M_tie, __rhs._M_tie); 8657: std::swap(_M_fill, __rhs._M_fill); 8657: std::swap(_M_fill_init, __rhs._M_fill_init); 8657: } 8657: 8657: void 8657: set_rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 8657: { _M_streambuf = __sb; } 8657: 8657: 8657: void 8657: _M_cache_locale(const locale& __loc); 8657: }; 8657: 8657: 8657: } 8657: 8657: # 1 "/usr/include/c++/8/bits/basic_ios.tcc" 1 3 8657: # 33 "/usr/include/c++/8/bits/basic_ios.tcc" 3 8657: 8657: # 34 "/usr/include/c++/8/bits/basic_ios.tcc" 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: template 8657: void 8657: basic_ios<_CharT, _Traits>::clear(iostate __state) 8657: { 8657: if (this->rdbuf()) 8657: _M_streambuf_state = __state; 8657: else 8657: _M_streambuf_state = __state | badbit; 8657: if (this->exceptions() & this->rdstate()) 8657: __throw_ios_failure(("basic_ios::clear")); 8657: } 8657: 8657: template 8657: basic_streambuf<_CharT, _Traits>* 8657: basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 8657: { 8657: basic_streambuf<_CharT, _Traits>* __old = _M_streambuf; 8657: _M_streambuf = __sb; 8657: this->clear(); 8657: return __old; 8657: } 8657: 8657: template 8657: basic_ios<_CharT, _Traits>& 8657: basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs) 8657: { 8657: 8657: 8657: if (this != &__rhs) 8657: { 8657: 8657: 8657: 8657: 8657: _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ? 8657: _M_local_word : new _Words[__rhs._M_word_size]; 8657: 8657: 8657: _Callback_list* __cb = __rhs._M_callbacks; 8657: if (__cb) 8657: __cb->_M_add_reference(); 8657: _M_call_callbacks(erase_event); 8657: if (_M_word != _M_local_word) 8657: { 8657: delete [] _M_word; 8657: _M_word = 0; 8657: } 8657: _M_dispose_callbacks(); 8657: 8657: 8657: _M_callbacks = __cb; 8657: for (int __i = 0; __i < __rhs._M_word_size; ++__i) 8657: __words[__i] = __rhs._M_word[__i]; 8657: _M_word = __words; 8657: _M_word_size = __rhs._M_word_size; 8657: 8657: this->flags(__rhs.flags()); 8657: this->width(__rhs.width()); 8657: this->precision(__rhs.precision()); 8657: this->tie(__rhs.tie()); 8657: this->fill(__rhs.fill()); 8657: _M_ios_locale = __rhs.getloc(); 8657: _M_cache_locale(_M_ios_locale); 8657: 8657: _M_call_callbacks(copyfmt_event); 8657: 8657: 8657: this->exceptions(__rhs.exceptions()); 8657: } 8657: return *this; 8657: } 8657: 8657: 8657: template 8657: locale 8657: basic_ios<_CharT, _Traits>::imbue(const locale& __loc) 8657: { 8657: locale __old(this->getloc()); 8657: ios_base::imbue(__loc); 8657: _M_cache_locale(__loc); 8657: if (this->rdbuf() != 0) 8657: this->rdbuf()->pubimbue(__loc); 8657: return __old; 8657: } 8657: 8657: template 8657: void 8657: basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb) 8657: { 8657: 8657: ios_base::_M_init(); 8657: 8657: 8657: _M_cache_locale(_M_ios_locale); 8657: # 146 "/usr/include/c++/8/bits/basic_ios.tcc" 3 8657: _M_fill = _CharT(); 8657: _M_fill_init = false; 8657: 8657: _M_tie = 0; 8657: _M_exception = goodbit; 8657: _M_streambuf = __sb; 8657: _M_streambuf_state = __sb ? goodbit : badbit; 8657: } 8657: 8657: template 8657: void 8657: basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc) 8657: { 8657: if (__builtin_expect(has_facet<__ctype_type>(__loc), true)) 8657: _M_ctype = std::__addressof(use_facet<__ctype_type>(__loc)); 8657: else 8657: _M_ctype = 0; 8657: 8657: if (__builtin_expect(has_facet<__num_put_type>(__loc), true)) 8657: _M_num_put = std::__addressof(use_facet<__num_put_type>(__loc)); 8657: else 8657: _M_num_put = 0; 8657: 8657: if (__builtin_expect(has_facet<__num_get_type>(__loc), true)) 8657: _M_num_get = std::__addressof(use_facet<__num_get_type>(__loc)); 8657: else 8657: _M_num_get = 0; 8657: } 8657: 8657: 8657: 8657: 8657: extern template class basic_ios; 8657: 8657: 8657: extern template class basic_ios; 8657: 8657: 8657: 8657: 8657: } 8657: # 517 "/usr/include/c++/8/bits/basic_ios.h" 2 3 8657: # 45 "/usr/include/c++/8/ios" 2 3 8657: # 39 "/usr/include/c++/8/ostream" 2 3 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 57 "/usr/include/c++/8/ostream" 3 8657: template 8657: class basic_ostream : virtual public basic_ios<_CharT, _Traits> 8657: { 8657: public: 8657: 8657: typedef _CharT char_type; 8657: typedef typename _Traits::int_type int_type; 8657: typedef typename _Traits::pos_type pos_type; 8657: typedef typename _Traits::off_type off_type; 8657: typedef _Traits traits_type; 8657: 8657: 8657: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8657: typedef basic_ios<_CharT, _Traits> __ios_type; 8657: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8657: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 8657: __num_put_type; 8657: typedef ctype<_CharT> __ctype_type; 8657: # 83 "/usr/include/c++/8/ostream" 3 8657: explicit 8657: basic_ostream(__streambuf_type* __sb) 8657: { this->init(__sb); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: virtual 8657: ~basic_ostream() { } 8657: 8657: 8657: class sentry; 8657: friend class sentry; 8657: # 107 "/usr/include/c++/8/ostream" 3 8657: __ostream_type& 8657: operator<<(__ostream_type& (*__pf)(__ostream_type&)) 8657: { 8657: 8657: 8657: 8657: return __pf(*this); 8657: } 8657: 8657: __ostream_type& 8657: operator<<(__ios_type& (*__pf)(__ios_type&)) 8657: { 8657: 8657: 8657: 8657: __pf(*this); 8657: return *this; 8657: } 8657: 8657: __ostream_type& 8657: operator<<(ios_base& (*__pf) (ios_base&)) 8657: { 8657: 8657: 8657: 8657: __pf(*this); 8657: return *this; 8657: } 8657: # 165 "/usr/include/c++/8/ostream" 3 8657: __ostream_type& 8657: operator<<(long __n) 8657: { return _M_insert(__n); } 8657: 8657: __ostream_type& 8657: operator<<(unsigned long __n) 8657: { return _M_insert(__n); } 8657: 8657: __ostream_type& 8657: operator<<(bool __n) 8657: { return _M_insert(__n); } 8657: 8657: __ostream_type& 8657: operator<<(short __n); 8657: 8657: __ostream_type& 8657: operator<<(unsigned short __n) 8657: { 8657: 8657: 8657: return _M_insert(static_cast(__n)); 8657: } 8657: 8657: __ostream_type& 8657: operator<<(int __n); 8657: 8657: __ostream_type& 8657: operator<<(unsigned int __n) 8657: { 8657: 8657: 8657: return _M_insert(static_cast(__n)); 8657: } 8657: 8657: 8657: __ostream_type& 8657: operator<<(long long __n) 8657: { return _M_insert(__n); } 8657: 8657: __ostream_type& 8657: operator<<(unsigned long long __n) 8657: { return _M_insert(__n); } 8657: # 219 "/usr/include/c++/8/ostream" 3 8657: __ostream_type& 8657: operator<<(double __f) 8657: { return _M_insert(__f); } 8657: 8657: __ostream_type& 8657: operator<<(float __f) 8657: { 8657: 8657: 8657: return _M_insert(static_cast(__f)); 8657: } 8657: 8657: __ostream_type& 8657: operator<<(long double __f) 8657: { return _M_insert(__f); } 8657: # 244 "/usr/include/c++/8/ostream" 3 8657: __ostream_type& 8657: operator<<(const void* __p) 8657: { return _M_insert(__p); } 8657: # 269 "/usr/include/c++/8/ostream" 3 8657: __ostream_type& 8657: operator<<(__streambuf_type* __sb); 8657: # 302 "/usr/include/c++/8/ostream" 3 8657: __ostream_type& 8657: put(char_type __c); 8657: 8657: 8657: 8657: 8657: 8657: 8657: void 8657: _M_write(const char_type* __s, streamsize __n) 8657: { 8657: const streamsize __put = this->rdbuf()->sputn(__s, __n); 8657: if (__put != __n) 8657: this->setstate(ios_base::badbit); 8657: } 8657: # 334 "/usr/include/c++/8/ostream" 3 8657: __ostream_type& 8657: write(const char_type* __s, streamsize __n); 8657: # 347 "/usr/include/c++/8/ostream" 3 8657: __ostream_type& 8657: flush(); 8657: # 357 "/usr/include/c++/8/ostream" 3 8657: pos_type 8657: tellp(); 8657: # 368 "/usr/include/c++/8/ostream" 3 8657: __ostream_type& 8657: seekp(pos_type); 8657: # 380 "/usr/include/c++/8/ostream" 3 8657: __ostream_type& 8657: seekp(off_type, ios_base::seekdir); 8657: 8657: protected: 8657: basic_ostream() 8657: { this->init(0); } 8657: 8657: 8657: 8657: basic_ostream(basic_iostream<_CharT, _Traits>&) { } 8657: 8657: basic_ostream(const basic_ostream&) = delete; 8657: 8657: basic_ostream(basic_ostream&& __rhs) 8657: : __ios_type() 8657: { __ios_type::move(__rhs); } 8657: 8657: 8657: 8657: basic_ostream& operator=(const basic_ostream&) = delete; 8657: 8657: basic_ostream& 8657: operator=(basic_ostream&& __rhs) 8657: { 8657: swap(__rhs); 8657: return *this; 8657: } 8657: 8657: void 8657: swap(basic_ostream& __rhs) 8657: { __ios_type::swap(__rhs); } 8657: 8657: 8657: template 8657: __ostream_type& 8657: _M_insert(_ValueT __v); 8657: }; 8657: # 425 "/usr/include/c++/8/ostream" 3 8657: template 8657: class basic_ostream<_CharT, _Traits>::sentry 8657: { 8657: 8657: bool _M_ok; 8657: basic_ostream<_CharT, _Traits>& _M_os; 8657: 8657: public: 8657: # 444 "/usr/include/c++/8/ostream" 3 8657: explicit 8657: sentry(basic_ostream<_CharT, _Traits>& __os); 8657: # 454 "/usr/include/c++/8/ostream" 3 8657: ~sentry() 8657: { 8657: 8657: if (bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception()) 8657: { 8657: 8657: if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1) 8657: _M_os.setstate(ios_base::badbit); 8657: } 8657: } 8657: # 473 "/usr/include/c++/8/ostream" 3 8657: explicit 8657: 8657: operator bool() const 8657: { return _M_ok; } 8657: }; 8657: # 495 "/usr/include/c++/8/ostream" 3 8657: template 8657: inline basic_ostream<_CharT, _Traits>& 8657: operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c) 8657: { return __ostream_insert(__out, &__c, 1); } 8657: 8657: template 8657: inline basic_ostream<_CharT, _Traits>& 8657: operator<<(basic_ostream<_CharT, _Traits>& __out, char __c) 8657: { return (__out << __out.widen(__c)); } 8657: 8657: 8657: template 8657: inline basic_ostream& 8657: operator<<(basic_ostream& __out, char __c) 8657: { return __ostream_insert(__out, &__c, 1); } 8657: 8657: 8657: template 8657: inline basic_ostream& 8657: operator<<(basic_ostream& __out, signed char __c) 8657: { return (__out << static_cast(__c)); } 8657: 8657: template 8657: inline basic_ostream& 8657: operator<<(basic_ostream& __out, unsigned char __c) 8657: { return (__out << static_cast(__c)); } 8657: # 537 "/usr/include/c++/8/ostream" 3 8657: template 8657: inline basic_ostream<_CharT, _Traits>& 8657: operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s) 8657: { 8657: if (!__s) 8657: __out.setstate(ios_base::badbit); 8657: else 8657: __ostream_insert(__out, __s, 8657: static_cast(_Traits::length(__s))); 8657: return __out; 8657: } 8657: 8657: template 8657: basic_ostream<_CharT, _Traits> & 8657: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s); 8657: 8657: 8657: template 8657: inline basic_ostream& 8657: operator<<(basic_ostream& __out, const char* __s) 8657: { 8657: if (!__s) 8657: __out.setstate(ios_base::badbit); 8657: else 8657: __ostream_insert(__out, __s, 8657: static_cast(_Traits::length(__s))); 8657: return __out; 8657: } 8657: 8657: 8657: template 8657: inline basic_ostream& 8657: operator<<(basic_ostream& __out, const signed char* __s) 8657: { return (__out << reinterpret_cast(__s)); } 8657: 8657: template 8657: inline basic_ostream & 8657: operator<<(basic_ostream& __out, const unsigned char* __s) 8657: { return (__out << reinterpret_cast(__s)); } 8657: # 588 "/usr/include/c++/8/ostream" 3 8657: template 8657: inline basic_ostream<_CharT, _Traits>& 8657: endl(basic_ostream<_CharT, _Traits>& __os) 8657: { return flush(__os.put(__os.widen('\n'))); } 8657: # 600 "/usr/include/c++/8/ostream" 3 8657: template 8657: inline basic_ostream<_CharT, _Traits>& 8657: ends(basic_ostream<_CharT, _Traits>& __os) 8657: { return __os.put(_CharT()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline basic_ostream<_CharT, _Traits>& 8657: flush(basic_ostream<_CharT, _Traits>& __os) 8657: { return __os.flush(); } 8657: 8657: 8657: template 8657: basic_ostream<_Ch, _Up>& 8657: __is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*); 8657: 8657: template 8657: struct __is_convertible_to_basic_ostream_impl 8657: { 8657: using __ostream_type = void; 8657: }; 8657: 8657: template 8657: using __do_is_convertible_to_basic_ostream_impl = 8657: decltype(__is_convertible_to_basic_ostream_test 8657: (declval::type*>())); 8657: 8657: template 8657: struct __is_convertible_to_basic_ostream_impl 8657: <_Tp, 8657: __void_t<__do_is_convertible_to_basic_ostream_impl<_Tp>>> 8657: { 8657: using __ostream_type = 8657: __do_is_convertible_to_basic_ostream_impl<_Tp>; 8657: }; 8657: 8657: template 8657: struct __is_convertible_to_basic_ostream 8657: : __is_convertible_to_basic_ostream_impl<_Tp> 8657: { 8657: public: 8657: using type = __not_::__ostream_type>>; 8657: constexpr static bool value = type::value; 8657: }; 8657: 8657: template 8657: struct __is_insertable : false_type {}; 8657: 8657: template 8657: struct __is_insertable<_Ostream, _Tp, 8657: __void_t() 8657: << declval())>> 8657: : true_type {}; 8657: 8657: template 8657: using __rvalue_ostream_type = 8657: typename __is_convertible_to_basic_ostream< 8657: _Ostream>::__ostream_type; 8657: # 674 "/usr/include/c++/8/ostream" 3 8657: template 8657: inline 8657: typename enable_if<__and_<__not_>, 8657: __is_convertible_to_basic_ostream<_Ostream>, 8657: __is_insertable< 8657: __rvalue_ostream_type<_Ostream>, 8657: const _Tp&>>::value, 8657: __rvalue_ostream_type<_Ostream>>::type 8657: operator<<(_Ostream&& __os, const _Tp& __x) 8657: { 8657: __rvalue_ostream_type<_Ostream> __ret_os = __os; 8657: __ret_os << __x; 8657: return __ret_os; 8657: } 8657: 8657: 8657: 8657: } 8657: 8657: # 1 "/usr/include/c++/8/bits/ostream.tcc" 1 3 8657: # 37 "/usr/include/c++/8/bits/ostream.tcc" 3 8657: 8657: # 38 "/usr/include/c++/8/bits/ostream.tcc" 3 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: template 8657: basic_ostream<_CharT, _Traits>::sentry:: 8657: sentry(basic_ostream<_CharT, _Traits>& __os) 8657: : _M_ok(false), _M_os(__os) 8657: { 8657: 8657: if (__os.tie() && __os.good()) 8657: __os.tie()->flush(); 8657: 8657: if (__os.good()) 8657: _M_ok = true; 8657: else 8657: __os.setstate(ios_base::failbit); 8657: } 8657: 8657: template 8657: template 8657: basic_ostream<_CharT, _Traits>& 8657: basic_ostream<_CharT, _Traits>:: 8657: _M_insert(_ValueT __v) 8657: { 8657: sentry __cerb(*this); 8657: if (__cerb) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: const __num_put_type& __np = __check_facet(this->_M_num_put); 8657: if (__np.put(*this, *this, this->fill(), __v).failed()) 8657: __err |= ios_base::badbit; 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: basic_ostream<_CharT, _Traits>& 8657: basic_ostream<_CharT, _Traits>:: 8657: operator<<(short __n) 8657: { 8657: 8657: 8657: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 8657: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 8657: return _M_insert(static_cast(static_cast(__n))); 8657: else 8657: return _M_insert(static_cast(__n)); 8657: } 8657: 8657: template 8657: basic_ostream<_CharT, _Traits>& 8657: basic_ostream<_CharT, _Traits>:: 8657: operator<<(int __n) 8657: { 8657: 8657: 8657: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 8657: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 8657: return _M_insert(static_cast(static_cast(__n))); 8657: else 8657: return _M_insert(static_cast(__n)); 8657: } 8657: 8657: template 8657: basic_ostream<_CharT, _Traits>& 8657: basic_ostream<_CharT, _Traits>:: 8657: operator<<(__streambuf_type* __sbin) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: sentry __cerb(*this); 8657: if (__cerb && __sbin) 8657: { 8657: try 8657: { 8657: if (!__copy_streambufs(__sbin, this->rdbuf())) 8657: __err |= ios_base::failbit; 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::failbit); } 8657: } 8657: else if (!__sbin) 8657: __err |= ios_base::badbit; 8657: if (__err) 8657: this->setstate(__err); 8657: return *this; 8657: } 8657: 8657: template 8657: basic_ostream<_CharT, _Traits>& 8657: basic_ostream<_CharT, _Traits>:: 8657: put(char_type __c) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: sentry __cerb(*this); 8657: if (__cerb) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: const int_type __put = this->rdbuf()->sputc(__c); 8657: if (traits_type::eq_int_type(__put, traits_type::eof())) 8657: __err |= ios_base::badbit; 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: basic_ostream<_CharT, _Traits>& 8657: basic_ostream<_CharT, _Traits>:: 8657: write(const _CharT* __s, streamsize __n) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: sentry __cerb(*this); 8657: if (__cerb) 8657: { 8657: try 8657: { _M_write(__s, __n); } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: basic_ostream<_CharT, _Traits>& 8657: basic_ostream<_CharT, _Traits>:: 8657: flush() 8657: { 8657: 8657: 8657: 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: if (this->rdbuf() && this->rdbuf()->pubsync() == -1) 8657: __err |= ios_base::badbit; 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: return *this; 8657: } 8657: 8657: template 8657: typename basic_ostream<_CharT, _Traits>::pos_type 8657: basic_ostream<_CharT, _Traits>:: 8657: tellp() 8657: { 8657: pos_type __ret = pos_type(-1); 8657: try 8657: { 8657: if (!this->fail()) 8657: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out); 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: return __ret; 8657: } 8657: 8657: template 8657: basic_ostream<_CharT, _Traits>& 8657: basic_ostream<_CharT, _Traits>:: 8657: seekp(pos_type __pos) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: if (!this->fail()) 8657: { 8657: 8657: 8657: const pos_type __p = this->rdbuf()->pubseekpos(__pos, 8657: ios_base::out); 8657: 8657: 8657: if (__p == pos_type(off_type(-1))) 8657: __err |= ios_base::failbit; 8657: } 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: return *this; 8657: } 8657: 8657: template 8657: basic_ostream<_CharT, _Traits>& 8657: basic_ostream<_CharT, _Traits>:: 8657: seekp(off_type __off, ios_base::seekdir __dir) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: if (!this->fail()) 8657: { 8657: 8657: 8657: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 8657: ios_base::out); 8657: 8657: 8657: if (__p == pos_type(off_type(-1))) 8657: __err |= ios_base::failbit; 8657: } 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: return *this; 8657: } 8657: 8657: template 8657: basic_ostream<_CharT, _Traits>& 8657: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s) 8657: { 8657: if (!__s) 8657: __out.setstate(ios_base::badbit); 8657: else 8657: { 8657: 8657: 8657: const size_t __clen = char_traits::length(__s); 8657: try 8657: { 8657: struct __ptr_guard 8657: { 8657: _CharT *__p; 8657: __ptr_guard (_CharT *__ip): __p(__ip) { } 8657: ~__ptr_guard() { delete[] __p; } 8657: _CharT* __get() { return __p; } 8657: } __pg (new _CharT[__clen]); 8657: 8657: _CharT *__ws = __pg.__get(); 8657: for (size_t __i = 0; __i < __clen; ++__i) 8657: __ws[__i] = __out.widen(__s[__i]); 8657: __ostream_insert(__out, __ws, __clen); 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: __out._M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { __out._M_setstate(ios_base::badbit); } 8657: } 8657: return __out; 8657: } 8657: 8657: 8657: 8657: 8657: extern template class basic_ostream; 8657: extern template ostream& endl(ostream&); 8657: extern template ostream& ends(ostream&); 8657: extern template ostream& flush(ostream&); 8657: extern template ostream& operator<<(ostream&, char); 8657: extern template ostream& operator<<(ostream&, unsigned char); 8657: extern template ostream& operator<<(ostream&, signed char); 8657: extern template ostream& operator<<(ostream&, const char*); 8657: extern template ostream& operator<<(ostream&, const unsigned char*); 8657: extern template ostream& operator<<(ostream&, const signed char*); 8657: 8657: extern template ostream& ostream::_M_insert(long); 8657: extern template ostream& ostream::_M_insert(unsigned long); 8657: extern template ostream& ostream::_M_insert(bool); 8657: 8657: extern template ostream& ostream::_M_insert(long long); 8657: extern template ostream& ostream::_M_insert(unsigned long long); 8657: 8657: extern template ostream& ostream::_M_insert(double); 8657: extern template ostream& ostream::_M_insert(long double); 8657: extern template ostream& ostream::_M_insert(const void*); 8657: 8657: 8657: extern template class basic_ostream; 8657: extern template wostream& endl(wostream&); 8657: extern template wostream& ends(wostream&); 8657: extern template wostream& flush(wostream&); 8657: extern template wostream& operator<<(wostream&, wchar_t); 8657: extern template wostream& operator<<(wostream&, char); 8657: extern template wostream& operator<<(wostream&, const wchar_t*); 8657: extern template wostream& operator<<(wostream&, const char*); 8657: 8657: extern template wostream& wostream::_M_insert(long); 8657: extern template wostream& wostream::_M_insert(unsigned long); 8657: extern template wostream& wostream::_M_insert(bool); 8657: 8657: extern template wostream& wostream::_M_insert(long long); 8657: extern template wostream& wostream::_M_insert(unsigned long long); 8657: 8657: extern template wostream& wostream::_M_insert(double); 8657: extern template wostream& wostream::_M_insert(long double); 8657: extern template wostream& wostream::_M_insert(const void*); 8657: 8657: 8657: 8657: 8657: } 8657: # 694 "/usr/include/c++/8/ostream" 2 3 8657: # 65 "/usr/include/c++/8/iterator" 2 3 8657: # 1 "/usr/include/c++/8/istream" 1 3 8657: # 36 "/usr/include/c++/8/istream" 3 8657: 8657: # 37 "/usr/include/c++/8/istream" 3 8657: 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 57 "/usr/include/c++/8/istream" 3 8657: template 8657: class basic_istream : virtual public basic_ios<_CharT, _Traits> 8657: { 8657: public: 8657: 8657: typedef _CharT char_type; 8657: typedef typename _Traits::int_type int_type; 8657: typedef typename _Traits::pos_type pos_type; 8657: typedef typename _Traits::off_type off_type; 8657: typedef _Traits traits_type; 8657: 8657: 8657: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8657: typedef basic_ios<_CharT, _Traits> __ios_type; 8657: typedef basic_istream<_CharT, _Traits> __istream_type; 8657: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 8657: __num_get_type; 8657: typedef ctype<_CharT> __ctype_type; 8657: 8657: protected: 8657: 8657: 8657: 8657: 8657: 8657: streamsize _M_gcount; 8657: 8657: public: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: explicit 8657: basic_istream(__streambuf_type* __sb) 8657: : _M_gcount(streamsize(0)) 8657: { this->init(__sb); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: virtual 8657: ~basic_istream() 8657: { _M_gcount = streamsize(0); } 8657: 8657: 8657: class sentry; 8657: friend class sentry; 8657: # 119 "/usr/include/c++/8/istream" 3 8657: __istream_type& 8657: operator>>(__istream_type& (*__pf)(__istream_type&)) 8657: { return __pf(*this); } 8657: 8657: __istream_type& 8657: operator>>(__ios_type& (*__pf)(__ios_type&)) 8657: { 8657: __pf(*this); 8657: return *this; 8657: } 8657: 8657: __istream_type& 8657: operator>>(ios_base& (*__pf)(ios_base&)) 8657: { 8657: __pf(*this); 8657: return *this; 8657: } 8657: # 167 "/usr/include/c++/8/istream" 3 8657: __istream_type& 8657: operator>>(bool& __n) 8657: { return _M_extract(__n); } 8657: 8657: __istream_type& 8657: operator>>(short& __n); 8657: 8657: __istream_type& 8657: operator>>(unsigned short& __n) 8657: { return _M_extract(__n); } 8657: 8657: __istream_type& 8657: operator>>(int& __n); 8657: 8657: __istream_type& 8657: operator>>(unsigned int& __n) 8657: { return _M_extract(__n); } 8657: 8657: __istream_type& 8657: operator>>(long& __n) 8657: { return _M_extract(__n); } 8657: 8657: __istream_type& 8657: operator>>(unsigned long& __n) 8657: { return _M_extract(__n); } 8657: 8657: 8657: __istream_type& 8657: operator>>(long long& __n) 8657: { return _M_extract(__n); } 8657: 8657: __istream_type& 8657: operator>>(unsigned long long& __n) 8657: { return _M_extract(__n); } 8657: # 213 "/usr/include/c++/8/istream" 3 8657: __istream_type& 8657: operator>>(float& __f) 8657: { return _M_extract(__f); } 8657: 8657: __istream_type& 8657: operator>>(double& __f) 8657: { return _M_extract(__f); } 8657: 8657: __istream_type& 8657: operator>>(long double& __f) 8657: { return _M_extract(__f); } 8657: # 234 "/usr/include/c++/8/istream" 3 8657: __istream_type& 8657: operator>>(void*& __p) 8657: { return _M_extract(__p); } 8657: # 258 "/usr/include/c++/8/istream" 3 8657: __istream_type& 8657: operator>>(__streambuf_type* __sb); 8657: # 268 "/usr/include/c++/8/istream" 3 8657: streamsize 8657: gcount() const 8657: { return _M_gcount; } 8657: # 301 "/usr/include/c++/8/istream" 3 8657: int_type 8657: get(); 8657: # 315 "/usr/include/c++/8/istream" 3 8657: __istream_type& 8657: get(char_type& __c); 8657: # 342 "/usr/include/c++/8/istream" 3 8657: __istream_type& 8657: get(char_type* __s, streamsize __n, char_type __delim); 8657: # 353 "/usr/include/c++/8/istream" 3 8657: __istream_type& 8657: get(char_type* __s, streamsize __n) 8657: { return this->get(__s, __n, this->widen('\n')); } 8657: # 376 "/usr/include/c++/8/istream" 3 8657: __istream_type& 8657: get(__streambuf_type& __sb, char_type __delim); 8657: # 386 "/usr/include/c++/8/istream" 3 8657: __istream_type& 8657: get(__streambuf_type& __sb) 8657: { return this->get(__sb, this->widen('\n')); } 8657: # 415 "/usr/include/c++/8/istream" 3 8657: __istream_type& 8657: getline(char_type* __s, streamsize __n, char_type __delim); 8657: # 426 "/usr/include/c++/8/istream" 3 8657: __istream_type& 8657: getline(char_type* __s, streamsize __n) 8657: { return this->getline(__s, __n, this->widen('\n')); } 8657: # 450 "/usr/include/c++/8/istream" 3 8657: __istream_type& 8657: ignore(streamsize __n, int_type __delim); 8657: 8657: __istream_type& 8657: ignore(streamsize __n); 8657: 8657: __istream_type& 8657: ignore(); 8657: # 467 "/usr/include/c++/8/istream" 3 8657: int_type 8657: peek(); 8657: # 485 "/usr/include/c++/8/istream" 3 8657: __istream_type& 8657: read(char_type* __s, streamsize __n); 8657: # 504 "/usr/include/c++/8/istream" 3 8657: streamsize 8657: readsome(char_type* __s, streamsize __n); 8657: # 521 "/usr/include/c++/8/istream" 3 8657: __istream_type& 8657: putback(char_type __c); 8657: # 537 "/usr/include/c++/8/istream" 3 8657: __istream_type& 8657: unget(); 8657: # 555 "/usr/include/c++/8/istream" 3 8657: int 8657: sync(); 8657: # 570 "/usr/include/c++/8/istream" 3 8657: pos_type 8657: tellg(); 8657: # 585 "/usr/include/c++/8/istream" 3 8657: __istream_type& 8657: seekg(pos_type); 8657: # 601 "/usr/include/c++/8/istream" 3 8657: __istream_type& 8657: seekg(off_type, ios_base::seekdir); 8657: 8657: 8657: protected: 8657: basic_istream() 8657: : _M_gcount(streamsize(0)) 8657: { this->init(0); } 8657: 8657: 8657: basic_istream(const basic_istream&) = delete; 8657: 8657: basic_istream(basic_istream&& __rhs) 8657: : __ios_type(), _M_gcount(__rhs._M_gcount) 8657: { 8657: __ios_type::move(__rhs); 8657: __rhs._M_gcount = 0; 8657: } 8657: 8657: 8657: 8657: basic_istream& operator=(const basic_istream&) = delete; 8657: 8657: basic_istream& 8657: operator=(basic_istream&& __rhs) 8657: { 8657: swap(__rhs); 8657: return *this; 8657: } 8657: 8657: void 8657: swap(basic_istream& __rhs) 8657: { 8657: __ios_type::swap(__rhs); 8657: std::swap(_M_gcount, __rhs._M_gcount); 8657: } 8657: 8657: 8657: template 8657: __istream_type& 8657: _M_extract(_ValueT& __v); 8657: }; 8657: 8657: 8657: template<> 8657: basic_istream& 8657: basic_istream:: 8657: getline(char_type* __s, streamsize __n, char_type __delim); 8657: 8657: template<> 8657: basic_istream& 8657: basic_istream:: 8657: ignore(streamsize __n); 8657: 8657: template<> 8657: basic_istream& 8657: basic_istream:: 8657: ignore(streamsize __n, int_type __delim); 8657: 8657: 8657: template<> 8657: basic_istream& 8657: basic_istream:: 8657: getline(char_type* __s, streamsize __n, char_type __delim); 8657: 8657: template<> 8657: basic_istream& 8657: basic_istream:: 8657: ignore(streamsize __n); 8657: 8657: template<> 8657: basic_istream& 8657: basic_istream:: 8657: ignore(streamsize __n, int_type __delim); 8657: # 685 "/usr/include/c++/8/istream" 3 8657: template 8657: class basic_istream<_CharT, _Traits>::sentry 8657: { 8657: 8657: bool _M_ok; 8657: 8657: public: 8657: 8657: typedef _Traits traits_type; 8657: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8657: typedef basic_istream<_CharT, _Traits> __istream_type; 8657: typedef typename __istream_type::__ctype_type __ctype_type; 8657: typedef typename _Traits::int_type __int_type; 8657: # 721 "/usr/include/c++/8/istream" 3 8657: explicit 8657: sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false); 8657: # 732 "/usr/include/c++/8/istream" 3 8657: explicit 8657: 8657: operator bool() const 8657: { return _M_ok; } 8657: }; 8657: # 750 "/usr/include/c++/8/istream" 3 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c); 8657: 8657: template 8657: inline basic_istream& 8657: operator>>(basic_istream& __in, unsigned char& __c) 8657: { return (__in >> reinterpret_cast(__c)); } 8657: 8657: template 8657: inline basic_istream& 8657: operator>>(basic_istream& __in, signed char& __c) 8657: { return (__in >> reinterpret_cast(__c)); } 8657: # 792 "/usr/include/c++/8/istream" 3 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s); 8657: 8657: 8657: template<> 8657: basic_istream& 8657: operator>>(basic_istream& __in, char* __s); 8657: 8657: template 8657: inline basic_istream& 8657: operator>>(basic_istream& __in, unsigned char* __s) 8657: { return (__in >> reinterpret_cast(__s)); } 8657: 8657: template 8657: inline basic_istream& 8657: operator>>(basic_istream& __in, signed char* __s) 8657: { return (__in >> reinterpret_cast(__s)); } 8657: # 823 "/usr/include/c++/8/istream" 3 8657: template 8657: class basic_iostream 8657: : public basic_istream<_CharT, _Traits>, 8657: public basic_ostream<_CharT, _Traits> 8657: { 8657: public: 8657: 8657: 8657: 8657: typedef _CharT char_type; 8657: typedef typename _Traits::int_type int_type; 8657: typedef typename _Traits::pos_type pos_type; 8657: typedef typename _Traits::off_type off_type; 8657: typedef _Traits traits_type; 8657: 8657: 8657: typedef basic_istream<_CharT, _Traits> __istream_type; 8657: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: explicit 8657: basic_iostream(basic_streambuf<_CharT, _Traits>* __sb) 8657: : __istream_type(__sb), __ostream_type(__sb) { } 8657: 8657: 8657: 8657: 8657: virtual 8657: ~basic_iostream() { } 8657: 8657: protected: 8657: basic_iostream() 8657: : __istream_type(), __ostream_type() { } 8657: 8657: 8657: basic_iostream(const basic_iostream&) = delete; 8657: 8657: basic_iostream(basic_iostream&& __rhs) 8657: : __istream_type(std::move(__rhs)), __ostream_type(*this) 8657: { } 8657: 8657: 8657: 8657: basic_iostream& operator=(const basic_iostream&) = delete; 8657: 8657: basic_iostream& 8657: operator=(basic_iostream&& __rhs) 8657: { 8657: swap(__rhs); 8657: return *this; 8657: } 8657: 8657: void 8657: swap(basic_iostream& __rhs) 8657: { __istream_type::swap(__rhs); } 8657: 8657: }; 8657: # 906 "/usr/include/c++/8/istream" 3 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: ws(basic_istream<_CharT, _Traits>& __is); 8657: 8657: 8657: template 8657: basic_istream<_Ch, _Up>& 8657: __is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*); 8657: 8657: template 8657: struct __is_convertible_to_basic_istream_impl 8657: { 8657: using __istream_type = void; 8657: }; 8657: 8657: template 8657: using __do_is_convertible_to_basic_istream_impl = 8657: decltype(__is_convertible_to_basic_istream_test 8657: (declval::type*>())); 8657: 8657: template 8657: struct __is_convertible_to_basic_istream_impl 8657: <_Tp, 8657: __void_t<__do_is_convertible_to_basic_istream_impl<_Tp>>> 8657: { 8657: using __istream_type = 8657: __do_is_convertible_to_basic_istream_impl<_Tp>; 8657: }; 8657: 8657: template 8657: struct __is_convertible_to_basic_istream 8657: : __is_convertible_to_basic_istream_impl<_Tp> 8657: { 8657: public: 8657: using type = __not_::__istream_type>>; 8657: constexpr static bool value = type::value; 8657: }; 8657: 8657: template 8657: struct __is_extractable : false_type {}; 8657: 8657: template 8657: struct __is_extractable<_Istream, _Tp, 8657: __void_t() 8657: >> declval<_Tp>())>> 8657: : true_type {}; 8657: 8657: template 8657: using __rvalue_istream_type = 8657: typename __is_convertible_to_basic_istream< 8657: _Istream>::__istream_type; 8657: # 972 "/usr/include/c++/8/istream" 3 8657: template 8657: inline 8657: typename enable_if<__and_<__not_>, 8657: __is_convertible_to_basic_istream<_Istream>, 8657: __is_extractable< 8657: __rvalue_istream_type<_Istream>, 8657: _Tp&&>>::value, 8657: __rvalue_istream_type<_Istream>>::type 8657: operator>>(_Istream&& __is, _Tp&& __x) 8657: { 8657: __rvalue_istream_type<_Istream> __ret_is = __is; 8657: __ret_is >> std::forward<_Tp>(__x); 8657: return __ret_is; 8657: } 8657: 8657: 8657: 8657: } 8657: 8657: # 1 "/usr/include/c++/8/bits/istream.tcc" 1 3 8657: # 37 "/usr/include/c++/8/bits/istream.tcc" 3 8657: 8657: # 38 "/usr/include/c++/8/bits/istream.tcc" 3 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: template 8657: basic_istream<_CharT, _Traits>::sentry:: 8657: sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: if (__in.good()) 8657: try 8657: { 8657: if (__in.tie()) 8657: __in.tie()->flush(); 8657: if (!__noskip && bool(__in.flags() & ios_base::skipws)) 8657: { 8657: const __int_type __eof = traits_type::eof(); 8657: __streambuf_type* __sb = __in.rdbuf(); 8657: __int_type __c = __sb->sgetc(); 8657: 8657: const __ctype_type& __ct = __check_facet(__in._M_ctype); 8657: while (!traits_type::eq_int_type(__c, __eof) 8657: && __ct.is(ctype_base::space, 8657: traits_type::to_char_type(__c))) 8657: __c = __sb->snextc(); 8657: 8657: 8657: 8657: 8657: if (traits_type::eq_int_type(__c, __eof)) 8657: __err |= ios_base::eofbit; 8657: } 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: __in._M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { __in._M_setstate(ios_base::badbit); } 8657: 8657: if (__in.good() && __err == ios_base::goodbit) 8657: _M_ok = true; 8657: else 8657: { 8657: __err |= ios_base::failbit; 8657: __in.setstate(__err); 8657: } 8657: } 8657: 8657: template 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: basic_istream<_CharT, _Traits>:: 8657: _M_extract(_ValueT& __v) 8657: { 8657: sentry __cerb(*this, false); 8657: if (__cerb) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: const __num_get_type& __ng = __check_facet(this->_M_num_get); 8657: __ng.get(*this, 0, *this, __err, __v); 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: basic_istream<_CharT, _Traits>:: 8657: operator>>(short& __n) 8657: { 8657: 8657: 8657: sentry __cerb(*this, false); 8657: if (__cerb) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: long __l; 8657: const __num_get_type& __ng = __check_facet(this->_M_num_get); 8657: __ng.get(*this, 0, *this, __err, __l); 8657: 8657: 8657: 8657: if (__l < __gnu_cxx::__numeric_traits::__min) 8657: { 8657: __err |= ios_base::failbit; 8657: __n = __gnu_cxx::__numeric_traits::__min; 8657: } 8657: else if (__l > __gnu_cxx::__numeric_traits::__max) 8657: { 8657: __err |= ios_base::failbit; 8657: __n = __gnu_cxx::__numeric_traits::__max; 8657: } 8657: else 8657: __n = short(__l); 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: basic_istream<_CharT, _Traits>:: 8657: operator>>(int& __n) 8657: { 8657: 8657: 8657: sentry __cerb(*this, false); 8657: if (__cerb) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: long __l; 8657: const __num_get_type& __ng = __check_facet(this->_M_num_get); 8657: __ng.get(*this, 0, *this, __err, __l); 8657: 8657: 8657: 8657: if (__l < __gnu_cxx::__numeric_traits::__min) 8657: { 8657: __err |= ios_base::failbit; 8657: __n = __gnu_cxx::__numeric_traits::__min; 8657: } 8657: else if (__l > __gnu_cxx::__numeric_traits::__max) 8657: { 8657: __err |= ios_base::failbit; 8657: __n = __gnu_cxx::__numeric_traits::__max; 8657: } 8657: else 8657: __n = int(__l); 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: basic_istream<_CharT, _Traits>:: 8657: operator>>(__streambuf_type* __sbout) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: sentry __cerb(*this, false); 8657: if (__cerb && __sbout) 8657: { 8657: try 8657: { 8657: bool __ineof; 8657: if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof)) 8657: __err |= ios_base::failbit; 8657: if (__ineof) 8657: __err |= ios_base::eofbit; 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::failbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::failbit); } 8657: } 8657: else if (!__sbout) 8657: __err |= ios_base::failbit; 8657: if (__err) 8657: this->setstate(__err); 8657: return *this; 8657: } 8657: 8657: template 8657: typename basic_istream<_CharT, _Traits>::int_type 8657: basic_istream<_CharT, _Traits>:: 8657: get(void) 8657: { 8657: const int_type __eof = traits_type::eof(); 8657: int_type __c = __eof; 8657: _M_gcount = 0; 8657: ios_base::iostate __err = ios_base::goodbit; 8657: sentry __cerb(*this, true); 8657: if (__cerb) 8657: { 8657: try 8657: { 8657: __c = this->rdbuf()->sbumpc(); 8657: 8657: if (!traits_type::eq_int_type(__c, __eof)) 8657: _M_gcount = 1; 8657: else 8657: __err |= ios_base::eofbit; 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: } 8657: if (!_M_gcount) 8657: __err |= ios_base::failbit; 8657: if (__err) 8657: this->setstate(__err); 8657: return __c; 8657: } 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: basic_istream<_CharT, _Traits>:: 8657: get(char_type& __c) 8657: { 8657: _M_gcount = 0; 8657: ios_base::iostate __err = ios_base::goodbit; 8657: sentry __cerb(*this, true); 8657: if (__cerb) 8657: { 8657: try 8657: { 8657: const int_type __cb = this->rdbuf()->sbumpc(); 8657: 8657: if (!traits_type::eq_int_type(__cb, traits_type::eof())) 8657: { 8657: _M_gcount = 1; 8657: __c = traits_type::to_char_type(__cb); 8657: } 8657: else 8657: __err |= ios_base::eofbit; 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: } 8657: if (!_M_gcount) 8657: __err |= ios_base::failbit; 8657: if (__err) 8657: this->setstate(__err); 8657: return *this; 8657: } 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: basic_istream<_CharT, _Traits>:: 8657: get(char_type* __s, streamsize __n, char_type __delim) 8657: { 8657: _M_gcount = 0; 8657: ios_base::iostate __err = ios_base::goodbit; 8657: sentry __cerb(*this, true); 8657: if (__cerb) 8657: { 8657: try 8657: { 8657: const int_type __idelim = traits_type::to_int_type(__delim); 8657: const int_type __eof = traits_type::eof(); 8657: __streambuf_type* __sb = this->rdbuf(); 8657: int_type __c = __sb->sgetc(); 8657: 8657: while (_M_gcount + 1 < __n 8657: && !traits_type::eq_int_type(__c, __eof) 8657: && !traits_type::eq_int_type(__c, __idelim)) 8657: { 8657: *__s++ = traits_type::to_char_type(__c); 8657: ++_M_gcount; 8657: __c = __sb->snextc(); 8657: } 8657: if (traits_type::eq_int_type(__c, __eof)) 8657: __err |= ios_base::eofbit; 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: } 8657: 8657: 8657: if (__n > 0) 8657: *__s = char_type(); 8657: if (!_M_gcount) 8657: __err |= ios_base::failbit; 8657: if (__err) 8657: this->setstate(__err); 8657: return *this; 8657: } 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: basic_istream<_CharT, _Traits>:: 8657: get(__streambuf_type& __sb, char_type __delim) 8657: { 8657: _M_gcount = 0; 8657: ios_base::iostate __err = ios_base::goodbit; 8657: sentry __cerb(*this, true); 8657: if (__cerb) 8657: { 8657: try 8657: { 8657: const int_type __idelim = traits_type::to_int_type(__delim); 8657: const int_type __eof = traits_type::eof(); 8657: __streambuf_type* __this_sb = this->rdbuf(); 8657: int_type __c = __this_sb->sgetc(); 8657: char_type __c2 = traits_type::to_char_type(__c); 8657: 8657: while (!traits_type::eq_int_type(__c, __eof) 8657: && !traits_type::eq_int_type(__c, __idelim) 8657: && !traits_type::eq_int_type(__sb.sputc(__c2), __eof)) 8657: { 8657: ++_M_gcount; 8657: __c = __this_sb->snextc(); 8657: __c2 = traits_type::to_char_type(__c); 8657: } 8657: if (traits_type::eq_int_type(__c, __eof)) 8657: __err |= ios_base::eofbit; 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: } 8657: if (!_M_gcount) 8657: __err |= ios_base::failbit; 8657: if (__err) 8657: this->setstate(__err); 8657: return *this; 8657: } 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: basic_istream<_CharT, _Traits>:: 8657: getline(char_type* __s, streamsize __n, char_type __delim) 8657: { 8657: _M_gcount = 0; 8657: ios_base::iostate __err = ios_base::goodbit; 8657: sentry __cerb(*this, true); 8657: if (__cerb) 8657: { 8657: try 8657: { 8657: const int_type __idelim = traits_type::to_int_type(__delim); 8657: const int_type __eof = traits_type::eof(); 8657: __streambuf_type* __sb = this->rdbuf(); 8657: int_type __c = __sb->sgetc(); 8657: 8657: while (_M_gcount + 1 < __n 8657: && !traits_type::eq_int_type(__c, __eof) 8657: && !traits_type::eq_int_type(__c, __idelim)) 8657: { 8657: *__s++ = traits_type::to_char_type(__c); 8657: __c = __sb->snextc(); 8657: ++_M_gcount; 8657: } 8657: if (traits_type::eq_int_type(__c, __eof)) 8657: __err |= ios_base::eofbit; 8657: else 8657: { 8657: if (traits_type::eq_int_type(__c, __idelim)) 8657: { 8657: __sb->sbumpc(); 8657: ++_M_gcount; 8657: } 8657: else 8657: __err |= ios_base::failbit; 8657: } 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: } 8657: 8657: 8657: if (__n > 0) 8657: *__s = char_type(); 8657: if (!_M_gcount) 8657: __err |= ios_base::failbit; 8657: if (__err) 8657: this->setstate(__err); 8657: return *this; 8657: } 8657: 8657: 8657: 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: basic_istream<_CharT, _Traits>:: 8657: ignore(void) 8657: { 8657: _M_gcount = 0; 8657: sentry __cerb(*this, true); 8657: if (__cerb) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: const int_type __eof = traits_type::eof(); 8657: __streambuf_type* __sb = this->rdbuf(); 8657: 8657: if (traits_type::eq_int_type(__sb->sbumpc(), __eof)) 8657: __err |= ios_base::eofbit; 8657: else 8657: _M_gcount = 1; 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: basic_istream<_CharT, _Traits>:: 8657: ignore(streamsize __n) 8657: { 8657: _M_gcount = 0; 8657: sentry __cerb(*this, true); 8657: if (__cerb && __n > 0) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: const int_type __eof = traits_type::eof(); 8657: __streambuf_type* __sb = this->rdbuf(); 8657: int_type __c = __sb->sgetc(); 8657: # 521 "/usr/include/c++/8/bits/istream.tcc" 3 8657: bool __large_ignore = false; 8657: while (true) 8657: { 8657: while (_M_gcount < __n 8657: && !traits_type::eq_int_type(__c, __eof)) 8657: { 8657: ++_M_gcount; 8657: __c = __sb->snextc(); 8657: } 8657: if (__n == __gnu_cxx::__numeric_traits::__max 8657: && !traits_type::eq_int_type(__c, __eof)) 8657: { 8657: _M_gcount = 8657: __gnu_cxx::__numeric_traits::__min; 8657: __large_ignore = true; 8657: } 8657: else 8657: break; 8657: } 8657: 8657: if (__large_ignore) 8657: _M_gcount = __gnu_cxx::__numeric_traits::__max; 8657: 8657: if (traits_type::eq_int_type(__c, __eof)) 8657: __err |= ios_base::eofbit; 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: basic_istream<_CharT, _Traits>:: 8657: ignore(streamsize __n, int_type __delim) 8657: { 8657: _M_gcount = 0; 8657: sentry __cerb(*this, true); 8657: if (__cerb && __n > 0) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: const int_type __eof = traits_type::eof(); 8657: __streambuf_type* __sb = this->rdbuf(); 8657: int_type __c = __sb->sgetc(); 8657: 8657: 8657: bool __large_ignore = false; 8657: while (true) 8657: { 8657: while (_M_gcount < __n 8657: && !traits_type::eq_int_type(__c, __eof) 8657: && !traits_type::eq_int_type(__c, __delim)) 8657: { 8657: ++_M_gcount; 8657: __c = __sb->snextc(); 8657: } 8657: if (__n == __gnu_cxx::__numeric_traits::__max 8657: && !traits_type::eq_int_type(__c, __eof) 8657: && !traits_type::eq_int_type(__c, __delim)) 8657: { 8657: _M_gcount = 8657: __gnu_cxx::__numeric_traits::__min; 8657: __large_ignore = true; 8657: } 8657: else 8657: break; 8657: } 8657: 8657: if (__large_ignore) 8657: _M_gcount = __gnu_cxx::__numeric_traits::__max; 8657: 8657: if (traits_type::eq_int_type(__c, __eof)) 8657: __err |= ios_base::eofbit; 8657: else if (traits_type::eq_int_type(__c, __delim)) 8657: { 8657: if (_M_gcount 8657: < __gnu_cxx::__numeric_traits::__max) 8657: ++_M_gcount; 8657: __sb->sbumpc(); 8657: } 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: typename basic_istream<_CharT, _Traits>::int_type 8657: basic_istream<_CharT, _Traits>:: 8657: peek(void) 8657: { 8657: int_type __c = traits_type::eof(); 8657: _M_gcount = 0; 8657: sentry __cerb(*this, true); 8657: if (__cerb) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: __c = this->rdbuf()->sgetc(); 8657: if (traits_type::eq_int_type(__c, traits_type::eof())) 8657: __err |= ios_base::eofbit; 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: } 8657: return __c; 8657: } 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: basic_istream<_CharT, _Traits>:: 8657: read(char_type* __s, streamsize __n) 8657: { 8657: _M_gcount = 0; 8657: sentry __cerb(*this, true); 8657: if (__cerb) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: _M_gcount = this->rdbuf()->sgetn(__s, __n); 8657: if (_M_gcount != __n) 8657: __err |= (ios_base::eofbit | ios_base::failbit); 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: streamsize 8657: basic_istream<_CharT, _Traits>:: 8657: readsome(char_type* __s, streamsize __n) 8657: { 8657: _M_gcount = 0; 8657: sentry __cerb(*this, true); 8657: if (__cerb) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: 8657: const streamsize __num = this->rdbuf()->in_avail(); 8657: if (__num > 0) 8657: _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n)); 8657: else if (__num == -1) 8657: __err |= ios_base::eofbit; 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: } 8657: return _M_gcount; 8657: } 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: basic_istream<_CharT, _Traits>:: 8657: putback(char_type __c) 8657: { 8657: 8657: 8657: _M_gcount = 0; 8657: 8657: this->clear(this->rdstate() & ~ios_base::eofbit); 8657: sentry __cerb(*this, true); 8657: if (__cerb) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: const int_type __eof = traits_type::eof(); 8657: __streambuf_type* __sb = this->rdbuf(); 8657: if (!__sb 8657: || traits_type::eq_int_type(__sb->sputbackc(__c), __eof)) 8657: __err |= ios_base::badbit; 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: basic_istream<_CharT, _Traits>:: 8657: unget(void) 8657: { 8657: 8657: 8657: _M_gcount = 0; 8657: 8657: this->clear(this->rdstate() & ~ios_base::eofbit); 8657: sentry __cerb(*this, true); 8657: if (__cerb) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: const int_type __eof = traits_type::eof(); 8657: __streambuf_type* __sb = this->rdbuf(); 8657: if (!__sb 8657: || traits_type::eq_int_type(__sb->sungetc(), __eof)) 8657: __err |= ios_base::badbit; 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: int 8657: basic_istream<_CharT, _Traits>:: 8657: sync(void) 8657: { 8657: 8657: 8657: int __ret = -1; 8657: sentry __cerb(*this, true); 8657: if (__cerb) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: __streambuf_type* __sb = this->rdbuf(); 8657: if (__sb) 8657: { 8657: if (__sb->pubsync() == -1) 8657: __err |= ios_base::badbit; 8657: else 8657: __ret = 0; 8657: } 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: } 8657: return __ret; 8657: } 8657: 8657: template 8657: typename basic_istream<_CharT, _Traits>::pos_type 8657: basic_istream<_CharT, _Traits>:: 8657: tellg(void) 8657: { 8657: 8657: 8657: pos_type __ret = pos_type(-1); 8657: sentry __cerb(*this, true); 8657: if (__cerb) 8657: { 8657: try 8657: { 8657: if (!this->fail()) 8657: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, 8657: ios_base::in); 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: } 8657: return __ret; 8657: } 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: basic_istream<_CharT, _Traits>:: 8657: seekg(pos_type __pos) 8657: { 8657: 8657: 8657: 8657: this->clear(this->rdstate() & ~ios_base::eofbit); 8657: sentry __cerb(*this, true); 8657: if (__cerb) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: if (!this->fail()) 8657: { 8657: 8657: const pos_type __p = this->rdbuf()->pubseekpos(__pos, 8657: ios_base::in); 8657: 8657: 8657: if (__p == pos_type(off_type(-1))) 8657: __err |= ios_base::failbit; 8657: } 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: basic_istream<_CharT, _Traits>:: 8657: seekg(off_type __off, ios_base::seekdir __dir) 8657: { 8657: 8657: 8657: 8657: this->clear(this->rdstate() & ~ios_base::eofbit); 8657: sentry __cerb(*this, true); 8657: if (__cerb) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: if (!this->fail()) 8657: { 8657: 8657: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 8657: ios_base::in); 8657: 8657: 8657: if (__p == pos_type(off_type(-1))) 8657: __err |= ios_base::failbit; 8657: } 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: this->_M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { this->_M_setstate(ios_base::badbit); } 8657: if (__err) 8657: this->setstate(__err); 8657: } 8657: return *this; 8657: } 8657: 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c) 8657: { 8657: typedef basic_istream<_CharT, _Traits> __istream_type; 8657: typedef typename __istream_type::int_type __int_type; 8657: 8657: typename __istream_type::sentry __cerb(__in, false); 8657: if (__cerb) 8657: { 8657: ios_base::iostate __err = ios_base::goodbit; 8657: try 8657: { 8657: const __int_type __cb = __in.rdbuf()->sbumpc(); 8657: if (!_Traits::eq_int_type(__cb, _Traits::eof())) 8657: __c = _Traits::to_char_type(__cb); 8657: else 8657: __err |= (ios_base::eofbit | ios_base::failbit); 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: __in._M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { __in._M_setstate(ios_base::badbit); } 8657: if (__err) 8657: __in.setstate(__err); 8657: } 8657: return __in; 8657: } 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s) 8657: { 8657: typedef basic_istream<_CharT, _Traits> __istream_type; 8657: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8657: typedef typename _Traits::int_type int_type; 8657: typedef _CharT char_type; 8657: typedef ctype<_CharT> __ctype_type; 8657: 8657: streamsize __extracted = 0; 8657: ios_base::iostate __err = ios_base::goodbit; 8657: typename __istream_type::sentry __cerb(__in, false); 8657: if (__cerb) 8657: { 8657: try 8657: { 8657: 8657: streamsize __num = __in.width(); 8657: if (__num <= 0) 8657: __num = __gnu_cxx::__numeric_traits::__max; 8657: 8657: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 8657: 8657: const int_type __eof = _Traits::eof(); 8657: __streambuf_type* __sb = __in.rdbuf(); 8657: int_type __c = __sb->sgetc(); 8657: 8657: while (__extracted < __num - 1 8657: && !_Traits::eq_int_type(__c, __eof) 8657: && !__ct.is(ctype_base::space, 8657: _Traits::to_char_type(__c))) 8657: { 8657: *__s++ = _Traits::to_char_type(__c); 8657: ++__extracted; 8657: __c = __sb->snextc(); 8657: } 8657: if (_Traits::eq_int_type(__c, __eof)) 8657: __err |= ios_base::eofbit; 8657: 8657: 8657: 8657: *__s = char_type(); 8657: __in.width(0); 8657: } 8657: catch(__cxxabiv1::__forced_unwind&) 8657: { 8657: __in._M_setstate(ios_base::badbit); 8657: throw; 8657: } 8657: catch(...) 8657: { __in._M_setstate(ios_base::badbit); } 8657: } 8657: if (!__extracted) 8657: __err |= ios_base::failbit; 8657: if (__err) 8657: __in.setstate(__err); 8657: return __in; 8657: } 8657: 8657: 8657: template 8657: basic_istream<_CharT, _Traits>& 8657: ws(basic_istream<_CharT, _Traits>& __in) 8657: { 8657: typedef basic_istream<_CharT, _Traits> __istream_type; 8657: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8657: typedef typename __istream_type::int_type __int_type; 8657: typedef ctype<_CharT> __ctype_type; 8657: 8657: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 8657: const __int_type __eof = _Traits::eof(); 8657: __streambuf_type* __sb = __in.rdbuf(); 8657: __int_type __c = __sb->sgetc(); 8657: 8657: while (!_Traits::eq_int_type(__c, __eof) 8657: && __ct.is(ctype_base::space, _Traits::to_char_type(__c))) 8657: __c = __sb->snextc(); 8657: 8657: if (_Traits::eq_int_type(__c, __eof)) 8657: __in.setstate(ios_base::eofbit); 8657: return __in; 8657: } 8657: 8657: 8657: 8657: 8657: extern template class basic_istream; 8657: extern template istream& ws(istream&); 8657: extern template istream& operator>>(istream&, char&); 8657: extern template istream& operator>>(istream&, char*); 8657: extern template istream& operator>>(istream&, unsigned char&); 8657: extern template istream& operator>>(istream&, signed char&); 8657: extern template istream& operator>>(istream&, unsigned char*); 8657: extern template istream& operator>>(istream&, signed char*); 8657: 8657: extern template istream& istream::_M_extract(unsigned short&); 8657: extern template istream& istream::_M_extract(unsigned int&); 8657: extern template istream& istream::_M_extract(long&); 8657: extern template istream& istream::_M_extract(unsigned long&); 8657: extern template istream& istream::_M_extract(bool&); 8657: 8657: extern template istream& istream::_M_extract(long long&); 8657: extern template istream& istream::_M_extract(unsigned long long&); 8657: 8657: extern template istream& istream::_M_extract(float&); 8657: extern template istream& istream::_M_extract(double&); 8657: extern template istream& istream::_M_extract(long double&); 8657: extern template istream& istream::_M_extract(void*&); 8657: 8657: extern template class basic_iostream; 8657: 8657: 8657: extern template class basic_istream; 8657: extern template wistream& ws(wistream&); 8657: extern template wistream& operator>>(wistream&, wchar_t&); 8657: extern template wistream& operator>>(wistream&, wchar_t*); 8657: 8657: extern template wistream& wistream::_M_extract(unsigned short&); 8657: extern template wistream& wistream::_M_extract(unsigned int&); 8657: extern template wistream& wistream::_M_extract(long&); 8657: extern template wistream& wistream::_M_extract(unsigned long&); 8657: extern template wistream& wistream::_M_extract(bool&); 8657: 8657: extern template wistream& wistream::_M_extract(long long&); 8657: extern template wistream& wistream::_M_extract(unsigned long long&); 8657: 8657: extern template wistream& wistream::_M_extract(float&); 8657: extern template wistream& wistream::_M_extract(double&); 8657: extern template wistream& wistream::_M_extract(long double&); 8657: extern template wistream& wistream::_M_extract(void*&); 8657: 8657: extern template class basic_iostream; 8657: 8657: 8657: 8657: 8657: } 8657: # 992 "/usr/include/c++/8/istream" 2 3 8657: # 66 "/usr/include/c++/8/iterator" 2 3 8657: # 1 "/usr/include/c++/8/bits/stream_iterator.h" 1 3 8657: # 33 "/usr/include/c++/8/bits/stream_iterator.h" 3 8657: 8657: # 34 "/usr/include/c++/8/bits/stream_iterator.h" 3 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template, typename _Dist = ptrdiff_t> 8657: class istream_iterator 8657: : public iterator 8657: { 8657: public: 8657: typedef _CharT char_type; 8657: typedef _Traits traits_type; 8657: typedef basic_istream<_CharT, _Traits> istream_type; 8657: 8657: private: 8657: istream_type* _M_stream; 8657: _Tp _M_value; 8657: bool _M_ok; 8657: 8657: public: 8657: 8657: constexpr istream_iterator() 8657: : _M_stream(0), _M_value(), _M_ok(false) {} 8657: 8657: 8657: istream_iterator(istream_type& __s) 8657: : _M_stream(std::__addressof(__s)) 8657: { _M_read(); } 8657: 8657: istream_iterator(const istream_iterator& __obj) 8657: : _M_stream(__obj._M_stream), _M_value(__obj._M_value), 8657: _M_ok(__obj._M_ok) 8657: { } 8657: 8657: const _Tp& 8657: operator*() const 8657: { 8657: 8657: 8657: ; 8657: return _M_value; 8657: } 8657: 8657: const _Tp* 8657: operator->() const { return std::__addressof((operator*())); } 8657: 8657: istream_iterator& 8657: operator++() 8657: { 8657: 8657: 8657: ; 8657: _M_read(); 8657: return *this; 8657: } 8657: 8657: istream_iterator 8657: operator++(int) 8657: { 8657: 8657: 8657: ; 8657: istream_iterator __tmp = *this; 8657: _M_read(); 8657: return __tmp; 8657: } 8657: 8657: bool 8657: _M_equal(const istream_iterator& __x) const 8657: { return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream); } 8657: 8657: private: 8657: void 8657: _M_read() 8657: { 8657: _M_ok = (_M_stream && *_M_stream) ? true : false; 8657: if (_M_ok) 8657: { 8657: *_M_stream >> _M_value; 8657: _M_ok = *_M_stream ? true : false; 8657: } 8657: } 8657: }; 8657: 8657: 8657: template 8657: inline bool 8657: operator==(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, 8657: const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) 8657: { return __x._M_equal(__y); } 8657: 8657: 8657: template 8657: inline bool 8657: operator!=(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, 8657: const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) 8657: { return !__x._M_equal(__y); } 8657: # 152 "/usr/include/c++/8/bits/stream_iterator.h" 3 8657: template > 8657: class ostream_iterator 8657: : public iterator 8657: { 8657: public: 8657: 8657: 8657: typedef _CharT char_type; 8657: typedef _Traits traits_type; 8657: typedef basic_ostream<_CharT, _Traits> ostream_type; 8657: 8657: 8657: private: 8657: ostream_type* _M_stream; 8657: const _CharT* _M_string; 8657: 8657: public: 8657: 8657: ostream_iterator(ostream_type& __s) 8657: : _M_stream(std::__addressof(__s)), _M_string(0) {} 8657: # 184 "/usr/include/c++/8/bits/stream_iterator.h" 3 8657: ostream_iterator(ostream_type& __s, const _CharT* __c) 8657: : _M_stream(&__s), _M_string(__c) { } 8657: 8657: 8657: ostream_iterator(const ostream_iterator& __obj) 8657: : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { } 8657: 8657: 8657: 8657: ostream_iterator& 8657: operator=(const _Tp& __value) 8657: { 8657: 8657: 8657: ; 8657: *_M_stream << __value; 8657: if (_M_string) *_M_stream << _M_string; 8657: return *this; 8657: } 8657: 8657: ostream_iterator& 8657: operator*() 8657: { return *this; } 8657: 8657: ostream_iterator& 8657: operator++() 8657: { return *this; } 8657: 8657: ostream_iterator& 8657: operator++(int) 8657: { return *this; } 8657: }; 8657: 8657: 8657: 8657: 8657: } 8657: # 67 "/usr/include/c++/8/iterator" 2 3 8657: # 54 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 2 3 4 8657: # 64 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) char *qstrdup(const char *); 8657: 8657: inline uint qstrlen(const char *str) 8657: { return str ? uint(strlen(str)) : 0; } 8657: 8657: inline uint qstrnlen(const char *str, uint maxlen) 8657: { 8657: uint length = 0; 8657: if (str) { 8657: while (length < maxlen && *str++) 8657: length++; 8657: } 8657: return length; 8657: } 8657: 8657: __attribute__((visibility("default"))) char *qstrcpy(char *dst, const char *src); 8657: __attribute__((visibility("default"))) char *qstrncpy(char *dst, const char *src, uint len); 8657: 8657: __attribute__((visibility("default"))) int qstrcmp(const char *str1, const char *str2); 8657: __attribute__((visibility("default"))) int qstrcmp(const QByteArray &str1, const QByteArray &str2); 8657: __attribute__((visibility("default"))) int qstrcmp(const QByteArray &str1, const char *str2); 8657: static inline int qstrcmp(const char *str1, const QByteArray &str2) 8657: { return -qstrcmp(str2, str1); } 8657: 8657: inline int qstrncmp(const char *str1, const char *str2, uint len) 8657: { 8657: return (str1 && str2) ? strncmp(str1, str2, len) 8657: : (str1 ? 1 : (str2 ? -1 : 0)); 8657: } 8657: __attribute__((visibility("default"))) int qstricmp(const char *, const char *); 8657: __attribute__((visibility("default"))) int qstrnicmp(const char *, const char *, uint len); 8657: 8657: 8657: __attribute__((visibility("default"))) int qvsnprintf(char *str, size_t n, const char *fmt, va_list ap); 8657: __attribute__((visibility("default"))) int qsnprintf(char *str, size_t n, const char *fmt, ...); 8657: 8657: 8657: __attribute__((visibility("default"))) quint16 qChecksum(const char *s, uint len); 8657: __attribute__((visibility("default"))) quint16 qChecksum(const char *s, uint len, Qt::ChecksumType standard); 8657: 8657: class QByteRef; 8657: class QString; 8657: class QDataStream; 8657: template class QList; 8657: 8657: typedef QArrayData QByteArrayData; 8657: 8657: template struct QStaticByteArrayData 8657: { 8657: QByteArrayData ba; 8657: char data[N + 1]; 8657: 8657: QByteArrayData *data_ptr() const 8657: { 8657: do { } while ((false) && (ba.ref.isStatic())); 8657: return const_cast(&ba); 8657: } 8657: }; 8657: 8657: struct QByteArrayDataPtr 8657: { 8657: QByteArrayData *ptr; 8657: }; 8657: # 155 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 3 4 8657: class __attribute__((visibility("default"))) QByteArray 8657: { 8657: private: 8657: typedef QTypedArrayData Data; 8657: 8657: public: 8657: enum Base64Option { 8657: Base64Encoding = 0, 8657: Base64UrlEncoding = 1, 8657: 8657: KeepTrailingEquals = 0, 8657: OmitTrailingEquals = 2 8657: }; 8657: typedef QFlags Base64Options; 8657: 8657: inline QByteArray() noexcept; 8657: QByteArray(const char *, int size = -1); 8657: QByteArray(int size, char c); 8657: QByteArray(int size, Qt::Initialization); 8657: inline QByteArray(const QByteArray &) noexcept; 8657: inline ~QByteArray(); 8657: 8657: QByteArray &operator=(const QByteArray &) noexcept; 8657: QByteArray &operator=(const char *str); 8657: 8657: inline QByteArray(QByteArray && other) noexcept : d(other.d) { other.d = Data::sharedNull(); } 8657: inline QByteArray &operator=(QByteArray &&other) noexcept 8657: { qSwap(d, other.d); return *this; } 8657: 8657: 8657: inline void swap(QByteArray &other) noexcept 8657: { qSwap(d, other.d); } 8657: 8657: inline int size() const; 8657: bool isEmpty() const; 8657: void resize(int size); 8657: 8657: QByteArray &fill(char c, int size = -1); 8657: 8657: int capacity() const; 8657: void reserve(int size); 8657: void squeeze(); 8657: 8657: 8657: 8657: 8657: 8657: char *data(); 8657: const char *data() const; 8657: inline const char *constData() const; 8657: inline void detach(); 8657: bool isDetached() const; 8657: inline bool isSharedWith(const QByteArray &other) const { return d == other.d; } 8657: void clear(); 8657: 8657: char at(int i) const; 8657: char operator[](int i) const; 8657: char operator[](uint i) const; 8657: QByteRef operator[](int i); 8657: QByteRef operator[](uint i); 8657: 8657: int indexOf(char c, int from = 0) const; 8657: int indexOf(const char *c, int from = 0) const; 8657: int indexOf(const QByteArray &a, int from = 0) const; 8657: int lastIndexOf(char c, int from = -1) const; 8657: int lastIndexOf(const char *c, int from = -1) const; 8657: int lastIndexOf(const QByteArray &a, int from = -1) const; 8657: 8657: bool contains(char c) const; 8657: bool contains(const char *a) const; 8657: bool contains(const QByteArray &a) const; 8657: int count(char c) const; 8657: int count(const char *a) const; 8657: int count(const QByteArray &a) const; 8657: 8657: [[nodiscard]] QByteArray left(int len) const; 8657: [[nodiscard]] QByteArray right(int len) const; 8657: [[nodiscard]] QByteArray mid(int index, int len = -1) const; 8657: 8657: bool startsWith(const QByteArray &a) const; 8657: bool startsWith(char c) const; 8657: bool startsWith(const char *c) const; 8657: 8657: bool endsWith(const QByteArray &a) const; 8657: bool endsWith(char c) const; 8657: bool endsWith(const char *c) const; 8657: 8657: void truncate(int pos); 8657: void chop(int n); 8657: # 253 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 3 4 8657: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toLower() const & 8657: { return toLower_helper(*this); } 8657: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toLower() && 8657: { return toLower_helper(*this); } 8657: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toUpper() const & 8657: { return toUpper_helper(*this); } 8657: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toUpper() && 8657: { return toUpper_helper(*this); } 8657: [[nodiscard]] inline __attribute__((always_inline)) QByteArray trimmed() const & 8657: { return trimmed_helper(*this); } 8657: [[nodiscard]] inline __attribute__((always_inline)) QByteArray trimmed() && 8657: { return trimmed_helper(*this); } 8657: [[nodiscard]] inline __attribute__((always_inline)) QByteArray simplified() const & 8657: { return simplified_helper(*this); } 8657: [[nodiscard]] inline __attribute__((always_inline)) QByteArray simplified() && 8657: { return simplified_helper(*this); } 8657: # 279 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 3 4 8657: [[nodiscard]] QByteArray leftJustified(int width, char fill = ' ', bool truncate = false) const; 8657: [[nodiscard]] QByteArray rightJustified(int width, char fill = ' ', bool truncate = false) const; 8657: 8657: QByteArray &prepend(char c); 8657: QByteArray &prepend(int count, char c); 8657: QByteArray &prepend(const char *s); 8657: QByteArray &prepend(const char *s, int len); 8657: QByteArray &prepend(const QByteArray &a); 8657: QByteArray &append(char c); 8657: QByteArray &append(int count, char c); 8657: QByteArray &append(const char *s); 8657: QByteArray &append(const char *s, int len); 8657: QByteArray &append(const QByteArray &a); 8657: QByteArray &insert(int i, char c); 8657: QByteArray &insert(int i, int count, char c); 8657: QByteArray &insert(int i, const char *s); 8657: QByteArray &insert(int i, const char *s, int len); 8657: QByteArray &insert(int i, const QByteArray &a); 8657: QByteArray &remove(int index, int len); 8657: QByteArray &replace(int index, int len, const char *s); 8657: QByteArray &replace(int index, int len, const char *s, int alen); 8657: QByteArray &replace(int index, int len, const QByteArray &s); 8657: QByteArray &replace(char before, const char *after); 8657: QByteArray &replace(char before, const QByteArray &after); 8657: QByteArray &replace(const char *before, const char *after); 8657: QByteArray &replace(const char *before, int bsize, const char *after, int asize); 8657: QByteArray &replace(const QByteArray &before, const QByteArray &after); 8657: QByteArray &replace(const QByteArray &before, const char *after); 8657: QByteArray &replace(const char *before, const QByteArray &after); 8657: QByteArray &replace(char before, char after); 8657: QByteArray &operator+=(char c); 8657: QByteArray &operator+=(const char *s); 8657: QByteArray &operator+=(const QByteArray &a); 8657: 8657: QList split(char sep) const; 8657: 8657: [[nodiscard]] QByteArray repeated(int times) const; 8657: # 337 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 3 4 8657: short toShort(bool *ok = nullptr, int base = 10) const; 8657: ushort toUShort(bool *ok = nullptr, int base = 10) const; 8657: int toInt(bool *ok = nullptr, int base = 10) const; 8657: uint toUInt(bool *ok = nullptr, int base = 10) const; 8657: long toLong(bool *ok = nullptr, int base = 10) const; 8657: ulong toULong(bool *ok = nullptr, int base = 10) const; 8657: qlonglong toLongLong(bool *ok = nullptr, int base = 10) const; 8657: qulonglong toULongLong(bool *ok = nullptr, int base = 10) const; 8657: float toFloat(bool *ok = nullptr) const; 8657: double toDouble(bool *ok = nullptr) const; 8657: QByteArray toBase64(Base64Options options) const; 8657: QByteArray toBase64() const; 8657: QByteArray toHex() const; 8657: QByteArray toHex(char separator) const; 8657: QByteArray toPercentEncoding(const QByteArray &exclude = QByteArray(), 8657: const QByteArray &include = QByteArray(), 8657: char percent = '%') const; 8657: 8657: QByteArray &setNum(short, int base = 10); 8657: QByteArray &setNum(ushort, int base = 10); 8657: QByteArray &setNum(int, int base = 10); 8657: QByteArray &setNum(uint, int base = 10); 8657: QByteArray &setNum(qlonglong, int base = 10); 8657: QByteArray &setNum(qulonglong, int base = 10); 8657: QByteArray &setNum(float, char f = 'g', int prec = 6); 8657: QByteArray &setNum(double, char f = 'g', int prec = 6); 8657: QByteArray &setRawData(const char *a, uint n); 8657: 8657: [[nodiscard]] static QByteArray number(int, int base = 10); 8657: [[nodiscard]] static QByteArray number(uint, int base = 10); 8657: [[nodiscard]] static QByteArray number(qlonglong, int base = 10); 8657: [[nodiscard]] static QByteArray number(qulonglong, int base = 10); 8657: [[nodiscard]] static QByteArray number(double, char f = 'g', int prec = 6); 8657: [[nodiscard]] static QByteArray fromRawData(const char *, int size); 8657: [[nodiscard]] static QByteArray fromBase64(const QByteArray &base64, Base64Options options); 8657: [[nodiscard]] static QByteArray fromBase64(const QByteArray &base64); 8657: [[nodiscard]] static QByteArray fromHex(const QByteArray &hexEncoded); 8657: [[nodiscard]] static QByteArray fromPercentEncoding(const QByteArray &pctEncoded, char percent = '%'); 8657: # 387 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 3 4 8657: typedef char *iterator; 8657: typedef const char *const_iterator; 8657: typedef iterator Iterator; 8657: typedef const_iterator ConstIterator; 8657: typedef std::reverse_iterator reverse_iterator; 8657: typedef std::reverse_iterator const_reverse_iterator; 8657: inline iterator begin(); 8657: inline const_iterator begin() const; 8657: inline const_iterator cbegin() const; 8657: inline const_iterator constBegin() const; 8657: inline iterator end(); 8657: inline const_iterator end() const; 8657: inline const_iterator cend() const; 8657: inline const_iterator constEnd() const; 8657: reverse_iterator rbegin() { return reverse_iterator(end()); } 8657: reverse_iterator rend() { return reverse_iterator(begin()); } 8657: const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8657: const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8657: const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); } 8657: const_reverse_iterator crend() const { return const_reverse_iterator(begin()); } 8657: 8657: 8657: typedef int size_type; 8657: typedef qptrdiff difference_type; 8657: typedef const char & const_reference; 8657: typedef char & reference; 8657: typedef char *pointer; 8657: typedef const char *const_pointer; 8657: typedef char value_type; 8657: void push_back(char c); 8657: void push_back(const char *c); 8657: void push_back(const QByteArray &a); 8657: void push_front(char c); 8657: void push_front(const char *c); 8657: void push_front(const QByteArray &a); 8657: 8657: static inline QByteArray fromStdString(const std::string &s); 8657: inline std::string toStdString() const; 8657: 8657: inline int count() const { return d->size; } 8657: int length() const { return d->size; } 8657: bool isNull() const; 8657: 8657: inline QByteArray(QByteArrayDataPtr dd) 8657: : d(static_cast(dd.ptr)) 8657: { 8657: } 8657: 8657: private: 8657: operator QNoImplicitBoolCast() const; 8657: Data *d; 8657: void reallocData(uint alloc, Data::AllocationOptions options); 8657: void expand(int i); 8657: QByteArray nulTerminated() const; 8657: 8657: static QByteArray toLower_helper(const QByteArray &a); 8657: static QByteArray toLower_helper(QByteArray &a); 8657: static QByteArray toUpper_helper(const QByteArray &a); 8657: static QByteArray toUpper_helper(QByteArray &a); 8657: static QByteArray trimmed_helper(const QByteArray &a); 8657: static QByteArray trimmed_helper(QByteArray &a); 8657: static QByteArray simplified_helper(const QByteArray &a); 8657: static QByteArray simplified_helper(QByteArray &a); 8657: 8657: friend class QByteRef; 8657: friend class QString; 8657: friend __attribute__((visibility("default"))) QByteArray qUncompress(const uchar *data, int nbytes); 8657: public: 8657: typedef Data * DataPtr; 8657: inline DataPtr &data_ptr() { return d; } 8657: }; 8657: 8657: constexpr inline QFlags operator|(QByteArray::Base64Options::enum_type f1, QByteArray::Base64Options::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QByteArray::Base64Options::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QByteArray::Base64Options::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: 8657: inline QByteArray::QByteArray() noexcept : d(Data::sharedNull()) { } 8657: inline QByteArray::~QByteArray() { if (!d->ref.deref()) Data::deallocate(d); } 8657: inline int QByteArray::size() const 8657: { return d->size; } 8657: 8657: inline char QByteArray::at(int i) const 8657: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8657: inline char QByteArray::operator[](int i) const 8657: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8657: inline char QByteArray::operator[](uint i) const 8657: { do { } while ((false) && (i < uint(size()))); return d->data()[i]; } 8657: 8657: inline bool QByteArray::isEmpty() const 8657: { return d->size == 0; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: inline char *QByteArray::data() 8657: { detach(); return d->data(); } 8657: inline const char *QByteArray::data() const 8657: { return d->data(); } 8657: inline const char *QByteArray::constData() const 8657: { return d->data(); } 8657: inline void QByteArray::detach() 8657: { if (d->ref.isShared() || (d->offset != sizeof(QByteArrayData))) reallocData(uint(d->size) + 1u, d->detachFlags()); } 8657: inline bool QByteArray::isDetached() const 8657: { return !d->ref.isShared(); } 8657: inline QByteArray::QByteArray(const QByteArray &a) noexcept : d(a.d) 8657: { d->ref.ref(); } 8657: 8657: inline int QByteArray::capacity() const 8657: { return d->alloc ? d->alloc - 1 : 0; } 8657: 8657: inline void QByteArray::reserve(int asize) 8657: { 8657: if (d->ref.isShared() || uint(asize) + 1u > d->alloc) { 8657: reallocData(qMax(uint(size()), uint(asize)) + 1u, d->detachFlags() | Data::CapacityReserved); 8657: } else { 8657: 8657: 8657: d->capacityReserved = true; 8657: } 8657: } 8657: 8657: inline void QByteArray::squeeze() 8657: { 8657: if (d->ref.isShared() || uint(d->size) + 1u < d->alloc) { 8657: reallocData(uint(d->size) + 1u, d->detachFlags() & ~Data::CapacityReserved); 8657: } else { 8657: 8657: 8657: d->capacityReserved = false; 8657: } 8657: } 8657: 8657: class __attribute__((visibility("default"))) QByteRef { 8657: QByteArray &a; 8657: int i; 8657: inline QByteRef(QByteArray &array, int idx) 8657: : a(array),i(idx) {} 8657: friend class QByteArray; 8657: public: 8657: inline operator char() const 8657: { return i < a.d->size ? a.d->data()[i] : char(0); } 8657: inline QByteRef &operator=(char c) 8657: { if (i >= a.d->size) a.expand(i); else a.detach(); 8657: a.d->data()[i] = c; return *this; } 8657: inline QByteRef &operator=(const QByteRef &c) 8657: { if (i >= a.d->size) a.expand(i); else a.detach(); 8657: a.d->data()[i] = c.a.d->data()[c.i]; return *this; } 8657: inline bool operator==(char c) const 8657: { return a.d->data()[i] == c; } 8657: inline bool operator!=(char c) const 8657: { return a.d->data()[i] != c; } 8657: inline bool operator>(char c) const 8657: { return a.d->data()[i] > c; } 8657: inline bool operator>=(char c) const 8657: { return a.d->data()[i] >= c; } 8657: inline bool operator<(char c) const 8657: { return a.d->data()[i] < c; } 8657: inline bool operator<=(char c) const 8657: { return a.d->data()[i] <= c; } 8657: }; 8657: 8657: inline QByteRef QByteArray::operator[](int i) 8657: { do { } while ((false) && (i >= 0)); return QByteRef(*this, i); } 8657: inline QByteRef QByteArray::operator[](uint i) 8657: { return QByteRef(*this, i); } 8657: inline QByteArray::iterator QByteArray::begin() 8657: { detach(); return d->data(); } 8657: inline QByteArray::const_iterator QByteArray::begin() const 8657: { return d->data(); } 8657: inline QByteArray::const_iterator QByteArray::cbegin() const 8657: { return d->data(); } 8657: inline QByteArray::const_iterator QByteArray::constBegin() const 8657: { return d->data(); } 8657: inline QByteArray::iterator QByteArray::end() 8657: { detach(); return d->data() + d->size; } 8657: inline QByteArray::const_iterator QByteArray::end() const 8657: { return d->data() + d->size; } 8657: inline QByteArray::const_iterator QByteArray::cend() const 8657: { return d->data() + d->size; } 8657: inline QByteArray::const_iterator QByteArray::constEnd() const 8657: { return d->data() + d->size; } 8657: inline QByteArray &QByteArray::append(int n, char ch) 8657: { return insert(d->size, n, ch); } 8657: inline QByteArray &QByteArray::prepend(int n, char ch) 8657: { return insert(0, n, ch); } 8657: inline QByteArray &QByteArray::operator+=(char c) 8657: { return append(c); } 8657: inline QByteArray &QByteArray::operator+=(const char *s) 8657: { return append(s); } 8657: inline QByteArray &QByteArray::operator+=(const QByteArray &a) 8657: { return append(a); } 8657: inline void QByteArray::push_back(char c) 8657: { append(c); } 8657: inline void QByteArray::push_back(const char *c) 8657: { append(c); } 8657: inline void QByteArray::push_back(const QByteArray &a) 8657: { append(a); } 8657: inline void QByteArray::push_front(char c) 8657: { prepend(c); } 8657: inline void QByteArray::push_front(const char *c) 8657: { prepend(c); } 8657: inline void QByteArray::push_front(const QByteArray &a) 8657: { prepend(a); } 8657: inline bool QByteArray::contains(const QByteArray &a) const 8657: { return indexOf(a) != -1; } 8657: inline bool QByteArray::contains(char c) const 8657: { return indexOf(c) != -1; } 8657: inline bool operator==(const QByteArray &a1, const QByteArray &a2) noexcept 8657: { return (a1.size() == a2.size()) && (memcmp(a1.constData(), a2.constData(), a1.size())==0); } 8657: inline bool operator==(const QByteArray &a1, const char *a2) noexcept 8657: { return a2 ? qstrcmp(a1,a2) == 0 : a1.isEmpty(); } 8657: inline bool operator==(const char *a1, const QByteArray &a2) noexcept 8657: { return a1 ? qstrcmp(a1,a2) == 0 : a2.isEmpty(); } 8657: inline bool operator!=(const QByteArray &a1, const QByteArray &a2) noexcept 8657: { return !(a1==a2); } 8657: inline bool operator!=(const QByteArray &a1, const char *a2) noexcept 8657: { return a2 ? qstrcmp(a1,a2) != 0 : !a1.isEmpty(); } 8657: inline bool operator!=(const char *a1, const QByteArray &a2) noexcept 8657: { return a1 ? qstrcmp(a1,a2) != 0 : !a2.isEmpty(); } 8657: inline bool operator<(const QByteArray &a1, const QByteArray &a2) noexcept 8657: { return qstrcmp(a1, a2) < 0; } 8657: inline bool operator<(const QByteArray &a1, const char *a2) noexcept 8657: { return qstrcmp(a1, a2) < 0; } 8657: inline bool operator<(const char *a1, const QByteArray &a2) noexcept 8657: { return qstrcmp(a1, a2) < 0; } 8657: inline bool operator<=(const QByteArray &a1, const QByteArray &a2) noexcept 8657: { return qstrcmp(a1, a2) <= 0; } 8657: inline bool operator<=(const QByteArray &a1, const char *a2) noexcept 8657: { return qstrcmp(a1, a2) <= 0; } 8657: inline bool operator<=(const char *a1, const QByteArray &a2) noexcept 8657: { return qstrcmp(a1, a2) <= 0; } 8657: inline bool operator>(const QByteArray &a1, const QByteArray &a2) noexcept 8657: { return qstrcmp(a1, a2) > 0; } 8657: inline bool operator>(const QByteArray &a1, const char *a2) noexcept 8657: { return qstrcmp(a1, a2) > 0; } 8657: inline bool operator>(const char *a1, const QByteArray &a2) noexcept 8657: { return qstrcmp(a1, a2) > 0; } 8657: inline bool operator>=(const QByteArray &a1, const QByteArray &a2) noexcept 8657: { return qstrcmp(a1, a2) >= 0; } 8657: inline bool operator>=(const QByteArray &a1, const char *a2) noexcept 8657: { return qstrcmp(a1, a2) >= 0; } 8657: inline bool operator>=(const char *a1, const QByteArray &a2) noexcept 8657: { return qstrcmp(a1, a2) >= 0; } 8657: # 642 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 3 4 8657: inline bool QByteArray::contains(const char *c) const 8657: { return indexOf(c) != -1; } 8657: inline QByteArray &QByteArray::replace(char before, const char *c) 8657: { return replace(&before, 1, c, qstrlen(c)); } 8657: inline QByteArray &QByteArray::replace(const QByteArray &before, const char *c) 8657: { return replace(before.constData(), before.size(), c, qstrlen(c)); } 8657: inline QByteArray &QByteArray::replace(const char *before, const char *after) 8657: { return replace(before, qstrlen(before), after, qstrlen(after)); } 8657: 8657: inline QByteArray &QByteArray::setNum(short n, int base) 8657: { return base == 10 ? setNum(qlonglong(n), base) : setNum(qulonglong(ushort(n)), base); } 8657: inline QByteArray &QByteArray::setNum(ushort n, int base) 8657: { return setNum(qulonglong(n), base); } 8657: inline QByteArray &QByteArray::setNum(int n, int base) 8657: { return base == 10 ? setNum(qlonglong(n), base) : setNum(qulonglong(uint(n)), base); } 8657: inline QByteArray &QByteArray::setNum(uint n, int base) 8657: { return setNum(qulonglong(n), base); } 8657: inline QByteArray &QByteArray::setNum(float n, char f, int prec) 8657: { return setNum(double(n),f,prec); } 8657: 8657: inline std::string QByteArray::toStdString() const 8657: { return std::string(constData(), length()); } 8657: 8657: inline QByteArray QByteArray::fromStdString(const std::string &s) 8657: { return QByteArray(s.data(), int(s.size())); } 8657: 8657: 8657: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QByteArray &); 8657: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QByteArray &); 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) QByteArray qCompress(const uchar* data, int nbytes, int compressionLevel = -1); 8657: __attribute__((visibility("default"))) QByteArray qUncompress(const uchar* data, int nbytes); 8657: inline QByteArray qCompress(const QByteArray& data, int compressionLevel = -1) 8657: { return qCompress(reinterpret_cast(data.constData()), data.size(), compressionLevel); } 8657: inline QByteArray qUncompress(const QByteArray& data) 8657: { return qUncompress(reinterpret_cast(data.constData()), data.size()); } 8657: 8657: 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QByteArray)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QByteArray >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QByteArray) }; static inline const char *name() { return "QByteArray"; } }; inline void swap(QByteArray &value1, QByteArray &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 1 3 4 8657: # 688 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 2 3 4 8657: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 2 3 4 8657: # 76 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: 8657: 8657: class QCharRef; 8657: class QRegExp; 8657: class QRegularExpression; 8657: class QRegularExpressionMatch; 8657: class QString; 8657: class QStringList; 8657: class QTextCodec; 8657: class QStringRef; 8657: template class QVector; 8657: 8657: class QLatin1String 8657: { 8657: public: 8657: constexpr inline QLatin1String() noexcept : m_size(0), m_data(nullptr) {} 8657: constexpr inline explicit QLatin1String(const char *s) noexcept : m_size(s ? int(strlen(s)) : 0), m_data(s) {} 8657: constexpr inline explicit QLatin1String(const char *s, int sz) noexcept : m_size(sz), m_data(s) {} 8657: inline explicit QLatin1String(const QByteArray &s) noexcept : m_size(int(qstrnlen(s.constData(), s.size()))), m_data(s.constData()) {} 8657: 8657: constexpr const char *latin1() const noexcept { return m_data; } 8657: constexpr int size() const noexcept { return m_size; } 8657: constexpr const char *data() const noexcept { return m_data; } 8657: 8657: constexpr QLatin1Char at(int i) const { return QLatin1Char(m_data[i]); } 8657: constexpr QLatin1Char operator[](int i) const { return at(i); } 8657: 8657: constexpr QLatin1String mid(int pos) const 8657: { return QLatin1String(m_data + pos, m_size - pos); } 8657: constexpr QLatin1String mid(int pos, int n) const 8657: { return QLatin1String(m_data + pos, n); } 8657: constexpr QLatin1String left(int n) const 8657: { return QLatin1String(m_data, n); } 8657: constexpr QLatin1String right(int n) const 8657: { return QLatin1String(m_data + m_size - n, n); } 8657: 8657: inline bool operator==(const QString &s) const noexcept; 8657: inline bool operator!=(const QString &s) const noexcept; 8657: inline bool operator>(const QString &s) const noexcept; 8657: inline bool operator<(const QString &s) const noexcept; 8657: inline bool operator>=(const QString &s) const noexcept; 8657: inline bool operator<=(const QString &s) const noexcept; 8657: # 135 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: private: 8657: int m_size; 8657: const char *m_data; 8657: }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QLatin1String)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QLatin1String >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QLatin1String) }; static inline const char *name() { return "QLatin1String"; } }; 8657: 8657: 8657: typedef QLatin1String QLatin1Literal; 8657: 8657: 8657: typedef QTypedArrayData QStringData; 8657: # 166 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: typedef char16_t qunicodechar; 8657: 8657: 8657: 8657: static_assert(bool(sizeof(qunicodechar) == 2), "qunicodechar must typedef an integral type of size 2") 8657: ; 8657: # 194 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: template 8657: struct QStaticStringData 8657: { 8657: QArrayData str; 8657: qunicodechar data[N + 1]; 8657: 8657: QStringData *data_ptr() const 8657: { 8657: do { } while ((false) && (str.ref.isStatic())); 8657: return const_cast(static_cast(&str)); 8657: } 8657: }; 8657: 8657: struct QStringDataPtr 8657: { 8657: QStringData *ptr; 8657: }; 8657: 8657: class __attribute__((visibility("default"))) QString 8657: { 8657: public: 8657: typedef QStringData Data; 8657: 8657: inline QString() noexcept; 8657: explicit QString(const QChar *unicode, int size = -1); 8657: QString(QChar c); 8657: QString(int size, QChar c); 8657: inline QString(QLatin1String latin1); 8657: inline QString(const QString &) noexcept; 8657: inline ~QString(); 8657: QString &operator=(QChar c); 8657: QString &operator=(const QString &) noexcept; 8657: QString &operator=(QLatin1String latin1); 8657: 8657: inline QString(QString && other) noexcept : d(other.d) { other.d = Data::sharedNull(); } 8657: inline QString &operator=(QString &&other) noexcept 8657: { qSwap(d, other.d); return *this; } 8657: 8657: inline void swap(QString &other) noexcept { qSwap(d, other.d); } 8657: inline int size() const { return d->size; } 8657: inline int count() const { return d->size; } 8657: inline int length() const; 8657: inline bool isEmpty() const; 8657: void resize(int size); 8657: void resize(int size, QChar fillChar); 8657: 8657: QString &fill(QChar c, int size = -1); 8657: void truncate(int pos); 8657: void chop(int n); 8657: 8657: int capacity() const; 8657: inline void reserve(int size); 8657: inline void squeeze(); 8657: 8657: inline const QChar *unicode() const; 8657: inline QChar *data(); 8657: inline const QChar *data() const; 8657: inline const QChar *constData() const; 8657: 8657: inline void detach(); 8657: inline bool isDetached() const; 8657: inline bool isSharedWith(const QString &other) const { return d == other.d; } 8657: void clear(); 8657: 8657: inline const QChar at(int i) const; 8657: const QChar operator[](int i) const; 8657: QCharRef operator[](int i); 8657: const QChar operator[](uint i) const; 8657: QCharRef operator[](uint i); 8657: 8657: [[nodiscard]] QString arg(qlonglong a, int fieldwidth=0, int base=10, 8657: QChar fillChar = QLatin1Char(' ')) const; 8657: [[nodiscard]] QString arg(qulonglong a, int fieldwidth=0, int base=10, 8657: QChar fillChar = QLatin1Char(' ')) const; 8657: [[nodiscard]] QString arg(long a, int fieldwidth=0, int base=10, 8657: QChar fillChar = QLatin1Char(' ')) const; 8657: [[nodiscard]] QString arg(ulong a, int fieldwidth=0, int base=10, 8657: QChar fillChar = QLatin1Char(' ')) const; 8657: [[nodiscard]] QString arg(int a, int fieldWidth = 0, int base = 10, 8657: QChar fillChar = QLatin1Char(' ')) const; 8657: [[nodiscard]] QString arg(uint a, int fieldWidth = 0, int base = 10, 8657: QChar fillChar = QLatin1Char(' ')) const; 8657: [[nodiscard]] QString arg(short a, int fieldWidth = 0, int base = 10, 8657: QChar fillChar = QLatin1Char(' ')) const; 8657: [[nodiscard]] QString arg(ushort a, int fieldWidth = 0, int base = 10, 8657: QChar fillChar = QLatin1Char(' ')) const; 8657: [[nodiscard]] QString arg(double a, int fieldWidth = 0, char fmt = 'g', int prec = -1, 8657: QChar fillChar = QLatin1Char(' ')) const; 8657: [[nodiscard]] QString arg(char a, int fieldWidth = 0, 8657: QChar fillChar = QLatin1Char(' ')) const; 8657: [[nodiscard]] QString arg(QChar a, int fieldWidth = 0, 8657: QChar fillChar = QLatin1Char(' ')) const; 8657: [[nodiscard]] QString arg(const QString &a, int fieldWidth = 0, 8657: QChar fillChar = QLatin1Char(' ')) const; 8657: [[nodiscard]] QString arg(const QString &a1, const QString &a2) const; 8657: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3) const; 8657: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8657: const QString &a4) const; 8657: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8657: const QString &a4, const QString &a5) const; 8657: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8657: const QString &a4, const QString &a5, const QString &a6) const; 8657: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8657: const QString &a4, const QString &a5, const QString &a6, 8657: const QString &a7) const; 8657: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8657: const QString &a4, const QString &a5, const QString &a6, 8657: const QString &a7, const QString &a8) const; 8657: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8657: const QString &a4, const QString &a5, const QString &a6, 8657: const QString &a7, const QString &a8, const QString &a9) const; 8657: 8657: QString &vsprintf(const char *format, va_list ap) __attribute__((format(printf, (2), (0)))); 8657: QString &sprintf(const char *format, ...) __attribute__((format(printf, (2), (3)))); 8657: static QString vasprintf(const char *format, va_list ap) __attribute__((format(printf, (1), (0)))); 8657: static QString asprintf(const char *format, ...) __attribute__((format(printf, (1), (2)))); 8657: 8657: int indexOf(QChar c, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int indexOf(const QString &s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int indexOf(QLatin1String s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int indexOf(const QStringRef &s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int lastIndexOf(QChar c, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int lastIndexOf(const QString &s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int lastIndexOf(QLatin1String s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int lastIndexOf(const QStringRef &s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: 8657: inline bool contains(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: inline bool contains(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: inline bool contains(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: inline bool contains(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int count(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int count(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int count(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: 8657: 8657: int indexOf(const QRegExp &, int from = 0) const; 8657: int lastIndexOf(const QRegExp &, int from = -1) const; 8657: inline bool contains(const QRegExp &rx) const { return indexOf(rx) != -1; } 8657: int count(const QRegExp &) const; 8657: 8657: int indexOf(QRegExp &, int from = 0) const; 8657: int lastIndexOf(QRegExp &, int from = -1) const; 8657: inline bool contains(QRegExp &rx) const { return indexOf(rx) != -1; } 8657: 8657: 8657: 8657: int indexOf(const QRegularExpression &re, int from = 0) const; 8657: int indexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const; 8657: int lastIndexOf(const QRegularExpression &re, int from = -1) const; 8657: int lastIndexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const; 8657: bool contains(const QRegularExpression &re) const; 8657: bool contains(const QRegularExpression &re, QRegularExpressionMatch *match) const; 8657: int count(const QRegularExpression &re) const; 8657: 8657: 8657: enum SectionFlag { 8657: SectionDefault = 0x00, 8657: SectionSkipEmpty = 0x01, 8657: SectionIncludeLeadingSep = 0x02, 8657: SectionIncludeTrailingSep = 0x04, 8657: SectionCaseInsensitiveSeps = 0x08 8657: }; 8657: typedef QFlags SectionFlags; 8657: 8657: QString section(QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8657: QString section(const QString &in_sep, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8657: 8657: QString section(const QRegExp ®, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8657: 8657: 8657: QString section(const QRegularExpression &re, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8657: 8657: [[nodiscard]] QString left(int n) const; 8657: [[nodiscard]] QString right(int n) const; 8657: [[nodiscard]] QString mid(int position, int n = -1) const; 8657: [[nodiscard]] QStringRef leftRef(int n) const; 8657: [[nodiscard]] QStringRef rightRef(int n) const; 8657: [[nodiscard]] QStringRef midRef(int position, int n = -1) const; 8657: 8657: bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: bool startsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: bool startsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: bool startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: bool endsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: bool endsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: bool endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: 8657: [[nodiscard]] QString leftJustified(int width, QChar fill = QLatin1Char(' '), bool trunc = false) const; 8657: [[nodiscard]] QString rightJustified(int width, QChar fill = QLatin1Char(' '), bool trunc = false) const; 8657: # 393 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: [[nodiscard]] inline __attribute__((always_inline)) QString toLower() const & 8657: { return toLower_helper(*this); } 8657: [[nodiscard]] inline __attribute__((always_inline)) QString toLower() && 8657: { return toLower_helper(*this); } 8657: [[nodiscard]] inline __attribute__((always_inline)) QString toUpper() const & 8657: { return toUpper_helper(*this); } 8657: [[nodiscard]] inline __attribute__((always_inline)) QString toUpper() && 8657: { return toUpper_helper(*this); } 8657: [[nodiscard]] inline __attribute__((always_inline)) QString toCaseFolded() const & 8657: { return toCaseFolded_helper(*this); } 8657: [[nodiscard]] inline __attribute__((always_inline)) QString toCaseFolded() && 8657: { return toCaseFolded_helper(*this); } 8657: [[nodiscard]] inline __attribute__((always_inline)) QString trimmed() const & 8657: { return trimmed_helper(*this); } 8657: [[nodiscard]] inline __attribute__((always_inline)) QString trimmed() && 8657: { return trimmed_helper(*this); } 8657: [[nodiscard]] inline __attribute__((always_inline)) QString simplified() const & 8657: { return simplified_helper(*this); } 8657: [[nodiscard]] inline __attribute__((always_inline)) QString simplified() && 8657: { return simplified_helper(*this); } 8657: # 423 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: [[nodiscard]] QString toHtmlEscaped() const; 8657: 8657: QString &insert(int i, QChar c); 8657: QString &insert(int i, const QChar *uc, int len); 8657: inline QString &insert(int i, const QString &s) { return insert(i, s.constData(), s.length()); } 8657: inline QString &insert(int i, const QStringRef &s); 8657: QString &insert(int i, QLatin1String s); 8657: QString &append(QChar c); 8657: QString &append(const QChar *uc, int len); 8657: QString &append(const QString &s); 8657: QString &append(const QStringRef &s); 8657: QString &append(QLatin1String s); 8657: inline QString &prepend(QChar c) { return insert(0, c); } 8657: inline QString &prepend(const QChar *uc, int len) { return insert(0, uc, len); } 8657: inline QString &prepend(const QString &s) { return insert(0, s); } 8657: inline QString &prepend(const QStringRef &s) { return insert(0, s); } 8657: inline QString &prepend(QLatin1String s) { return insert(0, s); } 8657: 8657: inline QString &operator+=(QChar c) { 8657: if (d->ref.isShared() || uint(d->size) + 2u > d->alloc) 8657: reallocData(uint(d->size) + 2u, true); 8657: d->data()[d->size++] = c.unicode(); 8657: d->data()[d->size] = '\0'; 8657: return *this; 8657: } 8657: 8657: inline QString &operator+=(QChar::SpecialCharacter c) { return append(QChar(c)); } 8657: inline QString &operator+=(const QString &s) { return append(s); } 8657: inline QString &operator+=(const QStringRef &s) { return append(s); } 8657: inline QString &operator+=(QLatin1String s) { return append(s); } 8657: 8657: QString &remove(int i, int len); 8657: QString &remove(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: QString &remove(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: QString &replace(int i, int len, QChar after); 8657: QString &replace(int i, int len, const QChar *s, int slen); 8657: QString &replace(int i, int len, const QString &after); 8657: QString &replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: QString &replace(const QChar *before, int blen, const QChar *after, int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: QString &replace(QLatin1String before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: QString &replace(QLatin1String before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: QString &replace(const QString &before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: QString &replace(const QString &before, const QString &after, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: QString &replace(QChar c, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: QString &replace(QChar c, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: 8657: QString &replace(const QRegExp &rx, const QString &after); 8657: inline QString &remove(const QRegExp &rx) 8657: { return replace(rx, QString()); } 8657: 8657: 8657: QString &replace(const QRegularExpression &re, const QString &after); 8657: inline QString &remove(const QRegularExpression &re) 8657: { return replace(re, QString()); } 8657: 8657: 8657: enum SplitBehavior { KeepEmptyParts, SkipEmptyParts }; 8657: 8657: [[nodiscard]] QStringList split(const QString &sep, SplitBehavior behavior = KeepEmptyParts, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: [[nodiscard]] QVector splitRef(const QString &sep, SplitBehavior behavior = KeepEmptyParts, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: [[nodiscard]] QStringList split(QChar sep, SplitBehavior behavior = KeepEmptyParts, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: [[nodiscard]] QVector splitRef(QChar sep, SplitBehavior behavior = KeepEmptyParts, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: 8657: [[nodiscard]] QStringList split(const QRegExp &sep, SplitBehavior behavior = KeepEmptyParts) const; 8657: [[nodiscard]] QVector splitRef(const QRegExp &sep, SplitBehavior behavior = KeepEmptyParts) const; 8657: 8657: 8657: [[nodiscard]] QStringList split(const QRegularExpression &sep, SplitBehavior behavior = KeepEmptyParts) const; 8657: [[nodiscard]] QVector splitRef(const QRegularExpression &sep, SplitBehavior behavior = KeepEmptyParts) const; 8657: 8657: enum NormalizationForm { 8657: NormalizationForm_D, 8657: NormalizationForm_C, 8657: NormalizationForm_KD, 8657: NormalizationForm_KC 8657: }; 8657: [[nodiscard]] QString normalized(NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const; 8657: 8657: [[nodiscard]] QString repeated(int times) const; 8657: 8657: const ushort *utf16() const; 8657: 8657: 8657: [[nodiscard]] QByteArray toLatin1() const & 8657: { return toLatin1_helper(*this); } 8657: [[nodiscard]] QByteArray toLatin1() && 8657: { return toLatin1_helper_inplace(*this); } 8657: [[nodiscard]] QByteArray toUtf8() const & 8657: { return toUtf8_helper(*this); } 8657: [[nodiscard]] QByteArray toUtf8() && 8657: { return toUtf8_helper(*this); } 8657: [[nodiscard]] QByteArray toLocal8Bit() const & 8657: { return toLocal8Bit_helper(isNull() ? nullptr : constData(), size()); } 8657: [[nodiscard]] QByteArray toLocal8Bit() && 8657: { return toLocal8Bit_helper(isNull() ? nullptr : constData(), size()); } 8657: 8657: 8657: 8657: 8657: 8657: [[nodiscard]] QVector toUcs4() const; 8657: 8657: 8657: static inline QString fromLatin1(const char *str, int size = -1) 8657: { 8657: QStringDataPtr dataPtr = { fromLatin1_helper(str, (str && size == -1) ? int(strlen(str)) : size) }; 8657: return QString(dataPtr); 8657: } 8657: static inline QString fromUtf8(const char *str, int size = -1) 8657: { 8657: return fromUtf8_helper(str, (str && size == -1) ? int(strlen(str)) : size); 8657: } 8657: static inline QString fromLocal8Bit(const char *str, int size = -1) 8657: { 8657: return fromLocal8Bit_helper(str, (str && size == -1) ? int(strlen(str)) : size); 8657: } 8657: static inline QString fromLatin1(const QByteArray &str) 8657: { return str.isNull() ? QString() : fromLatin1(str.data(), qstrnlen(str.constData(), str.size())); } 8657: static inline QString fromUtf8(const QByteArray &str) 8657: { return str.isNull() ? QString() : fromUtf8(str.data(), qstrnlen(str.constData(), str.size())); } 8657: static inline QString fromLocal8Bit(const QByteArray &str) 8657: { return str.isNull() ? QString() : fromLocal8Bit(str.data(), qstrnlen(str.constData(), str.size())); } 8657: static QString fromUtf16(const ushort *, int size = -1); 8657: static QString fromUcs4(const uint *, int size = -1); 8657: static QString fromRawData(const QChar *, int size); 8657: 8657: 8657: static QString fromUtf16(const char16_t *str, int size = -1) 8657: { return fromUtf16(reinterpret_cast(str), size); } 8657: static QString fromUcs4(const char32_t *str, int size = -1) 8657: { return fromUcs4(reinterpret_cast(str), size); } 8657: # 570 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: inline int toWCharArray(wchar_t *array) const; 8657: [[nodiscard]] static inline QString fromWCharArray(const wchar_t *string, int size = -1); 8657: 8657: QString &setRawData(const QChar *unicode, int size); 8657: QString &setUnicode(const QChar *unicode, int size); 8657: inline QString &setUtf16(const ushort *utf16, int size); 8657: 8657: int compare(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8657: int compare(QLatin1String other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8657: 8657: static inline int compare(const QString &s1, const QString &s2, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept 8657: { return s1.compare(s2, cs); } 8657: 8657: static inline int compare(const QString &s1, QLatin1String s2, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept 8657: { return s1.compare(s2, cs); } 8657: static inline int compare(QLatin1String s1, const QString &s2, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept 8657: { return -s2.compare(s1, cs); } 8657: 8657: inline int compare(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8657: static int compare(const QString &s1, const QStringRef &s2, 8657: Qt::CaseSensitivity = Qt::CaseSensitive) noexcept; 8657: 8657: int localeAwareCompare(const QString& s) const; 8657: static int localeAwareCompare(const QString& s1, const QString& s2) 8657: { return s1.localeAwareCompare(s2); } 8657: 8657: int localeAwareCompare(const QStringRef &s) const; 8657: static int localeAwareCompare(const QString& s1, const QStringRef& s2); 8657: 8657: 8657: short toShort(bool *ok=nullptr, int base=10) const; 8657: ushort toUShort(bool *ok=nullptr, int base=10) const; 8657: int toInt(bool *ok=nullptr, int base=10) const; 8657: uint toUInt(bool *ok=nullptr, int base=10) const; 8657: long toLong(bool *ok=nullptr, int base=10) const; 8657: ulong toULong(bool *ok=nullptr, int base=10) const; 8657: qlonglong toLongLong(bool *ok=nullptr, int base=10) const; 8657: qulonglong toULongLong(bool *ok=nullptr, int base=10) const; 8657: float toFloat(bool *ok=nullptr) const; 8657: double toDouble(bool *ok=nullptr) const; 8657: 8657: QString &setNum(short, int base=10); 8657: QString &setNum(ushort, int base=10); 8657: QString &setNum(int, int base=10); 8657: QString &setNum(uint, int base=10); 8657: QString &setNum(long, int base=10); 8657: QString &setNum(ulong, int base=10); 8657: QString &setNum(qlonglong, int base=10); 8657: QString &setNum(qulonglong, int base=10); 8657: QString &setNum(float, char f='g', int prec=6); 8657: QString &setNum(double, char f='g', int prec=6); 8657: 8657: static QString number(int, int base=10); 8657: static QString number(uint, int base=10); 8657: static QString number(long, int base=10); 8657: static QString number(ulong, int base=10); 8657: static QString number(qlonglong, int base=10); 8657: static QString number(qulonglong, int base=10); 8657: static QString number(double, char f='g', int prec=6); 8657: 8657: friend __attribute__((visibility("default"))) bool operator==(const QString &s1, const QString &s2) noexcept; 8657: friend __attribute__((visibility("default"))) bool operator<(const QString &s1, const QString &s2) noexcept; 8657: friend inline bool operator>(const QString &s1, const QString &s2) noexcept { return s2 < s1; } 8657: friend inline bool operator!=(const QString &s1, const QString &s2) noexcept { return !(s1 == s2); } 8657: friend inline bool operator<=(const QString &s1, const QString &s2) noexcept { return !(s1 > s2); } 8657: friend inline bool operator>=(const QString &s1, const QString &s2) noexcept { return !(s1 < s2); } 8657: 8657: bool operator==(QLatin1String s) const noexcept; 8657: bool operator<(QLatin1String s) const noexcept; 8657: bool operator>(QLatin1String s) const noexcept; 8657: inline bool operator!=(QLatin1String s) const noexcept { return !operator==(s); } 8657: inline bool operator<=(QLatin1String s) const noexcept { return !operator>(s); } 8657: inline bool operator>=(QLatin1String s) const noexcept { return !operator<(s); } 8657: # 720 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: typedef QChar *iterator; 8657: typedef const QChar *const_iterator; 8657: typedef iterator Iterator; 8657: typedef const_iterator ConstIterator; 8657: typedef std::reverse_iterator reverse_iterator; 8657: typedef std::reverse_iterator const_reverse_iterator; 8657: inline iterator begin(); 8657: inline const_iterator begin() const; 8657: inline const_iterator cbegin() const; 8657: inline const_iterator constBegin() const; 8657: inline iterator end(); 8657: inline const_iterator end() const; 8657: inline const_iterator cend() const; 8657: inline const_iterator constEnd() const; 8657: reverse_iterator rbegin() { return reverse_iterator(end()); } 8657: reverse_iterator rend() { return reverse_iterator(begin()); } 8657: const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8657: const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8657: const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); } 8657: const_reverse_iterator crend() const { return const_reverse_iterator(begin()); } 8657: 8657: 8657: typedef int size_type; 8657: typedef qptrdiff difference_type; 8657: typedef const QChar & const_reference; 8657: typedef QChar & reference; 8657: typedef QChar *pointer; 8657: typedef const QChar *const_pointer; 8657: typedef QChar value_type; 8657: inline void push_back(QChar c) { append(c); } 8657: inline void push_back(const QString &s) { append(s); } 8657: inline void push_front(QChar c) { prepend(c); } 8657: inline void push_front(const QString &s) { prepend(s); } 8657: 8657: static inline QString fromStdString(const std::string &s); 8657: inline std::string toStdString() const; 8657: static inline QString fromStdWString(const std::wstring &s); 8657: inline std::wstring toStdWString() const; 8657: 8657: 8657: static inline QString fromStdU16String(const std::u16string &s); 8657: inline std::u16string toStdU16String() const; 8657: static inline QString fromStdU32String(const std::u32string &s); 8657: inline std::u32string toStdU32String() const; 8657: # 774 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: struct Null { }; 8657: 8657: static const Null null; 8657: inline QString(const Null &): d(Data::sharedNull()) {} 8657: inline QString &operator=(const Null &) { *this = QString(); return *this; } 8657: 8657: inline bool isNull() const { return d == Data::sharedNull(); } 8657: 8657: 8657: bool isSimpleText() const; 8657: bool isRightToLeft() const; 8657: 8657: QString(int size, Qt::Initialization); 8657: constexpr inline QString(QStringDataPtr dd) : d(dd.ptr) {} 8657: 8657: private: 8657: 8657: QString &operator+=(const char *s); 8657: QString &operator+=(const QByteArray &s); 8657: QString(const char *ch); 8657: QString(const QByteArray &a); 8657: QString &operator=(const char *ch); 8657: QString &operator=(const QByteArray &a); 8657: 8657: 8657: Data *d; 8657: 8657: friend inline bool operator==(QChar, const QString &) noexcept; 8657: friend inline bool operator< (QChar, const QString &) noexcept; 8657: friend inline bool operator> (QChar, const QString &) noexcept; 8657: friend inline bool operator==(QChar, const QStringRef &) noexcept; 8657: friend inline bool operator< (QChar, const QStringRef &) noexcept; 8657: friend inline bool operator> (QChar, const QStringRef &) noexcept; 8657: friend inline bool operator==(QChar, QLatin1String) noexcept; 8657: friend inline bool operator< (QChar, QLatin1String) noexcept; 8657: friend inline bool operator> (QChar, QLatin1String) noexcept; 8657: 8657: void reallocData(uint alloc, bool grow = false); 8657: 8657: void expand(int i); 8657: 8657: QString multiArg(int numArgs, const QString **args) const; 8657: static int compare_helper(const QChar *data1, int length1, 8657: const QChar *data2, int length2, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept; 8657: static int compare_helper(const QChar *data1, int length1, 8657: const char *data2, int length2, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: static int compare_helper(const QChar *data1, int length1, 8657: QLatin1String s2, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept; 8657: static int localeAwareCompare_helper(const QChar *data1, int length1, 8657: const QChar *data2, int length2); 8657: static QString toLower_helper(const QString &str); 8657: static QString toLower_helper(QString &str); 8657: static QString toUpper_helper(const QString &str); 8657: static QString toUpper_helper(QString &str); 8657: static QString toCaseFolded_helper(const QString &str); 8657: static QString toCaseFolded_helper(QString &str); 8657: static QString trimmed_helper(const QString &str); 8657: static QString trimmed_helper(QString &str); 8657: static QString simplified_helper(const QString &str); 8657: static QString simplified_helper(QString &str); 8657: static Data *fromLatin1_helper(const char *str, int size = -1); 8657: static Data *fromAscii_helper(const char *str, int size = -1); 8657: static QString fromUtf8_helper(const char *str, int size); 8657: static QString fromLocal8Bit_helper(const char *, int size); 8657: static QByteArray toLatin1_helper(const QString &); 8657: static QByteArray toLatin1_helper(const QChar *data, int size); 8657: static QByteArray toLatin1_helper_inplace(QString &); 8657: static QByteArray toUtf8_helper(const QString &); 8657: static QByteArray toLocal8Bit_helper(const QChar *data, int size); 8657: static int toUcs4_helper(const ushort *uc, int length, uint *out); 8657: static qlonglong toIntegral_helper(const QChar *data, int len, bool *ok, int base); 8657: static qulonglong toIntegral_helper(const QChar *data, uint len, bool *ok, int base); 8657: void replace_helper(uint *indices, int nIndices, int blen, const QChar *after, int alen); 8657: friend class QCharRef; 8657: friend class QTextCodec; 8657: friend class QStringRef; 8657: friend class QByteArray; 8657: friend class QCollator; 8657: friend struct QAbstractConcatenable; 8657: 8657: template static 8657: T toIntegral_helper(const QChar *data, int len, bool *ok, int base) 8657: { 8657: 8657: const bool isUnsigned = T(0) < T(-1); 8657: typedef typename QtPrivate::QConditional::Type Int64; 8657: typedef typename QtPrivate::QConditional::Type Int32; 8657: 8657: 8657: Int64 val = toIntegral_helper(data, Int32(len), ok, base); 8657: if (T(val) != val) { 8657: if (ok) 8657: *ok = false; 8657: val = 0; 8657: } 8657: return T(val); 8657: } 8657: 8657: public: 8657: typedef Data * DataPtr; 8657: inline DataPtr &data_ptr() { return d; } 8657: }; 8657: 8657: inline QString::QString(QLatin1String aLatin1) : d(fromLatin1_helper(aLatin1.latin1(), aLatin1.size())) 8657: { } 8657: inline int QString::length() const 8657: { return d->size; } 8657: inline const QChar QString::at(int i) const 8657: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8657: inline const QChar QString::operator[](int i) const 8657: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8657: inline const QChar QString::operator[](uint i) const 8657: { do { } while ((false) && (i < uint(size()))); return d->data()[i]; } 8657: inline bool QString::isEmpty() const 8657: { return d->size == 0; } 8657: inline const QChar *QString::unicode() const 8657: { return reinterpret_cast(d->data()); } 8657: inline const QChar *QString::data() const 8657: { return reinterpret_cast(d->data()); } 8657: inline QChar *QString::data() 8657: { detach(); return reinterpret_cast(d->data()); } 8657: inline const QChar *QString::constData() const 8657: { return reinterpret_cast(d->data()); } 8657: inline void QString::detach() 8657: { if (d->ref.isShared() || (d->offset != sizeof(QStringData))) reallocData(uint(d->size) + 1u); } 8657: inline bool QString::isDetached() const 8657: { return !d->ref.isShared(); } 8657: inline void QString::clear() 8657: { if (!isNull()) *this = QString(); } 8657: inline QString::QString(const QString &other) noexcept : d(other.d) 8657: { do { } while ((false) && (&other != this)); d->ref.ref(); } 8657: inline int QString::capacity() const 8657: { return d->alloc ? d->alloc - 1 : 0; } 8657: inline QString &QString::setNum(short n, int base) 8657: { return setNum(qlonglong(n), base); } 8657: inline QString &QString::setNum(ushort n, int base) 8657: { return setNum(qulonglong(n), base); } 8657: inline QString &QString::setNum(int n, int base) 8657: { return setNum(qlonglong(n), base); } 8657: inline QString &QString::setNum(uint n, int base) 8657: { return setNum(qulonglong(n), base); } 8657: inline QString &QString::setNum(long n, int base) 8657: { return setNum(qlonglong(n), base); } 8657: inline QString &QString::setNum(ulong n, int base) 8657: { return setNum(qulonglong(n), base); } 8657: inline QString &QString::setNum(float n, char f, int prec) 8657: { return setNum(double(n),f,prec); } 8657: inline QString QString::arg(int a, int fieldWidth, int base, QChar fillChar) const 8657: { return arg(qlonglong(a), fieldWidth, base, fillChar); } 8657: inline QString QString::arg(uint a, int fieldWidth, int base, QChar fillChar) const 8657: { return arg(qulonglong(a), fieldWidth, base, fillChar); } 8657: inline QString QString::arg(long a, int fieldWidth, int base, QChar fillChar) const 8657: { return arg(qlonglong(a), fieldWidth, base, fillChar); } 8657: inline QString QString::arg(ulong a, int fieldWidth, int base, QChar fillChar) const 8657: { return arg(qulonglong(a), fieldWidth, base, fillChar); } 8657: inline QString QString::arg(short a, int fieldWidth, int base, QChar fillChar) const 8657: { return arg(qlonglong(a), fieldWidth, base, fillChar); } 8657: inline QString QString::arg(ushort a, int fieldWidth, int base, QChar fillChar) const 8657: { return arg(qulonglong(a), fieldWidth, base, fillChar); } 8657: inline QString QString::arg(const QString &a1, const QString &a2) const 8657: { const QString *args[2] = { &a1, &a2 }; return multiArg(2, args); } 8657: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3) const 8657: { const QString *args[3] = { &a1, &a2, &a3 }; return multiArg(3, args); } 8657: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8657: const QString &a4) const 8657: { const QString *args[4] = { &a1, &a2, &a3, &a4 }; return multiArg(4, args); } 8657: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8657: const QString &a4, const QString &a5) const 8657: { const QString *args[5] = { &a1, &a2, &a3, &a4, &a5 }; return multiArg(5, args); } 8657: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8657: const QString &a4, const QString &a5, const QString &a6) const 8657: { const QString *args[6] = { &a1, &a2, &a3, &a4, &a5, &a6 }; return multiArg(6, args); } 8657: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8657: const QString &a4, const QString &a5, const QString &a6, 8657: const QString &a7) const 8657: { const QString *args[7] = { &a1, &a2, &a3, &a4, &a5, &a6, &a7 }; return multiArg(7, args); } 8657: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8657: const QString &a4, const QString &a5, const QString &a6, 8657: const QString &a7, const QString &a8) const 8657: { const QString *args[8] = { &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8 }; return multiArg(8, args); } 8657: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8657: const QString &a4, const QString &a5, const QString &a6, 8657: const QString &a7, const QString &a8, const QString &a9) const 8657: { const QString *args[9] = { &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, &a9 }; return multiArg(9, args); } 8657: 8657: inline QString QString::section(QChar asep, int astart, int aend, SectionFlags aflags) const 8657: { return section(QString(asep), astart, aend, aflags); } 8657: 8657: 8657: # 965 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: #pragma GCC diagnostic push 8657: # 965 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: 8657: 8657: 8657: 8657: inline int QString::toWCharArray(wchar_t *array) const 8657: { 8657: if (sizeof(wchar_t) == sizeof(QChar)) { 8657: memcpy(array, d->data(), sizeof(QChar) * size()); 8657: return size(); 8657: } else { 8657: return toUcs4_helper(d->data(), size(), reinterpret_cast(array)); 8657: } 8657: } 8657: 8657: 8657: # 979 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: #pragma GCC diagnostic pop 8657: # 979 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: 8657: 8657: inline QString QString::fromWCharArray(const wchar_t *string, int size) 8657: { 8657: return sizeof(wchar_t) == sizeof(QChar) ? fromUtf16(reinterpret_cast(string), size) 8657: : fromUcs4(reinterpret_cast(string), size); 8657: } 8657: 8657: 8657: class __attribute__((visibility("default"))) QCharRef { 8657: QString &s; 8657: int i; 8657: inline QCharRef(QString &str, int idx) 8657: : s(str),i(idx) {} 8657: friend class QString; 8657: public: 8657: 8657: 8657: 8657: 8657: inline operator QChar() const 8657: { return i < s.d->size ? s.d->data()[i] : 0; } 8657: inline QCharRef &operator=(QChar c) 8657: { if (i >= s.d->size) s.resize(i + 1, QLatin1Char(' ')); else s.detach(); 8657: s.d->data()[i] = c.unicode(); return *this; } 8657: # 1012 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: inline QCharRef &operator=(const QCharRef &c) { return operator=(QChar(c)); } 8657: inline QCharRef &operator=(ushort rc) { return operator=(QChar(rc)); } 8657: inline QCharRef &operator=(short rc) { return operator=(QChar(rc)); } 8657: inline QCharRef &operator=(uint rc) { return operator=(QChar(rc)); } 8657: inline QCharRef &operator=(int rc) { return operator=(QChar(rc)); } 8657: 8657: 8657: inline bool isNull() const { return QChar(*this).isNull(); } 8657: inline bool isPrint() const { return QChar(*this).isPrint(); } 8657: inline bool isPunct() const { return QChar(*this).isPunct(); } 8657: inline bool isSpace() const { return QChar(*this).isSpace(); } 8657: inline bool isMark() const { return QChar(*this).isMark(); } 8657: inline bool isLetter() const { return QChar(*this).isLetter(); } 8657: inline bool isNumber() const { return QChar(*this).isNumber(); } 8657: inline bool isLetterOrNumber() { return QChar(*this).isLetterOrNumber(); } 8657: inline bool isDigit() const { return QChar(*this).isDigit(); } 8657: inline bool isLower() const { return QChar(*this).isLower(); } 8657: inline bool isUpper() const { return QChar(*this).isUpper(); } 8657: inline bool isTitleCase() const { return QChar(*this).isTitleCase(); } 8657: 8657: inline int digitValue() const { return QChar(*this).digitValue(); } 8657: QChar toLower() const { return QChar(*this).toLower(); } 8657: QChar toUpper() const { return QChar(*this).toUpper(); } 8657: QChar toTitleCase () const { return QChar(*this).toTitleCase(); } 8657: 8657: QChar::Category category() const { return QChar(*this).category(); } 8657: QChar::Direction direction() const { return QChar(*this).direction(); } 8657: QChar::JoiningType joiningType() const { return QChar(*this).joiningType(); } 8657: 8657: QChar::Joining joining() const 8657: { 8657: switch (QChar(*this).joiningType()) { 8657: case QChar::Joining_Causing: return QChar::Center; 8657: case QChar::Joining_Dual: return QChar::Dual; 8657: case QChar::Joining_Right: return QChar::Right; 8657: case QChar::Joining_None: 8657: case QChar::Joining_Left: 8657: case QChar::Joining_Transparent: 8657: default: return QChar::OtherJoining; 8657: } 8657: } 8657: 8657: bool hasMirrored() const { return QChar(*this).hasMirrored(); } 8657: QChar mirroredChar() const { return QChar(*this).mirroredChar(); } 8657: QString decomposition() const { return QChar(*this).decomposition(); } 8657: QChar::Decomposition decompositionTag() const { return QChar(*this).decompositionTag(); } 8657: uchar combiningClass() const { return QChar(*this).combiningClass(); } 8657: 8657: inline QChar::Script script() const { return QChar(*this).script(); } 8657: 8657: QChar::UnicodeVersion unicodeVersion() const { return QChar(*this).unicodeVersion(); } 8657: 8657: inline uchar cell() const { return QChar(*this).cell(); } 8657: inline uchar row() const { return QChar(*this).row(); } 8657: inline void setCell(uchar cell); 8657: inline void setRow(uchar row); 8657: 8657: 8657: 8657: 8657: char toLatin1() const { return QChar(*this).toLatin1(); } 8657: ushort unicode() const { return QChar(*this).unicode(); } 8657: ushort& unicode() { return s.data()[i].unicode(); } 8657: 8657: }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QCharRef)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QCharRef >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QCharRef) }; static inline const char *name() { return "QCharRef"; } }; 8657: 8657: inline void QCharRef::setRow(uchar arow) { QChar(*this).setRow(arow); } 8657: inline void QCharRef::setCell(uchar acell) { QChar(*this).setCell(acell); } 8657: 8657: 8657: inline QString::QString() noexcept : d(Data::sharedNull()) {} 8657: inline QString::~QString() { if (!d->ref.deref()) Data::deallocate(d); } 8657: 8657: inline void QString::reserve(int asize) 8657: { 8657: if (d->ref.isShared() || uint(asize) >= d->alloc) 8657: reallocData(qMax(asize, d->size) + 1u); 8657: 8657: if (!d->capacityReserved) { 8657: 8657: d->capacityReserved = true; 8657: } 8657: } 8657: 8657: inline void QString::squeeze() 8657: { 8657: if (d->ref.isShared() || uint(d->size) + 1u < d->alloc) 8657: reallocData(uint(d->size) + 1u); 8657: 8657: if (d->capacityReserved) { 8657: 8657: 8657: d->capacityReserved = false; 8657: } 8657: } 8657: 8657: inline QString &QString::setUtf16(const ushort *autf16, int asize) 8657: { return setUnicode(reinterpret_cast(autf16), asize); } 8657: inline QCharRef QString::operator[](int i) 8657: { do { } while ((false) && (i >= 0)); return QCharRef(*this, i); } 8657: inline QCharRef QString::operator[](uint i) 8657: { return QCharRef(*this, i); } 8657: inline QString::iterator QString::begin() 8657: { detach(); return reinterpret_cast(d->data()); } 8657: inline QString::const_iterator QString::begin() const 8657: { return reinterpret_cast(d->data()); } 8657: inline QString::const_iterator QString::cbegin() const 8657: { return reinterpret_cast(d->data()); } 8657: inline QString::const_iterator QString::constBegin() const 8657: { return reinterpret_cast(d->data()); } 8657: inline QString::iterator QString::end() 8657: { detach(); return reinterpret_cast(d->data() + d->size); } 8657: inline QString::const_iterator QString::end() const 8657: { return reinterpret_cast(d->data() + d->size); } 8657: inline QString::const_iterator QString::cend() const 8657: { return reinterpret_cast(d->data() + d->size); } 8657: inline QString::const_iterator QString::constEnd() const 8657: { return reinterpret_cast(d->data() + d->size); } 8657: inline bool QString::contains(const QString &s, Qt::CaseSensitivity cs) const 8657: { return indexOf(s, 0, cs) != -1; } 8657: inline bool QString::contains(const QStringRef &s, Qt::CaseSensitivity cs) const 8657: { return indexOf(s, 0, cs) != -1; } 8657: inline bool QString::contains(QLatin1String s, Qt::CaseSensitivity cs) const 8657: { return indexOf(s, 0, cs) != -1; } 8657: inline bool QString::contains(QChar c, Qt::CaseSensitivity cs) const 8657: { return indexOf(c, 0, cs) != -1; } 8657: 8657: 8657: inline bool operator==(QString::Null, QString::Null) { return true; } 8657: 8657: inline bool operator==(QString::Null, const QString &s) { return s.isNull(); } 8657: 8657: inline bool operator==(const QString &s, QString::Null) { return s.isNull(); } 8657: inline bool operator!=(QString::Null, QString::Null) { return false; } 8657: 8657: inline bool operator!=(QString::Null, const QString &s) { return !s.isNull(); } 8657: 8657: inline bool operator!=(const QString &s, QString::Null) { return !s.isNull(); } 8657: 8657: 8657: inline bool operator==(QLatin1String s1, QLatin1String s2) noexcept 8657: { return s1.size() == s2.size() && (!s1.size() || !memcmp(s1.latin1(), s2.latin1(), s1.size())); } 8657: inline bool operator!=(QLatin1String s1, QLatin1String s2) noexcept 8657: { return !operator==(s1, s2); } 8657: inline bool operator<(QLatin1String s1, QLatin1String s2) noexcept 8657: { 8657: const int len = qMin(s1.size(), s2.size()); 8657: const int r = len ? memcmp(s1.latin1(), s2.latin1(), len) : 0; 8657: return r < 0 || (r == 0 && s1.size() < s2.size()); 8657: } 8657: inline bool operator>(QLatin1String s1, QLatin1String s2) noexcept 8657: { return operator<(s2, s1); } 8657: inline bool operator<=(QLatin1String s1, QLatin1String s2) noexcept 8657: { return !operator>(s1, s2); } 8657: inline bool operator>=(QLatin1String s1, QLatin1String s2) noexcept 8657: { return !operator<(s1, s2); } 8657: 8657: inline bool QLatin1String::operator==(const QString &s) const noexcept 8657: { return s == *this; } 8657: inline bool QLatin1String::operator!=(const QString &s) const noexcept 8657: { return s != *this; } 8657: inline bool QLatin1String::operator>(const QString &s) const noexcept 8657: { return s < *this; } 8657: inline bool QLatin1String::operator<(const QString &s) const noexcept 8657: { return s > *this; } 8657: inline bool QLatin1String::operator>=(const QString &s) const noexcept 8657: { return s <= *this; } 8657: inline bool QLatin1String::operator<=(const QString &s) const noexcept 8657: { return s >= *this; } 8657: # 1318 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: inline std::string QString::toStdString() const 8657: { return toUtf8().toStdString(); } 8657: 8657: inline QString QString::fromStdString(const std::string &s) 8657: { return fromUtf8(s.data(), int(s.size())); } 8657: 8657: inline std::wstring QString::toStdWString() const 8657: { 8657: std::wstring str; 8657: str.resize(length()); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: str.resize(toWCharArray(&(*str.begin()))); 8657: return str; 8657: } 8657: 8657: inline QString QString::fromStdWString(const std::wstring &s) 8657: { return fromWCharArray(s.data(), int(s.size())); } 8657: 8657: 8657: inline QString QString::fromStdU16String(const std::u16string &s) 8657: { return fromUtf16(s.data(), int(s.size())); } 8657: 8657: inline std::u16string QString::toStdU16String() const 8657: { return std::u16string(reinterpret_cast(utf16()), length()); } 8657: 8657: inline QString QString::fromStdU32String(const std::u32string &s) 8657: { return fromUcs4(s.data(), int(s.size())); } 8657: 8657: inline std::u32string QString::toStdU32String() const 8657: { 8657: std::u32string u32str(length(), char32_t(0)); 8657: int len = toUcs4_helper(d->data(), length(), reinterpret_cast(&u32str[0])); 8657: u32str.resize(len); 8657: return u32str; 8657: } 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QString &); 8657: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QString &); 8657: 8657: 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QString)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QString >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QString) }; static inline const char *name() { return "QString"; } }; inline void swap(QString &value1, QString &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8657: constexpr inline QFlags operator|(QString::SectionFlags::enum_type f1, QString::SectionFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QString::SectionFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QString::SectionFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: 8657: 8657: class __attribute__((visibility("default"))) QStringRef { 8657: const QString *m_string; 8657: int m_position; 8657: int m_size; 8657: public: 8657: typedef QString::size_type size_type; 8657: typedef QString::value_type value_type; 8657: typedef const QChar *const_iterator; 8657: typedef std::reverse_iterator const_reverse_iterator; 8657: typedef QString::const_pointer const_pointer; 8657: typedef QString::const_reference const_reference; 8657: 8657: 8657: inline QStringRef() : m_string(nullptr), m_position(0), m_size(0) {} 8657: inline QStringRef(const QString *string, int position, int size); 8657: inline QStringRef(const QString *string); 8657: 8657: 8657: 8657: QStringRef(const QStringRef &other) noexcept 8657: :m_string(other.m_string), m_position(other.m_position), m_size(other.m_size) 8657: {} 8657: 8657: QStringRef(QStringRef &&other) noexcept : m_string(other.m_string), m_position(other.m_position), m_size(other.m_size) {} 8657: QStringRef &operator=(QStringRef &&other) noexcept { return *this = other; } 8657: 8657: QStringRef &operator=(const QStringRef &other) noexcept 8657: { 8657: m_string = other.m_string; m_position = other.m_position; 8657: m_size = other.m_size; return *this; 8657: } 8657: inline ~QStringRef(){} 8657: 8657: 8657: inline const QString *string() const { return m_string; } 8657: inline int position() const { return m_position; } 8657: inline int size() const { return m_size; } 8657: inline int count() const { return m_size; } 8657: inline int length() const { return m_size; } 8657: 8657: int indexOf(const QString &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int indexOf(QChar ch, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int indexOf(QLatin1String str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int indexOf(const QStringRef &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int lastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int lastIndexOf(QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int lastIndexOf(QLatin1String str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int lastIndexOf(const QStringRef &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: 8657: inline bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: inline bool contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: inline bool contains(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: inline bool contains(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: 8657: int count(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int count(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: int count(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: 8657: [[nodiscard]] QVector split(const QString &sep, QString::SplitBehavior behavior = QString::KeepEmptyParts, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: [[nodiscard]] QVector split(QChar sep, QString::SplitBehavior behavior = QString::KeepEmptyParts, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: 8657: [[nodiscard]] QStringRef left(int n) const; 8657: [[nodiscard]] QStringRef right(int n) const; 8657: [[nodiscard]] QStringRef mid(int pos, int n = -1) const; 8657: 8657: void truncate(int pos) noexcept { m_size = qBound(0, pos, m_size); } 8657: void chop(int n) noexcept 8657: { 8657: if (n >= m_size) 8657: m_size = 0; 8657: else if (n > 0) 8657: m_size -= n; 8657: } 8657: 8657: bool isRightToLeft() const; 8657: 8657: bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: bool startsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: bool startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: bool startsWith(const QStringRef &c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: 8657: bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: bool endsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: bool endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: bool endsWith(const QStringRef &c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: 8657: inline QStringRef &operator=(const QString *string); 8657: 8657: inline const QChar *unicode() const 8657: { 8657: if (!m_string) 8657: return reinterpret_cast(QString::Data::sharedNull()->data()); 8657: return m_string->unicode() + m_position; 8657: } 8657: inline const QChar *data() const { return unicode(); } 8657: inline const QChar *constData() const { return unicode(); } 8657: 8657: inline const_iterator begin() const { return unicode(); } 8657: inline const_iterator cbegin() const { return unicode(); } 8657: inline const_iterator constBegin() const { return unicode(); } 8657: inline const_iterator end() const { return unicode() + size(); } 8657: inline const_iterator cend() const { return unicode() + size(); } 8657: inline const_iterator constEnd() const { return unicode() + size(); } 8657: inline const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8657: inline const_reverse_iterator crbegin() const { return rbegin(); } 8657: inline const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8657: inline const_reverse_iterator crend() const { return rend(); } 8657: 8657: 8657: 8657: 8657: 8657: [[nodiscard]] QByteArray toLatin1() const; 8657: [[nodiscard]] QByteArray toUtf8() const; 8657: [[nodiscard]] QByteArray toLocal8Bit() const; 8657: [[nodiscard]] QVector toUcs4() const; 8657: 8657: inline void clear() { m_string = nullptr; m_position = m_size = 0; } 8657: QString toString() const; 8657: inline bool isEmpty() const { return m_size == 0; } 8657: inline bool isNull() const { return m_string == nullptr || m_string->isNull(); } 8657: 8657: QStringRef appendTo(QString *string) const; 8657: 8657: inline const QChar at(int i) const 8657: { do { } while ((false) && (uint(i) < uint(size()))); return m_string->at(i + m_position); } 8657: QChar operator[](int i) const { return at(i); } 8657: # 1510 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: int compare(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8657: int compare(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8657: int compare(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8657: 8657: 8657: 8657: 8657: static int compare(const QStringRef &s1, const QString &s2, 8657: Qt::CaseSensitivity = Qt::CaseSensitive) noexcept; 8657: static int compare(const QStringRef &s1, const QStringRef &s2, 8657: Qt::CaseSensitivity = Qt::CaseSensitive) noexcept; 8657: static int compare(const QStringRef &s1, QLatin1String s2, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept; 8657: 8657: int localeAwareCompare(const QString &s) const; 8657: int localeAwareCompare(const QStringRef &s) const; 8657: static int localeAwareCompare(const QStringRef &s1, const QString &s2); 8657: static int localeAwareCompare(const QStringRef &s1, const QStringRef &s2); 8657: 8657: [[nodiscard]] QStringRef trimmed() const; 8657: short toShort(bool *ok = nullptr, int base = 10) const; 8657: ushort toUShort(bool *ok = nullptr, int base = 10) const; 8657: int toInt(bool *ok = nullptr, int base = 10) const; 8657: uint toUInt(bool *ok = nullptr, int base = 10) const; 8657: long toLong(bool *ok = nullptr, int base = 10) const; 8657: ulong toULong(bool *ok = nullptr, int base = 10) const; 8657: qlonglong toLongLong(bool *ok = nullptr, int base = 10) const; 8657: qulonglong toULongLong(bool *ok = nullptr, int base = 10) const; 8657: float toFloat(bool *ok = nullptr) const; 8657: double toDouble(bool *ok = nullptr) const; 8657: }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QStringRef)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QStringRef >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QStringRef) }; static inline const char *name() { return "QStringRef"; } }; 8657: 8657: inline QStringRef &QStringRef::operator=(const QString *aString) 8657: { m_string = aString; m_position = 0; m_size = aString?aString->size():0; return *this; } 8657: 8657: inline QStringRef::QStringRef(const QString *aString, int aPosition, int aSize) 8657: :m_string(aString), m_position(aPosition), m_size(aSize){} 8657: 8657: inline QStringRef::QStringRef(const QString *aString) 8657: :m_string(aString), m_position(0), m_size(aString?aString->size() : 0){} 8657: 8657: 8657: __attribute__((visibility("default"))) bool operator==(const QStringRef &s1, const QStringRef &s2) noexcept; 8657: inline bool operator!=(const QStringRef &s1, const QStringRef &s2) noexcept 8657: { return !(s1 == s2); } 8657: __attribute__((visibility("default"))) bool operator<(const QStringRef &s1, const QStringRef &s2) noexcept; 8657: inline bool operator>(const QStringRef &s1, const QStringRef &s2) noexcept 8657: { return s2 < s1; } 8657: inline bool operator<=(const QStringRef &s1, const QStringRef &s2) noexcept 8657: { return !(s1 > s2); } 8657: inline bool operator>=(const QStringRef &s1, const QStringRef &s2) noexcept 8657: { return !(s1 < s2); } 8657: 8657: 8657: __attribute__((visibility("default"))) bool operator==(const QString &lhs, const QStringRef &rhs) noexcept; 8657: inline bool operator!=(const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) != 0; } 8657: inline bool operator< (const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) < 0; } 8657: inline bool operator> (const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) > 0; } 8657: inline bool operator<=(const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) <= 0; } 8657: inline bool operator>=(const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) >= 0; } 8657: 8657: inline bool operator==(const QStringRef &lhs, const QString &rhs) noexcept { return rhs == lhs; } 8657: inline bool operator!=(const QStringRef &lhs, const QString &rhs) noexcept { return rhs != lhs; } 8657: inline bool operator< (const QStringRef &lhs, const QString &rhs) noexcept { return rhs > lhs; } 8657: inline bool operator> (const QStringRef &lhs, const QString &rhs) noexcept { return rhs < lhs; } 8657: inline bool operator<=(const QStringRef &lhs, const QString &rhs) noexcept { return rhs >= lhs; } 8657: inline bool operator>=(const QStringRef &lhs, const QString &rhs) noexcept { return rhs <= lhs; } 8657: 8657: inline int QString::compare(const QStringRef &s, Qt::CaseSensitivity cs) const noexcept 8657: { return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); } 8657: inline int QString::compare(const QString &s1, const QStringRef &s2, Qt::CaseSensitivity cs) noexcept 8657: { return QString::compare_helper(s1.constData(), s1.length(), s2.constData(), s2.length(), cs); } 8657: inline int QStringRef::compare(const QString &s, Qt::CaseSensitivity cs) const noexcept 8657: { return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); } 8657: inline int QStringRef::compare(const QStringRef &s, Qt::CaseSensitivity cs) const noexcept 8657: { return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); } 8657: inline int QStringRef::compare(QLatin1String s, Qt::CaseSensitivity cs) const noexcept 8657: { return QString::compare_helper(constData(), length(), s, cs); } 8657: inline int QStringRef::compare(const QStringRef &s1, const QString &s2, Qt::CaseSensitivity cs) noexcept 8657: { return QString::compare_helper(s1.constData(), s1.length(), s2.constData(), s2.length(), cs); } 8657: inline int QStringRef::compare(const QStringRef &s1, const QStringRef &s2, Qt::CaseSensitivity cs) noexcept 8657: { return QString::compare_helper(s1.constData(), s1.length(), s2.constData(), s2.length(), cs); } 8657: inline int QStringRef::compare(const QStringRef &s1, QLatin1String s2, Qt::CaseSensitivity cs) noexcept 8657: { return QString::compare_helper(s1.constData(), s1.length(), s2, cs); } 8657: 8657: 8657: __attribute__((visibility("default"))) bool operator==(QLatin1String lhs, const QStringRef &rhs) noexcept; 8657: inline bool operator!=(QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) != 0; } 8657: inline bool operator< (QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) > 0; } 8657: inline bool operator> (QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) < 0; } 8657: inline bool operator<=(QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) >= 0; } 8657: inline bool operator>=(QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) <= 0; } 8657: 8657: inline bool operator==(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs == lhs; } 8657: inline bool operator!=(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs != lhs; } 8657: inline bool operator< (const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs > lhs; } 8657: inline bool operator> (const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs < lhs; } 8657: inline bool operator<=(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs >= lhs; } 8657: inline bool operator>=(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs <= lhs; } 8657: 8657: 8657: inline bool operator==(QChar lhs, const QString &rhs) noexcept 8657: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) == 0; } 8657: inline bool operator< (QChar lhs, const QString &rhs) noexcept 8657: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) < 0; } 8657: inline bool operator> (QChar lhs, const QString &rhs) noexcept 8657: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) > 0; } 8657: 8657: inline bool operator!=(QChar lhs, const QString &rhs) noexcept { return !(lhs == rhs); } 8657: inline bool operator<=(QChar lhs, const QString &rhs) noexcept { return !(lhs > rhs); } 8657: inline bool operator>=(QChar lhs, const QString &rhs) noexcept { return !(lhs < rhs); } 8657: 8657: inline bool operator==(const QString &lhs, QChar rhs) noexcept { return rhs == lhs; } 8657: inline bool operator!=(const QString &lhs, QChar rhs) noexcept { return !(rhs == lhs); } 8657: inline bool operator< (const QString &lhs, QChar rhs) noexcept { return rhs > lhs; } 8657: inline bool operator> (const QString &lhs, QChar rhs) noexcept { return rhs < lhs; } 8657: inline bool operator<=(const QString &lhs, QChar rhs) noexcept { return !(rhs < lhs); } 8657: inline bool operator>=(const QString &lhs, QChar rhs) noexcept { return !(rhs > lhs); } 8657: 8657: 8657: inline bool operator==(QChar lhs, const QStringRef &rhs) noexcept 8657: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) == 0; } 8657: inline bool operator< (QChar lhs, const QStringRef &rhs) noexcept 8657: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) < 0; } 8657: inline bool operator> (QChar lhs, const QStringRef &rhs) noexcept 8657: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) > 0; } 8657: 8657: inline bool operator!=(QChar lhs, const QStringRef &rhs) noexcept { return !(lhs == rhs); } 8657: inline bool operator<=(QChar lhs, const QStringRef &rhs) noexcept { return !(lhs > rhs); } 8657: inline bool operator>=(QChar lhs, const QStringRef &rhs) noexcept { return !(lhs < rhs); } 8657: 8657: inline bool operator==(const QStringRef &lhs, QChar rhs) noexcept { return rhs == lhs; } 8657: inline bool operator!=(const QStringRef &lhs, QChar rhs) noexcept { return !(rhs == lhs); } 8657: inline bool operator< (const QStringRef &lhs, QChar rhs) noexcept { return rhs > lhs; } 8657: inline bool operator> (const QStringRef &lhs, QChar rhs) noexcept { return rhs < lhs; } 8657: inline bool operator<=(const QStringRef &lhs, QChar rhs) noexcept { return !(rhs < lhs); } 8657: inline bool operator>=(const QStringRef &lhs, QChar rhs) noexcept { return !(rhs > lhs); } 8657: 8657: 8657: inline bool operator==(QChar lhs, QLatin1String rhs) noexcept 8657: { return QString::compare_helper(&lhs, 1, rhs) == 0; } 8657: inline bool operator< (QChar lhs, QLatin1String rhs) noexcept 8657: { return QString::compare_helper(&lhs, 1, rhs) < 0; } 8657: inline bool operator> (QChar lhs, QLatin1String rhs) noexcept 8657: { return QString::compare_helper(&lhs, 1, rhs) > 0; } 8657: 8657: inline bool operator!=(QChar lhs, QLatin1String rhs) noexcept { return !(lhs == rhs); } 8657: inline bool operator<=(QChar lhs, QLatin1String rhs) noexcept { return !(lhs > rhs); } 8657: inline bool operator>=(QChar lhs, QLatin1String rhs) noexcept { return !(lhs < rhs); } 8657: 8657: inline bool operator==(QLatin1String lhs, QChar rhs) noexcept { return rhs == lhs; } 8657: inline bool operator!=(QLatin1String lhs, QChar rhs) noexcept { return !(rhs == lhs); } 8657: inline bool operator< (QLatin1String lhs, QChar rhs) noexcept { return rhs > lhs; } 8657: inline bool operator> (QLatin1String lhs, QChar rhs) noexcept { return rhs < lhs; } 8657: inline bool operator<=(QLatin1String lhs, QChar rhs) noexcept { return !(rhs < lhs); } 8657: inline bool operator>=(QLatin1String lhs, QChar rhs) noexcept { return !(rhs > lhs); } 8657: # 1712 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: inline int QString::localeAwareCompare(const QStringRef &s) const 8657: { return localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } 8657: inline int QString::localeAwareCompare(const QString& s1, const QStringRef& s2) 8657: { return localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } 8657: inline int QStringRef::localeAwareCompare(const QString &s) const 8657: { return QString::localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } 8657: inline int QStringRef::localeAwareCompare(const QStringRef &s) const 8657: { return QString::localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } 8657: inline int QStringRef::localeAwareCompare(const QStringRef &s1, const QString &s2) 8657: { return QString::localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } 8657: inline int QStringRef::localeAwareCompare(const QStringRef &s1, const QStringRef &s2) 8657: { return QString::localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } 8657: 8657: inline bool QStringRef::contains(const QString &s, Qt::CaseSensitivity cs) const 8657: { return indexOf(s, 0, cs) != -1; } 8657: inline bool QStringRef::contains(QLatin1String s, Qt::CaseSensitivity cs) const 8657: { return indexOf(s, 0, cs) != -1; } 8657: inline bool QStringRef::contains(QChar c, Qt::CaseSensitivity cs) const 8657: { return indexOf(c, 0, cs) != -1; } 8657: inline bool QStringRef::contains(const QStringRef &s, Qt::CaseSensitivity cs) const 8657: { return indexOf(s, 0, cs) != -1; } 8657: 8657: inline QString &QString::insert(int i, const QStringRef &s) 8657: { return insert(i, s.constData(), s.length()); } 8657: # 1754 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8657: namespace Qt { 8657: 8657: 8657: 8657: 8657: 8657: } 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringbuilder.h" 1 3 4 8657: # 55 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringbuilder.h" 3 4 8657: 8657: 8657: 8657: struct __attribute__((visibility("default"))) QAbstractConcatenable 8657: { 8657: protected: 8657: static void convertFromAscii(const char *a, int len, QChar *&out) noexcept; 8657: static inline void convertFromAscii(char a, QChar *&out) noexcept 8657: { 8657: *out++ = QLatin1Char(a); 8657: } 8657: static void appendLatin1To(const char *a, int len, QChar *out) noexcept; 8657: }; 8657: 8657: template struct QConcatenable {}; 8657: 8657: namespace QtStringBuilder { 8657: template struct ConvertToTypeHelper 8657: { typedef A ConvertTo; }; 8657: template struct ConvertToTypeHelper 8657: { typedef QString ConvertTo; }; 8657: } 8657: 8657: template 8657: struct QStringBuilderCommon 8657: { 8657: T toUpper() const { return resolved().toUpper(); } 8657: T toLower() const { return resolved().toLower(); } 8657: 8657: protected: 8657: T resolved() const { return *static_cast(this); } 8657: }; 8657: 8657: template 8657: struct QStringBuilderBase : public QStringBuilderCommon 8657: { 8657: }; 8657: 8657: template 8657: struct QStringBuilderBase : public QStringBuilderCommon 8657: { 8657: QByteArray toLatin1() const { return this->resolved().toLatin1(); } 8657: QByteArray toUtf8() const { return this->resolved().toUtf8(); } 8657: QByteArray toLocal8Bit() const { return this->resolved().toLocal8Bit(); } 8657: }; 8657: 8657: template 8657: class QStringBuilder : public QStringBuilderBase, typename QtStringBuilder::ConvertToTypeHelper::ConvertTo, typename QConcatenable::ConvertTo>::ConvertTo> 8657: { 8657: public: 8657: QStringBuilder(const A &a_, const B &b_) : a(a_), b(b_) {} 8657: private: 8657: friend class QByteArray; 8657: friend class QString; 8657: template T convertTo() const 8657: { 8657: const uint len = QConcatenable< QStringBuilder >::size(*this); 8657: T s(len, Qt::Uninitialized); 8657: 8657: 8657: 8657: typename T::iterator d = const_cast(s.constData()); 8657: typename T::const_iterator const start = d; 8657: QConcatenable< QStringBuilder >::appendTo(*this, d); 8657: 8657: if (!QConcatenable< QStringBuilder >::ExactSize && int(len) != d - start) { 8657: 8657: 8657: s.resize(d - start); 8657: } 8657: return s; 8657: } 8657: 8657: typedef QConcatenable > Concatenable; 8657: typedef typename Concatenable::ConvertTo ConvertTo; 8657: public: 8657: operator ConvertTo() const { return convertTo(); } 8657: 8657: int size() const { return Concatenable::size(*this); } 8657: 8657: const A &a; 8657: const B &b; 8657: }; 8657: 8657: template <> 8657: class QStringBuilder : public QStringBuilderBase, QString> 8657: { 8657: public: 8657: QStringBuilder(const QString &a_, const QString &b_) : a(a_), b(b_) {} 8657: QStringBuilder(const QStringBuilder &other) : a(other.a), b(other.b) {} 8657: 8657: operator QString() const 8657: { QString r(a); r += b; return r; } 8657: 8657: const QString &a; 8657: const QString &b; 8657: 8657: private: 8657: QStringBuilder &operator=(const QStringBuilder &) = delete; 8657: }; 8657: 8657: template <> 8657: class QStringBuilder : public QStringBuilderBase, QByteArray> 8657: { 8657: public: 8657: QStringBuilder(const QByteArray &a_, const QByteArray &b_) : a(a_), b(b_) {} 8657: QStringBuilder(const QStringBuilder &other) : a(other.a), b(other.b) {} 8657: 8657: operator QByteArray() const 8657: { QByteArray r(a); r += b; return r; } 8657: 8657: const QByteArray &a; 8657: const QByteArray &b; 8657: 8657: private: 8657: QStringBuilder &operator=(const QStringBuilder &) = delete; 8657: }; 8657: 8657: 8657: template <> struct QConcatenable : private QAbstractConcatenable 8657: { 8657: typedef char type; 8657: typedef QByteArray ConvertTo; 8657: enum { ExactSize = true }; 8657: static int size(const char) { return 1; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: static inline void appendTo(const char c, char *&out) 8657: { *out++ = c; } 8657: }; 8657: 8657: template <> struct QConcatenable 8657: { 8657: typedef QLatin1Char type; 8657: typedef QString ConvertTo; 8657: enum { ExactSize = true }; 8657: static int size(const QLatin1Char) { return 1; } 8657: static inline void appendTo(const QLatin1Char c, QChar *&out) 8657: { *out++ = c; } 8657: static inline void appendTo(const QLatin1Char c, char *&out) 8657: { *out++ = c.toLatin1(); } 8657: }; 8657: 8657: template <> struct QConcatenable : private QAbstractConcatenable 8657: { 8657: typedef QChar type; 8657: typedef QString ConvertTo; 8657: enum { ExactSize = true }; 8657: static int size(const QChar) { return 1; } 8657: static inline void appendTo(const QChar c, QChar *&out) 8657: { *out++ = c; } 8657: }; 8657: 8657: template <> struct QConcatenable : private QAbstractConcatenable 8657: { 8657: typedef QChar::SpecialCharacter type; 8657: typedef QString ConvertTo; 8657: enum { ExactSize = true }; 8657: static int size(const QChar::SpecialCharacter) { return 1; } 8657: static inline void appendTo(const QChar::SpecialCharacter c, QChar *&out) 8657: { *out++ = c; } 8657: }; 8657: 8657: template <> struct QConcatenable : private QAbstractConcatenable 8657: { 8657: typedef QCharRef type; 8657: typedef QString ConvertTo; 8657: enum { ExactSize = true }; 8657: static int size(QCharRef) { return 1; } 8657: static inline void appendTo(QCharRef c, QChar *&out) 8657: { *out++ = QChar(c); } 8657: }; 8657: 8657: template <> struct QConcatenable : private QAbstractConcatenable 8657: { 8657: typedef QLatin1String type; 8657: typedef QString ConvertTo; 8657: enum { ExactSize = true }; 8657: static int size(const QLatin1String a) { return a.size(); } 8657: static inline void appendTo(const QLatin1String a, QChar *&out) 8657: { 8657: appendLatin1To(a.latin1(), a.size(), out); 8657: out += a.size(); 8657: } 8657: static inline void appendTo(const QLatin1String a, char *&out) 8657: { 8657: if (const char *data = a.data()) { 8657: memcpy(out, data, a.size()); 8657: out += a.size(); 8657: } 8657: } 8657: }; 8657: 8657: template <> struct QConcatenable : private QAbstractConcatenable 8657: { 8657: typedef QString type; 8657: typedef QString ConvertTo; 8657: enum { ExactSize = true }; 8657: static int size(const QString &a) { return a.size(); } 8657: static inline void appendTo(const QString &a, QChar *&out) 8657: { 8657: const int n = a.size(); 8657: memcpy(out, reinterpret_cast(a.constData()), sizeof(QChar) * n); 8657: out += n; 8657: } 8657: }; 8657: 8657: template <> struct QConcatenable : private QAbstractConcatenable 8657: { 8657: typedef QStringRef type; 8657: typedef QString ConvertTo; 8657: enum { ExactSize = true }; 8657: static int size(const QStringRef &a) { return a.size(); } 8657: static inline void appendTo(const QStringRef &a, QChar *&out) 8657: { 8657: const int n = a.size(); 8657: memcpy(out, reinterpret_cast(a.constData()), sizeof(QChar) * n); 8657: out += n; 8657: } 8657: }; 8657: 8657: template struct QConcatenable : private QAbstractConcatenable 8657: { 8657: typedef const char type[N]; 8657: typedef QByteArray ConvertTo; 8657: enum { ExactSize = false }; 8657: static int size(const char[N]) { return N - 1; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: static inline void appendTo(const char a[N], char *&out) 8657: { 8657: while (*a) 8657: *out++ = *a++; 8657: } 8657: }; 8657: 8657: template struct QConcatenable : QConcatenable 8657: { 8657: typedef char type[N]; 8657: }; 8657: 8657: template <> struct QConcatenable : private QAbstractConcatenable 8657: { 8657: typedef char const *type; 8657: typedef QByteArray ConvertTo; 8657: enum { ExactSize = false }; 8657: static int size(const char *a) { return qstrlen(a); } 8657: 8657: 8657: 8657: 8657: static inline void appendTo(const char *a, char *&out) 8657: { 8657: if (!a) 8657: return; 8657: while (*a) 8657: *out++ = *a++; 8657: } 8657: }; 8657: 8657: template <> struct QConcatenable : private QAbstractConcatenable 8657: { 8657: typedef QByteArray type; 8657: typedef QByteArray ConvertTo; 8657: enum { ExactSize = false }; 8657: static int size(const QByteArray &ba) { return ba.size(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: static inline void appendTo(const QByteArray &ba, char *&out) 8657: { 8657: const char *a = ba.constData(); 8657: const char * const end = ba.end(); 8657: while (a != end) 8657: *out++ = *a++; 8657: } 8657: }; 8657: 8657: 8657: template 8657: struct QConcatenable< QStringBuilder > 8657: { 8657: typedef QStringBuilder type; 8657: typedef typename QtStringBuilder::ConvertToTypeHelper::ConvertTo, typename QConcatenable::ConvertTo>::ConvertTo ConvertTo; 8657: enum { ExactSize = QConcatenable::ExactSize && QConcatenable::ExactSize }; 8657: static int size(const type &p) 8657: { 8657: return QConcatenable::size(p.a) + QConcatenable::size(p.b); 8657: } 8657: template static inline void appendTo(const type &p, T *&out) 8657: { 8657: QConcatenable::appendTo(p.a, out); 8657: QConcatenable::appendTo(p.b, out); 8657: } 8657: }; 8657: 8657: template 8657: QStringBuilder::type, typename QConcatenable::type> 8657: operator%(const A &a, const B &b) 8657: { 8657: return QStringBuilder::type, typename QConcatenable::type>(a, b); 8657: } 8657: 8657: 8657: 8657: 8657: template 8657: QStringBuilder::type, typename QConcatenable::type> 8657: operator+(const A &a, const B &b) 8657: { 8657: return QStringBuilder::type, typename QConcatenable::type>(a, b); 8657: } 8657: 8657: 8657: namespace QtStringBuilder { 8657: template 8657: QByteArray &appendToByteArray(QByteArray &a, const QStringBuilder &b, char) 8657: { 8657: 8657: int len = a.size() + QConcatenable< QStringBuilder >::size(b); 8657: a.reserve(len); 8657: char *it = a.data() + a.size(); 8657: QConcatenable< QStringBuilder >::appendTo(b, it); 8657: a.resize(len); 8657: return a; 8657: } 8657: # 400 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringbuilder.h" 3 4 8657: } 8657: 8657: template 8657: QByteArray &operator+=(QByteArray &a, const QStringBuilder &b) 8657: { 8657: return QtStringBuilder::appendToByteArray(a, b, 8657: typename QConcatenable< QStringBuilder >::ConvertTo::value_type()); 8657: } 8657: 8657: template 8657: QString &operator+=(QString &a, const QStringBuilder &b) 8657: { 8657: int len = a.size() + QConcatenable< QStringBuilder >::size(b); 8657: a.reserve(len); 8657: QChar *it = a.data() + a.size(); 8657: QConcatenable< QStringBuilder >::appendTo(b, it); 8657: a.resize(int(it - a.constData())); 8657: return a; 8657: } 8657: 8657: 8657: 8657: # 1766 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QString" 2 3 4 8657: # 27 "/<>/templates/lib/exception.h" 2 8657: 8657: 8657: 8657: 8657: # 30 "/<>/templates/lib/exception.h" 8657: namespace Grantlee 8657: { 8657: 8657: 8657: 8657: 8657: enum Error { 8657: NoError, 8657: EmptyVariableError, 8657: EmptyBlockTagError, 8657: InvalidBlockTagError, 8657: UnclosedBlockTagError, 8657: UnknownFilterError, 8657: TagSyntaxError, 8657: 8657: 8657: VariableNotInContext, 8657: ObjectReturnTypeInvalid, 8657: CompileFunctionError 8657: }; 8657: # 82 "/<>/templates/lib/exception.h" 8657: class __attribute__((visibility("default"))) Exception 8657: { 8657: public: 8657: 8657: 8657: 8657: 8657: Exception(Error errorCode, const QString &what) 8657: : m_errorCode(errorCode), m_what(what) 8657: { 8657: } 8657: 8657: virtual ~Exception() throw() {} 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: const QString what() const throw() { return m_what; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: Error errorCode() const { return m_errorCode; } 8657: 8657: 8657: private: 8657: Error m_errorCode; 8657: QString m_what; 8657: }; 8657: } 8657: # 25 "/<>/templates/lib/template.h" 2 8657: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8657: # 26 "/<>/templates/lib/template.h" 2 8657: # 1 "/<>/templates/lib/node.h" 1 8657: # 26 "/<>/templates/lib/node.h" 8657: # 1 "/<>/templates/lib/context.h" 1 8657: # 24 "/<>/templates/lib/context.h" 8657: # 1 "/<>/templates/lib/abstractlocalizer.h" 1 8657: # 24 "/<>/templates/lib/abstractlocalizer.h" 8657: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8657: # 25 "/<>/templates/lib/abstractlocalizer.h" 2 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QLocale" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 1 3 4 8657: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 1 3 4 8657: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 1 3 4 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 2 3 4 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 1 3 4 8657: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 1 3 4 8657: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8657: 8657: 8657: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8657: #pragma GCC diagnostic push 8657: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8657: 8657: 8657: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8657: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8657: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: # 57 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8657: namespace QAlgorithmsPrivate { 8657: 8657: 8657: template 8657: void qSortHelper(RandomAccessIterator start, RandomAccessIterator end, const T &t, LessThan lessThan); 8657: template 8657: inline void qSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &dummy); 8657: 8657: template 8657: void qStableSortHelper(RandomAccessIterator start, RandomAccessIterator end, const T &t, LessThan lessThan); 8657: template 8657: inline void qStableSortHelper(RandomAccessIterator, RandomAccessIterator, const T &); 8657: 8657: template 8657: RandomAccessIterator qLowerBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan); 8657: template 8657: RandomAccessIterator qUpperBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan); 8657: template 8657: RandomAccessIterator qBinaryFindHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan); 8657: 8657: 8657: } 8657: 8657: 8657: template 8657: inline OutputIterator qCopy(InputIterator begin, InputIterator end, OutputIterator dest) 8657: { 8657: while (begin != end) 8657: *dest++ = *begin++; 8657: return dest; 8657: } 8657: 8657: template 8657: inline BiIterator2 qCopyBackward(BiIterator1 begin, BiIterator1 end, BiIterator2 dest) 8657: { 8657: while (begin != end) 8657: *--dest = *--end; 8657: return dest; 8657: } 8657: 8657: template 8657: inline bool qEqual(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2) 8657: { 8657: for (; first1 != last1; ++first1, ++first2) 8657: if (!(*first1 == *first2)) 8657: return false; 8657: return true; 8657: } 8657: 8657: template 8657: inline void qFill(ForwardIterator first, ForwardIterator last, const T &val) 8657: { 8657: for (; first != last; ++first) 8657: *first = val; 8657: } 8657: 8657: template 8657: inline void qFill(Container &container, const T &val) 8657: { 8657: qFill(container.begin(), container.end(), val); 8657: } 8657: 8657: template 8657: inline InputIterator qFind(InputIterator first, InputIterator last, const T &val) 8657: { 8657: while (first != last && !(*first == val)) 8657: ++first; 8657: return first; 8657: } 8657: 8657: template 8657: inline typename Container::const_iterator qFind(const Container &container, const T &val) 8657: { 8657: return qFind(container.constBegin(), container.constEnd(), val); 8657: } 8657: 8657: template 8657: inline void qCount(InputIterator first, InputIterator last, const T &value, Size &n) 8657: { 8657: for (; first != last; ++first) 8657: if (*first == value) 8657: ++n; 8657: } 8657: 8657: template 8657: inline void qCount(const Container &container, const T &value, Size &n) 8657: { 8657: qCount(container.constBegin(), container.constEnd(), value, n); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: class qLess 8657: { 8657: public: 8657: inline bool operator()(const T &t1, const T &t2) const 8657: { 8657: return (t1 < t2); 8657: } 8657: }; 8657: 8657: template 8657: class qGreater 8657: { 8657: public: 8657: inline bool operator()(const T &t1, const T &t2) const 8657: { 8657: return (t2 < t1); 8657: } 8657: }; 8657: 8657: 8657: template 8657: inline void qSort(RandomAccessIterator start, RandomAccessIterator end) 8657: { 8657: if (start != end) 8657: QAlgorithmsPrivate::qSortHelper(start, end, *start); 8657: } 8657: 8657: template 8657: inline void qSort(RandomAccessIterator start, RandomAccessIterator end, LessThan lessThan) 8657: { 8657: if (start != end) 8657: QAlgorithmsPrivate::qSortHelper(start, end, *start, lessThan); 8657: } 8657: 8657: template 8657: inline void qSort(Container &c) 8657: { 8657: 8657: 8657: 8657: 8657: if (!c.empty()) 8657: QAlgorithmsPrivate::qSortHelper(c.begin(), c.end(), *c.begin()); 8657: } 8657: 8657: template 8657: inline void qStableSort(RandomAccessIterator start, RandomAccessIterator end) 8657: { 8657: if (start != end) 8657: QAlgorithmsPrivate::qStableSortHelper(start, end, *start); 8657: } 8657: 8657: template 8657: inline void qStableSort(RandomAccessIterator start, RandomAccessIterator end, LessThan lessThan) 8657: { 8657: if (start != end) 8657: QAlgorithmsPrivate::qStableSortHelper(start, end, *start, lessThan); 8657: } 8657: 8657: template 8657: inline void qStableSort(Container &c) 8657: { 8657: 8657: 8657: 8657: 8657: if (!c.empty()) 8657: QAlgorithmsPrivate::qStableSortHelper(c.begin(), c.end(), *c.begin()); 8657: } 8657: 8657: template 8657: RandomAccessIterator qLowerBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value) 8657: { 8657: 8657: 8657: 8657: RandomAccessIterator middle; 8657: int n = end - begin; 8657: int half; 8657: 8657: while (n > 0) { 8657: half = n >> 1; 8657: middle = begin + half; 8657: if (*middle < value) { 8657: begin = middle + 1; 8657: n -= half + 1; 8657: } else { 8657: n = half; 8657: } 8657: } 8657: return begin; 8657: } 8657: 8657: template 8657: RandomAccessIterator qLowerBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8657: { 8657: return QAlgorithmsPrivate::qLowerBoundHelper(begin, end, value, lessThan); 8657: } 8657: 8657: template 8657: typename Container::const_iterator qLowerBound(const Container &container, const T &value) 8657: { 8657: return QAlgorithmsPrivate::qLowerBoundHelper(container.constBegin(), container.constEnd(), value, qLess()); 8657: } 8657: 8657: template 8657: RandomAccessIterator qUpperBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value) 8657: { 8657: 8657: RandomAccessIterator middle; 8657: int n = end - begin; 8657: int half; 8657: 8657: while (n > 0) { 8657: half = n >> 1; 8657: middle = begin + half; 8657: if (value < *middle) { 8657: n = half; 8657: } else { 8657: begin = middle + 1; 8657: n -= half + 1; 8657: } 8657: } 8657: return begin; 8657: } 8657: 8657: template 8657: RandomAccessIterator qUpperBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8657: { 8657: return QAlgorithmsPrivate::qUpperBoundHelper(begin, end, value, lessThan); 8657: } 8657: 8657: template 8657: typename Container::const_iterator qUpperBound(const Container &container, const T &value) 8657: { 8657: return QAlgorithmsPrivate::qUpperBoundHelper(container.constBegin(), container.constEnd(), value, qLess()); 8657: } 8657: 8657: template 8657: RandomAccessIterator qBinaryFind(RandomAccessIterator begin, RandomAccessIterator end, const T &value) 8657: { 8657: 8657: RandomAccessIterator it = qLowerBound(begin, end, value); 8657: 8657: if (it == end || value < *it) 8657: return end; 8657: 8657: return it; 8657: } 8657: 8657: template 8657: RandomAccessIterator qBinaryFind(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8657: { 8657: return QAlgorithmsPrivate::qBinaryFindHelper(begin, end, value, lessThan); 8657: } 8657: 8657: template 8657: typename Container::const_iterator qBinaryFind(const Container &container, const T &value) 8657: { 8657: return QAlgorithmsPrivate::qBinaryFindHelper(container.constBegin(), container.constEnd(), value, qLess()); 8657: } 8657: 8657: 8657: template 8657: void qDeleteAll(ForwardIterator begin, ForwardIterator end) 8657: { 8657: while (begin != end) { 8657: delete *begin; 8657: ++begin; 8657: } 8657: } 8657: 8657: template 8657: inline void qDeleteAll(const Container &c) 8657: { 8657: qDeleteAll(c.begin(), c.end()); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: namespace QAlgorithmsPrivate { 8657: 8657: 8657: 8657: template 8657: void qSortHelper(RandomAccessIterator start, RandomAccessIterator end, const T &t, LessThan lessThan) 8657: { 8657: top: 8657: int span = int(end - start); 8657: if (span < 2) 8657: return; 8657: 8657: --end; 8657: RandomAccessIterator low = start, high = end - 1; 8657: RandomAccessIterator pivot = start + span / 2; 8657: 8657: if (lessThan(*end, *start)) 8657: qSwap(*end, *start); 8657: if (span == 2) 8657: return; 8657: 8657: if (lessThan(*pivot, *start)) 8657: qSwap(*pivot, *start); 8657: if (lessThan(*end, *pivot)) 8657: qSwap(*end, *pivot); 8657: if (span == 3) 8657: return; 8657: 8657: qSwap(*pivot, *end); 8657: 8657: while (low < high) { 8657: while (low < high && lessThan(*low, *end)) 8657: ++low; 8657: 8657: while (high > low && lessThan(*end, *high)) 8657: --high; 8657: 8657: if (low < high) { 8657: qSwap(*low, *high); 8657: ++low; 8657: --high; 8657: } else { 8657: break; 8657: } 8657: } 8657: 8657: if (lessThan(*low, *end)) 8657: ++low; 8657: 8657: qSwap(*end, *low); 8657: qSortHelper(start, low, t, lessThan); 8657: 8657: start = low + 1; 8657: ++end; 8657: goto top; 8657: } 8657: 8657: template 8657: inline void qSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &dummy) 8657: { 8657: qSortHelper(begin, end, dummy, qLess()); 8657: } 8657: 8657: template 8657: void qReverse(RandomAccessIterator begin, RandomAccessIterator end) 8657: { 8657: --end; 8657: while (begin < end) 8657: qSwap(*begin++, *end--); 8657: } 8657: 8657: template 8657: void qRotate(RandomAccessIterator begin, RandomAccessIterator middle, RandomAccessIterator end) 8657: { 8657: qReverse(begin, middle); 8657: qReverse(middle, end); 8657: qReverse(begin, end); 8657: } 8657: 8657: template 8657: void qMerge(RandomAccessIterator begin, RandomAccessIterator pivot, RandomAccessIterator end, T &t, LessThan lessThan) 8657: { 8657: const int len1 = pivot - begin; 8657: const int len2 = end - pivot; 8657: 8657: if (len1 == 0 || len2 == 0) 8657: return; 8657: 8657: if (len1 + len2 == 2) { 8657: if (lessThan(*(begin + 1), *(begin))) 8657: qSwap(*begin, *(begin + 1)); 8657: return; 8657: } 8657: 8657: RandomAccessIterator firstCut; 8657: RandomAccessIterator secondCut; 8657: int len2Half; 8657: if (len1 > len2) { 8657: const int len1Half = len1 / 2; 8657: firstCut = begin + len1Half; 8657: secondCut = qLowerBound(pivot, end, *firstCut, lessThan); 8657: len2Half = secondCut - pivot; 8657: } else { 8657: len2Half = len2 / 2; 8657: secondCut = pivot + len2Half; 8657: firstCut = qUpperBound(begin, pivot, *secondCut, lessThan); 8657: } 8657: 8657: qRotate(firstCut, pivot, secondCut); 8657: const RandomAccessIterator newPivot = firstCut + len2Half; 8657: qMerge(begin, firstCut, newPivot, t, lessThan); 8657: qMerge(newPivot, secondCut, end, t, lessThan); 8657: } 8657: 8657: template 8657: void qStableSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &t, LessThan lessThan) 8657: { 8657: const int span = end - begin; 8657: if (span < 2) 8657: return; 8657: 8657: const RandomAccessIterator middle = begin + span / 2; 8657: qStableSortHelper(begin, middle, t, lessThan); 8657: qStableSortHelper(middle, end, t, lessThan); 8657: qMerge(begin, middle, end, t, lessThan); 8657: } 8657: 8657: template 8657: inline void qStableSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &dummy) 8657: { 8657: qStableSortHelper(begin, end, dummy, qLess()); 8657: } 8657: 8657: template 8657: RandomAccessIterator qLowerBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8657: { 8657: RandomAccessIterator middle; 8657: int n = int(end - begin); 8657: int half; 8657: 8657: while (n > 0) { 8657: half = n >> 1; 8657: middle = begin + half; 8657: if (lessThan(*middle, value)) { 8657: begin = middle + 1; 8657: n -= half + 1; 8657: } else { 8657: n = half; 8657: } 8657: } 8657: return begin; 8657: } 8657: 8657: 8657: template 8657: RandomAccessIterator qUpperBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8657: { 8657: RandomAccessIterator middle; 8657: int n = end - begin; 8657: int half; 8657: 8657: while (n > 0) { 8657: half = n >> 1; 8657: middle = begin + half; 8657: if (lessThan(value, *middle)) { 8657: n = half; 8657: } else { 8657: begin = middle + 1; 8657: n -= half + 1; 8657: } 8657: } 8657: return begin; 8657: } 8657: 8657: template 8657: RandomAccessIterator qBinaryFindHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8657: { 8657: RandomAccessIterator it = qLowerBoundHelper(begin, end, value, lessThan); 8657: 8657: if (it == end || lessThan(value, *it)) 8657: return end; 8657: 8657: return it; 8657: } 8657: # 536 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8657: constexpr inline __attribute__((always_inline)) uint qt_builtin_ctzs(quint16 v) noexcept 8657: { 8657: 8657: 8657: 8657: return __builtin_ctz(v); 8657: 8657: } 8657: 8657: constexpr inline __attribute__((always_inline)) uint qt_builtin_clzs(quint16 v) noexcept 8657: { 8657: 8657: 8657: 8657: return __builtin_clz(v) - 16U; 8657: 8657: } 8657: 8657: constexpr inline __attribute__((always_inline)) uint qt_builtin_ctz(quint32 v) noexcept 8657: { 8657: return __builtin_ctz(v); 8657: } 8657: 8657: constexpr inline __attribute__((always_inline)) uint qt_builtin_clz(quint32 v) noexcept 8657: { 8657: return __builtin_clz(v); 8657: } 8657: 8657: constexpr inline __attribute__((always_inline)) uint qt_builtin_ctzll(quint64 v) noexcept 8657: { 8657: return __builtin_ctzll(v); 8657: } 8657: 8657: constexpr inline __attribute__((always_inline)) uint qt_builtin_clzll(quint64 v) noexcept 8657: { 8657: return __builtin_clzll(v); 8657: } 8657: 8657: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcount(quint32 v) noexcept 8657: { 8657: return __builtin_popcount(v); 8657: } 8657: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcount(quint8 v) noexcept 8657: { 8657: return __builtin_popcount(v); 8657: } 8657: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcount(quint16 v) noexcept 8657: { 8657: return __builtin_popcount(v); 8657: } 8657: 8657: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcountll(quint64 v) noexcept 8657: { 8657: return __builtin_popcountll(v); 8657: } 8657: # 681 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8657: } 8657: 8657: __attribute__((const)) constexpr inline uint qPopulationCount(quint32 v) noexcept 8657: { 8657: 8657: return QAlgorithmsPrivate::qt_builtin_popcount(v); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: } 8657: 8657: __attribute__((const)) constexpr inline uint qPopulationCount(quint8 v) noexcept 8657: { 8657: 8657: return QAlgorithmsPrivate::qt_builtin_popcount(v); 8657: 8657: 8657: 8657: 8657: } 8657: 8657: __attribute__((const)) constexpr inline uint qPopulationCount(quint16 v) noexcept 8657: { 8657: 8657: return QAlgorithmsPrivate::qt_builtin_popcount(v); 8657: 8657: 8657: 8657: 8657: 8657: } 8657: 8657: __attribute__((const)) constexpr inline uint qPopulationCount(quint64 v) noexcept 8657: { 8657: 8657: return QAlgorithmsPrivate::qt_builtin_popcountll(v); 8657: # 730 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8657: } 8657: 8657: __attribute__((const)) constexpr inline uint qPopulationCount(long unsigned int v) noexcept 8657: { 8657: return qPopulationCount(static_cast(v)); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: inline uint qCountTrailingZeroBits(quint32 v) noexcept 8657: { 8657: 8657: return v ? QAlgorithmsPrivate::qt_builtin_ctz(v) : 32U; 8657: # 758 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8657: } 8657: 8657: inline uint qCountTrailingZeroBits(quint8 v) noexcept 8657: { 8657: 8657: return v ? QAlgorithmsPrivate::qt_builtin_ctz(v) : 8U; 8657: # 773 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8657: } 8657: 8657: inline uint qCountTrailingZeroBits(quint16 v) noexcept 8657: { 8657: 8657: return v ? QAlgorithmsPrivate::qt_builtin_ctzs(v) : 16U; 8657: # 789 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8657: } 8657: 8657: inline uint qCountTrailingZeroBits(quint64 v) noexcept 8657: { 8657: 8657: return v ? QAlgorithmsPrivate::qt_builtin_ctzll(v) : 64; 8657: 8657: 8657: 8657: 8657: 8657: } 8657: 8657: inline uint qCountTrailingZeroBits(unsigned long v) noexcept 8657: { 8657: return qCountTrailingZeroBits(QIntegerForSizeof::Unsigned(v)); 8657: } 8657: 8657: inline uint qCountLeadingZeroBits(quint32 v) noexcept 8657: { 8657: 8657: return v ? QAlgorithmsPrivate::qt_builtin_clz(v) : 32U; 8657: # 820 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8657: } 8657: 8657: inline uint qCountLeadingZeroBits(quint8 v) noexcept 8657: { 8657: 8657: return v ? QAlgorithmsPrivate::qt_builtin_clz(v)-24U : 8U; 8657: 8657: 8657: 8657: 8657: 8657: 8657: } 8657: 8657: inline uint qCountLeadingZeroBits(quint16 v) noexcept 8657: { 8657: 8657: return v ? QAlgorithmsPrivate::qt_builtin_clzs(v) : 16U; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: } 8657: 8657: inline uint qCountLeadingZeroBits(quint64 v) noexcept 8657: { 8657: 8657: return v ? QAlgorithmsPrivate::qt_builtin_clzll(v) : 64U; 8657: # 860 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8657: } 8657: 8657: inline uint qCountLeadingZeroBits(unsigned long v) noexcept 8657: { 8657: return qCountLeadingZeroBits(QIntegerForSizeof::Unsigned(v)); 8657: } 8657: 8657: 8657: # 867 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8657: #pragma GCC diagnostic pop 8657: # 867 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8657: 8657: 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiterator.h" 1 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiterator.h" 3 4 8657: 8657: # 182 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiterator.h" 3 4 8657: 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 2 3 4 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhashfunctions.h" 1 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhashfunctions.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qpair.h" 1 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qpair.h" 3 4 8657: 8657: 8657: 8657: template 8657: struct QPair 8657: { 8657: typedef T1 first_type; 8657: typedef T2 second_type; 8657: 8657: constexpr QPair() 8657: noexcept((std::is_nothrow_default_constructible::value && std::is_nothrow_default_constructible::value)) 8657: 8657: : first(), second() {} 8657: constexpr QPair(const T1 &t1, const T2 &t2) 8657: noexcept((std::is_nothrow_copy_constructible::value && std::is_nothrow_copy_constructible::value)) 8657: 8657: : first(t1), second(t2) {} 8657: 8657: 8657: template 8657: constexpr QPair(const QPair &p) 8657: noexcept((std::is_nothrow_constructible::value && std::is_nothrow_constructible::value)) 8657: 8657: : first(p.first), second(p.second) {} 8657: template 8657: QPair &operator=(const QPair &p) 8657: noexcept((std::is_nothrow_assignable::value && std::is_nothrow_assignable::value)) 8657: 8657: { first = p.first; second = p.second; return *this; } 8657: 8657: template 8657: constexpr QPair(QPair &&p) 8657: noexcept((std::is_nothrow_constructible::value && std::is_nothrow_constructible::value)) 8657: 8657: 8657: : first(static_cast(p.first)), second(static_cast(p.second)) {} 8657: template 8657: QPair &operator=(QPair &&p) 8657: noexcept((std::is_nothrow_assignable::value && std::is_nothrow_assignable::value)) 8657: 8657: { first = std::move(p.first); second = std::move(p.second); return *this; } 8657: 8657: 8657: void swap(QPair &other) 8657: noexcept(noexcept(qSwap(other.first, other.first)) && noexcept(qSwap(other.second, other.second))) 8657: { 8657: 8657: qSwap(first, other.first); 8657: qSwap(second, other.second); 8657: } 8657: 8657: T1 first; 8657: T2 second; 8657: }; 8657: 8657: template 8657: void swap(QPair &lhs, QPair &rhs) noexcept(noexcept(lhs.swap(rhs))) 8657: { lhs.swap(rhs); } 8657: 8657: 8657: 8657: template 8657: class QTypeInfo > : public QTypeInfoMerger, T1, T2> {}; 8657: 8657: template 8657: constexpr inline bool operator==(const QPair &p1, const QPair &p2) 8657: noexcept(noexcept(p1.first == p2.first && p1.second == p2.second)) 8657: { return p1.first == p2.first && p1.second == p2.second; } 8657: 8657: template 8657: constexpr inline bool operator!=(const QPair &p1, const QPair &p2) 8657: noexcept(noexcept(!(p1 == p2))) 8657: { return !(p1 == p2); } 8657: 8657: template 8657: constexpr inline bool operator<(const QPair &p1, const QPair &p2) 8657: noexcept(noexcept(p1.first < p2.first || (!(p2.first < p1.first) && p1.second < p2.second))) 8657: { 8657: return p1.first < p2.first || (!(p2.first < p1.first) && p1.second < p2.second); 8657: } 8657: 8657: template 8657: constexpr inline bool operator>(const QPair &p1, const QPair &p2) 8657: noexcept(noexcept(p2 < p1)) 8657: { 8657: return p2 < p1; 8657: } 8657: 8657: template 8657: constexpr inline bool operator<=(const QPair &p1, const QPair &p2) 8657: noexcept(noexcept(!(p2 < p1))) 8657: { 8657: return !(p2 < p1); 8657: } 8657: 8657: template 8657: constexpr inline bool operator>=(const QPair &p1, const QPair &p2) 8657: noexcept(noexcept(!(p1 < p2))) 8657: { 8657: return !(p1 < p2); 8657: } 8657: 8657: template 8657: constexpr QPair qMakePair(const T1 &x, const T2 &y) 8657: noexcept(noexcept(QPair(x, y))) 8657: { 8657: return QPair(x, y); 8657: } 8657: 8657: 8657: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhashfunctions.h" 2 3 4 8657: 8657: # 1 "/usr/include/c++/8/numeric" 1 3 4 8657: # 58 "/usr/include/c++/8/numeric" 3 4 8657: 8657: # 59 "/usr/include/c++/8/numeric" 3 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/stl_numeric.h" 1 3 8657: # 65 "/usr/include/c++/8/bits/stl_numeric.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 80 "/usr/include/c++/8/bits/stl_numeric.h" 3 8657: template 8657: void 8657: iota(_ForwardIterator __first, _ForwardIterator __last, _Tp __value) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: for (; __first != __last; ++__first) 8657: { 8657: *__first = __value; 8657: ++__value; 8657: } 8657: } 8657: 8657: 8657: } 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 118 "/usr/include/c++/8/bits/stl_numeric.h" 3 8657: template 8657: inline _Tp 8657: accumulate(_InputIterator __first, _InputIterator __last, _Tp __init) 8657: { 8657: 8657: 8657: ; 8657: 8657: for (; __first != __last; ++__first) 8657: __init = __init + *__first; 8657: return __init; 8657: } 8657: # 144 "/usr/include/c++/8/bits/stl_numeric.h" 3 8657: template 8657: inline _Tp 8657: accumulate(_InputIterator __first, _InputIterator __last, _Tp __init, 8657: _BinaryOperation __binary_op) 8657: { 8657: 8657: 8657: ; 8657: 8657: for (; __first != __last; ++__first) 8657: __init = __binary_op(__init, *__first); 8657: return __init; 8657: } 8657: # 172 "/usr/include/c++/8/bits/stl_numeric.h" 3 8657: template 8657: inline _Tp 8657: inner_product(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _Tp __init) 8657: { 8657: 8657: 8657: 8657: ; 8657: 8657: for (; __first1 != __last1; ++__first1, (void)++__first2) 8657: __init = __init + (*__first1 * *__first2); 8657: return __init; 8657: } 8657: # 203 "/usr/include/c++/8/bits/stl_numeric.h" 3 8657: template 8657: inline _Tp 8657: inner_product(_InputIterator1 __first1, _InputIterator1 __last1, 8657: _InputIterator2 __first2, _Tp __init, 8657: _BinaryOperation1 __binary_op1, 8657: _BinaryOperation2 __binary_op2) 8657: { 8657: 8657: 8657: 8657: ; 8657: 8657: for (; __first1 != __last1; ++__first1, (void)++__first2) 8657: __init = __binary_op1(__init, __binary_op2(*__first1, *__first2)); 8657: return __init; 8657: } 8657: # 235 "/usr/include/c++/8/bits/stl_numeric.h" 3 8657: template 8657: _OutputIterator 8657: partial_sum(_InputIterator __first, _InputIterator __last, 8657: _OutputIterator __result) 8657: { 8657: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: if (__first == __last) 8657: return __result; 8657: _ValueType __value = *__first; 8657: *__result = __value; 8657: while (++__first != __last) 8657: { 8657: __value = __value + *__first; 8657: *++__result = __value; 8657: } 8657: return ++__result; 8657: } 8657: # 275 "/usr/include/c++/8/bits/stl_numeric.h" 3 8657: template 8657: _OutputIterator 8657: partial_sum(_InputIterator __first, _InputIterator __last, 8657: _OutputIterator __result, _BinaryOperation __binary_op) 8657: { 8657: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: if (__first == __last) 8657: return __result; 8657: _ValueType __value = *__first; 8657: *__result = __value; 8657: while (++__first != __last) 8657: { 8657: __value = __binary_op(__value, *__first); 8657: *++__result = __value; 8657: } 8657: return ++__result; 8657: } 8657: # 315 "/usr/include/c++/8/bits/stl_numeric.h" 3 8657: template 8657: _OutputIterator 8657: adjacent_difference(_InputIterator __first, 8657: _InputIterator __last, _OutputIterator __result) 8657: { 8657: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: if (__first == __last) 8657: return __result; 8657: _ValueType __value = *__first; 8657: *__result = __value; 8657: while (++__first != __last) 8657: { 8657: _ValueType __tmp = *__first; 8657: *++__result = __tmp - __value; 8657: __value = std::move(__tmp); 8657: } 8657: return ++__result; 8657: } 8657: # 357 "/usr/include/c++/8/bits/stl_numeric.h" 3 8657: template 8657: _OutputIterator 8657: adjacent_difference(_InputIterator __first, _InputIterator __last, 8657: _OutputIterator __result, _BinaryOperation __binary_op) 8657: { 8657: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8657: 8657: 8657: 8657: 8657: 8657: ; 8657: 8657: if (__first == __last) 8657: return __result; 8657: _ValueType __value = *__first; 8657: *__result = __value; 8657: while (++__first != __last) 8657: { 8657: _ValueType __tmp = *__first; 8657: *++__result = __binary_op(__tmp, __value); 8657: __value = std::move(__tmp); 8657: } 8657: return ++__result; 8657: } 8657: 8657: 8657: } 8657: # 63 "/usr/include/c++/8/numeric" 2 3 8657: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhashfunctions.h" 2 3 4 8657: # 59 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhashfunctions.h" 3 4 8657: 8657: 8657: class QBitArray; 8657: class QByteArray; 8657: class QString; 8657: class QStringRef; 8657: class QLatin1String; 8657: 8657: __attribute__((visibility("default"))) int qGlobalQHashSeed(); 8657: __attribute__((visibility("default"))) void qSetGlobalQHashSeed(int newSeed); 8657: 8657: __attribute__((visibility("default"))) __attribute__((pure)) uint qHashBits(const void *p, size_t size, uint seed = 0) noexcept; 8657: 8657: __attribute__((const)) constexpr inline uint qHash(char key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8657: __attribute__((const)) constexpr inline uint qHash(uchar key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8657: __attribute__((const)) constexpr inline uint qHash(signed char key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8657: __attribute__((const)) constexpr inline uint qHash(ushort key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8657: __attribute__((const)) constexpr inline uint qHash(short key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8657: __attribute__((const)) constexpr inline uint qHash(uint key, uint seed = 0) noexcept { return key ^ seed; } 8657: __attribute__((const)) constexpr inline uint qHash(int key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8657: __attribute__((const)) constexpr inline uint qHash(ulong key, uint seed = 0) noexcept 8657: { 8657: return (sizeof(ulong) > sizeof(uint)) 8657: ? (uint(((key >> (8 * sizeof(uint) - 1)) ^ key) & (~0U)) ^ seed) 8657: : (uint(key & (~0U)) ^ seed); 8657: } 8657: __attribute__((const)) constexpr inline uint qHash(long key, uint seed = 0) noexcept { return qHash(ulong(key), seed); } 8657: __attribute__((const)) constexpr inline uint qHash(quint64 key, uint seed = 0) noexcept 8657: { 8657: return uint(((key >> (8 * sizeof(uint) - 1)) ^ key) & (~0U)) ^ seed; 8657: } 8657: __attribute__((const)) constexpr inline uint qHash(qint64 key, uint seed = 0) noexcept { return qHash(quint64(key), seed); } 8657: __attribute__((visibility("default"))) __attribute__((const)) uint qHash(float key, uint seed = 0) noexcept; 8657: __attribute__((visibility("default"))) __attribute__((const)) uint qHash(double key, uint seed = 0) noexcept; 8657: 8657: __attribute__((visibility("default"))) __attribute__((const)) uint qHash(long double key, uint seed = 0) noexcept; 8657: 8657: __attribute__((const)) constexpr inline uint qHash(const QChar key, uint seed = 0) noexcept { return qHash(key.unicode(), seed); } 8657: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QByteArray &key, uint seed = 0) noexcept; 8657: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QString &key, uint seed = 0) noexcept; 8657: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QStringRef &key, uint seed = 0) noexcept; 8657: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QBitArray &key, uint seed = 0) noexcept; 8657: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(QLatin1String key, uint seed = 0) noexcept; 8657: __attribute__((visibility("default"))) __attribute__((pure)) uint qt_hash(const QString &key) noexcept; 8657: __attribute__((visibility("default"))) __attribute__((pure)) uint qt_hash(const QStringRef &key) noexcept; 8657: 8657: template inline uint qHash(const T *key, uint seed = 0) noexcept 8657: { 8657: return qHash(reinterpret_cast(key), seed); 8657: } 8657: template inline uint qHash(const T &t, uint seed) 8657: noexcept(noexcept(qHash(t))) 8657: { return qHash(t) ^ seed; } 8657: 8657: namespace QtPrivate { 8657: 8657: struct QHashCombine { 8657: typedef uint result_type; 8657: template 8657: constexpr result_type operator()(uint seed, const T &t) const noexcept(noexcept(qHash(t))) 8657: 8657: { return seed ^ (qHash(t) + 0x9e3779b9 + (seed << 6) + (seed >> 2)) ; } 8657: }; 8657: 8657: struct QHashCombineCommutative { 8657: 8657: 8657: 8657: 8657: 8657: typedef uint result_type; 8657: template 8657: constexpr result_type operator()(uint seed, const T &t) const noexcept(noexcept(qHash(t))) 8657: { return seed + qHash(t); } 8657: }; 8657: 8657: } 8657: 8657: template 8657: inline uint qHashRange(InputIterator first, InputIterator last, uint seed = 0) 8657: noexcept(noexcept(qHash(*first))) 8657: { 8657: return std::accumulate(first, last, seed, QtPrivate::QHashCombine()); 8657: } 8657: 8657: template 8657: inline uint qHashRangeCommutative(InputIterator first, InputIterator last, uint seed = 0) 8657: noexcept(noexcept(qHash(*first))) 8657: { 8657: return std::accumulate(first, last, seed, QtPrivate::QHashCombineCommutative()); 8657: } 8657: 8657: template inline uint qHash(const QPair &key, uint seed = 0) 8657: noexcept(noexcept(qHash(key.first, seed)) && noexcept(qHash(key.second, seed))) 8657: { 8657: uint h1 = qHash(key.first, seed); 8657: uint h2 = qHash(key.second, seed); 8657: return ((h1 << 16) | (h1 >> 16)) ^ h2 ^ seed; 8657: } 8657: 8657: template inline uint qHash(const std::pair &key, uint seed = 0) 8657: noexcept(noexcept(qHash(key.first, seed)) && noexcept(qHash(key.second, seed))) 8657: { 8657: QtPrivate::QHashCombine hash; 8657: seed = hash(seed, key.first); 8657: seed = hash(seed, key.second); 8657: return seed; 8657: } 8657: 8657: 8657: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 2 3 4 8657: 8657: 8657: # 1 "/usr/include/c++/8/list" 1 3 4 8657: # 58 "/usr/include/c++/8/list" 3 4 8657: 8657: # 59 "/usr/include/c++/8/list" 3 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/stl_list.h" 1 3 8657: # 63 "/usr/include/c++/8/bits/stl_list.h" 3 8657: # 1 "/usr/include/c++/8/bits/allocated_ptr.h" 1 3 8657: # 40 "/usr/include/c++/8/bits/allocated_ptr.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: template 8657: struct __allocated_ptr 8657: { 8657: using pointer = typename allocator_traits<_Alloc>::pointer; 8657: using value_type = typename allocator_traits<_Alloc>::value_type; 8657: 8657: 8657: __allocated_ptr(_Alloc& __a, pointer __ptr) noexcept 8657: : _M_alloc(std::__addressof(__a)), _M_ptr(__ptr) 8657: { } 8657: 8657: 8657: template>> 8657: __allocated_ptr(_Alloc& __a, _Ptr __ptr) 8657: : _M_alloc(std::__addressof(__a)), 8657: _M_ptr(pointer_traits::pointer_to(*__ptr)) 8657: { } 8657: 8657: 8657: __allocated_ptr(__allocated_ptr&& __gd) noexcept 8657: : _M_alloc(__gd._M_alloc), _M_ptr(__gd._M_ptr) 8657: { __gd._M_ptr = nullptr; } 8657: 8657: 8657: ~__allocated_ptr() 8657: { 8657: if (_M_ptr != nullptr) 8657: std::allocator_traits<_Alloc>::deallocate(*_M_alloc, _M_ptr, 1); 8657: } 8657: 8657: 8657: __allocated_ptr& 8657: operator=(std::nullptr_t) noexcept 8657: { 8657: _M_ptr = nullptr; 8657: return *this; 8657: } 8657: 8657: 8657: value_type* get() { return std::__to_address(_M_ptr); } 8657: 8657: private: 8657: _Alloc* _M_alloc; 8657: pointer _M_ptr; 8657: }; 8657: 8657: 8657: template 8657: __allocated_ptr<_Alloc> 8657: __allocate_guarded(_Alloc& __a) 8657: { 8657: return { __a, std::allocator_traits<_Alloc>::allocate(__a, 1) }; 8657: } 8657: 8657: 8657: } 8657: # 64 "/usr/include/c++/8/bits/stl_list.h" 2 3 8657: # 1 "/usr/include/c++/8/ext/aligned_buffer.h" 1 3 8657: # 32 "/usr/include/c++/8/ext/aligned_buffer.h" 3 8657: 8657: # 33 "/usr/include/c++/8/ext/aligned_buffer.h" 3 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: namespace __gnu_cxx 8657: { 8657: 8657: 8657: 8657: 8657: template 8657: struct __aligned_membuf 8657: { 8657: 8657: 8657: 8657: struct _Tp2 { _Tp _M_t; }; 8657: 8657: alignas(__alignof__(_Tp2::_M_t)) unsigned char _M_storage[sizeof(_Tp)]; 8657: 8657: __aligned_membuf() = default; 8657: 8657: 8657: __aligned_membuf(std::nullptr_t) { } 8657: 8657: void* 8657: _M_addr() noexcept 8657: { return static_cast(&_M_storage); } 8657: 8657: const void* 8657: _M_addr() const noexcept 8657: { return static_cast(&_M_storage); } 8657: 8657: _Tp* 8657: _M_ptr() noexcept 8657: { return static_cast<_Tp*>(_M_addr()); } 8657: 8657: const _Tp* 8657: _M_ptr() const noexcept 8657: { return static_cast(_M_addr()); } 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct __aligned_buffer 8657: : std::aligned_storage::value> 8657: { 8657: typename 8657: std::aligned_storage::value>::type 8657: _M_storage; 8657: 8657: __aligned_buffer() = default; 8657: 8657: 8657: __aligned_buffer(std::nullptr_t) { } 8657: 8657: void* 8657: _M_addr() noexcept 8657: { 8657: return static_cast(&_M_storage); 8657: } 8657: 8657: const void* 8657: _M_addr() const noexcept 8657: { 8657: return static_cast(&_M_storage); 8657: } 8657: 8657: _Tp* 8657: _M_ptr() noexcept 8657: { return static_cast<_Tp*>(_M_addr()); } 8657: 8657: const _Tp* 8657: _M_ptr() const noexcept 8657: { return static_cast(_M_addr()); } 8657: }; 8657: 8657: } 8657: # 65 "/usr/include/c++/8/bits/stl_list.h" 2 3 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: namespace __detail 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: struct _List_node_base 8657: { 8657: _List_node_base* _M_next; 8657: _List_node_base* _M_prev; 8657: 8657: static void 8657: swap(_List_node_base& __x, _List_node_base& __y) noexcept; 8657: 8657: void 8657: _M_transfer(_List_node_base* const __first, 8657: _List_node_base* const __last) noexcept; 8657: 8657: void 8657: _M_reverse() noexcept; 8657: 8657: void 8657: _M_hook(_List_node_base* const __position) noexcept; 8657: 8657: void 8657: _M_unhook() noexcept; 8657: }; 8657: 8657: 8657: struct _List_node_header : public _List_node_base 8657: { 8657: 8657: std::size_t _M_size; 8657: 8657: 8657: _List_node_header() noexcept 8657: { _M_init(); } 8657: 8657: 8657: _List_node_header(_List_node_header&& __x) noexcept 8657: : _List_node_base{ __x._M_next, __x._M_prev } 8657: 8657: , _M_size(__x._M_size) 8657: 8657: { 8657: if (__x._M_base()->_M_next == __x._M_base()) 8657: this->_M_next = this->_M_prev = this; 8657: else 8657: { 8657: this->_M_next->_M_prev = this->_M_prev->_M_next = this->_M_base(); 8657: __x._M_init(); 8657: } 8657: } 8657: 8657: void 8657: _M_move_nodes(_List_node_header&& __x) 8657: { 8657: _List_node_base* const __xnode = __x._M_base(); 8657: if (__xnode->_M_next == __xnode) 8657: _M_init(); 8657: else 8657: { 8657: _List_node_base* const __node = this->_M_base(); 8657: __node->_M_next = __xnode->_M_next; 8657: __node->_M_prev = __xnode->_M_prev; 8657: __node->_M_next->_M_prev = __node->_M_prev->_M_next = __node; 8657: 8657: _M_size = __x._M_size; 8657: 8657: __x._M_init(); 8657: } 8657: } 8657: 8657: 8657: void 8657: _M_init() noexcept 8657: { 8657: this->_M_next = this->_M_prev = this; 8657: 8657: this->_M_size = 0; 8657: 8657: } 8657: 8657: private: 8657: _List_node_base* _M_base() { return this; } 8657: }; 8657: } 8657: 8657: 8657: 8657: 8657: template 8657: struct _List_node : public __detail::_List_node_base 8657: { 8657: 8657: __gnu_cxx::__aligned_membuf<_Tp> _M_storage; 8657: _Tp* _M_valptr() { return _M_storage._M_ptr(); } 8657: _Tp const* _M_valptr() const { return _M_storage._M_ptr(); } 8657: 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct _List_iterator 8657: { 8657: typedef _List_iterator<_Tp> _Self; 8657: typedef _List_node<_Tp> _Node; 8657: 8657: typedef ptrdiff_t difference_type; 8657: typedef std::bidirectional_iterator_tag iterator_category; 8657: typedef _Tp value_type; 8657: typedef _Tp* pointer; 8657: typedef _Tp& reference; 8657: 8657: _List_iterator() noexcept 8657: : _M_node() { } 8657: 8657: explicit 8657: _List_iterator(__detail::_List_node_base* __x) noexcept 8657: : _M_node(__x) { } 8657: 8657: _Self 8657: _M_const_cast() const noexcept 8657: { return *this; } 8657: 8657: 8657: reference 8657: operator*() const noexcept 8657: { return *static_cast<_Node*>(_M_node)->_M_valptr(); } 8657: 8657: pointer 8657: operator->() const noexcept 8657: { return static_cast<_Node*>(_M_node)->_M_valptr(); } 8657: 8657: _Self& 8657: operator++() noexcept 8657: { 8657: _M_node = _M_node->_M_next; 8657: return *this; 8657: } 8657: 8657: _Self 8657: operator++(int) noexcept 8657: { 8657: _Self __tmp = *this; 8657: _M_node = _M_node->_M_next; 8657: return __tmp; 8657: } 8657: 8657: _Self& 8657: operator--() noexcept 8657: { 8657: _M_node = _M_node->_M_prev; 8657: return *this; 8657: } 8657: 8657: _Self 8657: operator--(int) noexcept 8657: { 8657: _Self __tmp = *this; 8657: _M_node = _M_node->_M_prev; 8657: return __tmp; 8657: } 8657: 8657: bool 8657: operator==(const _Self& __x) const noexcept 8657: { return _M_node == __x._M_node; } 8657: 8657: bool 8657: operator!=(const _Self& __x) const noexcept 8657: { return _M_node != __x._M_node; } 8657: 8657: 8657: __detail::_List_node_base* _M_node; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct _List_const_iterator 8657: { 8657: typedef _List_const_iterator<_Tp> _Self; 8657: typedef const _List_node<_Tp> _Node; 8657: typedef _List_iterator<_Tp> iterator; 8657: 8657: typedef ptrdiff_t difference_type; 8657: typedef std::bidirectional_iterator_tag iterator_category; 8657: typedef _Tp value_type; 8657: typedef const _Tp* pointer; 8657: typedef const _Tp& reference; 8657: 8657: _List_const_iterator() noexcept 8657: : _M_node() { } 8657: 8657: explicit 8657: _List_const_iterator(const __detail::_List_node_base* __x) 8657: noexcept 8657: : _M_node(__x) { } 8657: 8657: _List_const_iterator(const iterator& __x) noexcept 8657: : _M_node(__x._M_node) { } 8657: 8657: iterator 8657: _M_const_cast() const noexcept 8657: { return iterator(const_cast<__detail::_List_node_base*>(_M_node)); } 8657: 8657: 8657: reference 8657: operator*() const noexcept 8657: { return *static_cast<_Node*>(_M_node)->_M_valptr(); } 8657: 8657: pointer 8657: operator->() const noexcept 8657: { return static_cast<_Node*>(_M_node)->_M_valptr(); } 8657: 8657: _Self& 8657: operator++() noexcept 8657: { 8657: _M_node = _M_node->_M_next; 8657: return *this; 8657: } 8657: 8657: _Self 8657: operator++(int) noexcept 8657: { 8657: _Self __tmp = *this; 8657: _M_node = _M_node->_M_next; 8657: return __tmp; 8657: } 8657: 8657: _Self& 8657: operator--() noexcept 8657: { 8657: _M_node = _M_node->_M_prev; 8657: return *this; 8657: } 8657: 8657: _Self 8657: operator--(int) noexcept 8657: { 8657: _Self __tmp = *this; 8657: _M_node = _M_node->_M_prev; 8657: return __tmp; 8657: } 8657: 8657: bool 8657: operator==(const _Self& __x) const noexcept 8657: { return _M_node == __x._M_node; } 8657: 8657: bool 8657: operator!=(const _Self& __x) const noexcept 8657: { return _M_node != __x._M_node; } 8657: 8657: 8657: const __detail::_List_node_base* _M_node; 8657: }; 8657: 8657: template 8657: inline bool 8657: operator==(const _List_iterator<_Val>& __x, 8657: const _List_const_iterator<_Val>& __y) noexcept 8657: { return __x._M_node == __y._M_node; } 8657: 8657: template 8657: inline bool 8657: operator!=(const _List_iterator<_Val>& __x, 8657: const _List_const_iterator<_Val>& __y) noexcept 8657: { return __x._M_node != __y._M_node; } 8657: 8657: namespace __cxx11 { 8657: 8657: template 8657: class _List_base 8657: { 8657: protected: 8657: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8657: rebind<_Tp>::other _Tp_alloc_type; 8657: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tp_alloc_traits; 8657: typedef typename _Tp_alloc_traits::template 8657: rebind<_List_node<_Tp> >::other _Node_alloc_type; 8657: typedef __gnu_cxx::__alloc_traits<_Node_alloc_type> _Node_alloc_traits; 8657: 8657: 8657: static size_t 8657: _S_distance(const __detail::_List_node_base* __first, 8657: const __detail::_List_node_base* __last) 8657: { 8657: size_t __n = 0; 8657: while (__first != __last) 8657: { 8657: __first = __first->_M_next; 8657: ++__n; 8657: } 8657: return __n; 8657: } 8657: 8657: 8657: struct _List_impl 8657: : public _Node_alloc_type 8657: { 8657: __detail::_List_node_header _M_node; 8657: 8657: _List_impl() noexcept(noexcept(_Node_alloc_type())) 8657: : _Node_alloc_type() 8657: { } 8657: 8657: _List_impl(const _Node_alloc_type& __a) noexcept 8657: : _Node_alloc_type(__a) 8657: { } 8657: 8657: 8657: _List_impl(_List_impl&&) = default; 8657: 8657: _List_impl(_Node_alloc_type&& __a, _List_impl&& __x) 8657: : _Node_alloc_type(std::move(__a)), _M_node(std::move(__x._M_node)) 8657: { } 8657: 8657: _List_impl(_Node_alloc_type&& __a) noexcept 8657: : _Node_alloc_type(std::move(__a)) 8657: { } 8657: 8657: }; 8657: 8657: _List_impl _M_impl; 8657: 8657: 8657: size_t _M_get_size() const { return _M_impl._M_node._M_size; } 8657: 8657: void _M_set_size(size_t __n) { _M_impl._M_node._M_size = __n; } 8657: 8657: void _M_inc_size(size_t __n) { _M_impl._M_node._M_size += __n; } 8657: 8657: void _M_dec_size(size_t __n) { _M_impl._M_node._M_size -= __n; } 8657: 8657: 8657: size_t 8657: _M_distance(const __detail::_List_node_base* __first, 8657: const __detail::_List_node_base* __last) const 8657: { return _S_distance(__first, __last); } 8657: 8657: 8657: size_t _M_node_count() const { return _M_get_size(); } 8657: # 447 "/usr/include/c++/8/bits/stl_list.h" 3 8657: typename _Node_alloc_traits::pointer 8657: _M_get_node() 8657: { return _Node_alloc_traits::allocate(_M_impl, 1); } 8657: 8657: void 8657: _M_put_node(typename _Node_alloc_traits::pointer __p) noexcept 8657: { _Node_alloc_traits::deallocate(_M_impl, __p, 1); } 8657: 8657: public: 8657: typedef _Alloc allocator_type; 8657: 8657: _Node_alloc_type& 8657: _M_get_Node_allocator() noexcept 8657: { return _M_impl; } 8657: 8657: const _Node_alloc_type& 8657: _M_get_Node_allocator() const noexcept 8657: { return _M_impl; } 8657: 8657: 8657: _List_base() = default; 8657: 8657: 8657: 8657: 8657: _List_base(const _Node_alloc_type& __a) noexcept 8657: : _M_impl(__a) 8657: { } 8657: 8657: 8657: _List_base(_List_base&&) = default; 8657: 8657: 8657: _List_base(_List_base&& __x, _Node_alloc_type&& __a) 8657: : _M_impl(std::move(__a)) 8657: { 8657: if (__x._M_get_Node_allocator() == _M_get_Node_allocator()) 8657: _M_move_nodes(std::move(__x)); 8657: 8657: } 8657: 8657: 8657: 8657: _List_base(_Node_alloc_type&& __a, _List_base&& __x) 8657: : _M_impl(std::move(__a), std::move(__x._M_impl)) 8657: { } 8657: 8657: 8657: _List_base(_Node_alloc_type&& __a) 8657: : _M_impl(std::move(__a)) 8657: { } 8657: 8657: void 8657: _M_move_nodes(_List_base&& __x) 8657: { _M_impl._M_node._M_move_nodes(std::move(__x._M_impl._M_node)); } 8657: 8657: 8657: 8657: ~_List_base() noexcept 8657: { _M_clear(); } 8657: 8657: void 8657: _M_clear() noexcept; 8657: 8657: void 8657: _M_init() noexcept 8657: { this->_M_impl._M_node._M_init(); } 8657: }; 8657: # 562 "/usr/include/c++/8/bits/stl_list.h" 3 8657: template > 8657: class list : protected _List_base<_Tp, _Alloc> 8657: { 8657: # 575 "/usr/include/c++/8/bits/stl_list.h" 3 8657: static_assert(is_same::type, _Tp>::value, 8657: "std::list must have a non-const, non-volatile value_type"); 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef _List_base<_Tp, _Alloc> _Base; 8657: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 8657: typedef typename _Base::_Tp_alloc_traits _Tp_alloc_traits; 8657: typedef typename _Base::_Node_alloc_type _Node_alloc_type; 8657: typedef typename _Base::_Node_alloc_traits _Node_alloc_traits; 8657: 8657: public: 8657: typedef _Tp value_type; 8657: typedef typename _Tp_alloc_traits::pointer pointer; 8657: typedef typename _Tp_alloc_traits::const_pointer const_pointer; 8657: typedef typename _Tp_alloc_traits::reference reference; 8657: typedef typename _Tp_alloc_traits::const_reference const_reference; 8657: typedef _List_iterator<_Tp> iterator; 8657: typedef _List_const_iterator<_Tp> const_iterator; 8657: typedef std::reverse_iterator const_reverse_iterator; 8657: typedef std::reverse_iterator reverse_iterator; 8657: typedef size_t size_type; 8657: typedef ptrdiff_t difference_type; 8657: typedef _Alloc allocator_type; 8657: 8657: protected: 8657: 8657: 8657: typedef _List_node<_Tp> _Node; 8657: 8657: using _Base::_M_impl; 8657: using _Base::_M_put_node; 8657: using _Base::_M_get_node; 8657: using _Base::_M_get_Node_allocator; 8657: # 637 "/usr/include/c++/8/bits/stl_list.h" 3 8657: template 8657: _Node* 8657: _M_create_node(_Args&&... __args) 8657: { 8657: auto __p = this->_M_get_node(); 8657: auto& __alloc = _M_get_Node_allocator(); 8657: __allocated_ptr<_Node_alloc_type> __guard{__alloc, __p}; 8657: _Node_alloc_traits::construct(__alloc, __p->_M_valptr(), 8657: std::forward<_Args>(__args)...); 8657: __guard = nullptr; 8657: return __p; 8657: } 8657: 8657: 8657: 8657: static size_t 8657: _S_distance(const_iterator __first, const_iterator __last) 8657: { return std::distance(__first, __last); } 8657: 8657: 8657: size_t 8657: _M_node_count() const 8657: { return this->_M_get_size(); } 8657: # 672 "/usr/include/c++/8/bits/stl_list.h" 3 8657: public: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: list() = default; 8657: # 689 "/usr/include/c++/8/bits/stl_list.h" 3 8657: explicit 8657: list(const allocator_type& __a) noexcept 8657: : _Base(_Node_alloc_type(__a)) { } 8657: # 702 "/usr/include/c++/8/bits/stl_list.h" 3 8657: explicit 8657: list(size_type __n, const allocator_type& __a = allocator_type()) 8657: : _Base(_Node_alloc_type(__a)) 8657: { _M_default_initialize(__n); } 8657: # 715 "/usr/include/c++/8/bits/stl_list.h" 3 8657: list(size_type __n, const value_type& __value, 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(_Node_alloc_type(__a)) 8657: { _M_fill_initialize(__n, __value); } 8657: # 742 "/usr/include/c++/8/bits/stl_list.h" 3 8657: list(const list& __x) 8657: : _Base(_Node_alloc_traits:: 8657: _S_select_on_copy(__x._M_get_Node_allocator())) 8657: { _M_initialize_dispatch(__x.begin(), __x.end(), __false_type()); } 8657: # 755 "/usr/include/c++/8/bits/stl_list.h" 3 8657: list(list&&) = default; 8657: # 765 "/usr/include/c++/8/bits/stl_list.h" 3 8657: list(initializer_list __l, 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(_Node_alloc_type(__a)) 8657: { _M_initialize_dispatch(__l.begin(), __l.end(), __false_type()); } 8657: 8657: list(const list& __x, const allocator_type& __a) 8657: : _Base(_Node_alloc_type(__a)) 8657: { _M_initialize_dispatch(__x.begin(), __x.end(), __false_type()); } 8657: 8657: private: 8657: list(list&& __x, const allocator_type& __a, true_type) noexcept 8657: : _Base(_Node_alloc_type(__a), std::move(__x)) 8657: { } 8657: 8657: list(list&& __x, const allocator_type& __a, false_type) 8657: : _Base(_Node_alloc_type(__a)) 8657: { 8657: if (__x._M_get_Node_allocator() == this->_M_get_Node_allocator()) 8657: this->_M_move_nodes(std::move(__x)); 8657: else 8657: insert(begin(), std::__make_move_if_noexcept_iterator(__x.begin()), 8657: std::__make_move_if_noexcept_iterator(__x.end())); 8657: } 8657: 8657: public: 8657: list(list&& __x, const allocator_type& __a) 8657: noexcept(_Node_alloc_traits::_S_always_equal()) 8657: : list(std::move(__x), __a, 8657: typename _Node_alloc_traits::is_always_equal{}) 8657: { } 8657: # 808 "/usr/include/c++/8/bits/stl_list.h" 3 8657: template> 8657: list(_InputIterator __first, _InputIterator __last, 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(_Node_alloc_type(__a)) 8657: { _M_initialize_dispatch(__first, __last, __false_type()); } 8657: # 834 "/usr/include/c++/8/bits/stl_list.h" 3 8657: ~list() = default; 8657: # 845 "/usr/include/c++/8/bits/stl_list.h" 3 8657: list& 8657: operator=(const list& __x); 8657: # 859 "/usr/include/c++/8/bits/stl_list.h" 3 8657: list& 8657: operator=(list&& __x) 8657: noexcept(_Node_alloc_traits::_S_nothrow_move()) 8657: { 8657: constexpr bool __move_storage = 8657: _Node_alloc_traits::_S_propagate_on_move_assign() 8657: || _Node_alloc_traits::_S_always_equal(); 8657: _M_move_assign(std::move(__x), __bool_constant<__move_storage>()); 8657: return *this; 8657: } 8657: # 877 "/usr/include/c++/8/bits/stl_list.h" 3 8657: list& 8657: operator=(initializer_list __l) 8657: { 8657: this->assign(__l.begin(), __l.end()); 8657: return *this; 8657: } 8657: # 895 "/usr/include/c++/8/bits/stl_list.h" 3 8657: void 8657: assign(size_type __n, const value_type& __val) 8657: { _M_fill_assign(__n, __val); } 8657: # 912 "/usr/include/c++/8/bits/stl_list.h" 3 8657: template> 8657: void 8657: assign(_InputIterator __first, _InputIterator __last) 8657: { _M_assign_dispatch(__first, __last, __false_type()); } 8657: # 936 "/usr/include/c++/8/bits/stl_list.h" 3 8657: void 8657: assign(initializer_list __l) 8657: { this->_M_assign_dispatch(__l.begin(), __l.end(), __false_type()); } 8657: 8657: 8657: 8657: allocator_type 8657: get_allocator() const noexcept 8657: { return allocator_type(_Base::_M_get_Node_allocator()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: begin() noexcept 8657: { return iterator(this->_M_impl._M_node._M_next); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: begin() const noexcept 8657: { return const_iterator(this->_M_impl._M_node._M_next); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: end() noexcept 8657: { return iterator(&this->_M_impl._M_node); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: end() const noexcept 8657: { return const_iterator(&this->_M_impl._M_node); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: rbegin() noexcept 8657: { return reverse_iterator(end()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: rbegin() const noexcept 8657: { return const_reverse_iterator(end()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: rend() noexcept 8657: { return reverse_iterator(begin()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: rend() const noexcept 8657: { return const_reverse_iterator(begin()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: cbegin() const noexcept 8657: { return const_iterator(this->_M_impl._M_node._M_next); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: cend() const noexcept 8657: { return const_iterator(&this->_M_impl._M_node); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: crbegin() const noexcept 8657: { return const_reverse_iterator(end()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: crend() const noexcept 8657: { return const_reverse_iterator(begin()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: bool 8657: empty() const noexcept 8657: { return this->_M_impl._M_node._M_next == &this->_M_impl._M_node; } 8657: 8657: 8657: size_type 8657: size() const noexcept 8657: { return _M_node_count(); } 8657: 8657: 8657: size_type 8657: max_size() const noexcept 8657: { return _Node_alloc_traits::max_size(_M_get_Node_allocator()); } 8657: # 1085 "/usr/include/c++/8/bits/stl_list.h" 3 8657: void 8657: resize(size_type __new_size); 8657: # 1098 "/usr/include/c++/8/bits/stl_list.h" 3 8657: void 8657: resize(size_type __new_size, const value_type& __x); 8657: # 1120 "/usr/include/c++/8/bits/stl_list.h" 3 8657: reference 8657: front() noexcept 8657: { return *begin(); } 8657: 8657: 8657: 8657: 8657: 8657: const_reference 8657: front() const noexcept 8657: { return *begin(); } 8657: 8657: 8657: 8657: 8657: 8657: reference 8657: back() noexcept 8657: { 8657: iterator __tmp = end(); 8657: --__tmp; 8657: return *__tmp; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: const_reference 8657: back() const noexcept 8657: { 8657: const_iterator __tmp = end(); 8657: --__tmp; 8657: return *__tmp; 8657: } 8657: # 1167 "/usr/include/c++/8/bits/stl_list.h" 3 8657: void 8657: push_front(const value_type& __x) 8657: { this->_M_insert(begin(), __x); } 8657: 8657: 8657: void 8657: push_front(value_type&& __x) 8657: { this->_M_insert(begin(), std::move(__x)); } 8657: 8657: template 8657: 8657: 8657: 8657: void 8657: 8657: emplace_front(_Args&&... __args) 8657: { 8657: this->_M_insert(begin(), std::forward<_Args>(__args)...); 8657: 8657: 8657: 8657: } 8657: # 1203 "/usr/include/c++/8/bits/stl_list.h" 3 8657: void 8657: pop_front() noexcept 8657: { this->_M_erase(begin()); } 8657: # 1217 "/usr/include/c++/8/bits/stl_list.h" 3 8657: void 8657: push_back(const value_type& __x) 8657: { this->_M_insert(end(), __x); } 8657: 8657: 8657: void 8657: push_back(value_type&& __x) 8657: { this->_M_insert(end(), std::move(__x)); } 8657: 8657: template 8657: 8657: 8657: 8657: void 8657: 8657: emplace_back(_Args&&... __args) 8657: { 8657: this->_M_insert(end(), std::forward<_Args>(__args)...); 8657: 8657: 8657: 8657: } 8657: # 1252 "/usr/include/c++/8/bits/stl_list.h" 3 8657: void 8657: pop_back() noexcept 8657: { this->_M_erase(iterator(this->_M_impl._M_node._M_prev)); } 8657: # 1269 "/usr/include/c++/8/bits/stl_list.h" 3 8657: template 8657: iterator 8657: emplace(const_iterator __position, _Args&&... __args); 8657: # 1284 "/usr/include/c++/8/bits/stl_list.h" 3 8657: iterator 8657: insert(const_iterator __position, const value_type& __x); 8657: # 1314 "/usr/include/c++/8/bits/stl_list.h" 3 8657: iterator 8657: insert(const_iterator __position, value_type&& __x) 8657: { return emplace(__position, std::move(__x)); } 8657: # 1333 "/usr/include/c++/8/bits/stl_list.h" 3 8657: iterator 8657: insert(const_iterator __p, initializer_list __l) 8657: { return this->insert(__p, __l.begin(), __l.end()); } 8657: # 1353 "/usr/include/c++/8/bits/stl_list.h" 3 8657: iterator 8657: insert(const_iterator __position, size_type __n, const value_type& __x); 8657: # 1392 "/usr/include/c++/8/bits/stl_list.h" 3 8657: template> 8657: iterator 8657: insert(const_iterator __position, _InputIterator __first, 8657: _InputIterator __last); 8657: # 1436 "/usr/include/c++/8/bits/stl_list.h" 3 8657: iterator 8657: 8657: erase(const_iterator __position) noexcept; 8657: # 1461 "/usr/include/c++/8/bits/stl_list.h" 3 8657: iterator 8657: 8657: erase(const_iterator __first, const_iterator __last) noexcept 8657: 8657: 8657: 8657: { 8657: while (__first != __last) 8657: __first = erase(__first); 8657: return __last._M_const_cast(); 8657: } 8657: # 1484 "/usr/include/c++/8/bits/stl_list.h" 3 8657: void 8657: swap(list& __x) noexcept 8657: { 8657: __detail::_List_node_base::swap(this->_M_impl._M_node, 8657: __x._M_impl._M_node); 8657: 8657: size_t __xsize = __x._M_get_size(); 8657: __x._M_set_size(this->_M_get_size()); 8657: this->_M_set_size(__xsize); 8657: 8657: _Node_alloc_traits::_S_on_swap(this->_M_get_Node_allocator(), 8657: __x._M_get_Node_allocator()); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: void 8657: clear() noexcept 8657: { 8657: _Base::_M_clear(); 8657: _Base::_M_init(); 8657: } 8657: # 1523 "/usr/include/c++/8/bits/stl_list.h" 3 8657: void 8657: 8657: splice(const_iterator __position, list&& __x) noexcept 8657: 8657: 8657: 8657: { 8657: if (!__x.empty()) 8657: { 8657: _M_check_equal_allocators(__x); 8657: 8657: this->_M_transfer(__position._M_const_cast(), 8657: __x.begin(), __x.end()); 8657: 8657: this->_M_inc_size(__x._M_get_size()); 8657: __x._M_set_size(0); 8657: } 8657: } 8657: 8657: 8657: void 8657: splice(const_iterator __position, list& __x) noexcept 8657: { splice(__position, std::move(__x)); } 8657: # 1559 "/usr/include/c++/8/bits/stl_list.h" 3 8657: void 8657: splice(const_iterator __position, list&& __x, const_iterator __i) noexcept 8657: # 1574 "/usr/include/c++/8/bits/stl_list.h" 3 8657: { 8657: iterator __j = __i._M_const_cast(); 8657: ++__j; 8657: if (__position == __i || __position == __j) 8657: return; 8657: 8657: if (this != std::__addressof(__x)) 8657: _M_check_equal_allocators(__x); 8657: 8657: this->_M_transfer(__position._M_const_cast(), 8657: __i._M_const_cast(), __j); 8657: 8657: this->_M_inc_size(1); 8657: __x._M_dec_size(1); 8657: } 8657: # 1601 "/usr/include/c++/8/bits/stl_list.h" 3 8657: void 8657: splice(const_iterator __position, list& __x, const_iterator __i) noexcept 8657: { splice(__position, std::move(__x), __i); } 8657: # 1620 "/usr/include/c++/8/bits/stl_list.h" 3 8657: void 8657: splice(const_iterator __position, list&& __x, const_iterator __first, 8657: const_iterator __last) noexcept 8657: # 1640 "/usr/include/c++/8/bits/stl_list.h" 3 8657: { 8657: if (__first != __last) 8657: { 8657: if (this != std::__addressof(__x)) 8657: _M_check_equal_allocators(__x); 8657: 8657: size_t __n = _S_distance(__first, __last); 8657: this->_M_inc_size(__n); 8657: __x._M_dec_size(__n); 8657: 8657: this->_M_transfer(__position._M_const_cast(), 8657: __first._M_const_cast(), 8657: __last._M_const_cast()); 8657: } 8657: } 8657: # 1670 "/usr/include/c++/8/bits/stl_list.h" 3 8657: void 8657: splice(const_iterator __position, list& __x, const_iterator __first, 8657: const_iterator __last) noexcept 8657: { splice(__position, std::move(__x), __first, __last); } 8657: # 1687 "/usr/include/c++/8/bits/stl_list.h" 3 8657: void 8657: remove(const _Tp& __value); 8657: # 1701 "/usr/include/c++/8/bits/stl_list.h" 3 8657: template 8657: void 8657: remove_if(_Predicate); 8657: # 1715 "/usr/include/c++/8/bits/stl_list.h" 3 8657: void 8657: unique(); 8657: # 1730 "/usr/include/c++/8/bits/stl_list.h" 3 8657: template 8657: void 8657: unique(_BinaryPredicate); 8657: # 1744 "/usr/include/c++/8/bits/stl_list.h" 3 8657: void 8657: merge(list&& __x); 8657: 8657: void 8657: merge(list& __x) 8657: { merge(std::move(__x)); } 8657: # 1769 "/usr/include/c++/8/bits/stl_list.h" 3 8657: template 8657: void 8657: merge(list&& __x, _StrictWeakOrdering __comp); 8657: 8657: template 8657: void 8657: merge(list& __x, _StrictWeakOrdering __comp) 8657: { merge(std::move(__x), __comp); } 8657: # 1788 "/usr/include/c++/8/bits/stl_list.h" 3 8657: void 8657: reverse() noexcept 8657: { this->_M_impl._M_node._M_reverse(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: void 8657: sort(); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: void 8657: sort(_StrictWeakOrdering); 8657: 8657: protected: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: void 8657: _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) 8657: { _M_fill_initialize(static_cast(__n), __x); } 8657: 8657: 8657: template 8657: void 8657: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 8657: __false_type) 8657: { 8657: for (; __first != __last; ++__first) 8657: 8657: emplace_back(*__first); 8657: 8657: 8657: 8657: } 8657: 8657: 8657: 8657: void 8657: _M_fill_initialize(size_type __n, const value_type& __x) 8657: { 8657: for (; __n; --__n) 8657: push_back(__x); 8657: } 8657: 8657: 8657: 8657: void 8657: _M_default_initialize(size_type __n) 8657: { 8657: for (; __n; --__n) 8657: emplace_back(); 8657: } 8657: 8657: 8657: void 8657: _M_default_append(size_type __n); 8657: # 1866 "/usr/include/c++/8/bits/stl_list.h" 3 8657: template 8657: void 8657: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 8657: { _M_fill_assign(__n, __val); } 8657: 8657: 8657: template 8657: void 8657: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 8657: __false_type); 8657: 8657: 8657: 8657: void 8657: _M_fill_assign(size_type __n, const value_type& __val); 8657: 8657: 8657: 8657: void 8657: _M_transfer(iterator __position, iterator __first, iterator __last) 8657: { __position._M_node->_M_transfer(__first._M_node, __last._M_node); } 8657: # 1898 "/usr/include/c++/8/bits/stl_list.h" 3 8657: template 8657: void 8657: _M_insert(iterator __position, _Args&&... __args) 8657: { 8657: _Node* __tmp = _M_create_node(std::forward<_Args>(__args)...); 8657: __tmp->_M_hook(__position._M_node); 8657: this->_M_inc_size(1); 8657: } 8657: 8657: 8657: 8657: void 8657: _M_erase(iterator __position) noexcept 8657: { 8657: this->_M_dec_size(1); 8657: __position._M_node->_M_unhook(); 8657: _Node* __n = static_cast<_Node*>(__position._M_node); 8657: 8657: _Node_alloc_traits::destroy(_M_get_Node_allocator(), __n->_M_valptr()); 8657: 8657: 8657: 8657: 8657: _M_put_node(__n); 8657: } 8657: 8657: 8657: void 8657: _M_check_equal_allocators(list& __x) noexcept 8657: { 8657: if (std::__alloc_neq:: 8657: _S_do_it(_M_get_Node_allocator(), __x._M_get_Node_allocator())) 8657: __builtin_abort(); 8657: } 8657: 8657: 8657: const_iterator 8657: _M_resize_pos(size_type& __new_size) const; 8657: 8657: 8657: void 8657: _M_move_assign(list&& __x, true_type) noexcept 8657: { 8657: this->_M_clear(); 8657: this->_M_move_nodes(std::move(__x)); 8657: std::__alloc_on_move(this->_M_get_Node_allocator(), 8657: __x._M_get_Node_allocator()); 8657: } 8657: 8657: void 8657: _M_move_assign(list&& __x, false_type) 8657: { 8657: if (__x._M_get_Node_allocator() == this->_M_get_Node_allocator()) 8657: _M_move_assign(std::move(__x), true_type{}); 8657: else 8657: 8657: 8657: _M_assign_dispatch(std::__make_move_if_noexcept_iterator(__x.begin()), 8657: std::__make_move_if_noexcept_iterator(__x.end()), 8657: __false_type{}); 8657: } 8657: 8657: }; 8657: # 1972 "/usr/include/c++/8/bits/stl_list.h" 3 8657: } 8657: # 1984 "/usr/include/c++/8/bits/stl_list.h" 3 8657: template 8657: inline bool 8657: operator==(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8657: { 8657: 8657: if (__x.size() != __y.size()) 8657: return false; 8657: 8657: 8657: typedef typename list<_Tp, _Alloc>::const_iterator const_iterator; 8657: const_iterator __end1 = __x.end(); 8657: const_iterator __end2 = __y.end(); 8657: 8657: const_iterator __i1 = __x.begin(); 8657: const_iterator __i2 = __y.begin(); 8657: while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) 8657: { 8657: ++__i1; 8657: ++__i2; 8657: } 8657: return __i1 == __end1 && __i2 == __end2; 8657: } 8657: # 2018 "/usr/include/c++/8/bits/stl_list.h" 3 8657: template 8657: inline bool 8657: operator<(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8657: { return std::lexicographical_compare(__x.begin(), __x.end(), 8657: __y.begin(), __y.end()); } 8657: 8657: 8657: template 8657: inline bool 8657: operator!=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8657: { return !(__x == __y); } 8657: 8657: 8657: template 8657: inline bool 8657: operator>(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8657: { return __y < __x; } 8657: 8657: 8657: template 8657: inline bool 8657: operator<=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8657: { return !(__y < __x); } 8657: 8657: 8657: template 8657: inline bool 8657: operator>=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8657: { return !(__x < __y); } 8657: 8657: 8657: template 8657: inline void 8657: swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y) 8657: noexcept(noexcept(__x.swap(__y))) 8657: { __x.swap(__y); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline ptrdiff_t 8657: __distance(std::_List_iterator<_Tp> __first, 8657: std::_List_iterator<_Tp> __last, 8657: input_iterator_tag __tag) 8657: { 8657: typedef std::_List_const_iterator<_Tp> _CIter; 8657: return std::__distance(_CIter(__first), _CIter(__last), __tag); 8657: } 8657: 8657: template 8657: inline ptrdiff_t 8657: __distance(std::_List_const_iterator<_Tp> __first, 8657: std::_List_const_iterator<_Tp> __last, 8657: input_iterator_tag) 8657: { 8657: typedef __detail::_List_node_header _Sentinel; 8657: std::_List_const_iterator<_Tp> __beyond = __last; 8657: ++__beyond; 8657: const bool __whole = __first == __beyond; 8657: if (__builtin_constant_p (__whole) && __whole) 8657: return static_cast(__last._M_node)->_M_size; 8657: 8657: ptrdiff_t __n = 0; 8657: while (__first != __last) 8657: { 8657: ++__first; 8657: ++__n; 8657: } 8657: return __n; 8657: } 8657: 8657: 8657: 8657: } 8657: # 64 "/usr/include/c++/8/list" 2 3 8657: # 1 "/usr/include/c++/8/bits/list.tcc" 1 3 8657: # 59 "/usr/include/c++/8/bits/list.tcc" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: template 8657: void 8657: _List_base<_Tp, _Alloc>:: 8657: _M_clear() noexcept 8657: { 8657: typedef _List_node<_Tp> _Node; 8657: __detail::_List_node_base* __cur = _M_impl._M_node._M_next; 8657: while (__cur != &_M_impl._M_node) 8657: { 8657: _Node* __tmp = static_cast<_Node*>(__cur); 8657: __cur = __tmp->_M_next; 8657: _Tp* __val = __tmp->_M_valptr(); 8657: 8657: _Node_alloc_traits::destroy(_M_get_Node_allocator(), __val); 8657: 8657: 8657: 8657: _M_put_node(__tmp); 8657: } 8657: } 8657: 8657: 8657: template 8657: template 8657: typename list<_Tp, _Alloc>::iterator 8657: list<_Tp, _Alloc>:: 8657: emplace(const_iterator __position, _Args&&... __args) 8657: { 8657: _Node* __tmp = _M_create_node(std::forward<_Args>(__args)...); 8657: __tmp->_M_hook(__position._M_const_cast()._M_node); 8657: this->_M_inc_size(1); 8657: return iterator(__tmp); 8657: } 8657: 8657: 8657: template 8657: typename list<_Tp, _Alloc>::iterator 8657: list<_Tp, _Alloc>:: 8657: 8657: insert(const_iterator __position, const value_type& __x) 8657: 8657: 8657: 8657: { 8657: _Node* __tmp = _M_create_node(__x); 8657: __tmp->_M_hook(__position._M_const_cast()._M_node); 8657: this->_M_inc_size(1); 8657: return iterator(__tmp); 8657: } 8657: 8657: 8657: template 8657: typename list<_Tp, _Alloc>::iterator 8657: list<_Tp, _Alloc>:: 8657: insert(const_iterator __position, size_type __n, const value_type& __x) 8657: { 8657: if (__n) 8657: { 8657: list __tmp(__n, __x, get_allocator()); 8657: iterator __it = __tmp.begin(); 8657: splice(__position, __tmp); 8657: return __it; 8657: } 8657: return __position._M_const_cast(); 8657: } 8657: 8657: template 8657: template 8657: typename list<_Tp, _Alloc>::iterator 8657: list<_Tp, _Alloc>:: 8657: insert(const_iterator __position, _InputIterator __first, 8657: _InputIterator __last) 8657: { 8657: list __tmp(__first, __last, get_allocator()); 8657: if (!__tmp.empty()) 8657: { 8657: iterator __it = __tmp.begin(); 8657: splice(__position, __tmp); 8657: return __it; 8657: } 8657: return __position._M_const_cast(); 8657: } 8657: 8657: 8657: template 8657: typename list<_Tp, _Alloc>::iterator 8657: list<_Tp, _Alloc>:: 8657: 8657: erase(const_iterator __position) noexcept 8657: 8657: 8657: 8657: { 8657: iterator __ret = iterator(__position._M_node->_M_next); 8657: _M_erase(__position._M_const_cast()); 8657: return __ret; 8657: } 8657: # 173 "/usr/include/c++/8/bits/list.tcc" 3 8657: template 8657: typename list<_Tp, _Alloc>::const_iterator 8657: list<_Tp, _Alloc>:: 8657: _M_resize_pos(size_type& __new_size) const 8657: { 8657: const_iterator __i; 8657: 8657: const size_type __len = size(); 8657: if (__new_size < __len) 8657: { 8657: if (__new_size <= __len / 2) 8657: { 8657: __i = begin(); 8657: std::advance(__i, __new_size); 8657: } 8657: else 8657: { 8657: __i = end(); 8657: ptrdiff_t __num_erase = __len - __new_size; 8657: std::advance(__i, -__num_erase); 8657: } 8657: __new_size = 0; 8657: return __i; 8657: } 8657: else 8657: __i = end(); 8657: 8657: 8657: 8657: 8657: 8657: __new_size -= __len; 8657: return __i; 8657: } 8657: 8657: 8657: template 8657: void 8657: list<_Tp, _Alloc>:: 8657: _M_default_append(size_type __n) 8657: { 8657: size_type __i = 0; 8657: try 8657: { 8657: for (; __i < __n; ++__i) 8657: emplace_back(); 8657: } 8657: catch(...) 8657: { 8657: for (; __i; --__i) 8657: pop_back(); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: void 8657: list<_Tp, _Alloc>:: 8657: resize(size_type __new_size) 8657: { 8657: const_iterator __i = _M_resize_pos(__new_size); 8657: if (__new_size) 8657: _M_default_append(__new_size); 8657: else 8657: erase(__i, end()); 8657: } 8657: 8657: template 8657: void 8657: list<_Tp, _Alloc>:: 8657: resize(size_type __new_size, const value_type& __x) 8657: { 8657: const_iterator __i = _M_resize_pos(__new_size); 8657: if (__new_size) 8657: insert(end(), __new_size, __x); 8657: else 8657: erase(__i, end()); 8657: } 8657: # 265 "/usr/include/c++/8/bits/list.tcc" 3 8657: template 8657: list<_Tp, _Alloc>& 8657: list<_Tp, _Alloc>:: 8657: operator=(const list& __x) 8657: { 8657: if (this != std::__addressof(__x)) 8657: { 8657: 8657: if (_Node_alloc_traits::_S_propagate_on_copy_assign()) 8657: { 8657: auto& __this_alloc = this->_M_get_Node_allocator(); 8657: auto& __that_alloc = __x._M_get_Node_allocator(); 8657: if (!_Node_alloc_traits::_S_always_equal() 8657: && __this_alloc != __that_alloc) 8657: { 8657: 8657: clear(); 8657: } 8657: std::__alloc_on_copy(__this_alloc, __that_alloc); 8657: } 8657: 8657: _M_assign_dispatch(__x.begin(), __x.end(), __false_type()); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: void 8657: list<_Tp, _Alloc>:: 8657: _M_fill_assign(size_type __n, const value_type& __val) 8657: { 8657: iterator __i = begin(); 8657: for (; __i != end() && __n > 0; ++__i, --__n) 8657: *__i = __val; 8657: if (__n > 0) 8657: insert(end(), __n, __val); 8657: else 8657: erase(__i, end()); 8657: } 8657: 8657: template 8657: template 8657: void 8657: list<_Tp, _Alloc>:: 8657: _M_assign_dispatch(_InputIterator __first2, _InputIterator __last2, 8657: __false_type) 8657: { 8657: iterator __first1 = begin(); 8657: iterator __last1 = end(); 8657: for (; __first1 != __last1 && __first2 != __last2; 8657: ++__first1, ++__first2) 8657: *__first1 = *__first2; 8657: if (__first2 == __last2) 8657: erase(__first1, __last1); 8657: else 8657: insert(__last1, __first2, __last2); 8657: } 8657: 8657: template 8657: void 8657: list<_Tp, _Alloc>:: 8657: remove(const value_type& __value) 8657: { 8657: iterator __first = begin(); 8657: iterator __last = end(); 8657: iterator __extra = __last; 8657: while (__first != __last) 8657: { 8657: iterator __next = __first; 8657: ++__next; 8657: if (*__first == __value) 8657: { 8657: 8657: 8657: 8657: if (std::__addressof(*__first) != std::__addressof(__value)) 8657: _M_erase(__first); 8657: else 8657: __extra = __first; 8657: } 8657: __first = __next; 8657: } 8657: if (__extra != __last) 8657: _M_erase(__extra); 8657: } 8657: 8657: template 8657: void 8657: list<_Tp, _Alloc>:: 8657: unique() 8657: { 8657: iterator __first = begin(); 8657: iterator __last = end(); 8657: if (__first == __last) 8657: return; 8657: iterator __next = __first; 8657: while (++__next != __last) 8657: { 8657: if (*__first == *__next) 8657: _M_erase(__next); 8657: else 8657: __first = __next; 8657: __next = __first; 8657: } 8657: } 8657: 8657: template 8657: void 8657: list<_Tp, _Alloc>:: 8657: 8657: merge(list&& __x) 8657: 8657: 8657: 8657: { 8657: 8657: 8657: if (this != std::__addressof(__x)) 8657: { 8657: _M_check_equal_allocators(__x); 8657: 8657: iterator __first1 = begin(); 8657: iterator __last1 = end(); 8657: iterator __first2 = __x.begin(); 8657: iterator __last2 = __x.end(); 8657: const size_t __orig_size = __x.size(); 8657: try { 8657: while (__first1 != __last1 && __first2 != __last2) 8657: if (*__first2 < *__first1) 8657: { 8657: iterator __next = __first2; 8657: _M_transfer(__first1, __first2, ++__next); 8657: __first2 = __next; 8657: } 8657: else 8657: ++__first1; 8657: if (__first2 != __last2) 8657: _M_transfer(__last1, __first2, __last2); 8657: 8657: this->_M_inc_size(__x._M_get_size()); 8657: __x._M_set_size(0); 8657: } 8657: catch(...) 8657: { 8657: const size_t __dist = std::distance(__first2, __last2); 8657: this->_M_inc_size(__orig_size - __dist); 8657: __x._M_set_size(__dist); 8657: throw; 8657: } 8657: } 8657: } 8657: 8657: template 8657: template 8657: void 8657: list<_Tp, _Alloc>:: 8657: 8657: merge(list&& __x, _StrictWeakOrdering __comp) 8657: 8657: 8657: 8657: { 8657: 8657: 8657: if (this != std::__addressof(__x)) 8657: { 8657: _M_check_equal_allocators(__x); 8657: 8657: iterator __first1 = begin(); 8657: iterator __last1 = end(); 8657: iterator __first2 = __x.begin(); 8657: iterator __last2 = __x.end(); 8657: const size_t __orig_size = __x.size(); 8657: try 8657: { 8657: while (__first1 != __last1 && __first2 != __last2) 8657: if (__comp(*__first2, *__first1)) 8657: { 8657: iterator __next = __first2; 8657: _M_transfer(__first1, __first2, ++__next); 8657: __first2 = __next; 8657: } 8657: else 8657: ++__first1; 8657: if (__first2 != __last2) 8657: _M_transfer(__last1, __first2, __last2); 8657: 8657: this->_M_inc_size(__x._M_get_size()); 8657: __x._M_set_size(0); 8657: } 8657: catch(...) 8657: { 8657: const size_t __dist = std::distance(__first2, __last2); 8657: this->_M_inc_size(__orig_size - __dist); 8657: __x._M_set_size(__dist); 8657: throw; 8657: } 8657: } 8657: } 8657: 8657: template 8657: void 8657: list<_Tp, _Alloc>:: 8657: sort() 8657: { 8657: 8657: if (this->_M_impl._M_node._M_next != &this->_M_impl._M_node 8657: && this->_M_impl._M_node._M_next->_M_next != &this->_M_impl._M_node) 8657: { 8657: list __carry; 8657: list __tmp[64]; 8657: list * __fill = __tmp; 8657: list * __counter; 8657: try 8657: { 8657: do 8657: { 8657: __carry.splice(__carry.begin(), *this, begin()); 8657: 8657: for(__counter = __tmp; 8657: __counter != __fill && !__counter->empty(); 8657: ++__counter) 8657: { 8657: __counter->merge(__carry); 8657: __carry.swap(*__counter); 8657: } 8657: __carry.swap(*__counter); 8657: if (__counter == __fill) 8657: ++__fill; 8657: } 8657: while ( !empty() ); 8657: 8657: for (__counter = __tmp + 1; __counter != __fill; ++__counter) 8657: __counter->merge(*(__counter - 1)); 8657: swap( *(__fill - 1) ); 8657: } 8657: catch(...) 8657: { 8657: this->splice(this->end(), __carry); 8657: for (int __i = 0; __i < sizeof(__tmp)/sizeof(__tmp[0]); ++__i) 8657: this->splice(this->end(), __tmp[__i]); 8657: throw; 8657: } 8657: } 8657: } 8657: 8657: template 8657: template 8657: void 8657: list<_Tp, _Alloc>:: 8657: remove_if(_Predicate __pred) 8657: { 8657: iterator __first = begin(); 8657: iterator __last = end(); 8657: while (__first != __last) 8657: { 8657: iterator __next = __first; 8657: ++__next; 8657: if (__pred(*__first)) 8657: _M_erase(__first); 8657: __first = __next; 8657: } 8657: } 8657: 8657: template 8657: template 8657: void 8657: list<_Tp, _Alloc>:: 8657: unique(_BinaryPredicate __binary_pred) 8657: { 8657: iterator __first = begin(); 8657: iterator __last = end(); 8657: if (__first == __last) 8657: return; 8657: iterator __next = __first; 8657: while (++__next != __last) 8657: { 8657: if (__binary_pred(*__first, *__next)) 8657: _M_erase(__next); 8657: else 8657: __first = __next; 8657: __next = __first; 8657: } 8657: } 8657: 8657: template 8657: template 8657: void 8657: list<_Tp, _Alloc>:: 8657: sort(_StrictWeakOrdering __comp) 8657: { 8657: 8657: if (this->_M_impl._M_node._M_next != &this->_M_impl._M_node 8657: && this->_M_impl._M_node._M_next->_M_next != &this->_M_impl._M_node) 8657: { 8657: list __carry; 8657: list __tmp[64]; 8657: list * __fill = __tmp; 8657: list * __counter; 8657: try 8657: { 8657: do 8657: { 8657: __carry.splice(__carry.begin(), *this, begin()); 8657: 8657: for(__counter = __tmp; 8657: __counter != __fill && !__counter->empty(); 8657: ++__counter) 8657: { 8657: __counter->merge(__carry, __comp); 8657: __carry.swap(*__counter); 8657: } 8657: __carry.swap(*__counter); 8657: if (__counter == __fill) 8657: ++__fill; 8657: } 8657: while ( !empty() ); 8657: 8657: for (__counter = __tmp + 1; __counter != __fill; ++__counter) 8657: __counter->merge(*(__counter - 1), __comp); 8657: swap(*(__fill - 1)); 8657: } 8657: catch(...) 8657: { 8657: this->splice(this->end(), __carry); 8657: for (int __i = 0; __i < sizeof(__tmp)/sizeof(__tmp[0]); ++__i) 8657: this->splice(this->end(), __tmp[__i]); 8657: throw; 8657: } 8657: } 8657: } 8657: 8657: 8657: 8657: } 8657: # 65 "/usr/include/c++/8/list" 2 3 8657: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8657: # 57 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 2 3 4 8657: 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 1 3 4 8657: # 34 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 3 4 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/syslimits.h" 1 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 1 3 4 8657: # 194 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 3 4 8657: # 1 "/usr/include/limits.h" 1 3 4 8657: # 26 "/usr/include/limits.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 8657: # 27 "/usr/include/limits.h" 2 3 4 8657: # 183 "/usr/include/limits.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/posix1_lim.h" 1 3 4 8657: # 160 "/usr/include/arm-linux-gnueabihf/bits/posix1_lim.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/local_lim.h" 1 3 4 8657: # 38 "/usr/include/arm-linux-gnueabihf/bits/local_lim.h" 3 4 8657: # 1 "/usr/include/linux/limits.h" 1 3 4 8657: # 39 "/usr/include/arm-linux-gnueabihf/bits/local_lim.h" 2 3 4 8657: # 161 "/usr/include/arm-linux-gnueabihf/bits/posix1_lim.h" 2 3 4 8657: # 184 "/usr/include/limits.h" 2 3 4 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/posix2_lim.h" 1 3 4 8657: # 188 "/usr/include/limits.h" 2 3 4 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/xopen_lim.h" 1 3 4 8657: # 64 "/usr/include/arm-linux-gnueabihf/bits/xopen_lim.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/bits/uio_lim.h" 1 3 4 8657: # 65 "/usr/include/arm-linux-gnueabihf/bits/xopen_lim.h" 2 3 4 8657: # 192 "/usr/include/limits.h" 2 3 4 8657: # 195 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 2 3 4 8657: # 8 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/syslimits.h" 2 3 4 8657: # 35 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 2 3 4 8657: # 59 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template class QVector; 8657: template class QSet; 8657: 8657: template struct QListSpecialMethods 8657: { 8657: protected: 8657: ~QListSpecialMethods() {} 8657: }; 8657: template <> struct QListSpecialMethods; 8657: template <> struct QListSpecialMethods; 8657: 8657: struct __attribute__((visibility("default"))) QListData { 8657: 8657: 8657: struct NotArrayCompatibleLayout {}; 8657: struct NotIndirectLayout {}; 8657: struct ArrayCompatibleLayout : NotIndirectLayout {}; 8657: struct InlineWithPaddingLayout : NotArrayCompatibleLayout, NotIndirectLayout {}; 8657: struct IndirectLayout : NotArrayCompatibleLayout {}; 8657: 8657: struct Data { 8657: QtPrivate::RefCount ref; 8657: int alloc, begin, end; 8657: void *array[1]; 8657: }; 8657: enum { DataHeaderSize = sizeof(Data) - sizeof(void *) }; 8657: 8657: Data *detach(int alloc); 8657: Data *detach_grow(int *i, int n); 8657: void realloc(int alloc); 8657: void realloc_grow(int growth); 8657: inline void dispose() { dispose(d); } 8657: static void dispose(Data *d); 8657: static const Data shared_null; 8657: Data *d; 8657: void **erase(void **xi); 8657: void **append(int n); 8657: void **append(); 8657: void **append(const QListData &l); 8657: void **prepend(); 8657: void **insert(int i); 8657: void remove(int i); 8657: void remove(int i, int n); 8657: void move(int from, int to); 8657: inline int size() const noexcept { return d->end - d->begin; } 8657: inline bool isEmpty() const noexcept { return d->end == d->begin; } 8657: inline void **at(int i) const noexcept { return d->array + d->begin + i; } 8657: inline void **begin() const noexcept { return d->array + d->begin; } 8657: inline void **end() const noexcept { return d->array + d->end; } 8657: }; 8657: 8657: template 8657: class QList 8657: 8657: : public QListSpecialMethods 8657: 8657: { 8657: public: 8657: struct MemoryLayout 8657: : std::conditional< 8657: 8657: QTypeInfo::isStatic || QTypeInfo::isLarge, 8657: QListData::IndirectLayout, 8657: typename std::conditional< 8657: sizeof(T) == sizeof(void*), 8657: QListData::ArrayCompatibleLayout, 8657: QListData::InlineWithPaddingLayout 8657: >::type>::type {}; 8657: private: 8657: struct Node { void *v; 8657: 8657: 8657: 8657: inline T &t() 8657: { return *reinterpret_cast(QTypeInfo::isLarge || QTypeInfo::isStatic 8657: ? v : this); } 8657: 8657: }; 8657: 8657: union { QListData p; QListData::Data *d; }; 8657: 8657: public: 8657: inline QList() noexcept : d(const_cast(&QListData::shared_null)) { } 8657: QList(const QList &l); 8657: ~QList(); 8657: QList &operator=(const QList &l); 8657: 8657: inline QList(QList &&other) noexcept 8657: : d(other.d) { other.d = const_cast(&QListData::shared_null); } 8657: inline QList &operator=(QList &&other) noexcept 8657: { QList moved(std::move(other)); swap(moved); return *this; } 8657: 8657: inline void swap(QList &other) noexcept { qSwap(d, other.d); } 8657: 8657: inline QList(std::initializer_list args) 8657: : d(const_cast(&QListData::shared_null)) 8657: { reserve(int(args.size())); std::copy(args.begin(), args.end(), std::back_inserter(*this)); } 8657: 8657: bool operator==(const QList &l) const; 8657: inline bool operator!=(const QList &l) const { return !(*this == l); } 8657: 8657: inline int size() const noexcept { return p.size(); } 8657: 8657: inline void detach() { if (d->ref.isShared()) detach_helper(); } 8657: 8657: inline void detachShared() 8657: { 8657: 8657: if (d->ref.isShared() && this->d != &QListData::shared_null) 8657: detach_helper(); 8657: } 8657: 8657: inline bool isDetached() const { return !d->ref.isShared(); } 8657: 8657: inline void setSharable(bool sharable) 8657: { 8657: if (sharable == d->ref.isSharable()) 8657: return; 8657: if (!sharable) 8657: detach(); 8657: if (d != &QListData::shared_null) 8657: d->ref.setSharable(sharable); 8657: } 8657: 8657: inline bool isSharedWith(const QList &other) const noexcept { return d == other.d; } 8657: 8657: inline bool isEmpty() const noexcept { return p.isEmpty(); } 8657: 8657: void clear(); 8657: 8657: const T &at(int i) const; 8657: const T &operator[](int i) const; 8657: T &operator[](int i); 8657: 8657: void reserve(int size); 8657: void append(const T &t); 8657: void append(const QList &t); 8657: void prepend(const T &t); 8657: void insert(int i, const T &t); 8657: void replace(int i, const T &t); 8657: void removeAt(int i); 8657: int removeAll(const T &t); 8657: bool removeOne(const T &t); 8657: T takeAt(int i); 8657: T takeFirst(); 8657: T takeLast(); 8657: void move(int from, int to); 8657: void swap(int i, int j); 8657: int indexOf(const T &t, int from = 0) const; 8657: int lastIndexOf(const T &t, int from = -1) const; 8657: bool contains(const T &t) const; 8657: int count(const T &t) const; 8657: 8657: class const_iterator; 8657: 8657: class iterator { 8657: public: 8657: Node *i; 8657: typedef std::random_access_iterator_tag iterator_category; 8657: 8657: typedef qptrdiff difference_type; 8657: typedef T value_type; 8657: typedef T *pointer; 8657: typedef T &reference; 8657: 8657: inline iterator() noexcept : i(nullptr) {} 8657: inline iterator(Node *n) noexcept : i(n) {} 8657: 8657: 8657: 8657: inline iterator(const iterator &o) noexcept : i(o.i){} 8657: 8657: inline T &operator*() const { return i->t(); } 8657: inline T *operator->() const { return &i->t(); } 8657: inline T &operator[](difference_type j) const { return i[j].t(); } 8657: inline bool operator==(const iterator &o) const noexcept { return i == o.i; } 8657: inline bool operator!=(const iterator &o) const noexcept { return i != o.i; } 8657: inline bool operator<(const iterator& other) const noexcept { return i < other.i; } 8657: inline bool operator<=(const iterator& other) const noexcept { return i <= other.i; } 8657: inline bool operator>(const iterator& other) const noexcept { return i > other.i; } 8657: inline bool operator>=(const iterator& other) const noexcept { return i >= other.i; } 8657: # 264 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 3 4 8657: inline iterator &operator++() { ++i; return *this; } 8657: inline iterator operator++(int) { Node *n = i; ++i; return n; } 8657: inline iterator &operator--() { i--; return *this; } 8657: inline iterator operator--(int) { Node *n = i; i--; return n; } 8657: inline iterator &operator+=(difference_type j) { i+=j; return *this; } 8657: inline iterator &operator-=(difference_type j) { i-=j; return *this; } 8657: inline iterator operator+(difference_type j) const { return iterator(i+j); } 8657: inline iterator operator-(difference_type j) const { return iterator(i-j); } 8657: inline int operator-(iterator j) const { return int(i - j.i); } 8657: }; 8657: friend class iterator; 8657: 8657: class const_iterator { 8657: public: 8657: Node *i; 8657: typedef std::random_access_iterator_tag iterator_category; 8657: 8657: typedef qptrdiff difference_type; 8657: typedef T value_type; 8657: typedef const T *pointer; 8657: typedef const T &reference; 8657: 8657: inline const_iterator() noexcept : i(nullptr) {} 8657: inline const_iterator(Node *n) noexcept : i(n) {} 8657: 8657: 8657: 8657: inline const_iterator(const const_iterator &o) noexcept : i(o.i) {} 8657: 8657: 8657: inline explicit const_iterator(const iterator &o) noexcept : i(o.i) {} 8657: 8657: 8657: 8657: inline const T &operator*() const { return i->t(); } 8657: inline const T *operator->() const { return &i->t(); } 8657: inline const T &operator[](difference_type j) const { return i[j].t(); } 8657: inline bool operator==(const const_iterator &o) const noexcept { return i == o.i; } 8657: inline bool operator!=(const const_iterator &o) const noexcept { return i != o.i; } 8657: inline bool operator<(const const_iterator& other) const noexcept { return i < other.i; } 8657: inline bool operator<=(const const_iterator& other) const noexcept { return i <= other.i; } 8657: inline bool operator>(const const_iterator& other) const noexcept { return i > other.i; } 8657: inline bool operator>=(const const_iterator& other) const noexcept { return i >= other.i; } 8657: inline const_iterator &operator++() { ++i; return *this; } 8657: inline const_iterator operator++(int) { Node *n = i; ++i; return n; } 8657: inline const_iterator &operator--() { i--; return *this; } 8657: inline const_iterator operator--(int) { Node *n = i; i--; return n; } 8657: inline const_iterator &operator+=(difference_type j) { i+=j; return *this; } 8657: inline const_iterator &operator-=(difference_type j) { i-=j; return *this; } 8657: inline const_iterator operator+(difference_type j) const { return const_iterator(i+j); } 8657: inline const_iterator operator-(difference_type j) const { return const_iterator(i-j); } 8657: inline int operator-(const_iterator j) const { return int(i - j.i); } 8657: }; 8657: friend class const_iterator; 8657: 8657: 8657: typedef std::reverse_iterator reverse_iterator; 8657: typedef std::reverse_iterator const_reverse_iterator; 8657: inline iterator begin() { detach(); return reinterpret_cast(p.begin()); } 8657: inline const_iterator begin() const noexcept { return reinterpret_cast(p.begin()); } 8657: inline const_iterator cbegin() const noexcept { return reinterpret_cast(p.begin()); } 8657: inline const_iterator constBegin() const noexcept { return reinterpret_cast(p.begin()); } 8657: inline iterator end() { detach(); return reinterpret_cast(p.end()); } 8657: inline const_iterator end() const noexcept { return reinterpret_cast(p.end()); } 8657: inline const_iterator cend() const noexcept { return reinterpret_cast(p.end()); } 8657: inline const_iterator constEnd() const noexcept { return reinterpret_cast(p.end()); } 8657: reverse_iterator rbegin() { return reverse_iterator(end()); } 8657: reverse_iterator rend() { return reverse_iterator(begin()); } 8657: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8657: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8657: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8657: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8657: iterator insert(iterator before, const T &t); 8657: iterator erase(iterator pos); 8657: iterator erase(iterator first, iterator last); 8657: 8657: 8657: typedef iterator Iterator; 8657: typedef const_iterator ConstIterator; 8657: inline int count() const { return p.size(); } 8657: inline int length() const { return p.size(); } 8657: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8657: inline const T& constFirst() const { return first(); } 8657: inline const T& first() const { do { } while ((false) && (!isEmpty())); return at(0); } 8657: T& last() { do { } while ((false) && (!isEmpty())); return *(--end()); } 8657: const T& last() const { do { } while ((false) && (!isEmpty())); return at(count() - 1); } 8657: inline const T& constLast() const { return last(); } 8657: inline void removeFirst() { do { } while ((false) && (!isEmpty())); erase(begin()); } 8657: inline void removeLast() { do { } while ((false) && (!isEmpty())); erase(--end()); } 8657: inline bool startsWith(const T &t) const { return !isEmpty() && first() == t; } 8657: inline bool endsWith(const T &t) const { return !isEmpty() && last() == t; } 8657: QList mid(int pos, int length = -1) const; 8657: 8657: T value(int i) const; 8657: T value(int i, const T &defaultValue) const; 8657: 8657: 8657: inline void push_back(const T &t) { append(t); } 8657: inline void push_front(const T &t) { prepend(t); } 8657: inline T& front() { return first(); } 8657: inline const T& front() const { return first(); } 8657: inline T& back() { return last(); } 8657: inline const T& back() const { return last(); } 8657: inline void pop_front() { removeFirst(); } 8657: inline void pop_back() { removeLast(); } 8657: inline bool empty() const { return isEmpty(); } 8657: typedef int size_type; 8657: typedef T value_type; 8657: typedef value_type *pointer; 8657: typedef const value_type *const_pointer; 8657: typedef value_type &reference; 8657: typedef const value_type &const_reference; 8657: 8657: typedef qptrdiff difference_type; 8657: 8657: 8657: QList &operator+=(const QList &l); 8657: inline QList operator+(const QList &l) const 8657: { QList n = *this; n += l; return n; } 8657: inline QList &operator+=(const T &t) 8657: { append(t); return *this; } 8657: inline QList &operator<< (const T &t) 8657: { append(t); return *this; } 8657: inline QList &operator<<(const QList &l) 8657: { *this += l; return *this; } 8657: 8657: QVector toVector() const; 8657: QSet toSet() const; 8657: 8657: static QList fromVector(const QVector &vector); 8657: static QList fromSet(const QSet &set); 8657: 8657: static inline QList fromStdList(const std::list &list) 8657: { QList tmp; std::copy(list.begin(), list.end(), std::back_inserter(tmp)); return tmp; } 8657: inline std::list toStdList() const 8657: { std::list tmp; std::copy(constBegin(), constEnd(), std::back_inserter(tmp)); return tmp; } 8657: 8657: private: 8657: Node *detach_helper_grow(int i, int n); 8657: void detach_helper(int alloc); 8657: void detach_helper(); 8657: void dealloc(QListData::Data *d); 8657: 8657: void node_construct(Node *n, const T &t); 8657: void node_destruct(Node *n); 8657: void node_copy(Node *from, Node *to, Node *src); 8657: void node_destruct(Node *from, Node *to); 8657: 8657: bool isValidIterator(const iterator &i) const noexcept 8657: { 8657: return (constBegin().i <= i.i) && (i.i <= constEnd().i); 8657: } 8657: 8657: private: 8657: inline bool op_eq_impl(const QList &other, QListData::NotArrayCompatibleLayout) const; 8657: inline bool op_eq_impl(const QList &other, QListData::ArrayCompatibleLayout) const; 8657: inline bool contains_impl(const T &, QListData::NotArrayCompatibleLayout) const; 8657: inline bool contains_impl(const T &, QListData::ArrayCompatibleLayout) const; 8657: inline int count_impl(const T &, QListData::NotArrayCompatibleLayout) const; 8657: inline int count_impl(const T &, QListData::ArrayCompatibleLayout) const; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline void QList::node_construct(Node *n, const T &t) 8657: { 8657: if (QTypeInfo::isLarge || QTypeInfo::isStatic) n->v = new T(t); 8657: else if (QTypeInfo::isComplex) new (n) T(t); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: else ::memcpy(n, static_cast(&t), sizeof(T)); 8657: 8657: } 8657: 8657: template 8657: inline void QList::node_destruct(Node *n) 8657: { 8657: if (QTypeInfo::isLarge || QTypeInfo::isStatic) delete reinterpret_cast(n->v); 8657: else if (QTypeInfo::isComplex) reinterpret_cast(n)->~T(); 8657: } 8657: 8657: template 8657: inline void QList::node_copy(Node *from, Node *to, Node *src) 8657: { 8657: Node *current = from; 8657: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8657: try { 8657: while(current != to) { 8657: current->v = new T(*reinterpret_cast(src->v)); 8657: ++current; 8657: ++src; 8657: } 8657: } catch (...) { 8657: while (current-- != from) 8657: delete reinterpret_cast(current->v); 8657: throw; 8657: } 8657: 8657: } else if (QTypeInfo::isComplex) { 8657: try { 8657: while(current != to) { 8657: new (current) T(*reinterpret_cast(src)); 8657: ++current; 8657: ++src; 8657: } 8657: } catch (...) { 8657: while (current-- != from) 8657: (reinterpret_cast(current))->~T(); 8657: throw; 8657: } 8657: } else { 8657: if (src != from && to - from > 0) 8657: memcpy(from, src, (to - from) * sizeof(Node)); 8657: } 8657: } 8657: 8657: template 8657: inline void QList::node_destruct(Node *from, Node *to) 8657: { 8657: if (QTypeInfo::isLarge || QTypeInfo::isStatic) 8657: while(from != to) --to, delete reinterpret_cast(to->v); 8657: else if (QTypeInfo::isComplex) 8657: while (from != to) --to, reinterpret_cast(to)->~T(); 8657: } 8657: 8657: template 8657: inline QList &QList::operator=(const QList &l) 8657: { 8657: if (d != l.d) { 8657: QList tmp(l); 8657: tmp.swap(*this); 8657: } 8657: return *this; 8657: } 8657: template 8657: inline typename QList::iterator QList::insert(iterator before, const T &t) 8657: { 8657: do { } while ((false) && (isValidIterator(before))); 8657: 8657: int iBefore = int(before.i - reinterpret_cast(p.begin())); 8657: Node *n = 0; 8657: if (d->ref.isShared()) 8657: n = detach_helper_grow(iBefore, 1); 8657: else 8657: n = reinterpret_cast(p.insert(iBefore)); 8657: try { 8657: node_construct(n, t); 8657: } catch (...) { 8657: p.remove(iBefore); 8657: throw; 8657: } 8657: return n; 8657: } 8657: template 8657: inline typename QList::iterator QList::erase(iterator it) 8657: { 8657: do { } while ((false) && (isValidIterator(it))); 8657: if (d->ref.isShared()) { 8657: int offset = int(it.i - reinterpret_cast(p.begin())); 8657: it = begin(); 8657: it += offset; 8657: } 8657: node_destruct(it.i); 8657: return reinterpret_cast(p.erase(reinterpret_cast(it.i))); 8657: } 8657: template 8657: inline const T &QList::at(int i) const 8657: { do { } while ((false) && (i >= 0 && i < p.size())); 8657: return reinterpret_cast(p.at(i))->t(); } 8657: template 8657: inline const T &QList::operator[](int i) const 8657: { do { } while ((false) && (i >= 0 && i < p.size())); 8657: return reinterpret_cast(p.at(i))->t(); } 8657: template 8657: inline T &QList::operator[](int i) 8657: { do { } while ((false) && (i >= 0 && i < p.size())); 8657: detach(); return reinterpret_cast(p.at(i))->t(); } 8657: template 8657: inline void QList::removeAt(int i) 8657: { if(i >= 0 && i < p.size()) { detach(); 8657: node_destruct(reinterpret_cast(p.at(i))); p.remove(i); } } 8657: template 8657: inline T QList::takeAt(int i) 8657: { do { } while ((false) && (i >= 0 && i < p.size())); 8657: detach(); Node *n = reinterpret_cast(p.at(i)); T t = n->t(); node_destruct(n); 8657: p.remove(i); return t; } 8657: template 8657: inline T QList::takeFirst() 8657: { T t = first(); removeFirst(); return t; } 8657: template 8657: inline T QList::takeLast() 8657: { T t = last(); removeLast(); return t; } 8657: 8657: template 8657: void QList::reserve(int alloc) 8657: { 8657: if (d->alloc < alloc) { 8657: if (d->ref.isShared()) 8657: detach_helper(alloc); 8657: else 8657: p.realloc(alloc); 8657: } 8657: } 8657: 8657: template 8657: void QList::append(const T &t) 8657: { 8657: if (d->ref.isShared()) { 8657: Node *n = detach_helper_grow(0x7fffffff, 1); 8657: try { 8657: node_construct(n, t); 8657: } catch (...) { 8657: --d->end; 8657: throw; 8657: } 8657: } else { 8657: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8657: Node *n = reinterpret_cast(p.append()); 8657: try { 8657: node_construct(n, t); 8657: } catch (...) { 8657: --d->end; 8657: throw; 8657: } 8657: } else { 8657: Node *n, copy; 8657: node_construct(©, t); 8657: try { 8657: n = reinterpret_cast(p.append());; 8657: } catch (...) { 8657: node_destruct(©); 8657: throw; 8657: } 8657: *n = copy; 8657: } 8657: } 8657: } 8657: 8657: template 8657: inline void QList::prepend(const T &t) 8657: { 8657: if (d->ref.isShared()) { 8657: Node *n = detach_helper_grow(0, 1); 8657: try { 8657: node_construct(n, t); 8657: } catch (...) { 8657: ++d->begin; 8657: throw; 8657: } 8657: } else { 8657: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8657: Node *n = reinterpret_cast(p.prepend()); 8657: try { 8657: node_construct(n, t); 8657: } catch (...) { 8657: ++d->begin; 8657: throw; 8657: } 8657: } else { 8657: Node *n, copy; 8657: node_construct(©, t); 8657: try { 8657: n = reinterpret_cast(p.prepend());; 8657: } catch (...) { 8657: node_destruct(©); 8657: throw; 8657: } 8657: *n = copy; 8657: } 8657: } 8657: } 8657: 8657: template 8657: inline void QList::insert(int i, const T &t) 8657: { 8657: if (d->ref.isShared()) { 8657: Node *n = detach_helper_grow(i, 1); 8657: try { 8657: node_construct(n, t); 8657: } catch (...) { 8657: p.remove(i); 8657: throw; 8657: } 8657: } else { 8657: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8657: Node *n = reinterpret_cast(p.insert(i)); 8657: try { 8657: node_construct(n, t); 8657: } catch (...) { 8657: p.remove(i); 8657: throw; 8657: } 8657: } else { 8657: Node *n, copy; 8657: node_construct(©, t); 8657: try { 8657: n = reinterpret_cast(p.insert(i));; 8657: } catch (...) { 8657: node_destruct(©); 8657: throw; 8657: } 8657: *n = copy; 8657: } 8657: } 8657: } 8657: 8657: template 8657: inline void QList::replace(int i, const T &t) 8657: { 8657: do { } while ((false) && (i >= 0 && i < p.size())); 8657: detach(); 8657: reinterpret_cast(p.at(i))->t() = t; 8657: } 8657: 8657: template 8657: inline void QList::swap(int i, int j) 8657: { 8657: do { } while ((false) && (i >= 0 && i < p.size() && j >= 0 && j < p.size())) 8657: ; 8657: detach(); 8657: std::swap(d->array[d->begin + i], d->array[d->begin + j]); 8657: } 8657: 8657: template 8657: inline void QList::move(int from, int to) 8657: { 8657: do { } while ((false) && (from >= 0 && from < p.size() && to >= 0 && to < p.size())) 8657: ; 8657: detach(); 8657: p.move(from, to); 8657: } 8657: 8657: template 8657: QList QList::mid(int pos, int alength) const 8657: { 8657: using namespace QtPrivate; 8657: switch (QContainerImplHelper::mid(size(), &pos, &alength)) { 8657: case QContainerImplHelper::Null: 8657: case QContainerImplHelper::Empty: 8657: return QList(); 8657: case QContainerImplHelper::Full: 8657: return *this; 8657: case QContainerImplHelper::Subset: 8657: break; 8657: } 8657: 8657: QList cpy; 8657: if (alength <= 0) 8657: return cpy; 8657: cpy.reserve(alength); 8657: cpy.d->end = alength; 8657: try { 8657: cpy.node_copy(reinterpret_cast(cpy.p.begin()), 8657: reinterpret_cast(cpy.p.end()), 8657: reinterpret_cast(p.begin() + pos)); 8657: } catch (...) { 8657: 8657: cpy.d->end = 0; 8657: throw; 8657: } 8657: return cpy; 8657: } 8657: 8657: template 8657: T QList::value(int i) const 8657: { 8657: if (i < 0 || i >= p.size()) { 8657: return T(); 8657: } 8657: return reinterpret_cast(p.at(i))->t(); 8657: } 8657: 8657: template 8657: T QList::value(int i, const T& defaultValue) const 8657: { 8657: return ((i < 0 || i >= p.size()) ? defaultValue : reinterpret_cast(p.at(i))->t()); 8657: } 8657: 8657: template 8657: typename QList::Node *QList::detach_helper_grow(int i, int c) 8657: { 8657: Node *n = reinterpret_cast(p.begin()); 8657: QListData::Data *x = p.detach_grow(&i, c); 8657: try { 8657: node_copy(reinterpret_cast(p.begin()), 8657: reinterpret_cast(p.begin() + i), n); 8657: } catch (...) { 8657: p.dispose(); 8657: d = x; 8657: throw; 8657: } 8657: try { 8657: node_copy(reinterpret_cast(p.begin() + i + c), 8657: reinterpret_cast(p.end()), n + i); 8657: } catch (...) { 8657: node_destruct(reinterpret_cast(p.begin()), 8657: reinterpret_cast(p.begin() + i)); 8657: p.dispose(); 8657: d = x; 8657: throw; 8657: } 8657: 8657: if (!x->ref.deref()) 8657: dealloc(x); 8657: 8657: return reinterpret_cast(p.begin() + i); 8657: } 8657: 8657: template 8657: void QList::detach_helper(int alloc) 8657: { 8657: Node *n = reinterpret_cast(p.begin()); 8657: QListData::Data *x = p.detach(alloc); 8657: try { 8657: node_copy(reinterpret_cast(p.begin()), reinterpret_cast(p.end()), n); 8657: } catch (...) { 8657: p.dispose(); 8657: d = x; 8657: throw; 8657: } 8657: 8657: if (!x->ref.deref()) 8657: dealloc(x); 8657: } 8657: 8657: template 8657: void QList::detach_helper() 8657: { 8657: detach_helper(d->alloc); 8657: } 8657: 8657: template 8657: QList::QList(const QList &l) 8657: : QListSpecialMethods(l), d(l.d) 8657: { 8657: if (!d->ref.ref()) { 8657: p.detach(d->alloc); 8657: 8657: try { 8657: node_copy(reinterpret_cast(p.begin()), 8657: reinterpret_cast(p.end()), 8657: reinterpret_cast(l.p.begin())); 8657: } catch (...) { 8657: QListData::dispose(d); 8657: throw; 8657: } 8657: } 8657: } 8657: 8657: template 8657: QList::~QList() 8657: { 8657: if (!d->ref.deref()) 8657: dealloc(d); 8657: } 8657: 8657: template 8657: bool QList::operator==(const QList &l) const 8657: { 8657: if (d == l.d) 8657: return true; 8657: if (p.size() != l.p.size()) 8657: return false; 8657: return this->op_eq_impl(l, MemoryLayout()); 8657: } 8657: 8657: template 8657: inline bool QList::op_eq_impl(const QList &l, QListData::NotArrayCompatibleLayout) const 8657: { 8657: Node *i = reinterpret_cast(p.begin()); 8657: Node *e = reinterpret_cast(p.end()); 8657: Node *li = reinterpret_cast(l.p.begin()); 8657: for (; i != e; ++i, ++li) { 8657: if (!(i->t() == li->t())) 8657: return false; 8657: } 8657: return true; 8657: } 8657: 8657: template 8657: inline bool QList::op_eq_impl(const QList &l, QListData::ArrayCompatibleLayout) const 8657: { 8657: const T *lb = reinterpret_cast(l.p.begin()); 8657: const T *b = reinterpret_cast(p.begin()); 8657: const T *e = reinterpret_cast(p.end()); 8657: return std::equal(b, e, (lb)); 8657: } 8657: 8657: template 8657: void QList::dealloc(QListData::Data *data) 8657: { 8657: node_destruct(reinterpret_cast(data->array + data->begin), 8657: reinterpret_cast(data->array + data->end)); 8657: QListData::dispose(data); 8657: } 8657: 8657: 8657: template 8657: void QList::clear() 8657: { 8657: *this = QList(); 8657: } 8657: 8657: template 8657: int QList::removeAll(const T &_t) 8657: { 8657: int index = indexOf(_t); 8657: if (index == -1) 8657: return 0; 8657: 8657: const T t = _t; 8657: detach(); 8657: 8657: Node *i = reinterpret_cast(p.at(index)); 8657: Node *e = reinterpret_cast(p.end()); 8657: Node *n = i; 8657: node_destruct(i); 8657: while (++i != e) { 8657: if (i->t() == t) 8657: node_destruct(i); 8657: else 8657: *n++ = *i; 8657: } 8657: 8657: int removedCount = int(e - n); 8657: d->end -= removedCount; 8657: return removedCount; 8657: } 8657: 8657: template 8657: bool QList::removeOne(const T &_t) 8657: { 8657: int index = indexOf(_t); 8657: if (index != -1) { 8657: removeAt(index); 8657: return true; 8657: } 8657: return false; 8657: } 8657: 8657: template 8657: typename QList::iterator QList::erase(typename QList::iterator afirst, 8657: typename QList::iterator alast) 8657: { 8657: do { } while ((false) && (isValidIterator(afirst))); 8657: do { } while ((false) && (isValidIterator(alast))); 8657: 8657: if (d->ref.isShared()) { 8657: 8657: int offsetfirst = int(afirst.i - reinterpret_cast(p.begin())); 8657: int offsetlast = int(alast.i - reinterpret_cast(p.begin())); 8657: afirst = begin(); 8657: alast = afirst; 8657: afirst += offsetfirst; 8657: alast += offsetlast; 8657: } 8657: 8657: for (Node *n = afirst.i; n < alast.i; ++n) 8657: node_destruct(n); 8657: int idx = afirst - begin(); 8657: p.remove(idx, alast - afirst); 8657: return begin() + idx; 8657: } 8657: 8657: template 8657: QList &QList::operator+=(const QList &l) 8657: { 8657: if (!l.isEmpty()) { 8657: if (d == &QListData::shared_null) { 8657: *this = l; 8657: } else { 8657: Node *n = (d->ref.isShared()) 8657: ? detach_helper_grow(0x7fffffff, l.size()) 8657: : reinterpret_cast(p.append(l.p)); 8657: try { 8657: node_copy(n, reinterpret_cast(p.end()), 8657: reinterpret_cast(l.p.begin())); 8657: } catch (...) { 8657: 8657: d->end -= int(reinterpret_cast(p.end()) - n); 8657: throw; 8657: } 8657: } 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: inline void QList::append(const QList &t) 8657: { 8657: *this += t; 8657: } 8657: 8657: template 8657: int QList::indexOf(const T &t, int from) const 8657: { 8657: if (from < 0) 8657: from = qMax(from + p.size(), 0); 8657: if (from < p.size()) { 8657: Node *n = reinterpret_cast(p.at(from -1)); 8657: Node *e = reinterpret_cast(p.end()); 8657: while (++n != e) 8657: if (n->t() == t) 8657: return int(n - reinterpret_cast(p.begin())); 8657: } 8657: return -1; 8657: } 8657: 8657: template 8657: int QList::lastIndexOf(const T &t, int from) const 8657: { 8657: if (from < 0) 8657: from += p.size(); 8657: else if (from >= p.size()) 8657: from = p.size()-1; 8657: if (from >= 0) { 8657: Node *b = reinterpret_cast(p.begin()); 8657: Node *n = reinterpret_cast(p.at(from + 1)); 8657: while (n-- != b) { 8657: if (n->t() == t) 8657: return n - b; 8657: } 8657: } 8657: return -1; 8657: } 8657: 8657: template 8657: bool QList::contains(const T &t) const 8657: { 8657: return contains_impl(t, MemoryLayout()); 8657: } 8657: 8657: template 8657: inline bool QList::contains_impl(const T &t, QListData::NotArrayCompatibleLayout) const 8657: { 8657: Node *e = reinterpret_cast(p.end()); 8657: Node *i = reinterpret_cast(p.begin()); 8657: for (; i != e; ++i) 8657: if (i->t() == t) 8657: return true; 8657: return false; 8657: } 8657: 8657: template 8657: inline bool QList::contains_impl(const T &t, QListData::ArrayCompatibleLayout) const 8657: { 8657: const T *b = reinterpret_cast(p.begin()); 8657: const T *e = reinterpret_cast(p.end()); 8657: return std::find(b, e, t) != e; 8657: } 8657: 8657: template 8657: int QList::count(const T &t) const 8657: { 8657: return this->count_impl(t, MemoryLayout()); 8657: } 8657: 8657: template 8657: inline int QList::count_impl(const T &t, QListData::NotArrayCompatibleLayout) const 8657: { 8657: int c = 0; 8657: Node *e = reinterpret_cast(p.end()); 8657: Node *i = reinterpret_cast(p.begin()); 8657: for (; i != e; ++i) 8657: if (i->t() == t) 8657: ++c; 8657: return c; 8657: } 8657: 8657: template 8657: inline int QList::count_impl(const T &t, QListData::ArrayCompatibleLayout) const 8657: { 8657: return int(std::count(reinterpret_cast(p.begin()), 8657: reinterpret_cast(p.end()), 8657: t)); 8657: } 8657: 8657: template class QListIterator { typedef typename QList::const_iterator const_iterator; QList c; const_iterator i; public: inline QListIterator(const QList &container) : c(container), i(c.constBegin()) {} inline QListIterator &operator=(const QList &container) { c = container; i = c.constBegin(); return *this; } inline void toFront() { i = c.constBegin(); } inline void toBack() { i = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline const T &next() { return *i++; } inline const T &peekNext() const { return *i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline const T &previous() { return *--i; } inline const T &peekPrevious() const { const_iterator p = i; return *--p; } inline bool findNext(const T &t) { while (i != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(--i) == t) return true; return false; } }; 8657: template class QMutableListIterator { typedef typename QList::iterator iterator; typedef typename QList::const_iterator const_iterator; QList *c; iterator i, n; inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } public: inline QMutableListIterator(QList &container) : c(&container) { i = c->begin(); n = c->end(); } inline QMutableListIterator &operator=(QList &container) { c = &container; i = c->begin(); n = c->end(); return *this; } inline void toFront() { i = c->begin(); n = c->end(); } inline void toBack() { i = c->end(); n = i; } inline bool hasNext() const { return c->constEnd() != const_iterator(i); } inline T &next() { n = i++; return *n; } inline T &peekNext() const { return *i; } inline bool hasPrevious() const { return c->constBegin() != const_iterator(i); } inline T &previous() { n = --i; return *n; } inline T &peekPrevious() const { iterator p = i; return *--p; } inline void remove() { if (c->constEnd() != const_iterator(n)) { i = c->erase(n); n = c->end(); } } inline void setValue(const T &t) const { if (c->constEnd() != const_iterator(n)) *n = t; } inline T &value() { do { } while ((false) && (item_exists())); return *n; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline void insert(const T &t) { n = i = c->insert(i, t); ++i; } inline bool findNext(const T &t) { while (c->constEnd() != const_iterator(n = i)) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (c->constBegin() != const_iterator(i)) if (*(n = --i) == t) return true; n = c->end(); return false; } }; 8657: 8657: template 8657: uint qHash(const QList &key, uint seed = 0) 8657: noexcept(noexcept(qHashRange(key.cbegin(), key.cend(), seed))) 8657: { 8657: return qHashRange(key.cbegin(), key.cend(), seed); 8657: } 8657: 8657: template 8657: bool operator<(const QList &lhs, const QList &rhs) 8657: noexcept(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()))) 8657: 8657: { 8657: return std::lexicographical_compare(lhs.begin(), lhs.end(), 8657: rhs.begin(), rhs.end()); 8657: } 8657: 8657: template 8657: inline bool operator>(const QList &lhs, const QList &rhs) 8657: noexcept(noexcept(lhs < rhs)) 8657: { 8657: return rhs < lhs; 8657: } 8657: 8657: template 8657: inline bool operator<=(const QList &lhs, const QList &rhs) 8657: noexcept(noexcept(lhs < rhs)) 8657: { 8657: return !(lhs > rhs); 8657: } 8657: 8657: template 8657: inline bool operator>=(const QList &lhs, const QList &rhs) 8657: noexcept(noexcept(lhs < rhs)) 8657: { 8657: return !(lhs < rhs); 8657: } 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearraylist.h" 1 3 4 8657: # 42 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearraylist.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 1 3 4 8657: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearraylist.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef QListIterator QByteArrayListIterator; 8657: typedef QMutableListIterator QMutableByteArrayListIterator; 8657: 8657: typedef QList QByteArrayList; 8657: 8657: namespace QtPrivate { 8657: QByteArray __attribute__((visibility("default"))) QByteArrayList_join(const QByteArrayList *that, const char *separator, int separatorLength); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: template <> struct QListSpecialMethods 8657: 8657: { 8657: 8657: protected: 8657: ~QListSpecialMethods() {} 8657: 8657: public: 8657: inline QByteArray join() const 8657: { return QtPrivate::QByteArrayList_join(self(), nullptr, 0); } 8657: inline QByteArray join(const QByteArray &sep) const 8657: { return QtPrivate::QByteArrayList_join(self(), sep.constData(), sep.size()); } 8657: inline QByteArray join(char sep) const 8657: { return QtPrivate::QByteArrayList_join(self(), &sep, 1); } 8657: 8657: private: 8657: typedef QList Self; 8657: Self *self() { return static_cast(this); } 8657: const Self *self() const { return static_cast(this); } 8657: }; 8657: 8657: 8657: # 1094 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringlist.h" 1 3 4 8657: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringlist.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qregexp.h" 1 3 4 8657: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qregexp.h" 3 4 8657: 8657: 8657: 8657: struct QRegExpPrivate; 8657: class QStringList; 8657: class QRegExp; 8657: 8657: __attribute__((visibility("default"))) uint qHash(const QRegExp &key, uint seed = 0) noexcept; 8657: 8657: class __attribute__((visibility("default"))) QRegExp 8657: { 8657: public: 8657: enum PatternSyntax { 8657: RegExp, 8657: Wildcard, 8657: FixedString, 8657: RegExp2, 8657: WildcardUnix, 8657: W3CXmlSchema11 }; 8657: enum CaretMode { CaretAtZero, CaretAtOffset, CaretWontMatch }; 8657: 8657: QRegExp(); 8657: explicit QRegExp(const QString &pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive, 8657: PatternSyntax syntax = RegExp); 8657: QRegExp(const QRegExp &rx); 8657: ~QRegExp(); 8657: QRegExp &operator=(const QRegExp &rx); 8657: 8657: QRegExp &operator=(QRegExp &&other) noexcept { swap(other); return *this; } 8657: 8657: void swap(QRegExp &other) noexcept { qSwap(priv, other.priv); } 8657: 8657: bool operator==(const QRegExp &rx) const; 8657: inline bool operator!=(const QRegExp &rx) const { return !operator==(rx); } 8657: 8657: bool isEmpty() const; 8657: bool isValid() const; 8657: QString pattern() const; 8657: void setPattern(const QString &pattern); 8657: Qt::CaseSensitivity caseSensitivity() const; 8657: void setCaseSensitivity(Qt::CaseSensitivity cs); 8657: PatternSyntax patternSyntax() const; 8657: void setPatternSyntax(PatternSyntax syntax); 8657: 8657: bool isMinimal() const; 8657: void setMinimal(bool minimal); 8657: 8657: bool exactMatch(const QString &str) const; 8657: 8657: int indexIn(const QString &str, int offset = 0, CaretMode caretMode = CaretAtZero) const; 8657: int lastIndexIn(const QString &str, int offset = -1, CaretMode caretMode = CaretAtZero) const; 8657: int matchedLength() const; 8657: 8657: int captureCount() const; 8657: QStringList capturedTexts() const; 8657: QStringList capturedTexts(); 8657: QString cap(int nth = 0) const; 8657: QString cap(int nth = 0); 8657: int pos(int nth = 0) const; 8657: int pos(int nth = 0); 8657: QString errorString() const; 8657: QString errorString(); 8657: 8657: 8657: static QString escape(const QString &str); 8657: 8657: friend __attribute__((visibility("default"))) uint qHash(const QRegExp &key, uint seed) noexcept; 8657: 8657: private: 8657: QRegExpPrivate *priv; 8657: }; 8657: 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QRegExp)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QRegExp >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QRegExp) }; static inline const char *name() { return "QRegExp"; } }; 8657: 8657: 8657: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &out, const QRegExp ®Exp); 8657: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &in, QRegExp ®Exp); 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QRegExp &); 8657: 8657: 8657: 8657: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringlist.h" 2 3 4 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringmatcher.h" 1 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringmatcher.h" 3 4 8657: 8657: 8657: 8657: class QStringMatcherPrivate; 8657: 8657: class __attribute__((visibility("default"))) QStringMatcher 8657: { 8657: public: 8657: QStringMatcher(); 8657: explicit QStringMatcher(const QString &pattern, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: QStringMatcher(const QChar *uc, int len, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: QStringMatcher(const QStringMatcher &other); 8657: ~QStringMatcher(); 8657: 8657: QStringMatcher &operator=(const QStringMatcher &other); 8657: 8657: void setPattern(const QString &pattern); 8657: void setCaseSensitivity(Qt::CaseSensitivity cs); 8657: 8657: int indexIn(const QString &str, int from = 0) const; 8657: int indexIn(const QChar *str, int length, int from = 0) const; 8657: QString pattern() const; 8657: inline Qt::CaseSensitivity caseSensitivity() const { return q_cs; } 8657: 8657: private: 8657: QStringMatcherPrivate *d_ptr; 8657: QString q_pattern; 8657: Qt::CaseSensitivity q_cs; 8657: struct Data { 8657: uchar q_skiptable[256]; 8657: const QChar *uc; 8657: int len; 8657: }; 8657: union { 8657: uint q_data[256]; 8657: Data p; 8657: }; 8657: }; 8657: 8657: 8657: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringlist.h" 2 3 4 8657: 8657: 8657: 8657: class QRegExp; 8657: class QRegularExpression; 8657: 8657: typedef QListIterator QStringListIterator; 8657: typedef QMutableListIterator QMutableStringListIterator; 8657: 8657: class QStringList; 8657: 8657: 8657: 8657: 8657: template <> struct QListSpecialMethods 8657: 8657: { 8657: 8657: protected: 8657: ~QListSpecialMethods() {} 8657: 8657: public: 8657: inline void sort(Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: inline int removeDuplicates(); 8657: 8657: inline QString join(const QString &sep) const; 8657: inline QString join(QLatin1String sep) const; 8657: inline QString join(QChar sep) const; 8657: 8657: inline QStringList filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: inline QStringList &replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: 8657: 8657: inline QStringList filter(const QRegExp &rx) const; 8657: inline QStringList &replaceInStrings(const QRegExp &rx, const QString &after); 8657: 8657: 8657: 8657: 8657: inline QStringList filter(const QRegularExpression &re) const; 8657: inline QStringList &replaceInStrings(const QRegularExpression &re, const QString &after); 8657: 8657: 8657: 8657: 8657: private: 8657: inline QStringList *self(); 8657: inline const QStringList *self() const; 8657: }; 8657: 8657: 8657: class QStringList : public QList 8657: { 8657: 8657: public: 8657: inline QStringList() noexcept { } 8657: inline explicit QStringList(const QString &i) { append(i); } 8657: inline QStringList(const QList &l) : QList(l) { } 8657: 8657: inline QStringList(QList &&l) noexcept : QList(std::move(l)) { } 8657: 8657: 8657: inline QStringList(std::initializer_list args) : QList(args) { } 8657: 8657: 8657: QStringList &operator=(const QList &other) 8657: { QList::operator=(other); return *this; } 8657: 8657: QStringList &operator=(QList &&other) noexcept 8657: { QList::operator=(std::move(other)); return *this; } 8657: 8657: 8657: inline bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: 8657: inline QStringList operator+(const QStringList &other) const 8657: { QStringList n = *this; n += other; return n; } 8657: inline QStringList &operator<<(const QString &str) 8657: { append(str); return *this; } 8657: inline QStringList &operator<<(const QStringList &l) 8657: { *this += l; return *this; } 8657: inline QStringList &operator<<(const QList &l) 8657: { *this += l; return *this; } 8657: 8657: 8657: inline int indexOf(const QRegExp &rx, int from = 0) const; 8657: inline int lastIndexOf(const QRegExp &rx, int from = -1) const; 8657: inline int indexOf(QRegExp &rx, int from = 0) const; 8657: inline int lastIndexOf(QRegExp &rx, int from = -1) const; 8657: 8657: 8657: 8657: 8657: inline int indexOf(const QRegularExpression &re, int from = 0) const; 8657: inline int lastIndexOf(const QRegularExpression &re, int from = -1) const; 8657: 8657: 8657: 8657: using QList::indexOf; 8657: using QList::lastIndexOf; 8657: }; 8657: 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QStringList)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QStringList >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QStringList) }; static inline const char *name() { return "QStringList"; } }; 8657: 8657: 8657: inline QStringList *QListSpecialMethods::self() 8657: { return static_cast(this); } 8657: inline const QStringList *QListSpecialMethods::self() const 8657: { return static_cast(this); } 8657: 8657: namespace QtPrivate { 8657: void __attribute__((visibility("default"))) QStringList_sort(QStringList *that, Qt::CaseSensitivity cs); 8657: int __attribute__((visibility("default"))) QStringList_removeDuplicates(QStringList *that); 8657: QString __attribute__((visibility("default"))) QStringList_join(const QStringList *that, const QChar *sep, int seplen); 8657: __attribute__((visibility("default"))) QString QStringList_join(const QStringList &list, QLatin1String sep); 8657: QStringList __attribute__((visibility("default"))) QStringList_filter(const QStringList *that, const QString &str, 8657: Qt::CaseSensitivity cs); 8657: 8657: bool __attribute__((visibility("default"))) QStringList_contains(const QStringList *that, const QString &str, Qt::CaseSensitivity cs); 8657: void __attribute__((visibility("default"))) QStringList_replaceInStrings(QStringList *that, const QString &before, const QString &after, 8657: Qt::CaseSensitivity cs); 8657: 8657: 8657: void __attribute__((visibility("default"))) QStringList_replaceInStrings(QStringList *that, const QRegExp &rx, const QString &after); 8657: QStringList __attribute__((visibility("default"))) QStringList_filter(const QStringList *that, const QRegExp &re); 8657: int __attribute__((visibility("default"))) QStringList_indexOf(const QStringList *that, const QRegExp &rx, int from); 8657: int __attribute__((visibility("default"))) QStringList_lastIndexOf(const QStringList *that, const QRegExp &rx, int from); 8657: int __attribute__((visibility("default"))) QStringList_indexOf(const QStringList *that, QRegExp &rx, int from); 8657: int __attribute__((visibility("default"))) QStringList_lastIndexOf(const QStringList *that, QRegExp &rx, int from); 8657: 8657: 8657: 8657: 8657: void __attribute__((visibility("default"))) QStringList_replaceInStrings(QStringList *that, const QRegularExpression &rx, const QString &after); 8657: QStringList __attribute__((visibility("default"))) QStringList_filter(const QStringList *that, const QRegularExpression &re); 8657: int __attribute__((visibility("default"))) QStringList_indexOf(const QStringList *that, const QRegularExpression &re, int from); 8657: int __attribute__((visibility("default"))) QStringList_lastIndexOf(const QStringList *that, const QRegularExpression &re, int from); 8657: 8657: 8657: } 8657: 8657: inline void QListSpecialMethods::sort(Qt::CaseSensitivity cs) 8657: { 8657: QtPrivate::QStringList_sort(self(), cs); 8657: } 8657: 8657: inline int QListSpecialMethods::removeDuplicates() 8657: { 8657: return QtPrivate::QStringList_removeDuplicates(self()); 8657: } 8657: 8657: inline QString QListSpecialMethods::join(const QString &sep) const 8657: { 8657: return QtPrivate::QStringList_join(self(), sep.constData(), sep.length()); 8657: } 8657: 8657: QString QListSpecialMethods::join(QLatin1String sep) const 8657: { 8657: return QtPrivate::QStringList_join(*self(), sep); 8657: } 8657: 8657: inline QString QListSpecialMethods::join(QChar sep) const 8657: { 8657: return QtPrivate::QStringList_join(self(), &sep, 1); 8657: } 8657: 8657: inline QStringList QListSpecialMethods::filter(const QString &str, Qt::CaseSensitivity cs) const 8657: { 8657: return QtPrivate::QStringList_filter(self(), str, cs); 8657: } 8657: 8657: inline bool QStringList::contains(const QString &str, Qt::CaseSensitivity cs) const 8657: { 8657: return QtPrivate::QStringList_contains(this, str, cs); 8657: } 8657: 8657: inline QStringList &QListSpecialMethods::replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs) 8657: { 8657: QtPrivate::QStringList_replaceInStrings(self(), before, after, cs); 8657: return *self(); 8657: } 8657: 8657: inline QStringList operator+(const QList &one, const QStringList &other) 8657: { 8657: QStringList n = one; 8657: n += other; 8657: return n; 8657: } 8657: 8657: 8657: inline QStringList &QListSpecialMethods::replaceInStrings(const QRegExp &rx, const QString &after) 8657: { 8657: QtPrivate::QStringList_replaceInStrings(self(), rx, after); 8657: return *self(); 8657: } 8657: 8657: inline QStringList QListSpecialMethods::filter(const QRegExp &rx) const 8657: { 8657: return QtPrivate::QStringList_filter(self(), rx); 8657: } 8657: 8657: inline int QStringList::indexOf(const QRegExp &rx, int from) const 8657: { 8657: return QtPrivate::QStringList_indexOf(this, rx, from); 8657: } 8657: 8657: inline int QStringList::lastIndexOf(const QRegExp &rx, int from) const 8657: { 8657: return QtPrivate::QStringList_lastIndexOf(this, rx, from); 8657: } 8657: 8657: inline int QStringList::indexOf(QRegExp &rx, int from) const 8657: { 8657: return QtPrivate::QStringList_indexOf(this, rx, from); 8657: } 8657: 8657: inline int QStringList::lastIndexOf(QRegExp &rx, int from) const 8657: { 8657: return QtPrivate::QStringList_lastIndexOf(this, rx, from); 8657: } 8657: 8657: 8657: 8657: 8657: inline QStringList &QListSpecialMethods::replaceInStrings(const QRegularExpression &rx, const QString &after) 8657: { 8657: QtPrivate::QStringList_replaceInStrings(self(), rx, after); 8657: return *self(); 8657: } 8657: 8657: inline QStringList QListSpecialMethods::filter(const QRegularExpression &rx) const 8657: { 8657: return QtPrivate::QStringList_filter(self(), rx); 8657: } 8657: 8657: inline int QStringList::indexOf(const QRegularExpression &rx, int from) const 8657: { 8657: return QtPrivate::QStringList_indexOf(this, rx, from); 8657: } 8657: 8657: inline int QStringList::lastIndexOf(const QRegularExpression &rx, int from) const 8657: { 8657: return QtPrivate::QStringList_lastIndexOf(this, rx, from); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: # 1095 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 2 3 4 8657: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 1 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 1 3 4 8657: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 2 3 4 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvarlengtharray.h" 1 3 4 8657: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvarlengtharray.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcontainerfwd.h" 1 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcontainerfwd.h" 3 4 8657: 8657: 8657: 8657: template class QCache; 8657: template class QHash; 8657: template class QLinkedList; 8657: template class QList; 8657: template class QMap; 8657: template class QMultiHash; 8657: template class QMultiMap; 8657: template struct QPair; 8657: template class QQueue; 8657: template class QSet; 8657: template class QStack; 8657: template class QVarLengthArray; 8657: template class QVector; 8657: 8657: 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvarlengtharray.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8657: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvarlengtharray.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: class QPodList; 8657: 8657: 8657: template 8657: class QVarLengthArray 8657: { 8657: public: 8657: inline explicit QVarLengthArray(int size = 0); 8657: 8657: inline QVarLengthArray(const QVarLengthArray &other) 8657: : a(Prealloc), s(0), ptr(reinterpret_cast(array)) 8657: { 8657: append(other.constData(), other.size()); 8657: } 8657: 8657: 8657: QVarLengthArray(std::initializer_list args) 8657: : a(Prealloc), s(0), ptr(reinterpret_cast(array)) 8657: { 8657: if (args.size()) 8657: append(args.begin(), int(args.size())); 8657: } 8657: 8657: 8657: inline ~QVarLengthArray() { 8657: if (QTypeInfo::isComplex) { 8657: T *i = ptr + s; 8657: while (i-- != ptr) 8657: i->~T(); 8657: } 8657: if (ptr != reinterpret_cast(array)) 8657: free(ptr); 8657: } 8657: inline QVarLengthArray &operator=(const QVarLengthArray &other) 8657: { 8657: if (this != &other) { 8657: clear(); 8657: append(other.constData(), other.size()); 8657: } 8657: return *this; 8657: } 8657: 8657: 8657: QVarLengthArray &operator=(std::initializer_list list) 8657: { 8657: resize(list.size()); 8657: std::copy(list.begin(), list.end(), 8657: (this->begin())); 8657: return *this; 8657: } 8657: 8657: 8657: inline void removeLast() { 8657: do { } while ((false) && (s > 0)); 8657: realloc(s - 1, a); 8657: } 8657: inline int size() const { return s; } 8657: inline int count() const { return s; } 8657: inline int length() const { return s; } 8657: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8657: inline const T& first() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8657: T& last() { do { } while ((false) && (!isEmpty())); return *(end() - 1); } 8657: const T& last() const { do { } while ((false) && (!isEmpty())); return *(end() - 1); } 8657: inline bool isEmpty() const { return (s == 0); } 8657: inline void resize(int size); 8657: inline void clear() { resize(0); } 8657: inline void squeeze(); 8657: 8657: inline int capacity() const { return a; } 8657: inline void reserve(int size); 8657: 8657: inline int indexOf(const T &t, int from = 0) const; 8657: inline int lastIndexOf(const T &t, int from = -1) const; 8657: inline bool contains(const T &t) const; 8657: 8657: inline T &operator[](int idx) { 8657: do { } while ((false) && (idx >= 0 && idx < s)); 8657: return ptr[idx]; 8657: } 8657: inline const T &operator[](int idx) const { 8657: do { } while ((false) && (idx >= 0 && idx < s)); 8657: return ptr[idx]; 8657: } 8657: inline const T &at(int idx) const { return operator[](idx); } 8657: 8657: T value(int i) const; 8657: T value(int i, const T &defaultValue) const; 8657: 8657: inline void append(const T &t) { 8657: if (s == a) { 8657: T copy(t); 8657: realloc(s, s<<1); 8657: const int idx = s++; 8657: if (QTypeInfo::isComplex) { 8657: new (ptr + idx) T(std::move(copy)); 8657: } else { 8657: ptr[idx] = std::move(copy); 8657: } 8657: } else { 8657: const int idx = s++; 8657: if (QTypeInfo::isComplex) { 8657: new (ptr + idx) T(t); 8657: } else { 8657: ptr[idx] = t; 8657: } 8657: } 8657: } 8657: 8657: void append(T &&t) { 8657: if (s == a) 8657: realloc(s, s << 1); 8657: const int idx = s++; 8657: if (QTypeInfo::isComplex) 8657: new (ptr + idx) T(std::move(t)); 8657: else 8657: ptr[idx] = std::move(t); 8657: } 8657: 8657: void append(const T *buf, int size); 8657: inline QVarLengthArray &operator<<(const T &t) 8657: { append(t); return *this; } 8657: inline QVarLengthArray &operator+=(const T &t) 8657: { append(t); return *this; } 8657: 8657: void prepend(const T &t); 8657: void insert(int i, const T &t); 8657: void insert(int i, int n, const T &t); 8657: void replace(int i, const T &t); 8657: void remove(int i); 8657: void remove(int i, int n); 8657: 8657: 8657: inline T *data() { return ptr; } 8657: inline const T *data() const { return ptr; } 8657: inline const T * constData() const { return ptr; } 8657: typedef int size_type; 8657: typedef T value_type; 8657: typedef value_type *pointer; 8657: typedef const value_type *const_pointer; 8657: typedef value_type &reference; 8657: typedef const value_type &const_reference; 8657: typedef qptrdiff difference_type; 8657: 8657: 8657: typedef T* iterator; 8657: typedef const T* const_iterator; 8657: typedef std::reverse_iterator reverse_iterator; 8657: typedef std::reverse_iterator const_reverse_iterator; 8657: 8657: inline iterator begin() { return ptr; } 8657: inline const_iterator begin() const { return ptr; } 8657: inline const_iterator cbegin() const { return ptr; } 8657: inline const_iterator constBegin() const { return ptr; } 8657: inline iterator end() { return ptr + s; } 8657: inline const_iterator end() const { return ptr + s; } 8657: inline const_iterator cend() const { return ptr + s; } 8657: inline const_iterator constEnd() const { return ptr + s; } 8657: reverse_iterator rbegin() { return reverse_iterator(end()); } 8657: reverse_iterator rend() { return reverse_iterator(begin()); } 8657: const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8657: const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8657: const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); } 8657: const_reverse_iterator crend() const { return const_reverse_iterator(begin()); } 8657: iterator insert(const_iterator before, int n, const T &x); 8657: inline iterator insert(const_iterator before, const T &x) { return insert(before, 1, x); } 8657: iterator erase(const_iterator begin, const_iterator end); 8657: inline iterator erase(const_iterator pos) { return erase(pos, pos+1); } 8657: 8657: 8657: inline bool empty() const { return isEmpty(); } 8657: inline void push_back(const T &t) { append(t); } 8657: void push_back(T &&t) { append(std::move(t)); } 8657: inline void pop_back() { removeLast(); } 8657: inline T &front() { return first(); } 8657: inline const T &front() const { return first(); } 8657: inline T &back() { return last(); } 8657: inline const T &back() const { return last(); } 8657: 8657: private: 8657: friend class QPodList; 8657: void realloc(int size, int alloc); 8657: 8657: int a; 8657: int s; 8657: T *ptr; 8657: union { 8657: char array[Prealloc * sizeof(T)]; 8657: qint64 q_for_alignment_1; 8657: double q_for_alignment_2; 8657: }; 8657: 8657: bool isValidIterator(const const_iterator &i) const 8657: { 8657: return (i <= constEnd()) && (constBegin() <= i); 8657: } 8657: }; 8657: 8657: template 8657: inline QVarLengthArray::QVarLengthArray(int asize) 8657: : s(asize) { 8657: static_assert(bool(Prealloc > 0), "QVarLengthArray Prealloc must be greater than 0."); 8657: do { } while ((false) && (s >= 0)); 8657: if (s > Prealloc) { 8657: ptr = reinterpret_cast(malloc(s * sizeof(T))); 8657: do { if (!(ptr)) qBadAlloc(); } while (false); 8657: a = s; 8657: } else { 8657: ptr = reinterpret_cast(array); 8657: a = Prealloc; 8657: } 8657: if (QTypeInfo::isComplex) { 8657: T *i = ptr + s; 8657: while (i != ptr) 8657: new (--i) T; 8657: } 8657: } 8657: 8657: template 8657: inline void QVarLengthArray::resize(int asize) 8657: { realloc(asize, qMax(asize, a)); } 8657: 8657: template 8657: inline void QVarLengthArray::reserve(int asize) 8657: { if (asize > a) realloc(s, asize); } 8657: 8657: template 8657: inline int QVarLengthArray::indexOf(const T &t, int from) const 8657: { 8657: if (from < 0) 8657: from = qMax(from + s, 0); 8657: if (from < s) { 8657: T *n = ptr + from - 1; 8657: T *e = ptr + s; 8657: while (++n != e) 8657: if (*n == t) 8657: return n - ptr; 8657: } 8657: return -1; 8657: } 8657: 8657: template 8657: inline int QVarLengthArray::lastIndexOf(const T &t, int from) const 8657: { 8657: if (from < 0) 8657: from += s; 8657: else if (from >= s) 8657: from = s - 1; 8657: if (from >= 0) { 8657: T *b = ptr; 8657: T *n = ptr + from + 1; 8657: while (n != b) { 8657: if (*--n == t) 8657: return n - b; 8657: } 8657: } 8657: return -1; 8657: } 8657: 8657: template 8657: inline bool QVarLengthArray::contains(const T &t) const 8657: { 8657: T *b = ptr; 8657: T *i = ptr + s; 8657: while (i != b) { 8657: if (*--i == t) 8657: return true; 8657: } 8657: return false; 8657: } 8657: 8657: template 8657: void QVarLengthArray::append(const T *abuf, int increment) 8657: { 8657: do { } while ((false) && (abuf)); 8657: if (increment <= 0) 8657: return; 8657: 8657: const int asize = s + increment; 8657: 8657: if (asize >= a) 8657: realloc(s, qMax(s*2, asize)); 8657: 8657: if (QTypeInfo::isComplex) { 8657: 8657: while (s < asize) 8657: new (ptr+(s++)) T(*abuf++); 8657: } else { 8657: memcpy(&ptr[s], abuf, increment * sizeof(T)); 8657: s = asize; 8657: } 8657: } 8657: 8657: template 8657: inline void QVarLengthArray::squeeze() 8657: { realloc(s, s); } 8657: 8657: template 8657: void QVarLengthArray::realloc(int asize, int aalloc) 8657: { 8657: do { } while ((false) && (aalloc >= asize)); 8657: T *oldPtr = ptr; 8657: int osize = s; 8657: 8657: const int copySize = qMin(asize, osize); 8657: do { const bool valueOfExpression = copySize >= 0; do { } while ((false) && (valueOfExpression)); if (valueOfExpression){} else __builtin_unreachable(); } while (false); 8657: if (aalloc != a) { 8657: if (aalloc > Prealloc) { 8657: T* newPtr = reinterpret_cast(malloc(aalloc * sizeof(T))); 8657: do { if (!(newPtr)) qBadAlloc(); } while (false); 8657: 8657: ptr = newPtr; 8657: a = aalloc; 8657: } else { 8657: ptr = reinterpret_cast(array); 8657: a = Prealloc; 8657: } 8657: s = 0; 8657: if (!QTypeInfoQuery::isRelocatable) { 8657: try { 8657: 8657: while (s < copySize) { 8657: new (ptr+s) T(*(oldPtr+s)); 8657: (oldPtr+s)->~T(); 8657: s++; 8657: } 8657: } catch (...) { 8657: 8657: int sClean = s; 8657: while (sClean < osize) 8657: (oldPtr+(sClean++))->~T(); 8657: if (oldPtr != reinterpret_cast(array) && oldPtr != ptr) 8657: free(oldPtr); 8657: throw; 8657: } 8657: } else { 8657: memcpy(ptr, oldPtr, copySize * sizeof(T)); 8657: } 8657: } 8657: s = copySize; 8657: 8657: if (QTypeInfo::isComplex) { 8657: 8657: while (osize > asize) 8657: (oldPtr+(--osize))->~T(); 8657: } 8657: 8657: if (oldPtr != reinterpret_cast(array) && oldPtr != ptr) 8657: free(oldPtr); 8657: 8657: if (QTypeInfo::isComplex) { 8657: 8657: while (s < asize) 8657: new (ptr+(s++)) T; 8657: } else { 8657: s = asize; 8657: } 8657: } 8657: 8657: template 8657: T QVarLengthArray::value(int i) const 8657: { 8657: if (uint(i) >= uint(size())) { 8657: return T(); 8657: } 8657: return at(i); 8657: } 8657: template 8657: T QVarLengthArray::value(int i, const T &defaultValue) const 8657: { 8657: return (uint(i) >= uint(size())) ? defaultValue : at(i); 8657: } 8657: 8657: template 8657: inline void QVarLengthArray::insert(int i, const T &t) 8657: { do { } while ((false) && (i >= 0 && i <= s)); 8657: insert(begin() + i, 1, t); } 8657: template 8657: inline void QVarLengthArray::insert(int i, int n, const T &t) 8657: { do { } while ((false) && (i >= 0 && i <= s)); 8657: insert(begin() + i, n, t); } 8657: template 8657: inline void QVarLengthArray::remove(int i, int n) 8657: { do { } while ((false) && (i >= 0 && n >= 0 && i + n <= s)); 8657: erase(begin() + i, begin() + i + n); } 8657: template 8657: inline void QVarLengthArray::remove(int i) 8657: { do { } while ((false) && (i >= 0 && i < s)); 8657: erase(begin() + i, begin() + i + 1); } 8657: template 8657: inline void QVarLengthArray::prepend(const T &t) 8657: { insert(begin(), 1, t); } 8657: 8657: template 8657: inline void QVarLengthArray::replace(int i, const T &t) 8657: { 8657: do { } while ((false) && (i >= 0 && i < s)); 8657: const T copy(t); 8657: data()[i] = copy; 8657: } 8657: 8657: 8657: template 8657: typename QVarLengthArray::iterator QVarLengthArray::insert(const_iterator before, size_type n, const T &t) 8657: { 8657: do { } while ((false) && (isValidIterator(before))); 8657: 8657: int offset = int(before - ptr); 8657: if (n != 0) { 8657: resize(s + n); 8657: const T copy(t); 8657: if (!QTypeInfoQuery::isRelocatable) { 8657: T *b = ptr + offset; 8657: T *j = ptr + s; 8657: T *i = j - n; 8657: while (i != b) 8657: *--j = *--i; 8657: i = b + n; 8657: while (i != b) 8657: *--i = copy; 8657: } else { 8657: T *b = ptr + offset; 8657: T *i = b + n; 8657: memmove(i, b, (s - offset - n) * sizeof(T)); 8657: while (i != b) 8657: new (--i) T(copy); 8657: } 8657: } 8657: return ptr + offset; 8657: } 8657: 8657: template 8657: typename QVarLengthArray::iterator QVarLengthArray::erase(const_iterator abegin, const_iterator aend) 8657: { 8657: do { } while ((false) && (isValidIterator(abegin))); 8657: do { } while ((false) && (isValidIterator(aend))); 8657: 8657: int f = int(abegin - ptr); 8657: int l = int(aend - ptr); 8657: int n = l - f; 8657: if (QTypeInfo::isComplex) { 8657: std::copy(ptr + l, ptr + s, (ptr + f)); 8657: T *i = ptr + s; 8657: T *b = ptr + s - n; 8657: while (i != b) { 8657: --i; 8657: i->~T(); 8657: } 8657: } else { 8657: memmove(ptr + f, ptr + l, (s - l) * sizeof(T)); 8657: } 8657: s -= n; 8657: return ptr + f; 8657: } 8657: 8657: template 8657: bool operator==(const QVarLengthArray &l, const QVarLengthArray &r) 8657: { 8657: if (l.size() != r.size()) 8657: return false; 8657: const T *rb = r.begin(); 8657: const T *b = l.begin(); 8657: const T *e = l.end(); 8657: return std::equal(b, e, (rb)); 8657: } 8657: 8657: template 8657: bool operator!=(const QVarLengthArray &l, const QVarLengthArray &r) 8657: { 8657: return !(l == r); 8657: } 8657: 8657: template 8657: bool operator<(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8657: noexcept(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()))) 8657: 8657: { 8657: return std::lexicographical_compare(lhs.begin(), lhs.end(), 8657: rhs.begin(), rhs.end()); 8657: } 8657: 8657: template 8657: inline bool operator>(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8657: noexcept(noexcept(lhs < rhs)) 8657: { 8657: return rhs < lhs; 8657: } 8657: 8657: template 8657: inline bool operator<=(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8657: noexcept(noexcept(lhs < rhs)) 8657: { 8657: return !(lhs > rhs); 8657: } 8657: 8657: template 8657: inline bool operator>=(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8657: noexcept(noexcept(lhs < rhs)) 8657: { 8657: return !(lhs < rhs); 8657: } 8657: 8657: 8657: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 2 3 4 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs.h" 1 3 4 8657: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h" 1 3 4 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h" 3 4 8657: 8657: 8657: 8657: namespace QtPrivate { 8657: template struct RemoveRef { typedef T Type; }; 8657: template struct RemoveRef { typedef T Type; }; 8657: template struct RemoveConstRef { typedef T Type; }; 8657: template struct RemoveConstRef { typedef T Type; }; 8657: # 69 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h" 3 4 8657: template struct List {}; 8657: template struct List { typedef Head Car; typedef List Cdr; }; 8657: template struct List_Append; 8657: template struct List_Append, List> { typedef List Value; }; 8657: template struct List_Left { 8657: typedef typename List_Append,typename List_Left::Value>::Value Value; 8657: }; 8657: template struct List_Left { typedef List<> Value; }; 8657: 8657: template struct List_Select { typedef typename List_Select::Value Value; }; 8657: template struct List_Select { typedef typename L::Car Value; }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct ApplyReturnValue { 8657: void *data; 8657: explicit ApplyReturnValue(void *data_) : data(data_) {} 8657: }; 8657: template 8657: void operator,(T &&value, const ApplyReturnValue &container) { 8657: if (container.data) 8657: *reinterpret_cast(container.data) = std::forward(value); 8657: } 8657: template 8657: void operator,(T, const ApplyReturnValue &) {} 8657: # 117 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h" 3 4 8657: template struct IndexesList {}; 8657: template struct IndexesAppend; 8657: template struct IndexesAppend, Right> 8657: { typedef IndexesList Value; }; 8657: template struct Indexes 8657: { typedef typename IndexesAppend::Value, N - 1>::Value Value; }; 8657: template <> struct Indexes<0> { typedef IndexesList<> Value; }; 8657: template struct FunctionPointer { enum {ArgumentCount = -1, IsPointerToMemberFunction = false}; }; 8657: 8657: template struct FunctorCall; 8657: template 8657: struct FunctorCall, List, R, Function> { 8657: static void call(Function &f, void **arg) { 8657: f((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]); 8657: } 8657: }; 8657: template 8657: struct FunctorCall, List, R, SlotRet (Obj::*)(SlotArgs...)> { 8657: static void call(SlotRet (Obj::*f)(SlotArgs...), Obj *o, void **arg) { 8657: (o->*f)((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]); 8657: } 8657: }; 8657: template 8657: struct FunctorCall, List, R, SlotRet (Obj::*)(SlotArgs...) const> { 8657: static void call(SlotRet (Obj::*f)(SlotArgs...) const, Obj *o, void **arg) { 8657: (o->*f)((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]); 8657: } 8657: }; 8657: # 160 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h" 3 4 8657: template struct FunctionPointer 8657: { 8657: typedef Obj Object; 8657: typedef List Arguments; 8657: typedef Ret ReturnType; 8657: typedef Ret (Obj::*Function) (Args...); 8657: enum {ArgumentCount = sizeof...(Args), IsPointerToMemberFunction = true}; 8657: template 8657: static void call(Function f, Obj *o, void **arg) { 8657: FunctorCall::Value, SignalArgs, R, Function>::call(f, o, arg); 8657: } 8657: }; 8657: template struct FunctionPointer 8657: { 8657: typedef Obj Object; 8657: typedef List Arguments; 8657: typedef Ret ReturnType; 8657: typedef Ret (Obj::*Function) (Args...) const; 8657: enum {ArgumentCount = sizeof...(Args), IsPointerToMemberFunction = true}; 8657: template 8657: static void call(Function f, Obj *o, void **arg) { 8657: FunctorCall::Value, SignalArgs, R, Function>::call(f, o, arg); 8657: } 8657: }; 8657: 8657: template struct FunctionPointer 8657: { 8657: typedef List Arguments; 8657: typedef Ret ReturnType; 8657: typedef Ret (*Function) (Args...); 8657: enum {ArgumentCount = sizeof...(Args), IsPointerToMemberFunction = false}; 8657: template 8657: static void call(Function f, void *, void **arg) { 8657: FunctorCall::Value, SignalArgs, R, Function>::call(f, arg); 8657: } 8657: }; 8657: # 236 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h" 3 4 8657: template struct Functor 8657: { 8657: template 8657: static void call(Function &f, void *, void **arg) { 8657: FunctorCall::Value, SignalArgs, R, Function>::call(f, arg); 8657: } 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct IsEnumUnderlyingTypeSigned : std::false_type 8657: { 8657: }; 8657: 8657: template 8657: struct IsEnumUnderlyingTypeSigned::value>::type> 8657: : std::integral_constant::type>::value> 8657: { 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct AreArgumentsNarrowedBase : std::false_type 8657: { 8657: }; 8657: 8657: template 8657: struct AreArgumentsNarrowedBase::type> 8657: : std::integral_constant::value && std::is_integral::value) || 8657: (std::is_floating_point::value && std::is_floating_point::value && sizeof(From) > sizeof(To)) || 8657: ((std::is_integral::value || std::is_enum::value) && std::is_floating_point::value) || 8657: (std::is_integral::value && std::is_integral::value 8657: && (sizeof(From) > sizeof(To) 8657: || (std::is_signed::value ? !std::is_signed::value 8657: : (std::is_signed::value && sizeof(From) == sizeof(To))))) || 8657: (std::is_enum::value && std::is_integral::value 8657: && (sizeof(From) > sizeof(To) 8657: || (IsEnumUnderlyingTypeSigned::value ? !std::is_signed::value 8657: : (std::is_signed::value && sizeof(From) == sizeof(To))))) 8657: > 8657: { 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template struct AreArgumentsCompatible { 8657: static int test(const typename RemoveRef::Type&); 8657: static char test(...); 8657: static const typename RemoveRef::Type &dummy(); 8657: enum { value = sizeof(test(dummy())) == sizeof(int) }; 8657: 8657: 8657: 8657: 8657: }; 8657: template struct AreArgumentsCompatible { enum { value = false }; }; 8657: template struct AreArgumentsCompatible { enum { value = true }; }; 8657: 8657: template struct AreArgumentsCompatible { enum { value = true }; }; 8657: template struct AreArgumentsCompatible { enum { value = true }; }; 8657: template<> struct AreArgumentsCompatible { enum { value = true }; }; 8657: 8657: template struct CheckCompatibleArguments { enum { value = false }; }; 8657: template <> struct CheckCompatibleArguments, List<>> { enum { value = true }; }; 8657: template struct CheckCompatibleArguments> { enum { value = true }; }; 8657: template 8657: struct CheckCompatibleArguments, List> 8657: { 8657: enum { value = AreArgumentsCompatible::Type, typename RemoveConstRef::Type>::value 8657: && CheckCompatibleArguments, List>::value }; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template struct ComputeFunctorArgumentCount; 8657: 8657: template struct ComputeFunctorArgumentCountHelper 8657: { enum { Value = -1 }; }; 8657: template 8657: struct ComputeFunctorArgumentCountHelper, false> 8657: : ComputeFunctorArgumentCount, sizeof...(ArgList)>::Value> {}; 8657: 8657: template struct ComputeFunctorArgumentCount> 8657: { 8657: template static D dummy(); 8657: template static auto test(F f) -> decltype(((f.operator()((dummy())...)), int())); 8657: static char test(...); 8657: enum { 8657: Ok = sizeof(test(dummy())) == sizeof(int), 8657: Value = Ok ? int(sizeof...(ArgList)) : int(ComputeFunctorArgumentCountHelper, Ok>::Value) 8657: }; 8657: }; 8657: 8657: 8657: template struct FunctorReturnType; 8657: template struct FunctorReturnType> { 8657: template static D dummy(); 8657: typedef decltype(dummy().operator()((dummy())...)) Value; 8657: }; 8657: } 8657: 8657: 8657: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs.h" 2 3 4 8657: 8657: 8657: 8657: 8657: class QByteArray; 8657: struct QArrayData; 8657: typedef QArrayData QByteArrayData; 8657: 8657: class QString; 8657: # 262 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs.h" 3 4 8657: __attribute__((visibility("default"))) const char *qFlagLocation(const char *method); 8657: # 288 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs.h" 3 4 8657: class QObject; 8657: class QMetaMethod; 8657: class QMetaEnum; 8657: class QMetaProperty; 8657: class QMetaClassInfo; 8657: 8657: 8657: class __attribute__((visibility("default"))) QGenericArgument 8657: { 8657: public: 8657: inline QGenericArgument(const char *aName = nullptr, const void *aData = nullptr) 8657: : _data(aData), _name(aName) {} 8657: inline void *data() const { return const_cast(_data); } 8657: inline const char *name() const { return _name; } 8657: 8657: private: 8657: const void *_data; 8657: const char *_name; 8657: }; 8657: 8657: class __attribute__((visibility("default"))) QGenericReturnArgument: public QGenericArgument 8657: { 8657: public: 8657: inline QGenericReturnArgument(const char *aName = nullptr, void *aData = nullptr) 8657: : QGenericArgument(aName, aData) 8657: {} 8657: }; 8657: 8657: template 8657: class QArgument: public QGenericArgument 8657: { 8657: public: 8657: inline QArgument(const char *aName, const T &aData) 8657: : QGenericArgument(aName, static_cast(&aData)) 8657: {} 8657: }; 8657: template 8657: class QArgument: public QGenericArgument 8657: { 8657: public: 8657: inline QArgument(const char *aName, T &aData) 8657: : QGenericArgument(aName, static_cast(&aData)) 8657: {} 8657: }; 8657: 8657: 8657: template 8657: class QReturnArgument: public QGenericReturnArgument 8657: { 8657: public: 8657: inline QReturnArgument(const char *aName, T &aData) 8657: : QGenericReturnArgument(aName, static_cast(&aData)) 8657: {} 8657: }; 8657: 8657: struct __attribute__((visibility("default"))) QMetaObject 8657: { 8657: class Connection; 8657: const char *className() const; 8657: const QMetaObject *superClass() const; 8657: 8657: bool inherits(const QMetaObject *metaObject) const noexcept; 8657: QObject *cast(QObject *obj) const; 8657: const QObject *cast(const QObject *obj) const; 8657: 8657: 8657: QString tr(const char *s, const char *c, int n = -1) const; 8657: 8657: 8657: int methodOffset() const; 8657: int enumeratorOffset() const; 8657: int propertyOffset() const; 8657: int classInfoOffset() const; 8657: 8657: int constructorCount() const; 8657: int methodCount() const; 8657: int enumeratorCount() const; 8657: int propertyCount() const; 8657: int classInfoCount() const; 8657: 8657: int indexOfConstructor(const char *constructor) const; 8657: int indexOfMethod(const char *method) const; 8657: int indexOfSignal(const char *signal) const; 8657: int indexOfSlot(const char *slot) const; 8657: int indexOfEnumerator(const char *name) const; 8657: int indexOfProperty(const char *name) const; 8657: int indexOfClassInfo(const char *name) const; 8657: 8657: QMetaMethod constructor(int index) const; 8657: QMetaMethod method(int index) const; 8657: QMetaEnum enumerator(int index) const; 8657: QMetaProperty property(int index) const; 8657: QMetaClassInfo classInfo(int index) const; 8657: QMetaProperty userProperty() const; 8657: 8657: static bool checkConnectArgs(const char *signal, const char *method); 8657: static bool checkConnectArgs(const QMetaMethod &signal, 8657: const QMetaMethod &method); 8657: static QByteArray normalizedSignature(const char *method); 8657: static QByteArray normalizedType(const char *type); 8657: 8657: 8657: static Connection connect(const QObject *sender, int signal_index, 8657: const QObject *receiver, int method_index, 8657: int type = 0, int *types = nullptr); 8657: 8657: static bool disconnect(const QObject *sender, int signal_index, 8657: const QObject *receiver, int method_index); 8657: static bool disconnectOne(const QObject *sender, int signal_index, 8657: const QObject *receiver, int method_index); 8657: 8657: static void connectSlotsByName(QObject *o); 8657: 8657: 8657: static void activate(QObject *sender, int signal_index, void **argv); 8657: static void activate(QObject *sender, const QMetaObject *, int local_signal_index, void **argv); 8657: static void activate(QObject *sender, int signal_offset, int local_signal_index, void **argv); 8657: 8657: static bool invokeMethod(QObject *obj, const char *member, 8657: Qt::ConnectionType, 8657: QGenericReturnArgument ret, 8657: QGenericArgument val0 = QGenericArgument(nullptr), 8657: QGenericArgument val1 = QGenericArgument(), 8657: QGenericArgument val2 = QGenericArgument(), 8657: QGenericArgument val3 = QGenericArgument(), 8657: QGenericArgument val4 = QGenericArgument(), 8657: QGenericArgument val5 = QGenericArgument(), 8657: QGenericArgument val6 = QGenericArgument(), 8657: QGenericArgument val7 = QGenericArgument(), 8657: QGenericArgument val8 = QGenericArgument(), 8657: QGenericArgument val9 = QGenericArgument()); 8657: 8657: static inline bool invokeMethod(QObject *obj, const char *member, 8657: QGenericReturnArgument ret, 8657: QGenericArgument val0 = QGenericArgument(nullptr), 8657: QGenericArgument val1 = QGenericArgument(), 8657: QGenericArgument val2 = QGenericArgument(), 8657: QGenericArgument val3 = QGenericArgument(), 8657: QGenericArgument val4 = QGenericArgument(), 8657: QGenericArgument val5 = QGenericArgument(), 8657: QGenericArgument val6 = QGenericArgument(), 8657: QGenericArgument val7 = QGenericArgument(), 8657: QGenericArgument val8 = QGenericArgument(), 8657: QGenericArgument val9 = QGenericArgument()) 8657: { 8657: return invokeMethod(obj, member, Qt::AutoConnection, ret, val0, val1, val2, val3, 8657: val4, val5, val6, val7, val8, val9); 8657: } 8657: 8657: static inline bool invokeMethod(QObject *obj, const char *member, 8657: Qt::ConnectionType type, 8657: QGenericArgument val0 = QGenericArgument(nullptr), 8657: QGenericArgument val1 = QGenericArgument(), 8657: QGenericArgument val2 = QGenericArgument(), 8657: QGenericArgument val3 = QGenericArgument(), 8657: QGenericArgument val4 = QGenericArgument(), 8657: QGenericArgument val5 = QGenericArgument(), 8657: QGenericArgument val6 = QGenericArgument(), 8657: QGenericArgument val7 = QGenericArgument(), 8657: QGenericArgument val8 = QGenericArgument(), 8657: QGenericArgument val9 = QGenericArgument()) 8657: { 8657: return invokeMethod(obj, member, type, QGenericReturnArgument(), val0, val1, val2, 8657: val3, val4, val5, val6, val7, val8, val9); 8657: } 8657: 8657: static inline bool invokeMethod(QObject *obj, const char *member, 8657: QGenericArgument val0 = QGenericArgument(nullptr), 8657: QGenericArgument val1 = QGenericArgument(), 8657: QGenericArgument val2 = QGenericArgument(), 8657: QGenericArgument val3 = QGenericArgument(), 8657: QGenericArgument val4 = QGenericArgument(), 8657: QGenericArgument val5 = QGenericArgument(), 8657: QGenericArgument val6 = QGenericArgument(), 8657: QGenericArgument val7 = QGenericArgument(), 8657: QGenericArgument val8 = QGenericArgument(), 8657: QGenericArgument val9 = QGenericArgument()) 8657: { 8657: return invokeMethod(obj, member, Qt::AutoConnection, QGenericReturnArgument(), val0, 8657: val1, val2, val3, val4, val5, val6, val7, val8, val9); 8657: } 8657: 8657: QObject *newInstance(QGenericArgument val0 = QGenericArgument(nullptr), 8657: QGenericArgument val1 = QGenericArgument(), 8657: QGenericArgument val2 = QGenericArgument(), 8657: QGenericArgument val3 = QGenericArgument(), 8657: QGenericArgument val4 = QGenericArgument(), 8657: QGenericArgument val5 = QGenericArgument(), 8657: QGenericArgument val6 = QGenericArgument(), 8657: QGenericArgument val7 = QGenericArgument(), 8657: QGenericArgument val8 = QGenericArgument(), 8657: QGenericArgument val9 = QGenericArgument()) const; 8657: 8657: enum Call { 8657: InvokeMetaMethod, 8657: ReadProperty, 8657: WriteProperty, 8657: ResetProperty, 8657: QueryPropertyDesignable, 8657: QueryPropertyScriptable, 8657: QueryPropertyStored, 8657: QueryPropertyEditable, 8657: QueryPropertyUser, 8657: CreateInstance, 8657: IndexOfMethod, 8657: RegisterPropertyMetaType, 8657: RegisterMethodArgumentMetaType 8657: }; 8657: 8657: int static_metacall(Call, int, void **) const; 8657: static int metacall(QObject *, Call, int, void **); 8657: 8657: struct { 8657: const QMetaObject *superdata; 8657: const QByteArrayData *stringdata; 8657: const uint *data; 8657: typedef void (*StaticMetacallFunction)(QObject *, QMetaObject::Call, int, void **); 8657: StaticMetacallFunction static_metacall; 8657: const QMetaObject * const *relatedMetaObjects; 8657: void *extradata; 8657: } d; 8657: }; 8657: 8657: class __attribute__((visibility("default"))) QMetaObject::Connection { 8657: void *d_ptr; 8657: explicit Connection(void *data) : d_ptr(data) { } 8657: friend class QObject; 8657: friend class QObjectPrivate; 8657: friend struct QMetaObject; 8657: bool isConnected_helper() const; 8657: public: 8657: ~Connection(); 8657: Connection(); 8657: Connection(const Connection &other); 8657: Connection &operator=(const Connection &other); 8657: 8657: 8657: 8657: typedef void *Connection::*RestrictedBool; 8657: operator RestrictedBool() const { return d_ptr && isConnected_helper() ? &Connection::d_ptr : nullptr; } 8657: 8657: 8657: 8657: inline Connection(Connection &&o) : d_ptr(o.d_ptr) { o.d_ptr = nullptr; } 8657: inline Connection &operator=(Connection &&other) 8657: { qSwap(d_ptr, other.d_ptr); return *this; } 8657: 8657: }; 8657: 8657: inline const QMetaObject *QMetaObject::superClass() const 8657: { return d.superdata; } 8657: 8657: namespace QtPrivate { 8657: 8657: template struct HasQ_OBJECT_Macro { 8657: template 8657: static char test(int (T::*)(QMetaObject::Call, int, void **)); 8657: static int test(int (Object::*)(QMetaObject::Call, int, void **)); 8657: enum { Value = sizeof(test(&Object::qt_metacall)) == sizeof(int) }; 8657: }; 8657: } 8657: 8657: 8657: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 2 3 4 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/vector" 1 3 4 8657: # 58 "/usr/include/c++/8/vector" 3 4 8657: 8657: # 59 "/usr/include/c++/8/vector" 3 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/stl_uninitialized.h" 1 3 8657: # 67 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: template 8657: struct __uninitialized_copy 8657: { 8657: template 8657: static _ForwardIterator 8657: __uninit_copy(_InputIterator __first, _InputIterator __last, 8657: _ForwardIterator __result) 8657: { 8657: _ForwardIterator __cur = __result; 8657: try 8657: { 8657: for (; __first != __last; ++__first, (void)++__cur) 8657: std::_Construct(std::__addressof(*__cur), *__first); 8657: return __cur; 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__result, __cur); 8657: throw; 8657: } 8657: } 8657: }; 8657: 8657: template<> 8657: struct __uninitialized_copy 8657: { 8657: template 8657: static _ForwardIterator 8657: __uninit_copy(_InputIterator __first, _InputIterator __last, 8657: _ForwardIterator __result) 8657: { return std::copy(__first, __last, __result); } 8657: }; 8657: # 113 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8657: template 8657: inline _ForwardIterator 8657: uninitialized_copy(_InputIterator __first, _InputIterator __last, 8657: _ForwardIterator __result) 8657: { 8657: typedef typename iterator_traits<_InputIterator>::value_type 8657: _ValueType1; 8657: typedef typename iterator_traits<_ForwardIterator>::value_type 8657: _ValueType2; 8657: 8657: 8657: 8657: 8657: typedef typename iterator_traits<_InputIterator>::reference _RefType1; 8657: typedef typename iterator_traits<_ForwardIterator>::reference _RefType2; 8657: const bool __assignable = is_assignable<_RefType2, _RefType1>::value; 8657: 8657: 8657: return std::__uninitialized_copy<__is_trivial(_ValueType1) 8657: && __is_trivial(_ValueType2) 8657: && __assignable>:: 8657: __uninit_copy(__first, __last, __result); 8657: } 8657: 8657: 8657: template 8657: struct __uninitialized_fill 8657: { 8657: template 8657: static void 8657: __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __x) 8657: { 8657: _ForwardIterator __cur = __first; 8657: try 8657: { 8657: for (; __cur != __last; ++__cur) 8657: std::_Construct(std::__addressof(*__cur), __x); 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__first, __cur); 8657: throw; 8657: } 8657: } 8657: }; 8657: 8657: template<> 8657: struct __uninitialized_fill 8657: { 8657: template 8657: static void 8657: __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __x) 8657: { std::fill(__first, __last, __x); } 8657: }; 8657: # 179 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8657: template 8657: inline void 8657: uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __x) 8657: { 8657: typedef typename iterator_traits<_ForwardIterator>::value_type 8657: _ValueType; 8657: 8657: 8657: 8657: 8657: const bool __assignable = is_copy_assignable<_ValueType>::value; 8657: 8657: 8657: std::__uninitialized_fill<__is_trivial(_ValueType) && __assignable>:: 8657: __uninit_fill(__first, __last, __x); 8657: } 8657: 8657: 8657: template 8657: struct __uninitialized_fill_n 8657: { 8657: template 8657: static _ForwardIterator 8657: __uninit_fill_n(_ForwardIterator __first, _Size __n, 8657: const _Tp& __x) 8657: { 8657: _ForwardIterator __cur = __first; 8657: try 8657: { 8657: for (; __n > 0; --__n, (void) ++__cur) 8657: std::_Construct(std::__addressof(*__cur), __x); 8657: return __cur; 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__first, __cur); 8657: throw; 8657: } 8657: } 8657: }; 8657: 8657: template<> 8657: struct __uninitialized_fill_n 8657: { 8657: template 8657: static _ForwardIterator 8657: __uninit_fill_n(_ForwardIterator __first, _Size __n, 8657: const _Tp& __x) 8657: { return std::fill_n(__first, __n, __x); } 8657: }; 8657: # 242 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8657: template 8657: inline _ForwardIterator 8657: uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) 8657: { 8657: typedef typename iterator_traits<_ForwardIterator>::value_type 8657: _ValueType; 8657: 8657: 8657: 8657: 8657: const bool __assignable = is_copy_assignable<_ValueType>::value; 8657: 8657: return __uninitialized_fill_n<__is_trivial(_ValueType) && __assignable>:: 8657: __uninit_fill_n(__first, __n, __x); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: _ForwardIterator 8657: __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 8657: _ForwardIterator __result, _Allocator& __alloc) 8657: { 8657: _ForwardIterator __cur = __result; 8657: try 8657: { 8657: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8657: for (; __first != __last; ++__first, (void)++__cur) 8657: __traits::construct(__alloc, std::__addressof(*__cur), *__first); 8657: return __cur; 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__result, __cur, __alloc); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: inline _ForwardIterator 8657: __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 8657: _ForwardIterator __result, allocator<_Tp>&) 8657: { return std::uninitialized_copy(__first, __last, __result); } 8657: 8657: template 8657: inline _ForwardIterator 8657: __uninitialized_move_a(_InputIterator __first, _InputIterator __last, 8657: _ForwardIterator __result, _Allocator& __alloc) 8657: { 8657: return std::__uninitialized_copy_a(std::make_move_iterator(__first), 8657: std::make_move_iterator(__last), 8657: __result, __alloc); 8657: } 8657: 8657: template 8657: inline _ForwardIterator 8657: __uninitialized_move_if_noexcept_a(_InputIterator __first, 8657: _InputIterator __last, 8657: _ForwardIterator __result, 8657: _Allocator& __alloc) 8657: { 8657: return std::__uninitialized_copy_a 8657: (std::__make_move_if_noexcept_iterator(__first), 8657: std::__make_move_if_noexcept_iterator(__last), __result, __alloc); 8657: } 8657: 8657: template 8657: void 8657: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __x, _Allocator& __alloc) 8657: { 8657: _ForwardIterator __cur = __first; 8657: try 8657: { 8657: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8657: for (; __cur != __last; ++__cur) 8657: __traits::construct(__alloc, std::__addressof(*__cur), __x); 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__first, __cur, __alloc); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: inline void 8657: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 8657: const _Tp& __x, allocator<_Tp2>&) 8657: { std::uninitialized_fill(__first, __last, __x); } 8657: 8657: template 8657: _ForwardIterator 8657: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 8657: const _Tp& __x, _Allocator& __alloc) 8657: { 8657: _ForwardIterator __cur = __first; 8657: try 8657: { 8657: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8657: for (; __n > 0; --__n, (void) ++__cur) 8657: __traits::construct(__alloc, std::__addressof(*__cur), __x); 8657: return __cur; 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__first, __cur, __alloc); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: inline _ForwardIterator 8657: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 8657: const _Tp& __x, allocator<_Tp2>&) 8657: { return std::uninitialized_fill_n(__first, __n, __x); } 8657: # 378 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8657: template 8657: inline _ForwardIterator 8657: __uninitialized_copy_move(_InputIterator1 __first1, 8657: _InputIterator1 __last1, 8657: _InputIterator2 __first2, 8657: _InputIterator2 __last2, 8657: _ForwardIterator __result, 8657: _Allocator& __alloc) 8657: { 8657: _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1, 8657: __result, 8657: __alloc); 8657: try 8657: { 8657: return std::__uninitialized_move_a(__first2, __last2, __mid, __alloc); 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__result, __mid, __alloc); 8657: throw; 8657: } 8657: } 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline _ForwardIterator 8657: __uninitialized_move_copy(_InputIterator1 __first1, 8657: _InputIterator1 __last1, 8657: _InputIterator2 __first2, 8657: _InputIterator2 __last2, 8657: _ForwardIterator __result, 8657: _Allocator& __alloc) 8657: { 8657: _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1, 8657: __result, 8657: __alloc); 8657: try 8657: { 8657: return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc); 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__result, __mid, __alloc); 8657: throw; 8657: } 8657: } 8657: 8657: 8657: 8657: 8657: template 8657: inline _ForwardIterator 8657: __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid, 8657: const _Tp& __x, _InputIterator __first, 8657: _InputIterator __last, _Allocator& __alloc) 8657: { 8657: std::__uninitialized_fill_a(__result, __mid, __x, __alloc); 8657: try 8657: { 8657: return std::__uninitialized_move_a(__first, __last, __mid, __alloc); 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__result, __mid, __alloc); 8657: throw; 8657: } 8657: } 8657: 8657: 8657: 8657: 8657: template 8657: inline void 8657: __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1, 8657: _ForwardIterator __first2, 8657: _ForwardIterator __last2, const _Tp& __x, 8657: _Allocator& __alloc) 8657: { 8657: _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1, 8657: __first2, 8657: __alloc); 8657: try 8657: { 8657: std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc); 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__first2, __mid2, __alloc); 8657: throw; 8657: } 8657: } 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct __uninitialized_default_1 8657: { 8657: template 8657: static void 8657: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 8657: { 8657: _ForwardIterator __cur = __first; 8657: try 8657: { 8657: for (; __cur != __last; ++__cur) 8657: std::_Construct(std::__addressof(*__cur)); 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__first, __cur); 8657: throw; 8657: } 8657: } 8657: }; 8657: 8657: template<> 8657: struct __uninitialized_default_1 8657: { 8657: template 8657: static void 8657: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 8657: { 8657: typedef typename iterator_traits<_ForwardIterator>::value_type 8657: _ValueType; 8657: 8657: std::fill(__first, __last, _ValueType()); 8657: } 8657: }; 8657: 8657: template 8657: struct __uninitialized_default_n_1 8657: { 8657: template 8657: static _ForwardIterator 8657: __uninit_default_n(_ForwardIterator __first, _Size __n) 8657: { 8657: _ForwardIterator __cur = __first; 8657: try 8657: { 8657: for (; __n > 0; --__n, (void) ++__cur) 8657: std::_Construct(std::__addressof(*__cur)); 8657: return __cur; 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__first, __cur); 8657: throw; 8657: } 8657: } 8657: }; 8657: 8657: template<> 8657: struct __uninitialized_default_n_1 8657: { 8657: template 8657: static _ForwardIterator 8657: __uninit_default_n(_ForwardIterator __first, _Size __n) 8657: { 8657: typedef typename iterator_traits<_ForwardIterator>::value_type 8657: _ValueType; 8657: 8657: return std::fill_n(__first, __n, _ValueType()); 8657: } 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: inline void 8657: __uninitialized_default(_ForwardIterator __first, 8657: _ForwardIterator __last) 8657: { 8657: typedef typename iterator_traits<_ForwardIterator>::value_type 8657: _ValueType; 8657: 8657: const bool __assignable = is_copy_assignable<_ValueType>::value; 8657: 8657: std::__uninitialized_default_1<__is_trivial(_ValueType) 8657: && __assignable>:: 8657: __uninit_default(__first, __last); 8657: } 8657: 8657: 8657: 8657: template 8657: inline _ForwardIterator 8657: __uninitialized_default_n(_ForwardIterator __first, _Size __n) 8657: { 8657: typedef typename iterator_traits<_ForwardIterator>::value_type 8657: _ValueType; 8657: 8657: const bool __assignable = is_copy_assignable<_ValueType>::value; 8657: 8657: return __uninitialized_default_n_1<__is_trivial(_ValueType) 8657: && __assignable>:: 8657: __uninit_default_n(__first, __n); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: template 8657: void 8657: __uninitialized_default_a(_ForwardIterator __first, 8657: _ForwardIterator __last, 8657: _Allocator& __alloc) 8657: { 8657: _ForwardIterator __cur = __first; 8657: try 8657: { 8657: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8657: for (; __cur != __last; ++__cur) 8657: __traits::construct(__alloc, std::__addressof(*__cur)); 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__first, __cur, __alloc); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: inline void 8657: __uninitialized_default_a(_ForwardIterator __first, 8657: _ForwardIterator __last, 8657: allocator<_Tp>&) 8657: { std::__uninitialized_default(__first, __last); } 8657: 8657: 8657: 8657: 8657: 8657: template 8657: _ForwardIterator 8657: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 8657: _Allocator& __alloc) 8657: { 8657: _ForwardIterator __cur = __first; 8657: try 8657: { 8657: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8657: for (; __n > 0; --__n, (void) ++__cur) 8657: __traits::construct(__alloc, std::__addressof(*__cur)); 8657: return __cur; 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__first, __cur, __alloc); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: inline _ForwardIterator 8657: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 8657: allocator<_Tp>&) 8657: { return std::__uninitialized_default_n(__first, __n); } 8657: 8657: template 8657: struct __uninitialized_default_novalue_1 8657: { 8657: template 8657: static void 8657: __uninit_default_novalue(_ForwardIterator __first, 8657: _ForwardIterator __last) 8657: { 8657: _ForwardIterator __cur = __first; 8657: try 8657: { 8657: for (; __cur != __last; ++__cur) 8657: std::_Construct_novalue(std::__addressof(*__cur)); 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__first, __cur); 8657: throw; 8657: } 8657: } 8657: }; 8657: 8657: template<> 8657: struct __uninitialized_default_novalue_1 8657: { 8657: template 8657: static void 8657: __uninit_default_novalue(_ForwardIterator __first, 8657: _ForwardIterator __last) 8657: { 8657: } 8657: }; 8657: 8657: template 8657: struct __uninitialized_default_novalue_n_1 8657: { 8657: template 8657: static _ForwardIterator 8657: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 8657: { 8657: _ForwardIterator __cur = __first; 8657: try 8657: { 8657: for (; __n > 0; --__n, (void) ++__cur) 8657: std::_Construct_novalue(std::__addressof(*__cur)); 8657: return __cur; 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__first, __cur); 8657: throw; 8657: } 8657: } 8657: }; 8657: 8657: template<> 8657: struct __uninitialized_default_novalue_n_1 8657: { 8657: template 8657: static _ForwardIterator 8657: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 8657: { return std::next(__first, __n); } 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: inline void 8657: __uninitialized_default_novalue(_ForwardIterator __first, 8657: _ForwardIterator __last) 8657: { 8657: typedef typename iterator_traits<_ForwardIterator>::value_type 8657: _ValueType; 8657: 8657: std::__uninitialized_default_novalue_1< 8657: is_trivially_default_constructible<_ValueType>::value>:: 8657: __uninit_default_novalue(__first, __last); 8657: } 8657: 8657: 8657: 8657: template 8657: inline _ForwardIterator 8657: __uninitialized_default_novalue_n(_ForwardIterator __first, _Size __n) 8657: { 8657: typedef typename iterator_traits<_ForwardIterator>::value_type 8657: _ValueType; 8657: 8657: return __uninitialized_default_novalue_n_1< 8657: is_trivially_default_constructible<_ValueType>::value>:: 8657: __uninit_default_novalue_n(__first, __n); 8657: } 8657: 8657: template 8657: _ForwardIterator 8657: __uninitialized_copy_n(_InputIterator __first, _Size __n, 8657: _ForwardIterator __result, input_iterator_tag) 8657: { 8657: _ForwardIterator __cur = __result; 8657: try 8657: { 8657: for (; __n > 0; --__n, (void) ++__first, ++__cur) 8657: std::_Construct(std::__addressof(*__cur), *__first); 8657: return __cur; 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__result, __cur); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: inline _ForwardIterator 8657: __uninitialized_copy_n(_RandomAccessIterator __first, _Size __n, 8657: _ForwardIterator __result, 8657: random_access_iterator_tag) 8657: { return std::uninitialized_copy(__first, __first + __n, __result); } 8657: 8657: template 8657: pair<_InputIterator, _ForwardIterator> 8657: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 8657: _ForwardIterator __result, input_iterator_tag) 8657: { 8657: _ForwardIterator __cur = __result; 8657: try 8657: { 8657: for (; __n > 0; --__n, (void) ++__first, ++__cur) 8657: std::_Construct(std::__addressof(*__cur), *__first); 8657: return {__first, __cur}; 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__result, __cur); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: inline pair<_RandomAccessIterator, _ForwardIterator> 8657: __uninitialized_copy_n_pair(_RandomAccessIterator __first, _Size __n, 8657: _ForwardIterator __result, 8657: random_access_iterator_tag) 8657: { 8657: auto __second_res = uninitialized_copy(__first, __first + __n, __result); 8657: auto __first_res = std::next(__first, __n); 8657: return {__first_res, __second_res}; 8657: } 8657: # 810 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8657: template 8657: inline _ForwardIterator 8657: uninitialized_copy_n(_InputIterator __first, _Size __n, 8657: _ForwardIterator __result) 8657: { return std::__uninitialized_copy_n(__first, __n, __result, 8657: std::__iterator_category(__first)); } 8657: 8657: template 8657: inline pair<_InputIterator, _ForwardIterator> 8657: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 8657: _ForwardIterator __result) 8657: { 8657: return 8657: std::__uninitialized_copy_n_pair(__first, __n, __result, 8657: std::__iterator_category(__first)); 8657: } 8657: # 882 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8657: 8657: } 8657: # 64 "/usr/include/c++/8/vector" 2 3 8657: # 1 "/usr/include/c++/8/bits/stl_vector.h" 1 3 8657: # 74 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: template 8657: struct _Vector_base 8657: { 8657: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8657: rebind<_Tp>::other _Tp_alloc_type; 8657: typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer 8657: pointer; 8657: 8657: struct _Vector_impl 8657: : public _Tp_alloc_type 8657: { 8657: pointer _M_start; 8657: pointer _M_finish; 8657: pointer _M_end_of_storage; 8657: 8657: _Vector_impl() 8657: : _Tp_alloc_type(), _M_start(), _M_finish(), _M_end_of_storage() 8657: { } 8657: 8657: _Vector_impl(_Tp_alloc_type const& __a) noexcept 8657: : _Tp_alloc_type(__a), _M_start(), _M_finish(), _M_end_of_storage() 8657: { } 8657: 8657: 8657: _Vector_impl(_Tp_alloc_type&& __a) noexcept 8657: : _Tp_alloc_type(std::move(__a)), 8657: _M_start(), _M_finish(), _M_end_of_storage() 8657: { } 8657: 8657: 8657: void _M_swap_data(_Vector_impl& __x) noexcept 8657: { 8657: std::swap(_M_start, __x._M_start); 8657: std::swap(_M_finish, __x._M_finish); 8657: std::swap(_M_end_of_storage, __x._M_end_of_storage); 8657: } 8657: # 231 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: }; 8657: 8657: public: 8657: typedef _Alloc allocator_type; 8657: 8657: _Tp_alloc_type& 8657: _M_get_Tp_allocator() noexcept 8657: { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); } 8657: 8657: const _Tp_alloc_type& 8657: _M_get_Tp_allocator() const noexcept 8657: { return *static_cast(&this->_M_impl); } 8657: 8657: allocator_type 8657: get_allocator() const noexcept 8657: { return allocator_type(_M_get_Tp_allocator()); } 8657: 8657: _Vector_base() 8657: : _M_impl() { } 8657: 8657: _Vector_base(const allocator_type& __a) noexcept 8657: : _M_impl(__a) { } 8657: 8657: _Vector_base(size_t __n) 8657: : _M_impl() 8657: { _M_create_storage(__n); } 8657: 8657: _Vector_base(size_t __n, const allocator_type& __a) 8657: : _M_impl(__a) 8657: { _M_create_storage(__n); } 8657: 8657: 8657: _Vector_base(_Tp_alloc_type&& __a) noexcept 8657: : _M_impl(std::move(__a)) { } 8657: 8657: _Vector_base(_Vector_base&& __x) noexcept 8657: : _M_impl(std::move(__x._M_get_Tp_allocator())) 8657: { this->_M_impl._M_swap_data(__x._M_impl); } 8657: 8657: _Vector_base(_Vector_base&& __x, const allocator_type& __a) 8657: : _M_impl(__a) 8657: { 8657: if (__x.get_allocator() == __a) 8657: this->_M_impl._M_swap_data(__x._M_impl); 8657: else 8657: { 8657: size_t __n = __x._M_impl._M_finish - __x._M_impl._M_start; 8657: _M_create_storage(__n); 8657: } 8657: } 8657: 8657: 8657: ~_Vector_base() noexcept 8657: { 8657: _M_deallocate(_M_impl._M_start, 8657: _M_impl._M_end_of_storage - _M_impl._M_start); 8657: } 8657: 8657: public: 8657: _Vector_impl _M_impl; 8657: 8657: pointer 8657: _M_allocate(size_t __n) 8657: { 8657: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 8657: return __n != 0 ? _Tr::allocate(_M_impl, __n) : pointer(); 8657: } 8657: 8657: void 8657: _M_deallocate(pointer __p, size_t __n) 8657: { 8657: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 8657: if (__p) 8657: _Tr::deallocate(_M_impl, __p, __n); 8657: } 8657: 8657: private: 8657: void 8657: _M_create_storage(size_t __n) 8657: { 8657: this->_M_impl._M_start = this->_M_allocate(__n); 8657: this->_M_impl._M_finish = this->_M_impl._M_start; 8657: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 8657: } 8657: }; 8657: # 338 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: template > 8657: class vector : protected _Vector_base<_Tp, _Alloc> 8657: { 8657: # 351 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: static_assert(is_same::type, _Tp>::value, 8657: "std::vector must have a non-const, non-volatile value_type"); 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef _Vector_base<_Tp, _Alloc> _Base; 8657: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 8657: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; 8657: 8657: public: 8657: typedef _Tp value_type; 8657: typedef typename _Base::pointer pointer; 8657: typedef typename _Alloc_traits::const_pointer const_pointer; 8657: typedef typename _Alloc_traits::reference reference; 8657: typedef typename _Alloc_traits::const_reference const_reference; 8657: typedef __gnu_cxx::__normal_iterator iterator; 8657: typedef __gnu_cxx::__normal_iterator 8657: const_iterator; 8657: typedef std::reverse_iterator const_reverse_iterator; 8657: typedef std::reverse_iterator reverse_iterator; 8657: typedef size_t size_type; 8657: typedef ptrdiff_t difference_type; 8657: typedef _Alloc allocator_type; 8657: 8657: protected: 8657: using _Base::_M_allocate; 8657: using _Base::_M_deallocate; 8657: using _Base::_M_impl; 8657: using _Base::_M_get_Tp_allocator; 8657: 8657: public: 8657: 8657: 8657: 8657: 8657: 8657: 8657: vector() 8657: 8657: noexcept(is_nothrow_default_constructible<_Alloc>::value) 8657: 8657: : _Base() { } 8657: 8657: 8657: 8657: 8657: 8657: explicit 8657: vector(const allocator_type& __a) noexcept 8657: : _Base(__a) { } 8657: # 414 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: explicit 8657: vector(size_type __n, const allocator_type& __a = allocator_type()) 8657: : _Base(__n, __a) 8657: { _M_default_initialize(__n); } 8657: # 427 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: vector(size_type __n, const value_type& __value, 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(__n, __a) 8657: { _M_fill_initialize(__n, __value); } 8657: # 458 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: vector(const vector& __x) 8657: : _Base(__x.size(), 8657: _Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator())) 8657: { 8657: this->_M_impl._M_finish = 8657: std::__uninitialized_copy_a(__x.begin(), __x.end(), 8657: this->_M_impl._M_start, 8657: _M_get_Tp_allocator()); 8657: } 8657: # 476 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: vector(vector&& __x) noexcept 8657: : _Base(std::move(__x)) { } 8657: 8657: 8657: vector(const vector& __x, const allocator_type& __a) 8657: : _Base(__x.size(), __a) 8657: { 8657: this->_M_impl._M_finish = 8657: std::__uninitialized_copy_a(__x.begin(), __x.end(), 8657: this->_M_impl._M_start, 8657: _M_get_Tp_allocator()); 8657: } 8657: 8657: 8657: vector(vector&& __rv, const allocator_type& __m) 8657: noexcept(_Alloc_traits::_S_always_equal()) 8657: : _Base(std::move(__rv), __m) 8657: { 8657: if (__rv.get_allocator() != __m) 8657: { 8657: this->_M_impl._M_finish = 8657: std::__uninitialized_move_a(__rv.begin(), __rv.end(), 8657: this->_M_impl._M_start, 8657: _M_get_Tp_allocator()); 8657: __rv.clear(); 8657: } 8657: } 8657: # 515 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: vector(initializer_list __l, 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(__a) 8657: { 8657: _M_range_initialize(__l.begin(), __l.end(), 8657: random_access_iterator_tag()); 8657: } 8657: # 541 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: template> 8657: vector(_InputIterator __first, _InputIterator __last, 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(__a) 8657: { _M_initialize_dispatch(__first, __last, __false_type()); } 8657: # 565 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: ~vector() noexcept 8657: { 8657: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: ; 8657: } 8657: # 581 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: vector& 8657: operator=(const vector& __x); 8657: # 595 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: vector& 8657: operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move()) 8657: { 8657: constexpr bool __move_storage = 8657: _Alloc_traits::_S_propagate_on_move_assign() 8657: || _Alloc_traits::_S_always_equal(); 8657: _M_move_assign(std::move(__x), __bool_constant<__move_storage>()); 8657: return *this; 8657: } 8657: # 616 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: vector& 8657: operator=(initializer_list __l) 8657: { 8657: this->_M_assign_aux(__l.begin(), __l.end(), 8657: random_access_iterator_tag()); 8657: return *this; 8657: } 8657: # 635 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: void 8657: assign(size_type __n, const value_type& __val) 8657: { _M_fill_assign(__n, __val); } 8657: # 652 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: template> 8657: void 8657: assign(_InputIterator __first, _InputIterator __last) 8657: { _M_assign_dispatch(__first, __last, __false_type()); } 8657: # 680 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: void 8657: assign(initializer_list __l) 8657: { 8657: this->_M_assign_aux(__l.begin(), __l.end(), 8657: random_access_iterator_tag()); 8657: } 8657: 8657: 8657: 8657: using _Base::get_allocator; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: begin() noexcept 8657: { return iterator(this->_M_impl._M_start); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: begin() const noexcept 8657: { return const_iterator(this->_M_impl._M_start); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: end() noexcept 8657: { return iterator(this->_M_impl._M_finish); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: end() const noexcept 8657: { return const_iterator(this->_M_impl._M_finish); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: rbegin() noexcept 8657: { return reverse_iterator(end()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: rbegin() const noexcept 8657: { return const_reverse_iterator(end()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: rend() noexcept 8657: { return reverse_iterator(begin()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: rend() const noexcept 8657: { return const_reverse_iterator(begin()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: cbegin() const noexcept 8657: { return const_iterator(this->_M_impl._M_start); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: cend() const noexcept 8657: { return const_iterator(this->_M_impl._M_finish); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: crbegin() const noexcept 8657: { return const_reverse_iterator(end()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: crend() const noexcept 8657: { return const_reverse_iterator(begin()); } 8657: 8657: 8657: 8657: 8657: size_type 8657: size() const noexcept 8657: { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } 8657: 8657: 8657: size_type 8657: max_size() const noexcept 8657: { return _Alloc_traits::max_size(_M_get_Tp_allocator()); } 8657: # 823 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: void 8657: resize(size_type __new_size) 8657: { 8657: if (__new_size > size()) 8657: _M_default_append(__new_size - size()); 8657: else if (__new_size < size()) 8657: _M_erase_at_end(this->_M_impl._M_start + __new_size); 8657: } 8657: # 843 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: void 8657: resize(size_type __new_size, const value_type& __x) 8657: { 8657: if (__new_size > size()) 8657: _M_fill_insert(end(), __new_size - size(), __x); 8657: else if (__new_size < size()) 8657: _M_erase_at_end(this->_M_impl._M_start + __new_size); 8657: } 8657: # 875 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: void 8657: shrink_to_fit() 8657: { _M_shrink_to_fit(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: size_type 8657: capacity() const noexcept 8657: { return size_type(this->_M_impl._M_end_of_storage 8657: - this->_M_impl._M_start); } 8657: 8657: 8657: 8657: 8657: 8657: bool 8657: empty() const noexcept 8657: { return begin() == end(); } 8657: # 914 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: void 8657: reserve(size_type __n); 8657: # 929 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: reference 8657: operator[](size_type __n) noexcept 8657: { 8657: ; 8657: return *(this->_M_impl._M_start + __n); 8657: } 8657: # 947 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: const_reference 8657: operator[](size_type __n) const noexcept 8657: { 8657: ; 8657: return *(this->_M_impl._M_start + __n); 8657: } 8657: 8657: protected: 8657: 8657: void 8657: _M_range_check(size_type __n) const 8657: { 8657: if (__n >= this->size()) 8657: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8657: 8657: , 8657: __n, this->size()); 8657: } 8657: 8657: public: 8657: # 978 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: reference 8657: at(size_type __n) 8657: { 8657: _M_range_check(__n); 8657: return (*this)[__n]; 8657: } 8657: # 996 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: const_reference 8657: at(size_type __n) const 8657: { 8657: _M_range_check(__n); 8657: return (*this)[__n]; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: reference 8657: front() noexcept 8657: { 8657: ; 8657: return *begin(); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: const_reference 8657: front() const noexcept 8657: { 8657: ; 8657: return *begin(); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: reference 8657: back() noexcept 8657: { 8657: ; 8657: return *(end() - 1); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: const_reference 8657: back() const noexcept 8657: { 8657: ; 8657: return *(end() - 1); 8657: } 8657: # 1054 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: _Tp* 8657: data() noexcept 8657: { return _M_data_ptr(this->_M_impl._M_start); } 8657: 8657: const _Tp* 8657: data() const noexcept 8657: { return _M_data_ptr(this->_M_impl._M_start); } 8657: # 1073 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: void 8657: push_back(const value_type& __x) 8657: { 8657: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8657: { 8657: ; 8657: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8657: __x); 8657: ++this->_M_impl._M_finish; 8657: ; 8657: } 8657: else 8657: _M_realloc_insert(end(), __x); 8657: } 8657: 8657: 8657: void 8657: push_back(value_type&& __x) 8657: { emplace_back(std::move(__x)); } 8657: 8657: template 8657: 8657: 8657: 8657: void 8657: 8657: emplace_back(_Args&&... __args); 8657: # 1111 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: void 8657: pop_back() noexcept 8657: { 8657: ; 8657: --this->_M_impl._M_finish; 8657: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 8657: ; 8657: } 8657: # 1133 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: template 8657: iterator 8657: emplace(const_iterator __position, _Args&&... __args) 8657: { return _M_emplace_aux(__position, std::forward<_Args>(__args)...); } 8657: # 1149 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: iterator 8657: insert(const_iterator __position, const value_type& __x); 8657: # 1179 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: iterator 8657: insert(const_iterator __position, value_type&& __x) 8657: { return _M_insert_rval(__position, std::move(__x)); } 8657: # 1196 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: iterator 8657: insert(const_iterator __position, initializer_list __l) 8657: { 8657: auto __offset = __position - cbegin(); 8657: _M_range_insert(begin() + __offset, __l.begin(), __l.end(), 8657: std::random_access_iterator_tag()); 8657: return begin() + __offset; 8657: } 8657: # 1221 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: iterator 8657: insert(const_iterator __position, size_type __n, const value_type& __x) 8657: { 8657: difference_type __offset = __position - cbegin(); 8657: _M_fill_insert(begin() + __offset, __n, __x); 8657: return begin() + __offset; 8657: } 8657: # 1263 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: template> 8657: iterator 8657: insert(const_iterator __position, _InputIterator __first, 8657: _InputIterator __last) 8657: { 8657: difference_type __offset = __position - cbegin(); 8657: _M_insert_dispatch(begin() + __offset, 8657: __first, __last, __false_type()); 8657: return begin() + __offset; 8657: } 8657: # 1315 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: iterator 8657: 8657: erase(const_iterator __position) 8657: { return _M_erase(begin() + (__position - cbegin())); } 8657: # 1342 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: iterator 8657: 8657: erase(const_iterator __first, const_iterator __last) 8657: { 8657: const auto __beg = begin(); 8657: const auto __cbeg = cbegin(); 8657: return _M_erase(__beg + (__first - __cbeg), __beg + (__last - __cbeg)); 8657: } 8657: # 1366 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: void 8657: swap(vector& __x) noexcept 8657: { 8657: 8657: 8657: ; 8657: 8657: this->_M_impl._M_swap_data(__x._M_impl); 8657: _Alloc_traits::_S_on_swap(_M_get_Tp_allocator(), 8657: __x._M_get_Tp_allocator()); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: void 8657: clear() noexcept 8657: { _M_erase_at_end(this->_M_impl._M_start); } 8657: 8657: protected: 8657: 8657: 8657: 8657: 8657: template 8657: pointer 8657: _M_allocate_and_copy(size_type __n, 8657: _ForwardIterator __first, _ForwardIterator __last) 8657: { 8657: pointer __result = this->_M_allocate(__n); 8657: try 8657: { 8657: std::__uninitialized_copy_a(__first, __last, __result, 8657: _M_get_Tp_allocator()); 8657: return __result; 8657: } 8657: catch(...) 8657: { 8657: _M_deallocate(__result, __n); 8657: throw; 8657: } 8657: } 8657: # 1419 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: template 8657: void 8657: _M_initialize_dispatch(_Integer __n, _Integer __value, __true_type) 8657: { 8657: this->_M_impl._M_start = _M_allocate(static_cast(__n)); 8657: this->_M_impl._M_end_of_storage = 8657: this->_M_impl._M_start + static_cast(__n); 8657: _M_fill_initialize(static_cast(__n), __value); 8657: } 8657: 8657: 8657: template 8657: void 8657: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 8657: __false_type) 8657: { 8657: typedef typename std::iterator_traits<_InputIterator>:: 8657: iterator_category _IterCategory; 8657: _M_range_initialize(__first, __last, _IterCategory()); 8657: } 8657: 8657: 8657: template 8657: void 8657: _M_range_initialize(_InputIterator __first, 8657: _InputIterator __last, std::input_iterator_tag) 8657: { 8657: for (; __first != __last; ++__first) 8657: 8657: emplace_back(*__first); 8657: 8657: 8657: 8657: } 8657: 8657: 8657: template 8657: void 8657: _M_range_initialize(_ForwardIterator __first, 8657: _ForwardIterator __last, std::forward_iterator_tag) 8657: { 8657: const size_type __n = std::distance(__first, __last); 8657: this->_M_impl._M_start = this->_M_allocate(__n); 8657: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 8657: this->_M_impl._M_finish = 8657: std::__uninitialized_copy_a(__first, __last, 8657: this->_M_impl._M_start, 8657: _M_get_Tp_allocator()); 8657: } 8657: 8657: 8657: 8657: void 8657: _M_fill_initialize(size_type __n, const value_type& __value) 8657: { 8657: this->_M_impl._M_finish = 8657: std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value, 8657: _M_get_Tp_allocator()); 8657: } 8657: 8657: 8657: 8657: void 8657: _M_default_initialize(size_type __n) 8657: { 8657: this->_M_impl._M_finish = 8657: std::__uninitialized_default_n_a(this->_M_impl._M_start, __n, 8657: _M_get_Tp_allocator()); 8657: } 8657: # 1497 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: template 8657: void 8657: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 8657: { _M_fill_assign(__n, __val); } 8657: 8657: 8657: template 8657: void 8657: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 8657: __false_type) 8657: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 8657: 8657: 8657: template 8657: void 8657: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8657: std::input_iterator_tag); 8657: 8657: 8657: template 8657: void 8657: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 8657: std::forward_iterator_tag); 8657: 8657: 8657: 8657: void 8657: _M_fill_assign(size_type __n, const value_type& __val); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: void 8657: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, 8657: __true_type) 8657: { _M_fill_insert(__pos, __n, __val); } 8657: 8657: 8657: template 8657: void 8657: _M_insert_dispatch(iterator __pos, _InputIterator __first, 8657: _InputIterator __last, __false_type) 8657: { 8657: _M_range_insert(__pos, __first, __last, 8657: std::__iterator_category(__first)); 8657: } 8657: 8657: 8657: template 8657: void 8657: _M_range_insert(iterator __pos, _InputIterator __first, 8657: _InputIterator __last, std::input_iterator_tag); 8657: 8657: 8657: template 8657: void 8657: _M_range_insert(iterator __pos, _ForwardIterator __first, 8657: _ForwardIterator __last, std::forward_iterator_tag); 8657: 8657: 8657: 8657: void 8657: _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); 8657: 8657: 8657: 8657: void 8657: _M_default_append(size_type __n); 8657: 8657: bool 8657: _M_shrink_to_fit(); 8657: # 1584 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: struct _Temporary_value 8657: { 8657: template 8657: explicit 8657: _Temporary_value(vector* __vec, _Args&&... __args) : _M_this(__vec) 8657: { 8657: _Alloc_traits::construct(_M_this->_M_impl, _M_ptr(), 8657: std::forward<_Args>(__args)...); 8657: } 8657: 8657: ~_Temporary_value() 8657: { _Alloc_traits::destroy(_M_this->_M_impl, _M_ptr()); } 8657: 8657: value_type& 8657: _M_val() { return *reinterpret_cast<_Tp*>(&__buf); } 8657: 8657: private: 8657: pointer 8657: _M_ptr() { return pointer_traits::pointer_to(_M_val()); } 8657: 8657: vector* _M_this; 8657: typename aligned_storage::type __buf; 8657: }; 8657: 8657: 8657: 8657: template 8657: void 8657: _M_insert_aux(iterator __position, _Arg&& __arg); 8657: 8657: template 8657: void 8657: _M_realloc_insert(iterator __position, _Args&&... __args); 8657: 8657: 8657: iterator 8657: _M_insert_rval(const_iterator __position, value_type&& __v); 8657: 8657: 8657: template 8657: iterator 8657: _M_emplace_aux(const_iterator __position, _Args&&... __args); 8657: 8657: 8657: iterator 8657: _M_emplace_aux(const_iterator __position, value_type&& __v) 8657: { return _M_insert_rval(__position, std::move(__v)); } 8657: 8657: 8657: 8657: size_type 8657: _M_check_len(size_type __n, const char* __s) const 8657: { 8657: if (max_size() - size() < __n) 8657: __throw_length_error((__s)); 8657: 8657: const size_type __len = size() + std::max(size(), __n); 8657: return (__len < size() || __len > max_size()) ? max_size() : __len; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: void 8657: _M_erase_at_end(pointer __pos) noexcept 8657: { 8657: if (size_type __n = this->_M_impl._M_finish - __pos) 8657: { 8657: std::_Destroy(__pos, this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: this->_M_impl._M_finish = __pos; 8657: ; 8657: } 8657: } 8657: 8657: iterator 8657: _M_erase(iterator __position); 8657: 8657: iterator 8657: _M_erase(iterator __first, iterator __last); 8657: 8657: 8657: private: 8657: 8657: 8657: 8657: void 8657: _M_move_assign(vector&& __x, std::true_type) noexcept 8657: { 8657: vector __tmp(get_allocator()); 8657: this->_M_impl._M_swap_data(__tmp._M_impl); 8657: this->_M_impl._M_swap_data(__x._M_impl); 8657: std::__alloc_on_move(_M_get_Tp_allocator(), __x._M_get_Tp_allocator()); 8657: } 8657: 8657: 8657: 8657: void 8657: _M_move_assign(vector&& __x, std::false_type) 8657: { 8657: if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator()) 8657: _M_move_assign(std::move(__x), std::true_type()); 8657: else 8657: { 8657: 8657: 8657: this->assign(std::__make_move_if_noexcept_iterator(__x.begin()), 8657: std::__make_move_if_noexcept_iterator(__x.end())); 8657: __x.clear(); 8657: } 8657: } 8657: 8657: 8657: template 8657: _Up* 8657: _M_data_ptr(_Up* __ptr) const noexcept 8657: { return __ptr; } 8657: 8657: 8657: template 8657: typename std::pointer_traits<_Ptr>::element_type* 8657: _M_data_ptr(_Ptr __ptr) const 8657: { return empty() ? nullptr : std::__to_address(__ptr); } 8657: # 1724 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: }; 8657: # 1746 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: template 8657: inline bool 8657: operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8657: { return (__x.size() == __y.size() 8657: && std::equal(__x.begin(), __x.end(), __y.begin())); } 8657: # 1763 "/usr/include/c++/8/bits/stl_vector.h" 3 8657: template 8657: inline bool 8657: operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8657: { return std::lexicographical_compare(__x.begin(), __x.end(), 8657: __y.begin(), __y.end()); } 8657: 8657: 8657: template 8657: inline bool 8657: operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8657: { return !(__x == __y); } 8657: 8657: 8657: template 8657: inline bool 8657: operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8657: { return __y < __x; } 8657: 8657: 8657: template 8657: inline bool 8657: operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8657: { return !(__y < __x); } 8657: 8657: 8657: template 8657: inline bool 8657: operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8657: { return !(__x < __y); } 8657: 8657: 8657: template 8657: inline void 8657: swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y) 8657: noexcept(noexcept(__x.swap(__y))) 8657: { __x.swap(__y); } 8657: 8657: 8657: 8657: } 8657: # 65 "/usr/include/c++/8/vector" 2 3 8657: # 1 "/usr/include/c++/8/bits/stl_bvector.h" 1 3 8657: # 63 "/usr/include/c++/8/bits/stl_bvector.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: typedef unsigned long _Bit_type; 8657: enum { _S_word_bit = int(8 * sizeof(_Bit_type)) }; 8657: 8657: struct _Bit_reference 8657: { 8657: _Bit_type * _M_p; 8657: _Bit_type _M_mask; 8657: 8657: _Bit_reference(_Bit_type * __x, _Bit_type __y) 8657: : _M_p(__x), _M_mask(__y) { } 8657: 8657: _Bit_reference() noexcept : _M_p(0), _M_mask(0) { } 8657: 8657: operator bool() const noexcept 8657: { return !!(*_M_p & _M_mask); } 8657: 8657: _Bit_reference& 8657: operator=(bool __x) noexcept 8657: { 8657: if (__x) 8657: *_M_p |= _M_mask; 8657: else 8657: *_M_p &= ~_M_mask; 8657: return *this; 8657: } 8657: 8657: _Bit_reference& 8657: operator=(const _Bit_reference& __x) noexcept 8657: { return *this = bool(__x); } 8657: 8657: bool 8657: operator==(const _Bit_reference& __x) const 8657: { return bool(*this) == bool(__x); } 8657: 8657: bool 8657: operator<(const _Bit_reference& __x) const 8657: { return !bool(*this) && bool(__x); } 8657: 8657: void 8657: flip() noexcept 8657: { *_M_p ^= _M_mask; } 8657: }; 8657: 8657: 8657: inline void 8657: swap(_Bit_reference __x, _Bit_reference __y) noexcept 8657: { 8657: bool __tmp = __x; 8657: __x = __y; 8657: __y = __tmp; 8657: } 8657: 8657: inline void 8657: swap(_Bit_reference __x, bool& __y) noexcept 8657: { 8657: bool __tmp = __x; 8657: __x = __y; 8657: __y = __tmp; 8657: } 8657: 8657: inline void 8657: swap(bool& __x, _Bit_reference __y) noexcept 8657: { 8657: bool __tmp = __x; 8657: __x = __y; 8657: __y = __tmp; 8657: } 8657: 8657: 8657: struct _Bit_iterator_base 8657: : public std::iterator 8657: { 8657: _Bit_type * _M_p; 8657: unsigned int _M_offset; 8657: 8657: _Bit_iterator_base(_Bit_type * __x, unsigned int __y) 8657: : _M_p(__x), _M_offset(__y) { } 8657: 8657: void 8657: _M_bump_up() 8657: { 8657: if (_M_offset++ == int(_S_word_bit) - 1) 8657: { 8657: _M_offset = 0; 8657: ++_M_p; 8657: } 8657: } 8657: 8657: void 8657: _M_bump_down() 8657: { 8657: if (_M_offset-- == 0) 8657: { 8657: _M_offset = int(_S_word_bit) - 1; 8657: --_M_p; 8657: } 8657: } 8657: 8657: void 8657: _M_incr(ptrdiff_t __i) 8657: { 8657: difference_type __n = __i + _M_offset; 8657: _M_p += __n / int(_S_word_bit); 8657: __n = __n % int(_S_word_bit); 8657: if (__n < 0) 8657: { 8657: __n += int(_S_word_bit); 8657: --_M_p; 8657: } 8657: _M_offset = static_cast(__n); 8657: } 8657: 8657: bool 8657: operator==(const _Bit_iterator_base& __i) const 8657: { return _M_p == __i._M_p && _M_offset == __i._M_offset; } 8657: 8657: bool 8657: operator<(const _Bit_iterator_base& __i) const 8657: { 8657: return _M_p < __i._M_p 8657: || (_M_p == __i._M_p && _M_offset < __i._M_offset); 8657: } 8657: 8657: bool 8657: operator!=(const _Bit_iterator_base& __i) const 8657: { return !(*this == __i); } 8657: 8657: bool 8657: operator>(const _Bit_iterator_base& __i) const 8657: { return __i < *this; } 8657: 8657: bool 8657: operator<=(const _Bit_iterator_base& __i) const 8657: { return !(__i < *this); } 8657: 8657: bool 8657: operator>=(const _Bit_iterator_base& __i) const 8657: { return !(*this < __i); } 8657: }; 8657: 8657: inline ptrdiff_t 8657: operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 8657: { 8657: return (int(_S_word_bit) * (__x._M_p - __y._M_p) 8657: + __x._M_offset - __y._M_offset); 8657: } 8657: 8657: struct _Bit_iterator : public _Bit_iterator_base 8657: { 8657: typedef _Bit_reference reference; 8657: typedef _Bit_reference* pointer; 8657: typedef _Bit_iterator iterator; 8657: 8657: _Bit_iterator() : _Bit_iterator_base(0, 0) { } 8657: 8657: _Bit_iterator(_Bit_type * __x, unsigned int __y) 8657: : _Bit_iterator_base(__x, __y) { } 8657: 8657: iterator 8657: _M_const_cast() const 8657: { return *this; } 8657: 8657: reference 8657: operator*() const 8657: { return reference(_M_p, 1UL << _M_offset); } 8657: 8657: iterator& 8657: operator++() 8657: { 8657: _M_bump_up(); 8657: return *this; 8657: } 8657: 8657: iterator 8657: operator++(int) 8657: { 8657: iterator __tmp = *this; 8657: _M_bump_up(); 8657: return __tmp; 8657: } 8657: 8657: iterator& 8657: operator--() 8657: { 8657: _M_bump_down(); 8657: return *this; 8657: } 8657: 8657: iterator 8657: operator--(int) 8657: { 8657: iterator __tmp = *this; 8657: _M_bump_down(); 8657: return __tmp; 8657: } 8657: 8657: iterator& 8657: operator+=(difference_type __i) 8657: { 8657: _M_incr(__i); 8657: return *this; 8657: } 8657: 8657: iterator& 8657: operator-=(difference_type __i) 8657: { 8657: *this += -__i; 8657: return *this; 8657: } 8657: 8657: iterator 8657: operator+(difference_type __i) const 8657: { 8657: iterator __tmp = *this; 8657: return __tmp += __i; 8657: } 8657: 8657: iterator 8657: operator-(difference_type __i) const 8657: { 8657: iterator __tmp = *this; 8657: return __tmp -= __i; 8657: } 8657: 8657: reference 8657: operator[](difference_type __i) const 8657: { return *(*this + __i); } 8657: }; 8657: 8657: inline _Bit_iterator 8657: operator+(ptrdiff_t __n, const _Bit_iterator& __x) 8657: { return __x + __n; } 8657: 8657: struct _Bit_const_iterator : public _Bit_iterator_base 8657: { 8657: typedef bool reference; 8657: typedef bool const_reference; 8657: typedef const bool* pointer; 8657: typedef _Bit_const_iterator const_iterator; 8657: 8657: _Bit_const_iterator() : _Bit_iterator_base(0, 0) { } 8657: 8657: _Bit_const_iterator(_Bit_type * __x, unsigned int __y) 8657: : _Bit_iterator_base(__x, __y) { } 8657: 8657: _Bit_const_iterator(const _Bit_iterator& __x) 8657: : _Bit_iterator_base(__x._M_p, __x._M_offset) { } 8657: 8657: _Bit_iterator 8657: _M_const_cast() const 8657: { return _Bit_iterator(_M_p, _M_offset); } 8657: 8657: const_reference 8657: operator*() const 8657: { return _Bit_reference(_M_p, 1UL << _M_offset); } 8657: 8657: const_iterator& 8657: operator++() 8657: { 8657: _M_bump_up(); 8657: return *this; 8657: } 8657: 8657: const_iterator 8657: operator++(int) 8657: { 8657: const_iterator __tmp = *this; 8657: _M_bump_up(); 8657: return __tmp; 8657: } 8657: 8657: const_iterator& 8657: operator--() 8657: { 8657: _M_bump_down(); 8657: return *this; 8657: } 8657: 8657: const_iterator 8657: operator--(int) 8657: { 8657: const_iterator __tmp = *this; 8657: _M_bump_down(); 8657: return __tmp; 8657: } 8657: 8657: const_iterator& 8657: operator+=(difference_type __i) 8657: { 8657: _M_incr(__i); 8657: return *this; 8657: } 8657: 8657: const_iterator& 8657: operator-=(difference_type __i) 8657: { 8657: *this += -__i; 8657: return *this; 8657: } 8657: 8657: const_iterator 8657: operator+(difference_type __i) const 8657: { 8657: const_iterator __tmp = *this; 8657: return __tmp += __i; 8657: } 8657: 8657: const_iterator 8657: operator-(difference_type __i) const 8657: { 8657: const_iterator __tmp = *this; 8657: return __tmp -= __i; 8657: } 8657: 8657: const_reference 8657: operator[](difference_type __i) const 8657: { return *(*this + __i); } 8657: }; 8657: 8657: inline _Bit_const_iterator 8657: operator+(ptrdiff_t __n, const _Bit_const_iterator& __x) 8657: { return __x + __n; } 8657: 8657: inline void 8657: __fill_bvector(_Bit_type * __v, 8657: unsigned int __first, unsigned int __last, bool __x) 8657: { 8657: const _Bit_type __fmask = ~0ul << __first; 8657: const _Bit_type __lmask = ~0ul >> (_S_word_bit - __last); 8657: const _Bit_type __mask = __fmask & __lmask; 8657: 8657: if (__x) 8657: *__v |= __mask; 8657: else 8657: *__v &= ~__mask; 8657: } 8657: 8657: inline void 8657: fill(_Bit_iterator __first, _Bit_iterator __last, const bool& __x) 8657: { 8657: if (__first._M_p != __last._M_p) 8657: { 8657: _Bit_type* __first_p = __first._M_p; 8657: if (__first._M_offset != 0) 8657: __fill_bvector(__first_p++, __first._M_offset, _S_word_bit, __x); 8657: 8657: __builtin_memset(__first_p, __x ? ~0 : 0, 8657: (__last._M_p - __first_p) * sizeof(_Bit_type)); 8657: 8657: if (__last._M_offset != 0) 8657: __fill_bvector(__last._M_p, 0, __last._M_offset, __x); 8657: } 8657: else if (__first._M_offset != __last._M_offset) 8657: __fill_bvector(__first._M_p, __first._M_offset, __last._M_offset, __x); 8657: } 8657: 8657: template 8657: struct _Bvector_base 8657: { 8657: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8657: rebind<_Bit_type>::other _Bit_alloc_type; 8657: typedef typename __gnu_cxx::__alloc_traits<_Bit_alloc_type> 8657: _Bit_alloc_traits; 8657: typedef typename _Bit_alloc_traits::pointer _Bit_pointer; 8657: 8657: struct _Bvector_impl_data 8657: { 8657: _Bit_iterator _M_start; 8657: _Bit_iterator _M_finish; 8657: _Bit_pointer _M_end_of_storage; 8657: 8657: _Bvector_impl_data() noexcept 8657: : _M_start(), _M_finish(), _M_end_of_storage() 8657: { } 8657: 8657: 8657: _Bvector_impl_data(_Bvector_impl_data&& __x) noexcept 8657: : _M_start(__x._M_start), _M_finish(__x._M_finish) 8657: , _M_end_of_storage(__x._M_end_of_storage) 8657: { __x._M_reset(); } 8657: 8657: void 8657: _M_move_data(_Bvector_impl_data&& __x) noexcept 8657: { 8657: this->_M_start = __x._M_start; 8657: this->_M_finish = __x._M_finish; 8657: this->_M_end_of_storage = __x._M_end_of_storage; 8657: __x._M_reset(); 8657: } 8657: 8657: 8657: void 8657: _M_reset() noexcept 8657: { 8657: _M_start = _M_finish = _Bit_iterator(); 8657: _M_end_of_storage = _Bit_pointer(); 8657: } 8657: }; 8657: 8657: struct _Bvector_impl 8657: : public _Bit_alloc_type, public _Bvector_impl_data 8657: { 8657: public: 8657: _Bvector_impl() 8657: noexcept(noexcept(_Bit_alloc_type())) 8657: : _Bit_alloc_type() 8657: { } 8657: 8657: _Bvector_impl(const _Bit_alloc_type& __a) noexcept 8657: : _Bit_alloc_type(__a) 8657: { } 8657: 8657: 8657: _Bvector_impl(_Bvector_impl&&) = default; 8657: 8657: 8657: _Bit_type* 8657: _M_end_addr() const noexcept 8657: { 8657: if (this->_M_end_of_storage) 8657: return std::__addressof(this->_M_end_of_storage[-1]) + 1; 8657: return 0; 8657: } 8657: }; 8657: 8657: public: 8657: typedef _Alloc allocator_type; 8657: 8657: _Bit_alloc_type& 8657: _M_get_Bit_allocator() noexcept 8657: { return this->_M_impl; } 8657: 8657: const _Bit_alloc_type& 8657: _M_get_Bit_allocator() const noexcept 8657: { return this->_M_impl; } 8657: 8657: allocator_type 8657: get_allocator() const noexcept 8657: { return allocator_type(_M_get_Bit_allocator()); } 8657: 8657: 8657: _Bvector_base() = default; 8657: 8657: 8657: 8657: 8657: _Bvector_base(const allocator_type& __a) 8657: : _M_impl(__a) { } 8657: 8657: 8657: _Bvector_base(_Bvector_base&&) = default; 8657: 8657: 8657: ~_Bvector_base() 8657: { this->_M_deallocate(); } 8657: 8657: protected: 8657: _Bvector_impl _M_impl; 8657: 8657: _Bit_pointer 8657: _M_allocate(size_t __n) 8657: { return _Bit_alloc_traits::allocate(_M_impl, _S_nword(__n)); } 8657: 8657: void 8657: _M_deallocate() 8657: { 8657: if (_M_impl._M_start._M_p) 8657: { 8657: const size_t __n = _M_impl._M_end_addr() - _M_impl._M_start._M_p; 8657: _Bit_alloc_traits::deallocate(_M_impl, 8657: _M_impl._M_end_of_storage - __n, 8657: __n); 8657: _M_impl._M_reset(); 8657: } 8657: } 8657: 8657: 8657: void 8657: _M_move_data(_Bvector_base&& __x) noexcept 8657: { _M_impl._M_move_data(std::move(__x._M_impl)); } 8657: 8657: 8657: static size_t 8657: _S_nword(size_t __n) 8657: { return (__n + int(_S_word_bit) - 1) / int(_S_word_bit); } 8657: }; 8657: 8657: 8657: 8657: } 8657: 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: # 586 "/usr/include/c++/8/bits/stl_bvector.h" 3 8657: template 8657: class vector : protected _Bvector_base<_Alloc> 8657: { 8657: typedef _Bvector_base<_Alloc> _Base; 8657: typedef typename _Base::_Bit_pointer _Bit_pointer; 8657: typedef typename _Base::_Bit_alloc_traits _Bit_alloc_traits; 8657: 8657: 8657: template friend struct hash; 8657: 8657: 8657: public: 8657: typedef bool value_type; 8657: typedef size_t size_type; 8657: typedef ptrdiff_t difference_type; 8657: typedef _Bit_reference reference; 8657: typedef bool const_reference; 8657: typedef _Bit_reference* pointer; 8657: typedef const bool* const_pointer; 8657: typedef _Bit_iterator iterator; 8657: typedef _Bit_const_iterator const_iterator; 8657: typedef std::reverse_iterator const_reverse_iterator; 8657: typedef std::reverse_iterator reverse_iterator; 8657: typedef _Alloc allocator_type; 8657: 8657: allocator_type 8657: get_allocator() const 8657: { return _Base::get_allocator(); } 8657: 8657: protected: 8657: using _Base::_M_allocate; 8657: using _Base::_M_deallocate; 8657: using _Base::_S_nword; 8657: using _Base::_M_get_Bit_allocator; 8657: 8657: public: 8657: 8657: vector() = default; 8657: 8657: 8657: 8657: 8657: explicit 8657: vector(const allocator_type& __a) 8657: : _Base(__a) { } 8657: 8657: 8657: explicit 8657: vector(size_type __n, const allocator_type& __a = allocator_type()) 8657: : vector(__n, false, __a) 8657: { } 8657: 8657: vector(size_type __n, const bool& __value, 8657: const allocator_type& __a = allocator_type()) 8657: 8657: 8657: 8657: 8657: 8657: : _Base(__a) 8657: { 8657: _M_initialize(__n); 8657: _M_initialize_value(__value); 8657: } 8657: 8657: vector(const vector& __x) 8657: : _Base(_Bit_alloc_traits::_S_select_on_copy(__x._M_get_Bit_allocator())) 8657: { 8657: _M_initialize(__x.size()); 8657: _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); 8657: } 8657: 8657: 8657: vector(vector&&) = default; 8657: 8657: vector(vector&& __x, const allocator_type& __a) 8657: noexcept(_Bit_alloc_traits::_S_always_equal()) 8657: : _Base(__a) 8657: { 8657: if (__x.get_allocator() == __a) 8657: this->_M_move_data(std::move(__x)); 8657: else 8657: { 8657: _M_initialize(__x.size()); 8657: _M_copy_aligned(__x.begin(), __x.end(), begin()); 8657: __x.clear(); 8657: } 8657: } 8657: 8657: vector(const vector& __x, const allocator_type& __a) 8657: : _Base(__a) 8657: { 8657: _M_initialize(__x.size()); 8657: _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); 8657: } 8657: 8657: vector(initializer_list __l, 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(__a) 8657: { 8657: _M_initialize_range(__l.begin(), __l.end(), 8657: random_access_iterator_tag()); 8657: } 8657: 8657: 8657: 8657: template> 8657: vector(_InputIterator __first, _InputIterator __last, 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(__a) 8657: { _M_initialize_dispatch(__first, __last, __false_type()); } 8657: # 709 "/usr/include/c++/8/bits/stl_bvector.h" 3 8657: ~vector() noexcept { } 8657: 8657: vector& 8657: operator=(const vector& __x) 8657: { 8657: if (&__x == this) 8657: return *this; 8657: 8657: if (_Bit_alloc_traits::_S_propagate_on_copy_assign()) 8657: { 8657: if (this->_M_get_Bit_allocator() != __x._M_get_Bit_allocator()) 8657: { 8657: this->_M_deallocate(); 8657: std::__alloc_on_copy(_M_get_Bit_allocator(), 8657: __x._M_get_Bit_allocator()); 8657: _M_initialize(__x.size()); 8657: } 8657: else 8657: std::__alloc_on_copy(_M_get_Bit_allocator(), 8657: __x._M_get_Bit_allocator()); 8657: } 8657: 8657: if (__x.size() > capacity()) 8657: { 8657: this->_M_deallocate(); 8657: _M_initialize(__x.size()); 8657: } 8657: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 8657: begin()); 8657: return *this; 8657: } 8657: 8657: 8657: vector& 8657: operator=(vector&& __x) noexcept(_Bit_alloc_traits::_S_nothrow_move()) 8657: { 8657: if (_Bit_alloc_traits::_S_propagate_on_move_assign() 8657: || this->_M_get_Bit_allocator() == __x._M_get_Bit_allocator()) 8657: { 8657: this->_M_deallocate(); 8657: this->_M_move_data(std::move(__x)); 8657: std::__alloc_on_move(_M_get_Bit_allocator(), 8657: __x._M_get_Bit_allocator()); 8657: } 8657: else 8657: { 8657: if (__x.size() > capacity()) 8657: { 8657: this->_M_deallocate(); 8657: _M_initialize(__x.size()); 8657: } 8657: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 8657: begin()); 8657: __x.clear(); 8657: } 8657: return *this; 8657: } 8657: 8657: vector& 8657: operator=(initializer_list __l) 8657: { 8657: this->assign (__l.begin(), __l.end()); 8657: return *this; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: void 8657: assign(size_type __n, const bool& __x) 8657: { _M_fill_assign(__n, __x); } 8657: 8657: 8657: template> 8657: void 8657: assign(_InputIterator __first, _InputIterator __last) 8657: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 8657: # 800 "/usr/include/c++/8/bits/stl_bvector.h" 3 8657: void 8657: assign(initializer_list __l) 8657: { _M_assign_aux(__l.begin(), __l.end(), random_access_iterator_tag()); } 8657: 8657: 8657: iterator 8657: begin() noexcept 8657: { return this->_M_impl._M_start; } 8657: 8657: const_iterator 8657: begin() const noexcept 8657: { return this->_M_impl._M_start; } 8657: 8657: iterator 8657: end() noexcept 8657: { return this->_M_impl._M_finish; } 8657: 8657: const_iterator 8657: end() const noexcept 8657: { return this->_M_impl._M_finish; } 8657: 8657: reverse_iterator 8657: rbegin() noexcept 8657: { return reverse_iterator(end()); } 8657: 8657: const_reverse_iterator 8657: rbegin() const noexcept 8657: { return const_reverse_iterator(end()); } 8657: 8657: reverse_iterator 8657: rend() noexcept 8657: { return reverse_iterator(begin()); } 8657: 8657: const_reverse_iterator 8657: rend() const noexcept 8657: { return const_reverse_iterator(begin()); } 8657: 8657: 8657: const_iterator 8657: cbegin() const noexcept 8657: { return this->_M_impl._M_start; } 8657: 8657: const_iterator 8657: cend() const noexcept 8657: { return this->_M_impl._M_finish; } 8657: 8657: const_reverse_iterator 8657: crbegin() const noexcept 8657: { return const_reverse_iterator(end()); } 8657: 8657: const_reverse_iterator 8657: crend() const noexcept 8657: { return const_reverse_iterator(begin()); } 8657: 8657: 8657: size_type 8657: size() const noexcept 8657: { return size_type(end() - begin()); } 8657: 8657: size_type 8657: max_size() const noexcept 8657: { 8657: const size_type __isize = 8657: __gnu_cxx::__numeric_traits::__max 8657: - int(_S_word_bit) + 1; 8657: const size_type __asize 8657: = _Bit_alloc_traits::max_size(_M_get_Bit_allocator()); 8657: return (__asize <= __isize / int(_S_word_bit) 8657: ? __asize * int(_S_word_bit) : __isize); 8657: } 8657: 8657: size_type 8657: capacity() const noexcept 8657: { return size_type(const_iterator(this->_M_impl._M_end_addr(), 0) 8657: - begin()); } 8657: 8657: bool 8657: empty() const noexcept 8657: { return begin() == end(); } 8657: 8657: reference 8657: operator[](size_type __n) 8657: { 8657: return *iterator(this->_M_impl._M_start._M_p 8657: + __n / int(_S_word_bit), __n % int(_S_word_bit)); 8657: } 8657: 8657: const_reference 8657: operator[](size_type __n) const 8657: { 8657: return *const_iterator(this->_M_impl._M_start._M_p 8657: + __n / int(_S_word_bit), __n % int(_S_word_bit)); 8657: } 8657: 8657: protected: 8657: void 8657: _M_range_check(size_type __n) const 8657: { 8657: if (__n >= this->size()) 8657: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8657: 8657: , 8657: __n, this->size()); 8657: } 8657: 8657: public: 8657: reference 8657: at(size_type __n) 8657: { _M_range_check(__n); return (*this)[__n]; } 8657: 8657: const_reference 8657: at(size_type __n) const 8657: { _M_range_check(__n); return (*this)[__n]; } 8657: 8657: void 8657: reserve(size_type __n) 8657: { 8657: if (__n > max_size()) 8657: __throw_length_error(("vector::reserve")); 8657: if (capacity() < __n) 8657: _M_reallocate(__n); 8657: } 8657: 8657: reference 8657: front() 8657: { return *begin(); } 8657: 8657: const_reference 8657: front() const 8657: { return *begin(); } 8657: 8657: reference 8657: back() 8657: { return *(end() - 1); } 8657: 8657: const_reference 8657: back() const 8657: { return *(end() - 1); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: void 8657: data() noexcept { } 8657: 8657: void 8657: push_back(bool __x) 8657: { 8657: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 8657: *this->_M_impl._M_finish++ = __x; 8657: else 8657: _M_insert_aux(end(), __x); 8657: } 8657: 8657: void 8657: swap(vector& __x) noexcept 8657: { 8657: std::swap(this->_M_impl._M_start, __x._M_impl._M_start); 8657: std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); 8657: std::swap(this->_M_impl._M_end_of_storage, 8657: __x._M_impl._M_end_of_storage); 8657: _Bit_alloc_traits::_S_on_swap(_M_get_Bit_allocator(), 8657: __x._M_get_Bit_allocator()); 8657: } 8657: 8657: 8657: static void 8657: swap(reference __x, reference __y) noexcept 8657: { 8657: bool __tmp = __x; 8657: __x = __y; 8657: __y = __tmp; 8657: } 8657: 8657: iterator 8657: 8657: insert(const_iterator __position, const bool& __x = bool()) 8657: 8657: 8657: 8657: { 8657: const difference_type __n = __position - begin(); 8657: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr() 8657: && __position == end()) 8657: *this->_M_impl._M_finish++ = __x; 8657: else 8657: _M_insert_aux(__position._M_const_cast(), __x); 8657: return begin() + __n; 8657: } 8657: 8657: 8657: template> 8657: iterator 8657: insert(const_iterator __position, 8657: _InputIterator __first, _InputIterator __last) 8657: { 8657: difference_type __offset = __position - cbegin(); 8657: _M_insert_dispatch(__position._M_const_cast(), 8657: __first, __last, __false_type()); 8657: return begin() + __offset; 8657: } 8657: # 1016 "/usr/include/c++/8/bits/stl_bvector.h" 3 8657: iterator 8657: insert(const_iterator __position, size_type __n, const bool& __x) 8657: { 8657: difference_type __offset = __position - cbegin(); 8657: _M_fill_insert(__position._M_const_cast(), __n, __x); 8657: return begin() + __offset; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: insert(const_iterator __p, initializer_list __l) 8657: { return this->insert(__p, __l.begin(), __l.end()); } 8657: 8657: 8657: void 8657: pop_back() 8657: { --this->_M_impl._M_finish; } 8657: 8657: iterator 8657: 8657: erase(const_iterator __position) 8657: 8657: 8657: 8657: { return _M_erase(__position._M_const_cast()); } 8657: 8657: iterator 8657: 8657: erase(const_iterator __first, const_iterator __last) 8657: 8657: 8657: 8657: { return _M_erase(__first._M_const_cast(), __last._M_const_cast()); } 8657: 8657: void 8657: resize(size_type __new_size, bool __x = bool()) 8657: { 8657: if (__new_size < size()) 8657: _M_erase_at_end(begin() + difference_type(__new_size)); 8657: else 8657: insert(end(), __new_size - size(), __x); 8657: } 8657: 8657: 8657: void 8657: shrink_to_fit() 8657: { _M_shrink_to_fit(); } 8657: 8657: 8657: void 8657: flip() noexcept 8657: { 8657: _Bit_type * const __end = this->_M_impl._M_end_addr(); 8657: for (_Bit_type * __p = this->_M_impl._M_start._M_p; __p != __end; ++__p) 8657: *__p = ~*__p; 8657: } 8657: 8657: void 8657: clear() noexcept 8657: { _M_erase_at_end(begin()); } 8657: 8657: 8657: template 8657: 8657: 8657: 8657: void 8657: 8657: emplace_back(_Args&&... __args) 8657: { 8657: push_back(bool(__args...)); 8657: 8657: 8657: 8657: } 8657: 8657: template 8657: iterator 8657: emplace(const_iterator __pos, _Args&&... __args) 8657: { return insert(__pos, bool(__args...)); } 8657: 8657: 8657: protected: 8657: 8657: iterator 8657: _M_copy_aligned(const_iterator __first, const_iterator __last, 8657: iterator __result) 8657: { 8657: _Bit_type* __q = std::copy(__first._M_p, __last._M_p, __result._M_p); 8657: return std::copy(const_iterator(__last._M_p, 0), __last, 8657: iterator(__q, 0)); 8657: } 8657: 8657: void 8657: _M_initialize(size_type __n) 8657: { 8657: if (__n) 8657: { 8657: _Bit_pointer __q = this->_M_allocate(__n); 8657: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 8657: this->_M_impl._M_start = iterator(std::__addressof(*__q), 0); 8657: } 8657: else 8657: { 8657: this->_M_impl._M_end_of_storage = _Bit_pointer(); 8657: this->_M_impl._M_start = iterator(0, 0); 8657: } 8657: this->_M_impl._M_finish = this->_M_impl._M_start + difference_type(__n); 8657: 8657: } 8657: 8657: void 8657: _M_initialize_value(bool __x) 8657: { 8657: if (_Bit_type* __p = this->_M_impl._M_start._M_p) 8657: __builtin_memset(__p, __x ? ~0 : 0, 8657: (this->_M_impl._M_end_addr() - __p) 8657: * sizeof(_Bit_type)); 8657: } 8657: 8657: void 8657: _M_reallocate(size_type __n); 8657: 8657: 8657: bool 8657: _M_shrink_to_fit(); 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: void 8657: _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) 8657: { 8657: _M_initialize(static_cast(__n)); 8657: _M_initialize_value(__x); 8657: } 8657: 8657: template 8657: void 8657: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 8657: __false_type) 8657: { _M_initialize_range(__first, __last, 8657: std::__iterator_category(__first)); } 8657: 8657: template 8657: void 8657: _M_initialize_range(_InputIterator __first, _InputIterator __last, 8657: std::input_iterator_tag) 8657: { 8657: for (; __first != __last; ++__first) 8657: push_back(*__first); 8657: } 8657: 8657: template 8657: void 8657: _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, 8657: std::forward_iterator_tag) 8657: { 8657: const size_type __n = std::distance(__first, __last); 8657: _M_initialize(__n); 8657: std::copy(__first, __last, this->_M_impl._M_start); 8657: } 8657: # 1202 "/usr/include/c++/8/bits/stl_bvector.h" 3 8657: void 8657: _M_fill_assign(size_t __n, bool __x) 8657: { 8657: if (__n > size()) 8657: { 8657: _M_initialize_value(__x); 8657: insert(end(), __n - size(), __x); 8657: } 8657: else 8657: { 8657: _M_erase_at_end(begin() + __n); 8657: _M_initialize_value(__x); 8657: } 8657: } 8657: 8657: template 8657: void 8657: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8657: std::input_iterator_tag) 8657: { 8657: iterator __cur = begin(); 8657: for (; __first != __last && __cur != end(); ++__cur, ++__first) 8657: *__cur = *__first; 8657: if (__first == __last) 8657: _M_erase_at_end(__cur); 8657: else 8657: insert(end(), __first, __last); 8657: } 8657: 8657: template 8657: void 8657: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 8657: std::forward_iterator_tag) 8657: { 8657: const size_type __len = std::distance(__first, __last); 8657: if (__len < size()) 8657: _M_erase_at_end(std::copy(__first, __last, begin())); 8657: else 8657: { 8657: _ForwardIterator __mid = __first; 8657: std::advance(__mid, size()); 8657: std::copy(__first, __mid, begin()); 8657: insert(end(), __mid, __last); 8657: } 8657: } 8657: 8657: 8657: 8657: 8657: 8657: template 8657: void 8657: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, 8657: __true_type) 8657: { _M_fill_insert(__pos, __n, __x); } 8657: 8657: template 8657: void 8657: _M_insert_dispatch(iterator __pos, 8657: _InputIterator __first, _InputIterator __last, 8657: __false_type) 8657: { _M_insert_range(__pos, __first, __last, 8657: std::__iterator_category(__first)); } 8657: 8657: void 8657: _M_fill_insert(iterator __position, size_type __n, bool __x); 8657: 8657: template 8657: void 8657: _M_insert_range(iterator __pos, _InputIterator __first, 8657: _InputIterator __last, std::input_iterator_tag) 8657: { 8657: for (; __first != __last; ++__first) 8657: { 8657: __pos = insert(__pos, *__first); 8657: ++__pos; 8657: } 8657: } 8657: 8657: template 8657: void 8657: _M_insert_range(iterator __position, _ForwardIterator __first, 8657: _ForwardIterator __last, std::forward_iterator_tag); 8657: 8657: void 8657: _M_insert_aux(iterator __position, bool __x); 8657: 8657: size_type 8657: _M_check_len(size_type __n, const char* __s) const 8657: { 8657: if (max_size() - size() < __n) 8657: __throw_length_error((__s)); 8657: 8657: const size_type __len = size() + std::max(size(), __n); 8657: return (__len < size() || __len > max_size()) ? max_size() : __len; 8657: } 8657: 8657: void 8657: _M_erase_at_end(iterator __pos) 8657: { this->_M_impl._M_finish = __pos; } 8657: 8657: iterator 8657: _M_erase(iterator __pos); 8657: 8657: iterator 8657: _M_erase(iterator __first, iterator __last); 8657: }; 8657: 8657: 8657: 8657: } 8657: 8657: 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: template 8657: struct hash> 8657: : public __hash_base> 8657: { 8657: size_t 8657: operator()(const std::vector&) const noexcept; 8657: }; 8657: 8657: 8657: } 8657: # 66 "/usr/include/c++/8/vector" 2 3 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/vector.tcc" 1 3 8657: # 59 "/usr/include/c++/8/bits/vector.tcc" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: template 8657: void 8657: vector<_Tp, _Alloc>:: 8657: reserve(size_type __n) 8657: { 8657: if (__n > this->max_size()) 8657: __throw_length_error(("vector::reserve")); 8657: if (this->capacity() < __n) 8657: { 8657: const size_type __old_size = size(); 8657: pointer __tmp = _M_allocate_and_copy(__n, 8657: std::__make_move_if_noexcept_iterator(this->_M_impl._M_start), 8657: std::__make_move_if_noexcept_iterator(this->_M_impl._M_finish)); 8657: ; 8657: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: _M_deallocate(this->_M_impl._M_start, 8657: this->_M_impl._M_end_of_storage 8657: - this->_M_impl._M_start); 8657: this->_M_impl._M_start = __tmp; 8657: this->_M_impl._M_finish = __tmp + __old_size; 8657: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 8657: } 8657: } 8657: 8657: 8657: template 8657: template 8657: 8657: 8657: 8657: void 8657: 8657: vector<_Tp, _Alloc>:: 8657: emplace_back(_Args&&... __args) 8657: { 8657: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8657: { 8657: ; 8657: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8657: std::forward<_Args>(__args)...); 8657: ++this->_M_impl._M_finish; 8657: ; 8657: } 8657: else 8657: _M_realloc_insert(end(), std::forward<_Args>(__args)...); 8657: 8657: 8657: 8657: } 8657: 8657: 8657: template 8657: typename vector<_Tp, _Alloc>::iterator 8657: vector<_Tp, _Alloc>:: 8657: 8657: insert(const_iterator __position, const value_type& __x) 8657: 8657: 8657: 8657: { 8657: const size_type __n = __position - begin(); 8657: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8657: if (__position == end()) 8657: { 8657: ; 8657: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8657: __x); 8657: ++this->_M_impl._M_finish; 8657: ; 8657: } 8657: else 8657: { 8657: 8657: const auto __pos = begin() + (__position - cbegin()); 8657: 8657: 8657: _Temporary_value __x_copy(this, __x); 8657: _M_insert_aux(__pos, std::move(__x_copy._M_val())); 8657: 8657: 8657: 8657: } 8657: else 8657: 8657: _M_realloc_insert(begin() + (__position - cbegin()), __x); 8657: 8657: 8657: 8657: 8657: return iterator(this->_M_impl._M_start + __n); 8657: } 8657: 8657: template 8657: typename vector<_Tp, _Alloc>::iterator 8657: vector<_Tp, _Alloc>:: 8657: _M_erase(iterator __position) 8657: { 8657: if (__position + 1 != end()) 8657: std::move(__position + 1, end(), __position); 8657: --this->_M_impl._M_finish; 8657: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 8657: ; 8657: return __position; 8657: } 8657: 8657: template 8657: typename vector<_Tp, _Alloc>::iterator 8657: vector<_Tp, _Alloc>:: 8657: _M_erase(iterator __first, iterator __last) 8657: { 8657: if (__first != __last) 8657: { 8657: if (__last != end()) 8657: std::move(__last, end(), __first); 8657: _M_erase_at_end(__first.base() + (end() - __last)); 8657: } 8657: return __first; 8657: } 8657: 8657: template 8657: vector<_Tp, _Alloc>& 8657: vector<_Tp, _Alloc>:: 8657: operator=(const vector<_Tp, _Alloc>& __x) 8657: { 8657: if (&__x != this) 8657: { 8657: ; 8657: 8657: if (_Alloc_traits::_S_propagate_on_copy_assign()) 8657: { 8657: if (!_Alloc_traits::_S_always_equal() 8657: && _M_get_Tp_allocator() != __x._M_get_Tp_allocator()) 8657: { 8657: 8657: this->clear(); 8657: _M_deallocate(this->_M_impl._M_start, 8657: this->_M_impl._M_end_of_storage 8657: - this->_M_impl._M_start); 8657: this->_M_impl._M_start = nullptr; 8657: this->_M_impl._M_finish = nullptr; 8657: this->_M_impl._M_end_of_storage = nullptr; 8657: } 8657: std::__alloc_on_copy(_M_get_Tp_allocator(), 8657: __x._M_get_Tp_allocator()); 8657: } 8657: 8657: const size_type __xlen = __x.size(); 8657: if (__xlen > capacity()) 8657: { 8657: pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), 8657: __x.end()); 8657: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: _M_deallocate(this->_M_impl._M_start, 8657: this->_M_impl._M_end_of_storage 8657: - this->_M_impl._M_start); 8657: this->_M_impl._M_start = __tmp; 8657: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen; 8657: } 8657: else if (size() >= __xlen) 8657: { 8657: std::_Destroy(std::copy(__x.begin(), __x.end(), begin()), 8657: end(), _M_get_Tp_allocator()); 8657: } 8657: else 8657: { 8657: std::copy(__x._M_impl._M_start, __x._M_impl._M_start + size(), 8657: this->_M_impl._M_start); 8657: std::__uninitialized_copy_a(__x._M_impl._M_start + size(), 8657: __x._M_impl._M_finish, 8657: this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: } 8657: this->_M_impl._M_finish = this->_M_impl._M_start + __xlen; 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: void 8657: vector<_Tp, _Alloc>:: 8657: _M_fill_assign(size_t __n, const value_type& __val) 8657: { 8657: if (__n > capacity()) 8657: { 8657: vector __tmp(__n, __val, _M_get_Tp_allocator()); 8657: __tmp._M_impl._M_swap_data(this->_M_impl); 8657: } 8657: else if (__n > size()) 8657: { 8657: std::fill(begin(), end(), __val); 8657: const size_type __add = __n - size(); 8657: ; 8657: this->_M_impl._M_finish = 8657: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 8657: __add, __val, _M_get_Tp_allocator()); 8657: ; 8657: } 8657: else 8657: _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val)); 8657: } 8657: 8657: template 8657: template 8657: void 8657: vector<_Tp, _Alloc>:: 8657: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8657: std::input_iterator_tag) 8657: { 8657: pointer __cur(this->_M_impl._M_start); 8657: for (; __first != __last && __cur != this->_M_impl._M_finish; 8657: ++__cur, ++__first) 8657: *__cur = *__first; 8657: if (__first == __last) 8657: _M_erase_at_end(__cur); 8657: else 8657: _M_range_insert(end(), __first, __last, 8657: std::__iterator_category(__first)); 8657: } 8657: 8657: template 8657: template 8657: void 8657: vector<_Tp, _Alloc>:: 8657: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 8657: std::forward_iterator_tag) 8657: { 8657: const size_type __len = std::distance(__first, __last); 8657: 8657: if (__len > capacity()) 8657: { 8657: pointer __tmp(_M_allocate_and_copy(__len, __first, __last)); 8657: ; 8657: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: _M_deallocate(this->_M_impl._M_start, 8657: this->_M_impl._M_end_of_storage 8657: - this->_M_impl._M_start); 8657: this->_M_impl._M_start = __tmp; 8657: this->_M_impl._M_finish = this->_M_impl._M_start + __len; 8657: this->_M_impl._M_end_of_storage = this->_M_impl._M_finish; 8657: } 8657: else if (size() >= __len) 8657: _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start)); 8657: else 8657: { 8657: _ForwardIterator __mid = __first; 8657: std::advance(__mid, size()); 8657: std::copy(__first, __mid, this->_M_impl._M_start); 8657: const size_type __attribute__((__unused__)) __n = __len - size(); 8657: ; 8657: this->_M_impl._M_finish = 8657: std::__uninitialized_copy_a(__mid, __last, 8657: this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: ; 8657: } 8657: } 8657: 8657: 8657: template 8657: auto 8657: vector<_Tp, _Alloc>:: 8657: _M_insert_rval(const_iterator __position, value_type&& __v) -> iterator 8657: { 8657: const auto __n = __position - cbegin(); 8657: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8657: if (__position == cend()) 8657: { 8657: ; 8657: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8657: std::move(__v)); 8657: ++this->_M_impl._M_finish; 8657: ; 8657: } 8657: else 8657: _M_insert_aux(begin() + __n, std::move(__v)); 8657: else 8657: _M_realloc_insert(begin() + __n, std::move(__v)); 8657: 8657: return iterator(this->_M_impl._M_start + __n); 8657: } 8657: 8657: template 8657: template 8657: auto 8657: vector<_Tp, _Alloc>:: 8657: _M_emplace_aux(const_iterator __position, _Args&&... __args) 8657: -> iterator 8657: { 8657: const auto __n = __position - cbegin(); 8657: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8657: if (__position == cend()) 8657: { 8657: ; 8657: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8657: std::forward<_Args>(__args)...); 8657: ++this->_M_impl._M_finish; 8657: ; 8657: } 8657: else 8657: { 8657: 8657: 8657: 8657: _Temporary_value __tmp(this, std::forward<_Args>(__args)...); 8657: _M_insert_aux(begin() + __n, std::move(__tmp._M_val())); 8657: } 8657: else 8657: _M_realloc_insert(begin() + __n, std::forward<_Args>(__args)...); 8657: 8657: return iterator(this->_M_impl._M_start + __n); 8657: } 8657: 8657: template 8657: template 8657: void 8657: vector<_Tp, _Alloc>:: 8657: _M_insert_aux(iterator __position, _Arg&& __arg) 8657: 8657: 8657: 8657: 8657: 8657: 8657: { 8657: ; 8657: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8657: std::move(*(this->_M_impl._M_finish - 1))); 8657: ++this->_M_impl._M_finish; 8657: ; 8657: 8657: 8657: 8657: std::move_backward(__position.base(), this->_M_impl._M_finish - 2, this->_M_impl._M_finish - 1) 8657: 8657: ; 8657: 8657: 8657: 8657: *__position = std::forward<_Arg>(__arg); 8657: 8657: } 8657: 8657: 8657: template 8657: template 8657: void 8657: vector<_Tp, _Alloc>:: 8657: _M_realloc_insert(iterator __position, _Args&&... __args) 8657: 8657: 8657: 8657: 8657: 8657: 8657: { 8657: const size_type __len = 8657: _M_check_len(size_type(1), "vector::_M_realloc_insert"); 8657: pointer __old_start = this->_M_impl._M_start; 8657: pointer __old_finish = this->_M_impl._M_finish; 8657: const size_type __elems_before = __position - begin(); 8657: pointer __new_start(this->_M_allocate(__len)); 8657: pointer __new_finish(__new_start); 8657: try 8657: { 8657: 8657: 8657: 8657: 8657: 8657: _Alloc_traits::construct(this->_M_impl, 8657: __new_start + __elems_before, 8657: 8657: std::forward<_Args>(__args)...); 8657: 8657: 8657: 8657: __new_finish = pointer(); 8657: 8657: __new_finish 8657: = std::__uninitialized_move_if_noexcept_a 8657: (__old_start, __position.base(), 8657: __new_start, _M_get_Tp_allocator()); 8657: 8657: ++__new_finish; 8657: 8657: __new_finish 8657: = std::__uninitialized_move_if_noexcept_a 8657: (__position.base(), __old_finish, 8657: __new_finish, _M_get_Tp_allocator()); 8657: } 8657: catch(...) 8657: { 8657: if (!__new_finish) 8657: _Alloc_traits::destroy(this->_M_impl, 8657: __new_start + __elems_before); 8657: else 8657: std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); 8657: _M_deallocate(__new_start, __len); 8657: throw; 8657: } 8657: ; 8657: std::_Destroy(__old_start, __old_finish, _M_get_Tp_allocator()); 8657: _M_deallocate(__old_start, 8657: this->_M_impl._M_end_of_storage - __old_start); 8657: this->_M_impl._M_start = __new_start; 8657: this->_M_impl._M_finish = __new_finish; 8657: this->_M_impl._M_end_of_storage = __new_start + __len; 8657: } 8657: 8657: template 8657: void 8657: vector<_Tp, _Alloc>:: 8657: _M_fill_insert(iterator __position, size_type __n, const value_type& __x) 8657: { 8657: if (__n != 0) 8657: { 8657: if (size_type(this->_M_impl._M_end_of_storage 8657: - this->_M_impl._M_finish) >= __n) 8657: { 8657: 8657: 8657: 8657: _Temporary_value __tmp(this, __x); 8657: value_type& __x_copy = __tmp._M_val(); 8657: 8657: const size_type __elems_after = end() - __position; 8657: pointer __old_finish(this->_M_impl._M_finish); 8657: if (__elems_after > __n) 8657: { 8657: ; 8657: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 8657: this->_M_impl._M_finish, 8657: this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: this->_M_impl._M_finish += __n; 8657: ; 8657: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 8657: ; 8657: std::fill(__position.base(), __position.base() + __n, 8657: __x_copy); 8657: } 8657: else 8657: { 8657: ; 8657: this->_M_impl._M_finish = 8657: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 8657: __n - __elems_after, 8657: __x_copy, 8657: _M_get_Tp_allocator()); 8657: ; 8657: std::__uninitialized_move_a(__position.base(), __old_finish, 8657: this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: this->_M_impl._M_finish += __elems_after; 8657: ; 8657: std::fill(__position.base(), __old_finish, __x_copy); 8657: } 8657: } 8657: else 8657: { 8657: const size_type __len = 8657: _M_check_len(__n, "vector::_M_fill_insert"); 8657: const size_type __elems_before = __position - begin(); 8657: pointer __new_start(this->_M_allocate(__len)); 8657: pointer __new_finish(__new_start); 8657: try 8657: { 8657: 8657: std::__uninitialized_fill_n_a(__new_start + __elems_before, 8657: __n, __x, 8657: _M_get_Tp_allocator()); 8657: __new_finish = pointer(); 8657: 8657: __new_finish 8657: = std::__uninitialized_move_if_noexcept_a 8657: (this->_M_impl._M_start, __position.base(), 8657: __new_start, _M_get_Tp_allocator()); 8657: 8657: __new_finish += __n; 8657: 8657: __new_finish 8657: = std::__uninitialized_move_if_noexcept_a 8657: (__position.base(), this->_M_impl._M_finish, 8657: __new_finish, _M_get_Tp_allocator()); 8657: } 8657: catch(...) 8657: { 8657: if (!__new_finish) 8657: std::_Destroy(__new_start + __elems_before, 8657: __new_start + __elems_before + __n, 8657: _M_get_Tp_allocator()); 8657: else 8657: std::_Destroy(__new_start, __new_finish, 8657: _M_get_Tp_allocator()); 8657: _M_deallocate(__new_start, __len); 8657: throw; 8657: } 8657: ; 8657: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: _M_deallocate(this->_M_impl._M_start, 8657: this->_M_impl._M_end_of_storage 8657: - this->_M_impl._M_start); 8657: this->_M_impl._M_start = __new_start; 8657: this->_M_impl._M_finish = __new_finish; 8657: this->_M_impl._M_end_of_storage = __new_start + __len; 8657: } 8657: } 8657: } 8657: 8657: 8657: template 8657: void 8657: vector<_Tp, _Alloc>:: 8657: _M_default_append(size_type __n) 8657: { 8657: if (__n != 0) 8657: { 8657: size_type __size = size(); 8657: size_type __navail = size_type(this->_M_impl._M_end_of_storage 8657: - this->_M_impl._M_finish); 8657: 8657: if (__size > max_size() || __navail > max_size() - __size) 8657: __builtin_unreachable(); 8657: 8657: if (__navail >= __n) 8657: { 8657: ; 8657: this->_M_impl._M_finish = 8657: std::__uninitialized_default_n_a(this->_M_impl._M_finish, 8657: __n, _M_get_Tp_allocator()); 8657: ; 8657: } 8657: else 8657: { 8657: const size_type __len = 8657: _M_check_len(__n, "vector::_M_default_append"); 8657: const size_type __old_size = __size; 8657: pointer __new_start(this->_M_allocate(__len)); 8657: pointer __new_finish(__new_start); 8657: try 8657: { 8657: __new_finish 8657: = std::__uninitialized_move_if_noexcept_a 8657: (this->_M_impl._M_start, this->_M_impl._M_finish, 8657: __new_start, _M_get_Tp_allocator()); 8657: __new_finish = 8657: std::__uninitialized_default_n_a(__new_finish, __n, 8657: _M_get_Tp_allocator()); 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__new_start, __new_finish, 8657: _M_get_Tp_allocator()); 8657: _M_deallocate(__new_start, __len); 8657: throw; 8657: } 8657: ; 8657: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: _M_deallocate(this->_M_impl._M_start, 8657: this->_M_impl._M_end_of_storage 8657: - this->_M_impl._M_start); 8657: this->_M_impl._M_start = __new_start; 8657: this->_M_impl._M_finish = __new_finish; 8657: this->_M_impl._M_end_of_storage = __new_start + __len; 8657: } 8657: } 8657: } 8657: 8657: template 8657: bool 8657: vector<_Tp, _Alloc>:: 8657: _M_shrink_to_fit() 8657: { 8657: if (capacity() == size()) 8657: return false; 8657: ; 8657: return std::__shrink_to_fit_aux::_S_do_it(*this); 8657: } 8657: 8657: 8657: template 8657: template 8657: void 8657: vector<_Tp, _Alloc>:: 8657: _M_range_insert(iterator __pos, _InputIterator __first, 8657: _InputIterator __last, std::input_iterator_tag) 8657: { 8657: if (__pos == end()) 8657: { 8657: for (; __first != __last; ++__first) 8657: insert(end(), *__first); 8657: } 8657: else if (__first != __last) 8657: { 8657: vector __tmp(__first, __last, _M_get_Tp_allocator()); 8657: insert(__pos, 8657: std::make_move_iterator(__tmp.begin()), 8657: std::make_move_iterator(__tmp.end())); 8657: } 8657: } 8657: 8657: template 8657: template 8657: void 8657: vector<_Tp, _Alloc>:: 8657: _M_range_insert(iterator __position, _ForwardIterator __first, 8657: _ForwardIterator __last, std::forward_iterator_tag) 8657: { 8657: if (__first != __last) 8657: { 8657: const size_type __n = std::distance(__first, __last); 8657: if (size_type(this->_M_impl._M_end_of_storage 8657: - this->_M_impl._M_finish) >= __n) 8657: { 8657: const size_type __elems_after = end() - __position; 8657: pointer __old_finish(this->_M_impl._M_finish); 8657: if (__elems_after > __n) 8657: { 8657: ; 8657: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 8657: this->_M_impl._M_finish, 8657: this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: this->_M_impl._M_finish += __n; 8657: ; 8657: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 8657: ; 8657: std::copy(__first, __last, __position); 8657: } 8657: else 8657: { 8657: _ForwardIterator __mid = __first; 8657: std::advance(__mid, __elems_after); 8657: ; 8657: std::__uninitialized_copy_a(__mid, __last, 8657: this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: this->_M_impl._M_finish += __n - __elems_after; 8657: ; 8657: std::__uninitialized_move_a(__position.base(), 8657: __old_finish, 8657: this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: this->_M_impl._M_finish += __elems_after; 8657: ; 8657: std::copy(__first, __mid, __position); 8657: } 8657: } 8657: else 8657: { 8657: const size_type __len = 8657: _M_check_len(__n, "vector::_M_range_insert"); 8657: pointer __new_start(this->_M_allocate(__len)); 8657: pointer __new_finish(__new_start); 8657: try 8657: { 8657: __new_finish 8657: = std::__uninitialized_move_if_noexcept_a 8657: (this->_M_impl._M_start, __position.base(), 8657: __new_start, _M_get_Tp_allocator()); 8657: __new_finish 8657: = std::__uninitialized_copy_a(__first, __last, 8657: __new_finish, 8657: _M_get_Tp_allocator()); 8657: __new_finish 8657: = std::__uninitialized_move_if_noexcept_a 8657: (__position.base(), this->_M_impl._M_finish, 8657: __new_finish, _M_get_Tp_allocator()); 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(__new_start, __new_finish, 8657: _M_get_Tp_allocator()); 8657: _M_deallocate(__new_start, __len); 8657: throw; 8657: } 8657: ; 8657: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: _M_deallocate(this->_M_impl._M_start, 8657: this->_M_impl._M_end_of_storage 8657: - this->_M_impl._M_start); 8657: this->_M_impl._M_start = __new_start; 8657: this->_M_impl._M_finish = __new_finish; 8657: this->_M_impl._M_end_of_storage = __new_start + __len; 8657: } 8657: } 8657: } 8657: 8657: 8657: 8657: template 8657: void 8657: vector:: 8657: _M_reallocate(size_type __n) 8657: { 8657: _Bit_pointer __q = this->_M_allocate(__n); 8657: iterator __start(std::__addressof(*__q), 0); 8657: iterator __finish(_M_copy_aligned(begin(), end(), __start)); 8657: this->_M_deallocate(); 8657: this->_M_impl._M_start = __start; 8657: this->_M_impl._M_finish = __finish; 8657: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 8657: } 8657: 8657: template 8657: void 8657: vector:: 8657: _M_fill_insert(iterator __position, size_type __n, bool __x) 8657: { 8657: if (__n == 0) 8657: return; 8657: if (capacity() - size() >= __n) 8657: { 8657: std::copy_backward(__position, end(), 8657: this->_M_impl._M_finish + difference_type(__n)); 8657: std::fill(__position, __position + difference_type(__n), __x); 8657: this->_M_impl._M_finish += difference_type(__n); 8657: } 8657: else 8657: { 8657: const size_type __len = 8657: _M_check_len(__n, "vector::_M_fill_insert"); 8657: _Bit_pointer __q = this->_M_allocate(__len); 8657: iterator __start(std::__addressof(*__q), 0); 8657: iterator __i = _M_copy_aligned(begin(), __position, __start); 8657: std::fill(__i, __i + difference_type(__n), __x); 8657: iterator __finish = std::copy(__position, end(), 8657: __i + difference_type(__n)); 8657: this->_M_deallocate(); 8657: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 8657: this->_M_impl._M_start = __start; 8657: this->_M_impl._M_finish = __finish; 8657: } 8657: } 8657: 8657: template 8657: template 8657: void 8657: vector:: 8657: _M_insert_range(iterator __position, _ForwardIterator __first, 8657: _ForwardIterator __last, std::forward_iterator_tag) 8657: { 8657: if (__first != __last) 8657: { 8657: size_type __n = std::distance(__first, __last); 8657: if (capacity() - size() >= __n) 8657: { 8657: std::copy_backward(__position, end(), 8657: this->_M_impl._M_finish 8657: + difference_type(__n)); 8657: std::copy(__first, __last, __position); 8657: this->_M_impl._M_finish += difference_type(__n); 8657: } 8657: else 8657: { 8657: const size_type __len = 8657: _M_check_len(__n, "vector::_M_insert_range"); 8657: _Bit_pointer __q = this->_M_allocate(__len); 8657: iterator __start(std::__addressof(*__q), 0); 8657: iterator __i = _M_copy_aligned(begin(), __position, __start); 8657: __i = std::copy(__first, __last, __i); 8657: iterator __finish = std::copy(__position, end(), __i); 8657: this->_M_deallocate(); 8657: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 8657: this->_M_impl._M_start = __start; 8657: this->_M_impl._M_finish = __finish; 8657: } 8657: } 8657: } 8657: 8657: template 8657: void 8657: vector:: 8657: _M_insert_aux(iterator __position, bool __x) 8657: { 8657: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 8657: { 8657: std::copy_backward(__position, this->_M_impl._M_finish, 8657: this->_M_impl._M_finish + 1); 8657: *__position = __x; 8657: ++this->_M_impl._M_finish; 8657: } 8657: else 8657: { 8657: const size_type __len = 8657: _M_check_len(size_type(1), "vector::_M_insert_aux"); 8657: _Bit_pointer __q = this->_M_allocate(__len); 8657: iterator __start(std::__addressof(*__q), 0); 8657: iterator __i = _M_copy_aligned(begin(), __position, __start); 8657: *__i++ = __x; 8657: iterator __finish = std::copy(__position, end(), __i); 8657: this->_M_deallocate(); 8657: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 8657: this->_M_impl._M_start = __start; 8657: this->_M_impl._M_finish = __finish; 8657: } 8657: } 8657: 8657: template 8657: typename vector::iterator 8657: vector:: 8657: _M_erase(iterator __position) 8657: { 8657: if (__position + 1 != end()) 8657: std::copy(__position + 1, end(), __position); 8657: --this->_M_impl._M_finish; 8657: return __position; 8657: } 8657: 8657: template 8657: typename vector::iterator 8657: vector:: 8657: _M_erase(iterator __first, iterator __last) 8657: { 8657: if (__first != __last) 8657: _M_erase_at_end(std::copy(__last, end(), __first)); 8657: return __first; 8657: } 8657: 8657: 8657: template 8657: bool 8657: vector:: 8657: _M_shrink_to_fit() 8657: { 8657: if (capacity() - size() < int(_S_word_bit)) 8657: return false; 8657: try 8657: { 8657: _M_reallocate(size()); 8657: return true; 8657: } 8657: catch(...) 8657: { return false; } 8657: } 8657: 8657: 8657: 8657: 8657: } 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: template 8657: size_t 8657: hash>:: 8657: operator()(const std::vector& __b) const noexcept 8657: { 8657: size_t __hash = 0; 8657: using std::_S_word_bit; 8657: using std::_Bit_type; 8657: 8657: const size_t __words = __b.size() / _S_word_bit; 8657: if (__words) 8657: { 8657: const size_t __clength = __words * sizeof(_Bit_type); 8657: __hash = std::_Hash_impl::hash(__b._M_impl._M_start._M_p, __clength); 8657: } 8657: 8657: const size_t __extrabits = __b.size() % _S_word_bit; 8657: if (__extrabits) 8657: { 8657: _Bit_type __hiword = *__b._M_impl._M_finish._M_p; 8657: __hiword &= ~((~static_cast<_Bit_type>(0)) << __extrabits); 8657: 8657: const size_t __clength 8657: = (__extrabits + 8 - 1) / 8; 8657: if (__words) 8657: __hash = std::_Hash_impl::hash(&__hiword, __clength, __hash); 8657: else 8657: __hash = std::_Hash_impl::hash(&__hiword, __clength); 8657: } 8657: 8657: return __hash; 8657: } 8657: 8657: 8657: } 8657: # 70 "/usr/include/c++/8/vector" 2 3 8657: # 54 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 2 3 4 8657: 8657: # 1 "/usr/include/c++/8/map" 1 3 4 8657: # 58 "/usr/include/c++/8/map" 3 4 8657: 8657: # 59 "/usr/include/c++/8/map" 3 8657: 8657: # 1 "/usr/include/c++/8/bits/stl_tree.h" 1 3 8657: # 61 "/usr/include/c++/8/bits/stl_tree.h" 3 8657: 8657: # 62 "/usr/include/c++/8/bits/stl_tree.h" 3 8657: # 75 "/usr/include/c++/8/bits/stl_tree.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 99 "/usr/include/c++/8/bits/stl_tree.h" 3 8657: enum _Rb_tree_color { _S_red = false, _S_black = true }; 8657: 8657: struct _Rb_tree_node_base 8657: { 8657: typedef _Rb_tree_node_base* _Base_ptr; 8657: typedef const _Rb_tree_node_base* _Const_Base_ptr; 8657: 8657: _Rb_tree_color _M_color; 8657: _Base_ptr _M_parent; 8657: _Base_ptr _M_left; 8657: _Base_ptr _M_right; 8657: 8657: static _Base_ptr 8657: _S_minimum(_Base_ptr __x) noexcept 8657: { 8657: while (__x->_M_left != 0) __x = __x->_M_left; 8657: return __x; 8657: } 8657: 8657: static _Const_Base_ptr 8657: _S_minimum(_Const_Base_ptr __x) noexcept 8657: { 8657: while (__x->_M_left != 0) __x = __x->_M_left; 8657: return __x; 8657: } 8657: 8657: static _Base_ptr 8657: _S_maximum(_Base_ptr __x) noexcept 8657: { 8657: while (__x->_M_right != 0) __x = __x->_M_right; 8657: return __x; 8657: } 8657: 8657: static _Const_Base_ptr 8657: _S_maximum(_Const_Base_ptr __x) noexcept 8657: { 8657: while (__x->_M_right != 0) __x = __x->_M_right; 8657: return __x; 8657: } 8657: }; 8657: 8657: 8657: template 8657: struct _Rb_tree_key_compare 8657: { 8657: _Key_compare _M_key_compare; 8657: 8657: _Rb_tree_key_compare() 8657: noexcept(is_nothrow_default_constructible<_Key_compare>::value) 8657: 8657: : _M_key_compare() 8657: { } 8657: 8657: _Rb_tree_key_compare(const _Key_compare& __comp) 8657: : _M_key_compare(__comp) 8657: { } 8657: 8657: 8657: 8657: _Rb_tree_key_compare(const _Rb_tree_key_compare&) = default; 8657: 8657: _Rb_tree_key_compare(_Rb_tree_key_compare&& __x) 8657: noexcept(is_nothrow_copy_constructible<_Key_compare>::value) 8657: : _M_key_compare(__x._M_key_compare) 8657: { } 8657: 8657: }; 8657: 8657: 8657: struct _Rb_tree_header 8657: { 8657: _Rb_tree_node_base _M_header; 8657: size_t _M_node_count; 8657: 8657: _Rb_tree_header() noexcept 8657: { 8657: _M_header._M_color = _S_red; 8657: _M_reset(); 8657: } 8657: 8657: 8657: _Rb_tree_header(_Rb_tree_header&& __x) noexcept 8657: { 8657: if (__x._M_header._M_parent != nullptr) 8657: _M_move_data(__x); 8657: else 8657: { 8657: _M_header._M_color = _S_red; 8657: _M_reset(); 8657: } 8657: } 8657: 8657: 8657: void 8657: _M_move_data(_Rb_tree_header& __from) 8657: { 8657: _M_header._M_color = __from._M_header._M_color; 8657: _M_header._M_parent = __from._M_header._M_parent; 8657: _M_header._M_left = __from._M_header._M_left; 8657: _M_header._M_right = __from._M_header._M_right; 8657: _M_header._M_parent->_M_parent = &_M_header; 8657: _M_node_count = __from._M_node_count; 8657: 8657: __from._M_reset(); 8657: } 8657: 8657: void 8657: _M_reset() 8657: { 8657: _M_header._M_parent = 0; 8657: _M_header._M_left = &_M_header; 8657: _M_header._M_right = &_M_header; 8657: _M_node_count = 0; 8657: } 8657: }; 8657: 8657: template 8657: struct _Rb_tree_node : public _Rb_tree_node_base 8657: { 8657: typedef _Rb_tree_node<_Val>* _Link_type; 8657: # 231 "/usr/include/c++/8/bits/stl_tree.h" 3 8657: __gnu_cxx::__aligned_membuf<_Val> _M_storage; 8657: 8657: _Val* 8657: _M_valptr() 8657: { return _M_storage._M_ptr(); } 8657: 8657: const _Val* 8657: _M_valptr() const 8657: { return _M_storage._M_ptr(); } 8657: 8657: }; 8657: 8657: __attribute__ ((__pure__)) _Rb_tree_node_base* 8657: _Rb_tree_increment(_Rb_tree_node_base* __x) throw (); 8657: 8657: __attribute__ ((__pure__)) const _Rb_tree_node_base* 8657: _Rb_tree_increment(const _Rb_tree_node_base* __x) throw (); 8657: 8657: __attribute__ ((__pure__)) _Rb_tree_node_base* 8657: _Rb_tree_decrement(_Rb_tree_node_base* __x) throw (); 8657: 8657: __attribute__ ((__pure__)) const _Rb_tree_node_base* 8657: _Rb_tree_decrement(const _Rb_tree_node_base* __x) throw (); 8657: 8657: template 8657: struct _Rb_tree_iterator 8657: { 8657: typedef _Tp value_type; 8657: typedef _Tp& reference; 8657: typedef _Tp* pointer; 8657: 8657: typedef bidirectional_iterator_tag iterator_category; 8657: typedef ptrdiff_t difference_type; 8657: 8657: typedef _Rb_tree_iterator<_Tp> _Self; 8657: typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; 8657: typedef _Rb_tree_node<_Tp>* _Link_type; 8657: 8657: _Rb_tree_iterator() noexcept 8657: : _M_node() { } 8657: 8657: explicit 8657: _Rb_tree_iterator(_Base_ptr __x) noexcept 8657: : _M_node(__x) { } 8657: 8657: reference 8657: operator*() const noexcept 8657: { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } 8657: 8657: pointer 8657: operator->() const noexcept 8657: { return static_cast<_Link_type> (_M_node)->_M_valptr(); } 8657: 8657: _Self& 8657: operator++() noexcept 8657: { 8657: _M_node = _Rb_tree_increment(_M_node); 8657: return *this; 8657: } 8657: 8657: _Self 8657: operator++(int) noexcept 8657: { 8657: _Self __tmp = *this; 8657: _M_node = _Rb_tree_increment(_M_node); 8657: return __tmp; 8657: } 8657: 8657: _Self& 8657: operator--() noexcept 8657: { 8657: _M_node = _Rb_tree_decrement(_M_node); 8657: return *this; 8657: } 8657: 8657: _Self 8657: operator--(int) noexcept 8657: { 8657: _Self __tmp = *this; 8657: _M_node = _Rb_tree_decrement(_M_node); 8657: return __tmp; 8657: } 8657: 8657: bool 8657: operator==(const _Self& __x) const noexcept 8657: { return _M_node == __x._M_node; } 8657: 8657: bool 8657: operator!=(const _Self& __x) const noexcept 8657: { return _M_node != __x._M_node; } 8657: 8657: _Base_ptr _M_node; 8657: }; 8657: 8657: template 8657: struct _Rb_tree_const_iterator 8657: { 8657: typedef _Tp value_type; 8657: typedef const _Tp& reference; 8657: typedef const _Tp* pointer; 8657: 8657: typedef _Rb_tree_iterator<_Tp> iterator; 8657: 8657: typedef bidirectional_iterator_tag iterator_category; 8657: typedef ptrdiff_t difference_type; 8657: 8657: typedef _Rb_tree_const_iterator<_Tp> _Self; 8657: typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr; 8657: typedef const _Rb_tree_node<_Tp>* _Link_type; 8657: 8657: _Rb_tree_const_iterator() noexcept 8657: : _M_node() { } 8657: 8657: explicit 8657: _Rb_tree_const_iterator(_Base_ptr __x) noexcept 8657: : _M_node(__x) { } 8657: 8657: _Rb_tree_const_iterator(const iterator& __it) noexcept 8657: : _M_node(__it._M_node) { } 8657: 8657: iterator 8657: _M_const_cast() const noexcept 8657: { return iterator(const_cast(_M_node)); } 8657: 8657: reference 8657: operator*() const noexcept 8657: { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } 8657: 8657: pointer 8657: operator->() const noexcept 8657: { return static_cast<_Link_type>(_M_node)->_M_valptr(); } 8657: 8657: _Self& 8657: operator++() noexcept 8657: { 8657: _M_node = _Rb_tree_increment(_M_node); 8657: return *this; 8657: } 8657: 8657: _Self 8657: operator++(int) noexcept 8657: { 8657: _Self __tmp = *this; 8657: _M_node = _Rb_tree_increment(_M_node); 8657: return __tmp; 8657: } 8657: 8657: _Self& 8657: operator--() noexcept 8657: { 8657: _M_node = _Rb_tree_decrement(_M_node); 8657: return *this; 8657: } 8657: 8657: _Self 8657: operator--(int) noexcept 8657: { 8657: _Self __tmp = *this; 8657: _M_node = _Rb_tree_decrement(_M_node); 8657: return __tmp; 8657: } 8657: 8657: bool 8657: operator==(const _Self& __x) const noexcept 8657: { return _M_node == __x._M_node; } 8657: 8657: bool 8657: operator!=(const _Self& __x) const noexcept 8657: { return _M_node != __x._M_node; } 8657: 8657: _Base_ptr _M_node; 8657: }; 8657: 8657: template 8657: inline bool 8657: operator==(const _Rb_tree_iterator<_Val>& __x, 8657: const _Rb_tree_const_iterator<_Val>& __y) noexcept 8657: { return __x._M_node == __y._M_node; } 8657: 8657: template 8657: inline bool 8657: operator!=(const _Rb_tree_iterator<_Val>& __x, 8657: const _Rb_tree_const_iterator<_Val>& __y) noexcept 8657: { return __x._M_node != __y._M_node; } 8657: 8657: void 8657: _Rb_tree_insert_and_rebalance(const bool __insert_left, 8657: _Rb_tree_node_base* __x, 8657: _Rb_tree_node_base* __p, 8657: _Rb_tree_node_base& __header) throw (); 8657: 8657: _Rb_tree_node_base* 8657: _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z, 8657: _Rb_tree_node_base& __header) throw (); 8657: # 442 "/usr/include/c++/8/bits/stl_tree.h" 3 8657: template > 8657: class _Rb_tree 8657: { 8657: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8657: rebind<_Rb_tree_node<_Val> >::other _Node_allocator; 8657: 8657: typedef __gnu_cxx::__alloc_traits<_Node_allocator> _Alloc_traits; 8657: 8657: 8657: static_assert(__is_invocable<_Compare&, const _Key&, const _Key&>{}, 8657: "comparison object must be invocable with two arguments of key type"); 8657: # 462 "/usr/include/c++/8/bits/stl_tree.h" 3 8657: protected: 8657: typedef _Rb_tree_node_base* _Base_ptr; 8657: typedef const _Rb_tree_node_base* _Const_Base_ptr; 8657: typedef _Rb_tree_node<_Val>* _Link_type; 8657: typedef const _Rb_tree_node<_Val>* _Const_Link_type; 8657: 8657: private: 8657: 8657: 8657: struct _Reuse_or_alloc_node 8657: { 8657: _Reuse_or_alloc_node(_Rb_tree& __t) 8657: : _M_root(__t._M_root()), _M_nodes(__t._M_rightmost()), _M_t(__t) 8657: { 8657: if (_M_root) 8657: { 8657: _M_root->_M_parent = 0; 8657: 8657: if (_M_nodes->_M_left) 8657: _M_nodes = _M_nodes->_M_left; 8657: } 8657: else 8657: _M_nodes = 0; 8657: } 8657: 8657: 8657: _Reuse_or_alloc_node(const _Reuse_or_alloc_node&) = delete; 8657: 8657: 8657: ~_Reuse_or_alloc_node() 8657: { _M_t._M_erase(static_cast<_Link_type>(_M_root)); } 8657: 8657: template 8657: _Link_type 8657: 8657: 8657: 8657: operator()(_Arg&& __arg) 8657: 8657: { 8657: _Link_type __node = static_cast<_Link_type>(_M_extract()); 8657: if (__node) 8657: { 8657: _M_t._M_destroy_node(__node); 8657: _M_t._M_construct_node(__node, std::forward<_Arg>(__arg)); 8657: return __node; 8657: } 8657: 8657: return _M_t._M_create_node(std::forward<_Arg>(__arg)); 8657: } 8657: 8657: private: 8657: _Base_ptr 8657: _M_extract() 8657: { 8657: if (!_M_nodes) 8657: return _M_nodes; 8657: 8657: _Base_ptr __node = _M_nodes; 8657: _M_nodes = _M_nodes->_M_parent; 8657: if (_M_nodes) 8657: { 8657: if (_M_nodes->_M_right == __node) 8657: { 8657: _M_nodes->_M_right = 0; 8657: 8657: if (_M_nodes->_M_left) 8657: { 8657: _M_nodes = _M_nodes->_M_left; 8657: 8657: while (_M_nodes->_M_right) 8657: _M_nodes = _M_nodes->_M_right; 8657: 8657: if (_M_nodes->_M_left) 8657: _M_nodes = _M_nodes->_M_left; 8657: } 8657: } 8657: else 8657: _M_nodes->_M_left = 0; 8657: } 8657: else 8657: _M_root = 0; 8657: 8657: return __node; 8657: } 8657: 8657: _Base_ptr _M_root; 8657: _Base_ptr _M_nodes; 8657: _Rb_tree& _M_t; 8657: }; 8657: 8657: 8657: 8657: struct _Alloc_node 8657: { 8657: _Alloc_node(_Rb_tree& __t) 8657: : _M_t(__t) { } 8657: 8657: template 8657: _Link_type 8657: 8657: 8657: 8657: operator()(_Arg&& __arg) const 8657: 8657: { return _M_t._M_create_node(std::forward<_Arg>(__arg)); } 8657: 8657: private: 8657: _Rb_tree& _M_t; 8657: }; 8657: 8657: public: 8657: typedef _Key key_type; 8657: typedef _Val value_type; 8657: typedef value_type* pointer; 8657: typedef const value_type* const_pointer; 8657: typedef value_type& reference; 8657: typedef const value_type& const_reference; 8657: typedef size_t size_type; 8657: typedef ptrdiff_t difference_type; 8657: typedef _Alloc allocator_type; 8657: 8657: _Node_allocator& 8657: _M_get_Node_allocator() noexcept 8657: { return this->_M_impl; } 8657: 8657: const _Node_allocator& 8657: _M_get_Node_allocator() const noexcept 8657: { return this->_M_impl; } 8657: 8657: allocator_type 8657: get_allocator() const noexcept 8657: { return allocator_type(_M_get_Node_allocator()); } 8657: 8657: protected: 8657: _Link_type 8657: _M_get_node() 8657: { return _Alloc_traits::allocate(_M_get_Node_allocator(), 1); } 8657: 8657: void 8657: _M_put_node(_Link_type __p) noexcept 8657: { _Alloc_traits::deallocate(_M_get_Node_allocator(), __p, 1); } 8657: # 630 "/usr/include/c++/8/bits/stl_tree.h" 3 8657: template 8657: void 8657: _M_construct_node(_Link_type __node, _Args&&... __args) 8657: { 8657: try 8657: { 8657: ::new(__node) _Rb_tree_node<_Val>; 8657: _Alloc_traits::construct(_M_get_Node_allocator(), 8657: __node->_M_valptr(), 8657: std::forward<_Args>(__args)...); 8657: } 8657: catch(...) 8657: { 8657: __node->~_Rb_tree_node<_Val>(); 8657: _M_put_node(__node); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: _Link_type 8657: _M_create_node(_Args&&... __args) 8657: { 8657: _Link_type __tmp = _M_get_node(); 8657: _M_construct_node(__tmp, std::forward<_Args>(__args)...); 8657: return __tmp; 8657: } 8657: 8657: void 8657: _M_destroy_node(_Link_type __p) noexcept 8657: { 8657: _Alloc_traits::destroy(_M_get_Node_allocator(), __p->_M_valptr()); 8657: __p->~_Rb_tree_node<_Val>(); 8657: } 8657: 8657: 8657: void 8657: _M_drop_node(_Link_type __p) noexcept 8657: { 8657: _M_destroy_node(__p); 8657: _M_put_node(__p); 8657: } 8657: 8657: template 8657: _Link_type 8657: _M_clone_node(_Const_Link_type __x, _NodeGen& __node_gen) 8657: { 8657: _Link_type __tmp = __node_gen(*__x->_M_valptr()); 8657: __tmp->_M_color = __x->_M_color; 8657: __tmp->_M_left = 0; 8657: __tmp->_M_right = 0; 8657: return __tmp; 8657: } 8657: 8657: protected: 8657: 8657: 8657: 8657: 8657: template 8657: 8657: struct _Rb_tree_impl 8657: : public _Node_allocator 8657: , public _Rb_tree_key_compare<_Key_compare> 8657: , public _Rb_tree_header 8657: { 8657: typedef _Rb_tree_key_compare<_Key_compare> _Base_key_compare; 8657: 8657: _Rb_tree_impl() 8657: noexcept(is_nothrow_default_constructible<_Node_allocator>::value && is_nothrow_default_constructible<_Base_key_compare>::value) 8657: 8657: 8657: : _Node_allocator() 8657: { } 8657: 8657: _Rb_tree_impl(const _Rb_tree_impl& __x) 8657: : _Node_allocator(_Alloc_traits::_S_select_on_copy(__x)) 8657: , _Base_key_compare(__x._M_key_compare) 8657: { } 8657: 8657: 8657: 8657: 8657: 8657: 8657: _Rb_tree_impl(_Rb_tree_impl&&) = default; 8657: 8657: _Rb_tree_impl(const _Key_compare& __comp, _Node_allocator&& __a) 8657: : _Node_allocator(std::move(__a)), _Base_key_compare(__comp) 8657: { } 8657: 8657: }; 8657: 8657: _Rb_tree_impl<_Compare> _M_impl; 8657: 8657: protected: 8657: _Base_ptr& 8657: _M_root() noexcept 8657: { return this->_M_impl._M_header._M_parent; } 8657: 8657: _Const_Base_ptr 8657: _M_root() const noexcept 8657: { return this->_M_impl._M_header._M_parent; } 8657: 8657: _Base_ptr& 8657: _M_leftmost() noexcept 8657: { return this->_M_impl._M_header._M_left; } 8657: 8657: _Const_Base_ptr 8657: _M_leftmost() const noexcept 8657: { return this->_M_impl._M_header._M_left; } 8657: 8657: _Base_ptr& 8657: _M_rightmost() noexcept 8657: { return this->_M_impl._M_header._M_right; } 8657: 8657: _Const_Base_ptr 8657: _M_rightmost() const noexcept 8657: { return this->_M_impl._M_header._M_right; } 8657: 8657: _Link_type 8657: _M_begin() noexcept 8657: { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } 8657: 8657: _Const_Link_type 8657: _M_begin() const noexcept 8657: { 8657: return static_cast<_Const_Link_type> 8657: (this->_M_impl._M_header._M_parent); 8657: } 8657: 8657: _Base_ptr 8657: _M_end() noexcept 8657: { return &this->_M_impl._M_header; } 8657: 8657: _Const_Base_ptr 8657: _M_end() const noexcept 8657: { return &this->_M_impl._M_header; } 8657: 8657: static const_reference 8657: _S_value(_Const_Link_type __x) 8657: { return *__x->_M_valptr(); } 8657: 8657: static const _Key& 8657: _S_key(_Const_Link_type __x) 8657: { return _KeyOfValue()(_S_value(__x)); } 8657: 8657: static _Link_type 8657: _S_left(_Base_ptr __x) noexcept 8657: { return static_cast<_Link_type>(__x->_M_left); } 8657: 8657: static _Const_Link_type 8657: _S_left(_Const_Base_ptr __x) noexcept 8657: { return static_cast<_Const_Link_type>(__x->_M_left); } 8657: 8657: static _Link_type 8657: _S_right(_Base_ptr __x) noexcept 8657: { return static_cast<_Link_type>(__x->_M_right); } 8657: 8657: static _Const_Link_type 8657: _S_right(_Const_Base_ptr __x) noexcept 8657: { return static_cast<_Const_Link_type>(__x->_M_right); } 8657: 8657: static const_reference 8657: _S_value(_Const_Base_ptr __x) 8657: { return *static_cast<_Const_Link_type>(__x)->_M_valptr(); } 8657: 8657: static const _Key& 8657: _S_key(_Const_Base_ptr __x) 8657: { return _KeyOfValue()(_S_value(__x)); } 8657: 8657: static _Base_ptr 8657: _S_minimum(_Base_ptr __x) noexcept 8657: { return _Rb_tree_node_base::_S_minimum(__x); } 8657: 8657: static _Const_Base_ptr 8657: _S_minimum(_Const_Base_ptr __x) noexcept 8657: { return _Rb_tree_node_base::_S_minimum(__x); } 8657: 8657: static _Base_ptr 8657: _S_maximum(_Base_ptr __x) noexcept 8657: { return _Rb_tree_node_base::_S_maximum(__x); } 8657: 8657: static _Const_Base_ptr 8657: _S_maximum(_Const_Base_ptr __x) noexcept 8657: { return _Rb_tree_node_base::_S_maximum(__x); } 8657: 8657: public: 8657: typedef _Rb_tree_iterator iterator; 8657: typedef _Rb_tree_const_iterator const_iterator; 8657: 8657: typedef std::reverse_iterator reverse_iterator; 8657: typedef std::reverse_iterator const_reverse_iterator; 8657: # 832 "/usr/include/c++/8/bits/stl_tree.h" 3 8657: pair<_Base_ptr, _Base_ptr> 8657: _M_get_insert_unique_pos(const key_type& __k); 8657: 8657: pair<_Base_ptr, _Base_ptr> 8657: _M_get_insert_equal_pos(const key_type& __k); 8657: 8657: pair<_Base_ptr, _Base_ptr> 8657: _M_get_insert_hint_unique_pos(const_iterator __pos, 8657: const key_type& __k); 8657: 8657: pair<_Base_ptr, _Base_ptr> 8657: _M_get_insert_hint_equal_pos(const_iterator __pos, 8657: const key_type& __k); 8657: 8657: private: 8657: 8657: template 8657: iterator 8657: _M_insert_(_Base_ptr __x, _Base_ptr __y, _Arg&& __v, _NodeGen&); 8657: 8657: iterator 8657: _M_insert_node(_Base_ptr __x, _Base_ptr __y, _Link_type __z); 8657: 8657: template 8657: iterator 8657: _M_insert_lower(_Base_ptr __y, _Arg&& __v); 8657: 8657: template 8657: iterator 8657: _M_insert_equal_lower(_Arg&& __x); 8657: 8657: iterator 8657: _M_insert_lower_node(_Base_ptr __p, _Link_type __z); 8657: 8657: iterator 8657: _M_insert_equal_lower_node(_Link_type __z); 8657: # 883 "/usr/include/c++/8/bits/stl_tree.h" 3 8657: template 8657: _Link_type 8657: _M_copy(_Const_Link_type __x, _Base_ptr __p, _NodeGen&); 8657: 8657: template 8657: _Link_type 8657: _M_copy(const _Rb_tree& __x, _NodeGen& __gen) 8657: { 8657: _Link_type __root = _M_copy(__x._M_begin(), _M_end(), __gen); 8657: _M_leftmost() = _S_minimum(__root); 8657: _M_rightmost() = _S_maximum(__root); 8657: _M_impl._M_node_count = __x._M_impl._M_node_count; 8657: return __root; 8657: } 8657: 8657: _Link_type 8657: _M_copy(const _Rb_tree& __x) 8657: { 8657: _Alloc_node __an(*this); 8657: return _M_copy(__x, __an); 8657: } 8657: 8657: void 8657: _M_erase(_Link_type __x); 8657: 8657: iterator 8657: _M_lower_bound(_Link_type __x, _Base_ptr __y, 8657: const _Key& __k); 8657: 8657: const_iterator 8657: _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8657: const _Key& __k) const; 8657: 8657: iterator 8657: _M_upper_bound(_Link_type __x, _Base_ptr __y, 8657: const _Key& __k); 8657: 8657: const_iterator 8657: _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8657: const _Key& __k) const; 8657: 8657: public: 8657: 8657: 8657: 8657: 8657: _Rb_tree() = default; 8657: 8657: 8657: _Rb_tree(const _Compare& __comp, 8657: const allocator_type& __a = allocator_type()) 8657: : _M_impl(__comp, _Node_allocator(__a)) { } 8657: 8657: _Rb_tree(const _Rb_tree& __x) 8657: : _M_impl(__x._M_impl) 8657: { 8657: if (__x._M_root() != 0) 8657: _M_root() = _M_copy(__x); 8657: } 8657: 8657: 8657: _Rb_tree(const allocator_type& __a) 8657: : _M_impl(_Compare(), _Node_allocator(__a)) 8657: { } 8657: 8657: _Rb_tree(const _Rb_tree& __x, const allocator_type& __a) 8657: : _M_impl(__x._M_impl._M_key_compare, _Node_allocator(__a)) 8657: { 8657: if (__x._M_root() != nullptr) 8657: _M_root() = _M_copy(__x); 8657: } 8657: 8657: _Rb_tree(_Rb_tree&&) = default; 8657: 8657: _Rb_tree(_Rb_tree&& __x, const allocator_type& __a) 8657: : _Rb_tree(std::move(__x), _Node_allocator(__a)) 8657: { } 8657: 8657: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a); 8657: 8657: 8657: ~_Rb_tree() noexcept 8657: { _M_erase(_M_begin()); } 8657: 8657: _Rb_tree& 8657: operator=(const _Rb_tree& __x); 8657: 8657: 8657: _Compare 8657: key_comp() const 8657: { return _M_impl._M_key_compare; } 8657: 8657: iterator 8657: begin() noexcept 8657: { return iterator(this->_M_impl._M_header._M_left); } 8657: 8657: const_iterator 8657: begin() const noexcept 8657: { return const_iterator(this->_M_impl._M_header._M_left); } 8657: 8657: iterator 8657: end() noexcept 8657: { return iterator(&this->_M_impl._M_header); } 8657: 8657: const_iterator 8657: end() const noexcept 8657: { return const_iterator(&this->_M_impl._M_header); } 8657: 8657: reverse_iterator 8657: rbegin() noexcept 8657: { return reverse_iterator(end()); } 8657: 8657: const_reverse_iterator 8657: rbegin() const noexcept 8657: { return const_reverse_iterator(end()); } 8657: 8657: reverse_iterator 8657: rend() noexcept 8657: { return reverse_iterator(begin()); } 8657: 8657: const_reverse_iterator 8657: rend() const noexcept 8657: { return const_reverse_iterator(begin()); } 8657: 8657: bool 8657: empty() const noexcept 8657: { return _M_impl._M_node_count == 0; } 8657: 8657: size_type 8657: size() const noexcept 8657: { return _M_impl._M_node_count; } 8657: 8657: size_type 8657: max_size() const noexcept 8657: { return _Alloc_traits::max_size(_M_get_Node_allocator()); } 8657: 8657: void 8657: swap(_Rb_tree& __t) 8657: noexcept(__is_nothrow_swappable<_Compare>::value); 8657: 8657: 8657: 8657: template 8657: pair 8657: _M_insert_unique(_Arg&& __x); 8657: 8657: template 8657: iterator 8657: _M_insert_equal(_Arg&& __x); 8657: 8657: template 8657: iterator 8657: _M_insert_unique_(const_iterator __pos, _Arg&& __x, _NodeGen&); 8657: 8657: template 8657: iterator 8657: _M_insert_unique_(const_iterator __pos, _Arg&& __x) 8657: { 8657: _Alloc_node __an(*this); 8657: return _M_insert_unique_(__pos, std::forward<_Arg>(__x), __an); 8657: } 8657: 8657: template 8657: iterator 8657: _M_insert_equal_(const_iterator __pos, _Arg&& __x, _NodeGen&); 8657: 8657: template 8657: iterator 8657: _M_insert_equal_(const_iterator __pos, _Arg&& __x) 8657: { 8657: _Alloc_node __an(*this); 8657: return _M_insert_equal_(__pos, std::forward<_Arg>(__x), __an); 8657: } 8657: 8657: template 8657: pair 8657: _M_emplace_unique(_Args&&... __args); 8657: 8657: template 8657: iterator 8657: _M_emplace_equal(_Args&&... __args); 8657: 8657: template 8657: iterator 8657: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args); 8657: 8657: template 8657: iterator 8657: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args); 8657: # 1103 "/usr/include/c++/8/bits/stl_tree.h" 3 8657: template 8657: void 8657: _M_insert_unique(_InputIterator __first, _InputIterator __last); 8657: 8657: template 8657: void 8657: _M_insert_equal(_InputIterator __first, _InputIterator __last); 8657: 8657: private: 8657: void 8657: _M_erase_aux(const_iterator __position); 8657: 8657: void 8657: _M_erase_aux(const_iterator __first, const_iterator __last); 8657: 8657: public: 8657: 8657: 8657: 8657: __attribute ((__abi_tag__ ("cxx11"))) 8657: iterator 8657: erase(const_iterator __position) 8657: { 8657: ; 8657: const_iterator __result = __position; 8657: ++__result; 8657: _M_erase_aux(__position); 8657: return __result._M_const_cast(); 8657: } 8657: 8657: 8657: __attribute ((__abi_tag__ ("cxx11"))) 8657: iterator 8657: erase(iterator __position) 8657: { 8657: ; 8657: iterator __result = __position; 8657: ++__result; 8657: _M_erase_aux(__position); 8657: return __result; 8657: } 8657: # 1159 "/usr/include/c++/8/bits/stl_tree.h" 3 8657: size_type 8657: erase(const key_type& __x); 8657: 8657: 8657: 8657: 8657: __attribute ((__abi_tag__ ("cxx11"))) 8657: iterator 8657: erase(const_iterator __first, const_iterator __last) 8657: { 8657: _M_erase_aux(__first, __last); 8657: return __last._M_const_cast(); 8657: } 8657: # 1181 "/usr/include/c++/8/bits/stl_tree.h" 3 8657: void 8657: erase(const key_type* __first, const key_type* __last); 8657: 8657: void 8657: clear() noexcept 8657: { 8657: _M_erase(_M_begin()); 8657: _M_impl._M_reset(); 8657: } 8657: 8657: 8657: iterator 8657: find(const key_type& __k); 8657: 8657: const_iterator 8657: find(const key_type& __k) const; 8657: 8657: size_type 8657: count(const key_type& __k) const; 8657: 8657: iterator 8657: lower_bound(const key_type& __k) 8657: { return _M_lower_bound(_M_begin(), _M_end(), __k); } 8657: 8657: const_iterator 8657: lower_bound(const key_type& __k) const 8657: { return _M_lower_bound(_M_begin(), _M_end(), __k); } 8657: 8657: iterator 8657: upper_bound(const key_type& __k) 8657: { return _M_upper_bound(_M_begin(), _M_end(), __k); } 8657: 8657: const_iterator 8657: upper_bound(const key_type& __k) const 8657: { return _M_upper_bound(_M_begin(), _M_end(), __k); } 8657: 8657: pair 8657: equal_range(const key_type& __k); 8657: 8657: pair 8657: equal_range(const key_type& __k) const; 8657: # 1341 "/usr/include/c++/8/bits/stl_tree.h" 3 8657: bool 8657: __rb_verify() const; 8657: 8657: 8657: _Rb_tree& 8657: operator=(_Rb_tree&&) 8657: noexcept(_Alloc_traits::_S_nothrow_move() 8657: && is_nothrow_move_assignable<_Compare>::value); 8657: 8657: template 8657: void 8657: _M_assign_unique(_Iterator, _Iterator); 8657: 8657: template 8657: void 8657: _M_assign_equal(_Iterator, _Iterator); 8657: 8657: private: 8657: 8657: void 8657: _M_move_data(_Rb_tree& __x, std::true_type) 8657: { _M_impl._M_move_data(__x._M_impl); } 8657: 8657: 8657: 8657: void 8657: _M_move_data(_Rb_tree&, std::false_type); 8657: 8657: 8657: void 8657: _M_move_assign(_Rb_tree&, std::true_type); 8657: 8657: 8657: 8657: void 8657: _M_move_assign(_Rb_tree&, std::false_type); 8657: # 1544 "/usr/include/c++/8/bits/stl_tree.h" 3 8657: }; 8657: 8657: template 8657: inline bool 8657: operator==(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8657: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8657: { 8657: return __x.size() == __y.size() 8657: && std::equal(__x.begin(), __x.end(), __y.begin()); 8657: } 8657: 8657: template 8657: inline bool 8657: operator<(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8657: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8657: { 8657: return std::lexicographical_compare(__x.begin(), __x.end(), 8657: __y.begin(), __y.end()); 8657: } 8657: 8657: template 8657: inline bool 8657: operator!=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8657: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8657: { return !(__x == __y); } 8657: 8657: template 8657: inline bool 8657: operator>(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8657: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8657: { return __y < __x; } 8657: 8657: template 8657: inline bool 8657: operator<=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8657: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8657: { return !(__y < __x); } 8657: 8657: template 8657: inline bool 8657: operator>=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8657: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8657: { return !(__x < __y); } 8657: 8657: template 8657: inline void 8657: swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8657: { __x.swap(__y); } 8657: 8657: 8657: template 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a) 8657: : _M_impl(__x._M_impl._M_key_compare, std::move(__a)) 8657: { 8657: using __eq = typename _Alloc_traits::is_always_equal; 8657: if (__x._M_root() != nullptr) 8657: _M_move_data(__x, __eq()); 8657: } 8657: 8657: template 8657: void 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_move_data(_Rb_tree& __x, std::false_type) 8657: { 8657: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 8657: _M_move_data(__x, std::true_type()); 8657: else 8657: { 8657: _Alloc_node __an(*this); 8657: auto __lbd = 8657: [&__an](const value_type& __cval) 8657: { 8657: auto& __val = const_cast(__cval); 8657: return __an(std::move_if_noexcept(__val)); 8657: }; 8657: _M_root() = _M_copy(__x, __lbd); 8657: } 8657: } 8657: 8657: template 8657: inline void 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_move_assign(_Rb_tree& __x, true_type) 8657: { 8657: clear(); 8657: if (__x._M_root() != nullptr) 8657: _M_move_data(__x, std::true_type()); 8657: std::__alloc_on_move(_M_get_Node_allocator(), 8657: __x._M_get_Node_allocator()); 8657: } 8657: 8657: template 8657: void 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_move_assign(_Rb_tree& __x, false_type) 8657: { 8657: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 8657: return _M_move_assign(__x, true_type{}); 8657: 8657: 8657: 8657: _Reuse_or_alloc_node __roan(*this); 8657: _M_impl._M_reset(); 8657: if (__x._M_root() != nullptr) 8657: { 8657: auto __lbd = 8657: [&__roan](const value_type& __cval) 8657: { 8657: auto& __val = const_cast(__cval); 8657: return __roan(std::move_if_noexcept(__val)); 8657: }; 8657: _M_root() = _M_copy(__x, __lbd); 8657: __x.clear(); 8657: } 8657: } 8657: 8657: template 8657: inline _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: operator=(_Rb_tree&& __x) 8657: noexcept(_Alloc_traits::_S_nothrow_move() 8657: && is_nothrow_move_assignable<_Compare>::value) 8657: { 8657: _M_impl._M_key_compare = std::move(__x._M_impl._M_key_compare); 8657: _M_move_assign(__x, __bool_constant<_Alloc_traits::_S_nothrow_move()>()); 8657: return *this; 8657: } 8657: 8657: template 8657: template 8657: void 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_assign_unique(_Iterator __first, _Iterator __last) 8657: { 8657: _Reuse_or_alloc_node __roan(*this); 8657: _M_impl._M_reset(); 8657: for (; __first != __last; ++__first) 8657: _M_insert_unique_(end(), *__first, __roan); 8657: } 8657: 8657: template 8657: template 8657: void 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_assign_equal(_Iterator __first, _Iterator __last) 8657: { 8657: _Reuse_or_alloc_node __roan(*this); 8657: _M_impl._M_reset(); 8657: for (; __first != __last; ++__first) 8657: _M_insert_equal_(end(), *__first, __roan); 8657: } 8657: 8657: 8657: template 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: operator=(const _Rb_tree& __x) 8657: { 8657: if (this != &__x) 8657: { 8657: 8657: 8657: if (_Alloc_traits::_S_propagate_on_copy_assign()) 8657: { 8657: auto& __this_alloc = this->_M_get_Node_allocator(); 8657: auto& __that_alloc = __x._M_get_Node_allocator(); 8657: if (!_Alloc_traits::_S_always_equal() 8657: && __this_alloc != __that_alloc) 8657: { 8657: 8657: 8657: clear(); 8657: std::__alloc_on_copy(__this_alloc, __that_alloc); 8657: } 8657: } 8657: 8657: 8657: _Reuse_or_alloc_node __roan(*this); 8657: _M_impl._M_reset(); 8657: _M_impl._M_key_compare = __x._M_impl._M_key_compare; 8657: if (__x._M_root() != 0) 8657: _M_root() = _M_copy(__x, __roan); 8657: } 8657: 8657: return *this; 8657: } 8657: 8657: template 8657: 8657: template 8657: 8657: 8657: 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_insert_(_Base_ptr __x, _Base_ptr __p, 8657: 8657: _Arg&& __v, 8657: 8657: 8657: 8657: _NodeGen& __node_gen) 8657: { 8657: bool __insert_left = (__x != 0 || __p == _M_end() 8657: || _M_impl._M_key_compare(_KeyOfValue()(__v), 8657: _S_key(__p))); 8657: 8657: _Link_type __z = __node_gen(std::forward<_Arg>(__v)); 8657: 8657: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8657: this->_M_impl._M_header); 8657: ++_M_impl._M_node_count; 8657: return iterator(__z); 8657: } 8657: 8657: template 8657: 8657: template 8657: 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: 8657: _M_insert_lower(_Base_ptr __p, _Arg&& __v) 8657: 8657: 8657: 8657: { 8657: bool __insert_left = (__p == _M_end() 8657: || !_M_impl._M_key_compare(_S_key(__p), 8657: _KeyOfValue()(__v))); 8657: 8657: _Link_type __z = _M_create_node(std::forward<_Arg>(__v)); 8657: 8657: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8657: this->_M_impl._M_header); 8657: ++_M_impl._M_node_count; 8657: return iterator(__z); 8657: } 8657: 8657: template 8657: 8657: template 8657: 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: 8657: _M_insert_equal_lower(_Arg&& __v) 8657: 8657: 8657: 8657: { 8657: _Link_type __x = _M_begin(); 8657: _Base_ptr __y = _M_end(); 8657: while (__x != 0) 8657: { 8657: __y = __x; 8657: __x = !_M_impl._M_key_compare(_S_key(__x), _KeyOfValue()(__v)) ? 8657: _S_left(__x) : _S_right(__x); 8657: } 8657: return _M_insert_lower(__y, std::forward<_Arg>(__v)); 8657: } 8657: 8657: template 8657: template 8657: typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type 8657: _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>:: 8657: _M_copy(_Const_Link_type __x, _Base_ptr __p, _NodeGen& __node_gen) 8657: { 8657: 8657: _Link_type __top = _M_clone_node(__x, __node_gen); 8657: __top->_M_parent = __p; 8657: 8657: try 8657: { 8657: if (__x->_M_right) 8657: __top->_M_right = _M_copy(_S_right(__x), __top, __node_gen); 8657: __p = __top; 8657: __x = _S_left(__x); 8657: 8657: while (__x != 0) 8657: { 8657: _Link_type __y = _M_clone_node(__x, __node_gen); 8657: __p->_M_left = __y; 8657: __y->_M_parent = __p; 8657: if (__x->_M_right) 8657: __y->_M_right = _M_copy(_S_right(__x), __y, __node_gen); 8657: __p = __y; 8657: __x = _S_left(__x); 8657: } 8657: } 8657: catch(...) 8657: { 8657: _M_erase(__top); 8657: throw; 8657: } 8657: return __top; 8657: } 8657: 8657: template 8657: void 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_erase(_Link_type __x) 8657: { 8657: 8657: while (__x != 0) 8657: { 8657: _M_erase(_S_right(__x)); 8657: _Link_type __y = _S_left(__x); 8657: _M_drop_node(__x); 8657: __x = __y; 8657: } 8657: } 8657: 8657: template 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8657: _Compare, _Alloc>::iterator 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_lower_bound(_Link_type __x, _Base_ptr __y, 8657: const _Key& __k) 8657: { 8657: while (__x != 0) 8657: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 8657: __y = __x, __x = _S_left(__x); 8657: else 8657: __x = _S_right(__x); 8657: return iterator(__y); 8657: } 8657: 8657: template 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8657: _Compare, _Alloc>::const_iterator 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8657: const _Key& __k) const 8657: { 8657: while (__x != 0) 8657: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 8657: __y = __x, __x = _S_left(__x); 8657: else 8657: __x = _S_right(__x); 8657: return const_iterator(__y); 8657: } 8657: 8657: template 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8657: _Compare, _Alloc>::iterator 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_upper_bound(_Link_type __x, _Base_ptr __y, 8657: const _Key& __k) 8657: { 8657: while (__x != 0) 8657: if (_M_impl._M_key_compare(__k, _S_key(__x))) 8657: __y = __x, __x = _S_left(__x); 8657: else 8657: __x = _S_right(__x); 8657: return iterator(__y); 8657: } 8657: 8657: template 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8657: _Compare, _Alloc>::const_iterator 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8657: const _Key& __k) const 8657: { 8657: while (__x != 0) 8657: if (_M_impl._M_key_compare(__k, _S_key(__x))) 8657: __y = __x, __x = _S_left(__x); 8657: else 8657: __x = _S_right(__x); 8657: return const_iterator(__y); 8657: } 8657: 8657: template 8657: pair::iterator, 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8657: _Compare, _Alloc>::iterator> 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: equal_range(const _Key& __k) 8657: { 8657: _Link_type __x = _M_begin(); 8657: _Base_ptr __y = _M_end(); 8657: while (__x != 0) 8657: { 8657: if (_M_impl._M_key_compare(_S_key(__x), __k)) 8657: __x = _S_right(__x); 8657: else if (_M_impl._M_key_compare(__k, _S_key(__x))) 8657: __y = __x, __x = _S_left(__x); 8657: else 8657: { 8657: _Link_type __xu(__x); 8657: _Base_ptr __yu(__y); 8657: __y = __x, __x = _S_left(__x); 8657: __xu = _S_right(__xu); 8657: return pair(_M_lower_bound(__x, __y, __k), 8657: _M_upper_bound(__xu, __yu, __k)); 8657: } 8657: } 8657: return pair(iterator(__y), 8657: iterator(__y)); 8657: } 8657: 8657: template 8657: pair::const_iterator, 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8657: _Compare, _Alloc>::const_iterator> 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: equal_range(const _Key& __k) const 8657: { 8657: _Const_Link_type __x = _M_begin(); 8657: _Const_Base_ptr __y = _M_end(); 8657: while (__x != 0) 8657: { 8657: if (_M_impl._M_key_compare(_S_key(__x), __k)) 8657: __x = _S_right(__x); 8657: else if (_M_impl._M_key_compare(__k, _S_key(__x))) 8657: __y = __x, __x = _S_left(__x); 8657: else 8657: { 8657: _Const_Link_type __xu(__x); 8657: _Const_Base_ptr __yu(__y); 8657: __y = __x, __x = _S_left(__x); 8657: __xu = _S_right(__xu); 8657: return pair(_M_lower_bound(__x, __y, __k), 8657: _M_upper_bound(__xu, __yu, __k)); 8657: } 8657: } 8657: return pair(const_iterator(__y), 8657: const_iterator(__y)); 8657: } 8657: 8657: template 8657: void 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: swap(_Rb_tree& __t) 8657: noexcept(__is_nothrow_swappable<_Compare>::value) 8657: { 8657: if (_M_root() == 0) 8657: { 8657: if (__t._M_root() != 0) 8657: _M_impl._M_move_data(__t._M_impl); 8657: } 8657: else if (__t._M_root() == 0) 8657: __t._M_impl._M_move_data(_M_impl); 8657: else 8657: { 8657: std::swap(_M_root(),__t._M_root()); 8657: std::swap(_M_leftmost(),__t._M_leftmost()); 8657: std::swap(_M_rightmost(),__t._M_rightmost()); 8657: 8657: _M_root()->_M_parent = _M_end(); 8657: __t._M_root()->_M_parent = __t._M_end(); 8657: std::swap(this->_M_impl._M_node_count, __t._M_impl._M_node_count); 8657: } 8657: 8657: std::swap(this->_M_impl._M_key_compare, __t._M_impl._M_key_compare); 8657: 8657: _Alloc_traits::_S_on_swap(_M_get_Node_allocator(), 8657: __t._M_get_Node_allocator()); 8657: } 8657: 8657: template 8657: pair::_Base_ptr, 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8657: _Compare, _Alloc>::_Base_ptr> 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_get_insert_unique_pos(const key_type& __k) 8657: { 8657: typedef pair<_Base_ptr, _Base_ptr> _Res; 8657: _Link_type __x = _M_begin(); 8657: _Base_ptr __y = _M_end(); 8657: bool __comp = true; 8657: while (__x != 0) 8657: { 8657: __y = __x; 8657: __comp = _M_impl._M_key_compare(__k, _S_key(__x)); 8657: __x = __comp ? _S_left(__x) : _S_right(__x); 8657: } 8657: iterator __j = iterator(__y); 8657: if (__comp) 8657: { 8657: if (__j == begin()) 8657: return _Res(__x, __y); 8657: else 8657: --__j; 8657: } 8657: if (_M_impl._M_key_compare(_S_key(__j._M_node), __k)) 8657: return _Res(__x, __y); 8657: return _Res(__j._M_node, 0); 8657: } 8657: 8657: template 8657: pair::_Base_ptr, 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8657: _Compare, _Alloc>::_Base_ptr> 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_get_insert_equal_pos(const key_type& __k) 8657: { 8657: typedef pair<_Base_ptr, _Base_ptr> _Res; 8657: _Link_type __x = _M_begin(); 8657: _Base_ptr __y = _M_end(); 8657: while (__x != 0) 8657: { 8657: __y = __x; 8657: __x = _M_impl._M_key_compare(__k, _S_key(__x)) ? 8657: _S_left(__x) : _S_right(__x); 8657: } 8657: return _Res(__x, __y); 8657: } 8657: 8657: template 8657: 8657: template 8657: 8657: pair::iterator, bool> 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: 8657: _M_insert_unique(_Arg&& __v) 8657: 8657: 8657: 8657: { 8657: typedef pair _Res; 8657: pair<_Base_ptr, _Base_ptr> __res 8657: = _M_get_insert_unique_pos(_KeyOfValue()(__v)); 8657: 8657: if (__res.second) 8657: { 8657: _Alloc_node __an(*this); 8657: return _Res(_M_insert_(__res.first, __res.second, 8657: std::forward<_Arg>(__v), __an), 8657: true); 8657: } 8657: 8657: return _Res(iterator(__res.first), false); 8657: } 8657: 8657: template 8657: 8657: template 8657: 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: 8657: _M_insert_equal(_Arg&& __v) 8657: 8657: 8657: 8657: { 8657: pair<_Base_ptr, _Base_ptr> __res 8657: = _M_get_insert_equal_pos(_KeyOfValue()(__v)); 8657: _Alloc_node __an(*this); 8657: return _M_insert_(__res.first, __res.second, 8657: std::forward<_Arg>(__v), __an); 8657: } 8657: 8657: template 8657: pair::_Base_ptr, 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8657: _Compare, _Alloc>::_Base_ptr> 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_get_insert_hint_unique_pos(const_iterator __position, 8657: const key_type& __k) 8657: { 8657: iterator __pos = __position._M_const_cast(); 8657: typedef pair<_Base_ptr, _Base_ptr> _Res; 8657: 8657: 8657: if (__pos._M_node == _M_end()) 8657: { 8657: if (size() > 0 8657: && _M_impl._M_key_compare(_S_key(_M_rightmost()), __k)) 8657: return _Res(0, _M_rightmost()); 8657: else 8657: return _M_get_insert_unique_pos(__k); 8657: } 8657: else if (_M_impl._M_key_compare(__k, _S_key(__pos._M_node))) 8657: { 8657: 8657: iterator __before = __pos; 8657: if (__pos._M_node == _M_leftmost()) 8657: return _Res(_M_leftmost(), _M_leftmost()); 8657: else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), __k)) 8657: { 8657: if (_S_right(__before._M_node) == 0) 8657: return _Res(0, __before._M_node); 8657: else 8657: return _Res(__pos._M_node, __pos._M_node); 8657: } 8657: else 8657: return _M_get_insert_unique_pos(__k); 8657: } 8657: else if (_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) 8657: { 8657: 8657: iterator __after = __pos; 8657: if (__pos._M_node == _M_rightmost()) 8657: return _Res(0, _M_rightmost()); 8657: else if (_M_impl._M_key_compare(__k, _S_key((++__after)._M_node))) 8657: { 8657: if (_S_right(__pos._M_node) == 0) 8657: return _Res(0, __pos._M_node); 8657: else 8657: return _Res(__after._M_node, __after._M_node); 8657: } 8657: else 8657: return _M_get_insert_unique_pos(__k); 8657: } 8657: else 8657: 8657: return _Res(__pos._M_node, 0); 8657: } 8657: 8657: template 8657: 8657: template 8657: 8657: 8657: 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_insert_unique_(const_iterator __position, 8657: 8657: _Arg&& __v, 8657: 8657: 8657: 8657: _NodeGen& __node_gen) 8657: { 8657: pair<_Base_ptr, _Base_ptr> __res 8657: = _M_get_insert_hint_unique_pos(__position, _KeyOfValue()(__v)); 8657: 8657: if (__res.second) 8657: return _M_insert_(__res.first, __res.second, 8657: std::forward<_Arg>(__v), 8657: __node_gen); 8657: return iterator(__res.first); 8657: } 8657: 8657: template 8657: pair::_Base_ptr, 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8657: _Compare, _Alloc>::_Base_ptr> 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_get_insert_hint_equal_pos(const_iterator __position, const key_type& __k) 8657: { 8657: iterator __pos = __position._M_const_cast(); 8657: typedef pair<_Base_ptr, _Base_ptr> _Res; 8657: 8657: 8657: if (__pos._M_node == _M_end()) 8657: { 8657: if (size() > 0 8657: && !_M_impl._M_key_compare(__k, _S_key(_M_rightmost()))) 8657: return _Res(0, _M_rightmost()); 8657: else 8657: return _M_get_insert_equal_pos(__k); 8657: } 8657: else if (!_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) 8657: { 8657: 8657: iterator __before = __pos; 8657: if (__pos._M_node == _M_leftmost()) 8657: return _Res(_M_leftmost(), _M_leftmost()); 8657: else if (!_M_impl._M_key_compare(__k, _S_key((--__before)._M_node))) 8657: { 8657: if (_S_right(__before._M_node) == 0) 8657: return _Res(0, __before._M_node); 8657: else 8657: return _Res(__pos._M_node, __pos._M_node); 8657: } 8657: else 8657: return _M_get_insert_equal_pos(__k); 8657: } 8657: else 8657: { 8657: 8657: iterator __after = __pos; 8657: if (__pos._M_node == _M_rightmost()) 8657: return _Res(0, _M_rightmost()); 8657: else if (!_M_impl._M_key_compare(_S_key((++__after)._M_node), __k)) 8657: { 8657: if (_S_right(__pos._M_node) == 0) 8657: return _Res(0, __pos._M_node); 8657: else 8657: return _Res(__after._M_node, __after._M_node); 8657: } 8657: else 8657: return _Res(0, 0); 8657: } 8657: } 8657: 8657: template 8657: 8657: template 8657: 8657: 8657: 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_insert_equal_(const_iterator __position, 8657: 8657: _Arg&& __v, 8657: 8657: 8657: 8657: _NodeGen& __node_gen) 8657: { 8657: pair<_Base_ptr, _Base_ptr> __res 8657: = _M_get_insert_hint_equal_pos(__position, _KeyOfValue()(__v)); 8657: 8657: if (__res.second) 8657: return _M_insert_(__res.first, __res.second, 8657: std::forward<_Arg>(__v), 8657: __node_gen); 8657: 8657: return _M_insert_equal_lower(std::forward<_Arg>(__v)); 8657: } 8657: 8657: 8657: template 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_insert_node(_Base_ptr __x, _Base_ptr __p, _Link_type __z) 8657: { 8657: bool __insert_left = (__x != 0 || __p == _M_end() 8657: || _M_impl._M_key_compare(_S_key(__z), 8657: _S_key(__p))); 8657: 8657: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8657: this->_M_impl._M_header); 8657: ++_M_impl._M_node_count; 8657: return iterator(__z); 8657: } 8657: 8657: template 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_insert_lower_node(_Base_ptr __p, _Link_type __z) 8657: { 8657: bool __insert_left = (__p == _M_end() 8657: || !_M_impl._M_key_compare(_S_key(__p), 8657: _S_key(__z))); 8657: 8657: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8657: this->_M_impl._M_header); 8657: ++_M_impl._M_node_count; 8657: return iterator(__z); 8657: } 8657: 8657: template 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_insert_equal_lower_node(_Link_type __z) 8657: { 8657: _Link_type __x = _M_begin(); 8657: _Base_ptr __y = _M_end(); 8657: while (__x != 0) 8657: { 8657: __y = __x; 8657: __x = !_M_impl._M_key_compare(_S_key(__x), _S_key(__z)) ? 8657: _S_left(__x) : _S_right(__x); 8657: } 8657: return _M_insert_lower_node(__y, __z); 8657: } 8657: 8657: template 8657: template 8657: pair::iterator, bool> 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_emplace_unique(_Args&&... __args) 8657: { 8657: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8657: 8657: try 8657: { 8657: typedef pair _Res; 8657: auto __res = _M_get_insert_unique_pos(_S_key(__z)); 8657: if (__res.second) 8657: return _Res(_M_insert_node(__res.first, __res.second, __z), true); 8657: 8657: _M_drop_node(__z); 8657: return _Res(iterator(__res.first), false); 8657: } 8657: catch(...) 8657: { 8657: _M_drop_node(__z); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: template 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_emplace_equal(_Args&&... __args) 8657: { 8657: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8657: 8657: try 8657: { 8657: auto __res = _M_get_insert_equal_pos(_S_key(__z)); 8657: return _M_insert_node(__res.first, __res.second, __z); 8657: } 8657: catch(...) 8657: { 8657: _M_drop_node(__z); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: template 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args) 8657: { 8657: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8657: 8657: try 8657: { 8657: auto __res = _M_get_insert_hint_unique_pos(__pos, _S_key(__z)); 8657: 8657: if (__res.second) 8657: return _M_insert_node(__res.first, __res.second, __z); 8657: 8657: _M_drop_node(__z); 8657: return iterator(__res.first); 8657: } 8657: catch(...) 8657: { 8657: _M_drop_node(__z); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: template 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args) 8657: { 8657: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8657: 8657: try 8657: { 8657: auto __res = _M_get_insert_hint_equal_pos(__pos, _S_key(__z)); 8657: 8657: if (__res.second) 8657: return _M_insert_node(__res.first, __res.second, __z); 8657: 8657: return _M_insert_equal_lower_node(__z); 8657: } 8657: catch(...) 8657: { 8657: _M_drop_node(__z); 8657: throw; 8657: } 8657: } 8657: 8657: 8657: template 8657: template 8657: void 8657: _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: 8657: _M_insert_unique(_II __first, _II __last) 8657: { 8657: _Alloc_node __an(*this); 8657: for (; __first != __last; ++__first) 8657: _M_insert_unique_(end(), *__first, __an); 8657: } 8657: 8657: template 8657: template 8657: void 8657: _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: 8657: _M_insert_equal(_II __first, _II __last) 8657: { 8657: _Alloc_node __an(*this); 8657: for (; __first != __last; ++__first) 8657: _M_insert_equal_(end(), *__first, __an); 8657: } 8657: 8657: template 8657: void 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_erase_aux(const_iterator __position) 8657: { 8657: _Link_type __y = 8657: static_cast<_Link_type>(_Rb_tree_rebalance_for_erase 8657: (const_cast<_Base_ptr>(__position._M_node), 8657: this->_M_impl._M_header)); 8657: _M_drop_node(__y); 8657: --_M_impl._M_node_count; 8657: } 8657: 8657: template 8657: void 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: _M_erase_aux(const_iterator __first, const_iterator __last) 8657: { 8657: if (__first == begin() && __last == end()) 8657: clear(); 8657: else 8657: while (__first != __last) 8657: _M_erase_aux(__first++); 8657: } 8657: 8657: template 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: erase(const _Key& __x) 8657: { 8657: pair __p = equal_range(__x); 8657: const size_type __old_size = size(); 8657: _M_erase_aux(__p.first, __p.second); 8657: return __old_size - size(); 8657: } 8657: 8657: template 8657: void 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: erase(const _Key* __first, const _Key* __last) 8657: { 8657: while (__first != __last) 8657: erase(*__first++); 8657: } 8657: 8657: template 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8657: _Compare, _Alloc>::iterator 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: find(const _Key& __k) 8657: { 8657: iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 8657: return (__j == end() 8657: || _M_impl._M_key_compare(__k, 8657: _S_key(__j._M_node))) ? end() : __j; 8657: } 8657: 8657: template 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8657: _Compare, _Alloc>::const_iterator 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: find(const _Key& __k) const 8657: { 8657: const_iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 8657: return (__j == end() 8657: || _M_impl._M_key_compare(__k, 8657: _S_key(__j._M_node))) ? end() : __j; 8657: } 8657: 8657: template 8657: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 8657: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8657: count(const _Key& __k) const 8657: { 8657: pair __p = equal_range(__k); 8657: const size_type __n = std::distance(__p.first, __p.second); 8657: return __n; 8657: } 8657: 8657: __attribute__ ((__pure__)) unsigned int 8657: _Rb_tree_black_count(const _Rb_tree_node_base* __node, 8657: const _Rb_tree_node_base* __root) throw (); 8657: 8657: template 8657: bool 8657: _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const 8657: { 8657: if (_M_impl._M_node_count == 0 || begin() == end()) 8657: return _M_impl._M_node_count == 0 && begin() == end() 8657: && this->_M_impl._M_header._M_left == _M_end() 8657: && this->_M_impl._M_header._M_right == _M_end(); 8657: 8657: unsigned int __len = _Rb_tree_black_count(_M_leftmost(), _M_root()); 8657: for (const_iterator __it = begin(); __it != end(); ++__it) 8657: { 8657: _Const_Link_type __x = static_cast<_Const_Link_type>(__it._M_node); 8657: _Const_Link_type __L = _S_left(__x); 8657: _Const_Link_type __R = _S_right(__x); 8657: 8657: if (__x->_M_color == _S_red) 8657: if ((__L && __L->_M_color == _S_red) 8657: || (__R && __R->_M_color == _S_red)) 8657: return false; 8657: 8657: if (__L && _M_impl._M_key_compare(_S_key(__x), _S_key(__L))) 8657: return false; 8657: if (__R && _M_impl._M_key_compare(_S_key(__R), _S_key(__x))) 8657: return false; 8657: 8657: if (!__L && !__R && _Rb_tree_black_count(__x, _M_root()) != __len) 8657: return false; 8657: } 8657: 8657: if (_M_leftmost() != _Rb_tree_node_base::_S_minimum(_M_root())) 8657: return false; 8657: if (_M_rightmost() != _Rb_tree_node_base::_S_maximum(_M_root())) 8657: return false; 8657: return true; 8657: } 8657: # 2627 "/usr/include/c++/8/bits/stl_tree.h" 3 8657: 8657: } 8657: # 61 "/usr/include/c++/8/map" 2 3 8657: # 1 "/usr/include/c++/8/bits/stl_map.h" 1 3 8657: # 63 "/usr/include/c++/8/bits/stl_map.h" 3 8657: # 1 "/usr/include/c++/8/tuple" 1 3 8657: # 32 "/usr/include/c++/8/tuple" 3 8657: 8657: # 33 "/usr/include/c++/8/tuple" 3 8657: 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/array" 1 3 8657: # 32 "/usr/include/c++/8/array" 3 8657: 8657: # 33 "/usr/include/c++/8/array" 3 8657: # 43 "/usr/include/c++/8/array" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: template 8657: struct __array_traits 8657: { 8657: typedef _Tp _Type[_Nm]; 8657: typedef __is_swappable<_Tp> _Is_swappable; 8657: typedef __is_nothrow_swappable<_Tp> _Is_nothrow_swappable; 8657: 8657: static constexpr _Tp& 8657: _S_ref(const _Type& __t, std::size_t __n) noexcept 8657: { return const_cast<_Tp&>(__t[__n]); } 8657: 8657: static constexpr _Tp* 8657: _S_ptr(const _Type& __t) noexcept 8657: { return const_cast<_Tp*>(__t); } 8657: }; 8657: 8657: template 8657: struct __array_traits<_Tp, 0> 8657: { 8657: struct _Type { }; 8657: typedef true_type _Is_swappable; 8657: typedef true_type _Is_nothrow_swappable; 8657: 8657: static constexpr _Tp& 8657: _S_ref(const _Type&, std::size_t) noexcept 8657: { return *static_cast<_Tp*>(nullptr); } 8657: 8657: static constexpr _Tp* 8657: _S_ptr(const _Type&) noexcept 8657: { return nullptr; } 8657: }; 8657: # 93 "/usr/include/c++/8/array" 3 8657: template 8657: struct array 8657: { 8657: typedef _Tp value_type; 8657: typedef value_type* pointer; 8657: typedef const value_type* const_pointer; 8657: typedef value_type& reference; 8657: typedef const value_type& const_reference; 8657: typedef value_type* iterator; 8657: typedef const value_type* const_iterator; 8657: typedef std::size_t size_type; 8657: typedef std::ptrdiff_t difference_type; 8657: typedef std::reverse_iterator reverse_iterator; 8657: typedef std::reverse_iterator const_reverse_iterator; 8657: 8657: 8657: typedef std::__array_traits<_Tp, _Nm> _AT_Type; 8657: typename _AT_Type::_Type _M_elems; 8657: 8657: 8657: 8657: 8657: void 8657: fill(const value_type& __u) 8657: { std::fill_n(begin(), size(), __u); } 8657: 8657: void 8657: swap(array& __other) 8657: noexcept(_AT_Type::_Is_nothrow_swappable::value) 8657: { std::swap_ranges(begin(), end(), __other.begin()); } 8657: 8657: 8657: iterator 8657: begin() noexcept 8657: { return iterator(data()); } 8657: 8657: const_iterator 8657: begin() const noexcept 8657: { return const_iterator(data()); } 8657: 8657: iterator 8657: end() noexcept 8657: { return iterator(data() + _Nm); } 8657: 8657: const_iterator 8657: end() const noexcept 8657: { return const_iterator(data() + _Nm); } 8657: 8657: reverse_iterator 8657: rbegin() noexcept 8657: { return reverse_iterator(end()); } 8657: 8657: const_reverse_iterator 8657: rbegin() const noexcept 8657: { return const_reverse_iterator(end()); } 8657: 8657: reverse_iterator 8657: rend() noexcept 8657: { return reverse_iterator(begin()); } 8657: 8657: const_reverse_iterator 8657: rend() const noexcept 8657: { return const_reverse_iterator(begin()); } 8657: 8657: const_iterator 8657: cbegin() const noexcept 8657: { return const_iterator(data()); } 8657: 8657: const_iterator 8657: cend() const noexcept 8657: { return const_iterator(data() + _Nm); } 8657: 8657: const_reverse_iterator 8657: crbegin() const noexcept 8657: { return const_reverse_iterator(end()); } 8657: 8657: const_reverse_iterator 8657: crend() const noexcept 8657: { return const_reverse_iterator(begin()); } 8657: 8657: 8657: constexpr size_type 8657: size() const noexcept { return _Nm; } 8657: 8657: constexpr size_type 8657: max_size() const noexcept { return _Nm; } 8657: 8657: constexpr bool 8657: empty() const noexcept { return size() == 0; } 8657: 8657: 8657: reference 8657: operator[](size_type __n) noexcept 8657: { return _AT_Type::_S_ref(_M_elems, __n); } 8657: 8657: constexpr const_reference 8657: operator[](size_type __n) const noexcept 8657: { return _AT_Type::_S_ref(_M_elems, __n); } 8657: 8657: reference 8657: at(size_type __n) 8657: { 8657: if (__n >= _Nm) 8657: std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 8657: , 8657: __n, _Nm); 8657: return _AT_Type::_S_ref(_M_elems, __n); 8657: } 8657: 8657: constexpr const_reference 8657: at(size_type __n) const 8657: { 8657: 8657: 8657: return __n < _Nm ? _AT_Type::_S_ref(_M_elems, __n) 8657: : (std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 8657: , 8657: __n, _Nm), 8657: _AT_Type::_S_ref(_M_elems, 0)); 8657: } 8657: 8657: reference 8657: front() noexcept 8657: { return *begin(); } 8657: 8657: constexpr const_reference 8657: front() const noexcept 8657: { return _AT_Type::_S_ref(_M_elems, 0); } 8657: 8657: reference 8657: back() noexcept 8657: { return _Nm ? *(end() - 1) : *end(); } 8657: 8657: constexpr const_reference 8657: back() const noexcept 8657: { 8657: return _Nm ? _AT_Type::_S_ref(_M_elems, _Nm - 1) 8657: : _AT_Type::_S_ref(_M_elems, 0); 8657: } 8657: 8657: pointer 8657: data() noexcept 8657: { return _AT_Type::_S_ptr(_M_elems); } 8657: 8657: const_pointer 8657: data() const noexcept 8657: { return _AT_Type::_S_ptr(_M_elems); } 8657: }; 8657: # 250 "/usr/include/c++/8/array" 3 8657: template 8657: inline bool 8657: operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8657: { return std::equal(__one.begin(), __one.end(), __two.begin()); } 8657: 8657: template 8657: inline bool 8657: operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8657: { return !(__one == __two); } 8657: 8657: template 8657: inline bool 8657: operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b) 8657: { 8657: return std::lexicographical_compare(__a.begin(), __a.end(), 8657: __b.begin(), __b.end()); 8657: } 8657: 8657: template 8657: inline bool 8657: operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8657: { return __two < __one; } 8657: 8657: template 8657: inline bool 8657: operator<=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8657: { return !(__one > __two); } 8657: 8657: template 8657: inline bool 8657: operator>=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8657: { return !(__one < __two); } 8657: 8657: 8657: template 8657: inline 8657: 8657: 8657: typename enable_if< 8657: std::__array_traits<_Tp, _Nm>::_Is_swappable::value 8657: >::type 8657: 8657: 8657: 8657: swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two) 8657: noexcept(noexcept(__one.swap(__two))) 8657: { __one.swap(__two); } 8657: 8657: 8657: template 8657: typename enable_if< 8657: !std::__array_traits<_Tp, _Nm>::_Is_swappable::value>::type 8657: swap(array<_Tp, _Nm>&, array<_Tp, _Nm>&) = delete; 8657: 8657: 8657: template 8657: constexpr _Tp& 8657: get(array<_Tp, _Nm>& __arr) noexcept 8657: { 8657: static_assert(_Int < _Nm, "array index is within bounds"); 8657: return std::__array_traits<_Tp, _Nm>:: 8657: _S_ref(__arr._M_elems, _Int); 8657: } 8657: 8657: template 8657: constexpr _Tp&& 8657: get(array<_Tp, _Nm>&& __arr) noexcept 8657: { 8657: static_assert(_Int < _Nm, "array index is within bounds"); 8657: return std::move(std::get<_Int>(__arr)); 8657: } 8657: 8657: template 8657: constexpr const _Tp& 8657: get(const array<_Tp, _Nm>& __arr) noexcept 8657: { 8657: static_assert(_Int < _Nm, "array index is within bounds"); 8657: return std::__array_traits<_Tp, _Nm>:: 8657: _S_ref(__arr._M_elems, _Int); 8657: } 8657: 8657: template 8657: constexpr const _Tp&& 8657: get(const array<_Tp, _Nm>&& __arr) noexcept 8657: { 8657: static_assert(_Int < _Nm, "array index is within bounds"); 8657: return std::move(std::get<_Int>(__arr)); 8657: } 8657: 8657: 8657: } 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct tuple_size; 8657: 8657: 8657: template 8657: struct tuple_size> 8657: : public integral_constant { }; 8657: 8657: 8657: template 8657: struct tuple_element; 8657: 8657: 8657: template 8657: struct tuple_element<_Int, std::array<_Tp, _Nm>> 8657: { 8657: static_assert(_Int < _Nm, "index is out of bounds"); 8657: typedef _Tp type; 8657: }; 8657: 8657: template 8657: struct __is_tuple_like_impl> : true_type 8657: { }; 8657: 8657: 8657: } 8657: # 40 "/usr/include/c++/8/tuple" 2 3 8657: # 1 "/usr/include/c++/8/bits/uses_allocator.h" 1 3 8657: # 35 "/usr/include/c++/8/bits/uses_allocator.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: struct __erased_type { }; 8657: 8657: template 8657: using __is_erased_or_convertible 8657: = __or_, is_convertible<_Alloc, _Tp>>; 8657: 8657: 8657: struct allocator_arg_t { explicit allocator_arg_t() = default; }; 8657: 8657: constexpr allocator_arg_t allocator_arg = 8657: allocator_arg_t(); 8657: 8657: template> 8657: struct __uses_allocator_helper 8657: : false_type { }; 8657: 8657: template 8657: struct __uses_allocator_helper<_Tp, _Alloc, 8657: __void_t> 8657: : __is_erased_or_convertible<_Alloc, typename _Tp::allocator_type>::type 8657: { }; 8657: 8657: 8657: template 8657: struct uses_allocator 8657: : __uses_allocator_helper<_Tp, _Alloc>::type 8657: { }; 8657: 8657: struct __uses_alloc_base { }; 8657: 8657: struct __uses_alloc0 : __uses_alloc_base 8657: { 8657: struct _Sink { void operator=(const void*) { } } _M_a; 8657: }; 8657: 8657: template 8657: struct __uses_alloc1 : __uses_alloc_base { const _Alloc* _M_a; }; 8657: 8657: template 8657: struct __uses_alloc2 : __uses_alloc_base { const _Alloc* _M_a; }; 8657: 8657: template 8657: struct __uses_alloc; 8657: 8657: template 8657: struct __uses_alloc 8657: : conditional< 8657: is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value, 8657: __uses_alloc1<_Alloc>, 8657: __uses_alloc2<_Alloc>>::type 8657: { 8657: static_assert(__or_< 8657: is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>, 8657: is_constructible<_Tp, _Args..., _Alloc>>::value, "construction with" 8657: " an allocator must be possible if uses_allocator is true"); 8657: }; 8657: 8657: template 8657: struct __uses_alloc 8657: : __uses_alloc0 { }; 8657: 8657: template 8657: using __uses_alloc_t = 8657: __uses_alloc::value, _Tp, _Alloc, _Args...>; 8657: 8657: template 8657: inline __uses_alloc_t<_Tp, _Alloc, _Args...> 8657: __use_alloc(const _Alloc& __a) 8657: { 8657: __uses_alloc_t<_Tp, _Alloc, _Args...> __ret; 8657: __ret._M_a = std::__addressof(__a); 8657: return __ret; 8657: } 8657: 8657: template 8657: void 8657: __use_alloc(const _Alloc&&) = delete; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template class _Predicate, 8657: typename _Tp, typename _Alloc, typename... _Args> 8657: struct __is_uses_allocator_predicate 8657: : conditional::value, 8657: __or_<_Predicate<_Tp, allocator_arg_t, _Alloc, _Args...>, 8657: _Predicate<_Tp, _Args..., _Alloc>>, 8657: _Predicate<_Tp, _Args...>>::type { }; 8657: 8657: template 8657: struct __is_uses_allocator_constructible 8657: : __is_uses_allocator_predicate 8657: { }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct __is_nothrow_uses_allocator_constructible 8657: : __is_uses_allocator_predicate 8657: { }; 8657: # 156 "/usr/include/c++/8/bits/uses_allocator.h" 3 8657: template 8657: void __uses_allocator_construct_impl(__uses_alloc0 __a, _Tp* __ptr, 8657: _Args&&... __args) 8657: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)...); } 8657: 8657: template 8657: void __uses_allocator_construct_impl(__uses_alloc1<_Alloc> __a, _Tp* __ptr, 8657: _Args&&... __args) 8657: { 8657: ::new ((void*)__ptr) _Tp(allocator_arg, *__a._M_a, 8657: std::forward<_Args>(__args)...); 8657: } 8657: 8657: template 8657: void __uses_allocator_construct_impl(__uses_alloc2<_Alloc> __a, _Tp* __ptr, 8657: _Args&&... __args) 8657: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)..., *__a._M_a); } 8657: 8657: template 8657: void __uses_allocator_construct(const _Alloc& __a, _Tp* __ptr, 8657: _Args&&... __args) 8657: { 8657: __uses_allocator_construct_impl(__use_alloc<_Tp, _Alloc, _Args...>(__a), 8657: __ptr, std::forward<_Args>(__args)...); 8657: } 8657: 8657: 8657: } 8657: # 41 "/usr/include/c++/8/tuple" 2 3 8657: # 1 "/usr/include/c++/8/bits/invoke.h" 1 3 8657: # 33 "/usr/include/c++/8/bits/invoke.h" 3 8657: 8657: # 34 "/usr/include/c++/8/bits/invoke.h" 3 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 52 "/usr/include/c++/8/bits/invoke.h" 3 8657: template::type> 8657: constexpr _Up&& 8657: __invfwd(typename remove_reference<_Tp>::type& __t) noexcept 8657: { return static_cast<_Up&&>(__t); } 8657: 8657: template 8657: constexpr _Res 8657: __invoke_impl(__invoke_other, _Fn&& __f, _Args&&... __args) 8657: { return std::forward<_Fn>(__f)(std::forward<_Args>(__args)...); } 8657: 8657: template 8657: constexpr _Res 8657: __invoke_impl(__invoke_memfun_ref, _MemFun&& __f, _Tp&& __t, 8657: _Args&&... __args) 8657: { return (__invfwd<_Tp>(__t).*__f)(std::forward<_Args>(__args)...); } 8657: 8657: template 8657: constexpr _Res 8657: __invoke_impl(__invoke_memfun_deref, _MemFun&& __f, _Tp&& __t, 8657: _Args&&... __args) 8657: { 8657: return ((*std::forward<_Tp>(__t)).*__f)(std::forward<_Args>(__args)...); 8657: } 8657: 8657: template 8657: constexpr _Res 8657: __invoke_impl(__invoke_memobj_ref, _MemPtr&& __f, _Tp&& __t) 8657: { return __invfwd<_Tp>(__t).*__f; } 8657: 8657: template 8657: constexpr _Res 8657: __invoke_impl(__invoke_memobj_deref, _MemPtr&& __f, _Tp&& __t) 8657: { return (*std::forward<_Tp>(__t)).*__f; } 8657: 8657: 8657: template 8657: constexpr typename __invoke_result<_Callable, _Args...>::type 8657: __invoke(_Callable&& __fn, _Args&&... __args) 8657: noexcept(__is_nothrow_invocable<_Callable, _Args...>::value) 8657: { 8657: using __result = __invoke_result<_Callable, _Args...>; 8657: using __type = typename __result::type; 8657: using __tag = typename __result::__invoke_type; 8657: return std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), 8657: std::forward<_Args>(__args)...); 8657: } 8657: 8657: 8657: } 8657: # 42 "/usr/include/c++/8/tuple" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: class tuple; 8657: 8657: template 8657: struct __is_empty_non_tuple : is_empty<_Tp> { }; 8657: 8657: 8657: template 8657: struct __is_empty_non_tuple> : false_type { }; 8657: 8657: 8657: template 8657: using __empty_not_final 8657: = typename conditional<__is_final(_Tp), false_type, 8657: __is_empty_non_tuple<_Tp>>::type; 8657: 8657: template::value> 8657: struct _Head_base; 8657: 8657: template 8657: struct _Head_base<_Idx, _Head, true> 8657: : public _Head 8657: { 8657: constexpr _Head_base() 8657: : _Head() { } 8657: 8657: constexpr _Head_base(const _Head& __h) 8657: : _Head(__h) { } 8657: 8657: constexpr _Head_base(const _Head_base&) = default; 8657: constexpr _Head_base(_Head_base&&) = default; 8657: 8657: template 8657: constexpr _Head_base(_UHead&& __h) 8657: : _Head(std::forward<_UHead>(__h)) { } 8657: 8657: _Head_base(allocator_arg_t, __uses_alloc0) 8657: : _Head() { } 8657: 8657: template 8657: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 8657: : _Head(allocator_arg, *__a._M_a) { } 8657: 8657: template 8657: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 8657: : _Head(*__a._M_a) { } 8657: 8657: template 8657: _Head_base(__uses_alloc0, _UHead&& __uhead) 8657: : _Head(std::forward<_UHead>(__uhead)) { } 8657: 8657: template 8657: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 8657: : _Head(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) { } 8657: 8657: template 8657: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 8657: : _Head(std::forward<_UHead>(__uhead), *__a._M_a) { } 8657: 8657: static constexpr _Head& 8657: _M_head(_Head_base& __b) noexcept { return __b; } 8657: 8657: static constexpr const _Head& 8657: _M_head(const _Head_base& __b) noexcept { return __b; } 8657: }; 8657: 8657: template 8657: struct _Head_base<_Idx, _Head, false> 8657: { 8657: constexpr _Head_base() 8657: : _M_head_impl() { } 8657: 8657: constexpr _Head_base(const _Head& __h) 8657: : _M_head_impl(__h) { } 8657: 8657: constexpr _Head_base(const _Head_base&) = default; 8657: constexpr _Head_base(_Head_base&&) = default; 8657: 8657: template 8657: constexpr _Head_base(_UHead&& __h) 8657: : _M_head_impl(std::forward<_UHead>(__h)) { } 8657: 8657: _Head_base(allocator_arg_t, __uses_alloc0) 8657: : _M_head_impl() { } 8657: 8657: template 8657: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 8657: : _M_head_impl(allocator_arg, *__a._M_a) { } 8657: 8657: template 8657: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 8657: : _M_head_impl(*__a._M_a) { } 8657: 8657: template 8657: _Head_base(__uses_alloc0, _UHead&& __uhead) 8657: : _M_head_impl(std::forward<_UHead>(__uhead)) { } 8657: 8657: template 8657: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 8657: : _M_head_impl(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) 8657: { } 8657: 8657: template 8657: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 8657: : _M_head_impl(std::forward<_UHead>(__uhead), *__a._M_a) { } 8657: 8657: static constexpr _Head& 8657: _M_head(_Head_base& __b) noexcept { return __b._M_head_impl; } 8657: 8657: static constexpr const _Head& 8657: _M_head(const _Head_base& __b) noexcept { return __b._M_head_impl; } 8657: 8657: _Head _M_head_impl; 8657: }; 8657: # 176 "/usr/include/c++/8/tuple" 3 8657: template 8657: struct _Tuple_impl; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct _Tuple_impl<_Idx, _Head, _Tail...> 8657: : public _Tuple_impl<_Idx + 1, _Tail...>, 8657: private _Head_base<_Idx, _Head> 8657: { 8657: template friend class _Tuple_impl; 8657: 8657: typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited; 8657: typedef _Head_base<_Idx, _Head> _Base; 8657: 8657: static constexpr _Head& 8657: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8657: 8657: static constexpr const _Head& 8657: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8657: 8657: static constexpr _Inherited& 8657: _M_tail(_Tuple_impl& __t) noexcept { return __t; } 8657: 8657: static constexpr const _Inherited& 8657: _M_tail(const _Tuple_impl& __t) noexcept { return __t; } 8657: 8657: constexpr _Tuple_impl() 8657: : _Inherited(), _Base() { } 8657: 8657: explicit 8657: constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail) 8657: : _Inherited(__tail...), _Base(__head) { } 8657: 8657: template::type> 8657: explicit 8657: constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail) 8657: : _Inherited(std::forward<_UTail>(__tail)...), 8657: _Base(std::forward<_UHead>(__head)) { } 8657: 8657: constexpr _Tuple_impl(const _Tuple_impl&) = default; 8657: 8657: constexpr 8657: _Tuple_impl(_Tuple_impl&& __in) 8657: noexcept(__and_, 8657: is_nothrow_move_constructible<_Inherited>>::value) 8657: : _Inherited(std::move(_M_tail(__in))), 8657: _Base(std::forward<_Head>(_M_head(__in))) { } 8657: 8657: template 8657: constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in) 8657: : _Inherited(_Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), 8657: _Base(_Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } 8657: 8657: template 8657: constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 8657: : _Inherited(std::move 8657: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 8657: _Base(std::forward<_UHead> 8657: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } 8657: 8657: template 8657: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 8657: : _Inherited(__tag, __a), 8657: _Base(__tag, __use_alloc<_Head>(__a)) { } 8657: 8657: template 8657: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8657: const _Head& __head, const _Tail&... __tail) 8657: : _Inherited(__tag, __a, __tail...), 8657: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } 8657: 8657: template::type> 8657: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8657: _UHead&& __head, _UTail&&... __tail) 8657: : _Inherited(__tag, __a, std::forward<_UTail>(__tail)...), 8657: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8657: std::forward<_UHead>(__head)) { } 8657: 8657: template 8657: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8657: const _Tuple_impl& __in) 8657: : _Inherited(__tag, __a, _M_tail(__in)), 8657: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } 8657: 8657: template 8657: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8657: _Tuple_impl&& __in) 8657: : _Inherited(__tag, __a, std::move(_M_tail(__in))), 8657: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8657: std::forward<_Head>(_M_head(__in))) { } 8657: 8657: template 8657: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8657: const _Tuple_impl<_Idx, _UElements...>& __in) 8657: : _Inherited(__tag, __a, 8657: _Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), 8657: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8657: _Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } 8657: 8657: template 8657: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8657: _Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 8657: : _Inherited(__tag, __a, std::move 8657: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 8657: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8657: std::forward<_UHead> 8657: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } 8657: 8657: _Tuple_impl& 8657: operator=(const _Tuple_impl& __in) 8657: { 8657: _M_head(*this) = _M_head(__in); 8657: _M_tail(*this) = _M_tail(__in); 8657: return *this; 8657: } 8657: 8657: _Tuple_impl& 8657: operator=(_Tuple_impl&& __in) 8657: noexcept(__and_, 8657: is_nothrow_move_assignable<_Inherited>>::value) 8657: { 8657: _M_head(*this) = std::forward<_Head>(_M_head(__in)); 8657: _M_tail(*this) = std::move(_M_tail(__in)); 8657: return *this; 8657: } 8657: 8657: template 8657: _Tuple_impl& 8657: operator=(const _Tuple_impl<_Idx, _UElements...>& __in) 8657: { 8657: _M_head(*this) = _Tuple_impl<_Idx, _UElements...>::_M_head(__in); 8657: _M_tail(*this) = _Tuple_impl<_Idx, _UElements...>::_M_tail(__in); 8657: return *this; 8657: } 8657: 8657: template 8657: _Tuple_impl& 8657: operator=(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 8657: { 8657: _M_head(*this) = std::forward<_UHead> 8657: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in)); 8657: _M_tail(*this) = std::move 8657: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in)); 8657: return *this; 8657: } 8657: 8657: protected: 8657: void 8657: _M_swap(_Tuple_impl& __in) 8657: noexcept(__is_nothrow_swappable<_Head>::value 8657: && noexcept(_M_tail(__in)._M_swap(_M_tail(__in)))) 8657: { 8657: using std::swap; 8657: swap(_M_head(*this), _M_head(__in)); 8657: _Inherited::_M_swap(_M_tail(__in)); 8657: } 8657: }; 8657: 8657: 8657: template 8657: struct _Tuple_impl<_Idx, _Head> 8657: : private _Head_base<_Idx, _Head> 8657: { 8657: template friend class _Tuple_impl; 8657: 8657: typedef _Head_base<_Idx, _Head> _Base; 8657: 8657: static constexpr _Head& 8657: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8657: 8657: static constexpr const _Head& 8657: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8657: 8657: constexpr _Tuple_impl() 8657: : _Base() { } 8657: 8657: explicit 8657: constexpr _Tuple_impl(const _Head& __head) 8657: : _Base(__head) { } 8657: 8657: template 8657: explicit 8657: constexpr _Tuple_impl(_UHead&& __head) 8657: : _Base(std::forward<_UHead>(__head)) { } 8657: 8657: constexpr _Tuple_impl(const _Tuple_impl&) = default; 8657: 8657: constexpr 8657: _Tuple_impl(_Tuple_impl&& __in) 8657: noexcept(is_nothrow_move_constructible<_Head>::value) 8657: : _Base(std::forward<_Head>(_M_head(__in))) { } 8657: 8657: template 8657: constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UHead>& __in) 8657: : _Base(_Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } 8657: 8657: template 8657: constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead>&& __in) 8657: : _Base(std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 8657: { } 8657: 8657: template 8657: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 8657: : _Base(__tag, __use_alloc<_Head>(__a)) { } 8657: 8657: template 8657: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8657: const _Head& __head) 8657: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } 8657: 8657: template 8657: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8657: _UHead&& __head) 8657: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8657: std::forward<_UHead>(__head)) { } 8657: 8657: template 8657: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8657: const _Tuple_impl& __in) 8657: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } 8657: 8657: template 8657: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8657: _Tuple_impl&& __in) 8657: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8657: std::forward<_Head>(_M_head(__in))) { } 8657: 8657: template 8657: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8657: const _Tuple_impl<_Idx, _UHead>& __in) 8657: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8657: _Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } 8657: 8657: template 8657: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8657: _Tuple_impl<_Idx, _UHead>&& __in) 8657: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8657: std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 8657: { } 8657: 8657: _Tuple_impl& 8657: operator=(const _Tuple_impl& __in) 8657: { 8657: _M_head(*this) = _M_head(__in); 8657: return *this; 8657: } 8657: 8657: _Tuple_impl& 8657: operator=(_Tuple_impl&& __in) 8657: noexcept(is_nothrow_move_assignable<_Head>::value) 8657: { 8657: _M_head(*this) = std::forward<_Head>(_M_head(__in)); 8657: return *this; 8657: } 8657: 8657: template 8657: _Tuple_impl& 8657: operator=(const _Tuple_impl<_Idx, _UHead>& __in) 8657: { 8657: _M_head(*this) = _Tuple_impl<_Idx, _UHead>::_M_head(__in); 8657: return *this; 8657: } 8657: 8657: template 8657: _Tuple_impl& 8657: operator=(_Tuple_impl<_Idx, _UHead>&& __in) 8657: { 8657: _M_head(*this) 8657: = std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in)); 8657: return *this; 8657: } 8657: 8657: protected: 8657: void 8657: _M_swap(_Tuple_impl& __in) 8657: noexcept(__is_nothrow_swappable<_Head>::value) 8657: { 8657: using std::swap; 8657: swap(_M_head(*this), _M_head(__in)); 8657: } 8657: }; 8657: 8657: 8657: 8657: template 8657: struct _TC 8657: { 8657: template 8657: static constexpr bool _ConstructibleTuple() 8657: { 8657: return __and_...>::value; 8657: } 8657: 8657: template 8657: static constexpr bool _ImplicitlyConvertibleTuple() 8657: { 8657: return __and_...>::value; 8657: } 8657: 8657: template 8657: static constexpr bool _MoveConstructibleTuple() 8657: { 8657: return __and_...>::value; 8657: } 8657: 8657: template 8657: static constexpr bool _ImplicitlyMoveConvertibleTuple() 8657: { 8657: return __and_...>::value; 8657: } 8657: 8657: template 8657: static constexpr bool _NonNestedTuple() 8657: { 8657: return __and_<__not_, 8657: typename remove_cv< 8657: typename remove_reference<_SrcTuple>::type 8657: >::type>>, 8657: __not_>, 8657: __not_> 8657: >::value; 8657: } 8657: template 8657: static constexpr bool _NotSameTuple() 8657: { 8657: return __not_, 8657: typename remove_const< 8657: typename remove_reference<_UElements...>::type 8657: >::type>>::value; 8657: } 8657: }; 8657: 8657: template 8657: struct _TC 8657: { 8657: template 8657: static constexpr bool _ConstructibleTuple() 8657: { 8657: return false; 8657: } 8657: 8657: template 8657: static constexpr bool _ImplicitlyConvertibleTuple() 8657: { 8657: return false; 8657: } 8657: 8657: template 8657: static constexpr bool _MoveConstructibleTuple() 8657: { 8657: return false; 8657: } 8657: 8657: template 8657: static constexpr bool _ImplicitlyMoveConvertibleTuple() 8657: { 8657: return false; 8657: } 8657: 8657: template 8657: static constexpr bool _NonNestedTuple() 8657: { 8657: return true; 8657: } 8657: template 8657: static constexpr bool _NotSameTuple() 8657: { 8657: return true; 8657: } 8657: }; 8657: 8657: 8657: template 8657: class tuple : public _Tuple_impl<0, _Elements...> 8657: { 8657: typedef _Tuple_impl<0, _Elements...> _Inherited; 8657: 8657: 8657: 8657: template 8657: struct _TC2 8657: { 8657: static constexpr bool _DefaultConstructibleTuple() 8657: { 8657: return __and_...>::value; 8657: } 8657: static constexpr bool _ImplicitlyDefaultConstructibleTuple() 8657: { 8657: return __and_<__is_implicitly_default_constructible<_Elements>...> 8657: ::value; 8657: } 8657: }; 8657: 8657: public: 8657: template:: 8657: _ImplicitlyDefaultConstructibleTuple(), 8657: bool>::type = true> 8657: constexpr tuple() 8657: : _Inherited() { } 8657: 8657: template:: 8657: _DefaultConstructibleTuple() 8657: && 8657: !_TC2<_Dummy>:: 8657: _ImplicitlyDefaultConstructibleTuple(), 8657: bool>::type = false> 8657: explicit constexpr tuple() 8657: : _Inherited() { } 8657: 8657: 8657: 8657: template using _TCC = 8657: _TC::value, 8657: _Elements...>; 8657: 8657: template::template 8657: _ConstructibleTuple<_Elements...>() 8657: && _TCC<_Dummy>::template 8657: _ImplicitlyConvertibleTuple<_Elements...>() 8657: && (sizeof...(_Elements) >= 1), 8657: bool>::type=true> 8657: constexpr tuple(const _Elements&... __elements) 8657: : _Inherited(__elements...) { } 8657: 8657: template::template 8657: _ConstructibleTuple<_Elements...>() 8657: && !_TCC<_Dummy>::template 8657: _ImplicitlyConvertibleTuple<_Elements...>() 8657: && (sizeof...(_Elements) >= 1), 8657: bool>::type=false> 8657: explicit constexpr tuple(const _Elements&... __elements) 8657: : _Inherited(__elements...) { } 8657: 8657: 8657: 8657: template using _TMC = 8657: _TC<(sizeof...(_Elements) == sizeof...(_UElements)) 8657: && (_TC<(sizeof...(_UElements)==1), _Elements...>:: 8657: template _NotSameTuple<_UElements...>()), 8657: _Elements...>; 8657: 8657: 8657: 8657: template using _TMCT = 8657: _TC<(sizeof...(_Elements) == sizeof...(_UElements)) 8657: && !is_same, 8657: tuple<_UElements...>>::value, 8657: _Elements...>; 8657: 8657: template::template 8657: _MoveConstructibleTuple<_UElements...>() 8657: && _TMC<_UElements...>::template 8657: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8657: && (sizeof...(_Elements) >= 1), 8657: bool>::type=true> 8657: constexpr tuple(_UElements&&... __elements) 8657: : _Inherited(std::forward<_UElements>(__elements)...) { } 8657: 8657: template::template 8657: _MoveConstructibleTuple<_UElements...>() 8657: && !_TMC<_UElements...>::template 8657: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8657: && (sizeof...(_Elements) >= 1), 8657: bool>::type=false> 8657: explicit constexpr tuple(_UElements&&... __elements) 8657: : _Inherited(std::forward<_UElements>(__elements)...) { } 8657: 8657: constexpr tuple(const tuple&) = default; 8657: 8657: constexpr tuple(tuple&&) = default; 8657: 8657: 8657: 8657: template using _TNTC = 8657: _TC::value && sizeof...(_Elements) == 1, 8657: _Elements...>; 8657: 8657: template::template 8657: _ConstructibleTuple<_UElements...>() 8657: && _TMCT<_UElements...>::template 8657: _ImplicitlyConvertibleTuple<_UElements...>() 8657: && _TNTC<_Dummy>::template 8657: _NonNestedTuple&>(), 8657: bool>::type=true> 8657: constexpr tuple(const tuple<_UElements...>& __in) 8657: : _Inherited(static_cast&>(__in)) 8657: { } 8657: 8657: template::template 8657: _ConstructibleTuple<_UElements...>() 8657: && !_TMCT<_UElements...>::template 8657: _ImplicitlyConvertibleTuple<_UElements...>() 8657: && _TNTC<_Dummy>::template 8657: _NonNestedTuple&>(), 8657: bool>::type=false> 8657: explicit constexpr tuple(const tuple<_UElements...>& __in) 8657: : _Inherited(static_cast&>(__in)) 8657: { } 8657: 8657: template::template 8657: _MoveConstructibleTuple<_UElements...>() 8657: && _TMCT<_UElements...>::template 8657: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8657: && _TNTC<_Dummy>::template 8657: _NonNestedTuple&&>(), 8657: bool>::type=true> 8657: constexpr tuple(tuple<_UElements...>&& __in) 8657: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } 8657: 8657: template::template 8657: _MoveConstructibleTuple<_UElements...>() 8657: && !_TMCT<_UElements...>::template 8657: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8657: && _TNTC<_Dummy>::template 8657: _NonNestedTuple&&>(), 8657: bool>::type=false> 8657: explicit constexpr tuple(tuple<_UElements...>&& __in) 8657: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } 8657: 8657: 8657: 8657: template 8657: tuple(allocator_arg_t __tag, const _Alloc& __a) 8657: : _Inherited(__tag, __a) { } 8657: 8657: template::template 8657: _ConstructibleTuple<_Elements...>() 8657: && _TCC<_Dummy>::template 8657: _ImplicitlyConvertibleTuple<_Elements...>(), 8657: bool>::type=true> 8657: tuple(allocator_arg_t __tag, const _Alloc& __a, 8657: const _Elements&... __elements) 8657: : _Inherited(__tag, __a, __elements...) { } 8657: 8657: template::template 8657: _ConstructibleTuple<_Elements...>() 8657: && !_TCC<_Dummy>::template 8657: _ImplicitlyConvertibleTuple<_Elements...>(), 8657: bool>::type=false> 8657: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8657: const _Elements&... __elements) 8657: : _Inherited(__tag, __a, __elements...) { } 8657: 8657: template::template 8657: _MoveConstructibleTuple<_UElements...>() 8657: && _TMC<_UElements...>::template 8657: _ImplicitlyMoveConvertibleTuple<_UElements...>(), 8657: bool>::type=true> 8657: tuple(allocator_arg_t __tag, const _Alloc& __a, 8657: _UElements&&... __elements) 8657: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 8657: { } 8657: 8657: template::template 8657: _MoveConstructibleTuple<_UElements...>() 8657: && !_TMC<_UElements...>::template 8657: _ImplicitlyMoveConvertibleTuple<_UElements...>(), 8657: bool>::type=false> 8657: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8657: _UElements&&... __elements) 8657: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 8657: { } 8657: 8657: template 8657: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 8657: : _Inherited(__tag, __a, static_cast(__in)) { } 8657: 8657: template 8657: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 8657: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 8657: 8657: template::template 8657: _ConstructibleTuple<_UElements...>() 8657: && _TMCT<_UElements...>::template 8657: _ImplicitlyConvertibleTuple<_UElements...>() 8657: && _TNTC<_Dummy>::template 8657: _NonNestedTuple&&>(), 8657: bool>::type=true> 8657: tuple(allocator_arg_t __tag, const _Alloc& __a, 8657: const tuple<_UElements...>& __in) 8657: : _Inherited(__tag, __a, 8657: static_cast&>(__in)) 8657: { } 8657: 8657: template::template 8657: _ConstructibleTuple<_UElements...>() 8657: && !_TMCT<_UElements...>::template 8657: _ImplicitlyConvertibleTuple<_UElements...>() 8657: && _TNTC<_Dummy>::template 8657: _NonNestedTuple&&>(), 8657: bool>::type=false> 8657: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8657: const tuple<_UElements...>& __in) 8657: : _Inherited(__tag, __a, 8657: static_cast&>(__in)) 8657: { } 8657: 8657: template::template 8657: _MoveConstructibleTuple<_UElements...>() 8657: && _TMCT<_UElements...>::template 8657: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8657: && _TNTC<_Dummy>::template 8657: _NonNestedTuple&&>(), 8657: bool>::type=true> 8657: tuple(allocator_arg_t __tag, const _Alloc& __a, 8657: tuple<_UElements...>&& __in) 8657: : _Inherited(__tag, __a, 8657: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 8657: { } 8657: 8657: template::template 8657: _MoveConstructibleTuple<_UElements...>() 8657: && !_TMCT<_UElements...>::template 8657: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8657: && _TNTC<_Dummy>::template 8657: _NonNestedTuple&&>(), 8657: bool>::type=false> 8657: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8657: tuple<_UElements...>&& __in) 8657: : _Inherited(__tag, __a, 8657: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 8657: { } 8657: 8657: tuple& 8657: operator=(const tuple& __in) 8657: { 8657: static_cast<_Inherited&>(*this) = __in; 8657: return *this; 8657: } 8657: 8657: tuple& 8657: operator=(tuple&& __in) 8657: noexcept(is_nothrow_move_assignable<_Inherited>::value) 8657: { 8657: static_cast<_Inherited&>(*this) = std::move(__in); 8657: return *this; 8657: } 8657: 8657: template 8657: typename 8657: enable_if::type 8657: operator=(const tuple<_UElements...>& __in) 8657: { 8657: static_cast<_Inherited&>(*this) = __in; 8657: return *this; 8657: } 8657: 8657: template 8657: typename 8657: enable_if::type 8657: operator=(tuple<_UElements...>&& __in) 8657: { 8657: static_cast<_Inherited&>(*this) = std::move(__in); 8657: return *this; 8657: } 8657: 8657: void 8657: swap(tuple& __in) 8657: noexcept(noexcept(__in._M_swap(__in))) 8657: { _Inherited::_M_swap(__in); } 8657: }; 8657: # 889 "/usr/include/c++/8/tuple" 3 8657: template<> 8657: class tuple<> 8657: { 8657: public: 8657: void swap(tuple&) noexcept { } 8657: 8657: 8657: tuple() = default; 8657: 8657: template 8657: tuple(allocator_arg_t, const _Alloc&) { } 8657: template 8657: tuple(allocator_arg_t, const _Alloc&, const tuple&) { } 8657: }; 8657: 8657: 8657: 8657: template 8657: class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2> 8657: { 8657: typedef _Tuple_impl<0, _T1, _T2> _Inherited; 8657: 8657: public: 8657: template , 8657: __is_implicitly_default_constructible<_U2>> 8657: ::value, bool>::type = true> 8657: 8657: constexpr tuple() 8657: : _Inherited() { } 8657: 8657: template , 8657: is_default_constructible<_U2>, 8657: __not_< 8657: __and_<__is_implicitly_default_constructible<_U1>, 8657: __is_implicitly_default_constructible<_U2>>>> 8657: ::value, bool>::type = false> 8657: 8657: explicit constexpr tuple() 8657: : _Inherited() { } 8657: 8657: 8657: 8657: template using _TCC = 8657: _TC::value, _T1, _T2>; 8657: 8657: template::template 8657: _ConstructibleTuple<_T1, _T2>() 8657: && _TCC<_Dummy>::template 8657: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8657: bool>::type = true> 8657: constexpr tuple(const _T1& __a1, const _T2& __a2) 8657: : _Inherited(__a1, __a2) { } 8657: 8657: template::template 8657: _ConstructibleTuple<_T1, _T2>() 8657: && !_TCC<_Dummy>::template 8657: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8657: bool>::type = false> 8657: explicit constexpr tuple(const _T1& __a1, const _T2& __a2) 8657: : _Inherited(__a1, __a2) { } 8657: 8657: 8657: 8657: using _TMC = _TC; 8657: 8657: template() 8657: && _TMC::template 8657: _ImplicitlyMoveConvertibleTuple<_U1, _U2>() 8657: && !is_same::type, 8657: allocator_arg_t>::value, 8657: bool>::type = true> 8657: constexpr tuple(_U1&& __a1, _U2&& __a2) 8657: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } 8657: 8657: template() 8657: && !_TMC::template 8657: _ImplicitlyMoveConvertibleTuple<_U1, _U2>() 8657: && !is_same::type, 8657: allocator_arg_t>::value, 8657: bool>::type = false> 8657: explicit constexpr tuple(_U1&& __a1, _U2&& __a2) 8657: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } 8657: 8657: constexpr tuple(const tuple&) = default; 8657: 8657: constexpr tuple(tuple&&) = default; 8657: 8657: template() 8657: && _TMC::template 8657: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8657: bool>::type = true> 8657: constexpr tuple(const tuple<_U1, _U2>& __in) 8657: : _Inherited(static_cast&>(__in)) { } 8657: 8657: template() 8657: && !_TMC::template 8657: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8657: bool>::type = false> 8657: explicit constexpr tuple(const tuple<_U1, _U2>& __in) 8657: : _Inherited(static_cast&>(__in)) { } 8657: 8657: template() 8657: && _TMC::template 8657: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8657: bool>::type = true> 8657: constexpr tuple(tuple<_U1, _U2>&& __in) 8657: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } 8657: 8657: template() 8657: && !_TMC::template 8657: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8657: bool>::type = false> 8657: explicit constexpr tuple(tuple<_U1, _U2>&& __in) 8657: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } 8657: 8657: template() 8657: && _TMC::template 8657: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8657: bool>::type = true> 8657: constexpr tuple(const pair<_U1, _U2>& __in) 8657: : _Inherited(__in.first, __in.second) { } 8657: 8657: template() 8657: && !_TMC::template 8657: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8657: bool>::type = false> 8657: explicit constexpr tuple(const pair<_U1, _U2>& __in) 8657: : _Inherited(__in.first, __in.second) { } 8657: 8657: template() 8657: && _TMC::template 8657: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8657: bool>::type = true> 8657: constexpr tuple(pair<_U1, _U2>&& __in) 8657: : _Inherited(std::forward<_U1>(__in.first), 8657: std::forward<_U2>(__in.second)) { } 8657: 8657: template() 8657: && !_TMC::template 8657: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8657: bool>::type = false> 8657: explicit constexpr tuple(pair<_U1, _U2>&& __in) 8657: : _Inherited(std::forward<_U1>(__in.first), 8657: std::forward<_U2>(__in.second)) { } 8657: 8657: 8657: 8657: template 8657: tuple(allocator_arg_t __tag, const _Alloc& __a) 8657: : _Inherited(__tag, __a) { } 8657: 8657: template::template 8657: _ConstructibleTuple<_T1, _T2>() 8657: && _TCC<_Dummy>::template 8657: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8657: bool>::type=true> 8657: 8657: tuple(allocator_arg_t __tag, const _Alloc& __a, 8657: const _T1& __a1, const _T2& __a2) 8657: : _Inherited(__tag, __a, __a1, __a2) { } 8657: 8657: template::template 8657: _ConstructibleTuple<_T1, _T2>() 8657: && !_TCC<_Dummy>::template 8657: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8657: bool>::type=false> 8657: 8657: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8657: const _T1& __a1, const _T2& __a2) 8657: : _Inherited(__tag, __a, __a1, __a2) { } 8657: 8657: template() 8657: && _TMC::template 8657: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8657: bool>::type = true> 8657: tuple(allocator_arg_t __tag, const _Alloc& __a, _U1&& __a1, _U2&& __a2) 8657: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 8657: std::forward<_U2>(__a2)) { } 8657: 8657: template() 8657: && !_TMC::template 8657: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8657: bool>::type = false> 8657: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8657: _U1&& __a1, _U2&& __a2) 8657: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 8657: std::forward<_U2>(__a2)) { } 8657: 8657: template 8657: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 8657: : _Inherited(__tag, __a, static_cast(__in)) { } 8657: 8657: template 8657: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 8657: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 8657: 8657: template() 8657: && _TMC::template 8657: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8657: bool>::type = true> 8657: tuple(allocator_arg_t __tag, const _Alloc& __a, 8657: const tuple<_U1, _U2>& __in) 8657: : _Inherited(__tag, __a, 8657: static_cast&>(__in)) 8657: { } 8657: 8657: template() 8657: && !_TMC::template 8657: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8657: bool>::type = false> 8657: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8657: const tuple<_U1, _U2>& __in) 8657: : _Inherited(__tag, __a, 8657: static_cast&>(__in)) 8657: { } 8657: 8657: template() 8657: && _TMC::template 8657: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8657: bool>::type = true> 8657: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_U1, _U2>&& __in) 8657: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 8657: { } 8657: 8657: template() 8657: && !_TMC::template 8657: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8657: bool>::type = false> 8657: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8657: tuple<_U1, _U2>&& __in) 8657: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 8657: { } 8657: 8657: template() 8657: && _TMC::template 8657: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8657: bool>::type = true> 8657: tuple(allocator_arg_t __tag, const _Alloc& __a, 8657: const pair<_U1, _U2>& __in) 8657: : _Inherited(__tag, __a, __in.first, __in.second) { } 8657: 8657: template() 8657: && !_TMC::template 8657: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8657: bool>::type = false> 8657: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8657: const pair<_U1, _U2>& __in) 8657: : _Inherited(__tag, __a, __in.first, __in.second) { } 8657: 8657: template() 8657: && _TMC::template 8657: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8657: bool>::type = true> 8657: tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __in) 8657: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 8657: std::forward<_U2>(__in.second)) { } 8657: 8657: template() 8657: && !_TMC::template 8657: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8657: bool>::type = false> 8657: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8657: pair<_U1, _U2>&& __in) 8657: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 8657: std::forward<_U2>(__in.second)) { } 8657: 8657: tuple& 8657: operator=(const tuple& __in) 8657: { 8657: static_cast<_Inherited&>(*this) = __in; 8657: return *this; 8657: } 8657: 8657: tuple& 8657: operator=(tuple&& __in) 8657: noexcept(is_nothrow_move_assignable<_Inherited>::value) 8657: { 8657: static_cast<_Inherited&>(*this) = std::move(__in); 8657: return *this; 8657: } 8657: 8657: template 8657: tuple& 8657: operator=(const tuple<_U1, _U2>& __in) 8657: { 8657: static_cast<_Inherited&>(*this) = __in; 8657: return *this; 8657: } 8657: 8657: template 8657: tuple& 8657: operator=(tuple<_U1, _U2>&& __in) 8657: { 8657: static_cast<_Inherited&>(*this) = std::move(__in); 8657: return *this; 8657: } 8657: 8657: template 8657: tuple& 8657: operator=(const pair<_U1, _U2>& __in) 8657: { 8657: this->_M_head(*this) = __in.first; 8657: this->_M_tail(*this)._M_head(*this) = __in.second; 8657: return *this; 8657: } 8657: 8657: template 8657: tuple& 8657: operator=(pair<_U1, _U2>&& __in) 8657: { 8657: this->_M_head(*this) = std::forward<_U1>(__in.first); 8657: this->_M_tail(*this)._M_head(*this) = std::forward<_U2>(__in.second); 8657: return *this; 8657: } 8657: 8657: void 8657: swap(tuple& __in) 8657: noexcept(noexcept(__in._M_swap(__in))) 8657: { _Inherited::_M_swap(__in); } 8657: }; 8657: 8657: 8657: 8657: template 8657: struct tuple_size> 8657: : public integral_constant { }; 8657: # 1278 "/usr/include/c++/8/tuple" 3 8657: template 8657: struct tuple_element<__i, tuple<_Head, _Tail...> > 8657: : tuple_element<__i - 1, tuple<_Tail...> > { }; 8657: 8657: 8657: 8657: 8657: template 8657: struct tuple_element<0, tuple<_Head, _Tail...> > 8657: { 8657: typedef _Head type; 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: struct tuple_element<__i, tuple<>> 8657: { 8657: static_assert(__i < tuple_size>::value, 8657: "tuple index is in range"); 8657: }; 8657: 8657: template 8657: constexpr _Head& 8657: __get_helper(_Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 8657: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 8657: 8657: template 8657: constexpr const _Head& 8657: __get_helper(const _Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 8657: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 8657: 8657: 8657: template 8657: constexpr __tuple_element_t<__i, tuple<_Elements...>>& 8657: get(tuple<_Elements...>& __t) noexcept 8657: { return std::__get_helper<__i>(__t); } 8657: 8657: 8657: template 8657: constexpr const __tuple_element_t<__i, tuple<_Elements...>>& 8657: get(const tuple<_Elements...>& __t) noexcept 8657: { return std::__get_helper<__i>(__t); } 8657: 8657: 8657: template 8657: constexpr __tuple_element_t<__i, tuple<_Elements...>>&& 8657: get(tuple<_Elements...>&& __t) noexcept 8657: { 8657: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 8657: return std::forward<__element_type&&>(std::get<__i>(__t)); 8657: } 8657: 8657: 8657: template 8657: constexpr const __tuple_element_t<__i, tuple<_Elements...>>&& 8657: get(const tuple<_Elements...>&& __t) noexcept 8657: { 8657: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 8657: return std::forward(std::get<__i>(__t)); 8657: } 8657: # 1382 "/usr/include/c++/8/tuple" 3 8657: template 8657: struct __tuple_compare 8657: { 8657: static constexpr bool 8657: __eq(const _Tp& __t, const _Up& __u) 8657: { 8657: return bool(std::get<__i>(__t) == std::get<__i>(__u)) 8657: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__eq(__t, __u); 8657: } 8657: 8657: static constexpr bool 8657: __less(const _Tp& __t, const _Up& __u) 8657: { 8657: return bool(std::get<__i>(__t) < std::get<__i>(__u)) 8657: || (!bool(std::get<__i>(__u) < std::get<__i>(__t)) 8657: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__less(__t, __u)); 8657: } 8657: }; 8657: 8657: template 8657: struct __tuple_compare<_Tp, _Up, __size, __size> 8657: { 8657: static constexpr bool 8657: __eq(const _Tp&, const _Up&) { return true; } 8657: 8657: static constexpr bool 8657: __less(const _Tp&, const _Up&) { return false; } 8657: }; 8657: 8657: template 8657: constexpr bool 8657: operator==(const tuple<_TElements...>& __t, 8657: const tuple<_UElements...>& __u) 8657: { 8657: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 8657: "tuple objects can only be compared if they have equal sizes."); 8657: using __compare = __tuple_compare, 8657: tuple<_UElements...>, 8657: 0, sizeof...(_TElements)>; 8657: return __compare::__eq(__t, __u); 8657: } 8657: 8657: template 8657: constexpr bool 8657: operator<(const tuple<_TElements...>& __t, 8657: const tuple<_UElements...>& __u) 8657: { 8657: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 8657: "tuple objects can only be compared if they have equal sizes."); 8657: using __compare = __tuple_compare, 8657: tuple<_UElements...>, 8657: 0, sizeof...(_TElements)>; 8657: return __compare::__less(__t, __u); 8657: } 8657: 8657: template 8657: constexpr bool 8657: operator!=(const tuple<_TElements...>& __t, 8657: const tuple<_UElements...>& __u) 8657: { return !(__t == __u); } 8657: 8657: template 8657: constexpr bool 8657: operator>(const tuple<_TElements...>& __t, 8657: const tuple<_UElements...>& __u) 8657: { return __u < __t; } 8657: 8657: template 8657: constexpr bool 8657: operator<=(const tuple<_TElements...>& __t, 8657: const tuple<_UElements...>& __u) 8657: { return !(__u < __t); } 8657: 8657: template 8657: constexpr bool 8657: operator>=(const tuple<_TElements...>& __t, 8657: const tuple<_UElements...>& __u) 8657: { return !(__t < __u); } 8657: 8657: 8657: template 8657: constexpr tuple::__type...> 8657: make_tuple(_Elements&&... __args) 8657: { 8657: typedef tuple::__type...> 8657: __result_type; 8657: return __result_type(std::forward<_Elements>(__args)...); 8657: } 8657: 8657: 8657: 8657: template 8657: constexpr tuple<_Elements&&...> 8657: forward_as_tuple(_Elements&&... __args) noexcept 8657: { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...); } 8657: 8657: template 8657: struct __make_tuple_impl; 8657: 8657: template 8657: struct __make_tuple_impl<_Idx, tuple<_Tp...>, _Tuple, _Nm> 8657: : __make_tuple_impl<_Idx + 1, 8657: tuple<_Tp..., __tuple_element_t<_Idx, _Tuple>>, 8657: _Tuple, _Nm> 8657: { }; 8657: 8657: template 8657: struct __make_tuple_impl<_Nm, tuple<_Tp...>, _Tuple, _Nm> 8657: { 8657: typedef tuple<_Tp...> __type; 8657: }; 8657: 8657: template 8657: struct __do_make_tuple 8657: : __make_tuple_impl<0, tuple<>, _Tuple, std::tuple_size<_Tuple>::value> 8657: { }; 8657: 8657: 8657: template 8657: struct __make_tuple 8657: : public __do_make_tuple::type>::type> 8657: { }; 8657: 8657: 8657: template 8657: struct __combine_tuples; 8657: 8657: template<> 8657: struct __combine_tuples<> 8657: { 8657: typedef tuple<> __type; 8657: }; 8657: 8657: template 8657: struct __combine_tuples> 8657: { 8657: typedef tuple<_Ts...> __type; 8657: }; 8657: 8657: template 8657: struct __combine_tuples, tuple<_T2s...>, _Rem...> 8657: { 8657: typedef typename __combine_tuples, 8657: _Rem...>::__type __type; 8657: }; 8657: 8657: 8657: template 8657: struct __tuple_cat_result 8657: { 8657: typedef typename __combine_tuples 8657: ::__type...>::__type __type; 8657: }; 8657: 8657: 8657: 8657: template 8657: struct __make_1st_indices; 8657: 8657: template<> 8657: struct __make_1st_indices<> 8657: { 8657: typedef std::_Index_tuple<> __type; 8657: }; 8657: 8657: template 8657: struct __make_1st_indices<_Tp, _Tpls...> 8657: { 8657: typedef typename std::_Build_index_tuple::type>::value>::__type __type; 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: struct __tuple_concater; 8657: 8657: template 8657: struct __tuple_concater<_Ret, std::_Index_tuple<_Is...>, _Tp, _Tpls...> 8657: { 8657: template 8657: static constexpr _Ret 8657: _S_do(_Tp&& __tp, _Tpls&&... __tps, _Us&&... __us) 8657: { 8657: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 8657: typedef __tuple_concater<_Ret, __idx, _Tpls...> __next; 8657: return __next::_S_do(std::forward<_Tpls>(__tps)..., 8657: std::forward<_Us>(__us)..., 8657: std::get<_Is>(std::forward<_Tp>(__tp))...); 8657: } 8657: }; 8657: 8657: template 8657: struct __tuple_concater<_Ret, std::_Index_tuple<>> 8657: { 8657: template 8657: static constexpr _Ret 8657: _S_do(_Us&&... __us) 8657: { 8657: return _Ret(std::forward<_Us>(__us)...); 8657: } 8657: }; 8657: 8657: 8657: template...>::value>::type> 8657: constexpr auto 8657: tuple_cat(_Tpls&&... __tpls) 8657: -> typename __tuple_cat_result<_Tpls...>::__type 8657: { 8657: typedef typename __tuple_cat_result<_Tpls...>::__type __ret; 8657: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 8657: typedef __tuple_concater<__ret, __idx, _Tpls...> __concater; 8657: return __concater::_S_do(std::forward<_Tpls>(__tpls)...); 8657: } 8657: 8657: 8657: 8657: 8657: template 8657: constexpr tuple<_Elements&...> 8657: tie(_Elements&... __args) noexcept 8657: { return tuple<_Elements&...>(__args...); } 8657: 8657: 8657: template 8657: inline 8657: 8657: 8657: typename enable_if<__and_<__is_swappable<_Elements>...>::value 8657: >::type 8657: 8657: 8657: 8657: swap(tuple<_Elements...>& __x, tuple<_Elements...>& __y) 8657: noexcept(noexcept(__x.swap(__y))) 8657: { __x.swap(__y); } 8657: 8657: 8657: template 8657: typename enable_if...>::value>::type 8657: swap(tuple<_Elements...>&, tuple<_Elements...>&) = delete; 8657: 8657: 8657: 8657: 8657: 8657: 8657: struct _Swallow_assign 8657: { 8657: template 8657: const _Swallow_assign& 8657: operator=(const _Tp&) const 8657: { return *this; } 8657: }; 8657: 8657: 8657: 8657: constexpr _Swallow_assign ignore{}; 8657: 8657: 8657: template 8657: struct uses_allocator, _Alloc> : true_type { }; 8657: 8657: 8657: template 8657: template 8657: inline 8657: pair<_T1, _T2>:: 8657: pair(piecewise_construct_t, 8657: tuple<_Args1...> __first, tuple<_Args2...> __second) 8657: : pair(__first, __second, 8657: typename _Build_index_tuple::__type(), 8657: typename _Build_index_tuple::__type()) 8657: { } 8657: 8657: template 8657: template 8657: inline 8657: pair<_T1, _T2>:: 8657: pair(tuple<_Args1...>& __tuple1, tuple<_Args2...>& __tuple2, 8657: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>) 8657: : first(std::forward<_Args1>(std::get<_Indexes1>(__tuple1))...), 8657: second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...) 8657: { } 8657: # 1711 "/usr/include/c++/8/tuple" 3 8657: 8657: } 8657: # 64 "/usr/include/c++/8/bits/stl_map.h" 2 3 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: template 8657: class multimap; 8657: # 98 "/usr/include/c++/8/bits/stl_map.h" 3 8657: template , 8657: typename _Alloc = std::allocator > > 8657: class map 8657: { 8657: public: 8657: typedef _Key key_type; 8657: typedef _Tp mapped_type; 8657: typedef std::pair value_type; 8657: typedef _Compare key_compare; 8657: typedef _Alloc allocator_type; 8657: 8657: private: 8657: # 126 "/usr/include/c++/8/bits/stl_map.h" 3 8657: public: 8657: class value_compare 8657: : public std::binary_function 8657: { 8657: friend class map<_Key, _Tp, _Compare, _Alloc>; 8657: protected: 8657: _Compare comp; 8657: 8657: value_compare(_Compare __c) 8657: : comp(__c) { } 8657: 8657: public: 8657: bool operator()(const value_type& __x, const value_type& __y) const 8657: { return comp(__x.first, __y.first); } 8657: }; 8657: 8657: private: 8657: 8657: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8657: rebind::other _Pair_alloc_type; 8657: 8657: typedef _Rb_tree, 8657: key_compare, _Pair_alloc_type> _Rep_type; 8657: 8657: 8657: _Rep_type _M_t; 8657: 8657: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 8657: 8657: public: 8657: 8657: 8657: typedef typename _Alloc_traits::pointer pointer; 8657: typedef typename _Alloc_traits::const_pointer const_pointer; 8657: typedef typename _Alloc_traits::reference reference; 8657: typedef typename _Alloc_traits::const_reference const_reference; 8657: typedef typename _Rep_type::iterator iterator; 8657: typedef typename _Rep_type::const_iterator const_iterator; 8657: typedef typename _Rep_type::size_type size_type; 8657: typedef typename _Rep_type::difference_type difference_type; 8657: typedef typename _Rep_type::reverse_iterator reverse_iterator; 8657: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 8657: # 183 "/usr/include/c++/8/bits/stl_map.h" 3 8657: map() = default; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: explicit 8657: map(const _Compare& __comp, 8657: const allocator_type& __a = allocator_type()) 8657: : _M_t(__comp, _Pair_alloc_type(__a)) { } 8657: # 205 "/usr/include/c++/8/bits/stl_map.h" 3 8657: map(const map&) = default; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: map(map&&) = default; 8657: # 226 "/usr/include/c++/8/bits/stl_map.h" 3 8657: map(initializer_list __l, 8657: const _Compare& __comp = _Compare(), 8657: const allocator_type& __a = allocator_type()) 8657: : _M_t(__comp, _Pair_alloc_type(__a)) 8657: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 8657: 8657: 8657: explicit 8657: map(const allocator_type& __a) 8657: : _M_t(_Compare(), _Pair_alloc_type(__a)) { } 8657: 8657: 8657: map(const map& __m, const allocator_type& __a) 8657: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 8657: 8657: 8657: map(map&& __m, const allocator_type& __a) 8657: noexcept(is_nothrow_copy_constructible<_Compare>::value 8657: && _Alloc_traits::_S_always_equal()) 8657: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 8657: 8657: 8657: map(initializer_list __l, const allocator_type& __a) 8657: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8657: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 8657: 8657: 8657: template 8657: map(_InputIterator __first, _InputIterator __last, 8657: const allocator_type& __a) 8657: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8657: { _M_t._M_insert_unique(__first, __last); } 8657: # 270 "/usr/include/c++/8/bits/stl_map.h" 3 8657: template 8657: map(_InputIterator __first, _InputIterator __last) 8657: : _M_t() 8657: { _M_t._M_insert_unique(__first, __last); } 8657: # 287 "/usr/include/c++/8/bits/stl_map.h" 3 8657: template 8657: map(_InputIterator __first, _InputIterator __last, 8657: const _Compare& __comp, 8657: const allocator_type& __a = allocator_type()) 8657: : _M_t(__comp, _Pair_alloc_type(__a)) 8657: { _M_t._M_insert_unique(__first, __last); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ~map() = default; 8657: # 316 "/usr/include/c++/8/bits/stl_map.h" 3 8657: map& 8657: operator=(const map&) = default; 8657: 8657: 8657: map& 8657: operator=(map&&) = default; 8657: # 334 "/usr/include/c++/8/bits/stl_map.h" 3 8657: map& 8657: operator=(initializer_list __l) 8657: { 8657: _M_t._M_assign_unique(__l.begin(), __l.end()); 8657: return *this; 8657: } 8657: 8657: 8657: 8657: allocator_type 8657: get_allocator() const noexcept 8657: { return allocator_type(_M_t.get_allocator()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: begin() noexcept 8657: { return _M_t.begin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: begin() const noexcept 8657: { return _M_t.begin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: end() noexcept 8657: { return _M_t.end(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: end() const noexcept 8657: { return _M_t.end(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: rbegin() noexcept 8657: { return _M_t.rbegin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: rbegin() const noexcept 8657: { return _M_t.rbegin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: rend() noexcept 8657: { return _M_t.rend(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: rend() const noexcept 8657: { return _M_t.rend(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: cbegin() const noexcept 8657: { return _M_t.begin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: cend() const noexcept 8657: { return _M_t.end(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: crbegin() const noexcept 8657: { return _M_t.rbegin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: crend() const noexcept 8657: { return _M_t.rend(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: bool 8657: empty() const noexcept 8657: { return _M_t.empty(); } 8657: 8657: 8657: size_type 8657: size() const noexcept 8657: { return _M_t.size(); } 8657: 8657: 8657: size_type 8657: max_size() const noexcept 8657: { return _M_t.max_size(); } 8657: # 489 "/usr/include/c++/8/bits/stl_map.h" 3 8657: mapped_type& 8657: operator[](const key_type& __k) 8657: { 8657: 8657: 8657: 8657: iterator __i = lower_bound(__k); 8657: 8657: if (__i == end() || key_comp()(__k, (*__i).first)) 8657: 8657: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 8657: std::tuple(__k), 8657: std::tuple<>()); 8657: 8657: 8657: 8657: return (*__i).second; 8657: } 8657: 8657: 8657: mapped_type& 8657: operator[](key_type&& __k) 8657: { 8657: 8657: 8657: 8657: iterator __i = lower_bound(__k); 8657: 8657: if (__i == end() || key_comp()(__k, (*__i).first)) 8657: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 8657: std::forward_as_tuple(std::move(__k)), 8657: std::tuple<>()); 8657: return (*__i).second; 8657: } 8657: # 534 "/usr/include/c++/8/bits/stl_map.h" 3 8657: mapped_type& 8657: at(const key_type& __k) 8657: { 8657: iterator __i = lower_bound(__k); 8657: if (__i == end() || key_comp()(__k, (*__i).first)) 8657: __throw_out_of_range(("map::at")); 8657: return (*__i).second; 8657: } 8657: 8657: const mapped_type& 8657: at(const key_type& __k) const 8657: { 8657: const_iterator __i = lower_bound(__k); 8657: if (__i == end() || key_comp()(__k, (*__i).first)) 8657: __throw_out_of_range(("map::at")); 8657: return (*__i).second; 8657: } 8657: # 572 "/usr/include/c++/8/bits/stl_map.h" 3 8657: template 8657: std::pair 8657: emplace(_Args&&... __args) 8657: { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); } 8657: # 602 "/usr/include/c++/8/bits/stl_map.h" 3 8657: template 8657: iterator 8657: emplace_hint(const_iterator __pos, _Args&&... __args) 8657: { 8657: return _M_t._M_emplace_hint_unique(__pos, 8657: std::forward<_Args>(__args)...); 8657: } 8657: # 800 "/usr/include/c++/8/bits/stl_map.h" 3 8657: std::pair 8657: insert(const value_type& __x) 8657: { return _M_t._M_insert_unique(__x); } 8657: 8657: 8657: 8657: 8657: std::pair 8657: insert(value_type&& __x) 8657: { return _M_t._M_insert_unique(std::move(__x)); } 8657: 8657: template::value>::type> 8657: std::pair 8657: insert(_Pair&& __x) 8657: { return _M_t._M_insert_unique(std::forward<_Pair>(__x)); } 8657: # 828 "/usr/include/c++/8/bits/stl_map.h" 3 8657: void 8657: insert(std::initializer_list __list) 8657: { insert(__list.begin(), __list.end()); } 8657: # 857 "/usr/include/c++/8/bits/stl_map.h" 3 8657: iterator 8657: 8657: insert(const_iterator __position, const value_type& __x) 8657: 8657: 8657: 8657: { return _M_t._M_insert_unique_(__position, __x); } 8657: 8657: 8657: 8657: 8657: iterator 8657: insert(const_iterator __position, value_type&& __x) 8657: { return _M_t._M_insert_unique_(__position, std::move(__x)); } 8657: 8657: template::value>::type> 8657: iterator 8657: insert(const_iterator __position, _Pair&& __x) 8657: { return _M_t._M_insert_unique_(__position, 8657: std::forward<_Pair>(__x)); } 8657: # 890 "/usr/include/c++/8/bits/stl_map.h" 3 8657: template 8657: void 8657: insert(_InputIterator __first, _InputIterator __last) 8657: { _M_t._M_insert_unique(__first, __last); } 8657: # 1030 "/usr/include/c++/8/bits/stl_map.h" 3 8657: iterator 8657: erase(const_iterator __position) 8657: { return _M_t.erase(__position); } 8657: 8657: 8657: __attribute ((__abi_tag__ ("cxx11"))) 8657: iterator 8657: erase(iterator __position) 8657: { return _M_t.erase(__position); } 8657: # 1067 "/usr/include/c++/8/bits/stl_map.h" 3 8657: size_type 8657: erase(const key_type& __x) 8657: { return _M_t.erase(__x); } 8657: # 1087 "/usr/include/c++/8/bits/stl_map.h" 3 8657: iterator 8657: erase(const_iterator __first, const_iterator __last) 8657: { return _M_t.erase(__first, __last); } 8657: # 1121 "/usr/include/c++/8/bits/stl_map.h" 3 8657: void 8657: swap(map& __x) 8657: noexcept(__is_nothrow_swappable<_Compare>::value) 8657: { _M_t.swap(__x._M_t); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: void 8657: clear() noexcept 8657: { _M_t.clear(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: key_compare 8657: key_comp() const 8657: { return _M_t.key_comp(); } 8657: 8657: 8657: 8657: 8657: 8657: value_compare 8657: value_comp() const 8657: { return value_compare(_M_t.key_comp()); } 8657: # 1168 "/usr/include/c++/8/bits/stl_map.h" 3 8657: iterator 8657: find(const key_type& __x) 8657: { return _M_t.find(__x); } 8657: # 1193 "/usr/include/c++/8/bits/stl_map.h" 3 8657: const_iterator 8657: find(const key_type& __x) const 8657: { return _M_t.find(__x); } 8657: # 1214 "/usr/include/c++/8/bits/stl_map.h" 3 8657: size_type 8657: count(const key_type& __x) const 8657: { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } 8657: # 1238 "/usr/include/c++/8/bits/stl_map.h" 3 8657: iterator 8657: lower_bound(const key_type& __x) 8657: { return _M_t.lower_bound(__x); } 8657: # 1263 "/usr/include/c++/8/bits/stl_map.h" 3 8657: const_iterator 8657: lower_bound(const key_type& __x) const 8657: { return _M_t.lower_bound(__x); } 8657: # 1283 "/usr/include/c++/8/bits/stl_map.h" 3 8657: iterator 8657: upper_bound(const key_type& __x) 8657: { return _M_t.upper_bound(__x); } 8657: # 1303 "/usr/include/c++/8/bits/stl_map.h" 3 8657: const_iterator 8657: upper_bound(const key_type& __x) const 8657: { return _M_t.upper_bound(__x); } 8657: # 1332 "/usr/include/c++/8/bits/stl_map.h" 3 8657: std::pair 8657: equal_range(const key_type& __x) 8657: { return _M_t.equal_range(__x); } 8657: # 1361 "/usr/include/c++/8/bits/stl_map.h" 3 8657: std::pair 8657: equal_range(const key_type& __x) const 8657: { return _M_t.equal_range(__x); } 8657: # 1378 "/usr/include/c++/8/bits/stl_map.h" 3 8657: template 8657: friend bool 8657: operator==(const map<_K1, _T1, _C1, _A1>&, 8657: const map<_K1, _T1, _C1, _A1>&); 8657: 8657: template 8657: friend bool 8657: operator<(const map<_K1, _T1, _C1, _A1>&, 8657: const map<_K1, _T1, _C1, _A1>&); 8657: }; 8657: # 1433 "/usr/include/c++/8/bits/stl_map.h" 3 8657: template 8657: inline bool 8657: operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8657: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8657: { return __x._M_t == __y._M_t; } 8657: # 1450 "/usr/include/c++/8/bits/stl_map.h" 3 8657: template 8657: inline bool 8657: operator<(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8657: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8657: { return __x._M_t < __y._M_t; } 8657: 8657: 8657: template 8657: inline bool 8657: operator!=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8657: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8657: { return !(__x == __y); } 8657: 8657: 8657: template 8657: inline bool 8657: operator>(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8657: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8657: { return __y < __x; } 8657: 8657: 8657: template 8657: inline bool 8657: operator<=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8657: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8657: { return !(__y < __x); } 8657: 8657: 8657: template 8657: inline bool 8657: operator>=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8657: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8657: { return !(__x < __y); } 8657: 8657: 8657: template 8657: inline void 8657: swap(map<_Key, _Tp, _Compare, _Alloc>& __x, 8657: map<_Key, _Tp, _Compare, _Alloc>& __y) 8657: noexcept(noexcept(__x.swap(__y))) 8657: { __x.swap(__y); } 8657: 8657: 8657: # 1515 "/usr/include/c++/8/bits/stl_map.h" 3 8657: 8657: } 8657: # 62 "/usr/include/c++/8/map" 2 3 8657: # 1 "/usr/include/c++/8/bits/stl_multimap.h" 1 3 8657: # 64 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: template 8657: class map; 8657: # 96 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: template , 8657: typename _Alloc = std::allocator > > 8657: class multimap 8657: { 8657: public: 8657: typedef _Key key_type; 8657: typedef _Tp mapped_type; 8657: typedef std::pair value_type; 8657: typedef _Compare key_compare; 8657: typedef _Alloc allocator_type; 8657: 8657: private: 8657: # 125 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: public: 8657: class value_compare 8657: : public std::binary_function 8657: { 8657: friend class multimap<_Key, _Tp, _Compare, _Alloc>; 8657: protected: 8657: _Compare comp; 8657: 8657: value_compare(_Compare __c) 8657: : comp(__c) { } 8657: 8657: public: 8657: bool operator()(const value_type& __x, const value_type& __y) const 8657: { return comp(__x.first, __y.first); } 8657: }; 8657: 8657: private: 8657: 8657: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8657: rebind::other _Pair_alloc_type; 8657: 8657: typedef _Rb_tree, 8657: key_compare, _Pair_alloc_type> _Rep_type; 8657: 8657: _Rep_type _M_t; 8657: 8657: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 8657: 8657: public: 8657: 8657: 8657: typedef typename _Alloc_traits::pointer pointer; 8657: typedef typename _Alloc_traits::const_pointer const_pointer; 8657: typedef typename _Alloc_traits::reference reference; 8657: typedef typename _Alloc_traits::const_reference const_reference; 8657: typedef typename _Rep_type::iterator iterator; 8657: typedef typename _Rep_type::const_iterator const_iterator; 8657: typedef typename _Rep_type::size_type size_type; 8657: typedef typename _Rep_type::difference_type difference_type; 8657: typedef typename _Rep_type::reverse_iterator reverse_iterator; 8657: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 8657: # 180 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: multimap() = default; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: explicit 8657: multimap(const _Compare& __comp, 8657: const allocator_type& __a = allocator_type()) 8657: : _M_t(__comp, _Pair_alloc_type(__a)) { } 8657: # 202 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: multimap(const multimap&) = default; 8657: # 211 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: multimap(multimap&&) = default; 8657: # 223 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: multimap(initializer_list __l, 8657: const _Compare& __comp = _Compare(), 8657: const allocator_type& __a = allocator_type()) 8657: : _M_t(__comp, _Pair_alloc_type(__a)) 8657: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 8657: 8657: 8657: explicit 8657: multimap(const allocator_type& __a) 8657: : _M_t(_Compare(), _Pair_alloc_type(__a)) { } 8657: 8657: 8657: multimap(const multimap& __m, const allocator_type& __a) 8657: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 8657: 8657: 8657: multimap(multimap&& __m, const allocator_type& __a) 8657: noexcept(is_nothrow_copy_constructible<_Compare>::value 8657: && _Alloc_traits::_S_always_equal()) 8657: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 8657: 8657: 8657: multimap(initializer_list __l, const allocator_type& __a) 8657: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8657: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 8657: 8657: 8657: template 8657: multimap(_InputIterator __first, _InputIterator __last, 8657: const allocator_type& __a) 8657: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8657: { _M_t._M_insert_equal(__first, __last); } 8657: # 266 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: template 8657: multimap(_InputIterator __first, _InputIterator __last) 8657: : _M_t() 8657: { _M_t._M_insert_equal(__first, __last); } 8657: # 282 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: template 8657: multimap(_InputIterator __first, _InputIterator __last, 8657: const _Compare& __comp, 8657: const allocator_type& __a = allocator_type()) 8657: : _M_t(__comp, _Pair_alloc_type(__a)) 8657: { _M_t._M_insert_equal(__first, __last); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: ~multimap() = default; 8657: # 311 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: multimap& 8657: operator=(const multimap&) = default; 8657: 8657: 8657: multimap& 8657: operator=(multimap&&) = default; 8657: # 329 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: multimap& 8657: operator=(initializer_list __l) 8657: { 8657: _M_t._M_assign_equal(__l.begin(), __l.end()); 8657: return *this; 8657: } 8657: 8657: 8657: 8657: allocator_type 8657: get_allocator() const noexcept 8657: { return allocator_type(_M_t.get_allocator()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: begin() noexcept 8657: { return _M_t.begin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: begin() const noexcept 8657: { return _M_t.begin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: end() noexcept 8657: { return _M_t.end(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: end() const noexcept 8657: { return _M_t.end(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: rbegin() noexcept 8657: { return _M_t.rbegin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: rbegin() const noexcept 8657: { return _M_t.rbegin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: rend() noexcept 8657: { return _M_t.rend(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: rend() const noexcept 8657: { return _M_t.rend(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: cbegin() const noexcept 8657: { return _M_t.begin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: cend() const noexcept 8657: { return _M_t.end(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: crbegin() const noexcept 8657: { return _M_t.rbegin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: crend() const noexcept 8657: { return _M_t.rend(); } 8657: 8657: 8657: 8657: 8657: bool 8657: empty() const noexcept 8657: { return _M_t.empty(); } 8657: 8657: 8657: size_type 8657: size() const noexcept 8657: { return _M_t.size(); } 8657: 8657: 8657: size_type 8657: max_size() const noexcept 8657: { return _M_t.max_size(); } 8657: # 487 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: template 8657: iterator 8657: emplace(_Args&&... __args) 8657: { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); } 8657: # 514 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: template 8657: iterator 8657: emplace_hint(const_iterator __pos, _Args&&... __args) 8657: { 8657: return _M_t._M_emplace_hint_equal(__pos, 8657: std::forward<_Args>(__args)...); 8657: } 8657: # 536 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: iterator 8657: insert(const value_type& __x) 8657: { return _M_t._M_insert_equal(__x); } 8657: 8657: 8657: 8657: 8657: iterator 8657: insert(value_type&& __x) 8657: { return _M_t._M_insert_equal(std::move(__x)); } 8657: 8657: template::value>::type> 8657: iterator 8657: insert(_Pair&& __x) 8657: { return _M_t._M_insert_equal(std::forward<_Pair>(__x)); } 8657: # 577 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: iterator 8657: 8657: insert(const_iterator __position, const value_type& __x) 8657: 8657: 8657: 8657: { return _M_t._M_insert_equal_(__position, __x); } 8657: 8657: 8657: 8657: 8657: iterator 8657: insert(const_iterator __position, value_type&& __x) 8657: { return _M_t._M_insert_equal_(__position, std::move(__x)); } 8657: 8657: template::value>::type> 8657: iterator 8657: insert(const_iterator __position, _Pair&& __x) 8657: { return _M_t._M_insert_equal_(__position, 8657: std::forward<_Pair>(__x)); } 8657: # 611 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: template 8657: void 8657: insert(_InputIterator __first, _InputIterator __last) 8657: { _M_t._M_insert_equal(__first, __last); } 8657: # 624 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: void 8657: insert(initializer_list __l) 8657: { this->insert(__l.begin(), __l.end()); } 8657: # 701 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: iterator 8657: erase(const_iterator __position) 8657: { return _M_t.erase(__position); } 8657: 8657: 8657: __attribute ((__abi_tag__ ("cxx11"))) 8657: iterator 8657: erase(iterator __position) 8657: { return _M_t.erase(__position); } 8657: # 738 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: size_type 8657: erase(const key_type& __x) 8657: { return _M_t.erase(__x); } 8657: # 759 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: iterator 8657: erase(const_iterator __first, const_iterator __last) 8657: { return _M_t.erase(__first, __last); } 8657: # 796 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: void 8657: swap(multimap& __x) 8657: noexcept(__is_nothrow_swappable<_Compare>::value) 8657: { _M_t.swap(__x._M_t); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: void 8657: clear() noexcept 8657: { _M_t.clear(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: key_compare 8657: key_comp() const 8657: { return _M_t.key_comp(); } 8657: 8657: 8657: 8657: 8657: 8657: value_compare 8657: value_comp() const 8657: { return value_compare(_M_t.key_comp()); } 8657: # 842 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: iterator 8657: find(const key_type& __x) 8657: { return _M_t.find(__x); } 8657: # 866 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: const_iterator 8657: find(const key_type& __x) const 8657: { return _M_t.find(__x); } 8657: # 884 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: size_type 8657: count(const key_type& __x) const 8657: { return _M_t.count(__x); } 8657: # 908 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: iterator 8657: lower_bound(const key_type& __x) 8657: { return _M_t.lower_bound(__x); } 8657: # 933 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: const_iterator 8657: lower_bound(const key_type& __x) const 8657: { return _M_t.lower_bound(__x); } 8657: # 953 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: iterator 8657: upper_bound(const key_type& __x) 8657: { return _M_t.upper_bound(__x); } 8657: # 973 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: const_iterator 8657: upper_bound(const key_type& __x) const 8657: { return _M_t.upper_bound(__x); } 8657: # 1000 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: std::pair 8657: equal_range(const key_type& __x) 8657: { return _M_t.equal_range(__x); } 8657: # 1027 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: std::pair 8657: equal_range(const key_type& __x) const 8657: { return _M_t.equal_range(__x); } 8657: # 1044 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: template 8657: friend bool 8657: operator==(const multimap<_K1, _T1, _C1, _A1>&, 8657: const multimap<_K1, _T1, _C1, _A1>&); 8657: 8657: template 8657: friend bool 8657: operator<(const multimap<_K1, _T1, _C1, _A1>&, 8657: const multimap<_K1, _T1, _C1, _A1>&); 8657: }; 8657: # 1098 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: template 8657: inline bool 8657: operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8657: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8657: { return __x._M_t == __y._M_t; } 8657: # 1115 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: template 8657: inline bool 8657: operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8657: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8657: { return __x._M_t < __y._M_t; } 8657: 8657: 8657: template 8657: inline bool 8657: operator!=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8657: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8657: { return !(__x == __y); } 8657: 8657: 8657: template 8657: inline bool 8657: operator>(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8657: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8657: { return __y < __x; } 8657: 8657: 8657: template 8657: inline bool 8657: operator<=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8657: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8657: { return !(__y < __x); } 8657: 8657: 8657: template 8657: inline bool 8657: operator>=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8657: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8657: { return !(__x < __y); } 8657: 8657: 8657: template 8657: inline void 8657: swap(multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8657: multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8657: noexcept(noexcept(__x.swap(__y))) 8657: { __x.swap(__y); } 8657: 8657: 8657: # 1180 "/usr/include/c++/8/bits/stl_multimap.h" 3 8657: 8657: } 8657: # 63 "/usr/include/c++/8/map" 2 3 8657: # 56 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct QMetaTypeId2; 8657: 8657: template 8657: inline constexpr int qMetaTypeId(); 8657: # 216 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 3 4 8657: class QDataStream; 8657: class QMetaTypeInterface; 8657: struct QMetaObject; 8657: 8657: namespace QtPrivate 8657: { 8657: 8657: 8657: 8657: 8657: template 8657: To convertImplicit(const From& from) 8657: { 8657: return from; 8657: } 8657: 8657: 8657: struct AbstractDebugStreamFunction 8657: { 8657: typedef void (*Stream)(const AbstractDebugStreamFunction *, QDebug&, const void *); 8657: typedef void (*Destroy)(AbstractDebugStreamFunction *); 8657: explicit AbstractDebugStreamFunction(Stream s = nullptr, Destroy d = nullptr) 8657: : stream(s), destroy(d) {} 8657: AbstractDebugStreamFunction(const AbstractDebugStreamFunction &) = delete; AbstractDebugStreamFunction &operator=(const AbstractDebugStreamFunction &) = delete; 8657: Stream stream; 8657: Destroy destroy; 8657: }; 8657: 8657: template 8657: struct BuiltInDebugStreamFunction : public AbstractDebugStreamFunction 8657: { 8657: BuiltInDebugStreamFunction() 8657: : AbstractDebugStreamFunction(stream, destroy) {} 8657: static void stream(const AbstractDebugStreamFunction *, QDebug& dbg, const void *r) 8657: { 8657: const T *rhs = static_cast(r); 8657: operator<<(dbg, *rhs); 8657: } 8657: 8657: static void destroy(AbstractDebugStreamFunction *_this) 8657: { 8657: delete static_cast(_this); 8657: } 8657: }; 8657: 8657: 8657: struct AbstractComparatorFunction 8657: { 8657: typedef bool (*LessThan)(const AbstractComparatorFunction *, const void *, const void *); 8657: typedef bool (*Equals)(const AbstractComparatorFunction *, const void *, const void *); 8657: typedef void (*Destroy)(AbstractComparatorFunction *); 8657: explicit AbstractComparatorFunction(LessThan lt = nullptr, Equals e = nullptr, Destroy d = nullptr) 8657: : lessThan(lt), equals(e), destroy(d) {} 8657: AbstractComparatorFunction(const AbstractComparatorFunction &) = delete; AbstractComparatorFunction &operator=(const AbstractComparatorFunction &) = delete; 8657: LessThan lessThan; 8657: Equals equals; 8657: Destroy destroy; 8657: }; 8657: 8657: template 8657: struct BuiltInComparatorFunction : public AbstractComparatorFunction 8657: { 8657: BuiltInComparatorFunction() 8657: : AbstractComparatorFunction(lessThan, equals, destroy) {} 8657: static bool lessThan(const AbstractComparatorFunction *, const void *l, const void *r) 8657: { 8657: const T *lhs = static_cast(l); 8657: const T *rhs = static_cast(r); 8657: return *lhs < *rhs; 8657: } 8657: 8657: static bool equals(const AbstractComparatorFunction *, const void *l, const void *r) 8657: { 8657: const T *lhs = static_cast(l); 8657: const T *rhs = static_cast(r); 8657: return *lhs == *rhs; 8657: } 8657: 8657: static void destroy(AbstractComparatorFunction *_this) 8657: { 8657: delete static_cast(_this); 8657: } 8657: }; 8657: 8657: template 8657: struct BuiltInEqualsComparatorFunction : public AbstractComparatorFunction 8657: { 8657: BuiltInEqualsComparatorFunction() 8657: : AbstractComparatorFunction(nullptr, equals, destroy) {} 8657: static bool equals(const AbstractComparatorFunction *, const void *l, const void *r) 8657: { 8657: const T *lhs = static_cast(l); 8657: const T *rhs = static_cast(r); 8657: return *lhs == *rhs; 8657: } 8657: 8657: static void destroy(AbstractComparatorFunction *_this) 8657: { 8657: delete static_cast(_this); 8657: } 8657: }; 8657: 8657: struct AbstractConverterFunction 8657: { 8657: typedef bool (*Converter)(const AbstractConverterFunction *, const void *, void*); 8657: explicit AbstractConverterFunction(Converter c = nullptr) 8657: : convert(c) {} 8657: AbstractConverterFunction(const AbstractConverterFunction &) = delete; AbstractConverterFunction &operator=(const AbstractConverterFunction &) = delete; 8657: Converter convert; 8657: }; 8657: 8657: template 8657: struct ConverterMemberFunction : public AbstractConverterFunction 8657: { 8657: explicit ConverterMemberFunction(To(From::*function)() const) 8657: : AbstractConverterFunction(convert), 8657: m_function(function) {} 8657: ~ConverterMemberFunction(); 8657: static bool convert(const AbstractConverterFunction *_this, const void *in, void *out) 8657: { 8657: const From *f = static_cast(in); 8657: To *t = static_cast(out); 8657: const ConverterMemberFunction *_typedThis = 8657: static_cast(_this); 8657: *t = (f->*_typedThis->m_function)(); 8657: return true; 8657: } 8657: 8657: To(From::* const m_function)() const; 8657: }; 8657: 8657: template 8657: struct ConverterMemberFunctionOk : public AbstractConverterFunction 8657: { 8657: explicit ConverterMemberFunctionOk(To(From::*function)(bool *) const) 8657: : AbstractConverterFunction(convert), 8657: m_function(function) {} 8657: ~ConverterMemberFunctionOk(); 8657: static bool convert(const AbstractConverterFunction *_this, const void *in, void *out) 8657: { 8657: const From *f = static_cast(in); 8657: To *t = static_cast(out); 8657: bool ok = false; 8657: const ConverterMemberFunctionOk *_typedThis = 8657: static_cast(_this); 8657: *t = (f->*_typedThis->m_function)(&ok); 8657: if (!ok) 8657: *t = To(); 8657: return ok; 8657: } 8657: 8657: To(From::* const m_function)(bool*) const; 8657: }; 8657: 8657: template 8657: struct ConverterFunctor : public AbstractConverterFunction 8657: { 8657: explicit ConverterFunctor(UnaryFunction function) 8657: : AbstractConverterFunction(convert), 8657: m_function(function) {} 8657: ~ConverterFunctor(); 8657: static bool convert(const AbstractConverterFunction *_this, const void *in, void *out) 8657: { 8657: const From *f = static_cast(in); 8657: To *t = static_cast(out); 8657: const ConverterFunctor *_typedThis = 8657: static_cast(_this); 8657: *t = _typedThis->m_function(*f); 8657: return true; 8657: } 8657: 8657: UnaryFunction m_function; 8657: }; 8657: 8657: template 8657: struct ValueTypeIsMetaType; 8657: template 8657: struct AssociativeValueTypeIsMetaType; 8657: template 8657: struct IsMetaTypePair; 8657: template 8657: struct MetaTypeSmartPointerHelper; 8657: } 8657: 8657: class __attribute__((visibility("default"))) QMetaType { 8657: enum ExtensionFlag { NoExtensionFlags, 8657: CreateEx = 0x1, DestroyEx = 0x2, 8657: ConstructEx = 0x4, DestructEx = 0x8, 8657: NameEx = 0x10, SizeEx = 0x20, 8657: CtorEx = 0x40, DtorEx = 0x80, 8657: FlagsEx = 0x100, MetaObjectEx = 0x200 8657: }; 8657: public: 8657: 8657: 8657: enum Type { 8657: 8657: Void = 43, Bool = 1, Int = 2, UInt = 3, LongLong = 4, ULongLong = 5, Double = 6, Long = 32, Short = 33, Char = 34, ULong = 35, UShort = 36, UChar = 37, Float = 38, SChar = 40, Nullptr = 51, VoidStar = 31, QChar = 7, QString = 10, QStringList = 11, QByteArray = 12, QBitArray = 13, QDate = 14, QTime = 15, QDateTime = 16, QUrl = 17, QLocale = 18, QRect = 19, QRectF = 20, QSize = 21, QSizeF = 22, QLine = 23, QLineF = 24, QPoint = 25, QPointF = 26, QRegExp = 27, QEasingCurve = 29, QUuid = 30, QVariant = 41, QModelIndex = 42, QRegularExpression = 44, QJsonValue = 45, QJsonObject = 46, QJsonArray = 47, QJsonDocument = 48, QPersistentModelIndex = 50, QObjectStar = 39, QVariantMap = 8, QVariantList = 9, QVariantHash = 28, QByteArrayList = 49, QFont = 64, QPixmap = 65, QBrush = 66, QColor = 67, QPalette = 68, QIcon = 69, QImage = 70, QPolygon = 71, QRegion = 72, QBitmap = 73, QCursor = 74, QKeySequence = 75, QPen = 76, QTextLength = 77, QTextFormat = 78, QMatrix = 79, QTransform = 80, QMatrix4x4 = 81, QVector2D = 82, QVector3D = 83, QVector4D = 84, QQuaternion = 85, QPolygonF = 86, QSizePolicy = 121, 8657: 8657: FirstCoreType = Bool, 8657: LastCoreType = Nullptr, 8657: FirstGuiType = QFont, 8657: LastGuiType = QPolygonF, 8657: FirstWidgetsType = QSizePolicy, 8657: LastWidgetsType = QSizePolicy, 8657: HighestInternalId = LastWidgetsType, 8657: 8657: QReal = sizeof(qreal) == sizeof(double) ? Double : Float, 8657: 8657: UnknownType = 0, 8657: User = 1024 8657: }; 8657: # 455 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 3 4 8657: enum TypeFlag { 8657: NeedsConstruction = 0x1, 8657: NeedsDestruction = 0x2, 8657: MovableType = 0x4, 8657: PointerToQObject = 0x8, 8657: IsEnumeration = 0x10, 8657: SharedPointerToQObject = 0x20, 8657: WeakPointerToQObject = 0x40, 8657: TrackingPointerToQObject = 0x80, 8657: WasDeclaredAsMetaType = 0x100, 8657: IsGadget = 0x200 8657: }; 8657: typedef QFlags TypeFlags; 8657: 8657: typedef void (*Deleter)(void *); 8657: typedef void *(*Creator)(const void *); 8657: 8657: typedef void (*Destructor)(void *); 8657: typedef void *(*Constructor)(void *, const void *); 8657: 8657: typedef void (*SaveOperator)(QDataStream &, const void *); 8657: typedef void (*LoadOperator)(QDataStream &, void *); 8657: 8657: static void registerStreamOperators(const char *typeName, SaveOperator saveOp, 8657: LoadOperator loadOp); 8657: static void registerStreamOperators(int type, SaveOperator saveOp, 8657: LoadOperator loadOp); 8657: 8657: static int registerType(const char *typeName, Deleter deleter, 8657: Creator creator); 8657: static int registerType(const char *typeName, Deleter deleter, 8657: Creator creator, 8657: Destructor destructor, 8657: Constructor constructor, 8657: int size, 8657: QMetaType::TypeFlags flags, 8657: const QMetaObject *metaObject); 8657: static bool unregisterType(int type); 8657: static int registerNormalizedType(const ::QByteArray &normalizedTypeName, Deleter deleter, 8657: Creator creator, 8657: Destructor destructor, 8657: Constructor constructor, 8657: int size, 8657: QMetaType::TypeFlags flags, 8657: const QMetaObject *metaObject); 8657: static int registerNormalizedType(const ::QByteArray &normalizedTypeName, Destructor destructor, 8657: Constructor constructor, 8657: int size, 8657: QMetaType::TypeFlags flags, 8657: const QMetaObject *metaObject); 8657: static int registerTypedef(const char *typeName, int aliasId); 8657: static int registerNormalizedTypedef(const ::QByteArray &normalizedTypeName, int aliasId); 8657: static int type(const char *typeName); 8657: 8657: static int type(const ::QByteArray &typeName); 8657: static const char *typeName(int type); 8657: static int sizeOf(int type); 8657: static TypeFlags typeFlags(int type); 8657: static const QMetaObject *metaObjectForType(int type); 8657: static bool isRegistered(int type); 8657: static void *create(int type, const void *copy = nullptr); 8657: 8657: 8657: 8657: 8657: static void destroy(int type, void *data); 8657: static void *construct(int type, void *where, const void *copy); 8657: static void destruct(int type, void *where); 8657: 8657: 8657: static bool save(QDataStream &stream, int type, const void *data); 8657: static bool load(QDataStream &stream, int type, void *data); 8657: 8657: 8657: explicit QMetaType(const int type); 8657: inline ~QMetaType(); 8657: 8657: inline bool isValid() const; 8657: inline bool isRegistered() const; 8657: inline int sizeOf() const; 8657: inline TypeFlags flags() const; 8657: inline const QMetaObject *metaObject() const; 8657: 8657: inline void *create(const void *copy = nullptr) const; 8657: inline void destroy(void *data) const; 8657: inline void *construct(void *where, const void *copy = nullptr) const; 8657: inline void destruct(void *data) const; 8657: 8657: public: 8657: template 8657: static bool registerComparators() 8657: { 8657: static_assert(bool((!QMetaTypeId2::IsBuiltIn)), "QMetaType::registerComparators: The type must be a custom type.") 8657: ; 8657: 8657: const int typeId = qMetaTypeId(); 8657: static const QtPrivate::BuiltInComparatorFunction f; 8657: return registerComparatorFunction( &f, typeId); 8657: } 8657: template 8657: static bool registerEqualsComparator() 8657: { 8657: static_assert(bool((!QMetaTypeId2::IsBuiltIn)), "QMetaType::registerEqualsComparator: The type must be a custom type.") 8657: ; 8657: const int typeId = qMetaTypeId(); 8657: static const QtPrivate::BuiltInEqualsComparatorFunction f; 8657: return registerComparatorFunction( &f, typeId); 8657: } 8657: 8657: template 8657: static bool hasRegisteredComparators() 8657: { 8657: return hasRegisteredComparators(qMetaTypeId()); 8657: } 8657: static bool hasRegisteredComparators(int typeId); 8657: 8657: 8657: 8657: template 8657: static bool registerDebugStreamOperator() 8657: { 8657: static_assert(bool((!QMetaTypeId2::IsBuiltIn)), "QMetaType::registerDebugStreamOperator: The type must be a custom type.") 8657: ; 8657: 8657: const int typeId = qMetaTypeId(); 8657: static const QtPrivate::BuiltInDebugStreamFunction f; 8657: return registerDebugStreamOperatorFunction(&f, typeId); 8657: } 8657: template 8657: static bool hasRegisteredDebugStreamOperator() 8657: { 8657: return hasRegisteredDebugStreamOperator(qMetaTypeId()); 8657: } 8657: static bool hasRegisteredDebugStreamOperator(int typeId); 8657: 8657: 8657: 8657: template 8657: static bool registerConverter() 8657: { 8657: return registerConverter(QtPrivate::convertImplicit); 8657: } 8657: # 607 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 3 4 8657: template 8657: static bool registerConverter(To(From::*function)() const) 8657: { 8657: static_assert(bool((!QMetaTypeId2::IsBuiltIn || !QMetaTypeId2::IsBuiltIn)), "QMetaType::registerConverter: At least one of the types must be a custom type.") 8657: ; 8657: 8657: const int fromTypeId = qMetaTypeId(); 8657: const int toTypeId = qMetaTypeId(); 8657: static const QtPrivate::ConverterMemberFunction f(function); 8657: return registerConverterFunction(&f, fromTypeId, toTypeId); 8657: } 8657: 8657: 8657: template 8657: static bool registerConverter(To(From::*function)(bool*) const) 8657: { 8657: static_assert(bool((!QMetaTypeId2::IsBuiltIn || !QMetaTypeId2::IsBuiltIn)), "QMetaType::registerConverter: At least one of the types must be a custom type.") 8657: ; 8657: 8657: const int fromTypeId = qMetaTypeId(); 8657: const int toTypeId = qMetaTypeId(); 8657: static const QtPrivate::ConverterMemberFunctionOk f(function); 8657: return registerConverterFunction(&f, fromTypeId, toTypeId); 8657: } 8657: 8657: 8657: template 8657: static bool registerConverter(UnaryFunction function) 8657: { 8657: static_assert(bool((!QMetaTypeId2::IsBuiltIn || !QMetaTypeId2::IsBuiltIn)), "QMetaType::registerConverter: At least one of the types must be a custom type.") 8657: ; 8657: 8657: const int fromTypeId = qMetaTypeId(); 8657: const int toTypeId = qMetaTypeId(); 8657: static const QtPrivate::ConverterFunctor f(function); 8657: return registerConverterFunction(&f, fromTypeId, toTypeId); 8657: } 8657: 8657: 8657: static bool convert(const void *from, int fromTypeId, void *to, int toTypeId); 8657: static bool compare(const void *lhs, const void *rhs, int typeId, int* result); 8657: static bool equals(const void *lhs, const void *rhs, int typeId, int* result); 8657: static bool debugStream(QDebug& dbg, const void *rhs, int typeId); 8657: 8657: template 8657: static bool hasRegisteredConverterFunction() 8657: { 8657: return hasRegisteredConverterFunction(qMetaTypeId(), qMetaTypeId()); 8657: } 8657: 8657: static bool hasRegisteredConverterFunction(int fromTypeId, int toTypeId); 8657: 8657: private: 8657: static QMetaType typeInfo(const int type); 8657: inline QMetaType(const ExtensionFlag extensionFlags, const QMetaTypeInterface *info, 8657: Creator creator, 8657: Deleter deleter, 8657: SaveOperator saveOp, 8657: LoadOperator loadOp, 8657: Constructor constructor, 8657: Destructor destructor, 8657: uint sizeOf, 8657: uint theTypeFlags, 8657: int typeId, 8657: const QMetaObject *metaObject); 8657: QMetaType(const QMetaType &other); 8657: QMetaType &operator =(const QMetaType &); 8657: inline bool isExtended(const ExtensionFlag flag) const { return m_extensionFlags & flag; } 8657: 8657: 8657: void ctor(const QMetaTypeInterface *info); 8657: void dtor(); 8657: uint sizeExtended() const; 8657: QMetaType::TypeFlags flagsExtended() const; 8657: const QMetaObject *metaObjectExtended() const; 8657: void *createExtended(const void *copy = nullptr) const; 8657: void destroyExtended(void *data) const; 8657: void *constructExtended(void *where, const void *copy = nullptr) const; 8657: void destructExtended(void *data) const; 8657: 8657: static bool registerComparatorFunction(const QtPrivate::AbstractComparatorFunction *f, int type); 8657: 8657: static bool registerDebugStreamOperatorFunction(const QtPrivate::AbstractDebugStreamFunction *f, int type); 8657: 8657: 8657: 8657: 8657: 8657: template friend struct QtPrivate::ValueTypeIsMetaType; 8657: template friend struct QtPrivate::ConverterMemberFunction; 8657: template friend struct QtPrivate::ConverterMemberFunctionOk; 8657: template friend struct QtPrivate::ConverterFunctor; 8657: template friend struct QtPrivate::AssociativeValueTypeIsMetaType; 8657: template friend struct QtPrivate::IsMetaTypePair; 8657: template friend struct QtPrivate::MetaTypeSmartPointerHelper; 8657: 8657: 8657: 8657: 8657: static bool registerConverterFunction(const QtPrivate::AbstractConverterFunction *f, int from, int to); 8657: static void unregisterConverterFunction(int from, int to); 8657: private: 8657: 8657: Creator m_creator_unused; 8657: Deleter m_deleter_unused; 8657: SaveOperator m_saveOp; 8657: LoadOperator m_loadOp; 8657: Constructor m_constructor; 8657: Destructor m_destructor; 8657: void *m_extension; 8657: uint m_size; 8657: uint m_typeFlags; 8657: uint m_extensionFlags; 8657: int m_typeId; 8657: const QMetaObject *m_metaObject; 8657: }; 8657: 8657: 8657: 8657: constexpr inline QFlags operator|(QMetaType::TypeFlags::enum_type f1, QMetaType::TypeFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QMetaType::TypeFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QMetaType::TypeFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: 8657: namespace QtPrivate { 8657: 8657: template 8657: ConverterMemberFunction::~ConverterMemberFunction() 8657: { 8657: QMetaType::unregisterConverterFunction(qMetaTypeId(), qMetaTypeId()); 8657: } 8657: template 8657: ConverterMemberFunctionOk::~ConverterMemberFunctionOk() 8657: { 8657: QMetaType::unregisterConverterFunction(qMetaTypeId(), qMetaTypeId()); 8657: } 8657: template 8657: ConverterFunctor::~ConverterFunctor() 8657: { 8657: QMetaType::unregisterConverterFunction(qMetaTypeId(), qMetaTypeId()); 8657: } 8657: 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: namespace QtMetaTypePrivate { 8657: template 8657: struct QMetaTypeFunctionHelper { 8657: static void Destruct(void *t) 8657: { 8657: (void)t; 8657: static_cast(t)->~T(); 8657: } 8657: 8657: static void *Construct(void *where, const void *t) 8657: { 8657: if (t) 8657: return new (where) T(*static_cast(t)); 8657: return new (where) T; 8657: } 8657: 8657: static void Save(QDataStream &stream, const void *t) 8657: { 8657: stream << *static_cast(t); 8657: } 8657: 8657: static void Load(QDataStream &stream, void *t) 8657: { 8657: stream >> *static_cast(t); 8657: } 8657: 8657: }; 8657: 8657: template 8657: struct QMetaTypeFunctionHelper { 8657: static void Destruct(void *) {} 8657: static void *Construct(void *, const void *) { return nullptr; } 8657: 8657: static void Save(QDataStream &, const void *) {} 8657: static void Load(QDataStream &, void *) {} 8657: 8657: }; 8657: template <> 8657: struct QMetaTypeFunctionHelper 8657: : public QMetaTypeFunctionHelper 8657: {}; 8657: 8657: struct VariantData 8657: { 8657: VariantData(const int metaTypeId_, 8657: const void *data_, 8657: const uint flags_) 8657: : metaTypeId(metaTypeId_) 8657: , data(data_) 8657: , flags(flags_) 8657: { 8657: } 8657: VariantData(const VariantData &other) 8657: : metaTypeId(other.metaTypeId), data(other.data), flags(other.flags){} 8657: const int metaTypeId; 8657: const void *data; 8657: const uint flags; 8657: private: 8657: 8657: VariantData &operator=(const VariantData &) = delete; 8657: }; 8657: 8657: template 8657: struct IteratorOwnerCommon 8657: { 8657: static void assign(void **ptr, const_iterator iterator) 8657: { 8657: *ptr = new const_iterator(iterator); 8657: } 8657: static void assign(void **ptr, void * const * src) 8657: { 8657: *ptr = new const_iterator(*static_cast(*src)); 8657: } 8657: 8657: static void advance(void **iterator, int step) 8657: { 8657: const_iterator &it = *static_cast(*iterator); 8657: std::advance(it, step); 8657: } 8657: 8657: static void destroy(void **ptr) 8657: { 8657: delete static_cast(*ptr); 8657: } 8657: 8657: static bool equal(void * const *it, void * const *other) 8657: { 8657: return *static_cast(*it) == *static_cast(*other); 8657: } 8657: }; 8657: 8657: template 8657: struct IteratorOwner : IteratorOwnerCommon 8657: { 8657: static const void *getData(void * const *iterator) 8657: { 8657: return &**static_cast(*iterator); 8657: } 8657: 8657: static const void *getData(const_iterator it) 8657: { 8657: return &*it; 8657: } 8657: }; 8657: 8657: struct __attribute__((visibility("default"))) VectorBoolElements 8657: { 8657: static const bool true_element; 8657: static const bool false_element; 8657: }; 8657: 8657: template<> 8657: struct IteratorOwner::const_iterator> : IteratorOwnerCommon::const_iterator> 8657: { 8657: public: 8657: static const void *getData(void * const *iterator) 8657: { 8657: return **static_cast::const_iterator*>(*iterator) ? 8657: &VectorBoolElements::true_element : &VectorBoolElements::false_element; 8657: } 8657: 8657: static const void *getData(const std::vector::const_iterator& it) 8657: { 8657: return *it ? &VectorBoolElements::true_element : &VectorBoolElements::false_element; 8657: } 8657: }; 8657: 8657: template 8657: struct IteratorOwner 8657: { 8657: private: 8657: 8657: 8657: 8657: struct Dummy {}; 8657: typedef typename std::conditional::value, Dummy, value_type>::type value_type_OR_Dummy; 8657: public: 8657: static void assign(void **ptr, const value_type_OR_Dummy *iterator ) 8657: { 8657: *ptr = const_cast(iterator); 8657: } 8657: static void assign(void **ptr, void * const * src) 8657: { 8657: *ptr = static_cast(*src); 8657: } 8657: 8657: static void advance(void **iterator, int step) 8657: { 8657: value_type *it = static_cast(*iterator); 8657: std::advance(it, step); 8657: *iterator = it; 8657: } 8657: 8657: static void destroy(void **) 8657: { 8657: } 8657: 8657: static const void *getData(void * const *iterator) 8657: { 8657: return *iterator; 8657: } 8657: 8657: static const void *getData(const value_type_OR_Dummy *it) 8657: { 8657: return it; 8657: } 8657: 8657: static bool equal(void * const *it, void * const *other) 8657: { 8657: return static_cast(*it) == static_cast(*other); 8657: } 8657: }; 8657: 8657: enum IteratorCapability 8657: { 8657: ForwardCapability = 1, 8657: BiDirectionalCapability = 2, 8657: RandomAccessCapability = 4 8657: }; 8657: 8657: template::iterator_category> 8657: struct CapabilitiesImpl; 8657: 8657: template 8657: struct CapabilitiesImpl 8657: { enum { IteratorCapabilities = ForwardCapability }; }; 8657: template 8657: struct CapabilitiesImpl 8657: { enum { IteratorCapabilities = BiDirectionalCapability | ForwardCapability }; }; 8657: template 8657: struct CapabilitiesImpl 8657: { enum { IteratorCapabilities = RandomAccessCapability | BiDirectionalCapability | ForwardCapability }; }; 8657: 8657: template 8657: struct ContainerAPI : CapabilitiesImpl 8657: { 8657: static int size(const T *t) { return int(std::distance(t->begin(), t->end())); } 8657: }; 8657: 8657: template 8657: struct ContainerAPI > : CapabilitiesImpl > 8657: { static int size(const QList *t) { return t->size(); } }; 8657: 8657: template 8657: struct ContainerAPI > : CapabilitiesImpl > 8657: { static int size(const QVector *t) { return t->size(); } }; 8657: 8657: template 8657: struct ContainerAPI > : CapabilitiesImpl > 8657: { static int size(const std::vector *t) { return int(t->size()); } }; 8657: 8657: template 8657: struct ContainerAPI > : CapabilitiesImpl > 8657: { static int size(const std::list *t) { return int(t->size()); } }; 8657: 8657: class QSequentialIterableImpl 8657: { 8657: public: 8657: const void * _iterable; 8657: void *_iterator; 8657: int _metaType_id; 8657: uint _metaType_flags; 8657: uint _iteratorCapabilities; 8657: typedef int(*sizeFunc)(const void *p); 8657: typedef const void * (*atFunc)(const void *p, int); 8657: typedef void (*moveIteratorFunc)(const void *p, void **); 8657: typedef void (*advanceFunc)(void **p, int); 8657: typedef VariantData (*getFunc)( void * const *p, int metaTypeId, uint flags); 8657: typedef void (*destroyIterFunc)(void **p); 8657: typedef bool (*equalIterFunc)(void * const *p, void * const *other); 8657: typedef void (*copyIterFunc)(void **, void * const *); 8657: 8657: sizeFunc _size; 8657: atFunc _at; 8657: moveIteratorFunc _moveToBegin; 8657: moveIteratorFunc _moveToEnd; 8657: advanceFunc _advance; 8657: getFunc _get; 8657: destroyIterFunc _destroyIter; 8657: equalIterFunc _equalIter; 8657: copyIterFunc _copyIter; 8657: 8657: template 8657: static int sizeImpl(const void *p) 8657: { return ContainerAPI::size(static_cast(p)); } 8657: 8657: template 8657: static const void* atImpl(const void *p, int idx) 8657: { 8657: typename T::const_iterator i = static_cast(p)->begin(); 8657: std::advance(i, idx); 8657: return IteratorOwner::getData(i); 8657: } 8657: 8657: template 8657: static void moveToBeginImpl(const void *container, void **iterator) 8657: { IteratorOwner::assign(iterator, static_cast(container)->begin()); } 8657: 8657: template 8657: static void moveToEndImpl(const void *container, void **iterator) 8657: { IteratorOwner::assign(iterator, static_cast(container)->end()); } 8657: 8657: template 8657: static VariantData getImpl(void * const *iterator, int metaTypeId, uint flags) 8657: { return VariantData(metaTypeId, IteratorOwner::getData(iterator), flags); } 8657: 8657: public: 8657: template QSequentialIterableImpl(const T*p) 8657: : _iterable(p) 8657: , _iterator(nullptr) 8657: , _metaType_id(qMetaTypeId()) 8657: , _metaType_flags(QTypeInfo::isPointer) 8657: , _iteratorCapabilities(ContainerAPI::IteratorCapabilities) 8657: , _size(sizeImpl) 8657: , _at(atImpl) 8657: , _moveToBegin(moveToBeginImpl) 8657: , _moveToEnd(moveToEndImpl) 8657: , _advance(IteratorOwner::advance) 8657: , _get(getImpl) 8657: , _destroyIter(IteratorOwner::destroy) 8657: , _equalIter(IteratorOwner::equal) 8657: , _copyIter(IteratorOwner::assign) 8657: { 8657: } 8657: 8657: QSequentialIterableImpl() 8657: : _iterable(nullptr) 8657: , _iterator(nullptr) 8657: , _metaType_id(QMetaType::UnknownType) 8657: , _metaType_flags(0) 8657: , _iteratorCapabilities(0) 8657: , _size(nullptr) 8657: , _at(nullptr) 8657: , _moveToBegin(nullptr) 8657: , _moveToEnd(nullptr) 8657: , _advance(nullptr) 8657: , _get(nullptr) 8657: , _destroyIter(nullptr) 8657: , _equalIter(nullptr) 8657: , _copyIter(nullptr) 8657: { 8657: } 8657: 8657: inline void moveToBegin() { _moveToBegin(_iterable, &_iterator); } 8657: inline void moveToEnd() { _moveToEnd(_iterable, &_iterator); } 8657: inline bool equal(const QSequentialIterableImpl&other) const { return _equalIter(&_iterator, &other._iterator); } 8657: inline QSequentialIterableImpl &advance(int i) { 8657: do { } while ((false) && (i > 0 || _iteratorCapabilities & BiDirectionalCapability)); 8657: _advance(&_iterator, i); 8657: return *this; 8657: } 8657: 8657: inline VariantData getCurrent() const { return _get(&_iterator, _metaType_id, _metaType_flags); } 8657: 8657: VariantData at(int idx) const 8657: { return VariantData(_metaType_id, _at(_iterable, idx), _metaType_flags); } 8657: 8657: int size() const { do { } while ((false) && (_iterable)); return _size(_iterable); } 8657: 8657: inline void destroyIter() { _destroyIter(&_iterator); } 8657: 8657: void copy(const QSequentialIterableImpl &other) 8657: { 8657: *this = other; 8657: _copyIter(&_iterator, &other._iterator); 8657: } 8657: }; 8657: } template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = ((((Q_MOVABLE_TYPE)) & Q_PRIMITIVE_TYPE) == 0), isStatic = ((((Q_MOVABLE_TYPE)) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || (((Q_MOVABLE_TYPE)) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QtMetaTypePrivate:: QSequentialIterableImpl)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QtMetaTypePrivate:: QSequentialIterableImpl >::value, isDummy = ((((Q_MOVABLE_TYPE)) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QtMetaTypePrivate:: QSequentialIterableImpl) }; static inline const char *name() { return "QtMetaTypePrivate:: QSequentialIterableImpl"; } }; namespace QtMetaTypePrivate { 8657: 8657: template 8657: struct QSequentialIterableConvertFunctor 8657: { 8657: QSequentialIterableImpl operator()(const From &f) const 8657: { 8657: return QSequentialIterableImpl(&f); 8657: } 8657: }; 8657: } 8657: 8657: namespace QtMetaTypePrivate { 8657: template::value> 8657: struct AssociativeContainerAccessor 8657: { 8657: static const typename T::key_type& getKey(const typename T::const_iterator &it) 8657: { 8657: return it.key(); 8657: } 8657: 8657: static const typename T::mapped_type& getValue(const typename T::const_iterator &it) 8657: { 8657: return it.value(); 8657: } 8657: }; 8657: 8657: template >::value> 8657: struct StlStyleAssociativeContainerAccessor; 8657: 8657: template 8657: struct StlStyleAssociativeContainerAccessor 8657: { 8657: static const typename T::key_type& getKey(const typename T::const_iterator &it) 8657: { 8657: return it->first; 8657: } 8657: 8657: static const typename T::mapped_type& getValue(const typename T::const_iterator &it) 8657: { 8657: return it->second; 8657: } 8657: }; 8657: 8657: template 8657: struct AssociativeContainerAccessor : public StlStyleAssociativeContainerAccessor 8657: { 8657: }; 8657: 8657: class QAssociativeIterableImpl 8657: { 8657: public: 8657: const void *_iterable; 8657: void *_iterator; 8657: int _metaType_id_key; 8657: uint _metaType_flags_key; 8657: int _metaType_id_value; 8657: uint _metaType_flags_value; 8657: typedef int(*sizeFunc)(const void *p); 8657: typedef void (*findFunc)(const void *container, const void *p, void **iterator); 8657: typedef void (*beginFunc)(const void *p, void **); 8657: typedef void (*advanceFunc)(void **p, int); 8657: typedef VariantData (*getFunc)(void * const *p, int metaTypeId, uint flags); 8657: typedef void (*destroyIterFunc)(void **p); 8657: typedef bool (*equalIterFunc)(void * const *p, void * const *other); 8657: typedef void (*copyIterFunc)(void **, void * const *); 8657: 8657: sizeFunc _size; 8657: findFunc _find; 8657: beginFunc _begin; 8657: beginFunc _end; 8657: advanceFunc _advance; 8657: getFunc _getKey; 8657: getFunc _getValue; 8657: destroyIterFunc _destroyIter; 8657: equalIterFunc _equalIter; 8657: copyIterFunc _copyIter; 8657: 8657: template 8657: static int sizeImpl(const void *p) 8657: { return int(std::distance(static_cast(p)->begin(), 8657: static_cast(p)->end())); } 8657: 8657: template 8657: static void findImpl(const void *container, const void *p, void **iterator) 8657: { IteratorOwner::assign(iterator, 8657: static_cast(container)->find(*static_cast(p))); } 8657: 8657: template 8657: static void advanceImpl(void **p, int step) 8657: { std::advance(*static_cast(*p), step); } 8657: 8657: template 8657: static void beginImpl(const void *container, void **iterator) 8657: { IteratorOwner::assign(iterator, static_cast(container)->begin()); } 8657: 8657: template 8657: static void endImpl(const void *container, void **iterator) 8657: { IteratorOwner::assign(iterator, static_cast(container)->end()); } 8657: 8657: template 8657: static VariantData getKeyImpl(void * const *iterator, int metaTypeId, uint flags) 8657: { return VariantData(metaTypeId, &AssociativeContainerAccessor::getKey(*static_cast(*iterator)), flags); } 8657: 8657: template 8657: static VariantData getValueImpl(void * const *iterator, int metaTypeId, uint flags) 8657: { return VariantData(metaTypeId, &AssociativeContainerAccessor::getValue(*static_cast(*iterator)), flags); } 8657: 8657: public: 8657: template QAssociativeIterableImpl(const T*p) 8657: : _iterable(p) 8657: , _iterator(nullptr) 8657: , _metaType_id_key(qMetaTypeId()) 8657: , _metaType_flags_key(QTypeInfo::isPointer) 8657: , _metaType_id_value(qMetaTypeId()) 8657: , _metaType_flags_value(QTypeInfo::isPointer) 8657: , _size(sizeImpl) 8657: , _find(findImpl) 8657: , _begin(beginImpl) 8657: , _end(endImpl) 8657: , _advance(advanceImpl) 8657: , _getKey(getKeyImpl) 8657: , _getValue(getValueImpl) 8657: , _destroyIter(IteratorOwner::destroy) 8657: , _equalIter(IteratorOwner::equal) 8657: , _copyIter(IteratorOwner::assign) 8657: { 8657: } 8657: 8657: QAssociativeIterableImpl() 8657: : _iterable(nullptr) 8657: , _iterator(nullptr) 8657: , _metaType_id_key(QMetaType::UnknownType) 8657: , _metaType_flags_key(0) 8657: , _metaType_id_value(QMetaType::UnknownType) 8657: , _metaType_flags_value(0) 8657: , _size(nullptr) 8657: , _find(nullptr) 8657: , _begin(nullptr) 8657: , _end(nullptr) 8657: , _advance(nullptr) 8657: , _getKey(nullptr) 8657: , _getValue(nullptr) 8657: , _destroyIter(nullptr) 8657: , _equalIter(nullptr) 8657: , _copyIter(nullptr) 8657: { 8657: } 8657: 8657: inline void begin() { _begin(_iterable, &_iterator); } 8657: inline void end() { _end(_iterable, &_iterator); } 8657: inline bool equal(const QAssociativeIterableImpl&other) const { return _equalIter(&_iterator, &other._iterator); } 8657: inline QAssociativeIterableImpl &advance(int i) { _advance(&_iterator, i); return *this; } 8657: 8657: inline void destroyIter() { _destroyIter(&_iterator); } 8657: 8657: inline VariantData getCurrentKey() const { return _getKey(&_iterator, _metaType_id_key, _metaType_flags_key); } 8657: inline VariantData getCurrentValue() const { return _getValue(&_iterator, _metaType_id_value, _metaType_flags_value); } 8657: 8657: inline void find(const VariantData &key) 8657: { _find(_iterable, key.data, &_iterator); } 8657: 8657: int size() const { do { } while ((false) && (_iterable)); return _size(_iterable); } 8657: 8657: void copy(const QAssociativeIterableImpl &other) 8657: { 8657: *this = other; 8657: _copyIter(&_iterator, &other._iterator); 8657: } 8657: }; 8657: } template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = ((((Q_MOVABLE_TYPE)) & Q_PRIMITIVE_TYPE) == 0), isStatic = ((((Q_MOVABLE_TYPE)) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || (((Q_MOVABLE_TYPE)) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QtMetaTypePrivate:: QAssociativeIterableImpl)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QtMetaTypePrivate:: QAssociativeIterableImpl >::value, isDummy = ((((Q_MOVABLE_TYPE)) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QtMetaTypePrivate:: QAssociativeIterableImpl) }; static inline const char *name() { return "QtMetaTypePrivate:: QAssociativeIterableImpl"; } }; namespace QtMetaTypePrivate { 8657: 8657: template 8657: struct QAssociativeIterableConvertFunctor 8657: { 8657: QAssociativeIterableImpl operator()(const From& f) const 8657: { 8657: return QAssociativeIterableImpl(&f); 8657: } 8657: }; 8657: 8657: class QPairVariantInterfaceImpl 8657: { 8657: const void *_pair; 8657: int _metaType_id_first; 8657: uint _metaType_flags_first; 8657: int _metaType_id_second; 8657: uint _metaType_flags_second; 8657: 8657: typedef VariantData (*getFunc)(const void * const *p, int metaTypeId, uint flags); 8657: 8657: getFunc _getFirst; 8657: getFunc _getSecond; 8657: 8657: template 8657: static VariantData getFirstImpl(const void * const *pair, int metaTypeId, uint flags) 8657: { return VariantData(metaTypeId, &static_cast(*pair)->first, flags); } 8657: template 8657: static VariantData getSecondImpl(const void * const *pair, int metaTypeId, uint flags) 8657: { return VariantData(metaTypeId, &static_cast(*pair)->second, flags); } 8657: 8657: public: 8657: template QPairVariantInterfaceImpl(const T*p) 8657: : _pair(p) 8657: , _metaType_id_first(qMetaTypeId()) 8657: , _metaType_flags_first(QTypeInfo::isPointer) 8657: , _metaType_id_second(qMetaTypeId()) 8657: , _metaType_flags_second(QTypeInfo::isPointer) 8657: , _getFirst(getFirstImpl) 8657: , _getSecond(getSecondImpl) 8657: { 8657: } 8657: 8657: QPairVariantInterfaceImpl() 8657: : _pair(nullptr) 8657: , _metaType_id_first(QMetaType::UnknownType) 8657: , _metaType_flags_first(0) 8657: , _metaType_id_second(QMetaType::UnknownType) 8657: , _metaType_flags_second(0) 8657: , _getFirst(nullptr) 8657: , _getSecond(nullptr) 8657: { 8657: } 8657: 8657: inline VariantData first() const { return _getFirst(&_pair, _metaType_id_first, _metaType_flags_first); } 8657: inline VariantData second() const { return _getSecond(&_pair, _metaType_id_second, _metaType_flags_second); } 8657: }; 8657: } template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = ((((Q_MOVABLE_TYPE)) & Q_PRIMITIVE_TYPE) == 0), isStatic = ((((Q_MOVABLE_TYPE)) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || (((Q_MOVABLE_TYPE)) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QtMetaTypePrivate:: QPairVariantInterfaceImpl)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QtMetaTypePrivate:: QPairVariantInterfaceImpl >::value, isDummy = ((((Q_MOVABLE_TYPE)) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QtMetaTypePrivate:: QPairVariantInterfaceImpl) }; static inline const char *name() { return "QtMetaTypePrivate:: QPairVariantInterfaceImpl"; } }; namespace QtMetaTypePrivate { 8657: 8657: template 8657: struct QPairVariantInterfaceConvertFunctor; 8657: 8657: template 8657: struct QPairVariantInterfaceConvertFunctor > 8657: { 8657: QPairVariantInterfaceImpl operator()(const QPair& f) const 8657: { 8657: return QPairVariantInterfaceImpl(&f); 8657: } 8657: }; 8657: 8657: template 8657: struct QPairVariantInterfaceConvertFunctor > 8657: { 8657: QPairVariantInterfaceImpl operator()(const std::pair& f) const 8657: { 8657: return QPairVariantInterfaceImpl(&f); 8657: } 8657: }; 8657: 8657: } 8657: 8657: class QObject; 8657: class QWidget; 8657: 8657: 8657: 8657: 8657: template class QSharedPointer; template class QWeakPointer; template class QPointer; 8657: 8657: namespace QtPrivate 8657: { 8657: template 8657: struct IsPointerToTypeDerivedFromQObject 8657: { 8657: enum { Value = false }; 8657: }; 8657: 8657: 8657: template<> 8657: struct IsPointerToTypeDerivedFromQObject 8657: { 8657: enum { Value = false }; 8657: }; 8657: template<> 8657: struct IsPointerToTypeDerivedFromQObject 8657: { 8657: enum { Value = false }; 8657: }; 8657: template<> 8657: struct IsPointerToTypeDerivedFromQObject 8657: { 8657: enum { Value = true }; 8657: }; 8657: 8657: template 8657: struct IsPointerToTypeDerivedFromQObject 8657: { 8657: typedef qint8 yes_type; 8657: typedef qint64 no_type; 8657: 8657: 8657: static yes_type checkType(QObject* ); 8657: 8657: static no_type checkType(...); 8657: static_assert(bool(sizeof(T)), "Type argument of Q_DECLARE_METATYPE(T*) must be fully defined"); 8657: enum { Value = sizeof(checkType(static_cast(nullptr))) == sizeof(yes_type) }; 8657: }; 8657: 8657: template 8657: struct IsGadgetHelper { enum { Value = false }; }; 8657: 8657: template 8657: struct IsGadgetHelper 8657: { 8657: template 8657: static char checkType(void (X::*)()); 8657: static void *checkType(void (T::*)()); 8657: enum { Value = sizeof(checkType(&T::qt_check_for_QGADGET_macro)) == sizeof(void *) }; 8657: }; 8657: 8657: 8657: template char qt_getEnumMetaObject(const T&); 8657: 8657: template 8657: struct IsQEnumHelper { 8657: static const T &declval(); 8657: 8657: 8657: 8657: 8657: enum { Value = sizeof(qt_getEnumMetaObject(declval())) == sizeof(QMetaObject*) }; 8657: }; 8657: template<> struct IsQEnumHelper { enum { Value = false }; }; 8657: 8657: template 8657: struct MetaObjectForType 8657: { 8657: static inline const QMetaObject *value() { return nullptr; } 8657: }; 8657: template<> 8657: struct MetaObjectForType 8657: { 8657: static inline const QMetaObject *value() { return nullptr; } 8657: }; 8657: template 8657: struct MetaObjectForType::Value>::type> 8657: { 8657: static inline const QMetaObject *value() { return &T::staticMetaObject; } 8657: }; 8657: template 8657: struct MetaObjectForType::Value>::type> 8657: { 8657: static inline const QMetaObject *value() { return &T::staticMetaObject; } 8657: }; 8657: template 8657: struct MetaObjectForType::Value>::type > 8657: { 8657: static inline const QMetaObject *value() { return qt_getEnumMetaObject(T()); } 8657: }; 8657: 8657: template 8657: struct IsSharedPointerToTypeDerivedFromQObject 8657: { 8657: enum { Value = false }; 8657: }; 8657: 8657: template 8657: struct IsSharedPointerToTypeDerivedFromQObject > : IsPointerToTypeDerivedFromQObject 8657: { 8657: }; 8657: 8657: template 8657: struct IsWeakPointerToTypeDerivedFromQObject 8657: { 8657: enum { Value = false }; 8657: }; 8657: 8657: template 8657: struct IsWeakPointerToTypeDerivedFromQObject > : IsPointerToTypeDerivedFromQObject 8657: { 8657: }; 8657: 8657: template 8657: struct IsTrackingPointerToTypeDerivedFromQObject 8657: { 8657: enum { Value = false }; 8657: }; 8657: 8657: template 8657: struct IsTrackingPointerToTypeDerivedFromQObject > 8657: { 8657: enum { Value = true }; 8657: }; 8657: 8657: template 8657: struct IsSequentialContainer 8657: { 8657: enum { Value = false }; 8657: }; 8657: 8657: template 8657: struct IsAssociativeContainer 8657: { 8657: enum { Value = false }; 8657: }; 8657: 8657: template::Value> 8657: struct SequentialContainerConverterHelper 8657: { 8657: static bool registerConverter(int) 8657: { 8657: return false; 8657: } 8657: }; 8657: 8657: template::Defined> 8657: struct ValueTypeIsMetaType 8657: { 8657: static bool registerConverter(int) 8657: { 8657: return false; 8657: } 8657: }; 8657: 8657: template 8657: struct SequentialContainerConverterHelper : ValueTypeIsMetaType 8657: { 8657: }; 8657: 8657: template::Value> 8657: struct AssociativeContainerConverterHelper 8657: { 8657: static bool registerConverter(int) 8657: { 8657: return false; 8657: } 8657: }; 8657: 8657: template::Defined> 8657: struct AssociativeValueTypeIsMetaType 8657: { 8657: static bool registerConverter(int) 8657: { 8657: return false; 8657: } 8657: }; 8657: 8657: template::Defined> 8657: struct KeyAndValueTypeIsMetaType 8657: { 8657: static bool registerConverter(int) 8657: { 8657: return false; 8657: } 8657: }; 8657: 8657: template 8657: struct KeyAndValueTypeIsMetaType : AssociativeValueTypeIsMetaType 8657: { 8657: }; 8657: 8657: template 8657: struct AssociativeContainerConverterHelper : KeyAndValueTypeIsMetaType 8657: { 8657: }; 8657: 8657: template::Defined 8657: && QMetaTypeId2::Defined> 8657: struct IsMetaTypePair 8657: { 8657: static bool registerConverter(int) 8657: { 8657: return false; 8657: } 8657: }; 8657: 8657: template 8657: struct IsMetaTypePair 8657: { 8657: inline static bool registerConverter(int id); 8657: }; 8657: 8657: template 8657: struct IsPair 8657: { 8657: static bool registerConverter(int) 8657: { 8657: return false; 8657: } 8657: }; 8657: template 8657: struct IsPair > : IsMetaTypePair > {}; 8657: template 8657: struct IsPair > : IsMetaTypePair > {}; 8657: 8657: template 8657: struct MetaTypePairHelper : IsPair {}; 8657: 8657: template 8657: struct MetaTypeSmartPointerHelper 8657: { 8657: static bool registerConverter(int) { return false; } 8657: }; 8657: 8657: __attribute__((visibility("default"))) bool isBuiltinType(const QByteArray &type); 8657: } 8657: 8657: template ::Value ? QMetaType::PointerToQObject : 8657: QtPrivate::IsGadgetHelper::Value ? QMetaType::IsGadget : 8657: QtPrivate::IsQEnumHelper::Value ? QMetaType::IsEnumeration : 0> 8657: struct QMetaTypeIdQObject 8657: { 8657: enum { 8657: Defined = 0 8657: }; 8657: }; 8657: 8657: template 8657: struct QMetaTypeId : public QMetaTypeIdQObject 8657: { 8657: }; 8657: 8657: template 8657: struct QMetaTypeId2 8657: { 8657: enum { Defined = QMetaTypeId::Defined, IsBuiltIn=false }; 8657: static inline constexpr int qt_metatype_id() { return QMetaTypeId::qt_metatype_id(); } 8657: }; 8657: 8657: template 8657: struct QMetaTypeId2 : QMetaTypeId2 {}; 8657: 8657: template 8657: struct QMetaTypeId2 { enum {Defined = false }; }; 8657: 8657: namespace QtPrivate { 8657: template ::Defined> 8657: struct QMetaTypeIdHelper { 8657: static inline constexpr int qt_metatype_id() 8657: { return QMetaTypeId2::qt_metatype_id(); } 8657: }; 8657: template struct QMetaTypeIdHelper { 8657: static inline constexpr int qt_metatype_id() 8657: { return -1; } 8657: }; 8657: 8657: 8657: template 8657: struct IsPointerToTypeDerivedFromQObject { enum { Value = false }; }; 8657: 8657: template 8657: struct QMetaTypeTypeFlags 8657: { 8657: enum { Flags = (QTypeInfoQuery::isRelocatable ? QMetaType::MovableType : 0) 8657: | (QTypeInfo::isComplex ? QMetaType::NeedsConstruction : 0) 8657: | (QTypeInfo::isComplex ? QMetaType::NeedsDestruction : 0) 8657: | (IsPointerToTypeDerivedFromQObject::Value ? QMetaType::PointerToQObject : 0) 8657: | (IsSharedPointerToTypeDerivedFromQObject::Value ? QMetaType::SharedPointerToQObject : 0) 8657: | (IsWeakPointerToTypeDerivedFromQObject::Value ? QMetaType::WeakPointerToQObject : 0) 8657: | (IsTrackingPointerToTypeDerivedFromQObject::Value ? QMetaType::TrackingPointerToQObject : 0) 8657: | (std::is_enum::value ? QMetaType::IsEnumeration : 0) 8657: | (IsGadgetHelper::Value ? QMetaType::IsGadget : 0) 8657: }; 8657: }; 8657: 8657: template 8657: struct MetaTypeDefinedHelper 8657: { 8657: enum DefinedType { Defined = defined }; 8657: }; 8657: 8657: template 8657: struct QSmartPointerConvertFunctor 8657: { 8657: QObject* operator()(const SmartPointer &p) const 8657: { 8657: return p.operator->(); 8657: } 8657: }; 8657: 8657: template 8657: struct QSmartPointerConvertFunctor > 8657: { 8657: QObject* operator()(const QWeakPointer &p) const 8657: { 8657: return p.data(); 8657: } 8657: }; 8657: } 8657: 8657: template 8657: int qRegisterNormalizedMetaType(const ::QByteArray &normalizedTypeName 8657: 8657: , T * dummy = 0 8657: , typename QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::DefinedType defined = QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::Defined 8657: 8657: ) 8657: { 8657: 8657: do { } while ((false) && (normalizedTypeName == QMetaObject::normalizedType(normalizedTypeName.constData()))); 8657: 8657: const int typedefOf = dummy ? -1 : QtPrivate::QMetaTypeIdHelper::qt_metatype_id(); 8657: if (typedefOf != -1) 8657: return QMetaType::registerNormalizedTypedef(normalizedTypeName, typedefOf); 8657: 8657: QMetaType::TypeFlags flags(QtPrivate::QMetaTypeTypeFlags::Flags); 8657: 8657: if (defined) 8657: flags |= QMetaType::WasDeclaredAsMetaType; 8657: 8657: const int id = QMetaType::registerNormalizedType(normalizedTypeName, 8657: QtMetaTypePrivate::QMetaTypeFunctionHelper::Destruct, 8657: QtMetaTypePrivate::QMetaTypeFunctionHelper::Construct, 8657: int(sizeof(T)), 8657: flags, 8657: QtPrivate::MetaObjectForType::value()); 8657: 8657: if (id > 0) { 8657: QtPrivate::SequentialContainerConverterHelper::registerConverter(id); 8657: QtPrivate::AssociativeContainerConverterHelper::registerConverter(id); 8657: QtPrivate::MetaTypePairHelper::registerConverter(id); 8657: QtPrivate::MetaTypeSmartPointerHelper::registerConverter(id); 8657: } 8657: 8657: return id; 8657: } 8657: 8657: template 8657: int qRegisterMetaType(const char *typeName 8657: 8657: , T * dummy = nullptr 8657: , typename QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::DefinedType defined = QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::Defined 8657: 8657: ) 8657: { 8657: 8657: 8657: 8657: ::QByteArray normalizedTypeName = QMetaObject::normalizedType(typeName); 8657: 8657: return qRegisterNormalizedMetaType(normalizedTypeName, dummy, defined); 8657: } 8657: 8657: 8657: template 8657: void qRegisterMetaTypeStreamOperators(const char *typeName 8657: 8657: , T * = nullptr 8657: 8657: ) 8657: { 8657: qRegisterMetaType(typeName); 8657: QMetaType::registerStreamOperators(typeName, QtMetaTypePrivate::QMetaTypeFunctionHelper::Save, 8657: QtMetaTypePrivate::QMetaTypeFunctionHelper::Load); 8657: } 8657: 8657: 8657: template 8657: inline constexpr int qMetaTypeId() 8657: { 8657: static_assert(bool(QMetaTypeId2::Defined), "Type is not registered, please use the Q_DECLARE_METATYPE macro to make it known to Qt's meta-object system"); 8657: return QMetaTypeId2::qt_metatype_id(); 8657: } 8657: 8657: template 8657: inline constexpr int qRegisterMetaType() 8657: { 8657: return qMetaTypeId(); 8657: } 8657: 8657: 8657: 8657: template 8657: inline constexpr int qMetaTypeId(T *) 8657: { return qMetaTypeId(); } 8657: 8657: template 8657: inline constexpr int qRegisterMetaType(T *) 8657: { return qRegisterMetaType(); } 8657: 8657: 8657: 8657: 8657: template 8657: struct QMetaTypeIdQObject 8657: { 8657: enum { 8657: Defined = 1 8657: }; 8657: 8657: static int qt_metatype_id() 8657: { 8657: static QBasicAtomicInt metatype_id = { 0 }; 8657: if (const int id = metatype_id.loadAcquire()) 8657: return id; 8657: const char * const cName = T::staticMetaObject.className(); 8657: QByteArray typeName; 8657: typeName.reserve(int(strlen(cName)) + 1); 8657: typeName.append(cName).append('*'); 8657: const int newId = qRegisterNormalizedMetaType( 8657: typeName, 8657: reinterpret_cast(quintptr(-1))); 8657: metatype_id.storeRelease(newId); 8657: return newId; 8657: } 8657: }; 8657: 8657: template 8657: struct QMetaTypeIdQObject 8657: { 8657: enum { 8657: Defined = std::is_default_constructible::value 8657: }; 8657: 8657: static int qt_metatype_id() 8657: { 8657: static QBasicAtomicInt metatype_id = { 0 }; 8657: if (const int id = metatype_id.loadAcquire()) 8657: return id; 8657: const char * const cName = T::staticMetaObject.className(); 8657: const int newId = qRegisterNormalizedMetaType( 8657: cName, 8657: reinterpret_cast(quintptr(-1))); 8657: metatype_id.storeRelease(newId); 8657: return newId; 8657: } 8657: }; 8657: 8657: template 8657: struct QMetaTypeIdQObject 8657: { 8657: enum { 8657: Defined = 1 8657: }; 8657: 8657: static int qt_metatype_id() 8657: { 8657: static QBasicAtomicInt metatype_id = { 0 }; 8657: if (const int id = metatype_id.loadAcquire()) 8657: return id; 8657: const char *eName = qt_getEnumName(T()); 8657: const char *cName = qt_getEnumMetaObject(T())->className(); 8657: QByteArray typeName; 8657: typeName.reserve(int(strlen(cName) + 2 + strlen(eName))); 8657: typeName.append(cName).append("::").append(eName); 8657: const int newId = qRegisterNormalizedMetaType( 8657: typeName, 8657: reinterpret_cast(quintptr(-1))); 8657: metatype_id.storeRelease(newId); 8657: return newId; 8657: } 8657: }; 8657: 8657: 8657: 8657: template 8657: inline int qRegisterMetaTypeStreamOperators() 8657: { 8657: int id = qMetaTypeId(); 8657: QMetaType::registerStreamOperators(id, QtMetaTypePrivate::QMetaTypeFunctionHelper::Save, 8657: QtMetaTypePrivate::QMetaTypeFunctionHelper::Load); 8657: return id; 8657: } 8657: # 1881 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 3 4 8657: class QChar; class QString; class QStringList; class QByteArray; class QBitArray; class QDate; class QTime; class QDateTime; class QUrl; class QLocale; class QRect; class QRectF; class QSize; class QSizeF; class QLine; class QLineF; class QPoint; class QPointF; class QRegExp; class QEasingCurve; class QUuid; class QVariant; class QModelIndex; class QRegularExpression; class QJsonValue; class QJsonObject; class QJsonArray; class QJsonDocument; class QPersistentModelIndex; 8657: class QFont; class QPixmap; class QBrush; class QColor; class QPalette; class QIcon; class QImage; class QPolygon; class QRegion; class QBitmap; class QCursor; class QKeySequence; class QPen; class QTextLength; class QTextFormat; class QMatrix; class QTransform; class QMatrix4x4; class QVector2D; class QVector3D; class QVector4D; class QQuaternion; class QPolygonF; 8657: class QSizePolicy; 8657: 8657: 8657: 8657: typedef QList QVariantList; 8657: typedef QMap QVariantMap; 8657: typedef QHash QVariantHash; 8657: 8657: typedef QList QByteArrayList; 8657: # 1968 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 3 4 8657: namespace QtPrivate { 8657: 8657: template 8657: struct SharedPointerMetaTypeIdHelper 8657: { 8657: enum { 8657: Defined = 0 8657: }; 8657: static int qt_metatype_id() 8657: { 8657: return -1; 8657: } 8657: }; 8657: 8657: } 8657: # 2042 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 3 4 8657: 8657: 8657: template class QList; template struct QMetaTypeId< QList > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("QList")) + 1 + tNameLen + 1 + 1); typeName.append("QList", int(sizeof("QList")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QList >( typeName, reinterpret_cast< QList *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } template class QVector; template struct QMetaTypeId< QVector > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("QVector")) + 1 + tNameLen + 1 + 1); typeName.append("QVector", int(sizeof("QVector")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QVector >( typeName, reinterpret_cast< QVector *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } template class QQueue; template struct QMetaTypeId< QQueue > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("QQueue")) + 1 + tNameLen + 1 + 1); typeName.append("QQueue", int(sizeof("QQueue")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QQueue >( typeName, reinterpret_cast< QQueue *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } template class QStack; template struct QMetaTypeId< QStack > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("QStack")) + 1 + tNameLen + 1 + 1); typeName.append("QStack", int(sizeof("QStack")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QStack >( typeName, reinterpret_cast< QStack *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } template class QSet; template struct QMetaTypeId< QSet > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("QSet")) + 1 + tNameLen + 1 + 1); typeName.append("QSet", int(sizeof("QSet")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QSet >( typeName, reinterpret_cast< QSet *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } template class QLinkedList; template struct QMetaTypeId< QLinkedList > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("QLinkedList")) + 1 + tNameLen + 1 + 1); typeName.append("QLinkedList", int(sizeof("QLinkedList")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QLinkedList >( typeName, reinterpret_cast< QLinkedList *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } 8657: 8657: 8657: 8657: 8657: 8657: template struct QMetaTypeId< std::vector > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("std::vector")) + 1 + tNameLen + 1 + 1); typeName.append("std::vector", int(sizeof("std::vector")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< std::vector >( typeName, reinterpret_cast< std::vector *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } 8657: template struct QMetaTypeId< std::list > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("std::list")) + 1 + tNameLen + 1 + 1); typeName.append("std::list", int(sizeof("std::list")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< std::list >( typeName, reinterpret_cast< std::list *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template class QHash; template class QMap; template struct QPair; 8657: # 2074 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 3 4 8657: namespace QtPrivate { template struct IsAssociativeContainer > { enum { Value = true }; }; } template struct QMetaTypeId< QHash > { enum { Defined = QMetaTypeId2::Defined && QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); const char *uName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); do { } while ((false) && (uName)); const int tNameLen = int(qstrlen(tName)); const int uNameLen = int(qstrlen(uName)); QByteArray typeName; typeName.reserve(int(sizeof("QHash")) + 1 + tNameLen + 1 + uNameLen + 1 + 1); typeName.append("QHash", int(sizeof("QHash")) - 1) .append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QHash >( typeName, reinterpret_cast< QHash *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8657: namespace QtPrivate { template struct IsAssociativeContainer > { enum { Value = true }; }; } template struct QMetaTypeId< QMap > { enum { Defined = QMetaTypeId2::Defined && QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); const char *uName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); do { } while ((false) && (uName)); const int tNameLen = int(qstrlen(tName)); const int uNameLen = int(qstrlen(uName)); QByteArray typeName; typeName.reserve(int(sizeof("QMap")) + 1 + tNameLen + 1 + uNameLen + 1 + 1); typeName.append("QMap", int(sizeof("QMap")) - 1) .append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QMap >( typeName, reinterpret_cast< QMap *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8657: namespace QtPrivate { template struct IsAssociativeContainer > { enum { Value = true }; }; } template struct QMetaTypeId< std::map > { enum { Defined = QMetaTypeId2::Defined && QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); const char *uName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); do { } while ((false) && (uName)); const int tNameLen = int(qstrlen(tName)); const int uNameLen = int(qstrlen(uName)); QByteArray typeName; typeName.reserve(int(sizeof("std::map")) + 1 + tNameLen + 1 + uNameLen + 1 + 1); typeName.append("std::map", int(sizeof("std::map")) - 1) .append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< std::map >( typeName, reinterpret_cast< std::map *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8657: 8657: template struct QMetaTypeId< QPair > { enum { Defined = QMetaTypeId2::Defined && QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); const char *uName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); do { } while ((false) && (uName)); const int tNameLen = int(qstrlen(tName)); const int uNameLen = int(qstrlen(uName)); QByteArray typeName; typeName.reserve(int(sizeof("QPair")) + 1 + tNameLen + 1 + uNameLen + 1 + 1); typeName.append("QPair", int(sizeof("QPair")) - 1) .append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QPair >( typeName, reinterpret_cast< QPair *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8657: template struct QMetaTypeId< std::pair > { enum { Defined = QMetaTypeId2::Defined && QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); const char *uName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); do { } while ((false) && (uName)); const int tNameLen = int(qstrlen(tName)); const int uNameLen = int(qstrlen(uName)); QByteArray typeName; typeName.reserve(int(sizeof("std::pair")) + 1 + tNameLen + 1 + uNameLen + 1 + 1); typeName.append("std::pair", int(sizeof("std::pair")) - 1) .append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< std::pair >( typeName, reinterpret_cast< std::pair *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8657: 8657: 8657: 8657: 8657: 8657: namespace QtPrivate { template struct SharedPointerMetaTypeIdHelper, true> { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char * const cName = T::staticMetaObject.className(); QByteArray typeName; typeName.reserve(int(sizeof("QSharedPointer") + 1 + strlen(cName) + 1)); typeName.append("QSharedPointer", int(sizeof("QSharedPointer")) - 1) .append('<').append(cName).append('>'); const int newId = qRegisterNormalizedMetaType< QSharedPointer >( typeName, reinterpret_cast< QSharedPointer *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; template struct MetaTypeSmartPointerHelper , typename std::enable_if::Value>::type> { static bool registerConverter(int id) { const int toId = QMetaType::QObjectStar; if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { QtPrivate::QSmartPointerConvertFunctor > o; static const QtPrivate::ConverterFunctor, QObject*, QSmartPointerConvertFunctor > > f(o); return QMetaType::registerConverterFunction(&f, id, toId); } return true; } }; } template struct QMetaTypeId< QSharedPointer > : QtPrivate::SharedPointerMetaTypeIdHelper< QSharedPointer, QtPrivate::IsPointerToTypeDerivedFromQObject::Value> { }; namespace QtPrivate { template struct SharedPointerMetaTypeIdHelper, true> { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char * const cName = T::staticMetaObject.className(); QByteArray typeName; typeName.reserve(int(sizeof("QWeakPointer") + 1 + strlen(cName) + 1)); typeName.append("QWeakPointer", int(sizeof("QWeakPointer")) - 1) .append('<').append(cName).append('>'); const int newId = qRegisterNormalizedMetaType< QWeakPointer >( typeName, reinterpret_cast< QWeakPointer *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; template struct MetaTypeSmartPointerHelper , typename std::enable_if::Value>::type> { static bool registerConverter(int id) { const int toId = QMetaType::QObjectStar; if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { QtPrivate::QSmartPointerConvertFunctor > o; static const QtPrivate::ConverterFunctor, QObject*, QSmartPointerConvertFunctor > > f(o); return QMetaType::registerConverterFunction(&f, id, toId); } return true; } }; } template struct QMetaTypeId< QWeakPointer > : QtPrivate::SharedPointerMetaTypeIdHelper< QWeakPointer, QtPrivate::IsPointerToTypeDerivedFromQObject::Value> { }; namespace QtPrivate { template struct SharedPointerMetaTypeIdHelper, true> { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char * const cName = T::staticMetaObject.className(); QByteArray typeName; typeName.reserve(int(sizeof("QPointer") + 1 + strlen(cName) + 1)); typeName.append("QPointer", int(sizeof("QPointer")) - 1) .append('<').append(cName).append('>'); const int newId = qRegisterNormalizedMetaType< QPointer >( typeName, reinterpret_cast< QPointer *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; template struct MetaTypeSmartPointerHelper , typename std::enable_if::Value>::type> { static bool registerConverter(int id) { const int toId = QMetaType::QObjectStar; if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { QtPrivate::QSmartPointerConvertFunctor > o; static const QtPrivate::ConverterFunctor, QObject*, QSmartPointerConvertFunctor > > f(o); return QMetaType::registerConverterFunction(&f, id, toId); } return true; } }; } template struct QMetaTypeId< QPointer > : QtPrivate::SharedPointerMetaTypeIdHelper< QPointer, QtPrivate::IsPointerToTypeDerivedFromQObject::Value> { }; 8657: 8657: 8657: 8657: 8657: 8657: inline QMetaType::QMetaType(const ExtensionFlag extensionFlags, const QMetaTypeInterface *info, 8657: Creator creator, 8657: Deleter deleter, 8657: SaveOperator saveOp, 8657: LoadOperator loadOp, 8657: Constructor constructor, 8657: Destructor destructor, 8657: uint size, 8657: uint theTypeFlags, 8657: int typeId, 8657: const QMetaObject *_metaObject) 8657: : m_creator_unused(creator) 8657: , m_deleter_unused(deleter) 8657: , m_saveOp(saveOp) 8657: , m_loadOp(loadOp) 8657: , m_constructor(constructor) 8657: , m_destructor(destructor) 8657: , m_extension(nullptr) 8657: , m_size(size) 8657: , m_typeFlags(theTypeFlags) 8657: , m_extensionFlags(extensionFlags) 8657: , m_typeId(typeId) 8657: , m_metaObject(_metaObject) 8657: { 8657: if (__builtin_expect(!!(isExtended(CtorEx) || typeId == QMetaType::Void), false)) 8657: ctor(info); 8657: } 8657: 8657: inline QMetaType::~QMetaType() 8657: { 8657: if (__builtin_expect(!!(isExtended(DtorEx)), false)) 8657: dtor(); 8657: } 8657: 8657: inline bool QMetaType::isValid() const 8657: { 8657: return m_typeId != UnknownType; 8657: } 8657: 8657: inline bool QMetaType::isRegistered() const 8657: { 8657: return isValid(); 8657: } 8657: 8657: inline void *QMetaType::create(const void *copy) const 8657: { 8657: 8657: return createExtended(copy); 8657: } 8657: 8657: inline void QMetaType::destroy(void *data) const 8657: { 8657: 8657: destroyExtended(data); 8657: } 8657: 8657: inline void *QMetaType::construct(void *where, const void *copy) const 8657: { 8657: if (__builtin_expect(!!(isExtended(ConstructEx)), false)) 8657: return constructExtended(where, copy); 8657: return m_constructor(where, copy); 8657: } 8657: 8657: inline void QMetaType::destruct(void *data) const 8657: { 8657: if (__builtin_expect(!!(isExtended(DestructEx)), false)) 8657: return destructExtended(data); 8657: if (__builtin_expect(!!(!data), false)) 8657: return; 8657: m_destructor(data); 8657: } 8657: 8657: inline int QMetaType::sizeOf() const 8657: { 8657: if (__builtin_expect(!!(isExtended(SizeEx)), false)) 8657: return sizeExtended(); 8657: return m_size; 8657: } 8657: 8657: inline QMetaType::TypeFlags QMetaType::flags() const 8657: { 8657: if (__builtin_expect(!!(isExtended(FlagsEx)), false)) 8657: return flagsExtended(); 8657: return QMetaType::TypeFlags(m_typeFlags); 8657: } 8657: 8657: inline const QMetaObject *QMetaType::metaObject() const 8657: { 8657: if (__builtin_expect(!!(isExtended(MetaObjectEx)), false)) 8657: return metaObjectExtended(); 8657: return m_metaObject; 8657: } 8657: 8657: 8657: 8657: 8657: template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 43 }; static inline constexpr int qt_metatype_id() { return 43; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 1 }; static inline constexpr int qt_metatype_id() { return 1; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 2 }; static inline constexpr int qt_metatype_id() { return 2; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 3 }; static inline constexpr int qt_metatype_id() { return 3; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 4 }; static inline constexpr int qt_metatype_id() { return 4; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 5 }; static inline constexpr int qt_metatype_id() { return 5; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 6 }; static inline constexpr int qt_metatype_id() { return 6; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 32 }; static inline constexpr int qt_metatype_id() { return 32; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 33 }; static inline constexpr int qt_metatype_id() { return 33; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 34 }; static inline constexpr int qt_metatype_id() { return 34; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 35 }; static inline constexpr int qt_metatype_id() { return 35; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 36 }; static inline constexpr int qt_metatype_id() { return 36; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 37 }; static inline constexpr int qt_metatype_id() { return 37; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 38 }; static inline constexpr int qt_metatype_id() { return 38; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 40 }; static inline constexpr int qt_metatype_id() { return 40; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 51 }; static inline constexpr int qt_metatype_id() { return 51; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 31 }; static inline constexpr int qt_metatype_id() { return 31; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 7 }; static inline constexpr int qt_metatype_id() { return 7; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 10 }; static inline constexpr int qt_metatype_id() { return 10; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 11 }; static inline constexpr int qt_metatype_id() { return 11; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 12 }; static inline constexpr int qt_metatype_id() { return 12; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 13 }; static inline constexpr int qt_metatype_id() { return 13; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 14 }; static inline constexpr int qt_metatype_id() { return 14; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 15 }; static inline constexpr int qt_metatype_id() { return 15; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 16 }; static inline constexpr int qt_metatype_id() { return 16; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 17 }; static inline constexpr int qt_metatype_id() { return 17; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 18 }; static inline constexpr int qt_metatype_id() { return 18; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 19 }; static inline constexpr int qt_metatype_id() { return 19; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 20 }; static inline constexpr int qt_metatype_id() { return 20; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 21 }; static inline constexpr int qt_metatype_id() { return 21; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 22 }; static inline constexpr int qt_metatype_id() { return 22; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 23 }; static inline constexpr int qt_metatype_id() { return 23; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 24 }; static inline constexpr int qt_metatype_id() { return 24; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 25 }; static inline constexpr int qt_metatype_id() { return 25; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 26 }; static inline constexpr int qt_metatype_id() { return 26; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 27 }; static inline constexpr int qt_metatype_id() { return 27; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 29 }; static inline constexpr int qt_metatype_id() { return 29; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 30 }; static inline constexpr int qt_metatype_id() { return 30; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 41 }; static inline constexpr int qt_metatype_id() { return 41; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 42 }; static inline constexpr int qt_metatype_id() { return 42; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 44 }; static inline constexpr int qt_metatype_id() { return 44; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 45 }; static inline constexpr int qt_metatype_id() { return 45; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 46 }; static inline constexpr int qt_metatype_id() { return 46; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 47 }; static inline constexpr int qt_metatype_id() { return 47; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 48 }; static inline constexpr int qt_metatype_id() { return 48; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 50 }; static inline constexpr int qt_metatype_id() { return 50; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 39 }; static inline constexpr int qt_metatype_id() { return 39; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 8 }; static inline constexpr int qt_metatype_id() { return 8; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 9 }; static inline constexpr int qt_metatype_id() { return 9; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 28 }; static inline constexpr int qt_metatype_id() { return 28; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 49 }; static inline constexpr int qt_metatype_id() { return 49; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 64 }; static inline constexpr int qt_metatype_id() { return 64; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 65 }; static inline constexpr int qt_metatype_id() { return 65; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 66 }; static inline constexpr int qt_metatype_id() { return 66; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 67 }; static inline constexpr int qt_metatype_id() { return 67; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 68 }; static inline constexpr int qt_metatype_id() { return 68; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 69 }; static inline constexpr int qt_metatype_id() { return 69; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 70 }; static inline constexpr int qt_metatype_id() { return 70; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 71 }; static inline constexpr int qt_metatype_id() { return 71; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 72 }; static inline constexpr int qt_metatype_id() { return 72; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 73 }; static inline constexpr int qt_metatype_id() { return 73; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 74 }; static inline constexpr int qt_metatype_id() { return 74; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 75 }; static inline constexpr int qt_metatype_id() { return 75; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 76 }; static inline constexpr int qt_metatype_id() { return 76; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 77 }; static inline constexpr int qt_metatype_id() { return 77; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 78 }; static inline constexpr int qt_metatype_id() { return 78; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 79 }; static inline constexpr int qt_metatype_id() { return 79; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 80 }; static inline constexpr int qt_metatype_id() { return 80; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 81 }; static inline constexpr int qt_metatype_id() { return 81; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 82 }; static inline constexpr int qt_metatype_id() { return 82; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 83 }; static inline constexpr int qt_metatype_id() { return 83; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 84 }; static inline constexpr int qt_metatype_id() { return 84; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 85 }; static inline constexpr int qt_metatype_id() { return 85; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 86 }; static inline constexpr int qt_metatype_id() { return 86; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 121 }; static inline constexpr int qt_metatype_id() { return 121; } }; 8657: 8657: template <> struct QMetaTypeId< QtMetaTypePrivate::QSequentialIterableImpl > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< QtMetaTypePrivate::QSequentialIterableImpl >("QtMetaTypePrivate::QSequentialIterableImpl", reinterpret_cast< QtMetaTypePrivate::QSequentialIterableImpl *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8657: template <> struct QMetaTypeId< QtMetaTypePrivate::QAssociativeIterableImpl > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< QtMetaTypePrivate::QAssociativeIterableImpl >("QtMetaTypePrivate::QAssociativeIterableImpl", reinterpret_cast< QtMetaTypePrivate::QAssociativeIterableImpl *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8657: template <> struct QMetaTypeId< QtMetaTypePrivate::QPairVariantInterfaceImpl > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< QtMetaTypePrivate::QPairVariantInterfaceImpl >("QtMetaTypePrivate::QPairVariantInterfaceImpl", reinterpret_cast< QtMetaTypePrivate::QPairVariantInterfaceImpl *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8657: 8657: 8657: 8657: template 8657: inline bool QtPrivate::IsMetaTypePair::registerConverter(int id) 8657: { 8657: const int toId = qMetaTypeId(); 8657: if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { 8657: QtMetaTypePrivate::QPairVariantInterfaceConvertFunctor o; 8657: static const QtPrivate::ConverterFunctor > f(o); 8657: return QMetaType::registerConverterFunction(&f, id, toId); 8657: } 8657: return true; 8657: } 8657: 8657: namespace QtPrivate { 8657: template 8657: struct ValueTypeIsMetaType 8657: { 8657: static bool registerConverter(int id) 8657: { 8657: const int toId = qMetaTypeId(); 8657: if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { 8657: QtMetaTypePrivate::QSequentialIterableConvertFunctor o; 8657: static const QtPrivate::ConverterFunctor > f(o); 8657: return QMetaType::registerConverterFunction(&f, id, toId); 8657: } 8657: return true; 8657: } 8657: }; 8657: 8657: template 8657: struct AssociativeValueTypeIsMetaType 8657: { 8657: static bool registerConverter(int id) 8657: { 8657: const int toId = qMetaTypeId(); 8657: if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { 8657: QtMetaTypePrivate::QAssociativeIterableConvertFunctor o; 8657: static const QtPrivate::ConverterFunctor > f(o); 8657: return QMetaType::registerConverterFunction(&f, id, toId); 8657: } 8657: return true; 8657: } 8657: }; 8657: } 8657: 8657: 8657: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 1 3 4 8657: # 54 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 3 4 8657: # 1 "/usr/include/c++/8/functional" 1 3 4 8657: # 46 "/usr/include/c++/8/functional" 3 4 8657: 8657: # 47 "/usr/include/c++/8/functional" 3 8657: # 58 "/usr/include/c++/8/functional" 3 8657: # 1 "/usr/include/c++/8/bits/refwrap.h" 1 3 8657: # 33 "/usr/include/c++/8/bits/refwrap.h" 3 8657: 8657: # 34 "/usr/include/c++/8/bits/refwrap.h" 3 8657: # 43 "/usr/include/c++/8/bits/refwrap.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct _Maybe_unary_or_binary_function { }; 8657: 8657: 8657: template 8657: struct _Maybe_unary_or_binary_function<_Res, _T1> 8657: : std::unary_function<_T1, _Res> { }; 8657: 8657: 8657: template 8657: struct _Maybe_unary_or_binary_function<_Res, _T1, _T2> 8657: : std::binary_function<_T1, _T2, _Res> { }; 8657: 8657: template 8657: struct _Mem_fn_traits; 8657: 8657: template 8657: struct _Mem_fn_traits_base 8657: { 8657: using __result_type = _Res; 8657: using __maybe_type 8657: = _Maybe_unary_or_binary_function<_Res, _Class*, _ArgTypes...>; 8657: using __arity = integral_constant; 8657: }; 8657: # 97 "/usr/include/c++/8/bits/refwrap.h" 3 8657: 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; }; 8657: 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; }; 8657: 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; }; 8657: # 111 "/usr/include/c++/8/bits/refwrap.h" 3 8657: template> 8657: struct _Maybe_get_result_type 8657: { }; 8657: 8657: template 8657: struct _Maybe_get_result_type<_Functor, 8657: __void_t> 8657: { typedef typename _Functor::result_type result_type; }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct _Weak_result_type_impl 8657: : _Maybe_get_result_type<_Functor> 8657: { }; 8657: 8657: 8657: template 8657: struct _Weak_result_type_impl<_Res(_ArgTypes...) > 8657: { typedef _Res result_type; }; 8657: 8657: 8657: template 8657: struct _Weak_result_type_impl<_Res(_ArgTypes......) > 8657: { typedef _Res result_type; }; 8657: 8657: 8657: template 8657: struct _Weak_result_type_impl<_Res(*)(_ArgTypes...) > 8657: { typedef _Res result_type; }; 8657: 8657: 8657: template 8657: struct 8657: _Weak_result_type_impl<_Res(*)(_ArgTypes......) > 8657: { typedef _Res result_type; }; 8657: 8657: 8657: template::value> 8657: struct _Weak_result_type_memfun 8657: : _Weak_result_type_impl<_Functor> 8657: { }; 8657: 8657: 8657: template 8657: struct _Weak_result_type_memfun<_MemFunPtr, true> 8657: { 8657: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 8657: }; 8657: 8657: 8657: template 8657: struct _Weak_result_type_memfun<_Func _Class::*, false> 8657: { }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct _Weak_result_type 8657: : _Weak_result_type_memfun::type> 8657: { }; 8657: 8657: 8657: template> 8657: struct _Refwrap_base_arg1 8657: { }; 8657: 8657: 8657: template 8657: struct _Refwrap_base_arg1<_Tp, 8657: __void_t> 8657: { 8657: typedef typename _Tp::argument_type argument_type; 8657: }; 8657: 8657: 8657: template> 8657: struct _Refwrap_base_arg2 8657: { }; 8657: 8657: 8657: template 8657: struct _Refwrap_base_arg2<_Tp, 8657: __void_t> 8657: { 8657: typedef typename _Tp::first_argument_type first_argument_type; 8657: typedef typename _Tp::second_argument_type second_argument_type; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct _Reference_wrapper_base 8657: : _Weak_result_type<_Tp>, _Refwrap_base_arg1<_Tp>, _Refwrap_base_arg2<_Tp> 8657: { }; 8657: 8657: 8657: template 8657: struct _Reference_wrapper_base<_Res(_T1) > 8657: : unary_function<_T1, _Res> 8657: { }; 8657: 8657: template 8657: struct _Reference_wrapper_base<_Res(_T1) const> 8657: : unary_function<_T1, _Res> 8657: { }; 8657: 8657: template 8657: struct _Reference_wrapper_base<_Res(_T1) volatile> 8657: : unary_function<_T1, _Res> 8657: { }; 8657: 8657: template 8657: struct _Reference_wrapper_base<_Res(_T1) const volatile> 8657: : unary_function<_T1, _Res> 8657: { }; 8657: 8657: 8657: template 8657: struct _Reference_wrapper_base<_Res(_T1, _T2) > 8657: : binary_function<_T1, _T2, _Res> 8657: { }; 8657: 8657: template 8657: struct _Reference_wrapper_base<_Res(_T1, _T2) const> 8657: : binary_function<_T1, _T2, _Res> 8657: { }; 8657: 8657: template 8657: struct _Reference_wrapper_base<_Res(_T1, _T2) volatile> 8657: : binary_function<_T1, _T2, _Res> 8657: { }; 8657: 8657: template 8657: struct _Reference_wrapper_base<_Res(_T1, _T2) const volatile> 8657: : binary_function<_T1, _T2, _Res> 8657: { }; 8657: 8657: 8657: template 8657: struct _Reference_wrapper_base<_Res(*)(_T1) > 8657: : unary_function<_T1, _Res> 8657: { }; 8657: 8657: 8657: template 8657: struct _Reference_wrapper_base<_Res(*)(_T1, _T2) > 8657: : binary_function<_T1, _T2, _Res> 8657: { }; 8657: 8657: template::value> 8657: struct _Reference_wrapper_base_memfun 8657: : _Reference_wrapper_base<_Tp> 8657: { }; 8657: 8657: template 8657: struct _Reference_wrapper_base_memfun<_MemFunPtr, true> 8657: : _Mem_fn_traits<_MemFunPtr>::__maybe_type 8657: { 8657: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: class reference_wrapper 8657: : public _Reference_wrapper_base_memfun::type> 8657: { 8657: _Tp* _M_data; 8657: 8657: public: 8657: typedef _Tp type; 8657: 8657: reference_wrapper(_Tp& __indata) noexcept 8657: : _M_data(std::__addressof(__indata)) 8657: { } 8657: 8657: reference_wrapper(_Tp&&) = delete; 8657: 8657: reference_wrapper(const reference_wrapper&) = default; 8657: 8657: reference_wrapper& 8657: operator=(const reference_wrapper&) = default; 8657: 8657: operator _Tp&() const noexcept 8657: { return this->get(); } 8657: 8657: _Tp& 8657: get() const noexcept 8657: { return *_M_data; } 8657: 8657: template 8657: typename result_of<_Tp&(_Args&&...)>::type 8657: operator()(_Args&&... __args) const 8657: { 8657: return std::__invoke(get(), std::forward<_Args>(__args)...); 8657: } 8657: }; 8657: 8657: 8657: 8657: template 8657: inline reference_wrapper<_Tp> 8657: ref(_Tp& __t) noexcept 8657: { return reference_wrapper<_Tp>(__t); } 8657: 8657: 8657: template 8657: inline reference_wrapper 8657: cref(const _Tp& __t) noexcept 8657: { return reference_wrapper(__t); } 8657: 8657: template 8657: void ref(const _Tp&&) = delete; 8657: 8657: template 8657: void cref(const _Tp&&) = delete; 8657: 8657: 8657: template 8657: inline reference_wrapper<_Tp> 8657: ref(reference_wrapper<_Tp> __t) noexcept 8657: { return __t; } 8657: 8657: 8657: template 8657: inline reference_wrapper 8657: cref(reference_wrapper<_Tp> __t) noexcept 8657: { return { __t.get() }; } 8657: 8657: 8657: 8657: 8657: } 8657: # 59 "/usr/include/c++/8/functional" 2 3 8657: # 1 "/usr/include/c++/8/bits/std_function.h" 1 3 8657: # 33 "/usr/include/c++/8/bits/std_function.h" 3 8657: 8657: # 34 "/usr/include/c++/8/bits/std_function.h" 3 8657: # 47 "/usr/include/c++/8/bits/std_function.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: class bad_function_call : public std::exception 8657: { 8657: public: 8657: virtual ~bad_function_call() noexcept; 8657: 8657: const char* what() const noexcept; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct __is_location_invariant 8657: : is_trivially_copyable<_Tp>::type 8657: { }; 8657: 8657: class _Undefined_class; 8657: 8657: union _Nocopy_types 8657: { 8657: void* _M_object; 8657: const void* _M_const_object; 8657: void (*_M_function_pointer)(); 8657: void (_Undefined_class::*_M_member_pointer)(); 8657: }; 8657: 8657: union [[gnu::may_alias]] _Any_data 8657: { 8657: void* _M_access() { return &_M_pod_data[0]; } 8657: const void* _M_access() const { return &_M_pod_data[0]; } 8657: 8657: template 8657: _Tp& 8657: _M_access() 8657: { return *static_cast<_Tp*>(_M_access()); } 8657: 8657: template 8657: const _Tp& 8657: _M_access() const 8657: { return *static_cast(_M_access()); } 8657: 8657: _Nocopy_types _M_unused; 8657: char _M_pod_data[sizeof(_Nocopy_types)]; 8657: }; 8657: 8657: enum _Manager_operation 8657: { 8657: __get_type_info, 8657: __get_functor_ptr, 8657: __clone_functor, 8657: __destroy_functor 8657: }; 8657: 8657: 8657: 8657: template 8657: struct _Simple_type_wrapper 8657: { 8657: _Simple_type_wrapper(_Tp __value) : __value(__value) { } 8657: 8657: _Tp __value; 8657: }; 8657: 8657: template 8657: struct __is_location_invariant<_Simple_type_wrapper<_Tp> > 8657: : __is_location_invariant<_Tp> 8657: { }; 8657: 8657: template 8657: class function; 8657: 8657: 8657: class _Function_base 8657: { 8657: public: 8657: static const std::size_t _M_max_size = sizeof(_Nocopy_types); 8657: static const std::size_t _M_max_align = __alignof__(_Nocopy_types); 8657: 8657: template 8657: class _Base_manager 8657: { 8657: protected: 8657: static const bool __stored_locally = 8657: (__is_location_invariant<_Functor>::value 8657: && sizeof(_Functor) <= _M_max_size 8657: && __alignof__(_Functor) <= _M_max_align 8657: && (_M_max_align % __alignof__(_Functor) == 0)); 8657: 8657: typedef integral_constant _Local_storage; 8657: 8657: 8657: static _Functor* 8657: _M_get_pointer(const _Any_data& __source) 8657: { 8657: const _Functor* __ptr = 8657: __stored_locally? std::__addressof(__source._M_access<_Functor>()) 8657: : __source._M_access<_Functor*>(); 8657: return const_cast<_Functor*>(__ptr); 8657: } 8657: 8657: 8657: 8657: static void 8657: _M_clone(_Any_data& __dest, const _Any_data& __source, true_type) 8657: { 8657: ::new (__dest._M_access()) _Functor(__source._M_access<_Functor>()); 8657: } 8657: 8657: 8657: 8657: static void 8657: _M_clone(_Any_data& __dest, const _Any_data& __source, false_type) 8657: { 8657: __dest._M_access<_Functor*>() = 8657: new _Functor(*__source._M_access<_Functor*>()); 8657: } 8657: 8657: 8657: 8657: static void 8657: _M_destroy(_Any_data& __victim, true_type) 8657: { 8657: __victim._M_access<_Functor>().~_Functor(); 8657: } 8657: 8657: 8657: static void 8657: _M_destroy(_Any_data& __victim, false_type) 8657: { 8657: delete __victim._M_access<_Functor*>(); 8657: } 8657: 8657: public: 8657: static bool 8657: _M_manager(_Any_data& __dest, const _Any_data& __source, 8657: _Manager_operation __op) 8657: { 8657: switch (__op) 8657: { 8657: 8657: case __get_type_info: 8657: __dest._M_access() = &typeid(_Functor); 8657: break; 8657: 8657: case __get_functor_ptr: 8657: __dest._M_access<_Functor*>() = _M_get_pointer(__source); 8657: break; 8657: 8657: case __clone_functor: 8657: _M_clone(__dest, __source, _Local_storage()); 8657: break; 8657: 8657: case __destroy_functor: 8657: _M_destroy(__dest, _Local_storage()); 8657: break; 8657: } 8657: return false; 8657: } 8657: 8657: static void 8657: _M_init_functor(_Any_data& __functor, _Functor&& __f) 8657: { _M_init_functor(__functor, std::move(__f), _Local_storage()); } 8657: 8657: template 8657: static bool 8657: _M_not_empty_function(const function<_Signature>& __f) 8657: { return static_cast(__f); } 8657: 8657: template 8657: static bool 8657: _M_not_empty_function(_Tp* __fp) 8657: { return __fp != nullptr; } 8657: 8657: template 8657: static bool 8657: _M_not_empty_function(_Tp _Class::* __mp) 8657: { return __mp != nullptr; } 8657: 8657: template 8657: static bool 8657: _M_not_empty_function(const _Tp&) 8657: { return true; } 8657: 8657: private: 8657: static void 8657: _M_init_functor(_Any_data& __functor, _Functor&& __f, true_type) 8657: { ::new (__functor._M_access()) _Functor(std::move(__f)); } 8657: 8657: static void 8657: _M_init_functor(_Any_data& __functor, _Functor&& __f, false_type) 8657: { __functor._M_access<_Functor*>() = new _Functor(std::move(__f)); } 8657: }; 8657: 8657: _Function_base() : _M_manager(nullptr) { } 8657: 8657: ~_Function_base() 8657: { 8657: if (_M_manager) 8657: _M_manager(_M_functor, _M_functor, __destroy_functor); 8657: } 8657: 8657: bool _M_empty() const { return !_M_manager; } 8657: 8657: typedef bool (*_Manager_type)(_Any_data&, const _Any_data&, 8657: _Manager_operation); 8657: 8657: _Any_data _M_functor; 8657: _Manager_type _M_manager; 8657: }; 8657: 8657: template 8657: class _Function_handler; 8657: 8657: template 8657: class _Function_handler<_Res(_ArgTypes...), _Functor> 8657: : public _Function_base::_Base_manager<_Functor> 8657: { 8657: typedef _Function_base::_Base_manager<_Functor> _Base; 8657: 8657: public: 8657: static _Res 8657: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8657: { 8657: return (*_Base::_M_get_pointer(__functor))( 8657: std::forward<_ArgTypes>(__args)...); 8657: } 8657: }; 8657: 8657: template 8657: class _Function_handler 8657: : public _Function_base::_Base_manager<_Functor> 8657: { 8657: typedef _Function_base::_Base_manager<_Functor> _Base; 8657: 8657: public: 8657: static void 8657: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8657: { 8657: (*_Base::_M_get_pointer(__functor))( 8657: std::forward<_ArgTypes>(__args)...); 8657: } 8657: }; 8657: 8657: template 8657: class _Function_handler<_Res(_ArgTypes...), _Member _Class::*> 8657: : public _Function_handler 8657: { 8657: typedef _Function_handler 8657: _Base; 8657: 8657: public: 8657: static _Res 8657: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8657: { 8657: return std::__invoke(_Base::_M_get_pointer(__functor)->__value, 8657: std::forward<_ArgTypes>(__args)...); 8657: } 8657: }; 8657: 8657: template 8657: class _Function_handler 8657: : public _Function_base::_Base_manager< 8657: _Simple_type_wrapper< _Member _Class::* > > 8657: { 8657: typedef _Member _Class::* _Functor; 8657: typedef _Simple_type_wrapper<_Functor> _Wrapper; 8657: typedef _Function_base::_Base_manager<_Wrapper> _Base; 8657: 8657: public: 8657: static bool 8657: _M_manager(_Any_data& __dest, const _Any_data& __source, 8657: _Manager_operation __op) 8657: { 8657: switch (__op) 8657: { 8657: 8657: case __get_type_info: 8657: __dest._M_access() = &typeid(_Functor); 8657: break; 8657: 8657: case __get_functor_ptr: 8657: __dest._M_access<_Functor*>() = 8657: &_Base::_M_get_pointer(__source)->__value; 8657: break; 8657: 8657: default: 8657: _Base::_M_manager(__dest, __source, __op); 8657: } 8657: return false; 8657: } 8657: 8657: static void 8657: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8657: { 8657: std::__invoke(_Base::_M_get_pointer(__functor)->__value, 8657: std::forward<_ArgTypes>(__args)...); 8657: } 8657: }; 8657: 8657: template 8657: using __check_func_return_type 8657: = __or_, is_same<_From, _To>, is_convertible<_From, _To>>; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: class function<_Res(_ArgTypes...)> 8657: : public _Maybe_unary_or_binary_function<_Res, _ArgTypes...>, 8657: private _Function_base 8657: { 8657: template::type> 8657: struct _Callable : __check_func_return_type<_Res2, _Res> { }; 8657: 8657: 8657: 8657: template 8657: struct _Callable : false_type { }; 8657: 8657: template 8657: using _Requires = typename enable_if<_Cond::value, _Tp>::type; 8657: 8657: public: 8657: typedef _Res result_type; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: function() noexcept 8657: : _Function_base() { } 8657: 8657: 8657: 8657: 8657: 8657: function(nullptr_t) noexcept 8657: : _Function_base() { } 8657: # 413 "/usr/include/c++/8/bits/std_function.h" 3 8657: function(const function& __x); 8657: # 422 "/usr/include/c++/8/bits/std_function.h" 3 8657: function(function&& __x) noexcept : _Function_base() 8657: { 8657: __x.swap(*this); 8657: } 8657: # 443 "/usr/include/c++/8/bits/std_function.h" 3 8657: template>, void>, 8657: typename = _Requires<_Callable<_Functor>, void>> 8657: function(_Functor); 8657: # 460 "/usr/include/c++/8/bits/std_function.h" 3 8657: function& 8657: operator=(const function& __x) 8657: { 8657: function(__x).swap(*this); 8657: return *this; 8657: } 8657: # 478 "/usr/include/c++/8/bits/std_function.h" 3 8657: function& 8657: operator=(function&& __x) noexcept 8657: { 8657: function(std::move(__x)).swap(*this); 8657: return *this; 8657: } 8657: # 492 "/usr/include/c++/8/bits/std_function.h" 3 8657: function& 8657: operator=(nullptr_t) noexcept 8657: { 8657: if (_M_manager) 8657: { 8657: _M_manager(_M_functor, _M_functor, __destroy_functor); 8657: _M_manager = nullptr; 8657: _M_invoker = nullptr; 8657: } 8657: return *this; 8657: } 8657: # 520 "/usr/include/c++/8/bits/std_function.h" 3 8657: template 8657: _Requires<_Callable::type>, function&> 8657: operator=(_Functor&& __f) 8657: { 8657: function(std::forward<_Functor>(__f)).swap(*this); 8657: return *this; 8657: } 8657: 8657: 8657: template 8657: function& 8657: operator=(reference_wrapper<_Functor> __f) noexcept 8657: { 8657: function(__f).swap(*this); 8657: return *this; 8657: } 8657: # 546 "/usr/include/c++/8/bits/std_function.h" 3 8657: void swap(function& __x) noexcept 8657: { 8657: std::swap(_M_functor, __x._M_functor); 8657: std::swap(_M_manager, __x._M_manager); 8657: std::swap(_M_invoker, __x._M_invoker); 8657: } 8657: # 563 "/usr/include/c++/8/bits/std_function.h" 3 8657: explicit operator bool() const noexcept 8657: { return !_M_empty(); } 8657: # 576 "/usr/include/c++/8/bits/std_function.h" 3 8657: _Res operator()(_ArgTypes... __args) const; 8657: # 589 "/usr/include/c++/8/bits/std_function.h" 3 8657: const type_info& target_type() const noexcept; 8657: # 602 "/usr/include/c++/8/bits/std_function.h" 3 8657: template _Functor* target() noexcept; 8657: 8657: template const _Functor* target() const noexcept; 8657: 8657: 8657: 8657: private: 8657: using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...); 8657: _Invoker_type _M_invoker; 8657: }; 8657: # 651 "/usr/include/c++/8/bits/std_function.h" 3 8657: template 8657: function<_Res(_ArgTypes...)>:: 8657: function(const function& __x) 8657: : _Function_base() 8657: { 8657: if (static_cast(__x)) 8657: { 8657: __x._M_manager(_M_functor, __x._M_functor, __clone_functor); 8657: _M_invoker = __x._M_invoker; 8657: _M_manager = __x._M_manager; 8657: } 8657: } 8657: 8657: template 8657: template 8657: function<_Res(_ArgTypes...)>:: 8657: function(_Functor __f) 8657: : _Function_base() 8657: { 8657: typedef _Function_handler<_Res(_ArgTypes...), _Functor> _My_handler; 8657: 8657: if (_My_handler::_M_not_empty_function(__f)) 8657: { 8657: _My_handler::_M_init_functor(_M_functor, std::move(__f)); 8657: _M_invoker = &_My_handler::_M_invoke; 8657: _M_manager = &_My_handler::_M_manager; 8657: } 8657: } 8657: 8657: template 8657: _Res 8657: function<_Res(_ArgTypes...)>:: 8657: operator()(_ArgTypes... __args) const 8657: { 8657: if (_M_empty()) 8657: __throw_bad_function_call(); 8657: return _M_invoker(_M_functor, std::forward<_ArgTypes>(__args)...); 8657: } 8657: 8657: 8657: template 8657: const type_info& 8657: function<_Res(_ArgTypes...)>:: 8657: target_type() const noexcept 8657: { 8657: if (_M_manager) 8657: { 8657: _Any_data __typeinfo_result; 8657: _M_manager(__typeinfo_result, _M_functor, __get_type_info); 8657: return *__typeinfo_result._M_access(); 8657: } 8657: else 8657: return typeid(void); 8657: } 8657: 8657: template 8657: template 8657: _Functor* 8657: function<_Res(_ArgTypes...)>:: 8657: target() noexcept 8657: { 8657: const function* __const_this = this; 8657: const _Functor* __func = __const_this->template target<_Functor>(); 8657: return const_cast<_Functor*>(__func); 8657: } 8657: 8657: template 8657: template 8657: const _Functor* 8657: function<_Res(_ArgTypes...)>:: 8657: target() const noexcept 8657: { 8657: if (typeid(_Functor) == target_type() && _M_manager) 8657: { 8657: _Any_data __ptr; 8657: _M_manager(__ptr, _M_functor, __get_functor_ptr); 8657: return __ptr._M_access(); 8657: } 8657: else 8657: return nullptr; 8657: } 8657: # 743 "/usr/include/c++/8/bits/std_function.h" 3 8657: template 8657: inline bool 8657: operator==(const function<_Res(_Args...)>& __f, nullptr_t) noexcept 8657: { return !static_cast(__f); } 8657: 8657: 8657: template 8657: inline bool 8657: operator==(nullptr_t, const function<_Res(_Args...)>& __f) noexcept 8657: { return !static_cast(__f); } 8657: # 761 "/usr/include/c++/8/bits/std_function.h" 3 8657: template 8657: inline bool 8657: operator!=(const function<_Res(_Args...)>& __f, nullptr_t) noexcept 8657: { return static_cast(__f); } 8657: 8657: 8657: template 8657: inline bool 8657: operator!=(nullptr_t, const function<_Res(_Args...)>& __f) noexcept 8657: { return static_cast(__f); } 8657: # 782 "/usr/include/c++/8/bits/std_function.h" 3 8657: template 8657: inline void 8657: swap(function<_Res(_Args...)>& __x, function<_Res(_Args...)>& __y) noexcept 8657: { __x.swap(__y); } 8657: 8657: 8657: } 8657: # 60 "/usr/include/c++/8/functional" 2 3 8657: # 68 "/usr/include/c++/8/functional" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 86 "/usr/include/c++/8/functional" 3 8657: template::value> 8657: class _Mem_fn_base 8657: : public _Mem_fn_traits<_MemFunPtr>::__maybe_type 8657: { 8657: using _Traits = _Mem_fn_traits<_MemFunPtr>; 8657: 8657: using _Arity = typename _Traits::__arity; 8657: using _Varargs = typename _Traits::__vararg; 8657: 8657: template 8657: friend struct _Bind_check_arity; 8657: 8657: _MemFunPtr _M_pmf; 8657: 8657: public: 8657: 8657: using result_type = typename _Traits::__result_type; 8657: 8657: explicit constexpr 8657: _Mem_fn_base(_MemFunPtr __pmf) noexcept : _M_pmf(__pmf) { } 8657: 8657: template 8657: auto 8657: operator()(_Args&&... __args) const 8657: noexcept(noexcept( 8657: std::__invoke(_M_pmf, std::forward<_Args>(__args)...))) 8657: -> decltype(std::__invoke(_M_pmf, std::forward<_Args>(__args)...)) 8657: { return std::__invoke(_M_pmf, std::forward<_Args>(__args)...); } 8657: }; 8657: 8657: 8657: template 8657: class _Mem_fn_base<_MemObjPtr, false> 8657: { 8657: using _Arity = integral_constant; 8657: using _Varargs = false_type; 8657: 8657: template 8657: friend struct _Bind_check_arity; 8657: 8657: _MemObjPtr _M_pm; 8657: 8657: public: 8657: explicit constexpr 8657: _Mem_fn_base(_MemObjPtr __pm) noexcept : _M_pm(__pm) { } 8657: 8657: template 8657: auto 8657: operator()(_Tp&& __obj) const 8657: noexcept(noexcept(std::__invoke(_M_pm, std::forward<_Tp>(__obj)))) 8657: -> decltype(std::__invoke(_M_pm, std::forward<_Tp>(__obj))) 8657: { return std::__invoke(_M_pm, std::forward<_Tp>(__obj)); } 8657: }; 8657: 8657: template 8657: struct _Mem_fn; 8657: 8657: template 8657: struct _Mem_fn<_Res _Class::*> 8657: : _Mem_fn_base<_Res _Class::*> 8657: { 8657: using _Mem_fn_base<_Res _Class::*>::_Mem_fn_base; 8657: }; 8657: # 158 "/usr/include/c++/8/functional" 3 8657: template 8657: inline _Mem_fn<_Tp _Class::*> 8657: mem_fn(_Tp _Class::* __pm) noexcept 8657: { 8657: return _Mem_fn<_Tp _Class::*>(__pm); 8657: } 8657: # 173 "/usr/include/c++/8/functional" 3 8657: template 8657: struct is_bind_expression 8657: : public false_type { }; 8657: # 184 "/usr/include/c++/8/functional" 3 8657: template 8657: struct is_placeholder 8657: : public integral_constant 8657: { }; 8657: # 199 "/usr/include/c++/8/functional" 3 8657: template struct _Placeholder { }; 8657: 8657: 8657: 8657: 8657: 8657: namespace placeholders 8657: { 8657: 8657: 8657: 8657: 8657: extern const _Placeholder<1> _1; 8657: extern const _Placeholder<2> _2; 8657: extern const _Placeholder<3> _3; 8657: extern const _Placeholder<4> _4; 8657: extern const _Placeholder<5> _5; 8657: extern const _Placeholder<6> _6; 8657: extern const _Placeholder<7> _7; 8657: extern const _Placeholder<8> _8; 8657: extern const _Placeholder<9> _9; 8657: extern const _Placeholder<10> _10; 8657: extern const _Placeholder<11> _11; 8657: extern const _Placeholder<12> _12; 8657: extern const _Placeholder<13> _13; 8657: extern const _Placeholder<14> _14; 8657: extern const _Placeholder<15> _15; 8657: extern const _Placeholder<16> _16; 8657: extern const _Placeholder<17> _17; 8657: extern const _Placeholder<18> _18; 8657: extern const _Placeholder<19> _19; 8657: extern const _Placeholder<20> _20; 8657: extern const _Placeholder<21> _21; 8657: extern const _Placeholder<22> _22; 8657: extern const _Placeholder<23> _23; 8657: extern const _Placeholder<24> _24; 8657: extern const _Placeholder<25> _25; 8657: extern const _Placeholder<26> _26; 8657: extern const _Placeholder<27> _27; 8657: extern const _Placeholder<28> _28; 8657: extern const _Placeholder<29> _29; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct is_placeholder<_Placeholder<_Num> > 8657: : public integral_constant 8657: { }; 8657: 8657: template 8657: struct is_placeholder > 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: 8657: template 8657: using _Safe_tuple_element_t 8657: = typename enable_if<(__i < tuple_size<_Tuple>::value), 8657: tuple_element<__i, _Tuple>>::type::type; 8657: # 275 "/usr/include/c++/8/functional" 3 8657: template::value, 8657: bool _IsPlaceholder = (is_placeholder<_Arg>::value > 0)> 8657: class _Mu; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: class _Mu, false, false> 8657: { 8657: pu[ 93%] Building CXX object templates/tests/CMakeFiles/testfilters_exec.dir/testfilters_exec_autogen/mocs_compilation.cpp.o blic: 8657: 8657: 8657: 8657: 8657: template 8657: _Tp& 8657: operator()(_CVRef& __arg, _Tuple&) const volatile 8657: { return __arg.get(); } 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: class _Mu<_Arg, true, false> 8657: { 8657: public: 8657: template 8657: auto 8657: operator()(_CVArg& __arg, 8657: tuple<_Args...>& __tuple) const volatile 8657: -> decltype(__arg(declval<_Args>()...)) 8657: { 8657: 8657: typedef typename _Build_index_tuple::__type 8657: _Indexes; 8657: return this->__call(__arg, __tuple, _Indexes()); 8657: } 8657: 8657: private: 8657: 8657: 8657: template 8657: auto 8657: __call(_CVArg& __arg, tuple<_Args...>& __tuple, 8657: const _Index_tuple<_Indexes...>&) const volatile 8657: -> decltype(__arg(declval<_Args>()...)) 8657: { 8657: return __arg(std::get<_Indexes>(std::move(__tuple))...); 8657: } 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: class _Mu<_Arg, false, true> 8657: { 8657: public: 8657: template 8657: _Safe_tuple_element_t<(is_placeholder<_Arg>::value - 1), _Tuple>&& 8657: operator()(const volatile _Arg&, _Tuple& __tuple) const volatile 8657: { 8657: return 8657: ::std::get<(is_placeholder<_Arg>::value - 1)>(std::move(__tuple)); 8657: } 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: class _Mu<_Arg, false, false> 8657: { 8657: public: 8657: template 8657: _CVArg&& 8657: operator()(_CVArg&& __arg, _Tuple&) const volatile 8657: { return std::forward<_CVArg>(__arg); } 8657: }; 8657: 8657: 8657: template 8657: inline auto 8657: __volget(volatile tuple<_Tp...>& __tuple) 8657: -> __tuple_element_t<_Ind, tuple<_Tp...>> volatile& 8657: { return std::get<_Ind>(const_cast&>(__tuple)); } 8657: 8657: 8657: template 8657: inline auto 8657: __volget(const volatile tuple<_Tp...>& __tuple) 8657: -> __tuple_element_t<_Ind, tuple<_Tp...>> const volatile& 8657: { return std::get<_Ind>(const_cast&>(__tuple)); } 8657: 8657: 8657: template 8657: struct _Bind; 8657: 8657: template 8657: class _Bind<_Functor(_Bound_args...)> 8657: : public _Weak_result_type<_Functor> 8657: { 8657: typedef typename _Build_index_tuple::__type 8657: _Bound_indexes; 8657: 8657: _Functor _M_f; 8657: tuple<_Bound_args...> _M_bound_args; 8657: 8657: 8657: template 8657: _Result 8657: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 8657: { 8657: return std::__invoke(_M_f, 8657: _Mu<_Bound_args>()(std::get<_Indexes>(_M_bound_args), __args)... 8657: ); 8657: } 8657: 8657: 8657: template 8657: _Result 8657: __call_c(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 8657: { 8657: return std::__invoke(_M_f, 8657: _Mu<_Bound_args>()(std::get<_Indexes>(_M_bound_args), __args)... 8657: ); 8657: } 8657: 8657: 8657: template 8657: _Result 8657: __call_v(tuple<_Args...>&& __args, 8657: _Index_tuple<_Indexes...>) volatile 8657: { 8657: return std::__invoke(_M_f, 8657: _Mu<_Bound_args>()(__volget<_Indexes>(_M_bound_args), __args)... 8657: ); 8657: } 8657: 8657: 8657: template 8657: _Result 8657: __call_c_v(tuple<_Args...>&& __args, 8657: _Incd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testfilters_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testfilters_exec.dir/testfilters_exec_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/templates/tests/testfilters_exec_autogen/mocs_compilation.cpp dex_tuple<_Indexes...>) const volatile 8657: { 8657: return std::__invoke(_M_f, 8657: _Mu<_Bound_args>()(__volget<_Indexes>(_M_bound_args), __args)... 8657: ); 8657: } 8657: 8657: template 8657: using _Mu_type = decltype( 8657: _Mu::type>()( 8657: std::declval<_BoundArg&>(), std::declval<_CallArgs&>()) ); 8657: 8657: template 8657: using _Res_type_impl 8657: = typename result_of< _Fn&(_Mu_type<_BArgs, _CallArgs>&&...) >::type; 8657: 8657: template 8657: using _Res_type = _Res_type_impl<_Functor, _CallArgs, _Bound_args...>; 8657: 8657: template 8657: using __dependent = typename 8657: enable_if::value+1), _Functor>::type; 8657: 8657: template class __cv_quals> 8657: using _Res_type_cv = _Res_type_impl< 8657: typename __cv_quals<__dependent<_CallArgs>>::type, 8657: _CallArgs, 8657: typename __cv_quals<_Bound_args>::type...>; 8657: 8657: public: 8657: template 8657: explicit _Bind(const _Functor& __f, _Args&&... __args) 8657: : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...) 8657: { } 8657: 8657: template 8657: explicit _Bind(_Functor&& __f, _Args&&... __args) 8657: : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...) 8657: { } 8657: 8657: _Bind(const _Bind&) = default; 8657: 8657: _Bind(_Bind&& __b) 8657: : _M_f(std::move(__b._M_f)), _M_bound_args(std::move(__b._M_bound_args)) 8657: { } 8657: 8657: 8657: template>> 8657: _Result 8657: operator()(_Args&&... __args) 8657: { 8657: return this->__call<_Result>( 8657: std::forward_as_tuple(std::forward<_Args>(__args)...), 8657: _Bound_indexes()); 8657: } 8657: 8657: 8657: template, add_const>> 8657: _Result 8657: operator()(_Args&&... __args) const 8657: { 8657: return this->__call_c<_Result>( 8657: std::forward_as_tuple(std::forward<_Args>(__args)...), 8657: _Bound_indexes()); 8657: } 8657: # 505 "/usr/include/c++/8/functional" 3 8657: template, add_volatile>> 8657: 8657: _Result 8657: operator()(_Args&&... __args) volatile 8657: { 8657: return this->__call_v<_Result>( 8657: std::forward_as_tuple(std::forward<_Args>(__args)...), 8657: _Bound_indexes()); 8657: } 8657: 8657: 8657: template, add_cv>> 8657: 8657: _Result 8657: operator()(_Args&&... __args) const volatile 8657: { 8657: return this->__call_c_v<_Result>( 8657: std::forward_as_tuple(std::forward<_Args>(__args)...), 8657: _Bound_indexes()); 8657: } 8657: }; 8657: 8657: 8657: template 8657: struct _Bind_result; 8657: 8657: template 8657: class _Bind_result<_Result, _Functor(_Bound_args...)> 8657: { 8657: typedef typename _Build_index_tuple::__type 8657: _Bound_indexes; 8657: 8657: _Functor _M_f; 8657: tuple<_Bound_args...> _M_bound_args; 8657: 8657: 8657: template 8657: using __enable_if_void 8657: = typename enable_if{}>::type; 8657: 8657: template 8657: using __disable_if_void 8657: = typename enable_if{}, _Result>::type; 8657: 8657: 8657: template 8657: __disable_if_void<_Res> 8657: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 8657: { 8657: return std::__invoke(_M_f, _Mu<_Bound_args>() 8657: (std::get<_Indexes>(_M_bound_args), __args)...); 8657: } 8657: 8657: 8657: template 8657: __enable_if_void<_Res> 8657: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 8657: { 8657: std::__invoke(_M_f, _Mu<_Bound_args>() 8657: (std::get<_Indexes>(_M_bound_args), __args)...); 8657: } 8657: 8657: 8657: template 8657: __disable_if_void<_Res> 8657: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 8657: { 8657: return std::__invoke(_M_f, _Mu<_Bound_args>() 8657: (std::get<_Indexes>(_M_bound_args), __args)...); 8657: } 8657: 8657: 8657: template 8657: __enable_if_void<_Res> 8657: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 8657: { 8657: std::__invoke(_M_f, _Mu<_Bound_args>() 8657: (std::get<_Indexes>(_M_bound_args), __args)...); 8657: } 8657: 8657: 8657: template 8657: __disable_if_void<_Res> 8657: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) volatile 8657: { 8657: return std::__invoke(_M_f, _Mu<_Bound_args>() 8657: (__volget<_Indexes>(_M_bound_args), __args)...); 8657: } 8657: 8657: 8657: template 8657: __enable_if_void<_Res> 8657: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) volatile 8657: { 8657: std::__invoke(_M_f, _Mu<_Bound_args>() 8657: (__volget<_Indexes>(_M_bound_args), __args)...); 8657: } 8657: 8657: 8657: template 8657: __disable_if_void<_Res> 8657: __call(tuple<_Args...>&& __args, 8657: _Index_tuple<_Indexes...>) const volatile 8657: { 8657: return std::__invoke(_M_f, _Mu<_Bound_args>() 8657: (__volget<_Indexes>(_M_bound_args), __args)...); 8657: } 8657: 8657: 8657: template 8657: __enable_if_void<_Res> 8657: __call(tuple<_Args...>&& __args, 8657: _Index_tuple<_Indexes...>) const volatile 8657: { 8657: std::__invoke(_M_f, _Mu<_Bound_args>() 8657: (__volget<_Indexes>(_M_bound_args), __args)...); 8657: } 8657: 8657: public: 8657: typedef _Result result_type; 8657: 8657: template 8657: explicit _Bind_result(const _Functor& __f, _Args&&... __args) 8657: : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...) 8657: { } 8657: 8657: template 8657: explicit _Bind_result(_Functor&& __f, _Args&&... __args) 8657: : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...) 8657: { } 8657: 8657: _Bind_result(const _Bind_result&) = default; 8657: 8657: _Bind_result(_Bind_result&& __b) 8657: : _M_f(std::move(__b._M_f)), _M_bound_args(std::move(__b._M_bound_args)) 8657: { } 8657: 8657: 8657: template 8657: result_type 8657: operator()(_Args&&... __args) 8657: { 8657: return this->__call<_Result>( 8657: std::forward_as_tuple(std::forward<_Args>(__args)...), 8657: _Bound_indexes()); 8657: } 8657: 8657: 8657: template 8657: result_type 8657: operator()(_Args&&... __args) const 8657: { 8657: return this->__call<_Result>( 8657: std::forward_as_tuple(std::forward<_Args>(__args)...), 8657: _Bound_indexes()); 8657: } 8657: 8657: 8657: template 8657: 8657: result_type 8657: operator()(_Args&&... __args) volatile 8657: { 8657: return this->__call<_Result>( 8657: std::forward_as_tuple(std::forward<_Args>(__args)...), 8657: _Bound_indexes()); 8657: } 8657: 8657: 8657: template 8657: 8657: result_type 8657: operator()(_Args&&... __args) const volatile 8657: { 8657: return this->__call<_Result>( 8657: std::forward_as_tuple(std::forward<_Args>(__args)...), 8657: _Bound_indexes()); 8657: } 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct is_bind_expression<_Bind<_Signature> > 8657: : public true_type { }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct is_bind_expression > 8657: : public true_type { }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct is_bind_expression > 8657: : public true_type { }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct is_bind_expression> 8657: : public true_type { }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct is_bind_expression<_Bind_result<_Result, _Signature>> 8657: : public true_type { }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct is_bind_expression> 8657: : public true_type { }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct is_bind_expression> 8657: : public true_type { }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct is_bind_expression> 8657: : public true_type { }; 8657: 8657: template 8657: struct _Bind_check_arity { }; 8657: 8657: template 8657: struct _Bind_check_arity<_Ret (*)(_Args...), _BoundArgs...> 8657: { 8657: static_assert(sizeof...(_BoundArgs) == sizeof...(_Args), 8657: "Wrong number of arguments for function"); 8657: }; 8657: 8657: template 8657: struct _Bind_check_arity<_Ret (*)(_Args......), _BoundArgs...> 8657: { 8657: static_assert(sizeof...(_BoundArgs) >= sizeof...(_Args), 8657: "Wrong number of arguments for function"); 8657: }; 8657: 8657: template 8657: struct _Bind_check_arity<_Tp _Class::*, _BoundArgs...> 8657: { 8657: using _Arity = typename _Mem_fn<_Tp _Class::*>::_Arity; 8657: using _Varargs = typename _Mem_fn<_Tp _Class::*>::_Varargs; 8657: static_assert(_Varargs::value 8657: ? sizeof...(_BoundArgs) >= _Arity::value + 1 8657: : sizeof...(_BoundArgs) == _Arity::value + 1, 8657: "Wrong number of arguments for pointer-to-member"); 8657: }; 8657: 8657: 8657: 8657: 8657: template::type> 8657: using __is_socketlike = __or_, is_enum<_Tp2>>; 8657: 8657: template 8657: struct _Bind_helper 8657: : _Bind_check_arity::type, _BoundArgs...> 8657: { 8657: typedef typename decay<_Func>::type __func_type; 8657: typedef _Bind<__func_type(typename decay<_BoundArgs>::type...)> type; 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: struct _Bind_helper 8657: { }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline typename 8657: _Bind_helper<__is_socketlike<_Func>::value, _Func, _BoundArgs...>::type 8657: bind(_Func&& __f, _BoundArgs&&... __args) 8657: { 8657: typedef _Bind_helper __helper_type; 8657: return typename __helper_type::type(std::forward<_Func>(__f), 8657: std::forward<_BoundArgs>(__args)...); 8657: } 8657: 8657: template 8657: struct _Bindres_helper 8657: : _Bind_check_arity::type, _BoundArgs...> 8657: { 8657: typedef typename decay<_Func>::type __functor_type; 8657: typedef _Bind_result<_Result, 8657: __functor_type(typename decay<_BoundArgs>::type...)> 8657: type; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline 8657: typename _Bindres_helper<_Result, _Func, _BoundArgs...>::type 8657: bind(_Func&& __f, _BoundArgs&&... __args) 8657: { 8657: typedef _Bindres_helper<_Result, _Func, _BoundArgs...> __helper_type; 8657: return typename __helper_type::type(std::forward<_Func>(__f), 8657: std::forward<_BoundArgs>(__args)...); 8657: } 8657: # 1192 "/usr/include/c++/8/functional" 3 8657: 8657: } 8657: # 55 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: # 69 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 3 4 8657: template inline bool qMapLessThanKey(const Key &key1, const Key &key2) 8657: { 8657: return key1 < key2; 8657: } 8657: 8657: template inline bool qMapLessThanKey(const Ptr *key1, const Ptr *key2) 8657: { 8657: return std::less()(key1, key2); 8657: } 8657: 8657: struct QMapDataBase; 8657: template struct QMapData; 8657: 8657: struct __attribute__((visibility("default"))) QMapNodeBase 8657: { 8657: quintptr p; 8657: QMapNodeBase *left; 8657: QMapNodeBase *right; 8657: 8657: enum Color { Red = 0, Black = 1 }; 8657: enum { Mask = 3 }; 8657: 8657: const QMapNodeBase *nextNode() const; 8657: QMapNodeBase *nextNode() { return const_cast(const_cast(this)->nextNode()); } 8657: const QMapNodeBase *previousNode() const; 8657: QMapNodeBase *previousNode() { return const_cast(const_cast(this)->previousNode()); } 8657: 8657: Color color() const { return Color(p & 1); } 8657: void setColor(Color c) { if (c == Black) p |= Black; else p &= ~Black; } 8657: QMapNodeBase *parent() const { return reinterpret_cast(p & ~Mask); } 8657: void setParent(QMapNodeBase *pp) { p = (p & Mask) | quintptr(pp); } 8657: 8657: template 8657: static typename std::enable_if::isComplex>::type 8657: callDestructorIfNecessary(T &t) noexcept { (void)t;; t.~T(); } 8657: template 8657: static typename std::enable_if::isComplex>::type 8657: callDestructorIfNecessary(T &) noexcept {} 8657: }; 8657: 8657: template 8657: struct QMapNode : public QMapNodeBase 8657: { 8657: Key key; 8657: T value; 8657: 8657: inline QMapNode *leftNode() const { return static_cast(left); } 8657: inline QMapNode *rightNode() const { return static_cast(right); } 8657: 8657: inline const QMapNode *nextNode() const { return static_cast(QMapNodeBase::nextNode()); } 8657: inline const QMapNode *previousNode() const { return static_cast(QMapNodeBase::previousNode()); } 8657: inline QMapNode *nextNode() { return static_cast(QMapNodeBase::nextNode()); } 8657: inline QMapNode *previousNode() { return static_cast(QMapNodeBase::previousNode()); } 8657: 8657: QMapNode *copy(QMapData *d) const; 8657: 8657: void destroySubTree() 8657: { 8657: callDestructorIfNecessary(key); 8657: callDestructorIfNecessary(value); 8657: doDestroySubTree(std::integral_constant::isComplex || QTypeInfo::isComplex>()); 8657: } 8657: 8657: QMapNode *lowerBound(const Key &key); 8657: QMapNode *upperBound(const Key &key); 8657: 8657: private: 8657: void doDestroySubTree(std::false_type) {} 8657: void doDestroySubTree(std::true_type) 8657: { 8657: if (left) 8657: leftNode()->destroySubTree(); 8657: if (right) 8657: rightNode()->destroySubTree(); 8657: } 8657: 8657: QMapNode() = delete; 8657: QMapNode(const QMapNode &) = delete; QMapNode &operator=(const QMapNode &) = delete; 8657: }; 8657: 8657: template 8657: inline QMapNode *QMapNode::lowerBound(const Key &akey) 8657: { 8657: QMapNode *n = this; 8657: QMapNode *lastNode = nullptr; 8657: while (n) { 8657: if (!qMapLessThanKey(n->key, akey)) { 8657: lastNode = n; 8657: n = n->leftNode(); 8657: } else { 8657: n = n->rightNode(); 8657: } 8657: } 8657: return lastNode; 8657: } 8657: 8657: template 8657: inline QMapNode *QMapNode::upperBound(const Key &akey) 8657: { 8657: QMapNode *n = this; 8657: QMapNode *lastNode = nullptr; 8657: while (n) { 8657: if (qMapLessThanKey(akey, n->key)) { 8657: lastNode = n; 8657: n = n->leftNode(); 8657: } else { 8657: n = n->rightNode(); 8657: } 8657: } 8657: return lastNode; 8657: } 8657: 8657: 8657: 8657: struct __attribute__((visibility("default"))) QMapDataBase 8657: { 8657: QtPrivate::RefCount ref; 8657: int size; 8657: QMapNodeBase header; 8657: QMapNodeBase *mostLeftNode; 8657: 8657: void rotateLeft(QMapNodeBase *x); 8657: void rotateRight(QMapNodeBase *x); 8657: void rebalance(QMapNodeBase *x); 8657: void freeNodeAndRebalance(QMapNodeBase *z); 8657: void recalcMostLeftNode(); 8657: 8657: QMapNodeBase *createNode(int size, int alignment, QMapNodeBase *parent, bool left); 8657: void freeTree(QMapNodeBase *root, int alignment); 8657: 8657: static const QMapDataBase shared_null; 8657: 8657: static QMapDataBase *createData(); 8657: static void freeData(QMapDataBase *d); 8657: }; 8657: 8657: template 8657: struct QMapData : public QMapDataBase 8657: { 8657: typedef QMapNode Node; 8657: 8657: Node *root() const { return static_cast(header.left); } 8657: 8657: 8657: 8657: const Node *end() const { return reinterpret_cast(&header); } 8657: Node *end() { return reinterpret_cast(&header); } 8657: const Node *begin() const { if (root()) return static_cast(mostLeftNode); return end(); } 8657: Node *begin() { if (root()) return static_cast(mostLeftNode); return end(); } 8657: 8657: void deleteNode(Node *z); 8657: Node *findNode(const Key &akey) const; 8657: void nodeRange(const Key &akey, Node **firstNode, Node **lastNode); 8657: 8657: Node *createNode(const Key &k, const T &v, Node *parent = nullptr, bool left = false) 8657: { 8657: Node *n = static_cast(QMapDataBase::createNode(sizeof(Node), alignof(Node), 8657: parent, left)); 8657: try { 8657: new (&n->key) Key(k); 8657: try { 8657: new (&n->value) T(v); 8657: } catch (...) { 8657: n->key.~Key(); 8657: throw; 8657: } 8657: } catch (...) { 8657: QMapDataBase::freeNodeAndRebalance(n); 8657: throw; 8657: } 8657: return n; 8657: } 8657: 8657: static QMapData *create() { 8657: return static_cast(createData()); 8657: } 8657: 8657: void destroy() { 8657: if (root()) { 8657: root()->destroySubTree(); 8657: freeTree(header.left, alignof(Node)); 8657: } 8657: freeData(this); 8657: } 8657: }; 8657: 8657: template 8657: QMapNode *QMapNode::copy(QMapData *d) const 8657: { 8657: QMapNode *n = d->createNode(key, value); 8657: n->setColor(color()); 8657: if (left) { 8657: n->left = leftNode()->copy(d); 8657: n->left->setParent(n); 8657: } else { 8657: n->left = nullptr; 8657: } 8657: if (right) { 8657: n->right = rightNode()->copy(d); 8657: n->right->setParent(n); 8657: } else { 8657: n->right = nullptr; 8657: } 8657: return n; 8657: } 8657: 8657: template 8657: void QMapData::deleteNode(QMapNode *z) 8657: { 8657: QMapNodeBase::callDestructorIfNecessary(z->key); 8657: QMapNodeBase::callDestructorIfNecessary(z->value); 8657: freeNodeAndRebalance(z); 8657: } 8657: 8657: template 8657: QMapNode *QMapData::findNode(const Key &akey) const 8657: { 8657: if (Node *r = root()) { 8657: Node *lb = r->lowerBound(akey); 8657: if (lb && !qMapLessThanKey(akey, lb->key)) 8657: return lb; 8657: } 8657: return nullptr; 8657: } 8657: 8657: 8657: template 8657: void QMapData::nodeRange(const Key &akey, QMapNode **firstNode, QMapNode **lastNode) 8657: { 8657: Node *n = root(); 8657: Node *l = end(); 8657: while (n) { 8657: if (qMapLessThanKey(akey, n->key)) { 8657: l = n; 8657: n = n->leftNode(); 8657: } else if (qMapLessThanKey(n->key, akey)) { 8657: n = n->rightNode(); 8657: } else { 8657: *firstNode = n->leftNode() ? n->leftNode()->lowerBound(akey) : nullptr; 8657: if (!*firstNode) 8657: *firstNode = n; 8657: *lastNode = n->rightNode() ? n->rightNode()->upperBound(akey) : nullptr; 8657: if (!*lastNode) 8657: *lastNode = l; 8657: return; 8657: } 8657: } 8657: *firstNode = *lastNode = l; 8657: } 8657: 8657: 8657: template 8657: class QMap 8657: { 8657: typedef QMapNode Node; 8657: 8657: QMapData *d; 8657: 8657: public: 8657: inline QMap() noexcept : d(static_cast *>(const_cast(&QMapDataBase::shared_null))) { } 8657: 8657: inline QMap(std::initializer_list > list) 8657: : d(static_cast *>(const_cast(&QMapDataBase::shared_null))) 8657: { 8657: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8657: insert(it->first, it->second); 8657: } 8657: 8657: QMap(const QMap &other); 8657: 8657: inline ~QMap() { if (!d->ref.deref()) d->destroy(); } 8657: 8657: QMap &operator=(const QMap &other); 8657: 8657: inline QMap(QMap &&other) noexcept 8657: : d(other.d) 8657: { 8657: other.d = static_cast *>( 8657: const_cast(&QMapDataBase::shared_null)); 8657: } 8657: 8657: inline QMap &operator=(QMap &&other) noexcept 8657: { QMap moved(std::move(other)); swap(moved); return *this; } 8657: 8657: inline void swap(QMap &other) noexcept { qSwap(d, other.d); } 8657: explicit QMap(const typename std::map &other); 8657: std::map toStdMap() const; 8657: 8657: bool operator==(const QMap &other) const; 8657: inline bool operator!=(const QMap &other) const { return !(*this == other); } 8657: 8657: inline int size() const { return d->size; } 8657: 8657: inline bool isEmpty() const { return d->size == 0; } 8657: 8657: inline void detach() { if (d->ref.isShared()) detach_helper(); } 8657: inline bool isDetached() const { return !d->ref.isShared(); } 8657: 8657: inline void setSharable(bool sharable) 8657: { 8657: if (sharable == d->ref.isSharable()) 8657: return; 8657: if (!sharable) 8657: detach(); 8657: 8657: d->ref.setSharable(sharable); 8657: } 8657: 8657: inline bool isSharedWith(const QMap &other) const { return d == other.d; } 8657: 8657: void clear(); 8657: 8657: int remove(const Key &key); 8657: T take(const Key &key); 8657: 8657: bool contains(const Key &key) const; 8657: const Key key(const T &value, const Key &defaultKey = Key()) const; 8657: const T value(const Key &key, const T &defaultValue = T()) const; 8657: T &operator[](const Key &key); 8657: const T operator[](const Key &key) const; 8657: 8657: QList uniqueKeys() const; 8657: QList keys() const; 8657: QList keys(const T &value) const; 8657: QList values() const; 8657: QList values(const Key &key) const; 8657: int count(const Key &key) const; 8657: 8657: inline const Key &firstKey() const { do { } while ((false) && (!isEmpty())); return constBegin().key(); } 8657: inline const Key &lastKey() const { do { } while ((false) && (!isEmpty())); return (constEnd() - 1).key(); } 8657: 8657: inline T &first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8657: inline const T &first() const { do { } while ((false) && (!isEmpty())); return *constBegin(); } 8657: inline T &last() { do { } while ((false) && (!isEmpty())); return *(end() - 1); } 8657: inline const T &last() const { do { } while ((false) && (!isEmpty())); return *(constEnd() - 1); } 8657: 8657: class const_iterator; 8657: 8657: class iterator 8657: { 8657: friend class const_iterator; 8657: Node *i; 8657: 8657: public: 8657: typedef std::bidirectional_iterator_tag iterator_category; 8657: typedef qptrdiff difference_type; 8657: typedef T value_type; 8657: typedef T *pointer; 8657: typedef T &reference; 8657: 8657: inline iterator() : i(nullptr) { } 8657: inline iterator(Node *node) : i(node) { } 8657: 8657: inline const Key &key() const { return i->key; } 8657: inline T &value() const { return i->value; } 8657: inline T &operator*() const { return i->value; } 8657: inline T *operator->() const { return &i->value; } 8657: inline bool operator==(const iterator &o) const { return i == o.i; } 8657: inline bool operator!=(const iterator &o) const { return i != o.i; } 8657: 8657: inline iterator &operator++() { 8657: i = i->nextNode(); 8657: return *this; 8657: } 8657: inline iterator operator++(int) { 8657: iterator r = *this; 8657: i = i->nextNode(); 8657: return r; 8657: } 8657: inline iterator &operator--() { 8657: i = i->previousNode(); 8657: return *this; 8657: } 8657: inline iterator operator--(int) { 8657: iterator r = *this; 8657: i = i->previousNode(); 8657: return r; 8657: } 8657: inline iterator operator+(int j) const 8657: { iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8657: inline iterator operator-(int j) const { return operator+(-j); } 8657: inline iterator &operator+=(int j) { return *this = *this + j; } 8657: inline iterator &operator-=(int j) { return *this = *this - j; } 8657: # 460 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 3 4 8657: friend class QMap; 8657: }; 8657: friend class iterator; 8657: 8657: class const_iterator 8657: { 8657: friend class iterator; 8657: const Node *i; 8657: 8657: public: 8657: typedef std::bidirectional_iterator_tag iterator_category; 8657: typedef qptrdiff difference_type; 8657: typedef T value_type; 8657: typedef const T *pointer; 8657: typedef const T &reference; 8657: 8657: constexpr inline const_iterator() : i(nullptr) { } 8657: inline const_iterator(const Node *node) : i(node) { } 8657: 8657: explicit inline const_iterator(const iterator &o) 8657: 8657: 8657: 8657: { i = o.i; } 8657: 8657: inline const Key &key() const { return i->key; } 8657: inline const T &value() const { return i->value; } 8657: inline const T &operator*() const { return i->value; } 8657: inline const T *operator->() const { return &i->value; } 8657: constexpr inline bool operator==(const const_iterator &o) const { return i == o.i; } 8657: constexpr inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8657: 8657: inline const_iterator &operator++() { 8657: i = i->nextNode(); 8657: return *this; 8657: } 8657: inline const_iterator operator++(int) { 8657: const_iterator r = *this; 8657: i = i->nextNode(); 8657: return r; 8657: } 8657: inline const_iterator &operator--() { 8657: i = i->previousNode(); 8657: return *this; 8657: } 8657: inline const_iterator operator--(int) { 8657: const_iterator r = *this; 8657: i = i->previousNode(); 8657: return r; 8657: } 8657: inline const_iterator operator+(int j) const 8657: { const_iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8657: inline const_iterator operator-(int j) const { return operator+(-j); } 8657: inline const_iterator &operator+=(int j) { return *this = *this + j; } 8657: inline const_iterator &operator-=(int j) { return *this = *this - j; } 8657: 8657: 8657: private: 8657: inline bool operator==(const iterator &o) const { return operator==(const_iterator(o)); } 8657: inline bool operator!=(const iterator &o) const { return operator!=(const_iterator(o)); } 8657: 8657: friend class QMap; 8657: }; 8657: friend class const_iterator; 8657: 8657: class key_iterator 8657: { 8657: const_iterator i; 8657: 8657: public: 8657: typedef typename const_iterator::iterator_category iterator_category; 8657: typedef typename const_iterator::difference_type difference_type; 8657: typedef Key value_type; 8657: typedef const Key *pointer; 8657: typedef const Key &reference; 8657: 8657: key_iterator() = default; 8657: explicit key_iterator(const_iterator o) : i(o) { } 8657: 8657: const Key &operator*() const { return i.key(); } 8657: const Key *operator->() const { return &i.key(); } 8657: bool operator==(key_iterator o) const { return i == o.i; } 8657: bool operator!=(key_iterator o) const { return i != o.i; } 8657: 8657: inline key_iterator &operator++() { ++i; return *this; } 8657: inline key_iterator operator++(int) { return key_iterator(i++);} 8657: inline key_iterator &operator--() { --i; return *this; } 8657: inline key_iterator operator--(int) { return key_iterator(i--); } 8657: const_iterator base() const { return i; } 8657: }; 8657: 8657: 8657: 8657: inline iterator begin() { detach(); return iterator(d->begin()); } 8657: inline const_iterator begin() const { return const_iterator(d->begin()); } 8657: inline const_iterator constBegin() const { return const_iterator(d->begin()); } 8657: inline const_iterator cbegin() const { return const_iterator(d->begin()); } 8657: inline iterator end() { detach(); return iterator(d->end()); } 8657: inline const_iterator end() const { return const_iterator(d->end()); } 8657: inline const_iterator constEnd() const { return const_iterator(d->end()); } 8657: inline const_iterator cend() const { return const_iterator(d->end()); } 8657: inline key_iterator keyBegin() const { return key_iterator(begin()); } 8657: inline key_iterator keyEnd() const { return key_iterator(end()); } 8657: iterator erase(iterator it); 8657: 8657: 8657: typedef iterator Iterator; 8657: typedef const_iterator ConstIterator; 8657: inline int count() const { return d->size; } 8657: iterator find(const Key &key); 8657: const_iterator find(const Key &key) const; 8657: const_iterator constFind(const Key &key) const; 8657: iterator lowerBound(const Key &key); 8657: const_iterator lowerBound(const Key &key) const; 8657: iterator upperBound(const Key &key); 8657: const_iterator upperBound(const Key &key) const; 8657: iterator insert(const Key &key, const T &value); 8657: iterator insert(const_iterator pos, const Key &key, const T &value); 8657: iterator insertMulti(const Key &key, const T &value); 8657: iterator insertMulti(const_iterator pos, const Key &akey, const T &avalue); 8657: QMap &unite(const QMap &other); 8657: 8657: 8657: typedef Key key_type; 8657: typedef T mapped_type; 8657: typedef qptrdiff difference_type; 8657: typedef int size_type; 8657: inline bool empty() const { return isEmpty(); } 8657: QPair equal_range(const Key &akey); 8657: QPair equal_range(const Key &akey) const; 8657: 8657: 8657: 8657: 8657: 8657: private: 8657: void detach_helper(); 8657: bool isValidIterator(const const_iterator &ci) const 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: (void)ci;; 8657: return true; 8657: 8657: } 8657: }; 8657: 8657: template 8657: inline QMap::QMap(const QMap &other) 8657: { 8657: if (other.d->ref.ref()) { 8657: d = other.d; 8657: } else { 8657: d = QMapData::create(); 8657: if (other.d->header.left) { 8657: d->header.left = static_cast(other.d->header.left)->copy(d); 8657: d->header.left->setParent(&d->header); 8657: d->recalcMostLeftNode(); 8657: } 8657: } 8657: } 8657: 8657: template 8657: inline QMap &QMap::operator=(const QMap &other) 8657: { 8657: if (d != other.d) { 8657: QMap tmp(other); 8657: tmp.swap(*this); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: inline void QMap::clear() 8657: { 8657: *this = QMap(); 8657: } 8657: 8657: 8657: # 642 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 3 4 8657: #pragma GCC diagnostic push 8657: # 642 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 3 4 8657: 8657: 8657: 8657: template 8657: inline const T QMap::value(const Key &akey, const T &adefaultValue) const 8657: { 8657: Node *n = d->findNode(akey); 8657: return n ? n->value : adefaultValue; 8657: } 8657: 8657: 8657: # 652 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 3 4 8657: #pragma GCC diagnostic pop 8657: # 652 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 3 4 8657: 8657: 8657: template 8657: inline const T QMap::operator[](const Key &akey) const 8657: { 8657: return value(akey); 8657: } 8657: 8657: template 8657: inline T &QMap::operator[](const Key &akey) 8657: { 8657: detach(); 8657: Node *n = d->findNode(akey); 8657: if (!n) 8657: return *insert(akey, T()); 8657: return n->value; 8657: } 8657: 8657: template 8657: inline int QMap::count(const Key &akey) const 8657: { 8657: Node *firstNode; 8657: Node *lastNode; 8657: d->nodeRange(akey, &firstNode, &lastNode); 8657: 8657: const_iterator ci_first(firstNode); 8657: const const_iterator ci_last(lastNode); 8657: int cnt = 0; 8657: while (ci_first != ci_last) { 8657: ++cnt; 8657: ++ci_first; 8657: } 8657: return cnt; 8657: } 8657: 8657: template 8657: inline bool QMap::contains(const Key &akey) const 8657: { 8657: return d->findNode(akey) != nullptr; 8657: } 8657: 8657: template 8657: inline typename QMap::iterator QMap::insert(const Key &akey, const T &avalue) 8657: { 8657: detach(); 8657: Node *n = d->root(); 8657: Node *y = d->end(); 8657: Node *lastNode = nullptr; 8657: bool left = true; 8657: while (n) { 8657: y = n; 8657: if (!qMapLessThanKey(n->key, akey)) { 8657: lastNode = n; 8657: left = true; 8657: n = n->leftNode(); 8657: } else { 8657: left = false; 8657: n = n->rightNode(); 8657: } 8657: } 8657: if (lastNode && !qMapLessThanKey(akey, lastNode->key)) { 8657: lastNode->value = avalue; 8657: return iterator(lastNode); 8657: } 8657: Node *z = d->createNode(akey, avalue, y, left); 8657: return iterator(z); 8657: } 8657: 8657: template 8657: typename QMap::iterator QMap::insert(const_iterator pos, const Key &akey, const T &avalue) 8657: { 8657: if (d->ref.isShared()) 8657: return this->insert(akey, avalue); 8657: 8657: do { } while ((false) && (isValidIterator(pos))); 8657: 8657: if (pos == constEnd()) { 8657: 8657: Node *n = static_cast(pos.i->left); 8657: if (n) { 8657: while (n->right) 8657: n = static_cast(n->right); 8657: 8657: if (!qMapLessThanKey(n->key, akey)) 8657: return this->insert(akey, avalue); 8657: 8657: 8657: 8657: 8657: Node *z = d->createNode(akey, avalue, n, false); 8657: return iterator(z); 8657: } 8657: return this->insert(akey, avalue); 8657: } else { 8657: 8657: 8657: Node *next = const_cast(pos.i); 8657: if (qMapLessThanKey(next->key, akey)) 8657: return this->insert(akey, avalue); 8657: 8657: if (pos == constBegin()) { 8657: 8657: 8657: if (!qMapLessThanKey(akey, next->key)) { 8657: next->value = avalue; 8657: return iterator(next); 8657: } 8657: 8657: Node *z = d->createNode(akey, avalue, begin().i, true); 8657: return iterator(z); 8657: } else { 8657: Node *prev = const_cast(pos.i->previousNode()); 8657: if (!qMapLessThanKey(prev->key, akey)) { 8657: return this->insert(akey, avalue); 8657: } 8657: 8657: if (!qMapLessThanKey(akey, next->key)) { 8657: next->value = avalue; 8657: return iterator(next); 8657: } 8657: 8657: 8657: if (prev->right == nullptr) { 8657: Node *z = d->createNode(akey, avalue, prev, false); 8657: return iterator(z); 8657: } 8657: if (next->left == nullptr) { 8657: Node *z = d->createNode(akey, avalue, next, true); 8657: return iterator(z); 8657: } 8657: do { } while ((false) && (false)); 8657: return this->insert(akey, avalue); 8657: } 8657: } 8657: } 8657: 8657: template 8657: inline typename QMap::iterator QMap::insertMulti(const Key &akey, 8657: const T &avalue) 8657: { 8657: detach(); 8657: Node* y = d->end(); 8657: Node* x = static_cast(d->root()); 8657: bool left = true; 8657: while (x != nullptr) { 8657: left = !qMapLessThanKey(x->key, akey); 8657: y = x; 8657: x = left ? x->leftNode() : x->rightNode(); 8657: } 8657: Node *z = d->createNode(akey, avalue, y, left); 8657: return iterator(z); 8657: } 8657: 8657: template 8657: typename QMap::iterator QMap::insertMulti(const_iterator pos, const Key &akey, const T &avalue) 8657: { 8657: if (d->ref.isShared()) 8657: return this->insertMulti(akey, avalue); 8657: 8657: do { } while ((false) && (isValidIterator(pos))); 8657: 8657: if (pos == constEnd()) { 8657: 8657: Node *n = static_cast(pos.i->left); 8657: if (n) { 8657: while (n->right) 8657: n = static_cast(n->right); 8657: 8657: if (!qMapLessThanKey(n->key, akey)) 8657: return this->insertMulti(akey, avalue); 8657: Node *z = d->createNode(akey, avalue, n, false); 8657: return iterator(z); 8657: } 8657: return this->insertMulti(akey, avalue); 8657: } else { 8657: 8657: 8657: Node *next = const_cast(pos.i); 8657: if (qMapLessThanKey(next->key, akey)) 8657: return this->insertMulti(akey, avalue); 8657: 8657: if (pos == constBegin()) { 8657: 8657: Node *z = d->createNode(akey, avalue, begin().i, true); 8657: return iterator(z); 8657: } else { 8657: Node *prev = const_cast(pos.i->previousNode()); 8657: if (!qMapLessThanKey(prev->key, akey)) 8657: return this->insertMulti(akey, avalue); 8657: 8657: 8657: if (prev->right == nullptr) { 8657: Node *z = d->createNode(akey, avalue, prev, false); 8657: return iterator(z); 8657: } 8657: if (next->left == nullptr) { 8657: Node *z = d->createNode(akey, avalue, next, true); 8657: return iterator(z); 8657: } 8657: do { } while ((false) && (false)); 8657: return this->insertMulti(akey, avalue); 8657: } 8657: } 8657: } 8657: 8657: 8657: template 8657: inline typename QMap::const_iterator QMap::constFind(const Key &akey) const 8657: { 8657: Node *n = d->findNode(akey); 8657: return const_iterator(n ? n : d->end()); 8657: } 8657: 8657: template 8657: inline typename QMap::const_iterator QMap::find(const Key &akey) const 8657: { 8657: return constFind(akey); 8657: } 8657: 8657: template 8657: inline typename QMap::iterator QMap::find(const Key &akey) 8657: { 8657: detach(); 8657: Node *n = d->findNode(akey); 8657: return iterator(n ? n : d->end()); 8657: } 8657: 8657: template 8657: inline QMap &QMap::unite(const QMap &other) 8657: { 8657: QMap copy(other); 8657: const_iterator it = copy.constEnd(); 8657: const const_iterator b = copy.constBegin(); 8657: while (it != b) { 8657: --it; 8657: insertMulti(it.key(), it.value()); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: QPair::iterator, typename QMap::iterator> QMap::equal_range(const Key &akey) 8657: { 8657: detach(); 8657: Node *firstNode, *lastNode; 8657: d->nodeRange(akey, &firstNode, &lastNode); 8657: return QPair(iterator(firstNode), iterator(lastNode)); 8657: } 8657: 8657: template 8657: QPair::const_iterator, typename QMap::const_iterator> 8657: QMap::equal_range(const Key &akey) const 8657: { 8657: Node *firstNode, *lastNode; 8657: d->nodeRange(akey, &firstNode, &lastNode); 8657: return qMakePair(const_iterator(firstNode), const_iterator(lastNode)); 8657: } 8657: # 932 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 3 4 8657: template 8657: int QMap::remove(const Key &akey) 8657: { 8657: detach(); 8657: int n = 0; 8657: while (Node *node = d->findNode(akey)) { 8657: d->deleteNode(node); 8657: ++n; 8657: } 8657: return n; 8657: } 8657: 8657: template 8657: T QMap::take(const Key &akey) 8657: { 8657: detach(); 8657: 8657: Node *node = d->findNode(akey); 8657: if (node) { 8657: T t = node->value; 8657: d->deleteNode(node); 8657: return t; 8657: } 8657: return T(); 8657: } 8657: 8657: template 8657: typename QMap::iterator QMap::erase(iterator it) 8657: { 8657: if (it == iterator(d->end())) 8657: return it; 8657: 8657: do { } while ((false) && (isValidIterator(const_iterator(it)))); 8657: 8657: if (d->ref.isShared()) { 8657: const_iterator oldBegin = constBegin(); 8657: const_iterator old = const_iterator(it); 8657: int backStepsWithSameKey = 0; 8657: 8657: while (old != oldBegin) { 8657: --old; 8657: if (qMapLessThanKey(old.key(), it.key())) 8657: break; 8657: ++backStepsWithSameKey; 8657: } 8657: 8657: it = find(old.key()); 8657: do { } while ((false) && (it != iterator(d->end()))); 8657: 8657: while (backStepsWithSameKey > 0) { 8657: ++it; 8657: --backStepsWithSameKey; 8657: } 8657: } 8657: 8657: Node *n = it.i; 8657: ++it; 8657: d->deleteNode(n); 8657: return it; 8657: } 8657: 8657: template 8657: void QMap::detach_helper() 8657: { 8657: QMapData *x = QMapData::create(); 8657: if (d->header.left) { 8657: x->header.left = static_cast(d->header.left)->copy(x); 8657: x->header.left->setParent(&x->header); 8657: } 8657: if (!d->ref.deref()) 8657: d->destroy(); 8657: d = x; 8657: d->recalcMostLeftNode(); 8657: } 8657: 8657: template 8657: QList QMap::uniqueKeys() const 8657: { 8657: QList res; 8657: res.reserve(size()); 8657: const_iterator i = begin(); 8657: if (i != end()) { 8657: for (;;) { 8657: const Key &aKey = i.key(); 8657: res.append(aKey); 8657: do { 8657: if (++i == end()) 8657: goto break_out_of_outer_loop; 8657: } while (!qMapLessThanKey(aKey, i.key())); 8657: } 8657: } 8657: break_out_of_outer_loop: 8657: return res; 8657: } 8657: 8657: template 8657: QList QMap::keys() const 8657: { 8657: QList res; 8657: res.reserve(size()); 8657: const_iterator i = begin(); 8657: while (i != end()) { 8657: res.append(i.key()); 8657: ++i; 8657: } 8657: return res; 8657: } 8657: 8657: template 8657: QList QMap::keys(const T &avalue) const 8657: { 8657: QList res; 8657: const_iterator i = begin(); 8657: while (i != end()) { 8657: if (i.value() == avalue) 8657: res.append(i.key()); 8657: ++i; 8657: } 8657: return res; 8657: } 8657: 8657: template 8657: const Key QMap::key(const T &avalue, const Key &defaultKey) const 8657: { 8657: const_iterator i = begin(); 8657: while (i != end()) { 8657: if (i.value() == avalue) 8657: return i.key(); 8657: ++i; 8657: } 8657: 8657: return defaultKey; 8657: } 8657: 8657: template 8657: QList QMap::values() const 8657: { 8657: QList res; 8657: res.reserve(size()); 8657: const_iterator i = begin(); 8657: while (i != end()) { 8657: res.append(i.value()); 8657: ++i; 8657: } 8657: return res; 8657: } 8657: 8657: template 8657: QList QMap::values(const Key &akey) const 8657: { 8657: QList res; 8657: Node *n = d->findNode(akey); 8657: if (n) { 8657: const_iterator it(n); 8657: do { 8657: res.append(*it); 8657: ++it; 8657: } while (it != constEnd() && !qMapLessThanKey(akey, it.key())); 8657: } 8657: return res; 8657: } 8657: 8657: template 8657: inline typename QMap::const_iterator QMap::lowerBound(const Key &akey) const 8657: { 8657: Node *lb = d->root() ? d->root()->lowerBound(akey) : nullptr; 8657: if (!lb) 8657: lb = d->end(); 8657: return const_iterator(lb); 8657: } 8657: 8657: template 8657: inline typename QMap::iterator QMap::lowerBound(const Key &akey) 8657: { 8657: detach(); 8657: Node *lb = d->root() ? d->root()->lowerBound(akey) : nullptr; 8657: if (!lb) 8657: lb = d->end(); 8657: return iterator(lb); 8657: } 8657: 8657: template 8657: inline typename QMap::const_iterator 8657: QMap::upperBound(const Key &akey) const 8657: { 8657: Node *ub = d->root() ? d->root()->upperBound(akey) : nullptr; 8657: if (!ub) 8657: ub = d->end(); 8657: return const_iterator(ub); 8657: } 8657: 8657: template 8657: inline typename QMap::iterator QMap::upperBound(const Key &akey) 8657: { 8657: detach(); 8657: Node *ub = d->root() ? d->root()->upperBound(akey) : nullptr; 8657: if (!ub) 8657: ub = d->end(); 8657: return iterator(ub); 8657: } 8657: 8657: template 8657: bool QMap::operator==(const QMap &other) const 8657: { 8657: if (size() != other.size()) 8657: return false; 8657: if (d == other.d) 8657: return true; 8657: 8657: const_iterator it1 = begin(); 8657: const_iterator it2 = other.begin(); 8657: 8657: while (it1 != end()) { 8657: if (!(it1.value() == it2.value()) || qMapLessThanKey(it1.key(), it2.key()) || qMapLessThanKey(it2.key(), it1.key())) 8657: return false; 8657: ++it2; 8657: ++it1; 8657: } 8657: return true; 8657: } 8657: 8657: template 8657: QMap::QMap(const std::map &other) 8657: { 8657: d = QMapData::create(); 8657: typename std::map::const_iterator it = other.end(); 8657: while (it != other.begin()) { 8657: --it; 8657: d->createNode((*it).first, (*it).second, d->begin(), true); 8657: } 8657: } 8657: 8657: template 8657: std::map QMap::toStdMap() const 8657: { 8657: std::map map; 8657: const_iterator it = end(); 8657: while (it != begin()) { 8657: --it; 8657: map.insert(map.begin(), std::pair(it.key(), it.value())); 8657: } 8657: return map; 8657: } 8657: 8657: template 8657: class QMultiMap : public QMap 8657: { 8657: public: 8657: QMultiMap() noexcept {} 8657: 8657: inline QMultiMap(std::initializer_list > list) 8657: { 8657: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8657: insert(it->first, it->second); 8657: } 8657: 8657: QMultiMap(const QMap &other) : QMap(other) {} 8657: 8657: QMultiMap(QMap &&other) noexcept : QMap(std::move(other)) {} 8657: 8657: void swap(QMultiMap &other) noexcept { QMap::swap(other); } 8657: 8657: inline typename QMap::iterator replace(const Key &key, const T &value) 8657: { return QMap::insert(key, value); } 8657: inline typename QMap::iterator insert(const Key &key, const T &value) 8657: { return QMap::insertMulti(key, value); } 8657: inline typename QMap::iterator insert(typename QMap::const_iterator pos, const Key &key, const T &value) 8657: { return QMap::insertMulti(pos, key, value); } 8657: 8657: inline QMultiMap &operator+=(const QMultiMap &other) 8657: { this->unite(other); return *this; } 8657: inline QMultiMap operator+(const QMultiMap &other) const 8657: { QMultiMap result = *this; result += other; return result; } 8657: 8657: using QMap::contains; 8657: using QMap::remove; 8657: using QMap::count; 8657: using QMap::find; 8657: using QMap::constFind; 8657: 8657: bool contains(const Key &key, const T &value) const; 8657: 8657: int remove(const Key &key, const T &value); 8657: 8657: int count(const Key &key, const T &value) const; 8657: 8657: typename QMap::iterator find(const Key &key, const T &value) { 8657: typename QMap::iterator i(find(key)); 8657: typename QMap::iterator end(this->end()); 8657: while (i != end && !qMapLessThanKey(key, i.key())) { 8657: if (i.value() == value) 8657: return i; 8657: ++i; 8657: } 8657: return end; 8657: } 8657: typename QMap::const_iterator find(const Key &key, const T &value) const { 8657: typename QMap::const_iterator i(constFind(key)); 8657: typename QMap::const_iterator end(QMap::constEnd()); 8657: while (i != end && !qMapLessThanKey(key, i.key())) { 8657: if (i.value() == value) 8657: return i; 8657: ++i; 8657: } 8657: return end; 8657: } 8657: typename QMap::const_iterator constFind(const Key &key, const T &value) const 8657: { return find(key, value); } 8657: private: 8657: T &operator[](const Key &key); 8657: const T operator[](const Key &key) const; 8657: }; 8657: 8657: template 8657: inline bool QMultiMap::contains(const Key &key, const T &value) const 8657: { 8657: return constFind(key, value) != QMap::constEnd(); 8657: } 8657: 8657: template 8657: inline int QMultiMap::remove(const Key &key, const T &value) 8657: { 8657: int n = 0; 8657: typename QMap::iterator i(find(key)); 8657: typename QMap::iterator end(QMap::end()); 8657: while (i != end && !qMapLessThanKey(key, i.key())) { 8657: if (i.value() == value) { 8657: i = this->erase(i); 8657: ++n; 8657: } else { 8657: ++i; 8657: } 8657: } 8657: return n; 8657: } 8657: 8657: template 8657: inline int QMultiMap::count(const Key &key, const T &value) const 8657: { 8657: int n = 0; 8657: typename QMap::const_iterator i(constFind(key)); 8657: typename QMap::const_iterator end(QMap::constEnd()); 8657: while (i != end && !qMapLessThanKey(key, i.key())) { 8657: if (i.value() == value) 8657: ++n; 8657: ++i; 8657: } 8657: return n; 8657: } 8657: 8657: template class QMapIterator { typedef typename QMap::const_iterator const_iterator; typedef const_iterator Item; QMap c; const_iterator i, n; inline bool item_exists() const { return n != c.constEnd(); } public: inline QMapIterator(const QMap &container) : c(container), i(c.constBegin()), n(c.constEnd()) {} inline QMapIterator &operator=(const QMap &container) { c = container; i = c.constBegin(); n = c.constEnd(); return *this; } inline void toFront() { i = c.constBegin(); n = c.constEnd(); } inline void toBack() { i = c.constEnd(); n = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline Item next() { n = i++; return n; } inline Item peekNext() const { return i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline Item previous() { n = --i; return n; } inline Item peekPrevious() const { const_iterator p = i; return --p; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline const Key &key() const { do { } while ((false) && (item_exists())); return n.key(); } inline bool findNext(const T &t) { while ((n = i) != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(n = --i) == t) return true; n = c.constEnd(); return false; } }; 8657: template class QMutableMapIterator { typedef typename QMap::iterator iterator; typedef typename QMap::const_iterator const_iterator; typedef iterator Item; QMap *c; iterator i, n; inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } public: inline QMutableMapIterator(QMap &container) : c(&container) { i = c->begin(); n = c->end(); } inline QMutableMapIterator &operator=(QMap &container) { c = &container; i = c->begin(); n = c->end(); return *this; } inline void toFront() { i = c->begin(); n = c->end(); } inline void toBack() { i = c->end(); n = c->end(); } inline bool hasNext() const { return const_iterator(i) != c->constEnd(); } inline Item next() { n = i++; return n; } inline Item peekNext() const { return i; } inline bool hasPrevious() const { return const_iterator(i) != c->constBegin(); } inline Item previous() { n = --i; return n; } inline Item peekPrevious() const { iterator p = i; return --p; } inline void remove() { if (const_iterator(n) != c->constEnd()) { i = c->erase(n); n = c->end(); } } inline void setValue(const T &t) { if (const_iterator(n) != c->constEnd()) *n = t; } inline T &value() { do { } while ((false) && (item_exists())); return *n; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline const Key &key() const { do { } while ((false) && (item_exists())); return n.key(); } inline bool findNext(const T &t) { while (const_iterator(n = i) != c->constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (const_iterator(i) != c->constBegin()) if (*(n = --i) == t) return true; n = c->end(); return false; } }; 8657: 8657: 8657: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhash.h" 1 3 4 8657: # 62 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhash.h" 3 4 8657: 8657: 8657: struct __attribute__((visibility("default"))) QHashData 8657: { 8657: struct Node { 8657: Node *next; 8657: uint h; 8657: }; 8657: 8657: Node *fakeNext; 8657: Node **buckets; 8657: QtPrivate::RefCount ref; 8657: int size; 8657: int nodeSize; 8657: short userNumBits; 8657: short numBits; 8657: int numBuckets; 8657: uint seed; 8657: uint sharable : 1; 8657: uint strictAlignment : 1; 8657: uint reserved : 30; 8657: 8657: void *allocateNode(int nodeAlign); 8657: void freeNode(void *node); 8657: QHashData *detach_helper(void (*node_duplicate)(Node *, void *), void (*node_delete)(Node *), 8657: int nodeSize, int nodeAlign); 8657: bool willGrow(); 8657: void hasShrunk(); 8657: void rehash(int hint); 8657: void free_helper(void (*node_delete)(Node *)); 8657: Node *firstNode(); 8657: 8657: 8657: 8657: 8657: static Node *nextNode(Node *node); 8657: static Node *previousNode(Node *node); 8657: 8657: static const QHashData shared_null; 8657: }; 8657: 8657: inline bool QHashData::willGrow() 8657: { 8657: if (size >= numBuckets) { 8657: rehash(numBits + 1); 8657: return true; 8657: } else { 8657: return false; 8657: } 8657: } 8657: 8657: inline void QHashData::hasShrunk() 8657: { 8657: if (size <= (numBuckets >> 3) && numBits > userNumBits) { 8657: try { 8657: rehash(qMax(int(numBits) - 2, int(userNumBits))); 8657: } catch (const std::bad_alloc &) { 8657: 8657: } 8657: } 8657: } 8657: 8657: inline QHashData::Node *QHashData::firstNode() 8657: { 8657: Node *e = reinterpret_cast(this); 8657: Node **bucket = buckets; 8657: int n = numBuckets; 8657: while (n--) { 8657: if (*bucket != e) 8657: return *bucket; 8657: ++bucket; 8657: } 8657: return e; 8657: } 8657: 8657: struct QHashDummyValue 8657: { 8657: }; 8657: 8657: inline bool operator==(const QHashDummyValue & , const QHashDummyValue & ) 8657: { 8657: return true; 8657: } 8657: 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE | Q_DUMMY_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE | Q_DUMMY_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE | Q_DUMMY_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QHashDummyValue)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QHashDummyValue >::value, isDummy = (((Q_MOVABLE_TYPE | Q_DUMMY_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QHashDummyValue) }; static inline const char *name() { return "QHashDummyValue"; } }; 8657: 8657: template 8657: struct QHashNode 8657: { 8657: QHashNode *next; 8657: const uint h; 8657: const Key key; 8657: T value; 8657: 8657: inline QHashNode(const Key &key0, const T &value0, uint hash, QHashNode *n) 8657: : next(n), h(hash), key(key0), value(value0) {} 8657: inline bool same_key(uint h0, const Key &key0) const { return h0 == h && key0 == key; } 8657: 8657: private: 8657: QHashNode(const QHashNode &) = delete; QHashNode &operator=(const QHashNode &) = delete; 8657: }; 8657: 8657: 8657: template 8657: struct QHashNode 8657: { 8657: union { 8657: QHashNode *next; 8657: QHashDummyValue value; 8657: }; 8657: const uint h; 8657: const Key key; 8657: 8657: inline QHashNode(const Key &key0, const QHashDummyValue &, uint hash, QHashNode *n) 8657: : next(n), h(hash), key(key0) {} 8657: inline bool same_key(uint h0, const Key &key0) const { return h0 == h && key0 == key; } 8657: 8657: private: 8657: QHashNode(const QHashNode &) = delete; QHashNode &operator=(const QHashNode &) = delete; 8657: }; 8657: # 226 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhash.h" 3 4 8657: template 8657: class QHash 8657: { 8657: typedef QHashNode Node; 8657: 8657: union { 8657: QHashData *d; 8657: QHashNode *e; 8657: }; 8657: 8657: static inline Node *concrete(QHashData::Node *node) { 8657: return reinterpret_cast(node); 8657: } 8657: 8657: static inline int alignOfNode() { return qMax(sizeof(void*), alignof(Node)); } 8657: 8657: public: 8657: inline QHash() noexcept : d(const_cast(&QHashData::shared_null)) { } 8657: 8657: inline QHash(std::initializer_list > list) 8657: : d(const_cast(&QHashData::shared_null)) 8657: { 8657: reserve(int(list.size())); 8657: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8657: insert(it->first, it->second); 8657: } 8657: 8657: QHash(const QHash &other) : d(other.d) { d->ref.ref(); if (!d->sharable) detach(); } 8657: ~QHash() { if (!d->ref.deref()) freeData(d); } 8657: 8657: QHash &operator=(const QHash &other); 8657: 8657: QHash(QHash &&other) noexcept : d(other.d) { other.d = const_cast(&QHashData::shared_null); } 8657: QHash &operator=(QHash &&other) noexcept 8657: { QHash moved(std::move(other)); swap(moved); return *this; } 8657: 8657: void swap(QHash &other) noexcept { qSwap(d, other.d); } 8657: 8657: bool operator==(const QHash &other) const; 8657: bool operator!=(const QHash &other) const { return !(*this == other); } 8657: 8657: inline int size() const { return d->size; } 8657: 8657: inline bool isEmpty() const { return d->size == 0; } 8657: 8657: inline int capacity() const { return d->numBuckets; } 8657: void reserve(int size); 8657: inline void squeeze() { reserve(1); } 8657: 8657: inline void detach() { if (d->ref.isShared()) detach_helper(); } 8657: inline bool isDetached() const { return !d->ref.isShared(); } 8657: 8657: inline void setSharable(bool sharable) { if (!sharable) detach(); if (d != &QHashData::shared_null) d->sharable = sharable; } 8657: 8657: bool isSharedWith(const QHash &other) const { return d == other.d; } 8657: 8657: void clear(); 8657: 8657: int remove(const Key &key); 8657: T take(const Key &key); 8657: 8657: bool contains(const Key &key) const; 8657: const Key key(const T &value) const; 8657: const Key key(const T &value, const Key &defaultKey) const; 8657: const T value(const Key &key) const; 8657: const T value(const Key &key, const T &defaultValue) const; 8657: T &operator[](const Key &key); 8657: const T operator[](const Key &key) const; 8657: 8657: QList uniqueKeys() const; 8657: QList keys() const; 8657: QList keys(const T &value) const; 8657: QList values() const; 8657: QList values(const Key &key) const; 8657: int count(const Key &key) const; 8657: 8657: class const_iterator; 8657: 8657: class iterator 8657: { 8657: friend class const_iterator; 8657: friend class QHash; 8657: friend class QSet; 8657: QHashData::Node *i; 8657: 8657: public: 8657: typedef std::bidirectional_iterator_tag iterator_category; 8657: typedef qptrdiff difference_type; 8657: typedef T value_type; 8657: typedef T *pointer; 8657: typedef T &reference; 8657: 8657: inline iterator() : i(nullptr) { } 8657: explicit inline iterator(void *node) : i(reinterpret_cast(node)) { } 8657: 8657: inline const Key &key() const { return concrete(i)->key; } 8657: inline T &value() const { return concrete(i)->value; } 8657: inline T &operator*() const { return concrete(i)->value; } 8657: inline T *operator->() const { return &concrete(i)->value; } 8657: inline bool operator==(const iterator &o) const { return i == o.i; } 8657: inline bool operator!=(const iterator &o) const { return i != o.i; } 8657: 8657: inline iterator &operator++() { 8657: i = QHashData::nextNode(i); 8657: return *this; 8657: } 8657: inline iterator operator++(int) { 8657: iterator r = *this; 8657: i = QHashData::nextNode(i); 8657: return r; 8657: } 8657: inline iterator &operator--() { 8657: i = QHashData::previousNode(i); 8657: return *this; 8657: } 8657: inline iterator operator--(int) { 8657: iterator r = *this; 8657: i = QHashData::previousNode(i); 8657: return r; 8657: } 8657: inline iterator operator+(int j) const 8657: { iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8657: inline iterator operator-(int j) const { return operator+(-j); } 8657: inline iterator &operator+=(int j) { return *this = *this + j; } 8657: inline iterator &operator-=(int j) { return *this = *this - j; } 8657: # 359 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhash.h" 3 4 8657: }; 8657: friend class iterator; 8657: 8657: class const_iterator 8657: { 8657: friend class iterator; 8657: friend class QHash; 8657: friend class QSet; 8657: QHashData::Node *i; 8657: 8657: public: 8657: typedef std::bidirectional_iterator_tag iterator_category; 8657: typedef qptrdiff difference_type; 8657: typedef T value_type; 8657: typedef const T *pointer; 8657: typedef const T &reference; 8657: 8657: constexpr inline const_iterator() : i(nullptr) { } 8657: explicit inline const_iterator(void *node) 8657: : i(reinterpret_cast(node)) { } 8657: 8657: explicit inline const_iterator(const iterator &o) 8657: 8657: 8657: 8657: { i = o.i; } 8657: 8657: inline const Key &key() const { return concrete(i)->key; } 8657: inline const T &value() const { return concrete(i)->value; } 8657: inline const T &operator*() const { return concrete(i)->value; } 8657: inline const T *operator->() const { return &concrete(i)->value; } 8657: constexpr inline bool operator==(const const_iterator &o) const { return i == o.i; } 8657: constexpr inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8657: 8657: inline const_iterator &operator++() { 8657: i = QHashData::nextNode(i); 8657: return *this; 8657: } 8657: inline const_iterator operator++(int) { 8657: const_iterator r = *this; 8657: i = QHashData::nextNode(i); 8657: return r; 8657: } 8657: inline const_iterator &operator--() { 8657: i = QHashData::previousNode(i); 8657: return *this; 8657: } 8657: inline const_iterator operator--(int) { 8657: const_iterator r = *this; 8657: i = QHashData::previousNode(i); 8657: return r; 8657: } 8657: inline const_iterator operator+(int j) const 8657: { const_iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8657: inline const_iterator operator-(int j) const { return operator+(-j); } 8657: inline const_iterator &operator+=(int j) { return *this = *this + j; } 8657: inline const_iterator &operator-=(int j) { return *this = *this - j; } 8657: 8657: 8657: 8657: private: 8657: inline bool operator==(const iterator &o) const { return operator==(const_iterator(o)); } 8657: inline bool operator!=(const iterator &o) const { return operator!=(const_iterator(o)); } 8657: 8657: }; 8657: friend class const_iterator; 8657: 8657: class key_iterator 8657: { 8657: const_iterator i; 8657: 8657: public: 8657: typedef typename const_iterator::iterator_category iterator_category; 8657: typedef typename const_iterator::difference_type difference_type; 8657: typedef Key value_type; 8657: typedef const Key *pointer; 8657: typedef const Key &reference; 8657: 8657: key_iterator() = default; 8657: explicit key_iterator(const_iterator o) : i(o) { } 8657: 8657: const Key &operator*() const { return i.key(); } 8657: const Key *operator->() const { return &i.key(); } 8657: bool operator==(key_iterator o) const { return i == o.i; } 8657: bool operator!=(key_iterator o) const { return i != o.i; } 8657: 8657: inline key_iterator &operator++() { ++i; return *this; } 8657: inline key_iterator operator++(int) { return key_iterator(i++);} 8657: inline key_iterator &operator--() { --i; return *this; } 8657: inline key_iterator operator--(int) { return key_iterator(i--); } 8657: const_iterator base() const { return i; } 8657: }; 8657: 8657: 8657: inline iterator begin() { detach(); return iterator(d->firstNode()); } 8657: inline const_iterator begin() const { return const_iterator(d->firstNode()); } 8657: inline const_iterator cbegin() const { return const_iterator(d->firstNode()); } 8657: inline const_iterator constBegin() const { return const_iterator(d->firstNode()); } 8657: inline iterator end() { detach(); return iterator(e); } 8657: inline const_iterator end() const { return const_iterator(e); } 8657: inline const_iterator cend() const { return const_iterator(e); } 8657: inline const_iterator constEnd() const { return const_iterator(e); } 8657: inline key_iterator keyBegin() const { return key_iterator(begin()); } 8657: inline key_iterator keyEnd() const { return key_iterator(end()); } 8657: 8657: QPair equal_range(const Key &key); 8657: QPair equal_range(const Key &key) const noexcept; 8657: iterator erase(iterator it) { return erase(const_iterator(it.i)); } 8657: iterator erase(const_iterator it); 8657: 8657: 8657: typedef iterator Iterator; 8657: typedef const_iterator ConstIterator; 8657: inline int count() const { return d->size; } 8657: iterator find(const Key &key); 8657: const_iterator find(const Key &key) const; 8657: const_iterator constFind(const Key &key) const; 8657: iterator insert(const Key &key, const T &value); 8657: iterator insertMulti(const Key &key, const T &value); 8657: QHash &unite(const QHash &other); 8657: 8657: 8657: typedef T mapped_type; 8657: typedef Key key_type; 8657: typedef qptrdiff difference_type; 8657: typedef int size_type; 8657: 8657: inline bool empty() const { return isEmpty(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: private: 8657: void detach_helper(); 8657: void freeData(QHashData *d); 8657: Node **findNode(const Key &key, uint *hp = nullptr) const; 8657: Node **findNode(const Key &key, uint h) const; 8657: Node *createNode(uint h, const Key &key, const T &value, Node **nextNode); 8657: void deleteNode(Node *node); 8657: static void deleteNode2(QHashData::Node *node); 8657: 8657: static void duplicateNode(QHashData::Node *originalNode, void *newNode); 8657: 8657: bool isValidIterator(const iterator &it) const noexcept 8657: { return isValidNode(it.i); } 8657: bool isValidIterator(const const_iterator &it) const noexcept 8657: { return isValidNode(it.i); } 8657: bool isValidNode(QHashData::Node *node) const noexcept 8657: { 8657: 8657: 8657: 8657: 8657: 8657: (void)node;; 8657: return true; 8657: 8657: } 8657: friend class QSet; 8657: }; 8657: 8657: 8657: template 8657: inline void QHash::deleteNode(Node *node) 8657: { 8657: deleteNode2(reinterpret_cast(node)); 8657: d->freeNode(node); 8657: } 8657: 8657: template 8657: inline void QHash::deleteNode2(QHashData::Node *node) 8657: { 8657: 8657: 8657: 8657: concrete(node)->~Node(); 8657: 8657: } 8657: 8657: template 8657: inline void QHash::duplicateNode(QHashData::Node *node, void *newNode) 8657: { 8657: Node *concreteNode = concrete(node); 8657: new (newNode) Node(concreteNode->key, concreteNode->value, concreteNode->h, nullptr); 8657: } 8657: 8657: template 8657: inline typename QHash::Node * 8657: QHash::createNode(uint ah, const Key &akey, const T &avalue, Node **anextNode) 8657: { 8657: Node *node = new (d->allocateNode(alignOfNode())) Node(akey, avalue, ah, *anextNode); 8657: *anextNode = node; 8657: ++d->size; 8657: return node; 8657: } 8657: 8657: template 8657: inline QHash &QHash::unite(const QHash &other) 8657: { 8657: if (d == &QHashData::shared_null) { 8657: *this = other; 8657: } else { 8657: QHash copy(other); 8657: const_iterator it = copy.constEnd(); 8657: while (it != copy.constBegin()) { 8657: --it; 8657: insertMulti(it.key(), it.value()); 8657: } 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: void QHash::freeData(QHashData *x) 8657: { 8657: x->free_helper(deleteNode2); 8657: } 8657: 8657: template 8657: inline void QHash::clear() 8657: { 8657: *this = QHash(); 8657: } 8657: 8657: template 8657: void QHash::detach_helper() 8657: { 8657: QHashData *x = d->detach_helper(duplicateNode, deleteNode2, sizeof(Node), alignOfNode()); 8657: if (!d->ref.deref()) 8657: freeData(d); 8657: d = x; 8657: } 8657: 8657: template 8657: inline QHash &QHash::operator=(const QHash &other) 8657: { 8657: if (d != other.d) { 8657: QHashData *o = other.d; 8657: o->ref.ref(); 8657: if (!d->ref.deref()) 8657: freeData(d); 8657: d = o; 8657: if (!d->sharable) 8657: detach_helper(); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: inline const T QHash::value(const Key &akey) const 8657: { 8657: Node *node; 8657: if (d->size == 0 || (node = *findNode(akey)) == e) { 8657: return T(); 8657: } else { 8657: return node->value; 8657: } 8657: } 8657: 8657: template 8657: inline const T QHash::value(const Key &akey, const T &adefaultValue) const 8657: { 8657: Node *node; 8657: if (d->size == 0 || (node = *findNode(akey)) == e) { 8657: return adefaultValue; 8657: } else { 8657: return node->value; 8657: } 8657: } 8657: 8657: template 8657: QList QHash::uniqueKeys() const 8657: { 8657: QList res; 8657: res.reserve(size()); 8657: const_iterator i = begin(); 8657: if (i != end()) { 8657: for (;;) { 8657: const Key &aKey = i.key(); 8657: res.append(aKey); 8657: do { 8657: if (++i == end()) 8657: goto break_out_of_outer_loop; 8657: } while (aKey == i.key()); 8657: } 8657: } 8657: break_out_of_outer_loop: 8657: return res; 8657: } 8657: 8657: template 8657: QList QHash::keys() const 8657: { 8657: QList res; 8657: res.reserve(size()); 8657: const_iterator i = begin(); 8657: while (i != end()) { 8657: res.append(i.key()); 8657: ++i; 8657: } 8657: return res; 8657: } 8657: 8657: template 8657: QList QHash::keys(const T &avalue) const 8657: { 8657: QList res; 8657: const_iterator i = begin(); 8657: while (i != end()) { 8657: if (i.value() == avalue) 8657: res.append(i.key()); 8657: ++i; 8657: } 8657: return res; 8657: } 8657: 8657: template 8657: const Key QHash::key(const T &avalue) const 8657: { 8657: return key(avalue, Key()); 8657: } 8657: 8657: template 8657: const Key QHash::key(const T &avalue, const Key &defaultValue) const 8657: { 8657: const_iterator i = begin(); 8657: while (i != end()) { 8657: if (i.value() == avalue) 8657: return i.key(); 8657: ++i; 8657: } 8657: 8657: return defaultValue; 8657: } 8657: 8657: template 8657: QList QHash::values() const 8657: { 8657: QList res; 8657: res.reserve(size()); 8657: const_iterator i = begin(); 8657: while (i != end()) { 8657: res.append(i.value()); 8657: ++i; 8657: } 8657: return res; 8657: } 8657: 8657: template 8657: QList QHash::values(const Key &akey) const 8657: { 8657: QList res; 8657: Node *node = *findNode(akey); 8657: if (node != e) { 8657: do { 8657: res.append(node->value); 8657: } while ((node = node->next) != e && node->key == akey); 8657: } 8657: return res; 8657: } 8657: 8657: template 8657: int QHash::count(const Key &akey) const 8657: { 8657: int cnt = 0; 8657: Node *node = *findNode(akey); 8657: if (node != e) { 8657: do { 8657: ++cnt; 8657: } while ((node = node->next) != e && node->key == akey); 8657: } 8657: return cnt; 8657: } 8657: 8657: template 8657: inline const T QHash::operator[](const Key &akey) const 8657: { 8657: return value(akey); 8657: } 8657: 8657: template 8657: inline T &QHash::operator[](const Key &akey) 8657: { 8657: detach(); 8657: 8657: uint h; 8657: Node **node = findNode(akey, &h); 8657: if (*node == e) { 8657: if (d->willGrow()) 8657: node = findNode(akey, h); 8657: return createNode(h, akey, T(), node)->value; 8657: } 8657: return (*node)->value; 8657: } 8657: 8657: template 8657: inline typename QHash::iterator QHash::insert(const Key &akey, 8657: const T &avalue) 8657: { 8657: detach(); 8657: 8657: uint h; 8657: Node **node = findNode(akey, &h); 8657: if (*node == e) { 8657: if (d->willGrow()) 8657: node = findNode(akey, h); 8657: return iterator(createNode(h, akey, avalue, node)); 8657: } 8657: 8657: if (!std::is_same::value) 8657: (*node)->value = avalue; 8657: return iterator(*node); 8657: } 8657: 8657: template 8657: inline typename QHash::iterator QHash::insertMulti(const Key &akey, 8657: const T &avalue) 8657: { 8657: detach(); 8657: d->willGrow(); 8657: 8657: uint h; 8657: Node **nextNode = findNode(akey, &h); 8657: return iterator(createNode(h, akey, avalue, nextNode)); 8657: } 8657: 8657: template 8657: int QHash::remove(const Key &akey) 8657: { 8657: if (isEmpty()) 8657: return 0; 8657: detach(); 8657: 8657: int oldSize = d->size; 8657: Node **node = findNode(akey); 8657: if (*node != e) { 8657: bool deleteNext = true; 8657: do { 8657: Node *next = (*node)->next; 8657: deleteNext = (next != e && next->key == (*node)->key); 8657: deleteNode(*node); 8657: *node = next; 8657: --d->size; 8657: } while (deleteNext); 8657: d->hasShrunk(); 8657: } 8657: return oldSize - d->size; 8657: } 8657: 8657: template 8657: T QHash::take(const Key &akey) 8657: { 8657: if (isEmpty()) 8657: return T(); 8657: detach(); 8657: 8657: Node **node = findNode(akey); 8657: if (*node != e) { 8657: T t = (*node)->value; 8657: Node *next = (*node)->next; 8657: deleteNode(*node); 8657: *node = next; 8657: --d->size; 8657: d->hasShrunk(); 8657: return t; 8657: } 8657: return T(); 8657: } 8657: 8657: template 8657: typename QHash::iterator QHash::erase(const_iterator it) 8657: { 8657: do { } while ((false) && (isValidIterator(it))); 8657: 8657: if (it == const_iterator(e)) 8657: return iterator(it.i); 8657: 8657: if (d->ref.isShared()) { 8657: 8657: int bucketNum = (it.i->h % d->numBuckets); 8657: const_iterator bucketIterator(*(d->buckets + bucketNum)); 8657: int stepsFromBucketStartToIte = 0; 8657: while (bucketIterator != it) { 8657: ++stepsFromBucketStartToIte; 8657: ++bucketIterator; 8657: } 8657: detach(); 8657: it = const_iterator(*(d->buckets + bucketNum)); 8657: while (stepsFromBucketStartToIte > 0) { 8657: --stepsFromBucketStartToIte; 8657: ++it; 8657: } 8657: } 8657: 8657: iterator ret(it.i); 8657: ++ret; 8657: 8657: Node *node = concrete(it.i); 8657: Node **node_ptr = reinterpret_cast(&d->buckets[node->h % d->numBuckets]); 8657: while (*node_ptr != node) 8657: node_ptr = &(*node_ptr)->next; 8657: *node_ptr = node->next; 8657: deleteNode(node); 8657: --d->size; 8657: return ret; 8657: } 8657: 8657: template 8657: inline void QHash::reserve(int asize) 8657: { 8657: detach(); 8657: d->rehash(-qMax(asize, 1)); 8657: } 8657: 8657: template 8657: inline typename QHash::const_iterator QHash::find(const Key &akey) const 8657: { 8657: return const_iterator(*findNode(akey)); 8657: } 8657: 8657: template 8657: inline typename QHash::const_iterator QHash::constFind(const Key &akey) const 8657: { 8657: return const_iterator(*findNode(akey)); 8657: } 8657: 8657: template 8657: inline typename QHash::iterator QHash::find(const Key &akey) 8657: { 8657: detach(); 8657: return iterator(*findNode(akey)); 8657: } 8657: 8657: template 8657: inline bool QHash::contains(const Key &akey) const 8657: { 8657: return *findNode(akey) != e; 8657: } 8657: 8657: template 8657: typename QHash::Node **QHash::findNode(const Key &akey, uint h) const 8657: { 8657: Node **node; 8657: 8657: if (d->numBuckets) { 8657: node = reinterpret_cast(&d->buckets[h % d->numBuckets]); 8657: do { } while ((false) && (*node == e || (*node)->next)); 8657: while (*node != e && !(*node)->same_key(h, akey)) 8657: node = &(*node)->next; 8657: } else { 8657: node = const_cast(reinterpret_cast(&e)); 8657: } 8657: return node; 8657: } 8657: 8657: template 8657: typename QHash::Node **QHash::findNode(const Key &akey, 8657: uint *ahp) const 8657: { 8657: uint h = 0; 8657: 8657: if (d->numBuckets || ahp) { 8657: h = qHash(akey, d->seed); 8657: if (ahp) 8657: *ahp = h; 8657: } 8657: return findNode(akey, h); 8657: } 8657: 8657: template 8657: bool QHash::operator==(const QHash &other) const 8657: { 8657: if (size() != other.size()) 8657: return false; 8657: if (d == other.d) 8657: return true; 8657: 8657: const_iterator it = begin(); 8657: 8657: while (it != end()) { 8657: 8657: 8657: auto thisEqualRangeEnd = it; 8657: while (thisEqualRangeEnd != end() && it.key() == thisEqualRangeEnd.key()) 8657: ++thisEqualRangeEnd; 8657: 8657: const auto otherEqualRange = other.equal_range(it.key()); 8657: 8657: if (std::distance(it, thisEqualRangeEnd) != std::distance(otherEqualRange.first, otherEqualRange.second)) 8657: return false; 8657: # 962 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhash.h" 3 4 8657: if (!std::is_permutation(it, thisEqualRangeEnd, otherEqualRange.first 8657: 8657: 8657: 8657: )) { 8657: return false; 8657: } 8657: 8657: it = thisEqualRangeEnd; 8657: } 8657: 8657: return true; 8657: } 8657: 8657: template 8657: QPair::iterator, typename QHash::iterator> QHash::equal_range(const Key &akey) 8657: { 8657: detach(); 8657: auto pair = qAsConst(*this).equal_range(akey); 8657: return qMakePair(iterator(pair.first.i), iterator(pair.second.i)); 8657: } 8657: 8657: template 8657: QPair::const_iterator, typename QHash::const_iterator> QHash::equal_range(const Key &akey) const noexcept 8657: { 8657: Node *node = *findNode(akey); 8657: const_iterator firstIt = const_iterator(node); 8657: 8657: if (node != e) { 8657: 8657: 8657: 8657: 8657: while (node->next != e && node->next->key == akey) 8657: node = node->next; 8657: 8657: 8657: 8657: 8657: 8657: node = concrete(QHashData::nextNode(reinterpret_cast(node))); 8657: } 8657: 8657: return qMakePair(firstIt, const_iterator(node)); 8657: } 8657: 8657: template 8657: class QMultiHash : public QHash 8657: { 8657: public: 8657: QMultiHash() noexcept {} 8657: 8657: inline QMultiHash(std::initializer_list > list) 8657: { 8657: this->reserve(int(list.size())); 8657: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8657: insert(it->first, it->second); 8657: } 8657: 8657: 8657: 8657: 8657: QMultiHash(const QHash &other) : QHash(other) {} 8657: 8657: QMultiHash(QHash &&other) noexcept : QHash(std::move(other)) {} 8657: 8657: void swap(QMultiHash &other) noexcept { QHash::swap(other); } 8657: 8657: inline typename QHash::iterator replace(const Key &key, const T &value) 8657: { return QHash::insert(key, value); } 8657: 8657: inline typename QHash::iterator insert(const Key &key, const T &value) 8657: { return QHash::insertMulti(key, value); } 8657: 8657: inline QMultiHash &operator+=(const QMultiHash &other) 8657: { this->unite(other); return *this; } 8657: inline QMultiHash operator+(const QMultiHash &other) const 8657: { QMultiHash result = *this; result += other; return result; } 8657: 8657: using QHash::contains; 8657: using QHash::remove; 8657: using QHash::count; 8657: using QHash::find; 8657: using QHash::constFind; 8657: 8657: bool contains(const Key &key, const T &value) const; 8657: 8657: int remove(const Key &key, const T &value); 8657: 8657: int count(const Key &key, const T &value) const; 8657: 8657: typename QHash::iterator find(const Key &key, const T &value) { 8657: typename QHash::iterator i(find(key)); 8657: typename QHash::iterator end(this->end()); 8657: while (i != end && i.key() == key) { 8657: if (i.value() == value) 8657: return i; 8657: ++i; 8657: } 8657: return end; 8657: } 8657: typename QHash::const_iterator find(const Key &key, const T &value) const { 8657: typename QHash::const_iterator i(constFind(key)); 8657: typename QHash::const_iterator end(QHash::constEnd()); 8657: while (i != end && i.key() == key) { 8657: if (i.value() == value) 8657: return i; 8657: ++i; 8657: } 8657: return end; 8657: } 8657: typename QHash::const_iterator constFind(const Key &key, const T &value) const 8657: { return find(key, value); } 8657: private: 8657: T &operator[](const Key &key); 8657: const T operator[](const Key &key) const; 8657: }; 8657: 8657: template 8657: inline bool QMultiHash::contains(const Key &key, const T &value) const 8657: { 8657: return constFind(key, value) != QHash::constEnd(); 8657: } 8657: 8657: template 8657: inline int QMultiHash::remove(const Key &key, const T &value) 8657: { 8657: int n = 0; 8657: typename QHash::iterator i(find(key)); 8657: typename QHash::iterator end(QHash::end()); 8657: while (i != end && i.key() == key) { 8657: if (i.value() == value) { 8657: i = this->erase(i); 8657: ++n; 8657: } else { 8657: ++i; 8657: } 8657: } 8657: return n; 8657: } 8657: 8657: template 8657: inline int QMultiHash::count(const Key &key, const T &value) const 8657: { 8657: int n = 0; 8657: typename QHash::const_iterator i(constFind(key)); 8657: typename QHash::const_iterator end(QHash::constEnd()); 8657: while (i != end && i.key() == key) { 8657: if (i.value() == value) 8657: ++n; 8657: ++i; 8657: } 8657: return n; 8657: } 8657: 8657: template class QHashIterator { typedef typename QHash::const_iterator const_iterator; typedef const_iterator Item; QHash c; const_iterator i, n; inline bool item_exists() const { return n != c.constEnd(); } public: inline QHashIterator(const QHash &container) : c(container), i(c.constBegin()), n(c.constEnd()) {} inline QHashIterator &operator=(const QHash &container) { c = container; i = c.constBegin(); n = c.constEnd(); return *this; } inline void toFront() { i = c.constBegin(); n = c.constEnd(); } inline void toBack() { i = c.constEnd(); n = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline Item next() { n = i++; return n; } inline Item peekNext() const { return i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline Item previous() { n = --i; return n; } inline Item peekPrevious() const { const_iterator p = i; return --p; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline const Key &key() const { do { } while ((false) && (item_exists())); return n.key(); } inline bool findNext(const T &t) { while ((n = i) != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(n = --i) == t) return true; n = c.constEnd(); return false; } }; 8657: template class QMutableHashIterator { typedef typename QHash::iterator iterator; typedef typename QHash::const_iterator const_iterator; typedef iterator Item; QHash *c; iterator i, n; inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } public: inline QMutableHashIterator(QHash &container) : c(&container) { i = c->begin(); n = c->end(); } inline QMutableHashIterator &operator=(QHash &container) { c = &container; i = c->begin(); n = c->end(); return *this; } inline void toFront() { i = c->begin(); n = c->end(); } inline void toBack() { i = c->end(); n = c->end(); } inline bool hasNext() const { return const_iterator(i) != c->constEnd(); } inline Item next() { n = i++; return n; } inline Item peekNext() const { return i; } inline bool hasPrevious() const { return const_iterator(i) != c->constBegin(); } inline Item previous() { n = --i; return n; } inline Item peekPrevious() const { iterator p = i; return --p; } inline void remove() { if (const_iterator(n) != c->constEnd()) { i = c->erase(n); n = c->end(); } } inline void setValue(const T &t) { if (const_iterator(n) != c->constEnd()) *n = t; } inline T &value() { do { } while ((false) && (item_exists())); return *n; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline const Key &key() const { do { } while ((false) && (item_exists())); return n.key(); } inline bool findNext(const T &t) { while (const_iterator(n = i) != c->constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (const_iterator(i) != c->constBegin()) if (*(n = --i) == t) return true; n = c->end(); return false; } }; 8657: 8657: template 8657: uint qHash(const QHash &key, uint seed = 0) 8657: noexcept(noexcept(qHash(std::declval())) && noexcept(qHash(std::declval()))) 8657: { 8657: QtPrivate::QHashCombineCommutative hash; 8657: for (auto it = key.begin(), end = key.end(); it != end; ++it) { 8657: const Key &k = it.key(); 8657: const T &v = it.value(); 8657: seed = hash(seed, std::pair(k, v)); 8657: } 8657: return seed; 8657: } 8657: 8657: template 8657: inline uint qHash(const QMultiHash &key, uint seed = 0) 8657: noexcept(noexcept(qHash(std::declval())) && noexcept(qHash(std::declval()))) 8657: { 8657: const QHash &key2 = key; 8657: return qHash(key2, seed); 8657: } 8657: 8657: 8657: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 2 3 4 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringlist.h" 1 3 4 8657: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 1 3 4 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qscopedpointer.h" 1 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qscopedpointer.h" 3 4 8657: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8657: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qscopedpointer.h" 2 3 4 8657: 8657: 8657: 8657: template 8657: struct QScopedPointerDeleter 8657: { 8657: static inline void cleanup(T *pointer) 8657: { 8657: 8657: 8657: 8657: typedef char IsIncompleteType[ sizeof(T) ? 1 : -1 ]; 8657: (void) sizeof(IsIncompleteType); 8657: 8657: delete pointer; 8657: } 8657: }; 8657: 8657: template 8657: struct QScopedPointerArrayDeleter 8657: { 8657: static inline void cleanup(T *pointer) 8657: { 8657: 8657: 8657: 8657: typedef char IsIncompleteType[ sizeof(T) ? 1 : -1 ]; 8657: (void) sizeof(IsIncompleteType); 8657: 8657: delete [] pointer; 8657: } 8657: }; 8657: 8657: struct QScopedPointerPodDeleter 8657: { 8657: static inline void cleanup(void *pointer) { if (pointer) free(pointer); } 8657: }; 8657: 8657: 8657: template 8657: struct QScopedPointerObjectDeleteLater 8657: { 8657: static inline void cleanup(T *pointer) { if (pointer) pointer->deleteLater(); } 8657: }; 8657: 8657: class QObject; 8657: typedef QScopedPointerObjectDeleteLater QScopedPointerDeleteLater; 8657: 8657: 8657: template > 8657: class QScopedPointer 8657: { 8657: typedef T *QScopedPointer:: *RestrictedBool; 8657: public: 8657: explicit QScopedPointer(T *p = nullptr) noexcept : d(p) 8657: { 8657: } 8657: 8657: inline ~QScopedPointer() 8657: { 8657: T *oldD = this->d; 8657: Cleanup::cleanup(oldD); 8657: } 8657: 8657: inline T &operator*() const 8657: { 8657: do { } while ((false) && (d)); 8657: return *d; 8657: } 8657: 8657: T *operator->() const noexcept 8657: { 8657: return d; 8657: } 8657: 8657: bool operator!() const noexcept 8657: { 8657: return !d; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: operator RestrictedBool() const noexcept 8657: { 8657: return isNull() ? nullptr : &QScopedPointer::d; 8657: } 8657: 8657: 8657: T *data() const noexcept 8657: { 8657: return d; 8657: } 8657: 8657: bool isNull() const noexcept 8657: { 8657: return !d; 8657: } 8657: 8657: void reset(T *other = nullptr) noexcept(noexcept(Cleanup::cleanup(std::declval()))) 8657: { 8657: if (d == other) 8657: return; 8657: T *oldD = d; 8657: d = other; 8657: Cleanup::cleanup(oldD); 8657: } 8657: 8657: T *take() noexcept 8657: { 8657: T *oldD = d; 8657: d = nullptr; 8657: return oldD; 8657: } 8657: 8657: void swap(QScopedPointer &other) noexcept 8657: { 8657: qSwap(d, other.d); 8657: } 8657: 8657: typedef T *pointer; 8657: 8657: protected: 8657: T *d; 8657: 8657: private: 8657: QScopedPointer(const QScopedPointer &) = delete; QScopedPointer &operator=(const QScopedPointer &) = delete; 8657: }; 8657: 8657: template 8657: inline bool operator==(const QScopedPointer &lhs, const QScopedPointer &rhs) noexcept 8657: { 8657: return lhs.data() == rhs.data(); 8657: } 8657: 8657: template 8657: inline bool operator!=(const QScopedPointer &lhs, const QScopedPointer &rhs) noexcept 8657: { 8657: return lhs.data() != rhs.data(); 8657: } 8657: 8657: template 8657: inline bool operator==(const QScopedPointer &lhs, std::nullptr_t) noexcept 8657: { 8657: return lhs.isNull(); 8657: } 8657: 8657: template 8657: inline bool operator==(std::nullptr_t, const QScopedPointer &rhs) noexcept 8657: { 8657: return rhs.isNull(); 8657: } 8657: 8657: template 8657: inline bool operator!=(const QScopedPointer &lhs, std::nullptr_t) noexcept 8657: { 8657: return !lhs.isNull(); 8657: } 8657: 8657: template 8657: inline bool operator!=(std::nullptr_t, const QScopedPointer &rhs) noexcept 8657: { 8657: return !rhs.isNull(); 8657: } 8657: 8657: template 8657: inline void swap(QScopedPointer &p1, QScopedPointer &p2) noexcept 8657: { p1.swap(p2); } 8657: 8657: 8657: namespace QtPrivate { 8657: template struct QScopedArrayEnsureSameType; 8657: template struct QScopedArrayEnsureSameType { typedef X* Type; }; 8657: template struct QScopedArrayEnsureSameType { typedef X* Type; }; 8657: } 8657: 8657: template > 8657: class QScopedArrayPointer : public QScopedPointer 8657: { 8657: public: 8657: inline QScopedArrayPointer() : QScopedPointer(nullptr) {} 8657: 8657: template 8657: explicit inline QScopedArrayPointer(D *p, typename QtPrivate::QScopedArrayEnsureSameType::Type = nullptr) 8657: : QScopedPointer(p) 8657: { 8657: } 8657: 8657: inline T &operator[](int i) 8657: { 8657: return this->d[i]; 8657: } 8657: 8657: inline const T &operator[](int i) const 8657: { 8657: return this->d[i]; 8657: } 8657: 8657: void swap(QScopedArrayPointer &other) noexcept 8657: { QScopedPointer::swap(other); } 8657: 8657: private: 8657: explicit inline QScopedArrayPointer(void *) { 8657: # 260 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qscopedpointer.h" 3 4 8657: } 8657: 8657: QScopedArrayPointer(const QScopedArrayPointer &) = delete; QScopedArrayPointer &operator=(const QScopedArrayPointer &) = delete; 8657: }; 8657: 8657: template 8657: inline void swap(QScopedArrayPointer &lhs, QScopedArrayPointer &rhs) noexcept 8657: { lhs.swap(rhs); } 8657: 8657: 8657: # 54 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 2 3 4 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject_impl.h" 1 3 4 8657: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject_impl.h" 3 4 8657: 8657: 8657: 8657: namespace QtPrivate { 8657: # 65 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject_impl.h" 3 4 8657: template struct TypesAreDeclaredMetaType { enum { Value = false }; }; 8657: template <> struct TypesAreDeclaredMetaType> { enum { Value = true }; }; 8657: template struct TypesAreDeclaredMetaType > 8657: { enum { Value = QMetaTypeId2::Defined && TypesAreDeclaredMetaType>::Value }; }; 8657: 8657: template ::Value > struct ConnectionTypes 8657: { static const int *types() { return nullptr; } }; 8657: template <> struct ConnectionTypes, true> 8657: { static const int *types() { return nullptr; } }; 8657: template struct ConnectionTypes, true> 8657: { static const int *types() { static const int t[sizeof...(Args) + 1] = { (QtPrivate::QMetaTypeIdHelper::qt_metatype_id())..., 0 }; return t; } }; 8657: 8657: 8657: class QSlotObjectBase { 8657: QAtomicInt m_ref; 8657: 8657: 8657: 8657: typedef void (*ImplFn)(int which, QSlotObjectBase* this_, QObject *receiver, void **args, bool *ret); 8657: const ImplFn m_impl; 8657: protected: 8657: enum Operation { 8657: Destroy, 8657: Call, 8657: Compare, 8657: 8657: NumOperations 8657: }; 8657: public: 8657: explicit QSlotObjectBase(ImplFn fn) : m_ref(1), m_impl(fn) {} 8657: 8657: inline int ref() noexcept { return m_ref.ref(); } 8657: inline void destroyIfLastRef() noexcept 8657: { if (!m_ref.deref()) m_impl(Destroy, this, nullptr, nullptr, nullptr); } 8657: 8657: inline bool compare(void **a) { bool ret = false; m_impl(Compare, this, nullptr, a, &ret); return ret; } 8657: inline void call(QObject *r, void **a) { m_impl(Call, this, r, a, nullptr); } 8657: protected: 8657: ~QSlotObjectBase() {} 8657: private: 8657: QSlotObjectBase(const QSlotObjectBase &) = delete; QSlotObjectBase &operator=(const QSlotObjectBase &) = delete; 8657: }; 8657: 8657: 8657: template class QSlotObject : public QSlotObjectBase 8657: { 8657: typedef QtPrivate::FunctionPointer FuncType; 8657: Func function; 8657: static void impl(int which, QSlotObjectBase *this_, QObject *r, void **a, bool *ret) 8657: { 8657: switch (which) { 8657: case Destroy: 8657: delete static_cast(this_); 8657: break; 8657: case Call: 8657: FuncType::template call(static_cast(this_)->function, static_cast(r), a); 8657: break; 8657: case Compare: 8657: *ret = *reinterpret_cast(a) == static_cast(this_)->function; 8657: break; 8657: case NumOperations: ; 8657: } 8657: } 8657: public: 8657: explicit QSlotObject(Func f) : QSlotObjectBase(&impl), function(f) {} 8657: }; 8657: 8657: 8657: template class QStaticSlotObject : public QSlotObjectBase 8657: { 8657: typedef QtPrivate::FunctionPointer FuncType; 8657: Func function; 8657: static void impl(int which, QSlotObjectBase *this_, QObject *r, void **a, bool *ret) 8657: { 8657: switch (which) { 8657: case Destroy: 8657: delete static_cast(this_); 8657: break; 8657: case Call: 8657: FuncType::template call(static_cast(this_)->function, r, a); 8657: break; 8657: case Compare: 8657: case NumOperations: 8657: (void)ret;; 8657: } 8657: } 8657: public: 8657: explicit QStaticSlotObject(Func f) : QSlotObjectBase(&impl), function(f) {} 8657: }; 8657: 8657: 8657: 8657: template class QFunctorSlotObject : public QSlotObjectBase 8657: { 8657: typedef QtPrivate::Functor FuncType; 8657: Func function; 8657: static void impl(int which, QSlotObjectBase *this_, QObject *r, void **a, bool *ret) 8657: { 8657: switch (which) { 8657: case Destroy: 8657: delete static_cast(this_); 8657: break; 8657: case Call: 8657: FuncType::template call(static_cast(this_)->function, r, a); 8657: break; 8657: case Compare: 8657: case NumOperations: 8657: (void)ret;; 8657: } 8657: } 8657: public: 8657: explicit QFunctorSlotObject(const Func &f) : QSlotObjectBase(&impl), function(f) {} 8657: }; 8657: } 8657: 8657: 8657: 8657: # 57 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 2 3 4 8657: 8657: 8657: # 1 "/usr/include/c++/8/chrono" 1 3 4 8657: # 32 "/usr/include/c++/8/chrono" 3 4 8657: 8657: # 33 "/usr/include/c++/8/chrono" 3 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/ratio" 1 3 8657: # 32 "/usr/include/c++/8/ratio" 3 8657: 8657: # 33 "/usr/include/c++/8/ratio" 3 8657: # 43 "/usr/include/c++/8/ratio" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 55 "/usr/include/c++/8/ratio" 3 8657: template 8657: struct __static_sign 8657: : integral_constant 8657: { }; 8657: 8657: template 8657: struct __static_abs 8657: : integral_constant::value> 8657: { }; 8657: 8657: template 8657: struct __static_gcd 8657: : __static_gcd<_Qn, (_Pn % _Qn)> 8657: { }; 8657: 8657: template 8657: struct __static_gcd<_Pn, 0> 8657: : integral_constant::value> 8657: { }; 8657: 8657: template 8657: struct __static_gcd<0, _Qn> 8657: : integral_constant::value> 8657: { }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct __safe_multiply 8657: { 8657: private: 8657: static const uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 8657: 8657: static const uintmax_t __a0 = __static_abs<_Pn>::value % __c; 8657: static const uintmax_t __a1 = __static_abs<_Pn>::value / __c; 8657: static const uintmax_t __b0 = __static_abs<_Qn>::value % __c; 8657: static const uintmax_t __b1 = __static_abs<_Qn>::value / __c; 8657: 8657: static_assert(__a1 == 0 || __b1 == 0, 8657: "overflow in multiplication"); 8657: static_assert(__a0 * __b1 + __b0 * __a1 < (__c >> 1), 8657: "overflow in multiplication"); 8657: static_assert(__b0 * __a0 <= 0x7fffffffffffffffLL, 8657: "overflow in multiplication"); 8657: static_assert((__a0 * __b1 + __b0 * __a1) * __c 8657: <= 0x7fffffffffffffffLL - __b0 * __a0, 8657: "overflow in multiplication"); 8657: 8657: public: 8657: static const intmax_t value = _Pn * _Qn; 8657: }; 8657: 8657: 8657: 8657: template 8657: struct __big_less 8657: : integral_constant 8657: { }; 8657: 8657: template 8657: struct __big_add 8657: { 8657: static constexpr uintmax_t __lo = __lo1 + __lo2; 8657: static constexpr uintmax_t __hi = (__hi1 + __hi2 + 8657: (__lo1 + __lo2 < __lo1)); 8657: }; 8657: 8657: 8657: template 8657: struct __big_sub 8657: { 8657: static_assert(!__big_less<__hi1, __lo1, __hi2, __lo2>::value, 8657: "Internal library error"); 8657: static constexpr uintmax_t __lo = __lo1 - __lo2; 8657: static constexpr uintmax_t __hi = (__hi1 - __hi2 - 8657: (__lo1 < __lo2)); 8657: }; 8657: 8657: 8657: template 8657: struct __big_mul 8657: { 8657: private: 8657: static constexpr uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 8657: static constexpr uintmax_t __x0 = __x % __c; 8657: static constexpr uintmax_t __x1 = __x / __c; 8657: static constexpr uintmax_t __y0 = __y % __c; 8657: static constexpr uintmax_t __y1 = __y / __c; 8657: static constexpr uintmax_t __x0y0 = __x0 * __y0; 8657: static constexpr uintmax_t __x0y1 = __x0 * __y1; 8657: static constexpr uintmax_t __x1y0 = __x1 * __y0; 8657: static constexpr uintmax_t __x1y1 = __x1 * __y1; 8657: static constexpr uintmax_t __mix = __x0y1 + __x1y0; 8657: static constexpr uintmax_t __mix_lo = __mix * __c; 8657: static constexpr uintmax_t __mix_hi 8657: = __mix / __c + ((__mix < __x0y1) ? __c : 0); 8657: typedef __big_add<__mix_hi, __mix_lo, __x1y1, __x0y0> _Res; 8657: public: 8657: static constexpr uintmax_t __hi = _Res::__hi; 8657: static constexpr uintmax_t __lo = _Res::__lo; 8657: }; 8657: 8657: 8657: 8657: template 8657: struct __big_div_impl 8657: { 8657: private: 8657: static_assert(__d >= (uintmax_t(1) << (sizeof(intmax_t) * 8 - 1)), 8657: "Internal library error"); 8657: static_assert(__n1 < __d, "Internal library error"); 8657: static constexpr uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 8657: static constexpr uintmax_t __d1 = __d / __c; 8657: static constexpr uintmax_t __d0 = __d % __c; 8657: 8657: static constexpr uintmax_t __q1x = __n1 / __d1; 8657: static constexpr uintmax_t __r1x = __n1 % __d1; 8657: static constexpr uintmax_t __m = __q1x * __d0; 8657: static constexpr uintmax_t __r1y = __r1x * __c + __n0 / __c; 8657: static constexpr uintmax_t __r1z = __r1y + __d; 8657: static constexpr uintmax_t __r1 8657: = ((__r1y < __m) ? ((__r1z >= __d) && (__r1z < __m)) 8657: ? (__r1z + __d) : __r1z : __r1y) - __m; 8657: static constexpr uintmax_t __q1 8657: = __q1x - ((__r1y < __m) 8657: ? ((__r1z >= __d) && (__r1z < __m)) ? 2 : 1 : 0); 8657: static constexpr uintmax_t __q0x = __r1 / __d1; 8657: static constexpr uintmax_t __r0x = __r1 % __d1; 8657: static constexpr uintmax_t __n = __q0x * __d0; 8657: static constexpr uintmax_t __r0y = __r0x * __c + __n0 % __c; 8657: static constexpr uintmax_t __r0z = __r0y + __d; 8657: static constexpr uintmax_t __r0 8657: = ((__r0y < __n) ? ((__r0z >= __d) && (__r0z < __n)) 8657: ? (__r0z + __d) : __r0z : __r0y) - __n; 8657: static constexpr uintmax_t __q0 8657: = __q0x - ((__r0y < __n) ? ((__r0z >= __d) 8657: && (__r0z < __n)) ? 2 : 1 : 0); 8657: 8657: public: 8657: static constexpr uintmax_t __quot = __q1 * __c + __q0; 8657: static constexpr uintmax_t __rem = __r0; 8657: 8657: private: 8657: typedef __big_mul<__quot, __d> _Prod; 8657: typedef __big_add<_Prod::__hi, _Prod::__lo, 0, __rem> _Sum; 8657: static_assert(_Sum::__hi == __n1 && _Sum::__lo == __n0, 8657: "Internal library error"); 8657: }; 8657: 8657: template 8657: struct __big_div 8657: { 8657: private: 8657: static_assert(__d != 0, "Internal library error"); 8657: static_assert(sizeof (uintmax_t) == sizeof (unsigned long long), 8657: "This library calls __builtin_clzll on uintmax_t, which " 8657: "is unsafe on your platform. Please complain to " 8657: "http://gcc.gnu.org/bugzilla/"); 8657: static constexpr int __shift = __builtin_clzll(__d); 8657: static constexpr int __coshift_ = sizeof(uintmax_t) * 8 - __shift; 8657: static constexpr int __coshift = (__shift != 0) ? __coshift_ : 0; 8657: static constexpr uintmax_t __c1 = uintmax_t(1) << __shift; 8657: static constexpr uintmax_t __c2 = uintmax_t(1) << __coshift; 8657: static constexpr uintmax_t __new_d = __d * __c1; 8657: static constexpr uintmax_t __new_n0 = __n0 * __c1; 8657: static constexpr uintmax_t __n1_shifted = (__n1 % __d) * __c1; 8657: static constexpr uintmax_t __n0_top = (__shift != 0) ? (__n0 / __c2) : 0; 8657: static constexpr uintmax_t __new_n1 = __n1_shifted + __n0_top; 8657: typedef __big_div_impl<__new_n1, __new_n0, __new_d> _Res; 8657: 8657: public: 8657: static constexpr uintmax_t __quot_hi = __n1 / __d; 8657: static constexpr uintmax_t __quot_lo = _Res::__quot; 8657: static constexpr uintmax_t __rem = _Res::__rem / __c1; 8657: 8657: private: 8657: typedef __big_mul<__quot_lo, __d> _P0; 8657: typedef __big_mul<__quot_hi, __d> _P1; 8657: typedef __big_add<_P0::__hi, _P0::__lo, _P1::__lo, __rem> _Sum; 8657: 8657: static_assert(_P1::__hi == 0, "Internal library error"); 8657: static_assert(_Sum::__hi >= _P0::__hi, "Internal library error"); 8657: 8657: static_assert(_Sum::__hi == __n1 && _Sum::__lo == __n0, 8657: "Internal library error"); 8657: static_assert(__rem < __d, "Internal library error"); 8657: }; 8657: # 262 "/usr/include/c++/8/ratio" 3 8657: template 8657: struct ratio 8657: { 8657: static_assert(_Den != 0, "denominator cannot be zero"); 8657: static_assert(_Num >= -0x7fffffffffffffffLL && _Den >= -0x7fffffffffffffffLL, 8657: "out of range"); 8657: 8657: 8657: static constexpr intmax_t num = 8657: _Num * __static_sign<_Den>::value / __static_gcd<_Num, _Den>::value; 8657: 8657: static constexpr intmax_t den = 8657: __static_abs<_Den>::value / __static_gcd<_Num, _Den>::value; 8657: 8657: typedef ratio type; 8657: }; 8657: 8657: template 8657: constexpr intmax_t ratio<_Num, _Den>::num; 8657: 8657: template 8657: constexpr intmax_t ratio<_Num, _Den>::den; 8657: 8657: template 8657: struct __ratio_multiply 8657: { 8657: private: 8657: static const intmax_t __gcd1 = 8657: __static_gcd<_R1::num, _R2::den>::value; 8657: static const intmax_t __gcd2 = 8657: __static_gcd<_R2::num, _R1::den>::value; 8657: 8657: public: 8657: typedef ratio< 8657: __safe_multiply<(_R1::num / __gcd1), 8657: (_R2::num / __gcd2)>::value, 8657: __safe_multiply<(_R1::den / __gcd2), 8657: (_R2::den / __gcd1)>::value> type; 8657: 8657: static constexpr intmax_t num = type::num; 8657: static constexpr intmax_t den = type::den; 8657: }; 8657: 8657: template 8657: constexpr intmax_t __ratio_multiply<_R1, _R2>::num; 8657: 8657: template 8657: constexpr intmax_t __ratio_multiply<_R1, _R2>::den; 8657: 8657: 8657: template 8657: using ratio_multiply = typename __ratio_multiply<_R1, _R2>::type; 8657: 8657: template 8657: struct __ratio_divide 8657: { 8657: static_assert(_R2::num != 0, "division by 0"); 8657: 8657: typedef typename __ratio_multiply< 8657: _R1, 8657: ratio<_R2::den, _R2::num>>::type type; 8657: 8657: static constexpr intmax_t num = type::num; 8657: static constexpr intmax_t den = type::den; 8657: }; 8657: 8657: template 8657: constexpr intmax_t __ratio_divide<_R1, _R2>::num; 8657: 8657: template 8657: constexpr intmax_t __ratio_divide<_R1, _R2>::den; 8657: 8657: 8657: template 8657: using ratio_divide = typename __ratio_divide<_R1, _R2>::type; 8657: 8657: 8657: template 8657: struct ratio_equal 8657: : integral_constant 8657: { }; 8657: 8657: 8657: template 8657: struct ratio_not_equal 8657: : integral_constant::value> 8657: { }; 8657: 8657: 8657: template, 8657: typename _Right = __big_mul<_R2::num,_R1::den> > 8657: struct __ratio_less_impl_1 8657: : integral_constant::value> 8657: { }; 8657: 8657: template::value 8657: != __static_sign<_R2::num>::value)), 8657: bool = (__static_sign<_R1::num>::value == -1 8657: && __static_sign<_R2::num>::value == -1)> 8657: struct __ratio_less_impl 8657: : __ratio_less_impl_1<_R1, _R2>::type 8657: { }; 8657: 8657: template 8657: struct __ratio_less_impl<_R1, _R2, true, false> 8657: : integral_constant 8657: { }; 8657: 8657: template 8657: struct __ratio_less_impl<_R1, _R2, false, true> 8657: : __ratio_less_impl_1, 8657: ratio<-_R1::num, _R1::den> >::type 8657: { }; 8657: 8657: 8657: template 8657: struct ratio_less 8657: : __ratio_less_impl<_R1, _R2>::type 8657: { }; 8657: 8657: 8657: template 8657: struct ratio_less_equal 8657: : integral_constant::value> 8657: { }; 8657: 8657: 8657: template 8657: struct ratio_greater 8657: : integral_constant::value> 8657: { }; 8657: 8657: 8657: template 8657: struct ratio_greater_equal 8657: : integral_constant::value> 8657: { }; 8657: # 421 "/usr/include/c++/8/ratio" 3 8657: template= 0), 8657: bool = (_R2::num >= 0), 8657: bool = ratio_less::value, _R1::den>, 8657: ratio<__static_abs<_R2::num>::value, _R2::den> >::value> 8657: struct __ratio_add_impl 8657: { 8657: private: 8657: typedef typename __ratio_add_impl< 8657: ratio<-_R1::num, _R1::den>, 8657: ratio<-_R2::num, _R2::den> >::type __t; 8657: public: 8657: typedef ratio<-__t::num, __t::den> type; 8657: }; 8657: 8657: 8657: template 8657: struct __ratio_add_impl<_R1, _R2, true, true, __b> 8657: { 8657: private: 8657: static constexpr uintmax_t __g = __static_gcd<_R1::den, _R2::den>::value; 8657: static constexpr uintmax_t __d2 = _R2::den / __g; 8657: typedef __big_mul<_R1::den, __d2> __d; 8657: typedef __big_mul<_R1::num, _R2::den / __g> __x; 8657: typedef __big_mul<_R2::num, _R1::den / __g> __y; 8657: typedef __big_add<__x::__hi, __x::__lo, __y::__hi, __y::__lo> __n; 8657: static_assert(__n::__hi >= __x::__hi, "Internal library error"); 8657: typedef __big_div<__n::__hi, __n::__lo, __g> __ng; 8657: static constexpr uintmax_t __g2 = __static_gcd<__ng::__rem, __g>::value; 8657: typedef __big_div<__n::__hi, __n::__lo, __g2> __n_final; 8657: static_assert(__n_final::__rem == 0, "Internal library error"); 8657: static_assert(__n_final::__quot_hi == 0 && 8657: __n_final::__quot_lo <= 0x7fffffffffffffffLL, "overflow in addition"); 8657: typedef __big_mul<_R1::den / __g2, __d2> __d_final; 8657: static_assert(__d_final::__hi == 0 && 8657: __d_final::__lo <= 0x7fffffffffffffffLL, "overflow in addition"); 8657: public: 8657: typedef ratio<__n_final::__quot_lo, __d_final::__lo> type; 8657: }; 8657: 8657: template 8657: struct __ratio_add_impl<_R1, _R2, false, true, true> 8657: : __ratio_add_impl<_R2, _R1> 8657: { }; 8657: 8657: 8657: template 8657: struct __ratio_add_impl<_R1, _R2, true, false, false> 8657: { 8657: private: 8657: static constexpr uintmax_t __g = __static_gcd<_R1::den, _R2::den>::value; 8657: static constexpr uintmax_t __d2 = _R2::den / __g; 8657: typedef __big_mul<_R1::den, __d2> __d; 8657: typedef __big_mul<_R1::num, _R2::den / __g> __x; 8657: typedef __big_mul<-_R2::num, _R1::den / __g> __y; 8657: typedef __big_sub<__x::__hi, __x::__lo, __y::__hi, __y::__lo> __n; 8657: typedef __big_div<__n::__hi, __n::__lo, __g> __ng; 8657: static constexpr uintmax_t __g2 = __static_gcd<__ng::__rem, __g>::value; 8657: typedef __big_div<__n::__hi, __n::__lo, __g2> __n_final; 8657: static_assert(__n_final::__rem == 0, "Internal library error"); 8657: static_assert(__n_final::__quot_hi == 0 && 8657: __n_final::__quot_lo <= 0x7fffffffffffffffLL, "overflow in addition"); 8657: typedef __big_mul<_R1::den / __g2, __d2> __d_final; 8657: static_assert(__d_final::__hi == 0 && 8657: __d_final::__lo <= 0x7fffffffffffffffLL, "overflow in addition"); 8657: public: 8657: typedef ratio<__n_final::__quot_lo, __d_final::__lo> type; 8657: }; 8657: 8657: template 8657: struct __ratio_add 8657: { 8657: typedef typename __ratio_add_impl<_R1, _R2>::type type; 8657: static constexpr intmax_t num = type::num; 8657: static constexpr intmax_t den = type::den; 8657: }; 8657: 8657: template 8657: constexpr intmax_t __ratio_add<_R1, _R2>::num; 8657: 8657: template 8657: constexpr intmax_t __ratio_add<_R1, _R2>::den; 8657: 8657: 8657: template 8657: using ratio_add = typename __ratio_add<_R1, _R2>::type; 8657: 8657: template 8657: struct __ratio_subtract 8657: { 8657: typedef typename __ratio_add< 8657: _R1, 8657: ratio<-_R2::num, _R2::den>>::type type; 8657: 8657: static constexpr intmax_t num = type::num; 8657: static constexpr intmax_t den = type::den; 8657: }; 8657: 8657: template 8657: constexpr intmax_t __ratio_subtract<_R1, _R2>::num; 8657: 8657: template 8657: constexpr intmax_t __ratio_subtract<_R1, _R2>::den; 8657: 8657: 8657: template 8657: using ratio_subtract = typename __ratio_subtract<_R1, _R2>::type; 8657: 8657: 8657: typedef ratio<1, 1000000000000000000> atto; 8657: typedef ratio<1, 1000000000000000> femto; 8657: typedef ratio<1, 1000000000000> pico; 8657: typedef ratio<1, 1000000000> nano; 8657: typedef ratio<1, 1000000> micro; 8657: typedef ratio<1, 1000> milli; 8657: typedef ratio<1, 100> centi; 8657: typedef ratio<1, 10> deci; 8657: typedef ratio< 10, 1> deca; 8657: typedef ratio< 100, 1> hecto; 8657: typedef ratio< 1000, 1> kilo; 8657: typedef ratio< 1000000, 1> mega; 8657: typedef ratio< 1000000000, 1> giga; 8657: typedef ratio< 1000000000000, 1> tera; 8657: typedef ratio< 1000000000000000, 1> peta; 8657: typedef ratio< 1000000000000000000, 1> exa; 8657: 8657: 8657: 8657: } 8657: # 39 "/usr/include/c++/8/chrono" 2 3 8657: 8657: 8657: # 1 "/usr/include/c++/8/ctime" 1 3 8657: # 39 "/usr/include/c++/8/ctime" 3 8657: 8657: # 40 "/usr/include/c++/8/ctime" 3 8657: # 58 "/usr/include/c++/8/ctime" 3 8657: namespace std 8657: { 8657: using ::clock_t; 8657: using ::time_t; 8657: using ::tm; 8657: 8657: using ::clock; 8657: using ::difftime; 8657: using ::mktime; 8657: using ::time; 8657: using ::asctime; 8657: using ::ctime; 8657: using ::gmtime; 8657: using ::localtime; 8657: using ::strftime; 8657: } 8657: # 42 "/usr/include/c++/8/chrono" 2 3 8657: # 1 "/usr/include/c++/8/bits/parse_numbers.h" 1 3 8657: # 33 "/usr/include/c++/8/bits/parse_numbers.h" 3 8657: 8657: # 34 "/usr/include/c++/8/bits/parse_numbers.h" 3 8657: # 43 "/usr/include/c++/8/chrono" 2 3 8657: 8657: 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 61 "/usr/include/c++/8/chrono" 3 8657: namespace chrono 8657: { 8657: template> 8657: struct duration; 8657: 8657: template 8657: struct time_point; 8657: } 8657: 8657: 8657: 8657: template 8657: struct __duration_common_type_wrapper 8657: { 8657: private: 8657: typedef __static_gcd<_Period1::num, _Period2::num> __gcd_num; 8657: typedef __static_gcd<_Period1::den, _Period2::den> __gcd_den; 8657: typedef typename _CT::type __cr; 8657: typedef ratio<__gcd_num::value, 8657: (_Period1::den / __gcd_den::value) * _Period2::den> __r; 8657: public: 8657: typedef __success_type> type; 8657: }; 8657: 8657: template 8657: struct __duration_common_type_wrapper<__failure_type, _Period1, _Period2> 8657: { typedef __failure_type type; }; 8657: 8657: template 8657: struct common_type, 8657: chrono::duration<_Rep2, _Period2>> 8657: : public __duration_common_type_wrapper>::type, _Period1, _Period2>::type 8657: { }; 8657: 8657: 8657: 8657: template 8657: struct __t[ 94%] Linking CXX executable testfilters_exec imepoint_common_type_wrapper 8657: { 8657: typedef __success_type> 8657: type; 8657: }; 8657: 8657: template 8657: struct __timepoint_common_type_wrapper<__failure_type, _Clock> 8657: { typedef __failure_type type; }; 8657: 8657: template 8657: struct common_type, 8657: chrono::time_point<_Clock, _Duration2>> 8657: : public __timepoint_common_type_wrapper>::type, _Clock>::type 8657: { }; 8657: 8657: namespace chrono 8657: { 8657: 8657: template 8657: struct __duration_cast_impl 8657: { 8657: template 8657: static constexpr _ToDur 8657: __cast(const duration<_Rep, _Period>& __d) 8657: { 8657: typedef typename _ToDur::rep __to_rep; 8657: return _ToDur(static_cast<__to_rep>(static_cast<_CR>(__d.count()) 8657: * static_cast<_CR>(_CF::num) 8657: / static_cast<_CR>(_CF::den))); 8657: } 8657: }; 8657: 8657: template 8657: struct __duration_cast_impl<_ToDur, _CF, _CR, true, true> 8657: { 8657: template 8657: static constexpr _ToDur 8657: __cast(const duration<_Rep, _Period>& __d) 8657: { 8657: typedef typename _ToDur::rep __to_rep; 8657: return _ToDur(static_cast<__to_rep>(__d.count())); 8657: } 8657: }; 8657: 8657: template 8657: struct __duration_cast_impl<_ToDur, _CF, _CR, true, false> 8657: { 8657: template 8657: static constexpr _ToDur 8657: __cast(const duration<_Rep, _Period>& __d) 8657: { 8657: typedef typename _ToDur::rep __to_rep; 8657: return _ToDur(static_cast<__to_rep>( 8657: static_cast<_CR>(__d.count()) / static_cast<_CR>(_CF::den))); 8657: } 8657: }; 8657: 8657: template 8657: struct __duration_cast_impl<_ToDur, _CF, _CR, false, true> 8657: { 8657: template 8657: static constexpr _ToDur 8657: __cast(const duration<_Rep, _Period>& __d) 8657: { 8657: typedef typename _ToDur::rep __to_rep; 8657: return _ToDur(static_cast<__to_rep>( 8657: static_cast<_CR>(__d.count()) * static_cast<_CR>(_CF::num))); 8657: } 8657: }; 8657: 8657: template 8657: struct __is_duration 8657: : std::false_type 8657: { }; 8657: 8657: template 8657: struct __is_duration> 8657: : std::true_type 8657: { }; 8657: 8657: template 8657: using __enable_if_is_duration 8657: = typename enable_if<__is_duration<_Tp>::value, _Tp>::type; 8657: 8657: template 8657: using __disable_if_is_duration 8657: = typename enable_if::value, _Tp>::type; 8657: 8657: 8657: template 8657: constexpr __enable_if_is_duration<_ToDur> 8657: duration_cast(const duration<_Rep, _Period>& __d) 8657: { 8657: typedef typename _ToDur::period __to_period; 8657: typedef typename _ToDur::rep __to_rep; 8657: typedef ratio_divide<_Period, __to_period> __cf; 8657: typedef typename common_type<__to_rep, _Rep, intmax_t>::type 8657: __cr; 8657: typedef __duration_cast_impl<_ToDur, __cf, __cr, 8657: __cf::num == 1, __cf::den == 1> __dc; 8657: return __dc::__cast(__d); 8657: } 8657: 8657: 8657: template 8657: struct treat_as_floating_point 8657: : is_floating_point<_Rep> 8657: { }; 86cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/testfilters_exec.dir/link.txt --verbose=1 57: # 274 "/usr/include/c++/8/chrono" 3 8657: template 8657: struct duration_values 8657: { 8657: static constexpr _Rep 8657: zero() 8657: { return _Rep(0); } 8657: 8657: static constexpr _Rep 8657: max() 8657: { return numeric_limits<_Rep>::max(); } 8657: 8657: static constexpr _Rep 8657: min() 8657: { return numeric_limits<_Rep>::lowest(); } 8657: }; 8657: 8657: template 8657: struct __is_ratio 8657: : std::false_type 8657: { }; 8657: 8657: template 8657: struct __is_ratio> 8657: : std::true_type 8657: { }; 8657: 8657: 8657: template 8657: struct duration 8657: { 8657: private: 8657: template 8657: using __is_float = treat_as_floating_point<_Rep2>; 8657: 8657: 8657: template 8657: using __is_harmonic 8657: = __bool_constant::den == 1>; 8657: 8657: public: 8657: 8657: typedef _Rep rep; 8657: typedef _Period period; 8657: 8657: static_assert(!__is_duration<_Rep>::value, "rep cannot be a duration"); 8657: static_assert(__is_ratio<_Period>::value, 8657: "period must be a specialization of ratio"); 8657: static_assert(_Period::num > 0, "period must be positive"); 8657: 8657: 8657: constexpr duration() = default; 8657: 8657: duration(const duration&) = default; 8657: 8657: template, 8657: __or_<__is_float, __not_<__is_float<_Rep2>>>>> 8657: constexpr explicit duration(const _Rep2& __rep) 8657: : __r(static_cast(__rep)) { } 8657: 8657: template, 8657: __and_<__is_harmonic<_Period2>, 8657: __not_<__is_float<_Rep2>>>>>> 8657: constexpr duration(const duration<_Rep2, _Period2>& __d) 8657: : __r(duration_cast(__d).count()) { } 8657: 8657: ~duration() = default; 8657: duration& operator=(const duration&) = default; 8657: 8657: 8657: constexpr rep 8657: count() const 8657: { return __r; } 8657: 8657: 8657: constexpr duration 8657: operator+() const 8657: { return *this; } 8657: 8657: constexpr duration 8657: operator-() const 8657: { return duration(-__r); } 8657: 8657: duration& 8657: operator++() 8657: { 8657: ++__r; 8657: return *this; 8657: } 8657: 8657: duration 8657: operator++(int) 8657: { return duration(__r++); } 8657: 8657: duration& 8657: operator--() 8657: { 8657: --__r; 8657: return *this; 8657: } 8657: 8657: duration 8657: operator--(int) 8657: { return duration(__r--); } 8657: 8657: duration& 8657: operator+=(const duration& __d) 8657: { 8657: __r += __d.count(); 8657: return *this; 8657: } 8657: 8657: duration& 8657: operator-=(const duration& __d) 8657: { 8657: __r -= __d.count(); 8657: return *this; 8657: } 8657: 8657: duration& 8657: operator*=(const rep& __rhs) 8657: { 8657: __r *= __rhs; 8657: return *this; 8657: } 8657: 8657: duration& 8657: operator/=(const rep& __rhs) 8657: { 8657: __r /= __rhs; 8657: return *this; 8657: } 8657: 8657: 8657: template 8657: 8657: typename enable_if::value, 8657: duration&>::type 8657: operator%=(const rep& __rhs) 8657: { 8657: __r %= __rhs; 8657: return *this; 8657: } 8657: 8657: template 8657: 8657: typename enable_if::value, 8657: duration&>::type 8657: operator%=(const duration& __d) 8657: { 8657: __r %= __d.count(); 8657: return *this; 8657: } 8657: 8657: 8657: static constexpr duration 8657: zero() 8657: { return duration(duration_values::zero()); } 8657: 8657: static constexpr duration 8657: min() 8657: { return duration(duration_values::min()); } 8657: 8657: static constexpr duration 8657: max() 8657: { return duration(duration_values::max()); } 8657: 8657: private: 8657: rep __r; 8657: }; 8657: 8657: template 8657: constexpr typename common_type, 8657: duration<_Rep2, _Period2>>::type 8657: operator+(const duration<_Rep1, _Period1>& __lhs, 8657: const duration<_Rep2, _Period2>& __rhs) 8657: { 8657: typedef duration<_Rep1, _Period1> __dur1; 8657: typedef duration<_Rep2, _Period2> __dur2; 8657: typedef typename common_type<__dur1,__dur2>::type __cd; 8657: return __cd(__cd(__lhs).count() + __cd(__rhs).count()); 8657: } 8657: 8657: template 8657: constexpr typename common_type, 8657: duration<_Rep2, _Period2>>::type 8657: operator-(const duration<_Rep1, _Period1>& __lhs, 8657: const duration<_Rep2, _Period2>& __rhs) 8657: { 8657: typedef duration<_Rep1, _Period1> __dur1; 8657: typedef duration<_Rep2, _Period2> __dur2; 8657: typedef typename common_type<__dur1,__dur2>::type __cd; 8657: return __cd(__cd(__lhs).count() - __cd(__rhs).count()); 8657: } 8657: 8657: 8657: 8657: template::type> 8657: using __common_rep_t 8657: = typename enable_if::value, _CRep>::type; 8657: 8657: template 8657: constexpr duration<__common_rep_t<_Rep1, _Rep2>, _Period> 8657: operator*(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 8657: { 8657: typedef duration::type, _Period> 8657: __cd; 8657: return __cd(__cd(__d).count() * __s); 8657: } 8657: 8657: template 8657: constexpr duration<__common_rep_t<_Rep2, _Rep1>, _Period> 8657: operator*(const _Rep1& __s, const duration<_Rep2, _Period>& __d) 8657: { return __d * __s; } 8657: 8657: template 8657: constexpr 8657: duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period> 8657: operator/(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 8657: { 8657: typedef duration::type, _Period> 8657: __cd; 8657: return __cd(__cd(__d).count() / __s); 8657: } 8657: 8657: template 8657: constexpr typename common_type<_Rep1, _Rep2>::type 8657: operator/(const duration<_Rep1, _Period1>& __lhs, 8657: const duration<_Rep2, _Period2>& __rhs) 8657: { 8657: typedef duration<_Rep1, _Period1> __dur1; 8657: typedef duration<_Rep2, _Period2> __dur2; 8657: typedef typename common_type<__dur1,__dur2>::type __cd; 8657: return __cd(__lhs).count() / __cd(__rhs).count(); 8657: } 8657: 8657: 8657: template 8657: constexpr 8657: duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period> 8657: operator%(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 8657: { 8657: typedef duration::type, _Period> 8657: __cd; 8657: return __cd(__cd(__d).count() % __s); 8657: } 8657: 8657: template 8657: constexpr typename common_type, 8657: duration<_Rep2, _Period2>>::type 8657: operator%(const duration<_Rep1, _Period1>& __lhs, 8657: const duration<_Rep2, _Period2>& __rhs) 8657: { 8657: typedef duration<_Rep1, _Period1> __dur1; 8657: typedef duration<_Rep2, _Period2> __dur2; 8657: typedef typename common_type<__dur1,__dur2>::type __cd; 8657: return __cd(__cd(__lhs).count() % __cd(__rhs).count()); 8657: } 8657: 8657: 8657: template 8657: constexpr bool 8657: operator==(const duration<_Rep1, _Period1>& __lhs, 8657: const duration<_Rep2, _Period2>& __rhs) 8657: { 8657: typedef duration<_Rep1, _Period1> __dur1; 8657: typedef duration<_Rep2, _Period2> __dur2; 8657: typedef typename common_type<__dur1,__dur2>::type __ct; 8657: return __ct(__lhs).count() == __ct(__rhs).count(); 8657: } 8657: 8657: template 8657: constexpr bool 8657: operator<(const duration<_Rep1, _Period1>& __lhs, 8657: const duration<_Rep2, _Period2>& __rhs) 8657: { 8657: typedef duration<_Rep1, _Period1> __dur1; 8657: typedef duration<_Rep2, _Period2> __dur2; 8657: typedef typename common_type<__dur1,__dur2>::type __ct; 8657: return __ct(__lhs).count() < __ct(__rhs).count(); 8657: } 8657: 8657: template 8657: constexpr bool 8657: operator!=(const duration<_Rep1, _Period1>& __lhs, 8657: const duration<_Rep2, _Period2>& __rhs) 8657: { return !(__lhs == __rhs); } 8657: 8657: template 8657: constexpr bool 8657: operator<=(const duration<_Rep1, _Period1>& __lhs, 8657: const duration<_Rep2, _Period2>& __rhs) 8657: { return !(__rhs < __lhs); } 8657: 8657: template 8657: constexpr bool 8657: operator>(const duration<_Rep1, _Period1>& __lhs, 8657: const duration<_Rep2, _Period2>& __rhs) 8657: { return __rhs < __lhs; } 8657: 8657: template 8657: constexpr bool 8657: operator>=(const duration<_Rep1, _Period1>& __lhs, 8657: const duration<_Rep2, _Period2>& __rhs) 8657: { return !(__lhs < __rhs); } 8657: 8657: 8657: typedef duration nanoseconds; 8657: 8657: 8657: typedef duration microseconds; 8657: 8657: 8657: typedef duration milliseconds; 8657: 8657: 8657: typedef duration seconds; 8657: 8657: 8657: typedef duration> minutes; 8657: 8657: 8657: typedef duration> hours; 8657: 8657: 8657: template 8657: struct time_point 8657: { 8657: typedef _Clock clock; 8657: typedef _Dur duration; 8657: typedef typename duration::rep rep; 8657: typedef typename duration::period period; 8657: 8657: constexpr time_point() : __d(duration::zero()) 8657: { } 8657: 8657: constexpr explicit time_point(const duration& __dur) 8657: : __d(__dur) 8657: { } 8657: 8657: 8657: template>> 8657: constexpr time_point(const time_point& __t) 8657: : __d(__t.time_since_epoch()) 8657: { } 8657: 8657: 8657: constexpr duration 8657: time_since_epoch() const 8657: { return __d; } 8657: 8657: 8657: time_point& 8657: operator+=(const duration& __dur) 8657: { 8657: __d += __dur; 8657: return *this; 8657: } 8657: 8657: time_point& 8657: operator-=(const duration& __dur) 8657: { 8657: __d -= __dur; 8657: return *this; 8657: } 8657: 8657: 8657: static constexpr time_point 8657: min() 8657: { return time_point(duration::min()); } 8657: 8657: static constexpr time_point 8657: max() 8657: { return time_point(duration::max()); } 8657: 8657: private: 8657: duration __d; 8657: }; 8657: 8657: 8657: template 8657: constexpr typename enable_if<__is_duration<_ToDur>::value, 8657: time_point<_Clock, _ToDur>>::type 8657: time_point_cast(const time_point<_Clock, _Dur>& __t) 8657: { 8657: typedef time_point<_Clock, _ToDur> __time_point; 8657: return __time_point(duration_cast<_ToDur>(__t.time_since_epoch())); 8657: } 8657: # 707 "/usr/include/c++/8/chrono" 3 8657: template 8657: constexpr time_point<_Clock, 8657: typename common_type<_Dur1, duration<_Rep2, _Period2>>::type> 8657: operator+(const time_point<_Clock, _Dur1>& __lhs, 8657: const duration<_Rep2, _Period2>& __rhs) 8657: { 8657: typedef duration<_Rep2, _Period2> __dur2; 8657: typedef typename common_type<_Dur1,__dur2>::type __ct; 8657: typedef time_point<_Clock, __ct> __time_point; 8657: return __time_point(__lhs.time_since_epoch() + __rhs); 8657: } 8657: 8657: template 8657: constexpr time_point<_Clock, 8657: typename common_type, _Dur2>::type> 8657: operator+(const duration<_Rep1, _Period1>& __lhs, 8657: const time_point<_Clock, _Dur2>& __rhs) 8657: { 8657: typedef duration<_Rep1, _Period1> __dur1; 8657: typedef typename common_type<__dur1,_Dur2>::type __ct; 8657: typedef time_point<_Clock, __ct> __time_point; 8657: return __time_point(__rhs.time_since_epoch() + __lhs); 8657: } 8657: 8657: template 8657: constexpr time_point<_Clock, 8657: typename common_type<_Dur1, duration<_Rep2, _Period2>>::type> 8657: operator-(const time_point<_Clock, _Dur1>& __lhs, 8657: const duration<_Rep2, _Period2>& __rhs) 8657: { 8657: typedef duration<_Rep2, _Period2> __dur2; 8657: typedef typename common_type<_Dur1,__dur2>::type __ct; 8657: typedef time_point<_Clock, __ct> __time_point; 8657: return __time_point(__lhs.time_since_epoch() -__rhs); 8657: } 8657: 8657: template 8657: constexpr typename common_type<_Dur1, _Dur2>::type 8657: operator-(const time_point<_Clock, _Dur1>& __lhs, 8657: const time_point<_Clock, _Dur2>& __rhs) 8657: { return __lhs.time_since_epoch() - __rhs.time_since_epoch(); } 8657: 8657: template 8657: constexpr bool 8657: operator==(const time_point<_Clock, _Dur1>& __lhs, 8657: const time_point<_Clock, _Dur2>& __rhs) 8657: { return __lhs.time_since_epoch() == __rhs.time_since_epoch(); } 8657: 8657: template 8657: constexpr bool 8657: operator!=(const time_point<_Clock, _Dur1>& __lhs, 8657: const time_point<_Clock, _Dur2>& __rhs) 8657: { return !(__lhs == __rhs); } 8657: 8657: template 8657: constexpr bool 8657: operator<(const time_point<_Clock, _Dur1>& __lhs, 8657: const time_point<_Clock, _Dur2>& __rhs) 8657: { return __lhs.time_since_epoch() < __rhs.time_since_epoch(); } 8657: 8657: template 8657: constexpr bool 8657: operator<=(const time_point<_Clock, _Dur1>& __lhs, 8657: const time_point<_Clock, _Dur2>& __rhs) 8657: { return !(__rhs < __lhs); } 8657: 8657: template 8657: constexpr bool 8657: operator>(const time_point<_Clock, _Dur1>& __lhs, 8657: const time_point<_Clock, _Dur2>& __rhs) 8657: { return __rhs < __lhs; } 8657: 8657: template 8657: constexpr bool 8657: operator>=(const time_point<_Clock, _Dur1>& __lhs, 8657: const time_point<_Clock, _Dur2>& __rhs) 8657: { return !(__lhs < __rhs); } 8657: # 807 "/usr/include/c++/8/chrono" 3 8657: inline namespace _V2 { 8657: 8657: 8657: 8657: 8657: 8657: 8657: struct system_clock 8657: { 8657: typedef chrono::nanoseconds duration; 8657: typedef duration::rep rep; 8657: typedef duration::period period; 8657: typedef chrono::time_point time_point; 8657: 8657: static_assert(system_clock::duration::min() 8657: < system_clock::duration::zero(), 8657: "a clock's minimum duration cannot be less than its epoch"); 8657: 8657: static constexpr bool is_steady = false; 8657: 8657: static time_point 8657: now() noexcept; 8657: 8657: 8657: static std::time_t 8657: to_time_t(const time_point& __t) noexcept 8657: { 8657: return std::time_t(duration_cast 8657: (__t.time_since_epoch()).count()); 8657: } 8657: 8657: static time_point 8657: from_time_t(std::time_t __t) noexcept 8657: { 8657: typedef chrono::time_point __from; 8657: return time_point_cast 8657: (__from(chrono::seconds(__t))); 8657: } 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: struct steady_clock 8657: { 8657: typedef chrono::nanoseconds duration; 8657: typedef duration::rep rep; 8657: typedef duration::period period; 8657: typedef chrono::time_point time_point; 8657: 8657: static constexpr bool is_steady = true; 8657: 8657: static time_point 8657: now() noexcept; 8657: }; 8657: # 874 "/usr/include/c++/8/chrono" 3 8657: using high_resolution_clock = system_clock; 8657: 8657: } 8657: } 8657: # 976 "/usr/include/c++/8/chrono" 3 8657: 8657: } 8657: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: class QEvent; 8657: class QTimerEvent; 8657: class QChildEvent; 8657: struct QMetaObject; 8657: class QVariant; 8657: class QObjectPrivate; 8657: class QObject; 8657: class QThread; 8657: class QWidget; 8657: 8657: class QRegExp; 8657: 8657: 8657: class QRegularExpression; 8657: 8657: 8657: class QObjectUserData; 8657: 8657: struct QDynamicMetaObjectData; 8657: 8657: typedef QList QObjectList; 8657: 8657: __attribute__((visibility("default"))) void qt_qFindChildren_helper(const QObject *parent, const QString &name, 8657: const QMetaObject &mo, QList *list, Qt::FindChildOptions options); 8657: __attribute__((visibility("default"))) void qt_qFindChildren_helper(const QObject *parent, const QRegExp &re, 8657: const QMetaObject &mo, QList *list, Qt::FindChildOptions options); 8657: __attribute__((visibility("default"))) void qt_qFindChildren_helper(const QObject *parent, const QRegularExpression &re, 8657: const QMetaObject &mo, QList *list, Qt::FindChildOptions options); 8657: __attribute__((visibility("default"))) QObject *qt_qFindChild_helper(const QObject *parent, const QString &name, const QMetaObject &mo, Qt::FindChildOptions options); 8657: 8657: class __attribute__((visibility("default"))) QObjectData { 8657: public: 8657: virtual ~QObjectData() = 0; 8657: QObject *q_ptr; 8657: QObject *parent; 8657: QObjectList children; 8657: 8657: uint isWidget : 1; 8657: uint blockSig : 1; 8657: uint wasDeleted : 1; 8657: uint isDeletingChildren : 1; 8657: uint sendChildEvents : 1; 8657: uint receiveChildEvents : 1; 8657: uint isWindow : 1; 8657: uint unused : 25; 8657: int postedEvents; 8657: QDynamicMetaObjectData *metaObject; 8657: QMetaObject *dynamicMetaObject() const; 8657: }; 8657: 8657: 8657: class __attribute__((visibility("default"))) QObject 8657: { 8657: public: 8657: # 118 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8657: #pragma GCC diagnostic push 8657: # 118 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8657: 8657: # 118 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8657: #pragma GCC diagnostic ignored "-Wsuggest-override" 8657: # 118 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8657: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8657: # 118 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8657: #pragma GCC diagnostic ignored "-Wattributes" 8657: # 118 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8657: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8657: # 118 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8657: #pragma GCC diagnostic pop 8657: # 118 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8657: struct QPrivateSignal {}; 8657: 8657: inline QObjectPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QObjectPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QObjectPrivate; 8657: 8657: public: 8657: explicit QObject(QObject *parent=nullptr); 8657: virtual ~QObject(); 8657: 8657: virtual bool event(QEvent *event); 8657: virtual bool eventFilter(QObject *watched, QEvent *event); 8657: # 144 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8657: QString objectName() const; 8657: void setObjectName(const QString &name); 8657: 8657: inline bool isWidgetType() const { return d_ptr->isWidget; } 8657: inline bool isWindowType() const { return d_ptr->isWindow; } 8657: 8657: inline bool signalsBlocked() const noexcept { return d_ptr->blockSig; } 8657: bool blockSignals(bool b) noexcept; 8657: 8657: QThread *thread() const; 8657: void moveToThread(QThread *thread); 8657: 8657: int startTimer(int interval, Qt::TimerType timerType = Qt::CoarseTimer); 8657: 8657: inline __attribute__((always_inline)) 8657: int startTimer(std::chrono::milliseconds time, Qt::TimerType timerType = Qt::CoarseTimer) 8657: { 8657: return startTimer(int(time.count()), timerType); 8657: } 8657: 8657: void killTimer(int id); 8657: 8657: template 8657: inline T findChild(const QString &aName = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8657: { 8657: typedef typename std::remove_cv::type>::type ObjType; 8657: return static_cast(qt_qFindChild_helper(this, aName, ObjType::staticMetaObject, options)); 8657: } 8657: 8657: template 8657: inline QList findChildren(const QString &aName = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8657: { 8657: typedef typename std::remove_cv::type>::type ObjType; 8657: QList list; 8657: qt_qFindChildren_helper(this, aName, ObjType::staticMetaObject, 8657: reinterpret_cast *>(&list), options); 8657: return list; 8657: } 8657: 8657: 8657: template 8657: inline QList findChildren(const QRegExp &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8657: { 8657: typedef typename std::remove_cv::type>::type ObjType; 8657: QList list; 8657: qt_qFindChildren_helper(this, re, ObjType::staticMetaObject, 8657: reinterpret_cast *>(&list), options); 8657: return list; 8657: } 8657: 8657: 8657: 8657: template 8657: inline QList findChildren(const QRegularExpression &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8657: { 8657: typedef typename std::remove_cv::type>::type ObjType; 8657: QList list; 8657: qt_qFindChildren_helper(this, re, ObjType::staticMetaObject, 8657: reinterpret_cast *>(&list), options); 8657: return list; 8657: } 8657: 8657: 8657: inline const QObjectList &children() const { return d_ptr->children; } 8657: 8657: void setParent(QObject *parent); 8657: void installEventFilter(QObject *filterObj); 8657: void removeEventFilter(QObject *obj); 8657: 8657: static QMetaObject::Connection connect(const QObject *sender, const char *signal, 8657: const QObject *receiver, const char *member, Qt::ConnectionType = Qt::AutoConnection); 8657: 8657: static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal, 8657: const QObject *receiver, const QMetaMethod &method, 8657: Qt::ConnectionType type = Qt::AutoConnection); 8657: 8657: inline QMetaObject::Connection connect(const QObject *sender, const char *signal, 8657: const char *member, Qt::ConnectionType type = Qt::AutoConnection) const; 8657: # 232 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8657: template 8657: static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, 8657: const typename QtPrivate::FunctionPointer::Object *receiver, Func2 slot, 8657: Qt::ConnectionType type = Qt::AutoConnection) 8657: { 8657: typedef QtPrivate::FunctionPointer SignalType; 8657: typedef QtPrivate::FunctionPointer SlotType; 8657: 8657: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8657: ; 8657: 8657: 8657: static_assert(bool(int(SignalType::ArgumentCount) >= int(SlotType::ArgumentCount)), "The slot requires more arguments than the signal provides.") 8657: ; 8657: static_assert(bool((QtPrivate::CheckCompatibleArguments::value)), "Signal and slot arguments are not compatible.") 8657: ; 8657: static_assert(bool((QtPrivate::AreArgumentsCompatible::value)), "Return type of the slot is not compatible with the return type of the signal.") 8657: ; 8657: 8657: const int *types = nullptr; 8657: if (type == Qt::QueuedConnection || type == Qt::BlockingQueuedConnection) 8657: types = QtPrivate::ConnectionTypes::types(); 8657: 8657: return connectImpl(sender, reinterpret_cast(&signal), 8657: receiver, reinterpret_cast(&slot), 8657: new QtPrivate::QSlotObject::Value, 8657: typename SignalType::ReturnType>(slot), 8657: type, types, &SignalType::Object::staticMetaObject); 8657: } 8657: 8657: 8657: template 8657: static inline typename std::enable_if::ArgumentCount) >= 0, QMetaObject::Connection>::type 8657: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, Func2 slot) 8657: { 8657: return connect(sender, signal, sender, slot, Qt::DirectConnection); 8657: } 8657: 8657: 8657: template 8657: static inline typename std::enable_if::ArgumentCount) >= 0 && 8657: !QtPrivate::FunctionPointer::IsPointerToMemberFunction, QMetaObject::Connection>::type 8657: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, const QObject *context, Func2 slot, 8657: Qt::ConnectionType type = Qt::AutoConnection) 8657: { 8657: typedef QtPrivate::FunctionPointer SignalType; 8657: typedef QtPrivate::FunctionPointer SlotType; 8657: 8657: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8657: ; 8657: 8657: 8657: static_assert(bool(int(SignalType::ArgumentCount) >= int(SlotType::ArgumentCount)), "The slot requires more arguments than the signal provides.") 8657: ; 8657: static_assert(bool((QtPrivate::CheckCompatibleArguments::value)), "Signal and slot arguments are not compatible.") 8657: ; 8657: static_assert(bool((QtPrivate::AreArgumentsCompatible::value)), "Return type of the slot is not compatible with the return type of the signal.") 8657: ; 8657: 8657: const int *types = nullptr; 8657: if (type == Qt::QueuedConnection || type == Qt::BlockingQueuedConnection) 8657: types = QtPrivate::ConnectionTypes::types(); 8657: 8657: return connectImpl(sender, reinterpret_cast(&signal), context, nullptr, 8657: new QtPrivate::QStaticSlotObject::Value, 8657: typename SignalType::ReturnType>(slot), 8657: type, types, &SignalType::Object::staticMetaObject); 8657: } 8657: 8657: 8657: template 8657: static inline typename std::enable_if::ArgumentCount == -1, QMetaObject::Connection>::type 8657: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, Func2 slot) 8657: { 8657: return connect(sender, signal, sender, slot, Qt::DirectConnection); 8657: } 8657: 8657: 8657: template 8657: static inline typename std::enable_if::ArgumentCount == -1, QMetaObject::Connection>::type 8657: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, const QObject *context, Func2 slot, 8657: Qt::ConnectionType type = Qt::AutoConnection) 8657: { 8657: typedef QtPrivate::FunctionPointer SignalType; 8657: const int FunctorArgumentCount = QtPrivate::ComputeFunctorArgumentCount::Value; 8657: 8657: static_assert(bool((FunctorArgumentCount >= 0)), "Signal and slot arguments are not compatible.") 8657: ; 8657: const int SlotArgumentCount = (FunctorArgumentCount >= 0) ? FunctorArgumentCount : 0; 8657: typedef typename QtPrivate::FunctorReturnType::Value>::Value SlotReturnType; 8657: 8657: static_assert(bool((QtPrivate::AreArgumentsCompatible::value)), "Return type of the slot is not compatible with the return type of the signal.") 8657: ; 8657: 8657: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8657: ; 8657: 8657: const int *types = nullptr; 8657: if (type == Qt::QueuedConnection || type == Qt::BlockingQueuedConnection) 8657: types = QtPrivate::ConnectionTypes::types(); 8657: 8657: return connectImpl(sender, reinterpret_cast(&signal), context, nullptr, 8657: new QtPrivate::QFunctorSlotObject::Value, 8657: typename SignalType::ReturnType>(slot), 8657: type, types, &SignalType::Object::staticMetaObject); 8657: } 8657: 8657: 8657: static bool disconnect(const QObject *sender, const char *signal, 8657: const QObject *receiver, const char *member); 8657: static bool disconnect(const QObject *sender, const QMetaMethod &signal, 8657: const QObject *receiver, const QMetaMethod &member); 8657: inline bool disconnect(const char *signal = nullptr, 8657: const QObject *receiver = nullptr, const char *member = nullptr) const 8657: { return disconnect(this, signal, receiver, member); } 8657: inline bool disconnect(const QObject *receiver, const char *member = nullptr) const 8657: { return disconnect(this, nullptr, receiver, member); } 8657: static bool disconnect(const QMetaObject::Connection &); 8657: 8657: 8657: 8657: 8657: 8657: template 8657: static inline bool disconnect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, 8657: const typename QtPrivate::FunctionPointer::Object *receiver, Func2 slot) 8657: { 8657: typedef QtPrivate::FunctionPointer SignalType; 8657: typedef QtPrivate::FunctionPointer SlotType; 8657: 8657: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8657: ; 8657: 8657: 8657: static_assert(bool((QtPrivate::CheckCompatibleArguments::value)), "Signal and slot arguments are not compatible.") 8657: ; 8657: 8657: return disconnectImpl(sender, reinterpret_cast(&signal), receiver, reinterpret_cast(&slot), 8657: &SignalType::Object::staticMetaObject); 8657: } 8657: template 8657: static inline bool disconnect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, 8657: const QObject *receiver, void **zero) 8657: { 8657: 8657: 8657: 8657: do { } while ((false) && (!zero)); 8657: typedef QtPrivate::FunctionPointer SignalType; 8657: return disconnectImpl(sender, reinterpret_cast(&signal), receiver, zero, 8657: &SignalType::Object::staticMetaObject); 8657: } 8657: 8657: 8657: 8657: 8657: void dumpObjectTree(); 8657: void dumpObjectInfo(); 8657: 8657: void dumpObjectTree() const; 8657: void dumpObjectInfo() const; 8657: 8657: 8657: bool setProperty(const char *name, const QVariant &value); 8657: QVariant property(const char *name) const; 8657: QList dynamicPropertyNames() const; 8657: 8657: 8657: 8657: static uint registerUserData(); 8657: void setUserData(uint id, QObjectUserData* data); 8657: QObjectUserData* userData(uint id) const; 8657: 8657: 8657: public : 8657: void destroyed(QObject * = nullptr); 8657: void objectNameChanged(const QString &objectName, QPrivateSignal); 8657: 8657: public: 8657: inline QObject *parent() const { return d_ptr->parent; } 8657: 8657: inline bool inherits(const char *classname) const 8657: { return const_cast(this)->qt_metacast(classname) != nullptr; } 8657: 8657: public : 8657: void deleteLater(); 8657: 8657: protected: 8657: QObject *sender() const; 8657: int senderSignalIndex() const; 8657: int receivers(const char* signal) const; 8657: bool isSignalConnected(const QMetaMethod &signal) const; 8657: 8657: virtual void timerEvent(QTimerEvent *event); 8657: virtual void childEvent(QChildEvent *event); 8657: virtual void customEvent(QEvent *event); 8657: 8657: virtual void connectNotify(const QMetaMethod &signal); 8657: virtual void disconnectNotify(const QMetaMethod &signal); 8657: 8657: protected: 8657: QObject(QObjectPrivate &dd, QObject *parent = nullptr); 8657: 8657: protected: 8657: QScopedPointer d_ptr; 8657: 8657: static const QMetaObject staticQtMetaObject; 8657: friend inline const QMetaObject *qt_getQtMetaObject() noexcept; 8657: 8657: friend struct QMetaObject; 8657: friend struct QMetaObjectPrivate; 8657: friend class QMetaCallEvent; 8657: friend class QApplication; 8657: friend class QApplicationPrivate; 8657: friend class QCoreApplication; 8657: friend class QCoreApplicationPrivate; 8657: friend class QWidget; 8657: friend class QThreadData; 8657: 8657: private: 8657: QObject(const QObject &) = delete; QObject &operator=(const QObject &) = delete; 8657: 8657: 8657: private: 8657: static QMetaObject::Connection connectImpl(const QObject *sender, void **signal, 8657: const QObject *receiver, void **slotPtr, 8657: QtPrivate::QSlotObjectBase *slot, Qt::ConnectionType type, 8657: const int *types, const QMetaObject *senderMetaObject); 8657: 8657: static bool disconnectImpl(const QObject *sender, void **signal, const QObject *receiver, void **slot, 8657: const QMetaObject *senderMetaObject); 8657: 8657: }; 8657: 8657: inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal, 8657: const char *amember, Qt::ConnectionType atype) const 8657: { return connect(asender, asignal, this, amember, atype); } 8657: 8657: inline const QMetaObject *qt_getQtMetaObject() noexcept 8657: { return &QObject::staticQtMetaObject; } 8657: 8657: 8657: class __attribute__((visibility("default"))) QObjectUserData { 8657: public: 8657: virtual ~QObjectUserData(); 8657: }; 8657: # 508 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8657: template 8657: inline T qobject_cast(QObject *object) 8657: { 8657: typedef typename std::remove_cv::type>::type ObjType; 8657: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "qobject_cast requires the type to have a Q_OBJECT macro") 8657: ; 8657: return static_cast(ObjType::staticMetaObject.cast(object)); 8657: } 8657: 8657: template 8657: inline T qobject_cast(const QObject *object) 8657: { 8657: typedef typename std::remove_cv::type>::type ObjType; 8657: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "qobject_cast requires the type to have a Q_OBJECT macro") 8657: ; 8657: return static_cast(ObjType::staticMetaObject.cast(object)); 8657: } 8657: 8657: 8657: template inline const char * qobject_interface_iid() 8657: { return nullptr; } 8657: # 541 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QObject *); 8657: 8657: 8657: class QSignalBlocker 8657: { 8657: public: 8657: inline explicit QSignalBlocker(QObject *o) noexcept; 8657: inline explicit QSignalBlocker(QObject &o) noexcept; 8657: inline ~QSignalBlocker(); 8657: 8657: 8657: inline QSignalBlocker(QSignalBlocker &&other) noexcept; 8657: inline QSignalBlocker &operator=(QSignalBlocker &&other) noexcept; 8657: 8657: 8657: inline void reblock() noexcept; 8657: inline void unblock() noexcept; 8657: private: 8657: QSignalBlocker(const QSignalBlocker &) = delete; QSignalBlocker &operator=(const QSignalBlocker &) = delete; 8657: QObject * m_o; 8657: bool m_blocked; 8657: bool m_inhibited; 8657: }; 8657: 8657: QSignalBlocker::QSignalBlocker(QObject *o) noexcept 8657: : m_o(o), 8657: m_blocked(o && o->blockSignals(true)), 8657: m_inhibited(false) 8657: {} 8657: 8657: QSignalBlocker::QSignalBlocker(QObject &o) noexcept 8657: : m_o(&o), 8657: m_blocked(o.blockSignals(true)), 8657: m_inhibited(false) 8657: {} 8657: 8657: 8657: QSignalBlocker::QSignalBlocker(QSignalBlocker &&other) noexcept 8657: : m_o(other.m_o), 8657: m_blocked(other.m_blocked), 8657: m_inhibited(other.m_inhibited) 8657: { 8657: other.m_o = nullptr; 8657: } 8657: 8657: QSignalBlocker &QSignalBlocker::operator=(QSignalBlocker &&other) noexcept 8657: { 8657: if (this != &other) { 8657: 8657: 8657: if (m_o != other.m_o || (!m_inhibited && other.m_inhibited)) 8657: unblock(); 8657: m_o = other.m_o; 8657: m_blocked = other.m_blocked; 8657: m_inhibited = other.m_inhibited; 8657: 8657: other.m_o = nullptr; 8657: } 8657: return *this; 8657: } 8657: 8657: 8657: QSignalBlocker::~QSignalBlocker() 8657: { 8657: if (m_o && !m_inhibited) 8657: m_o->blockSignals(m_blocked); 8657: } 8657: 8657: void QSignalBlocker::reblock() noexcept 8657: { 8657: if (m_o) m_o->blockSignals(true); 8657: m_inhibited = false; 8657: } 8657: 8657: void QSignalBlocker::unblock() noexcept 8657: { 8657: if (m_o) m_o->blockSignals(m_blocked); 8657: m_inhibited = true; 8657: } 8657: 8657: namespace QtPrivate { 8657: inline QObject & deref_for_methodcall(QObject &o) { return o; } 8657: inline QObject & deref_for_methodcall(QObject *o) { return *o; } 8657: } 8657: 8657: 8657: 8657: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 2 3 4 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearraylist.h" 1 3 4 8657: # 54 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: class QBitArray; 8657: class QDataStream; 8657: class QDate; 8657: class QDateTime; 8657: class QEasingCurve; 8657: class QLine; 8657: class QLineF; 8657: class QLocale; 8657: class QMatrix; 8657: class QTransform; 8657: class QStringList; 8657: class QTime; 8657: class QPoint; 8657: class QPointF; 8657: class QSize; 8657: class QSizeF; 8657: class QRect; 8657: class QRectF; 8657: 8657: class QRegExp; 8657: 8657: 8657: class QRegularExpression; 8657: 8657: class QTextFormat; 8657: class QTextLength; 8657: class QUrl; 8657: class QVariant; 8657: class QVariantComparisonHelper; 8657: 8657: template 8657: inline QVariant qVariantFromValue(const T &); 8657: 8657: template 8657: inline T qvariant_cast(const QVariant &); 8657: 8657: namespace QtPrivate { 8657: 8657: template 8657: struct ObjectInvoker 8657: { 8657: static ReturnType invoke(Argument a) 8657: { 8657: return Derived::object(a); 8657: } 8657: }; 8657: 8657: template 8657: struct MetaTypeInvoker 8657: { 8657: static ReturnType invoke(Argument a) 8657: { 8657: return Derived::metaType(a); 8657: } 8657: }; 8657: 8657: template ::Value> 8657: struct TreatAsQObjectBeforeMetaType : ObjectInvoker 8657: { 8657: }; 8657: 8657: template 8657: struct TreatAsQObjectBeforeMetaType : MetaTypeInvoker 8657: { 8657: }; 8657: 8657: template struct QVariantValueHelper; 8657: } 8657: 8657: class __attribute__((visibility("default"))) QVariant 8657: { 8657: public: 8657: enum Type { 8657: Invalid = QMetaType::UnknownType, 8657: Bool = QMetaType::Bool, 8657: Int = QMetaType::Int, 8657: UInt = QMetaType::UInt, 8657: LongLong = QMetaType::LongLong, 8657: ULongLong = QMetaType::ULongLong, 8657: Double = QMetaType::Double, 8657: Char = QMetaType::QChar, 8657: Map = QMetaType::QVariantMap, 8657: List = QMetaType::QVariantList, 8657: String = QMetaType::QString, 8657: StringList = QMetaType::QStringList, 8657: ByteArray = QMetaType::QByteArray, 8657: BitArray = QMetaType::QBitArray, 8657: Date = QMetaType::QDate, 8657: Time = QMetaType::QTime, 8657: DateTime = QMetaType::QDateTime, 8657: Url = QMetaType::QUrl, 8657: Locale = QMetaType::QLocale, 8657: Rect = QMetaType::QRect, 8657: RectF = QMetaType::QRectF, 8657: Size = QMetaType::QSize, 8657: SizeF = QMetaType::QSizeF, 8657: Line = QMetaType::QLine, 8657: LineF = QMetaType::QLineF, 8657: Point = QMetaType::QPoint, 8657: PointF = QMetaType::QPointF, 8657: RegExp = QMetaType::QRegExp, 8657: RegularExpression = QMetaType::QRegularExpression, 8657: Hash = QMetaType::QVariantHash, 8657: EasingCurve = QMetaType::QEasingCurve, 8657: Uuid = QMetaType::QUuid, 8657: ModelIndex = QMetaType::QModelIndex, 8657: PersistentModelIndex = QMetaType::QPersistentModelIndex, 8657: LastCoreType = QMetaType::LastCoreType, 8657: 8657: Font = QMetaType::QFont, 8657: Pixmap = QMetaType::QPixmap, 8657: Brush = QMetaType::QBrush, 8657: Color = QMetaType::QColor, 8657: Palette = QMetaType::QPalette, 8657: Image = QMetaType::QImage, 8657: Polygon = QMetaType::QPolygon, 8657: Region = QMetaType::QRegion, 8657: Bitmap = QMetaType::QBitmap, 8657: Cursor = QMetaType::QCursor, 8657: KeySequence = QMetaType::QKeySequence, 8657: Pen = QMetaType::QPen, 8657: TextLength = QMetaType::QTextLength, 8657: TextFormat = QMetaType::QTextFormat, 8657: Matrix = QMetaType::QMatrix, 8657: Transform = QMetaType::QTransform, 8657: Matrix4x4 = QMetaType::QMatrix4x4, 8657: Vector2D = QMetaType::QVector2D, 8657: Vector3D = QMetaType::QVector3D, 8657: Vector4D = QMetaType::QVector4D, 8657: Quaternion = QMetaType::QQuaternion, 8657: PolygonF = QMetaType::QPolygonF, 8657: Icon = QMetaType::QIcon, 8657: LastGuiType = QMetaType::LastGuiType, 8657: 8657: SizePolicy = QMetaType::QSizePolicy, 8657: 8657: UserType = QMetaType::User, 8657: LastType = 0xffffffff 8657: }; 8657: 8657: QVariant() noexcept : d() {} 8657: ~QVariant(); 8657: QVariant(Type type); 8657: QVariant(int typeId, const void *copy); 8657: QVariant(int typeId, const void *copy, uint flags); 8657: QVariant(const QVariant &other); 8657: 8657: 8657: QVariant(QDataStream &s); 8657: 8657: 8657: QVariant(int i); 8657: QVariant(uint ui); 8657: QVariant(qlonglong ll); 8657: QVariant(qulonglong ull); 8657: QVariant(bool b); 8657: QVariant(double d); 8657: QVariant(float f); 8657: 8657: 8657: 8657: 8657: QVariant(const QByteArray &bytearray); 8657: QVariant(const QBitArray &bitarray); 8657: QVariant(const QString &string); 8657: QVariant(QLatin1String string); 8657: QVariant(const QStringList &stringlist); 8657: QVariant(QChar qchar); 8657: QVariant(const QDate &date); 8657: QVariant(const QTime &time); 8657: QVariant(const QDateTime &datetime); 8657: QVariant(const QList &list); 8657: QVariant(const QMap &map); 8657: QVariant(const QHash &hash); 8657: 8657: QVariant(const QSize &size); 8657: QVariant(const QSizeF &size); 8657: QVariant(const QPoint &pt); 8657: QVariant(const QPointF &pt); 8657: QVariant(const QLine &line); 8657: QVariant(const QLineF &line); 8657: QVariant(const QRect &rect); 8657: QVariant(const QRectF &rect); 8657: 8657: QVariant(const QLocale &locale); 8657: 8657: QVariant(const QRegExp ®Exp); 8657: 8657: 8657: 8657: QVariant(const QRegularExpression &re); 8657: 8657: QVariant(const QUrl &url); 8657: QVariant(const QEasingCurve &easing); 8657: QVariant(const QUuid &uuid); 8657: QVariant(const QModelIndex &modelIndex); 8657: QVariant(const QPersistentModelIndex &modelIndex); 8657: QVariant(const QJsonValue &jsonValue); 8657: QVariant(const QJsonObject &jsonObject); 8657: QVariant(const QJsonArray &jsonArray); 8657: QVariant(const QJsonDocument &jsonDocument); 8657: 8657: 8657: QVariant& operator=(const QVariant &other); 8657: 8657: inline QVariant(QVariant &&other) noexcept : d(other.d) 8657: { other.d = Private(); } 8657: inline QVariant &operator=(QVariant &&other) noexcept 8657: { qSwap(d, other.d); return *this; } 8657: 8657: 8657: inline void swap(QVariant &other) noexcept { qSwap(d, other.d); } 8657: 8657: Type type() const; 8657: int userType() const; 8657: const char *typeName() const; 8657: 8657: bool canConvert(int targetTypeId) const; 8657: bool convert(int targetTypeId); 8657: 8657: inline bool isValid() const; 8657: bool isNull() const; 8657: 8657: void clear(); 8657: 8657: void detach(); 8657: inline bool isDetached() const; 8657: 8657: int toInt(bool *ok = nullptr) const; 8657: uint toUInt(bool *ok = nullptr) const; 8657: qlonglong toLongLong(bool *ok = nullptr) const; 8657: qulonglong toULongLong(bool *ok = nullptr) const; 8657: bool toBool() const; 8657: double toDouble(bool *ok = nullptr) const; 8657: float toFloat(bool *ok = nullptr) const; 8657: qreal toReal(bool *ok = nullptr) const; 8657: QByteArray toByteArray() const; 8657: QBitArray toBitArray() const; 8657: QString toString() const; 8657: QStringList toStringList() const; 8657: QChar toChar() const; 8657: QDate toDate() const; 8657: QTime toTime() const; 8657: QDateTime toDateTime() const; 8657: QList toList() const; 8657: QMap toMap() const; 8657: QHash toHash() const; 8657: 8657: 8657: QPoint toPoint() const; 8657: QPointF toPointF() const; 8657: QRect toRect() const; 8657: QSize toSize() const; 8657: QSizeF toSizeF() const; 8657: QLine toLine() const; 8657: QLineF toLineF() const; 8657: QRectF toRectF() const; 8657: 8657: QLocale toLocale() const; 8657: 8657: QRegExp toRegExp() const; 8657: 8657: 8657: 8657: QRegularExpression toRegularExpression() const; 8657: 8657: QUrl toUrl() const; 8657: QEasingCurve toEasingCurve() const; 8657: QUuid toUuid() const; 8657: QModelIndex toModelIndex() const; 8657: QPersistentModelIndex toPersistentModelIndex() const; 8657: QJsonValue toJsonValue() const; 8657: QJsonObject toJsonObject() const; 8657: QJsonArray toJsonArray() const; 8657: QJsonDocument toJsonDocument() const; 8657: 8657: 8657: 8657: void load(QDataStream &ds); 8657: void save(QDataStream &ds) const; 8657: 8657: static const char *typeToName(int typeId); 8657: static Type nameToType(const char *name); 8657: 8657: void *data(); 8657: const void *constData() const; 8657: inline const void *data() const { return constData(); } 8657: 8657: template 8657: inline void setValue(const T &value); 8657: 8657: template 8657: inline T value() const 8657: { return qvariant_cast(*this); } 8657: 8657: template 8657: static inline QVariant fromValue(const T &value) 8657: { return qVariantFromValue(value); } 8657: 8657: template 8657: bool canConvert() const 8657: { return canConvert(qMetaTypeId()); } 8657: 8657: public: 8657: 8657: struct PrivateShared 8657: { 8657: inline PrivateShared(void *v) : ptr(v), ref(1) { } 8657: void *ptr; 8657: QAtomicInt ref; 8657: }; 8657: struct Private 8657: { 8657: inline Private() noexcept : type(Invalid), is_shared(false), is_null(true) 8657: { data.ptr = nullptr; } 8657: 8657: 8657: explicit inline Private(uint variantType) noexcept 8657: : type(variantType), is_shared(false), is_null(false) 8657: {} 8657: 8657: inline Private(const Private &other) noexcept 8657: : data(other.data), type(other.type), 8657: is_shared(other.is_shared), is_null(other.is_null) 8657: {} 8657: union Data 8657: { 8657: char c; 8657: uchar uc; 8657: short s; 8657: signed char sc; 8657: ushort us; 8657: int i; 8657: uint u; 8657: long l; 8657: ulong ul; 8657: bool b; 8657: double d; 8657: float f; 8657: qreal real; 8657: qlonglong ll; 8657: qulonglong ull; 8657: QObject *o; 8657: void *ptr; 8657: PrivateShared *shared; 8657: } data; 8657: uint type : 30; 8657: uint is_shared : 1; 8657: uint is_null : 1; 8657: }; 8657: public: 8657: typedef void (*f_construct)(Private *, const void *); 8657: typedef void (*f_clear)(Private *); 8657: typedef bool (*f_null)(const Private *); 8657: 8657: typedef void (*f_load)(Private *, QDataStream &); 8657: typedef void (*f_save)(const Private *, QDataStream &); 8657: 8657: typedef bool (*f_compare)(const Private *, const Private *); 8657: typedef bool (*f_convert)(const QVariant::Private *d, int t, void *, bool *); 8657: typedef bool (*f_canConvert)(const QVariant::Private *d, int t); 8657: typedef void (*f_debugStream)(QDebug, const QVariant &); 8657: struct Handler { 8657: f_construct construct; 8657: f_clear clear; 8657: f_null isNull; 8657: 8657: f_load load; 8657: f_save save; 8657: 8657: f_compare compare; 8657: f_convert convert; 8657: f_canConvert canConvert; 8657: f_debugStream debugStream; 8657: }; 8657: 8657: 8657: inline bool operator==(const QVariant &v) const 8657: { return cmp(v); } 8657: inline bool operator!=(const QVariant &v) const 8657: { return !cmp(v); } 8657: inline bool operator<(const QVariant &v) const 8657: { return compare(v) < 0; } 8657: inline bool operator<=(const QVariant &v) const 8657: { return compare(v) <= 0; } 8657: inline bool operator>(const QVariant &v) const 8657: { return compare(v) > 0; } 8657: inline bool operator>=(const QVariant &v) const 8657: { return compare(v) >= 0; } 8657: 8657: protected: 8657: friend inline bool operator==(const QVariant &, const QVariantComparisonHelper &); 8657: 8657: friend __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QVariant &); 8657: 8657: 8657: 8657: template 8657: friend inline T qvariant_cast(const QVariant &); 8657: template friend struct QtPrivate::QVariantValueHelper; 8657: protected: 8657: 8657: 8657: 8657: Private d; 8657: void create(int type, const void *copy); 8657: bool cmp(const QVariant &other) const; 8657: int compare(const QVariant &other) const; 8657: bool convert(const int t, void *ptr) const; 8657: 8657: private: 8657: 8657: inline QVariant(void *) = delete; 8657: 8657: 8657: 8657: 8657: 8657: 8657: QVariant(QMetaType::Type) = delete; 8657: 8657: 8657: 8657: 8657: 8657: 8657: QVariant(Qt::GlobalColor) = delete; 8657: QVariant(Qt::BrushStyle) = delete; 8657: QVariant(Qt::PenStyle) = delete; 8657: QVariant(Qt::CursorShape) = delete; 8657: 8657: 8657: inline QVariant(const char *) = delete; 8657: 8657: public: 8657: typedef Private DataPtr; 8657: inline DataPtr &data_ptr() { return d; } 8657: inline const DataPtr &data_ptr() const { return d; } 8657: }; 8657: 8657: template 8657: inline QVariant qVariantFromValue(const T &t) 8657: { 8657: return QVariant(qMetaTypeId(), &t, QTypeInfo::isPointer); 8657: } 8657: 8657: template <> 8657: inline QVariant qVariantFromValue(const QVariant &t) { return t; } 8657: 8657: template 8657: inline void qVariantSetValue(QVariant &v, const T &t) 8657: { 8657: 8657: const uint type = qMetaTypeId(); 8657: QVariant::Private &d = v.data_ptr(); 8657: if (v.isDetached() && (type == d.type || (type <= uint(QVariant::Char) && d.type <= uint(QVariant::Char)))) { 8657: d.type = type; 8657: d.is_null = false; 8657: T *old = reinterpret_cast(d.is_shared ? d.data.shared->ptr : &d.data.ptr); 8657: if (QTypeInfo::isComplex) 8657: old->~T(); 8657: new (old) T(t); 8657: } else { 8657: v = QVariant(type, &t, QTypeInfo::isPointer); 8657: } 8657: } 8657: 8657: template <> 8657: inline void qVariantSetValue(QVariant &v, const QVariant &t) 8657: { 8657: v = t; 8657: } 8657: 8657: inline bool QVariant::isValid() const { return d.type != Invalid; } 8657: 8657: template 8657: inline void QVariant::setValue(const T &avalue) 8657: { qVariantSetValue(*this, avalue); } 8657: 8657: 8657: __attribute__((visibility("default"))) QDataStream& operator>> (QDataStream& s, QVariant& p); 8657: __attribute__((visibility("default"))) QDataStream& operator<< (QDataStream& s, const QVariant& p); 8657: __attribute__((visibility("default"))) QDataStream& operator>> (QDataStream& s, QVariant::Type& p); 8657: __attribute__((visibility("default"))) QDataStream& operator<< (QDataStream& s, const QVariant::Type p); 8657: 8657: 8657: inline bool QVariant::isDetached() const 8657: { return !d.is_shared || d.data.shared->ref.load() == 1; } 8657: # 557 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 3 4 8657: class QVariantComparisonHelper 8657: { 8657: public: 8657: inline QVariantComparisonHelper(const QVariant &var) 8657: : v(&var) {} 8657: private: 8657: friend inline bool operator==(const QVariant &, const QVariantComparisonHelper &); 8657: const QVariant *v; 8657: }; 8657: 8657: inline bool operator==(const QVariant &v1, const QVariantComparisonHelper &v2) 8657: { 8657: return v1.cmp(*v2.v); 8657: } 8657: 8657: inline bool operator!=(const QVariant &v1, const QVariantComparisonHelper &v2) 8657: { 8657: return !operator==(v1, v2); 8657: } 8657: 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QVariant)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QVariant >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QVariant) }; static inline const char *name() { return "QVariant"; } }; inline void swap(QVariant &value1, QVariant &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8657: 8657: class __attribute__((visibility("default"))) QSequentialIterable 8657: { 8657: QtMetaTypePrivate::QSequentialIterableImpl m_impl; 8657: public: 8657: struct __attribute__((visibility("default"))) const_iterator 8657: { 8657: private: 8657: QtMetaTypePrivate::QSequentialIterableImpl m_impl; 8657: QAtomicInt *ref; 8657: friend class QSequentialIterable; 8657: explicit const_iterator(const QSequentialIterable &iter, QAtomicInt *ref_); 8657: 8657: explicit const_iterator(const QtMetaTypePrivate::QSequentialIterableImpl &impl, QAtomicInt *ref_); 8657: 8657: void begin(); 8657: void end(); 8657: public: 8657: ~const_iterator(); 8657: 8657: const_iterator(const const_iterator &other); 8657: 8657: const_iterator& operator=(const const_iterator &other); 8657: 8657: const QVariant operator*() const; 8657: bool operator==(const const_iterator &o) const; 8657: bool operator!=(const const_iterator &o) const; 8657: const_iterator &operator++(); 8657: const_iterator operator++(int); 8657: const_iterator &operator--(); 8657: const_iterator operator--(int); 8657: const_iterator &operator+=(int j); 8657: const_iterator &operator-=(int j); 8657: const_iterator operator+(int j) const; 8657: const_iterator operator-(int j) const; 8657: }; 8657: 8657: friend struct const_iterator; 8657: 8657: 8657: explicit QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl impl); 8657: 8657: 8657: 8657: 8657: const_iterator begin() const; 8657: const_iterator end() const; 8657: 8657: QVariant at(int idx) const; 8657: int size() const; 8657: 8657: bool canReverseIterate() const; 8657: }; 8657: 8657: class __attribute__((visibility("default"))) QAssociativeIterable 8657: { 8657: QtMetaTypePrivate::QAssociativeIterableImpl m_impl; 8657: public: 8657: struct __attribute__((visibility("default"))) const_iterator 8657: { 8657: private: 8657: QtMetaTypePrivate::QAssociativeIterableImpl m_impl; 8657: QAtomicInt *ref; 8657: friend class QAssociativeIterable; 8657: explicit const_iterator(const QAssociativeIterable &iter, QAtomicInt *ref_); 8657: 8657: explicit const_iterator(const QtMetaTypePrivate::QAssociativeIterableImpl &impl, QAtomicInt *ref_); 8657: 8657: void begin(); 8657: void end(); 8657: void find(const QVariant &key); 8657: public: 8657: ~const_iterator(); 8657: const_iterator(const const_iterator &other); 8657: 8657: const_iterator& operator=(const const_iterator &other); 8657: 8657: const QVariant key() const; 8657: 8657: const QVariant value() const; 8657: 8657: const QVariant operator*() const; 8657: bool operator==(const const_iterator &o) const; 8657: bool operator!=(const const_iterator &o) const; 8657: const_iterator &operator++(); 8657: const_iterator operator++(int); 8657: const_iterator &operator--(); 8657: const_iterator operator--(int); 8657: const_iterator &operator+=(int j); 8657: const_iterator &operator-=(int j); 8657: const_iterator operator+(int j) const; 8657: const_iterator operator-(int j) const; 8657: }; 8657: 8657: friend struct const_iterator; 8657: 8657: 8657: explicit QAssociativeIterable(QtMetaTypePrivate::QAssociativeIterableImpl impl); 8657: 8657: 8657: 8657: 8657: const_iterator begin() const; 8657: const_iterator end() const; 8657: const_iterator find(const QVariant &key) const; 8657: 8657: QVariant value(const QVariant &key) const; 8657: 8657: int size() const; 8657: }; 8657: 8657: 8657: namespace QtPrivate { 8657: template 8657: struct QVariantValueHelper : TreatAsQObjectBeforeMetaType, T, const QVariant &, T> 8657: { 8657: static T metaType(const QVariant &v) 8657: { 8657: const int vid = qMetaTypeId(); 8657: if (vid == v.userType()) 8657: return *reinterpret_cast(v.constData()); 8657: T t; 8657: if (v.convert(vid, &t)) 8657: return t; 8657: return T(); 8657: } 8657: 8657: static T object(const QVariant &v) 8657: { 8657: return qobject_cast(QMetaType::typeFlags(v.userType()) & QMetaType::PointerToQObject 8657: ? v.d.data.o 8657: : QVariantValueHelper::metaType(v)); 8657: } 8657: 8657: }; 8657: 8657: template 8657: struct QVariantValueHelperInterface : QVariantValueHelper 8657: { 8657: }; 8657: 8657: template<> 8657: struct QVariantValueHelperInterface 8657: { 8657: static QSequentialIterable invoke(const QVariant &v) 8657: { 8657: const int typeId = v.userType(); 8657: if (typeId == qMetaTypeId()) { 8657: return QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl(reinterpret_cast(v.constData()))); 8657: } 8657: if (typeId == qMetaTypeId()) { 8657: return QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl(reinterpret_cast(v.constData()))); 8657: } 8657: 8657: if (typeId == qMetaTypeId()) { 8657: return QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl(reinterpret_cast(v.constData()))); 8657: } 8657: 8657: return QSequentialIterable(v.value()); 8657: } 8657: }; 8657: template<> 8657: struct QVariantValueHelperInterface 8657: { 8657: static QAssociativeIterable invoke(const QVariant &v) 8657: { 8657: const int typeId = v.userType(); 8657: if (typeId == qMetaTypeId()) { 8657: return QAssociativeIterable(QtMetaTypePrivate::QAssociativeIterableImpl(reinterpret_cast(v.constData()))); 8657: } 8657: if (typeId == qMetaTypeId()) { 8657: return QAssociativeIterable(QtMetaTypePrivate::QAssociativeIterableImpl(reinterpret_cast(v.constData()))); 8657: } 8657: return QAssociativeIterable(v.value()); 8657: } 8657: }; 8657: template<> 8657: struct QVariantValueHelperInterface 8657: { 8657: static QVariantList invoke(const QVariant &v) 8657: { 8657: const int typeId = v.userType(); 8657: if (typeId == qMetaTypeId() || typeId == qMetaTypeId() || QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8657: QSequentialIterable iter = QVariantValueHelperInterface::invoke(v); 8657: QVariantList l; 8657: l.reserve(iter.size()); 8657: for (QSequentialIterable::const_iterator it = iter.begin(), end = iter.end(); it != end; ++it) 8657: l << *it; 8657: return l; 8657: } 8657: return QVariantValueHelper::invoke(v); 8657: } 8657: }; 8657: template<> 8657: struct QVariantValueHelperInterface 8657: { 8657: static QVariantHash invoke(const QVariant &v) 8657: { 8657: const int typeId = v.userType(); 8657: if (typeId == qMetaTypeId() || QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8657: QAssociativeIterable iter = QVariantValueHelperInterface::invoke(v); 8657: QVariantHash l; 8657: l.reserve(iter.size()); 8657: for (QAssociativeIterable::const_iterator it = iter.begin(), end = iter.end(); it != end; ++it) 8657: l.insertMulti(it.key().toString(), it.value()); 8657: return l; 8657: } 8657: return QVariantValueHelper::invoke(v); 8657: } 8657: }; 8657: template<> 8657: struct QVariantValueHelperInterface 8657: { 8657: static QVariantMap invoke(const QVariant &v) 8657: { 8657: const int typeId = v.userType(); 8657: if (typeId == qMetaTypeId() || QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8657: QAssociativeIterable iter = QVariantValueHelperInterface::invoke(v); 8657: QVariantMap l; 8657: for (QAssociativeIterable::const_iterator it = iter.begin(), end = iter.end(); it != end; ++it) 8657: l.insertMulti(it.key().toString(), it.value()); 8657: return l; 8657: } 8657: return QVariantValueHelper::invoke(v); 8657: } 8657: }; 8657: template<> 8657: struct QVariantValueHelperInterface > 8657: { 8657: static QPair invoke(const QVariant &v) 8657: { 8657: const int typeId = v.userType(); 8657: if (typeId == qMetaTypeId >()) 8657: return QVariantValueHelper >::invoke(v); 8657: 8657: if (QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8657: QtMetaTypePrivate::QPairVariantInterfaceImpl pi = v.value(); 8657: 8657: const QtMetaTypePrivate::VariantData d1 = pi.first(); 8657: QVariant v1(d1.metaTypeId, d1.data, d1.flags); 8657: if (d1.metaTypeId == qMetaTypeId()) 8657: v1 = *reinterpret_cast(d1.data); 8657: 8657: const QtMetaTypePrivate::VariantData d2 = pi.second(); 8657: QVariant v2(d2.metaTypeId, d2.data, d2.flags); 8657: if (d2.metaTypeId == qMetaTypeId()) 8657: v2 = *reinterpret_cast(d2.data); 8657: 8657: return QPair(v1, v2); 8657: } 8657: return QVariantValueHelper >::invoke(v); 8657: } 8657: }; 8657: } 8657: 8657: template inline T qvariant_cast(const QVariant &v) 8657: { 8657: return QtPrivate::QVariantValueHelperInterface::invoke(v); 8657: } 8657: 8657: template<> inline QVariant qvariant_cast(const QVariant &v) 8657: { 8657: if (v.userType() == QMetaType::QVariant) 8657: return *reinterpret_cast(v.constData()); 8657: return v; 8657: } 8657: # 858 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 3 4 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QVariant &); 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QVariant::Type); 8657: 8657: 8657: 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 2 3 4 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qshareddata.h" 1 3 4 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qshareddata.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 1 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qshareddata.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template class QSharedDataPointer; 8657: 8657: class __attribute__((visibility("default"))) QSharedData 8657: { 8657: public: 8657: mutable QAtomicInt ref; 8657: 8657: inline QSharedData() : ref(0) { } 8657: inline QSharedData(const QSharedData &) : ref(0) { } 8657: 8657: private: 8657: 8657: QSharedData &operator=(const QSharedData &); 8657: }; 8657: 8657: template class QSharedDataPointer 8657: { 8657: public: 8657: typedef T Type; 8657: typedef T *pointer; 8657: 8657: inline void detach() { if (d && d->ref.load() != 1) detach_helper(); } 8657: inline T &operator*() { detach(); return *d; } 8657: inline const T &operator*() const { return *d; } 8657: inline T *operator->() { detach(); return d; } 8657: inline const T *operator->() const { return d; } 8657: inline operator T *() { detach(); return d; } 8657: inline operator const T *() const { return d; } 8657: inline T *data() { detach(); return d; } 8657: inline const T *data() const { return d; } 8657: inline const T *constData() const { return d; } 8657: 8657: inline bool operator==(const QSharedDataPointer &other) const { return d == other.d; } 8657: inline bool operator!=(const QSharedDataPointer &other) const { return d != other.d; } 8657: 8657: inline QSharedDataPointer() { d = nullptr; } 8657: inline ~QSharedDataPointer() { if (d && !d->ref.deref()) delete d; } 8657: 8657: explicit QSharedDataPointer(T *data) noexcept; 8657: inline QSharedDataPointer(const QSharedDataPointer &o) : d(o.d) { if (d) d->ref.ref(); } 8657: inline QSharedDataPointer & operator=(const QSharedDataPointer &o) { 8657: if (o.d != d) { 8657: if (o.d) 8657: o.d->ref.ref(); 8657: T *old = d; 8657: d = o.d; 8657: if (old && !old->ref.deref()) 8657: delete old; 8657: } 8657: return *this; 8657: } 8657: inline QSharedDataPointer &operator=(T *o) { 8657: if (o != d) { 8657: if (o) 8657: o->ref.ref(); 8657: T *old = d; 8657: d = o; 8657: if (old && !old->ref.deref()) 8657: delete old; 8657: } 8657: return *this; 8657: } 8657: 8657: QSharedDataPointer(QSharedDataPointer &&o) noexcept : d(o.d) { o.d = nullptr; } 8657: inline QSharedDataPointer &operator=(QSharedDataPointer &&other) noexcept 8657: { qSwap(d, other.d); return *this; } 8657: 8657: 8657: inline bool operator!() const { return !d; } 8657: 8657: inline void swap(QSharedDataPointer &other) noexcept 8657: { qSwap(d, other.d); } 8657: 8657: protected: 8657: T *clone(); 8657: 8657: private: 8657: void detach_helper(); 8657: 8657: T *d; 8657: }; 8657: 8657: template class QExplicitlySharedDataPointer 8657: { 8657: public: 8657: typedef T Type; 8657: typedef T *pointer; 8657: 8657: inline T &operator*() const { return *d; } 8657: inline T *operator->() { return d; } 8657: inline T *operator->() const { return d; } 8657: inline T *data() const { return d; } 8657: inline const T *constData() const { return d; } 8657: 8657: inline void detach() { if (d && d->ref.load() != 1) detach_helper(); } 8657: 8657: inline void reset() 8657: { 8657: if(d && !d->ref.deref()) 8657: delete d; 8657: 8657: d = nullptr; 8657: } 8657: 8657: inline operator bool () const { return d != nullptr; } 8657: 8657: inline bool operator==(const QExplicitlySharedDataPointer &other) const { return d == other.d; } 8657: inline bool operator!=(const QExplicitlySharedDataPointer &other)/usr/bin/c++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -Wl,-Bsymbolic-functions -Wl,-z,relro -rdynamic CMakeFiles/testfilters_exec.dir/testfilters.cpp.o CMakeFiles/testfilters_exec.dir/testfilters_exec_autogen/mocs_compilation.cpp.o -o testfilters_exec -Wl,-rpath,/<>/obj-arm-linux-gnueabihf/templates/lib ../lib/libGrantlee_Templates.so.5.1.0 libtemplate_test_builtins.a /usr/lib/arm-linux-gnueabihf/libQt5Test.so.5.9.3 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.9.3 const { return d != other.d; } 8657: inline bool operator==(const T *ptr) const { return d == ptr; } 8657: inline bool operator!=(const T *ptr) const { return d != ptr; } 8657: 8657: inline QExplicitlySharedDataPointer() { d = nullptr; } 8657: inline ~QExplicitlySharedDataPointer() { if (d && !d->ref.deref()) delete d; } 8657: 8657: explicit QExplicitlySharedDataPointer(T *data) noexcept; 8657: inline QExplicitlySharedDataPointer(const QExplicitlySharedDataPointer &o) : d(o.d) { if (d) d->ref.ref(); } 8657: 8657: template 8657: inline QExplicitlySharedDataPointer(const QExplicitlySharedDataPointer &o) 8657: 8657: 8657: 8657: : d(o.data()) 8657: 8657: { 8657: if(d) 8657: d->ref.ref(); 8657: } 8657: 8657: inline QExplicitlySharedDataPointer & operator=(const QExplicitlySharedDataPointer &o) { 8657: if (o.d != d) { 8657: if (o.d) 8657: o.d->ref.ref(); 8657: T *old = d; 8657: d = o.d; 8657: if (old && !old->ref.deref()) 8657: delete old; 8657: } 8657: return *this; 8657: } 8657: inline QExplicitlySharedDataPointer &operator=(T *o) { 8657: if (o != d) { 8657: if (o) 8657: o->ref.ref(); 8657: T *old = d; 8657: d = o; 8657: if (old && !old->ref.deref()) 8657: delete old; 8657: } 8657: return *this; 8657: } 8657: 8657: inline QExplicitlySharedDataPointer(QExplicitlySharedDataPointer &&o) noexcept : d(o.d) { o.d = nullptr; } 8657: inline QExplicitlySharedDataPointer &operator=(QExplicitlySharedDataPointer &&other) noexcept 8657: { qSwap(d, other.d); return *this; } 8657: 8657: 8657: inline bool operator!() const { return !d; } 8657: 8657: inline void swap(QExplicitlySharedDataPointer &other) noexcept 8657: { qSwap(d, other.d); } 8657: 8657: protected: 8657: T *clone(); 8657: 8657: private: 8657: void detach_helper(); 8657: 8657: T *d; 8657: }; 8657: 8657: template 8657: inline QSharedDataPointer::QSharedDataPointer(T *adata) noexcept 8657: : d(adata) 8657: { if (d) d->ref.ref(); } 8657: 8657: template 8657: inline T *QSharedDataPointer::clone() 8657: { 8657: return new T(*d); 8657: } 8657: 8657: template 8657: void QSharedDataPointer::detach_helper() 8657: { 8657: T *x = clone(); 8657: x->ref.ref(); 8657: if (!d->ref.deref()) 8657: delete d; 8657: d = x; 8657: } 8657: 8657: template 8657: inline T *QExplicitlySharedDataPointer::clone() 8657: { 8657: return new T(*d); 8657: } 8657: 8657: template 8657: void QExplicitlySharedDataPointer::detach_helper() 8657: { 8657: T *x = clone(); 8657: x->ref.ref(); 8657: if (!d->ref.deref()) 8657: delete d; 8657: d = x; 8657: } 8657: 8657: template 8657: inline QExplicitlySharedDataPointer::QExplicitlySharedDataPointer(T *adata) noexcept 8657: : d(adata) 8657: { if (d) d->ref.ref(); } 8657: 8657: template 8657: inline void qSwap(QSharedDataPointer &p1, QSharedDataPointer &p2) 8657: { p1.swap(p2); } 8657: 8657: template 8657: inline void qSwap(QExplicitlySharedDataPointer &p1, QExplicitlySharedDataPointer &p2) 8657: { p1.swap(p2); } 8657: 8657: 8657: namespace std { 8657: template 8657: inline void swap(::QSharedDataPointer &p1, ::QSharedDataPointer &p2) 8657: { p1.swap(p2); } 8657: 8657: template 8657: inline void swap(::QExplicitlySharedDataPointer &p1, ::QExplicitlySharedDataPointer &p2) 8657: { p1.swap(p2); } 8657: } 8657: 8657: 8657: template 8657: inline uint qHash(const QSharedDataPointer &ptr, uint seed = 0) noexcept 8657: { 8657: return qHash(ptr.data(), seed); 8657: } 8657: template 8657: inline uint qHash(const QExplicitlySharedDataPointer &ptr, uint seed = 0) noexcept 8657: { 8657: return qHash(ptr.data(), seed); 8657: } 8657: 8657: template class QTypeInfo > { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QSharedDataPointer)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QSharedDataPointer >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QSharedDataPointer) }; static inline const char *name() { return "QSharedDataPointer"; } }; 8657: template class QTypeInfo > { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QExplicitlySharedDataPointer)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QExplicitlySharedDataPointer >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QExplicitlySharedDataPointer) }; static inline const char *name() { return "QExplicitlySharedDataPointer"; } }; 8657: 8657: 8657: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 2 3 4 8657: 8657: 8657: 8657: 8657: class QDataStream; 8657: class QDate; 8657: class QDateTime; 8657: class QLocale; 8657: class QTime; 8657: class QVariant; 8657: class QTextStream; 8657: class QTextStreamPrivate; 8657: 8657: class QLocalePrivate; 8657: 8657: __attribute__((visibility("default"))) uint qHash(const QLocale &key, uint seed = 0) noexcept; 8657: 8657: class __attribute__((visibility("default"))) QLocale 8657: { 8657: public: static const QMetaObject staticMetaObject; void qt_check_for_QGADGET_macro(); typedef void QtGadgetHelper; private: 8657: # 66 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 3 4 8657: #pragma GCC diagnostic push 8657: # 66 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 3 4 8657: 8657: # 66 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 3 4 8657: #pragma GCC diagnostic ignored "-Wattributes" 8657: # 66 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 3 4 8657: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8657: # 66 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 3 4 8657: #pragma GCC diagnostic pop 8657: # 66 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 3 4 8657: 8657: friend class QString; 8657: friend class QStringRef; 8657: friend class QByteArray; 8657: friend class QIntValidator; 8657: friend class QDoubleValidatorPrivate; 8657: friend class QTextStream; 8657: friend class QTextStreamPrivate; 8657: 8657: public: 8657: 8657: 8657: enum Language { 8657: AnyLanguage = 0, 8657: C = 1, 8657: Abkhazian = 2, 8657: Oromo = 3, 8657: Afar = 4, 8657: Afrikaans = 5, 8657: Albanian = 6, 8657: Amharic = 7, 8657: Arabic = 8, 8657: Armenian = 9, 8657: Assamese = 10, 8657: Aymara = 11, 8657: Azerbaijani = 12, 8657: Bashkir = 13, 8657: Basque = 14, 8657: Bengali = 15, 8657: Dzongkha = 16, 8657: Bihari = 17, 8657: Bislama = 18, 8657: Breton = 19, 8657: Bulgarian = 20, 8657: Burmese = 21, 8657: Belarusian = 22, 8657: Khmer = 23, 8657: Catalan = 24, 8657: Chinese = 25, 8657: Corsican = 26, 8657: Croatian = 27, 8657: Czech = 28, 8657: Danish = 29, 8657: Dutch = 30, 8657: English = 31, 8657: Esperanto = 32, 8657: Estonian = 33, 8657: Faroese = 34, 8657: Fijian = 35, 8657: Finnish = 36, 8657: French = 37, 8657: WesternFrisian = 38, 8657: Gaelic = 39, 8657: Galician = 40, 8657: Georgian = 41, 8657: German = 42, 8657: Greek = 43, 8657: Greenlandic = 44, 8657: Guarani = 45, 8657: Gujarati = 46, 8657: Hausa = 47, 8657: Hebrew = 48, 8657: Hindi = 49, 8657: Hungarian = 50, 8657: Icelandic = 51, 8657: Indonesian = 52, 8657: Interlingua = 53, 8657: Interlingue = 54, 8657: Inuktitut = 55, 8657: Inupiak = 56, 8657: Irish = 57, 8657: Italian = 58, 8657: Japanese = 59, 8657: Javanese = 60, 8657: Kannada = 61, 8657: Kashmiri = 62, 8657: Kazakh = 63, 8657: Kinyarwanda = 64, 8657: Kirghiz = 65, 8657: Korean = 66, 8657: Kurdish = 67, 8657: Rundi = 68, 8657: Lao = 69, 8657: Latin = 70, 8657: Latvian = 71, 8657: Lingala = 72, 8657: Lithuanian = 73, 8657: Macedonian = 74, 8657: Malagasy = 75, 8657: Malay = 76, 8657: Malayalam = 77, 8657: Maltese = 78, 8657: Maori = 79, 8657: Marathi = 80, 8657: Marshallese = 81, 8657: Mongolian = 82, 8657: NauruLanguage = 83, 8657: Nepali = 84, 8657: NorwegianBokmal = 85, 8657: Occitan = 86, 8657: Oriya = 87, 8657: Pashto = 88, 8657: Persian = 89, 8657: Polish = 90, 8657: Portuguese = 91, 8657: Punjabi = 92, 8657: Quechua = 93, 8657: Romansh = 94, 8657: Romanian = 95, 8657: Russian = 96, 8657: Samoan = 97, 8657: Sango = 98, 8657: Sanskrit = 99, 8657: Serbian = 100, 8657: Ossetic = 101, 8657: SouthernSotho = 102, 8657: Tswana = 103, 8657: Shona = 104, 8657: Sindhi = 105, 8657: Sinhala = 106, 8657: Swati = 107, 8657: Slovak = 108, 8657: Slovenian = 109, 8657: Somali = 110, 8657: Spanish = 111, 8657: Sundanese = 112, 8657: Swahili = 113, 8657: Swedish = 114, 8657: Sardinian = 115, 8657: Tajik = 116, 8657: Tamil = 117, 8657: Tatar = 118, 8657: Telugu = 119, 8657: Thai = 120, 8657: Tibetan = 121, 8657: Tigrinya = 122, 8657: Tongan = 123, 8657: Tsonga = 124, 8657: Turkish = 125, 8657: Turkmen = 126, 8657: Tahitian = 127, 8657: Uighur = 128, 8657: Ukrainian = 129, 8657: Urdu = 130, 8657: Uzbek = 131, 8657: Vietnamese = 132, 8657: Volapuk = 133, 8657: Welsh = 134, 8657: Wolof = 135, 8657: Xhosa = 136, 8657: Yiddish = 137, 8657: Yoruba = 138, 8657: Zhuang = 139, 8657: Zulu = 140, 8657: NorwegianNynorsk = 141, 8657: Bosnian = 142, 8657: Divehi = 143, 8657: Manx = 144, 8657: Cornish = 145, 8657: Akan = 146, 8657: Konkani = 147, 8657: Ga = 148, 8657: Igbo = 149, 8657: Kamba = 150, 8657: Syriac = 151, 8657: Blin = 152, 8657: Geez = 153, 8657: Koro = 154, 8657: Sidamo = 155, 8657: Atsam = 156, 8657: Tigre = 157, 8657: Jju = 158, 8657: Friulian = 159, 8657: Venda = 160, 8657: Ewe = 161, 8657: Walamo = 162, 8657: Hawaiian = 163, 8657: Tyap = 164, 8657: Nyanja = 165, 8657: Filipino = 166, 8657: SwissGerman = 167, 8657: SichuanYi = 168, 8657: Kpelle = 169, 8657: LowGerman = 170, 8657: SouthNdebele = 171, 8657: NorthernSotho = 172, 8657: NorthernSami = 173, 8657: Taroko = 174, 8657: Gusii = 175, 8657: Taita = 176, 8657: Fulah = 177, 8657: Kikuyu = 178, 8657: Samburu = 179, 8657: Sena = 180, 8657: NorthNdebele = 181, 8657: Rombo = 182, 8657: Tachelhit = 183, 8657: Kabyle = 184, 8657: Nyankole = 185, 8657: Bena = 186, 8657: Vunjo = 187, 8657: Bambara = 188, 8657: Embu = 189, 8657: Cherokee = 190, 8657: Morisyen = 191, 8657: Makonde = 192, 8657: Langi = 193, 8657: Ganda = 194, 8657: Bemba = 195, 8657: Kabuverdianu = 196, 8657: Meru = 197, 8657: Kalenjin = 198, 8657: Nama = 199, 8657: Machame = 200, 8657: Colognian = 201, 8657: Masai = 202, 8657: Soga = 203, 8657: Luyia = 204, 8657: Asu = 205, 8657: Teso = 206, 8657: Saho = 207, 8657: KoyraChiini = 208, 8657: Rwa = 209, 8657: Luo = 210, 8657: Chiga = 211, 8657: CentralMoroccoTamazight = 212, 8657: KoyraboroSenni = 213, 8657: Shambala = 214, 8657: Bodo = 215, 8657: Avaric = 216, 8657: Chamorro = 217, 8657: Chechen = 218, 8657: Church = 219, 8657: Chuvash = 220, 8657: Cree = 221, 8657: Haitian = 222, 8657: Herero = 223, 8657: HiriMotu = 224, 8657: Kanuri = 225, 8657: Komi = 226, 8657: Kongo = 227, 8657: Kwanyama = 228, 8657: Limburgish = 229, 8657: LubaKatanga = 230, 8657: Luxembourgish = 231, 8657: Navaho = 232, 8657: Ndonga = 233, 8657: Ojibwa = 234, 8657: Pali = 235, 8657: Walloon = 236, 8657: Aghem = 237, 8657: Basaa = 238, 8657: Zarma = 239, 8657: Duala = 240, 8657: JolaFonyi = 241, 8657: Ewondo = 242, 8657: Bafia = 243, 8657: MakhuwaMeetto = 244, 8657: Mundang = 245, 8657: Kwasio = 246, 8657: Nuer = 247, 8657: Sakha = 248, 8657: Sangu = 249, 8657: CongoSwahili = 250, 8657: Tasawaq = 251, 8657: Vai = 252, 8657: Walser = 253, 8657: Yangben = 254, 8657: Avestan = 255, 8657: Asturian = 256, 8657: Ngomba = 257, 8657: Kako = 258, 8657: Meta = 259, 8657: Ngiemboon = 260, 8657: Aragonese = 261, 8657: Akkadian = 262, 8657: AncientEgyptian = 263, 8657: AncientGreek = 264, 8657: Aramaic = 265, 8657: Balinese = 266, 8657: Bamun = 267, 8657: BatakToba = 268, 8657: Buginese = 269, 8657: Buhid = 270, 8657: Carian = 271, 8657: Chakma = 272, 8657: ClassicalMandaic = 273, 8657: Coptic = 274, 8657: Dogri = 275, 8657: EasternCham = 276, 8657: EasternKayah = 277, 8657: Etruscan = 278, 8657: Gothic = 279, 8657: Hanunoo = 280, 8657: Ingush = 281, 8657: LargeFloweryMiao = 282, 8657: Lepcha = 283, 8657: Limbu = 284, 8657: Lisu = 285, 8657: Lu = 286, 8657: Lycian = 287, 8657: Lydian = 288, 8657: Mandingo = 289, 8657: Manipuri = 290, 8657: Meroitic = 291, 8657: NorthernThai = 292, 8657: OldIrish = 293, 8657: OldNorse = 294, 8657: OldPersian = 295, 8657: OldTurkish = 296, 8657: Pahlavi = 297, 8657: Parthian = 298, 8657: Phoenician = 299, 8657: PrakritLanguage = 300, 8657: Rejang = 301, 8657: Sabaean = 302, 8657: Samaritan = 303, 8657: Santali = 304, 8657: Saurashtra = 305, 8657: Sora = 306, 8657: Sylheti = 307, 8657: Tagbanwa = 308, 8657: TaiDam = 309, 8657: TaiNua = 310, 8657: Ugaritic = 311, 8657: Akoose = 312, 8657: Lakota = 313, 8657: StandardMoroccanTamazight = 314, 8657: Mapuche = 315, 8657: CentralKurdish = 316, 8657: LowerSorbian = 317, 8657: UpperSorbian = 318, 8657: Kenyang = 319, 8657: Mohawk = 320, 8657: Nko = 321, 8657: Prussian = 322, 8657: Kiche = 323, 8657: SouthernSami = 324, 8657: LuleSami = 325, 8657: InariSami = 326, 8657: SkoltSami = 327, 8657: Warlpiri = 328, 8657: ManichaeanMiddlePersian = 329, 8657: Mende = 330, 8657: AncientNorthArabian = 331, 8657: LinearA = 332, 8657: HmongNjua = 333, 8657: Ho = 334, 8657: Lezghian = 335, 8657: Bassa = 336, 8657: Mono = 337, 8657: TedimChin = 338, 8657: Maithili = 339, 8657: Ahom = 340, 8657: AmericanSignLanguage = 341, 8657: ArdhamagadhiPrakrit = 342, 8657: Bhojpuri = 343, 8657: HieroglyphicLuwian = 344, 8657: LiteraryChinese = 345, 8657: Mazanderani = 346, 8657: Mru = 347, 8657: Newari = 348, 8657: NorthernLuri = 349, 8657: Palauan = 350, 8657: Papiamento = 351, 8657: Saraiki = 352, 8657: TokelauLanguage = 353, 8657: TokPisin = 354, 8657: TuvaluLanguage = 355, 8657: UncodedLanguages = 356, 8657: Cantonese = 357, 8657: Osage = 358, 8657: Tangut = 359, 8657: 8657: Norwegian = NorwegianBokmal, 8657: Moldavian = Romanian, 8657: SerboCroatian = Serbian, 8657: Tagalog = Filipino, 8657: Twi = Akan, 8657: Afan = Oromo, 8657: Byelorussian = Belarusian, 8657: Bhutani = Dzongkha, 8657: Cambodian = Khmer, 8657: Kurundi = Rundi, 8657: RhaetoRomance = Romansh, 8657: Chewa = Nyanja, 8657: Frisian = WesternFrisian, 8657: Uigur = Uighur, 8657: 8657: LastLanguage = Tangut 8657: }; 8657: 8657: enum Script { 8657: AnyScript = 0, 8657: ArabicScript = 1, 8657: CyrillicScript = 2, 8657: DeseretScript = 3, 8657: GurmukhiScript = 4, 8657: SimplifiedHanScript = 5, 8657: TraditionalHanScript = 6, 8657: LatinScript = 7, 8657: MongolianScript = 8, 8657: TifinaghScript = 9, 8657: ArmenianScript = 10, 8657: BengaliScript = 11, 8657: CherokeeScript = 12, 8657: DevanagariScript = 13, 8657: EthiopicScript = 14, 8657: GeorgianScript = 15, 8657: GreekScript = 16, 8657: GujaratiScript = 17, 8657: HebrewScript = 18, 8657: JapaneseScript = 19, 8657: KhmerScript = 20, 8657: KannadaScript = 21, 8657: KoreanScript = 22, 8657: LaoScript = 23, 8657: MalayalamScript = 24, 8657: MyanmarScript = 25, 8657: OriyaScript = 26, 8657: TamilScript = 27, 8657: TeluguScript = 28, 8657: ThaanaScript = 29, 8657: ThaiScript = 30, 8657: TibetanScript = 31, 8657: SinhalaScript = 32, 8657: SyriacScript = 33, 8657: YiScript = 34, 8657: VaiScript = 35, 8657: AvestanScript = 36, 8657: BalineseScript = 37, 8657: BamumScript = 38, 8657: BatakScript = 39, 8657: BopomofoScript = 40, 8657: BrahmiScript = 41, 8657: BugineseScript = 42, 8657: BuhidScript = 43, 8657: CanadianAboriginalScript = 44, 8657: CarianScript = 45, 8657: ChakmaScript = 46, 8657: ChamScript = 47, 8657: CopticScript = 48, 8657: CypriotScript = 49, 8657: EgyptianHieroglyphsScript = 50, 8657: FraserScript = 51, 8657: GlagoliticScript = 52, 8657: GothicScript = 53, 8657: HanScript = 54, 8657: HangulScript = 55, 8657: HanunooScript = 56, 8657: ImperialAramaicScript = 57, 8657: InscriptionalPahlaviScript = 58, 8657: InscriptionalParthianScript = 59, 8657: JavaneseScript = 60, 8657: KaithiScript = 61, 8657: KatakanaScript = 62, 8657: KayahLiScript = 63, 8657: KharoshthiScript = 64, 8657: LannaScript = 65, 8657: LepchaScript = 66, 8657: LimbuScript = 67, 8657: LinearBScript = 68, 8657: LycianScript = 69, 8657: LydianScript = 70, 8657: MandaeanScript = 71, 8657: MeiteiMayekScript = 72, 8657: MeroiticScript = 73, 8657: MeroiticCursiveScript = 74, 8657: NkoScript = 75, 8657: NewTaiLueScript = 76, 8657: OghamScript = 77, 8657: OlChikiScript = 78, 8657: OldItalicScript = 79, 8657: OldPersianScript = 80, 8657: OldSouthArabianScript = 81, 8657: OrkhonScript = 82, 8657: OsmanyaScript = 83, 8657: PhagsPaScript = 84, 8657: PhoenicianScript = 85, 8657: PollardPhoneticScript = 86, 8657: RejangScript = 87, 8657: RunicScript = 88, 8657: SamaritanScript = 89, 8657: SaurashtraScript = 90, 8657: SharadaScript = 91, 8657: ShavianScript = 92, 8657: SoraSompengScript = 93, 8657: CuneiformScript = 94, 8657: SundaneseScript = 95, 8657: SylotiNagriScript = 96, 8657: TagalogScript = 97, 8657: TagbanwaScript = 98, 8657: TaiLeScript = 99, 8657: TaiVietScript = 100, 8657: TakriScript = 101, 8657: UgariticScript = 102, 8657: BrailleScript = 103, 8657: HiraganaScript = 104, 8657: CaucasianAlbanianScript = 105, 8657: BassaVahScript = 106, 8657: DuployanScript = 107, 8657: ElbasanScript = 108, 8657: GranthaScript = 109, 8657: PahawhHmongScript = 110, 8657: KhojkiScript = 111, 8657: LinearAScript = 112, 8657: MahajaniScript = 113, 8657: ManichaeanScript = 114, 8657: MendeKikakuiScript = 115, 8657: ModiScript = 116, 8657: MroScript = 117, 8657: OldNorthArabianScript = 118, 8657: NabataeanScript = 119, 8657: PalmyreneScript = 120, 8657: PauCinHauScript = 121, 8657: OldPermicScript = 122, 8657: PsalterPahlaviScript = 123, 8657: SiddhamScript = 124, 8657: KhudawadiScript = 125, 8657: TirhutaScript = 126, 8657: VarangKshitiScript = 127, 8657: AhomScript = 128, 8657: AnatolianHieroglyphsScript = 129, 8657: HatranScript = 130, 8657: MultaniScript = 131, 8657: OldHungarianScript = 132, 8657: SignWritingScript = 133, 8657: AdlamScript = 134, 8657: BhaiksukiScript = 135, 8657: MarchenScript = 136, 8657: NewaScript = 137, 8657: OsageScript = 138, 8657: TangutScript = 139, 8657: HanWithBopomofoScript = 140, 8657: JamoScript = 141, 8657: 8657: SimplifiedChineseScript = SimplifiedHanScript, 8657: TraditionalChineseScript = TraditionalHanScript, 8657: 8657: LastScript = JamoScript 8657: }; 8657: enum Country { 8657: AnyCountry = 0, 8657: Afghanistan = 1, 8657: Albania = 2, 8657: Algeria = 3, 8657: AmericanSamoa = 4, 8657: Andorra = 5, 8657: Angola = 6, 8657: Anguilla = 7, 8657: Antarctica = 8, 8657: AntiguaAndBarbuda = 9, 8657: Argentina = 10, 8657: Armenia = 11, 8657: Aruba = 12, 8657: Australia = 13, 8657: Austria = 14, 8657: Azerbaijan = 15, 8657: Bahamas = 16, 8657: Bahrain = 17, 8657: Bangladesh = 18, 8657: Barbados = 19, 8657: Belarus = 20, 8657: Belgium = 21, 8657: Belize = 22, 8657: Benin = 23, 8657: Bermuda = 24, 8657: Bhutan = 25, 8657: Bolivia = 26, 8657: BosniaAndHerzegowina = 27, 8657: Botswana = 28, 8657: BouvetIsland = 29, 8657: Brazil = 30, 8657: BritishIndianOceanTerritory = 31, 8657: Brunei = 32, 8657: Bulgaria = 33, 8657: BurkinaFaso = 34, 8657: Burundi = 35, 8657: Cambodia = 36, 8657: Cameroon = 37, 8657: Canada = 38, 8657: CapeVerde = 39, 8657: CaymanIslands = 40, 8657: CentralAfricanRepublic = 41, 8657: Chad = 42, 8657: Chile = 43, 8657: China = 44, 8657: ChristmasIsland = 45, 8657: CocosIslands = 46, 8657: Colombia = 47, 8657: Comoros = 48, 8657: CongoKinshasa = 49, 8657: CongoBrazzaville = 50, 8657: CookIslands = 51, 8657: CostaRica = 52, 8657: IvoryCoast = 53, 8657: Croatia = 54, 8657: Cuba = 55, 8657: Cyprus = 56, 8657: CzechRepublic = 57, 8657: Denmark = 58, 8657: Djibouti = 59, 8657: Dominica = 60, 8657: DominicanRepublic = 61, 8657: EastTimor = 62, 8657: Ecuador = 63, 8657: Egypt = 64, 8657: ElSalvador = 65, 8657: EquatorialGuinea = 66, 8657: Eritrea = 67, 8657: Estonia = 68, 8657: Ethiopia = 69, 8657: FalklandIslands = 70, 8657: FaroeIslands = 71, 8657: Fiji = 72, 8657: Finland = 73, 8657: France = 74, 8657: Guernsey = 75, 8657: FrenchGuiana = 76, 8657: FrenchPolynesia = 77, 8657: FrenchSouthernTerritories = 78, 8657: Gabon = 79, 8657: Gambia = 80, 8657: Georgia = 81, 8657: Germany = 82, 8657: Ghana = 83, 8657: Gibraltar = 84, 8657: Greece = 85, 8657: Greenland = 86, 8657: Grenada = 87, 8657: Guadeloupe = 88, 8657: Guam = 89, 8657: Guatemala = 90, 8657: Guinea = 91, 8657: GuineaBissau = 92, 8657: Guyana = 93, 8657: Haiti = 94, 8657: HeardAndMcDonaldIslands = 95, 8657: Honduras = 96, 8657: HongKong = 97, 8657: Hungary = 98, 8657: Iceland = 99, 8657: India = 100, 8657: Indonesia = 101, 8657: Iran = 102, 8657: Iraq = 103, 8657: Ireland = 104, 8657: Israel = 105, 8657: Italy = 106, 8657: Jamaica = 107, 8657: Japan = 108, 8657: Jordan = 109, 8657: Kazakhstan = 110, 8657: Kenya = 111, 8657: Kiribati = 112, 8657: NorthKorea = 113, 8657: SouthKorea = 114, 8657: Kuwait = 115, 8657: Kyrgyzstan = 116, 8657: Laos = 117, 8657: Latvia = 118, 8657: Lebanon = 119, 8657: Lesotho = 120, 8657: Liberia = 121, 8657: Libya = 122, 8657: Liechtenstein = 123, 8657: Lithuania = 124, 8657: Luxembourg = 125, 8657: Macau = 126, 8657: Macedonia = 127, 8657: Madagascar = 128, 8657: Malawi = 129, 8657: Malaysia = 130, 8657: Maldives = 131, 8657: Mali = 132, 8657: Malta = 133, 8657: MarshallIslands = 134, 8657: Martinique = 135, 8657: Mauritania = 136, 8657: Mauritius = 137, 8657: Mayotte = 138, 8657: Mexico = 139, 8657: Micronesia = 140, 8657: Moldova = 141, 8657: Monaco = 142, 8657: Mongolia = 143, 8657: Montserrat = 144, 8657: Morocco = 145, 8657: Mozambique = 146, 8657: Myanmar = 147, 8657: Namibia = 148, 8657: NauruCountry = 149, 8657: Nepal = 150, 8657: Netherlands = 151, 8657: CuraSao = 152, 8657: NewCaledonia = 153, 8657: NewZealand = 154, 8657: Nicaragua = 155, 8657: Niger = 156, 8657: Nigeria = 157, 8657: Niue = 158, 8657: NorfolkIsland = 159, 8657: NorthernMarianaIslands = 160, 8657: Norway = 161, 8657: Oman = 162, 8657: Pakistan = 163, 8657: Palau = 164, 8657: PalestinianTerritories = 165, 8657: Panama = 166, 8657: PapuaNewGuinea = 167, 8657: Paraguay = 168, 8657: Peru = 169, 8657: Philippines = 170, 8657: Pitcairn = 171, 8657: Poland = 172, 8657: Portugal = 173, 8657: PuertoRico = 174, 8657: Qatar = 175, 8657: Reunion = 176, 8657: Romania = 177, 8657: Russia = 178, 8657: Rwanda = 179, 8657: SaintKittsAndNevis = 180, 8657: SaintLucia = 181, 8657: SaintVincentAndTheGrenadines = 182, 8657: Samoa = 183, 8657: SanMarino = 184, 8657: SaoTomeAndPrincipe = 185, 8657: SaudiArabia = 186, 8657: Senegal = 187, 8657: Seychelles = 188, 8657: SierraLeone = 189, 8657: Singapore = 190, 8657: Slovakia = 191, 8657: Slovenia = 192, 8657: SolomonIslands = 193, 8657: Somalia = 194, 8657: SouthAfrica = 195, 8657: SouthGeorgiaAndTheSouthSandwichIslands = 196, 8657: Spain = 197, 8657: SriLanka = 198, 8657: SaintHelena = 199, 8657: SaintPierreAndMiquelon = 200, 8657: Sudan = 201, 8657: Suriname = 202, 8657: SvalbardAndJanMayenIslands = 203, 8657: Swaziland = 204, 8657: Sweden = 205, 8657: Switzerland = 206, 8657: Syria = 207, 8657: Taiwan = 208, 8657: Tajikistan = 209, 8657: Tanzania = 210, 8657: Thailand = 211, 8657: Togo = 212, 8657: TokelauCountry = 213, 8657: Tonga = 214, 8657: TrinidadAndTobago = 215, 8657: Tunisia = 216, 8657: Turkey = 217, 8657: Turkmenistan = 218, 8657: TurksAndCaicosIslands = 219, 8657: TuvaluCountry = 220, 8657: Uganda = 221, 8657: Ukraine = 222, 8657: UnitedArabEmirates = 223, 8657: UnitedKingdom = 224, 8657: UnitedStates = 225, 8657: UnitedStatesMinorOutlyingIslands = 226, 8657: Uruguay = 227, 8657: Uzbekistan = 228, 8657: Vanuatu = 229, 8657: VaticanCityState = 230, 8657: Venezuela = 231, 8657: Vietnam = 232, 8657: BritishVirginIslands = 233, 8657: UnitedStatesVirginIslands = 234, 8657: WallisAndFutunaIslands = 235, 8657: WesternSahara = 236, 8657: Yemen = 237, 8657: CanaryIslands = 238, 8657: Zambia = 239, 8657: Zimbabwe = 240, 8657: ClippertonIsland = 241, 8657: Montenegro = 242, 8657: Serbia = 243, 8657: SaintBarthelemy = 244, 8657: SaintMartin = 245, 8657: LatinAmericaAndTheCaribbean = 246, 8657: AscensionIsland = 247, 8657: AlandIslands = 248, 8657: DiegoGarcia = 249, 8657: CeutaAndMelilla = 250, 8657: IsleOfMan = 251, 8657: Jersey = 252, 8657: TristanDaCunha = 253, 8657: SouthSudan = 254, 8657: Bonaire = 255, 8657: SintMaarten = 256, 8657: Kosovo = 257, 8657: EuropeanUnion = 258, 8657: OutlyingOceania = 259, 8657: 8657: Tokelau = TokelauCountry, 8657: Tuvalu = TuvaluCountry, 8657: DemocraticRepublicOfCongo = CongoKinshasa, 8657: PeoplesRepublicOfCongo = CongoBrazzaville, 8657: DemocraticRepublicOfKorea = NorthKorea, 8657: RepublicOfKorea = SouthKorea, 8657: RussianFederation = Russia, 8657: SyrianArabRepublic = Syria, 8657: 8657: LastCountry = OutlyingOceania 8657: }; 8657: 8657: 8657: friend constexpr const QMetaObject *qt_getEnumMetaObject(Language) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Language) noexcept { return "Language"; } 8657: friend constexpr const QMetaObject *qt_getEnumMetaObject(Country) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Country) noexcept { return "Country"; } 8657: friend constexpr const QMetaObject *qt_getEnumMetaObject(Script) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Script) noexcept { return "Script"; } 8657: 8657: enum MeasurementSystem { 8657: MetricSystem, 8657: ImperialUSSystem, 8657: ImperialUKSystem, 8657: ImperialSystem = ImperialUSSystem 8657: }; 8657: friend constexpr const QMetaObject *qt_getEnumMetaObject(MeasurementSystem) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(MeasurementSystem) noexcept { return "MeasurementSystem"; } 8657: 8657: enum FormatType { LongFormat, ShortFormat, NarrowFormat }; 8657: enum NumberOption { 8657: DefaultNumberOptions = 0x0, 8657: OmitGroupSeparator = 0x01, 8657: RejectGroupSeparator = 0x02, 8657: OmitLeadingZeroInExponent = 0x04, 8657: RejectLeadingZeroInExponent = 0x08, 8657: IncludeTrailingZeroesAfterDot = 0x10, 8657: RejectTrailingZeroesAfterDot = 0x20 8657: }; 8657: typedef QFlags NumberOptions; 8657: 8657: enum FloatingPointPrecisionOption { 8657: FloatingPointShortest = -128 8657: }; 8657: 8657: enum CurrencySymbolFormat { 8657: CurrencyIsoCode, 8657: CurrencySymbol, 8657: CurrencyDisplayName 8657: }; 8657: 8657: QLocale(); 8657: QLocale(const QString &name); 8657: QLocale(Language language, Country country = AnyCountry); 8657: QLocale(Language language, Script script, Country country); 8657: QLocale(const QLocale &other); 8657: 8657: QLocale &operator=(QLocale &&other) noexcept { swap(other); return *this; } 8657: 8657: QLocale &operator=(const QLocale &other); 8657: ~QLocale(); 8657: 8657: void swap(QLocale &other) noexcept { qSwap(d, other.d); } 8657: 8657: Language language() const; 8657: Script script() const; 8657: Country country() const; 8657: QString name() const; 8657: 8657: QString bcp47Name() const; 8657: QString nativeLanguageName() const; 8657: QString nativeCountryName() const; 8657: 8657: short toShort(const QString &s, bool *ok = nullptr) const; 8657: ushort toUShort(const QString &s, bool *ok = nullptr) const; 8657: int toInt(const QString &s, bool *ok = nullptr) const; 8657: uint toUInt(const QString &s, bool *ok = nullptr) const; 8657: qlonglong toLongLong(const QString &s, bool *ok = nullptr) const; 8657: qulonglong toULongLong(const QString &s, bool *ok = nullptr) const; 8657: float toFloat(const QString &s, bool *ok = nullptr) const; 8657: double toDouble(const QString &s, bool *ok = nullptr) const; 8657: 8657: short toShort(const QStringRef &s, bool *ok = nullptr) const; 8657: ushort toUShort(const QStringRef &s, bool *ok = nullptr) const; 8657: int toInt(const QStringRef &s, bool *ok = nullptr) const; 8657: uint toUInt(const QStringRef &s, bool *ok = nullptr) const; 8657: qlonglong toLongLong(const QStringRef &s, bool *ok = nullptr) const; 8657: qulonglong toULongLong(const QStringRef &s, bool *ok = nullptr) const; 8657: float toFloat(const QStringRef &s, bool *ok = nullptr) const; 8657: double toDouble(const QStringRef &s, bool *ok = nullptr) const; 8657: 8657: QString toString(qlonglong i) const; 8657: QString toString(qulonglong i) const; 8657: inline QString toString(short i) const; 8657: inline QString toString(ushort i) const; 8657: inline QString toString(int i) const; 8657: inline QString toString(uint i) const; 8657: QString toString(double i, char f = 'g', int prec = 6) const; 8657: inline QString toString(float i, char f = 'g', int prec = 6) const; 8657: QString toString(const QDate &date, const QString &formatStr) const; 8657: QString toString(const QDate &date, FormatType format = LongFormat) const; 8657: QString toString(const QTime &time, const QString &formatStr) const; 8657: QString toString(const QTime &time, FormatType format = LongFormat) const; 8657: QString toString(const QDateTime &dateTime, FormatType format = LongFormat) const; 8657: QString toString(const QDateTime &dateTime, const QString &format) const; 8657: 8657: QString dateFormat(FormatType format = LongFormat) const; 8657: QString timeFormat(FormatType format = LongFormat) const; 8657: QString dateTimeFormat(FormatType format = LongFormat) const; 8657: 8657: QDate toDate(const QString &string, FormatType = LongFormat) const; 8657: QTime toTime(const QString &string, FormatType = LongFormat) const; 8657: QDateTime toDateTime(const QString &string, FormatType format = LongFormat) const; 8657: QDate toDate(const QString &string, const QString &format) const; 8657: QTime toTime(const QString &string, const QString &format) const; 8657: QDateTime toDateTime(const QString &string, const QString &format) const; 8657: 8657: 8657: 8657: 8657: QChar decimalPoint() const; 8657: QChar groupSeparator() const; 8657: QChar percent() const; 8657: QChar zeroDigit() const; 8657: QChar negativeSign() const; 8657: QChar positiveSign() const; 8657: QChar exponential() const; 8657: 8657: QString monthName(int, FormatType format = LongFormat) const; 8657: QString standaloneMonthName(int, FormatType format = LongFormat) const; 8657: QString dayName(int, FormatType format = LongFormat) const; 8657: QString standaloneDayName(int, FormatType format = LongFormat) const; 8657: 8657: Qt::DayOfWeek firstDayOfWeek() const; 8657: QList weekdays() const; 8657: 8657: QString amText() const; 8657: QString pmText() const; 8657: 8657: MeasurementSystem measurementSystem() const; 8657: 8657: Qt::LayoutDirection textDirection() const; 8657: 8657: QString toUpper(const QString &str) const; 8657: QString toLower(const QString &str) const; 8657: 8657: QString currencySymbol(CurrencySymbolFormat = CurrencySymbol) const; 8657: QString toCurrencyString(qlonglong, const QString &symbol = QString()) const; 8657: QString toCurrencyString(qulonglong, const QString &symbol = QString()) const; 8657: inline QString toCurrencyString(short, const QString &symbol = QString()) const; 8657: inline QString toCurrencyString(ushort, const QString &symbol = QString()) const; 8657: inline QString toCurrencyString(int, const QString &symbol = QString()) const; 8657: inline QString toCurrencyString(uint, const QString &symbol = QString()) const; 8657: 8657: 8657: 8657: 8657: 8657: QString toCurrencyString(double, const QString &symbol = QString()) const; 8657: QString toCurrencyString(double, const QString &symbol, int precision) const; 8657: inline QString toCurrencyString(float i, const QString &symbol = QString()) const 8657: { return toCurrencyString(double(i), symbol); } 8657: inline QString toCurrencyString(float i, const QString &symbol, int precision) const 8657: { return toCurrencyString(double(i), symbol, precision); } 8657: 8657: 8657: QStringList uiLanguages() const; 8657: 8657: bool operator==(const QLocale &other) const; 8657: bool operator!=(const QLocale &other) const; 8657: 8657: static QString languageToString(Language language); 8657: static QString countryToString(Country country); 8657: static QString scriptToString(Script script); 8657: static void setDefault(const QLocale &locale); 8657: 8657: static QLocale c() { return QLocale(C); } 8657: static QLocale system(); 8657: 8657: static QList matchingLocales(QLocale::Language language, QLocale::Script script, QLocale::Country country); 8657: static QList countriesForLanguage(Language lang); 8657: 8657: void setNumberOptions(NumberOptions options); 8657: NumberOptions numberOptions() const; 8657: 8657: enum QuotationStyle { StandardQuotation, AlternateQuotation }; 8657: QString quoteString(const QString &str, QuotationStyle style = StandardQuotation) const; 8657: QString quoteString(const QStringRef &str, QuotationStyle style = StandardQuotation) const; 8657: 8657: QString createSeparatedList(const QStringList &strl) const; 8657: 8657: private: 8657: QLocale(QLocalePrivate &dd); 8657: friend class QLocalePrivate; 8657: friend __attribute__((visibility("default"))) uint qHash(const QLocale &key, uint seed) noexcept; 8657: 8657: QSharedDataPointer d; 8657: }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QLocale)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QLocale >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QLocale) }; static inline const char *name() { return "QLocale"; } }; inline void swap(QLocale &value1, QLocale &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8657: constexpr inline QFlags operator|(QLocale::NumberOptions::enum_type f1, QLocale::NumberOptions::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QLocale::NumberOptions::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QLocale::NumberOptions::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: 8657: inline QString QLocale::toString(short i) const 8657: { return toString(qlonglong(i)); } 8657: inline QString QLocale::toString(ushort i) const 8657: { return toString(qulonglong(i)); } 8657: inline QString QLocale::toString(int i) const 8657: { return toString(qlonglong(i)); } 8657: inline QString QLocale::toString(uint i) const 8657: { return toString(qulonglong(i)); } 8657: inline QString QLocale::toString(float i, char f, int prec) const 8657: { return toString(double(i), f, prec); } 8657: 8657: inline QString QLocale::toCurrencyString(short i, const QString &symbol) const 8657: { return toCurrencyString(qlonglong(i), symbol); } 8657: inline QString QLocale::toCurrencyString(ushort i, const QString &symbol) const 8657: { return toCurrencyString(qulonglong(i), symbol); } 8657: inline QString QLocale::toCurrencyString(int i, const QString &symbol) const 8657: { return toCurrencyString(qlonglong(i), symbol); } 8657: inline QString QLocale::toCurrencyString(uint i, const QString &symbol) const 8657: { return toCurrencyString(qulonglong(i), symbol); } 8657: 8657: 8657: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QLocale &); 8657: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QLocale &); 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QLocale &); 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QLocale" 2 3 4 8657: # 27 "/<>/templates/lib/abstractlocalizer.h" 2 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QSharedPointer" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer.h" 1 3 4 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 1 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer.h" 2 3 4 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer_impl.h" 1 3 4 8657: # 63 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer_impl.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 1 3 4 8657: # 64 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer_impl.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: # 90 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer_impl.h" 3 4 8657: template class QWeakPointer; 8657: template class QSharedPointer; 8657: template class QEnableSharedFromThis; 8657: 8657: class QVariant; 8657: 8657: template 8657: QSharedPointer qSharedPointerCast(const QSharedPointer &ptr); 8657: template 8657: QSharedPointer qSharedPointerDynamicCast(const QSharedPointer &ptr); 8657: template 8657: QSharedPointer qSharedPointerConstCast(const QSharedPointer &ptr); 8657: 8657: 8657: template 8657: QSharedPointer qSharedPointerObjectCast(const QSharedPointer &ptr); 8657: 8657: 8657: namespace QtSharedPointer { 8657: template class ExternalRefCount; 8657: 8657: template QSharedPointer copyAndSetPointer(X * ptr, const QSharedPointer &src); 8657: 8657: 8657: __attribute__((visibility("default"))) void internalSafetyCheckAdd(const void *, const volatile void *); 8657: __attribute__((visibility("default"))) void internalSafetyCheckRemove(const void *); 8657: 8657: template 8657: inline void executeDeleter(T *t, RetVal (Klass:: *memberDeleter)()) 8657: { (t->*memberDeleter)(); } 8657: template 8657: inline void executeDeleter(T *t, Deleter d) 8657: { d(t); } 8657: struct NormalDeleter {}; 8657: 8657: 8657: template struct RemovePointer; 8657: template struct RemovePointer { typedef T Type; }; 8657: template struct RemovePointer > { typedef T Type; }; 8657: template struct RemovePointer > { typedef T Type; }; 8657: # 141 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer_impl.h" 3 4 8657: struct ExternalRefCountData 8657: { 8657: typedef void (*DestroyerFn)(ExternalRefCountData *); 8657: QBasicAtomicInt weakref; 8657: QBasicAtomicInt strongref; 8657: DestroyerFn destroyer; 8657: 8657: inline ExternalRefCountData(DestroyerFn d) 8657: : destroyer(d) 8657: { 8657: strongref.store(1); 8657: weakref.store(1); 8657: } 8657: inline ExternalRefCountData(Qt::Initialization) { } 8657: ~ExternalRefCountData() { do { } while ((false) && (!weakref.load())); do { } while ((false) && (strongref.load() <= 0)); } 8657: 8657: void destroy() { destroyer(this); } 8657: 8657: 8657: __attribute__((visibility("default"))) static ExternalRefCountData *getAndRef(const QObject *); 8657: __attribute__((visibility("default"))) void setQObjectShared(const QObject *, bool enable); 8657: __attribute__((visibility("default"))) void checkQObjectShared(const QObject *); 8657: 8657: inline void checkQObjectShared(...) { } 8657: inline void setQObjectShared(...) { } 8657: 8657: inline void operator delete(void *ptr) { ::operator delete(ptr); } 8657: inline void operator delete(void *, void *) { } 8657: }; 8657: 8657: 8657: template 8657: struct CustomDeleter 8657: { 8657: Deleter deleter; 8657: T *ptr; 8657: 8657: CustomDeleter(T *p, Deleter d) : deleter(d), ptr(p) {} 8657: void execute() { executeDeleter(ptr, deleter); } 8657: }; 8657: # 189 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer_impl.h" 3 4 8657: template 8657: struct CustomDeleter 8657: { 8657: T *ptr; 8657: 8657: CustomDeleter(T *p, NormalDeleter) : ptr(p) {} 8657: void execute() { delete ptr; } 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct ExternalRefCountWithCustomDeleter: public ExternalRefCountData 8657: { 8657: typedef ExternalRefCountWithCustomDeleter Self; 8657: typedef ExternalRefCountData BaseClass; 8657: CustomDeleter extra; 8657: 8657: static inline void deleter(ExternalRefCountData *self) 8657: { 8657: Self *realself = static_cast(self); 8657: realself->extra.execute(); 8657: 8657: 8657: realself->extra.~CustomDeleter(); 8657: } 8657: static void safetyCheckDeleter(ExternalRefCountData *self) 8657: { 8657: internalSafetyCheckRemove(self); 8657: deleter(self); 8657: } 8657: 8657: static inline Self *create(T *ptr, Deleter userDeleter, DestroyerFn actualDeleter) 8657: { 8657: Self *d = static_cast(::operator new(sizeof(Self))); 8657: 8657: 8657: new (&d->extra) CustomDeleter(ptr, userDeleter); 8657: new (d) BaseClass(actualDeleter); 8657: 8657: return d; 8657: } 8657: private: 8657: 8657: ExternalRefCountWithCustomDeleter() = delete; 8657: ~ExternalRefCountWithCustomDeleter() = delete; 8657: ExternalRefCountWithCustomDeleter(const ExternalRefCountWithCustomDeleter &) = delete; ExternalRefCountWithCustomDeleter &operator=(const ExternalRefCountWithCustomDeleter &) = delete; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct ExternalRefCountWithContiguousData: public ExternalRefCountData 8657: { 8657: typedef ExternalRefCountData Parent; 8657: T data; 8657: 8657: static void deleter(ExternalRefCountData *self) 8657: { 8657: ExternalRefCountWithContiguousData *that = 8657: static_cast(self); 8657: that->data.~T(); 8657: (void)that;; 8657: } 8657: static void safetyCheckDeleter(ExternalRefCountData *self) 8657: { 8657: internalSafetyCheckRemove(self); 8657: deleter(self); 8657: } 8657: static void noDeleter(ExternalRefCountData *) { } 8657: 8657: static inline ExternalRefCountData *create(T **ptr, DestroyerFn destroy) 8657: { 8657: ExternalRefCountWithContiguousData *d = 8657: static_cast(::operator new(sizeof(ExternalRefCountWithContiguousData))); 8657: 8657: 8657: 8657: new (d) Parent(destroy); 8657: 8657: *ptr = &d->data; 8657: return d; 8657: } 8657: 8657: private: 8657: 8657: ExternalRefCountWithContiguousData() = delete; 8657: ~ExternalRefCountWithContiguousData() = delete; 8657: ExternalRefCountWithContiguousData(const ExternalRefCountWithContiguousData &) = delete; ExternalRefCountWithContiguousData &operator=(const ExternalRefCountWithContiguousData &) = delete; 8657: }; 8657: 8657: 8657: __attribute__((visibility("default"))) QWeakPointer weakPointerFromVariant_internal(const QVariant &variant); 8657: __attribute__((visibility("default"))) QSharedPointer sharedPointerFromVariant_internal(const QVariant &variant); 8657: 8657: } 8657: 8657: template class QSharedPointer 8657: { 8657: typedef T *QSharedPointer:: *RestrictedBool; 8657: typedef QtSharedPointer::ExternalRefCountData Data; 8657: public: 8657: typedef T Type; 8657: typedef T element_type; 8657: typedef T value_type; 8657: typedef value_type *pointer; 8657: typedef const value_type *const_pointer; 8657: typedef value_type &reference; 8657: typedef const value_type &const_reference; 8657: typedef qptrdiff difference_type; 8657: 8657: T *data() const noexcept { return value; } 8657: bool isNull() const noexcept { return !data(); } 8657: operator RestrictedBool() const noexcept { return isNull() ? nullptr : &QSharedPointer::value; } 8657: bool operator !() const noexcept { return isNull(); } 8657: T &operator*() const { return *data(); } 8657: T *operator->() const noexcept { return data(); } 8657: 8657: constexpr QSharedPointer() noexcept : value(nullptr), d(nullptr) { } 8657: ~QSharedPointer() { deref(); } 8657: 8657: constexpr QSharedPointer(std::nullptr_t) noexcept : value(nullptr), d(nullptr) { } 8657: 8657: template 8657: inline explicit QSharedPointer(X *ptr) : value(ptr) 8657: { internalConstruct(ptr, QtSharedPointer::NormalDeleter()); } 8657: 8657: template 8657: inline QSharedPointer(X *ptr, Deleter deleter) : value(ptr) 8657: { internalConstruct(ptr, deleter); } 8657: 8657: template 8657: QSharedPointer(std::nullptr_t, Deleter) : value(nullptr), d(nullptr) { } 8657: 8657: QSharedPointer(const QSharedPointer &other) noexcept : value(other.value), d(other.d) 8657: { if (d) ref(); } 8657: QSharedPointer &operator=(const QSharedPointer &other) noexcept 8657: { 8657: QSharedPointer copy(other); 8657: swap(copy); 8657: return *this; 8657: } 8657: 8657: QSharedPointer(QSharedPointer &&other) noexcept 8657: : value(other.value), d(other.d) 8657: { 8657: other.d = nullptr; 8657: other.value = nullptr; 8657: } 8657: QSharedPointer &operator=(QSharedPointer &&other) noexcept 8657: { 8657: QSharedPointer moved(std::move(other)); 8657: swap(moved); 8657: return *this; 8657: } 8657: 8657: template 8657: QSharedPointer(QSharedPointer &&other) noexcept 8657: : value(other.value), d(other.d) 8657: { 8657: other.d = nullptr; 8657: other.value = nullptr; 8657: } 8657: 8657: template 8657: QSharedPointer &operator=(QSharedPointer &&other) noexcept 8657: { 8657: QSharedPointer moved(std::move(other)); 8657: swap(moved); 8657: return *this; 8657: } 8657: 8657: 8657: 8657: template 8657: QSharedPointer(const QSharedPointer &other) noexcept : value(other.value), d(other.d) 8657: { if (d) ref(); } 8657: 8657: template 8657: inline QSharedPointer &operator=(const QSharedPointer &other) 8657: { 8657: QSharedPointer copy(other); 8657: swap(copy); 8657: return *this; 8657: } 8657: 8657: template 8657: inline QSharedPointer(const QWeakPointer &other) : value(nullptr), d(nullptr) 8657: { *this = other; } 8657: 8657: template 8657: inline QSharedPointer &operator=(const QWeakPointer &other) 8657: { internalSet(other.d, other.value); return *this; } 8657: 8657: inline void swap(QSharedPointer &other) 8657: { this->internalSwap(other); } 8657: 8657: inline void reset() { clear(); } 8657: inline void reset(T *t) 8657: { QSharedPointer copy(t); swap(copy); } 8657: template 8657: inline void reset(T *t, Deleter deleter) 8657: { QSharedPointer copy(t, deleter); swap(copy); } 8657: 8657: template 8657: QSharedPointer staticCast() const 8657: { 8657: return qSharedPointerCast(*this); 8657: } 8657: 8657: template 8657: QSharedPointer dynamicCast() const 8657: { 8657: return qSharedPointerDynamicCast(*this); 8657: } 8657: 8657: template 8657: QSharedPointer constCast() const 8657: { 8657: return qSharedPointerConstCast(*this); 8657: } 8657: 8657: 8657: template 8657: QSharedPointer objectCast() const 8657: { 8657: return qSharedPointerObjectCast(*this); 8657: } 8657: 8657: 8657: inline void clear() { QSharedPointer copy; swap(copy); } 8657: 8657: QWeakPointer toWeakRef() const; 8657: 8657: template 8657: static QSharedPointer create(Args && ...arguments) 8657: { 8657: typedef QtSharedPointer::ExternalRefCountWithContiguousData Private; 8657: 8657: 8657: 8657: typename Private::DestroyerFn destroy = &Private::deleter; 8657: 8657: typename Private::DestroyerFn noDestroy = &Private::noDeleter; 8657: QSharedPointer result(Qt::Uninitialized); 8657: result.d = Private::create(&result.value, noDestroy); 8657: 8657: 8657: new (result.data()) T(std::forward(arguments)...); 8657: result.d->destroyer = destroy; 8657: result.d->setQObjectShared(result.value, true); 8657: 8657: 8657: 8657: result.enableSharedFromThis(result.data()); 8657: return result; 8657: } 8657: 8657: private: 8657: explicit QSharedPointer(Qt::Initialization) {} 8657: 8657: void deref() noexcept 8657: { deref(d); } 8657: static void deref(Data *dd) noexcept 8657: { 8657: if (!dd) return; 8657: if (!dd->strongref.deref()) { 8657: dd->destroy(); 8657: } 8657: if (!dd->weakref.deref()) 8657: delete dd; 8657: } 8657: 8657: template 8657: inline void enableSharedFromThis(const QEnableSharedFromThis *ptr) 8657: { 8657: ptr->initializeFromSharedPointer(constCast::type>()); 8657: } 8657: 8657: inline void enableSharedFromThis(...) {} 8657: 8657: template 8657: inline void internalConstruct(X *ptr, Deleter deleter) 8657: { 8657: if (!ptr) { 8657: d = nullptr; 8657: return; 8657: } 8657: 8657: typedef QtSharedPointer::ExternalRefCountWithCustomDeleter Private; 8657: 8657: 8657: 8657: typename Private::DestroyerFn actualDeleter = &Private::deleter; 8657: 8657: d = Private::create(ptr, deleter, actualDeleter); 8657: 8657: 8657: 8657: 8657: d->setQObjectShared(ptr, true); 8657: enableSharedFromThis(ptr); 8657: } 8657: 8657: void internalSwap(QSharedPointer &other) noexcept 8657: { 8657: qSwap(d, other.d); 8657: qSwap(this->value, other.value); 8657: } 8657: 8657: 8657: 8657: 8657: template friend class QSharedPointer; 8657: template friend class QWeakPointer; 8657: template friend QSharedPointer QtSharedPointer::copyAndSetPointer(X * ptr, const QSharedPointer &src); 8657: 8657: void ref() const noexcept { d->weakref.ref(); d->strongref.ref(); } 8657: 8657: inline void internalSet(Data *o, T *actual) 8657: { 8657: if (o) { 8657: 8657: 8657: int tmp = o->strongref.load(); 8657: while (tmp > 0) { 8657: 8657: if (o->strongref.testAndSetRelaxed(tmp, tmp + 1)) 8657: break; 8657: tmp = o->strongref.load(); 8657: } 8657: 8657: if (tmp > 0) { 8657: o->weakref.ref(); 8657: } else { 8657: o->checkQObjectShared(actual); 8657: o = nullptr; 8657: } 8657: } 8657: 8657: qSwap(d, o); 8657: qSwap(this->value, actual); 8657: if (!d || d->strongref.load() == 0) 8657: this->value = nullptr; 8657: 8657: 8657: deref(o); 8657: } 8657: 8657: Type *value; 8657: Data *d; 8657: }; 8657: 8657: template 8657: class QWeakPointer 8657: { 8657: typedef T *QWeakPointer:: *RestrictedBool; 8657: typedef QtSharedPointer::ExternalRefCountData Data; 8657: 8657: public: 8657: typedef T element_type; 8657: typedef T value_type; 8657: typedef value_type *pointer; 8657: typedef const value_type *const_pointer; 8657: typedef value_type &reference; 8657: typedef const value_type &const_reference; 8657: typedef qptrdiff difference_type; 8657: 8657: bool isNull() const noexcept { return d == nullptr || d->strongref.load() == 0 || value == nullptr; } 8657: operator RestrictedBool() const noexcept { return isNull() ? nullptr : &QWeakPointer::value; } 8657: bool operator !() const noexcept { return isNull(); } 8657: T *data() const noexcept { return d == nullptr || d->strongref.load() == 0 ? nullptr : value; } 8657: 8657: inline QWeakPointer() noexcept : d(nullptr), value(nullptr) { } 8657: inline ~QWeakPointer() { if (d && !d->weakref.deref()) delete d; } 8657: # 585 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer_impl.h" 3 4 8657: QWeakPointer(const QWeakPointer &other) noexcept : d(other.d), value(other.value) 8657: { if (d) d->weakref.ref(); } 8657: 8657: QWeakPointer(QWeakPointer &&other) noexcept 8657: : d(other.d), value(other.value) 8657: { 8657: other.d = nullptr; 8657: other.value = nullptr; 8657: } 8657: QWeakPointer &operator=(QWeakPointer &&other) noexcept 8657: { QWeakPointer moved(std::move(other)); swap(moved); return *this; } 8657: 8657: QWeakPointer &operator=(const QWeakPointer &other) noexcept 8657: { 8657: QWeakPointer copy(other); 8657: swap(copy); 8657: return *this; 8657: } 8657: 8657: void swap(QWeakPointer &other) noexcept 8657: { 8657: qSwap(this->d, other.d); 8657: qSwap(this->value, other.value); 8657: } 8657: 8657: inline QWeakPointer(const QSharedPointer &o) : d(o.d), value(o.data()) 8657: { if (d) d->weakref.ref();} 8657: inline QWeakPointer &operator=(const QSharedPointer &o) 8657: { 8657: internalSet(o.d, o.value); 8657: return *this; 8657: } 8657: 8657: template 8657: inline QWeakPointer(const QWeakPointer &o) : d(nullptr), value(nullptr) 8657: { *this = o; } 8657: 8657: template 8657: inline QWeakPointer &operator=(const QWeakPointer &o) 8657: { 8657: 8657: 8657: *this = o.toStrongRef(); 8657: return *this; 8657: } 8657: 8657: template 8657: bool operator==(const QWeakPointer &o) const noexcept 8657: { return d == o.d && value == static_cast(o.value); } 8657: 8657: template 8657: bool operator!=(const QWeakPointer &o) const noexcept 8657: { return !(*this == o); } 8657: 8657: template 8657: inline QWeakPointer(const QSharedPointer &o) : d(nullptr), value(nullptr) 8657: { *this = o; } 8657: 8657: template 8657: inline QWeakPointer &operator=(const QSharedPointer &o) 8657: { 8657: qt_noop(); 8657: internalSet(o.d, o.data()); 8657: return *this; 8657: } 8657: 8657: template 8657: bool operator==(const QSharedPointer &o) const noexcept 8657: { return d == o.d; } 8657: 8657: template 8657: bool operator!=(const QSharedPointer &o) const noexcept 8657: { return !(*this == o); } 8657: 8657: inline void clear() { *this = QWeakPointer(); } 8657: 8657: inline QSharedPointer toStrongRef() const { return QSharedPointer(*this); } 8657: 8657: inline QSharedPointer lock() const { return toStrongRef(); } 8657: 8657: 8657: 8657: 8657: 8657: private: 8657: 8657: 8657: 8657: 8657: template friend class QSharedPointer; 8657: template friend class QPointer; 8657: 8657: 8657: template 8657: inline QWeakPointer &assign(X *ptr) 8657: { return *this = QWeakPointer(ptr, true); } 8657: 8657: 8657: template 8657: inline QWeakPointer(X *ptr, bool) : d(ptr ? Data::getAndRef(ptr) : nullptr), value(ptr) 8657: { } 8657: 8657: 8657: inline void internalSet(Data *o, T *actual) 8657: { 8657: if (d == o) return; 8657: if (o) 8657: o->weakref.ref(); 8657: if (d && !d->weakref.deref()) 8657: delete d; 8657: d = o; 8657: value = actual; 8657: } 8657: 8657: Data *d; 8657: T *value; 8657: }; 8657: 8657: template 8657: class QEnableSharedFromThis 8657: { 8657: protected: 8657: 8657: QEnableSharedFromThis() = default; 8657: 8657: 8657: 8657: QEnableSharedFromThis(const QEnableSharedFromThis &) {} 8657: QEnableSharedFromThis &operator=(const QEnableSharedFromThis &) { return *this; } 8657: 8657: public: 8657: inline QSharedPointer sharedFromThis() { return QSharedPointer(weakPointer); } 8657: inline QSharedPointer sharedFromThis() const { return QSharedPointer(weakPointer); } 8657: 8657: 8657: private: 8657: template friend class QSharedPointer; 8657: 8657: 8657: 8657: template 8657: inline void initializeFromSharedPointer(const QSharedPointer &ptr) const 8657: { 8657: weakPointer = ptr; 8657: } 8657: 8657: mutable QWeakPointer weakPointer; 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: bool operator==(const QSharedPointer &ptr1, const QSharedPointer &ptr2) noexcept 8657: { 8657: return ptr1.data() == ptr2.data(); 8657: } 8657: template 8657: bool operator!=(const QSharedPointer &ptr1, const QSharedPointer &ptr2) noexcept 8657: { 8657: return ptr1.data() != ptr2.data(); 8657: } 8657: 8657: template 8657: bool operator==(const QSharedPointer &ptr1, const X *ptr2) noexcept 8657: { 8657: return ptr1.data() == ptr2; 8657: } 8657: template 8657: bool operator==(const T *ptr1, const QSharedPointer &ptr2) noexcept 8657: { 8657: return ptr1 == ptr2.data(); 8657: } 8657: template 8657: bool operator!=(const QSharedPointer &ptr1, const X *ptr2) noexcept 8657: { 8657: return !(ptr1 == ptr2); 8657: } 8657: template 8657: bool operator!=(const T *ptr1, const QSharedPointer &ptr2) noexcept 8657: { 8657: return !(ptr2 == ptr1); 8657: } 8657: 8657: template 8657: bool operator==(const QSharedPointer &ptr1, const QWeakPointer &ptr2) noexcept 8657: { 8657: return ptr2 == ptr1; 8657: } 8657: template 8657: bool operator!=(const QSharedPointer &ptr1, const QWeakPointer &ptr2) noexcept 8657: { 8657: return ptr2 != ptr1; 8657: } 8657: 8657: template 8657: inline bool operator==(const QSharedPointer &lhs, std::nullptr_t) noexcept 8657: { 8657: return lhs.isNull(); 8657: } 8657: 8657: template 8657: inline bool operator!=(const QSharedPointer &lhs, std::nullptr_t) noexcept 8657: { 8657: return !lhs.isNull(); 8657: } 8657: 8657: template 8657: inline bool operator==(std::nullptr_t, const QSharedPointer &rhs) noexcept 8657: { 8657: return rhs.isNull(); 8657: } 8657: 8657: template 8657: inline bool operator!=(std::nullptr_t, const QSharedPointer &rhs) noexcept 8657: { 8657: return !rhs.isNull(); 8657: } 8657: 8657: template 8657: inline bool operator==(const QWeakPointer &lhs, std::nullptr_t) noexcept 8657: { 8657: return lhs.isNull(); 8657: } 8657: 8657: template 8657: inline bool operator!=(const QWeakPointer &lhs, std::nullptr_t) noexcept 8657: { 8657: return !lhs.isNull(); 8657: } 8657: 8657: template 8657: inline bool operator==(std::nullptr_t, const QWeakPointer &rhs) noexcept 8657: { 8657: return rhs.isNull(); 8657: } 8657: 8657: template 8657: inline bool operator!=(std::nullptr_t, const QWeakPointer &rhs) noexcept 8657: { 8657: return !rhs.isNull(); 8657: } 8657: 8657: 8657: 8657: 8657: template 8657: inline typename QSharedPointer::difference_type operator-(const QSharedPointer &ptr1, const QSharedPointer &ptr2) 8657: { 8657: return ptr1.data() - ptr2.data(); 8657: } 8657: template 8657: inline typename QSharedPointer::difference_type operator-(const QSharedPointer &ptr1, X *ptr2) 8657: { 8657: return ptr1.data() - ptr2; 8657: } 8657: template 8657: inline typename QSharedPointer::difference_type operator-(T *ptr1, const QSharedPointer &ptr2) 8657: { 8657: return ptr1 - ptr2.data(); 8657: } 8657: 8657: 8657: 8657: 8657: template 8657: inline bool operator<(const QSharedPointer &ptr1, const QSharedPointer &ptr2) 8657: { 8657: using CT = typename std::common_type::type; 8657: return std::less()(ptr1.data(), ptr2.data()); 8657: } 8657: template 8657: inline bool operator<(const QSharedPointer &ptr1, X *ptr2) 8657: { 8657: using CT = typename std::common_type::type; 8657: return std::less()(ptr1.data(), ptr2); 8657: } 8657: template 8657: inline bool operator<(T *ptr1, const QSharedPointer &ptr2) 8657: { 8657: using CT = typename std::common_type::type; 8657: return std::less()(ptr1, ptr2.data()); 8657: } 8657: 8657: 8657: 8657: 8657: template 8657: inline uint qHash(const QSharedPointer &ptr, uint seed = 0) 8657: { 8657: return ::qHash(ptr.data(), seed); 8657: } 8657: 8657: 8657: template 8657: inline QWeakPointer QSharedPointer::toWeakRef() const 8657: { 8657: return QWeakPointer(*this); 8657: } 8657: 8657: template 8657: inline void qSwap(QSharedPointer &p1, QSharedPointer &p2) 8657: { 8657: p1.swap(p2); 8657: } 8657: 8657: 8657: namespace std { 8657: template 8657: inline void swap(::QSharedPointer &p1, ::QSharedPointer &p2) 8657: { p1.swap(p2); } 8657: } 8657: 8657: 8657: namespace QtSharedPointer { 8657: 8657: template 8657: inline QSharedPointer copyAndSetPointer(X *ptr, const QSharedPointer &src) 8657: { 8657: QSharedPointer result; 8657: result.internalSet(src.d, ptr); 8657: return result; 8657: } 8657: } 8657: 8657: 8657: template 8657: inline QSharedPointer qSharedPointerCast(const QSharedPointer &src) 8657: { 8657: X *ptr = static_cast(src.data()); 8657: return QtSharedPointer::copyAndSetPointer(ptr, src); 8657: } 8657: template 8657: inline QSharedPointer qSharedPointerCast(const QWeakPointer &src) 8657: { 8657: return qSharedPointerCast(src.toStrongRef()); 8657: } 8657: 8657: template 8657: inline QSharedPointer qSharedPointerDynamicCast(const QSharedPointer &src) 8657: { 8657: X *ptr = dynamic_cast(src.data()); 8657: if (!ptr) 8657: return QSharedPointer(); 8657: return QtSharedPointer::copyAndSetPointer(ptr, src); 8657: } 8657: template 8657: inline QSharedPointer qSharedPointerDynamicCast(const QWeakPointer &src) 8657: { 8657: return qSharedPointerDynamicCast(src.toStrongRef()); 8657: } 8657: 8657: template 8657: inline QSharedPointer qSharedPointerConstCast(const QSharedPointer &src) 8657: { 8657: X *ptr = const_cast(src.data()); 8657: return QtSharedPointer::copyAndSetPointer(ptr, src); 8657: } 8657: template 8657: inline QSharedPointer qSharedPointerConstCast(const QWeakPointer &src) 8657: { 8657: return qSharedPointerConstCast(src.toStrongRef()); 8657: } 8657: 8657: template 8657: inline 8657: QWeakPointer qWeakPointerCast(const QSharedPointer &src) 8657: { 8657: return qSharedPointerCast(src).toWeakRef(); 8657: } 8657: 8657: 8657: template 8657: inline QSharedPointer qSharedPointerObjectCast(const QSharedPointer &src) 8657: { 8657: X *ptr = qobject_cast(src.data()); 8657: return QtSharedPointer::copyAndSetPointer(ptr, src); 8657: } 8657: template 8657: inline QSharedPointer qSharedPointerObjectCast(const QWeakPointer &src) 8657: { 8657: return qSharedPointerObjectCast(src.toStrongRef()); 8657: } 8657: 8657: template 8657: inline QSharedPointer::Type> 8657: qobject_cast(const QSharedPointer &src) 8657: { 8657: return qSharedPointerObjectCast::Type, T>(src); 8657: } 8657: template 8657: inline QSharedPointer::Type> 8657: qobject_cast(const QWeakPointer &src) 8657: { 8657: return qSharedPointerObjectCast::Type, T>(src); 8657: } 8657: 8657: template 8657: QWeakPointer::Value, T>::type> 8657: qWeakPointerFromVariant(const QVariant &variant) 8657: { 8657: return QWeakPointer(qobject_cast(QtSharedPointer::weakPointerFromVariant_internal(variant).data())); 8657: } 8657: template 8657: QSharedPointer::Value, T>::type> 8657: qSharedPointerFromVariant(const QVariant &variant) 8657: { 8657: return qSharedPointerObjectCast(QtSharedPointer::sharedPointerFromVariant_internal(variant)); 8657: } 8657: 8657: 8657: 8657: template class QTypeInfo > { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QWeakPointer)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QWeakPointer >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QWeakPointer) }; static inline const char *name() { return "QWeakPointer"; } }; 8657: template class QTypeInfo > { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QSharedPointer)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QSharedPointer >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QSharedPointer) }; static inline const char *name() { return "QSharedPointer"; } }; 8657: 8657: 8657: 8657: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QSharedPointer" 2 3 4 8657: # 28 "/<>/templates/lib/abstractlocalizer.h" 2 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVariantList" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVariantList" 2 3 4 8657: # 29 "/<>/templates/lib/abstractlocalizer.h" 2 8657: 8657: 8657: # 30 "/<>/templates/lib/abstractlocalizer.h" 8657: class QDateTime; 8657: 8657: namespace Grantlee 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: class __attribute__((visibility("default"))) AbstractLocalizer 8657: { 8657: public: 8657: 8657: 8657: 8657: AbstractLocalizer(); 8657: 8657: 8657: 8657: 8657: virtual ~AbstractLocalizer(); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: virtual QString localize(const QVariant &variant) const; 8657: 8657: 8657: 8657: 8657: virtual QString currentLocale() const = 0; 8657: 8657: 8657: 8657: 8657: virtual void pushLocale(const QString &localeName) = 0; 8657: 8657: 8657: 8657: 8657: virtual void popLocale() = 0; 8657: 8657: 8657: 8657: 8657: virtual void loadCatalog(const QString &path, const QString &catalog) = 0; 8657: 8657: 8657: 8657: 8657: virtual void unloadCatalog(const QString &catalog) = 0; 8657: 8657: 8657: 8657: 8657: virtual QString localizeNumber(int number) const = 0; 8657: 8657: 8657: 8657: 8657: virtual QString localizeNumber(qreal number) const = 0; 8657: 8657: 8657: 8657: 8657: 8657: virtual QString localizeMonetaryValue(qreal value, const QString ¤cyCode 8657: = QString()) const = 0; 8657: 8657: 8657: 8657: 8657: virtual QString localizeDate(const QDate &date, 8657: QLocale::FormatType formatType 8657: = QLocale::ShortFormat) const = 0; 8657: 8657: 8657: 8657: 8657: virtual QString localizeTime(const QTime &time, 8657: QLocale::FormatType formatType 8657: = QLocale::ShortFormat) const = 0; 8657: 8657: 8657: 8657: 8657: virtual QString localizeDateTime(const QDateTime &dateTime, 8657: QLocale::FormatType formatType 8657: = QLocale::ShortFormat) const = 0; 8657: 8657: 8657: 8657: 8657: virtual QString localizeString(const QString &string, 8657: const QVariantList &arguments 8657: = QVariantList()) const = 0; 8657: 8657: 8657: 8657: 8657: 8657: virtual QString localizeContextString(const QString &string, 8657: const QString &context, 8657: const QVariantList &arguments 8657: = QVariantList()) const = 0; 8657: 8657: 8657: 8657: 8657: 8657: 8657: virtual QString localizePluralString(const QString &string, 8657: const QString &pluralForm, 8657: const QVariantList &arguments 8657: = QVariantList()) const = 0; 8657: 8657: 8657: 8657: 8657: 8657: virtual QString localizePluralContextString(const QString &string, 8657: const QString &pluralForm, 8657: const QString &context, 8657: const QVariantList &arguments 8657: = QVariantList()) const = 0; 8657: 8657: private: 8657: AbstractLocalizer 8657: # 162 "/<>/templates/lib/abstractlocalizer.h" 3 4 8657: (const 8657: # 162 "/<>/templates/lib/abstractlocalizer.h" 8657: AbstractLocalizer 8657: # 162 "/<>/templates/lib/abstractlocalizer.h" 3 4 8657: &) = delete; 8657: # 162 "/<>/templates/lib/abstractlocalizer.h" 8657: AbstractLocalizer 8657: # 162 "/<>/templates/lib/abstractlocalizer.h" 3 4 8657: &operator=(const 8657: # 162 "/<>/templates/lib/abstractlocalizer.h" 8657: AbstractLocalizer 8657: # 162 "/<>/templates/lib/abstractlocalizer.h" 3 4 8657: &) = delete; 8657: 8657: # 163 "/<>/templates/lib/abstractlocalizer.h" 8657: }; 8657: } 8657: # 25 "/<>/templates/lib/context.h" 2 8657: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8657: # 26 "/<>/templates/lib/context.h" 2 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVariantHash" 1 3 4 8657: # 28 "/<>/templates/lib/context.h" 2 8657: 8657: namespace Grantlee 8657: { 8657: 8657: class RenderContext; 8657: 8657: class ContextPrivate; 8657: # 117 "/<>/templates/lib/context.h" 8657: class __attribute__((visibility("default"))) Context 8657: { 8657: public: 8657: 8657: 8657: 8657: Context(); 8657: 8657: 8657: 8657: 8657: explicit Context(const QVariantHash &hash); 8657: 8657: 8657: 8657: 8657: Context(const Context &other); 8657: 8657: 8657: 8657: 8657: Context &operator=(const Context &other); 8657: # 147 "/<>/templates/lib/context.h" 8657: bool autoEscape() const; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: void setAutoEscape(bool autoescape); 8657: 8657: 8657: 8657: 8657: ~Context(); 8657: 8657: 8657: 8657: 8657: QVariant lookup(const QString &str) const; 8657: 8657: 8657: 8657: 8657: 8657: void insert(const QString &name, QObject *object); 8657: 8657: 8657: 8657: 8657: 8657: void insert(const QString &name, const QVariant &variant); 8657: 8657: 8657: 8657: 8657: 8657: void push(); 8657: 8657: 8657: 8657: 8657: 8657: void pop(); 8657: 8657: 8657: 8657: 8657: 8657: QVariantHash stackHash(int depth) const; 8657: 8657: 8657: 8657: 8657: 8657: bool isMutating() const; 8657: 8657: 8657: 8657: 8657: 8657: void setMutating(bool mutating); 8657: 8657: 8657: 8657: 8657: void addExternalMedia(const QString &absolutePart, 8657: const QString &relativePart); 8657: 8657: 8657: 8657: 8657: void clearExternalMedia(); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: void setLocalizer(QSharedPointer localizer); 8657: 8657: 8657: 8657: 8657: QSharedPointer localizer() const; 8657: 8657: 8657: 8657: 8657: QList> externalMedia() const; 8657: 8657: 8657: 8657: 8657: enum UrlType { 8657: AbsoluteUrls, 8657: RelativeUrls 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: void setUrlType(UrlType type); 8657: 8657: 8657: 8657: 8657: UrlType urlType() const; 8657: 8657: 8657: 8657: 8657: 8657: 8657: void setRelativeMediaPath(const QString &relativePath); 8657: 8657: 8657: 8657: 8657: QString relativeMediaPath() const; 8657: # 276 "/<>/templates/lib/context.h" 8657: RenderContext *renderContext() const; 8657: 8657: private: 8657: 8657: # 279 "/<>/templates/lib/context.h" 3 4 8657: inline 8657: # 279 "/<>/templates/lib/context.h" 8657: ContextPrivate 8657: # 279 "/<>/templates/lib/context.h" 3 4 8657: * d_func() { return reinterpret_cast< 8657: # 279 "/<>/templates/lib/context.h" 8657: ContextPrivate 8657: # 279 "/<>/templates/lib/context.h" 3 4 8657: *>(qGetPtrHelper(d_ptr)); } inline const 8657: # 279 "/<>/templates/lib/context.h" 8657: ContextPrivate 8657: # 279 "/<>/templates/lib/context.h" 3 4 8657: * d_func() const { return reinterpret_cast>/templates/lib/context.h" 8657: ContextPrivate 8657: # 279 "/<>/templates/lib/context.h" 3 4 8657: *>(qGetPtrHelper(d_ptr)); } friend class 8657: # 279 "/<>/templates/lib/context.h" 8657: ContextPrivate 8657: # 279 "/<>/templates/lib/context.h" 3 4 8657: ; 8657: 8657: # 280 "/<>/templates/lib/context.h" 8657: ContextPrivate *const d_ptr; 8657: }; 8657: } 8657: # 27 "/<>/templates/lib/node.h" 2 8657: # 1 "/<>/templates/lib/filterexpression.h" 1 8657: # 24 "/<>/templates/lib/filterexpression.h" 8657: # 1 "/<>/templates/lib/variable.h" 1 8657: # 24 "/<>/templates/lib/variable.h" 8657: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8657: # 25 "/<>/templates/lib/variable.h" 2 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVariant" 1 3 4 8657: # 27 "/<>/templates/lib/variable.h" 2 8657: 8657: namespace Grantlee 8657: { 8657: class Context; 8657: 8657: class VariablePrivate; 8657: # 53 "/<>/templates/lib/variable.h" 8657: class __attribute__((visibility("default"))) Variable 8657: { 8657: public: 8657: 8657: 8657: 8657: Variable(); 8657: 8657: 8657: 8657: 8657: explicit Variable(const QString &var); 8657: 8657: 8657: 8657: 8657: Variable(const Variable &other); 8657: 8657: 8657: 8657: 8657: ~Variable(); 8657: 8657: 8657: 8657: 8657: Variable &operator=(const Variable &other); 8657: 8657: 8657: 8657: 8657: bool isValid() const; 8657: 8657: 8657: 8657: 8657: bool isTrue(Context *c) const; 8657: 8657: 8657: 8657: 8657: QVariant resolve(Context *c) const; 8657: # 105 "/<>/templates/lib/variable.h" 8657: bool isConstant() const; 8657: 8657: 8657: 8657: 8657: 8657: bool isLocalized() const; 8657: 8657: 8657: 8657: 8657: 8657: QVariant literal() const; 8657: 8657: 8657: 8657: 8657: QStringList lookups() const; 8657: 8657: private: 8657: 8657: # 125 "/<>/templates/lib/variable.h" 3 4 8657: inline 8657: # 125 "/<>/templates/lib/variable.h" 8657: VariablePrivate 8657: # 125 "/<>/templates/lib/variable.h" 3 4 8657: * d_func() { return reinterpret_cast< 8657: # 125 "/<>/templates/lib/variable.h" 8657: VariablePrivate 8657: # 125 "/<>/templates/lib/variable.h" 3 4 8657: *>(qGetPtrHelper(d_ptr)); } inline const 8657: # 125 "/<>/templates/lib/variable.h" 8657: VariablePrivate 8657: # 125 "/<>/templates/lib/variable.h" 3 4 8657: * d_func() const { return reinterpret_cast>/templates/lib/variable.h" 8657: VariablePrivate 8657: # 125 "/<>/templates/lib/variable.h" 3 4 8657: *>(qGetPtrHelper(d_ptr)); } friend class 8657: # 125 "/<>/templates/lib/variable.h" 8657: VariablePrivate 8657: # 125 "/<>/templates/lib/variable.h" 3 4 8657: ; 8657: 8657: # 126 "/<>/templates/lib/variable.h" 8657: VariablePrivate *const d_ptr; 8657: }; 8657: } 8657: # 25 "/<>/templates/lib/filterexpression.h" 2 8657: 8657: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8657: # 27 "/<>/templates/lib/filterexpression.h" 2 8657: 8657: namespace Grantlee 8657: { 8657: class Filter; 8657: class OutputStream; 8657: class Parser; 8657: struct Token; 8657: 8657: class FilterExpressionPrivate; 8657: # 118 "/<>/templates/lib/filterexpression.h" 8657: class __attribute__((visibility("default"))) FilterExpression 8657: { 8657: public: 8657: 8657: 8657: 8657: FilterExpression(); 8657: 8657: 8657: 8657: 8657: 8657: FilterExpression(const QString &varString, Grantlee::Parser *parser); 8657: 8657: 8657: 8657: 8657: FilterExpression(const FilterExpression &other); 8657: 8657: 8657: 8657: 8657: ~FilterExpression(); 8657: 8657: 8657: 8657: 8657: FilterExpression &operator=(const FilterExpression &other); 8657: 8657: 8657: 8657: 8657: Variable variable() const; 8657: 8657: 8657: 8657: 8657: 8657: QVariant resolve(OutputStream *stream, Context *c) const; 8657: 8657: 8657: 8657: 8657: QVariant resolve(Context *c) const; 8657: 8657: 8657: 8657: 8657: 8657: bool isTrue(Context *c) const; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: QVariantList toList(Context *c) const; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: bool isValid() const; 8657: 8657: 8657: 8657: 8657: 8657: 8657: QStringList filters() const; 8657: 8657: 8657: private: 8657: 8657: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8657: inline 8657: # 194 "/<>/templates/lib/filterexpression.h" 8657: FilterExpressionPrivate 8657: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8657: * d_func() { return reinterpret_cast< 8657: # 194 "/<>/templates/lib/filterexpression.h" 8657: FilterExpressionPrivate 8657: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8657: *>(qGetPtrHelper(d_ptr)); } inline const 8657: # 194 "/<>/templates/lib/filterexpression.h" 8657: FilterExpressionPrivate 8657: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8657: * d_func() const { return reinterpret_cast>/templates/lib/filterexpression.h" 8657: FilterExpressionPrivate 8657: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8657: *>(qGetPtrHelper(d_ptr)); } friend class 8657: # 194 "/<>/templates/lib/filterexpression.h" 8657: FilterExpressionPrivate 8657: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8657: ; 8657: 8657: # 195 "/<>/templates/lib/filterexpression.h" 8657: FilterExpressionPrivate *const d_ptr; 8657: }; 8657: } 8657: # 28 "/<>/templates/lib/node.h" 2 8657: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8657: # 29 "/<>/templates/lib/node.h" 2 8657: # 1 "/<>/templates/lib/outputstream.h" 1 8657: # 24 "/<>/templates/lib/outputstream.h" 8657: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8657: # 25 "/<>/templates/lib/outputstream.h" 2 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QSharedPointer" 1 3 4 8657: # 27 "/<>/templates/lib/outputstream.h" 2 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QTextStream" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtextstream.h" 1 3 4 8657: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtextstream.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 1 3 4 8657: # 56 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8657: 8657: 8657: 8657: 8657: # 59 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8657: class QByteArray; 8657: class QIODevicePrivate; 8657: 8657: class __attribute__((visibility("default"))) QIODevice 8657: 8657: : public QObject 8657: 8657: { 8657: 8657: public: 8657: # 68 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8657: #pragma GCC diagnostic push 8657: # 68 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8657: 8657: # 68 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8657: #pragma GCC diagnostic ignored "-Wsuggest-override" 8657: # 68 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8657: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8657: # 68 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8657: #pragma GCC diagnostic ignored "-Wattributes" 8657: # 68 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8657: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8657: # 68 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8657: #pragma GCC diagnostic pop 8657: # 68 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8657: struct QPrivateSignal {}; 8657: 8657: public: 8657: enum OpenModeFlag { 8657: NotOpen = 0x0000, 8657: ReadOnly = 0x0001, 8657: WriteOnly = 0x0002, 8657: ReadWrite = ReadOnly | WriteOnly, 8657: Append = 0x0004, 8657: Truncate = 0x0008, 8657: Text = 0x0010, 8657: Unbuffered = 0x0020 8657: }; 8657: typedef QFlags OpenMode; 8657: 8657: QIODevice(); 8657: 8657: explicit QIODevice(QObject *parent); 8657: 8657: virtual ~QIODevice(); 8657: 8657: OpenMode openMode() const; 8657: 8657: void setTextModeEnabled(bool enabled); 8657: bool isTextModeEnabled() const; 8657: 8657: bool isOpen() const; 8657: bool isReadable() const; 8657: bool isWritable() const; 8657: virtual bool isSequential() const; 8657: 8657: int readChannelCount() const; 8657: int writeChannelCount() const; 8657: int currentReadChannel() const; 8657: void setCurrentReadChannel(int channel); 8657: int currentWriteChannel() const; 8657: void setCurrentWriteChannel(int channel); 8657: 8657: virtual bool open(OpenMode mode); 8657: virtual void close(); 8657: 8657: 8657: 8657: virtual qint64 pos() const; 8657: virtual qint64 size() const; 8657: virtual bool seek(qint64 pos); 8657: virtual bool atEnd() const; 8657: virtual bool reset(); 8657: 8657: virtual qint64 bytesAvailable() const; 8657: virtual qint64 bytesToWrite() const; 8657: 8657: qint64 read(char *data, qint64 maxlen); 8657: QByteArray read(qint64 maxlen); 8657: QByteArray readAll(); 8657: qint64 readLine(char *data, qint64 maxlen); 8657: QByteArray readLine(qint64 maxlen = 0); 8657: virtual bool canReadLine() const; 8657: 8657: void startTransaction(); 8657: void commitTransaction(); 8657: void rollbackTransaction(); 8657: bool isTransactionStarted() const; 8657: 8657: qint64 write(const char *data, qint64 len); 8657: qint64 write(const char *data); 8657: inline qint64 write(const QByteArray &data) 8657: { return write(data.constData(), data.size()); } 8657: 8657: qint64 peek(char *data, qint64 maxlen); 8657: QByteArray peek(qint64 maxlen); 8657: 8657: virtual bool waitForReadyRead(int msecs); 8657: virtual bool waitForBytesWritten(int msecs); 8657: 8657: void ungetChar(char c); 8657: bool putChar(char c); 8657: bool getChar(char *c); 8657: 8657: QString errorString() const; 8657: 8657: 8657: public : 8657: void readyRead(); 8657: void channelReadyRead(int channel); 8657: void bytesWritten(qint64 bytes); 8657: void channelBytesWritten(int channel, qint64 bytes); 8657: void aboutToClose(); 8657: void readChannelFinished(); 8657: 8657: 8657: protected: 8657: 8657: 8657: 8657: QIODevice(QIODevicePrivate &dd, QObject *parent = nullptr); 8657: 8657: virtual qint64 readData(char *data, qint64 maxlen) = 0; 8657: virtual qint64 readLineData(char *data, qint64 maxlen); 8657: virtual qint64 writeData(const char *data, qint64 len) = 0; 8657: 8657: void setOpenMode(OpenMode openMode); 8657: 8657: void setErrorString(const QString &errorString); 8657: 8657: 8657: 8657: 8657: 8657: private: 8657: inline QIODevicePrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QIODevicePrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QIODevicePrivate; 8657: QIODevice(const QIODevice &) = delete; QIODevice &operator=(const QIODevice &) = delete; 8657: }; 8657: 8657: constexpr inline QFlags operator|(QIODevice::OpenMode::enum_type f1, QIODevice::OpenMode::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QIODevice::OpenMode::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QIODevice::OpenMode::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: 8657: 8657: class QDebug; 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug debug, QIODevice::OpenMode modes); 8657: 8657: 8657: 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtextstream.h" 2 3 4 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 1 3 4 8657: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtextstream.h" 2 3 4 8657: # 55 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtextstream.h" 3 4 8657: 8657: 8657: 8657: class QTextCodec; 8657: class QTextDecoder; 8657: 8657: class QTextStreamPrivate; 8657: class __attribute__((visibility("default"))) QTextStream 8657: { 8657: inline QTextStreamPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QTextStreamPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QTextStreamPrivate; 8657: 8657: public: 8657: enum RealNumberNotation { 8657: SmartNotation, 8657: FixedNotation, 8657: ScientificNotation 8657: }; 8657: enum FieldAlignment { 8657: AlignLeft, 8657: AlignRight, 8657: AlignCenter, 8657: AlignAccountingStyle 8657: }; 8657: enum Status { 8657: Ok, 8657: ReadPastEnd, 8657: ReadCorruptData, 8657: WriteFailed 8657: }; 8657: enum NumberFlag { 8657: ShowBase = 0x1, 8657: ForcePoint = 0x2, 8657: ForceSign = 0x4, 8657: UppercaseBase = 0x8, 8657: UppercaseDigits = 0x10 8657: }; 8657: typedef QFlags NumberFlags; 8657: 8657: QTextStream(); 8657: explicit QTextStream(QIODevice *device); 8657: explicit QTextStream(FILE *fileHandle, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8657: explicit QTextStream(QString *string, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8657: explicit QTextStream(QByteArray *array, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8657: explicit QTextStream(const QByteArray &array, QIODevice::OpenMode openMode = QIODevice::ReadOnly); 8657: virtual ~QTextStream(); 8657: 8657: 8657: void setCodec(QTextCodec *codec); 8657: void setCodec(const char *codecName); 8657: QTextCodec *codec() const; 8657: void setAutoDetectUnicode(bool enabled); 8657: bool autoDetectUnicode() const; 8657: void setGenerateByteOrderMark(bool generate); 8657: bool generateByteOrderMark() const; 8657: 8657: 8657: void setLocale(const QLocale &locale); 8657: QLocale locale() const; 8657: 8657: void setDevice(QIODevice *device); 8657: QIODevice *device() const; 8657: 8657: void setString(QString *string, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8657: QString *string() const; 8657: 8657: Status status() const; 8657: void setStatus(Status status); 8657: void resetStatus(); 8657: 8657: bool atEnd() const; 8657: void reset(); 8657: void flush(); 8657: bool seek(qint64 pos); 8657: qint64 pos() const; 8657: 8657: void skipWhiteSpace(); 8657: 8657: QString readLine(qint64 maxlen = 0); 8657: bool readLineInto(QString *line, qint64 maxlen = 0); 8657: QString readAll(); 8657: QString read(qint64 maxlen); 8657: 8657: void setFieldAlignment(FieldAlignment alignment); 8657: FieldAlignment fieldAlignment() const; 8657: 8657: void setPadChar(QChar ch); 8657: QChar padChar() const; 8657: 8657: void setFieldWidth(int width); 8657: int fieldWidth() const; 8657: 8657: void setNumberFlags(NumberFlags flags); 8657: NumberFlags numberFlags() const; 8657: 8657: void setIntegerBase(int base); 8657: int integerBase() const; 8657: 8657: void setRealNumberNotation(RealNumberNotation notation); 8657: RealNumberNotation realNumberNotation() const; 8657: 8657: void setRealNumberPrecision(int precision); 8657: int realNumberPrecision() const; 8657: 8657: QTextStream &operator>>(QChar &ch); 8657: QTextStream &operator>>(char &ch); 8657: QTextStream &operator>>(signed short &i); 8657: QTextStream &operator>>(unsigned short &i); 8657: QTextStream &operator>>(signed int &i); 8657: QTextStream &operator>>(unsigned int &i); 8657: QTextStream &operator>>(signed long &i); 8657: QTextStream &operator>>(unsigned long &i); 8657: QTextStream &operator>>(qlonglong &i); 8657: QTextStream &operator>>(qulonglong &i); 8657: QTextStream &operator>>(float &f); 8657: QTextStream &operator>>(double &f); 8657: QTextStream &operator>>(QString &s); 8657: QTextStream &operator>>(QByteArray &array); 8657: QTextStream &operator>>(char *c); 8657: 8657: QTextStream &operator<<(QChar ch); 8657: QTextStream &operator<<(char ch); 8657: QTextStream &operator<<(signed short i); 8657: QTextStream &operator<<(unsigned short i); 8657: QTextStream &operator<<(signed int i); 8657: QTextStream &operator<<(unsigned int i); 8657: QTextStream &operator<<(signed long i); 8657: QTextStream &operator<<(unsigned long i); 8657: QTextStream &operator<<(qlonglong i); 8657: QTextStream &operator<<(qulonglong i); 8657: QTextStream &operator<<(float f); 8657: QTextStream &operator<<(double f); 8657: QTextStream &operator<<(const QString &s); 8657: QTextStream &operator<<(QLatin1String s); 8657: QTextStream &operator<<(const QStringRef &s); 8657: QTextStream &operator<<(const QByteArray &array); 8657: QTextStream &operator<<(const char *c); 8657: QTextStream &operator<<(const void *ptr); 8657: 8657: private: 8657: QTextStream(const QTextStream &) = delete; QTextStream &operator=(const QTextStream &) = delete; 8657: friend class QDebugStateSaverPrivate; 8657: friend class QDebug; 8657: 8657: QScopedPointer d_ptr; 8657: }; 8657: 8657: constexpr inline QFlags operator|(QTextStream::NumberFlags::enum_type f1, QTextStream::NumberFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QTextStream::NumberFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QTextStream::NumberFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: 8657: 8657: 8657: 8657: 8657: typedef QTextStream & (*QTextStreamFunction)(QTextStream &); 8657: typedef void (QTextStream::*QTSMFI)(int); 8657: typedef void (QTextStream::*QTSMFC)(QChar); 8657: 8657: 8657: class __attribute__((visibility("default"))) QTextStreamManipulator 8657: { 8657: public: 8657: constexpr QTextStreamManipulator(QTSMFI m, int a) noexcept : mf(m), mc(nullptr), arg(a), ch() {} 8657: constexpr QTextStreamManipulator(QTSMFC m, QChar c) noexcept : mf(nullptr), mc(m), arg(-1), ch(c) {} 8657: void exec(QTextStream &s) { if (mf) { (s.*mf)(arg); } else { (s.*mc)(ch); } } 8657: 8657: private: 8657: QTSMFI mf; 8657: QTSMFC mc; 8657: int arg; 8657: QChar ch; 8657: }; 8657: 8657: inline QTextStream &operator>>(QTextStream &s, QTextStreamFunction f) 8657: { return (*f)(s); } 8657: 8657: inline QTextStream &operator<<(QTextStream &s, QTextStreamFunction f) 8657: { return (*f)(s); } 8657: 8657: inline QTextStream &operator<<(QTextStream &s, QTextStreamManipulator m) 8657: { m.exec(s); return s; } 8657: 8657: __attribute__((visibility("default"))) QTextStream &bin(QTextStream &s); 8657: __attribute__((visibility("default"))) QTextStream &oct(QTextStream &s); 8657: __attribute__((visibility("default"))) QTextStream &dec(QTextStream &s); 8657: __attribute__((visibility("default"))) QTextStream &hex(QTextStream &s); 8657: 8657: __attribute__((visibility("default"))) QTextStream &showbase(QTextStream &s); 8657: __attribute__((visibility("default"))) QTextStream &forcesign(QTextStream &s); 8657: __attribute__((visibility("default"))) QTextStream &forcepoint(QTextStream &s); 8657: __attribute__((visibility("default"))) QTextStream &noshowbase(QTextStream &s); 8657: __attribute__((visibility("default"))) QTextStream &noforcesign(QTextStream &s); 8657: __attribute__((visibility("default"))) QTextStream &noforcepoint(QTextStream &s); 8657: 8657: __attribute__((visibility("default"))) QTextStream &uppercasebase(QTextStream &s); 8657: __attribute__((visibility("default"))) QTextStream &uppercasedigits(QTextStream &s); 8657: __attribute__((visibility("default"))) QTextStream &lowercasebase(QTextStream &s); 8657: __attribute__((visibility("default"))) QTextStream &lowercasedigits(QTextStream &s); 8657: 8657: __attribute__((visibility("default"))) QTextStream &fixed(QTextStream &s); 8657: __attribute__((visibility("default"))) QTextStream &scientific(QTextStream &s); 8657: 8657: __attribute__((visibility("default"))) QTextStream &left(QTextStream &s); 8657: __attribute__((visibility("default"))) QTextStream &right(QTextStream &s); 8657: __attribute__((visibility("default"))) QTextStream ¢er(QTextStream &s); 8657: 8657: __attribute__((visibility("default"))) QTextStream &endl(QTextStream &s); 8657: __attribute__((visibility("default"))) QTextStream &flush(QTextStream &s); 8657: __attribute__((visibility("default"))) QTextStream &reset(QTextStream &s); 8657: 8657: __attribute__((visibility("default"))) QTextStream &bom(QTextStream &s); 8657: 8657: __attribute__((visibility("default"))) QTextStream &ws(QTextStream &s); 8657: 8657: inline QTextStreamManipulator qSetFieldWidth(int width) 8657: { 8657: QTSMFI func = &QTextStream::setFieldWidth; 8657: return QTextStreamManipulator(func,width); 8657: } 8657: 8657: inline QTextStreamManipulator qSetPadChar(QChar ch) 8657: { 8657: QTSMFC func = &QTextStream::setPadChar; 8657: return QTextStreamManipulator(func, ch); 8657: } 8657: 8657: inline QTextStreamManipulator qSetRealNumberPrecision(int precision) 8657: { 8657: QTSMFI func = &QTextStream::setRealNumberPrecision; 8657: return QTextStreamManipulator(func, precision); 8657: } 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QTextStream" 2 3 4 8657: # 28 "/<>/templates/lib/outputstream.h" 2 8657: 8657: 8657: # 29 "/<>/templates/lib/outputstream.h" 8657: namespace Grantlee 8657: { 8657: 8657: class SafeString; 8657: # 82 "/<>/templates/lib/outputstream.h" 8657: class __attribute__((visibility("default"))) OutputStream 8657: { 8657: public: 8657: 8657: 8657: 8657: 8657: OutputStream(); 8657: 8657: 8657: 8657: 8657: 8657: explicit OutputStream(QTextStream *stream); 8657: 8657: 8657: 8657: 8657: virtual ~OutputStream(); 8657: 8657: 8657: 8657: 8657: 8657: virtual QString escape(const QString &input) const; 8657: 8657: 8657: 8657: 8657: 8657: QString escape(const SafeString &input) const; 8657: 8657: 8657: 8657: 8657: virtual QSharedPointer clone(QTextStream *stream) const; 8657: 8657: 8657: 8657: 8657: 8657: QString conditionalEscape(const Grantlee::SafeString &input) const; 8657: 8657: 8657: 8657: 8657: OutputStream &operator<<(const QString &input); 8657: 8657: 8657: 8657: 8657: OutputStream &operator<<(const SafeString &input); 8657: 8657: 8657: 8657: 8657: 8657: OutputStream &operator<<(QTextStream *stream); 8657: 8657: private: 8657: QTextStream *m_stream; 8657: OutputStream 8657: # 143 "/<>/templates/lib/outputstream.h" 3 4 8657: (const 8657: # 143 "/<>/templates/lib/outputstream.h" 8657: OutputStream 8657: # 143 "/<>/templates/lib/outputstream.h" 3 4 8657: &) = delete; 8657: # 143 "/<>/templates/lib/outputstream.h" 8657: OutputStream 8657: # 143 "/<>/templates/lib/outputstream.h" 3 4 8657: &operator=(const 8657: # 143 "/<>/templates/lib/outputstream.h" 8657: OutputStream 8657: # 143 "/<>/templates/lib/outputstream.h" 3 4 8657: &) = delete; 8657: 8657: # 144 "/<>/templates/lib/outputstream.h" 8657: }; 8657: } 8657: # 30 "/<>/templates/lib/node.h" 2 8657: # 1 "/<>/templates/lib/safestring.h" 1 8657: # 24 "/<>/templates/lib/safestring.h" 8657: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8657: # 25 "/<>/templates/lib/safestring.h" 2 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QString" 1 3 4 8657: # 27 "/<>/templates/lib/safestring.h" 2 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVariant" 1 3 4 8657: # 28 "/<>/templates/lib/safestring.h" 2 8657: 8657: namespace Grantlee 8657: { 8657: # 92 "/<>/templates/lib/safestring.h" 8657: class __attribute__((visibility("default"))) SafeString 8657: { 8657: public: 8657: 8657: 8657: 8657: enum Safety { 8657: IsSafe, 8657: IsNotSafe 8657: 8657: 8657: }; 8657: 8657: 8657: 8657: 8657: SafeString(); 8657: 8657: 8657: 8657: 8657: SafeString(const SafeString &safeString); 8657: 8657: 8657: 8657: 8657: 8657: 8657: SafeString(const QString &str, bool safe); 8657: 8657: 8657: 8657: 8657: 8657: 8657: SafeString(const QString &str, 8657: Safety safety 8657: = IsNotSafe); 8657: 8657: 8657: 8657: 8657: ~SafeString(); 8657: 8657: 8657: 8657: 8657: 8657: void setNeedsEscape(bool needsEscape); 8657: 8657: 8657: 8657: 8657: 8657: bool needsEscape() const; 8657: 8657: 8657: 8657: 8657: bool isSafe() const; 8657: 8657: 8657: 8657: 8657: 8657: void setSafety(Safety safety); 8657: # 167 "/<>/templates/lib/safestring.h" 8657: class __attribute__((visibility("default"))) NestedString : public QString 8657: { 8657: 8657: friend class SafeString; 8657: SafeString *m_safeString; 8657: 8657: public: 8657: NestedString(SafeString *safeString); 8657: NestedString(const QString &content, SafeString *safeString); 8657: 8657: SafeString &append(const SafeString &str); 8657: SafeString &append(const QString &str); 8657: SafeString &append(const QStringRef &reference); 8657: SafeString &append(const QLatin1String &str); 8657: # 196 "/<>/templates/lib/safestring.h" 8657: SafeString &append(const QChar ch); 8657: 8657: SafeString &fill(QChar ch, int size = -1); 8657: 8657: SafeString &insert(int position, const SafeString &str); 8657: SafeString &insert(int position, const QString &str); 8657: SafeString &insert(int position, const QLatin1String &str); 8657: SafeString &insert(int position, const QChar *unicode, int size); 8657: SafeString &insert(int position, QChar ch); 8657: 8657: SafeString left(int n) const; 8657: SafeString leftJustified(int width, QChar fill = QLatin1Char(' '), 8657: bool truncate = false) const; 8657: SafeString mid(int position, int n = -1) const; 8657: 8657: SafeString normalized(NormalizationForm mode) const; 8657: SafeString normalized(NormalizationForm mode, 8657: QChar::UnicodeVersion version) const; 8657: 8657: SafeString &prepend(const SafeString &str); 8657: SafeString &prepend(const QString &str); 8657: SafeString &prepend(const QLatin1String &str); 8657: # 233 "/<>/templates/lib/safestring.h" 8657: SafeString &prepend(QChar ch); 8657: 8657: void push_back(const SafeString &other); 8657: void push_front(const SafeString &other); 8657: 8657: SafeString &remove(int position, int n); 8657: SafeString &remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: SafeString &remove(const SafeString &str, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: SafeString &remove(const QString &str, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: SafeString &remove(const QRegularExpression &rx); 8657: SafeString repeated(int times) const; 8657: SafeString &replace(int position, int n, const SafeString &after); 8657: SafeString &replace(int position, int n, const QString &after); 8657: SafeString &replace(int position, int n, const QChar *unicode, int size); 8657: SafeString &replace(int position, int n, QChar after); 8657: SafeString &replace(const SafeString &before, const SafeString &after, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: SafeString &replace(const QString &before, const SafeString &after, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: SafeString &replace(const SafeString &before, const QString &after, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: SafeString &replace(const QString &before, const QString &after, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: SafeString &replace(const QChar *before, int blen, const QChar *after, 8657: int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: SafeString &replace(QChar ch, const SafeString &after, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: SafeString &replace(QChar ch, const QString &after, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: SafeString &replace(QChar before, QChar after, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: SafeString &replace(const QLatin1String &before, const QLatin1String &after, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: SafeString &replace(const QLatin1String &before, const SafeString &after, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: SafeString &replace(const QLatin1String &before, const QString &after, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: SafeString &replace(const SafeString &before, const QLatin1String &after, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: SafeString &replace(const QString &before, const QLatin1String &after, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: SafeString &replace(QChar c, const QLatin1String &after, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8657: SafeString &replace(const QRegularExpression &rx, const SafeString &after); 8657: SafeString &replace(const QRegularExpression &rx, const QString &after); 8657: 8657: SafeString right(int n) const; 8657: SafeString rightJustified(int width, QChar fill = QLatin1Char(' '), 8657: bool truncate = false) const; 8657: 8657: SafeString section(QChar sep, int start, int end = -1, 8657: SectionFlags flags = SectionDefault) const; 8657: SafeString section(const SafeString &sep, int start, int end = -1, 8657: SectionFlags flags = SectionDefault) const; 8657: SafeString section(const QString &sep, int start, int end = -1, 8657: SectionFlags flags = SectionDefault) const; 8657: SafeString section(const QRegularExpression ®, int start, int end = -1, 8657: SectionFlags flags = SectionDefault) const; 8657: SafeString &setNum(int n, int base = 10); 8657: SafeString &setNum(uint n, int base = 10); 8657: SafeString &setNum(long n, int base = 10); 8657: SafeString &setNum(ulong n, int base = 10); 8657: SafeString &setNum(qlonglong n, int base = 10); 8657: SafeString &setNum(qulonglong n, int base = 10); 8657: SafeString &setNum(short n, int base = 10); 8657: SafeString &setNum(ushort n, int base = 10); 8657: SafeString &setNum(double n, char format = 'g', int precision = 6); 8657: SafeString &setNum(float n, char format = 'g', int precision = 6); 8657: SafeString &setUnicode(const QChar *unicode, int size); 8657: SafeString &setUtf16(const ushort *unicode, int size); 8657: SafeString simplified() const; 8657: 8657: QStringList split(const SafeString &sep, 8657: SplitBehavior behavior = KeepEmptyParts, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: QStringList split(const QString &sep, 8657: SplitBehavior behavior = KeepEmptyParts, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: QStringList split(const QChar &sep, SplitBehavior behavior = KeepEmptyParts, 8657: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8657: QStringList split(const QRegularExpression &rx, 8657: SplitBehavior behavior = KeepEmptyParts) const; 8657: 8657: SafeString toLower() const; 8657: SafeString toUpper() const; 8657: SafeString trimmed() const; 8657: 8657: void chop(int n); 8657: 8657: }; 8657: 8657: 8657: 8657: 8657: const NestedString &get() const { return m_nestedString; } 8657: 8657: 8657: 8657: 8657: NestedString &get() { return m_nestedString; } 8657: 8657: 8657: 8657: 8657: operator QString() const { return m_nestedString; } 8657: 8657: 8657: 8657: 8657: SafeString &operator=(const SafeString &str); 8657: 8657: 8657: 8657: 8657: 8657: 8657: SafeString operator+(const QString &str); 8657: 8657: 8657: 8657: 8657: 8657: 8657: SafeString operator+(const SafeString &str); 8657: 8657: 8657: 8657: 8657: 8657: 8657: SafeString &operator+=(const QString &str); 8657: 8657: 8657: 8657: 8657: 8657: 8657: SafeString &operator+=(const SafeString &str); 8657: 8657: 8657: 8657: 8657: 8657: 8657: bool operator==(const SafeString &other) const; 8657: 8657: 8657: 8657: 8657: 8657: 8657: bool operator==(const QString &other) const; 8657: 8657: 8657: 8657: 8657: operator QVariant() const { return QVariant::fromValue(*this); } 8657: 8657: private: 8657: 8657: NestedString m_nestedString; 8657: 8657: Safety m_safety; 8657: bool m_needsescape; 8657: }; 8657: } 8657: 8657: 8657: # 402 "/<>/templates/lib/safestring.h" 3 4 8657: template <> struct QMetaTypeId< 8657: # 402 "/<>/templates/lib/safestring.h" 8657: Grantlee::SafeString 8657: # 402 "/<>/templates/lib/safestring.h" 3 4 8657: > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< 8657: # 402 "/<>/templates/lib/safestring.h" 8657: Grantlee::SafeString 8657: # 402 "/<>/templates/lib/safestring.h" 3 4 8657: >( 8657: # 402 "/<>/templates/lib/safestring.h" 8657: "Grantlee::SafeString" 8657: # 402 "/<>/templates/lib/safestring.h" 3 4 8657: , reinterpret_cast< 8657: # 402 "/<>/templates/lib/safestring.h" 8657: Grantlee::SafeString 8657: # 402 "/<>/templates/lib/safestring.h" 3 4 8657: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8657: # 31 "/<>/templates/lib/node.h" 2 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QStringList" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringlist.h" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QStringList" 2 3 4 8657: # 33 "/<>/templates/lib/node.h" 2 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QSet" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qset.h" 1 3 4 8657: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qset.h" 3 4 8657: 8657: 8657: 8657: template 8657: class QSet 8657: { 8657: typedef QHash Hash; 8657: 8657: public: 8657: inline QSet() noexcept {} 8657: 8657: inline QSet(std::initializer_list list) 8657: { 8657: reserve(int(list.size())); 8657: for (typename std::initializer_list::const_iterator it = list.begin(); it != list.end(); ++it) 8657: insert(*it); 8657: } 8657: 8657: 8657: 8657: 8657: inline void swap(QSet &other) noexcept { q_hash.swap(other.q_hash); } 8657: 8657: inline bool operator==(const QSet &other) const 8657: { return q_hash == other.q_hash; } 8657: inline bool operator!=(const QSet &other) const 8657: { return q_hash != other.q_hash; } 8657: 8657: inline int size() const { return q_hash.size(); } 8657: 8657: inline bool isEmpty() const { return q_hash.isEmpty(); } 8657: 8657: inline int capacity() const { return q_hash.capacity(); } 8657: inline void reserve(int size); 8657: inline void squeeze() { q_hash.squeeze(); } 8657: 8657: inline void detach() { q_hash.detach(); } 8657: inline bool isDetached() const { return q_hash.isDetached(); } 8657: 8657: inline void setSharable(bool sharable) { q_hash.setSharable(sharable); } 8657: 8657: 8657: inline void clear() { q_hash.clear(); } 8657: 8657: inline bool remove(const T &value) { return q_hash.remove(value) != 0; } 8657: 8657: inline bool contains(const T &value) const { return q_hash.contains(value); } 8657: 8657: bool contains(const QSet &set) const; 8657: 8657: class const_iterator; 8657: 8657: class iterator 8657: { 8657: typedef QHash Hash; 8657: typename Hash::iterator i; 8657: friend class const_iterator; 8657: friend class QSet; 8657: 8657: public: 8657: typedef std::bidirectional_iterator_tag iterator_category; 8657: typedef qptrdiff difference_type; 8657: typedef T value_type; 8657: typedef const T *pointer; 8657: typedef const T &reference; 8657: 8657: inline iterator() {} 8657: inline iterator(typename Hash::iterator o) : i(o) {} 8657: inline iterator(const iterator &o) : i(o.i) {} 8657: inline iterator &operator=(const iterator &o) { i = o.i; return *this; } 8657: inline const T &operator*() const { return i.key(); } 8657: inline const T *operator->() const { return &i.key(); } 8657: inline bool operator==(const iterator &o) const { return i == o.i; } 8657: inline bool operator!=(const iterator &o) const { return i != o.i; } 8657: inline bool operator==(const const_iterator &o) const 8657: { return i == o.i; } 8657: inline bool operator!=(const const_iterator &o) const 8657: { return i != o.i; } 8657: inline iterator &operator++() { ++i; return *this; } 8657: inline iterator operator++(int) { iterator r = *this; ++i; return r; } 8657: inline iterator &operator--() { --i; return *this; } 8657: inline iterator operator--(int) { iterator r = *this; --i; return r; } 8657: inline iterator operator+(int j) const { return i + j; } 8657: inline iterator operator-(int j) const { return i - j; } 8657: inline iterator &operator+=(int j) { i += j; return *this; } 8657: inline iterator &operator-=(int j) { i -= j; return *this; } 8657: }; 8657: 8657: class const_iterator 8657: { 8657: typedef QHash Hash; 8657: typename Hash::const_iterator i; 8657: friend class iterator; 8657: friend class QSet; 8657: 8657: public: 8657: typedef std::bidirectional_iterator_tag iterator_category; 8657: typedef qptrdiff difference_type; 8657: typedef T value_type; 8657: typedef const T *pointer; 8657: typedef const T &reference; 8657: 8657: inline const_iterator() {} 8657: inline const_iterator(typename Hash::const_iterator o) : i(o) {} 8657: inline const_iterator(const const_iterator &o) : i(o.i) {} 8657: inline const_iterator(const iterator &o) 8657: : i(o.i) {} 8657: inline const_iterator &operator=(const const_iterator &o) { i = o.i; return *this; } 8657: inline const T &operator*() const { return i.key(); } 8657: inline const T *operator->() const { return &i.key(); } 8657: inline bool operator==(const const_iterator &o) const { return i == o.i; } 8657: inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8657: inline const_iterator &operator++() { ++i; return *this; } 8657: inline const_iterator operator++(int) { const_iterator r = *this; ++i; return r; } 8657: inline const_iterator &operator--() { --i; return *this; } 8657: inline const_iterator operator--(int) { const_iterator r = *this; --i; return r; } 8657: inline const_iterator operator+(int j) const { return i + j; } 8657: inline const_iterator operator-(int j) const { return i - j; } 8657: inline const_iterator &operator+=(int j) { i += j; return *this; } 8657: inline const_iterator &operator-=(int j) { i -= j; return *this; } 8657: }; 8657: 8657: 8657: typedef std::reverse_iterator reverse_iterator; 8657: typedef std::reverse_iterator const_reverse_iterator; 8657: 8657: inline iterator begin() { return q_hash.begin(); } 8657: inline const_iterator begin() const noexcept { return q_hash.begin(); } 8657: inline const_iterator cbegin() const noexcept { return q_hash.begin(); } 8657: inline const_iterator constBegin() const noexcept { return q_hash.constBegin(); } 8657: inline iterator end() { return q_hash.end(); } 8657: inline const_iterator end() const noexcept { return q_hash.end(); } 8657: inline const_iterator cend() const noexcept { return q_hash.end(); } 8657: inline const_iterator constEnd() const noexcept { return q_hash.constEnd(); } 8657: 8657: reverse_iterator rbegin() { return reverse_iterator(end()); } 8657: reverse_iterator rend() { return reverse_iterator(begin()); } 8657: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8657: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8657: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8657: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8657: 8657: iterator erase(iterator i) 8657: { return erase(m2c(i)); } 8657: iterator erase(const_iterator i) 8657: { 8657: do { } while ((false) && (isValidIterator(i))); 8657: return q_hash.erase(reinterpret_cast(i)); 8657: } 8657: 8657: 8657: typedef iterator Iterator; 8657: typedef const_iterator ConstIterator; 8657: inline int count() const { return q_hash.count(); } 8657: inline iterator insert(const T &value) 8657: { return static_cast(q_hash.insert(value, QHashDummyValue())); } 8657: iterator find(const T &value) { return q_hash.find(value); } 8657: const_iterator find(const T &value) const { return q_hash.find(value); } 8657: inline const_iterator constFind(const T &value) const { return find(value); } 8657: QSet &unite(const QSet &other); 8657: QSet &intersect(const QSet &other); 8657: bool intersects(const QSet &other) const; 8657: QSet &subtract(const QSet &other); 8657: 8657: 8657: typedef T key_type; 8657: typedef T value_type; 8657: typedef value_type *pointer; 8657: typedef const value_type *const_pointer; 8657: typedef value_type &reference; 8657: typedef const value_type &const_reference; 8657: typedef qptrdiff difference_type; 8657: typedef int size_type; 8657: 8657: inline bool empty() const { return isEmpty(); } 8657: 8657: inline QSet &operator<<(const T &value) { insert(value); return *this; } 8657: inline QSet &operator|=(const QSet &other) { unite(other); return *this; } 8657: inline QSet &operator|=(const T &value) { insert(value); return *this; } 8657: inline QSet &operator&=(const QSet &other) { intersect(other); return *this; } 8657: inline QSet &operator&=(const T &value) 8657: { QSet result; if (contains(value)) result.insert(value); return (*this = result); } 8657: inline QSet &operator+=(const QSet &other) { unite(other); return *this; } 8657: inline QSet &operator+=(const T &value) { insert(value); return *this; } 8657: inline QSet &operator-=(const QSet &other) { subtract(other); return *this; } 8657: inline QSet &operator-=(const T &value) { remove(value); return *this; } 8657: inline QSet operator|(const QSet &other) const 8657: { QSet result = *this; result |= other; return result; } 8657: inline QSet operator&(const QSet &other) const 8657: { QSet result = *this; result &= other; return result; } 8657: inline QSet operator+(const QSet &other) const 8657: { QSet result = *this; result += other; return result; } 8657: inline QSet operator-(const QSet &other) const 8657: { QSet result = *this; result -= other; return result; } 8657: 8657: QList toList() const; 8657: inline QList values() const { return toList(); } 8657: 8657: static QSet fromList(const QList &list); 8657: 8657: private: 8657: Hash q_hash; 8657: 8657: static const_iterator m2c(iterator it) noexcept 8657: { return const_iterator(typename Hash::const_iterator(it.i.i)); } 8657: 8657: bool isValidIterator(const iterator &i) const 8657: { 8657: return q_hash.isValidIterator(reinterpret_cast(i)); 8657: } 8657: bool isValidIterator(const const_iterator &i) const noexcept 8657: { 8657: return q_hash.isValidIterator(reinterpret_cast(i)); 8657: } 8657: }; 8657: 8657: template 8657: uint qHash(const QSet &key, uint seed = 0) 8657: noexcept(noexcept(qHashRangeCommutative(key.begin(), key.end(), seed))) 8657: { 8657: return qHashRangeCommutative(key.begin(), key.end(), seed); 8657: } 8657: 8657: 8657: 8657: template 8657: inline void QSet::reserve(int asize) { q_hash.reserve(asize); } 8657: 8657: template 8657: inline QSet &QSet::unite(const QSet &other) 8657: { 8657: QSet copy(other); 8657: typename QSet::const_iterator i = copy.constEnd(); 8657: while (i != copy.constBegin()) { 8657: --i; 8657: insert(*i); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: inline QSet &QSet::intersect(const QSet &other) 8657: { 8657: QSet copy1; 8657: QSet copy2; 8657: if (size() <= other.size()) { 8657: copy1 = *this; 8657: copy2 = other; 8657: } else { 8657: copy1 = other; 8657: copy2 = *this; 8657: *this = copy1; 8657: } 8657: typename QSet::const_iterator i = copy1.constEnd(); 8657: while (i != copy1.constBegin()) { 8657: --i; 8657: if (!copy2.contains(*i)) 8657: remove(*i); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: inline bool QSet::intersects(const QSet &other) const 8657: { 8657: const bool otherIsBigger = other.size() > size(); 8657: const QSet &smallestSet = otherIsBigger ? *this : other; 8657: const QSet &biggestSet = otherIsBigger ? other : *this; 8657: const bool equalSeeds = q_hash.d->seed == other.q_hash.d->seed; 8657: typename QSet::const_iterator i = smallestSet.cbegin(); 8657: typename QSet::const_iterator e = smallestSet.cend(); 8657: 8657: if (__builtin_expect(!!(equalSeeds), true)) { 8657: 8657: while (i != e) { 8657: if (*biggestSet.q_hash.findNode(*i, i.i.i->h) != biggestSet.q_hash.e) 8657: return true; 8657: ++i; 8657: } 8657: } else { 8657: while (i != e) { 8657: if (biggestSet.contains(*i)) 8657: return true; 8657: ++i; 8657: } 8657: } 8657: 8657: return false; 8657: } 8657: 8657: template 8657: inline QSet &QSet::subtract(const QSet &other) 8657: { 8657: if (&other == this) { 8657: clear(); 8657: } else { 8657: auto i = other.constEnd(); 8657: while (i != other.constBegin()) { 8657: --i; 8657: remove(*i); 8657: } 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: inline bool QSet::contains(const QSet &other) const 8657: { 8657: typename QSet::const_iterator i = other.constBegin(); 8657: while (i != other.constEnd()) { 8657: if (!contains(*i)) 8657: return false; 8657: ++i; 8657: } 8657: return true; 8657: } 8657: 8657: template 8657: QList QSet::toList() const 8657: { 8657: QList result; 8657: result.reserve(size()); 8657: typename QSet::const_iterator i = constBegin(); 8657: while (i != constEnd()) { 8657: result.append(*i); 8657: ++i; 8657: } 8657: return result; 8657: } 8657: 8657: template 8657: QSet QList::toSet() const 8657: { 8657: QSet result; 8657: result.reserve(size()); 8657: for (int i = 0; i < size(); ++i) 8657: result.insert(at(i)); 8657: return result; 8657: } 8657: 8657: template 8657: QSet QSet::fromList(const QList &list) 8657: { 8657: return list.toSet(); 8657: } 8657: 8657: template 8657: QList QList::fromSet(const QSet &set) 8657: { 8657: return set.toList(); 8657: } 8657: 8657: template class QSetIterator { typedef typename QSet::const_iterator const_iterator; QSet c; const_iterator i; public: inline QSetIterator(const QSet &container) : c(container), i(c.constBegin()) {} inline QSetIterator &operator=(const QSet &container) { c = container; i = c.constBegin(); return *this; } inline void toFront() { i = c.constBegin(); } inline void toBack() { i = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline const T &next() { return *i++; } inline const T &peekNext() const { return *i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline const T &previous() { return *--i; } inline const T &peekPrevious() const { const_iterator p = i; return *--p; } inline bool findNext(const T &t) { while (i != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(--i) == t) return true; return false; } }; 8657: 8657: template 8657: class QMutableSetIterator 8657: { 8657: typedef typename QSet::iterator iterator; 8657: QSet *c; 8657: iterator i, n; 8657: inline bool item_exists() const { return c->constEnd() != n; } 8657: 8657: public: 8657: inline QMutableSetIterator(QSet &container) 8657: : c(&container) 8657: { i = c->begin(); n = c->end(); } 8657: inline QMutableSetIterator &operator=(QSet &container) 8657: { c = &container; i = c->begin(); n = c->end(); return *this; } 8657: inline void toFront() { i = c->begin(); n = c->end(); } 8657: inline void toBack() { i = c->end(); n = i; } 8657: inline bool hasNext() const { return c->constEnd() != i; } 8657: inline const T &next() { n = i++; return *n; } 8657: inline const T &peekNext() const { return *i; } 8657: inline bool hasPrevious() const { return c->constBegin() != i; } 8657: inline const T &previous() { n = --i; return *n; } 8657: inline const T &peekPrevious() const { iterator p = i; return *--p; } 8657: inline void remove() 8657: { if (c->constEnd() != n) { i = c->erase(n); n = c->end(); } } 8657: inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } 8657: inline bool findNext(const T &t) 8657: { while (c->constEnd() != (n = i)) if (*i++ == t) return true; return false; } 8657: inline bool findPrevious(const T &t) 8657: { while (c->constBegin() != i) if (*(n = --i) == t) return true; 8657: n = c->end(); return false; } 8657: }; 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QSet" 2 3 4 8657: # 37 "/<>/templates/lib/node.h" 2 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVector" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvector.h" 1 3 4 8657: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvector.h" 3 4 8657: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvector.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: class QRegion; 8657: 8657: template 8657: class QVector 8657: { 8657: typedef QTypedArrayData Data; 8657: Data *d; 8657: 8657: public: 8657: inline QVector() noexcept : d(Data::sharedNull()) { } 8657: explicit QVector(int size); 8657: QVector(int size, const T &t); 8657: inline QVector(const QVector &v); 8657: inline ~QVector() { if (!d->ref.deref()) freeData(d); } 8657: QVector &operator=(const QVector &v); 8657: 8657: QVector(QVector &&other) noexcept : d(other.d) { other.d = Data::sharedNull(); } 8657: QVector &operator=(QVector &&other) noexcept 8657: { QVector moved(std::move(other)); swap(moved); return *this; } 8657: 8657: void swap(QVector &other) noexcept { qSwap(d, other.d); } 8657: 8657: inline QVector(std::initializer_list args); 8657: 8657: bool operator==(const QVector &v) const; 8657: inline bool operator!=(const QVector &v) const { return !(*this == v); } 8657: 8657: inline int size() const { return d->size; } 8657: 8657: inline bool isEmpty() const { return d->size == 0; } 8657: 8657: void resize(int size); 8657: 8657: inline int capacity() const { return int(d->alloc); } 8657: void reserve(int size); 8657: inline void squeeze() 8657: { 8657: reallocData(d->size, d->size); 8657: if (d->capacityReserved) { 8657: 8657: 8657: d->capacityReserved = 0; 8657: } 8657: } 8657: 8657: inline void detach(); 8657: inline bool isDetached() const { return !d->ref.isShared(); } 8657: 8657: inline void setSharable(bool sharable) 8657: { 8657: if (sharable == d->ref.isSharable()) 8657: return; 8657: if (!sharable) 8657: detach(); 8657: 8657: if (d == Data::unsharableEmpty()) { 8657: if (sharable) 8657: d = Data::sharedNull(); 8657: } else { 8657: d->ref.setSharable(sharable); 8657: } 8657: do { } while ((false) && (d->ref.isSharable() == sharable)); 8657: } 8657: 8657: 8657: inline bool isSharedWith(const QVector &other) const { return d == other.d; } 8657: 8657: inline T *data() { detach(); return d->begin(); } 8657: inline const T *data() const { return d->begin(); } 8657: inline const T *constData() const { return d->begin(); } 8657: void clear(); 8657: 8657: const T &at(int i) const; 8657: T &operator[](int i); 8657: const T &operator[](int i) const; 8657: void append(const T &t); 8657: 8657: void append(T &&t); 8657: 8657: inline void append(const QVector &l) { *this += l; } 8657: void prepend(const T &t); 8657: void insert(int i, const T &t); 8657: void insert(int i, int n, const T &t); 8657: void replace(int i, const T &t); 8657: void remove(int i); 8657: void remove(int i, int n); 8657: inline void removeFirst() { do { } while ((false) && (!isEmpty())); erase(d->begin()); } 8657: inline void removeLast(); 8657: inline T takeFirst() { do { } while ((false) && (!isEmpty())); T r = first(); removeFirst(); return r; } 8657: inline T takeLast() { do { } while ((false) && (!isEmpty())); T r = last(); removeLast(); return r; } 8657: 8657: QVector &fill(const T &t, int size = -1); 8657: 8657: int indexOf(const T &t, int from = 0) const; 8657: int lastIndexOf(const T &t, int from = -1) const; 8657: bool contains(const T &t) const; 8657: int count(const T &t) const; 8657: 8657: 8657: void removeAt(int i) { remove(i); } 8657: int removeAll(const T &t) 8657: { 8657: const const_iterator ce = this->cend(), cit = std::find(this->cbegin(), ce, t); 8657: if (cit == ce) 8657: return 0; 8657: 8657: const int firstFoundIdx = std::distance(this->cbegin(), cit); 8657: const iterator e = end(), it = std::remove(begin() + firstFoundIdx, e, t); 8657: const int result = std::distance(it, e); 8657: erase(it, e); 8657: return result; 8657: } 8657: bool removeOne(const T &t) 8657: { 8657: const int i = indexOf(t); 8657: if (i < 0) 8657: return false; 8657: remove(i); 8657: return true; 8657: } 8657: int length() const { return size(); } 8657: T takeAt(int i) { T t = at(i); remove(i); return t; } 8657: void move(int from, int to) 8657: { 8657: do { } while ((false) && (from >= 0 && from < size())); 8657: do { } while ((false) && (to >= 0 && to < size())); 8657: if (from == to) 8657: return; 8657: detach(); 8657: T * const b = d->begin(); 8657: if (from < to) 8657: std::rotate(b + from, b + from + 1, b + to + 1); 8657: else 8657: std::rotate(b + to, b + from, b + from + 1); 8657: } 8657: 8657: 8657: typedef typename Data::iterator iterator; 8657: typedef typename Data::const_iterator const_iterator; 8657: typedef std::reverse_iterator reverse_iterator; 8657: typedef std::reverse_iterator const_reverse_iterator; 8657: # 213 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvector.h" 3 4 8657: inline iterator begin(iterator = iterator()) { detach(); return d->begin(); } 8657: inline const_iterator begin(const_iterator = const_iterator()) const noexcept { return d->constBegin(); } 8657: inline const_iterator cbegin(const_iterator = const_iterator()) const noexcept { return d->constBegin(); } 8657: inline const_iterator constBegin(const_iterator = const_iterator()) const noexcept { return d->constBegin(); } 8657: inline iterator end(iterator = iterator()) { detach(); return d->end(); } 8657: inline const_iterator end(const_iterator = const_iterator()) const noexcept { return d->constEnd(); } 8657: inline const_iterator cend(const_iterator = const_iterator()) const noexcept { return d->constEnd(); } 8657: inline const_iterator constEnd(const_iterator = const_iterator()) const noexcept { return d->constEnd(); } 8657: 8657: reverse_iterator rbegin() { return reverse_iterator(end()); } 8657: reverse_iterator rend() { return reverse_iterator(begin()); } 8657: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8657: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8657: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8657: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8657: iterator insert(iterator before, int n, const T &x); 8657: inline iterator insert(iterator before, const T &x) { return insert(before, 1, x); } 8657: iterator erase(iterator begin, iterator end); 8657: inline iterator erase(iterator pos) { return erase(pos, pos+1); } 8657: 8657: 8657: inline int count() const { return d->size; } 8657: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8657: inline const T &first() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8657: inline const T &constFirst() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8657: inline T& last() { do { } while ((false) && (!isEmpty())); return *(end()-1); } 8657: inline const T &last() const { do { } while ((false) && (!isEmpty())); return *(end()-1); } 8657: inline const T &constLast() const { do { } while ((false) && (!isEmpty())); return *(end()-1); } 8657: inline bool startsWith(const T &t) const { return !isEmpty() && first() == t; } 8657: inline bool endsWith(const T &t) const { return !isEmpty() && last() == t; } 8657: QVector mid(int pos, int len = -1) const; 8657: 8657: T value(int i) const; 8657: T value(int i, const T &defaultValue) const; 8657: 8657: 8657: typedef T value_type; 8657: typedef value_type* pointer; 8657: typedef const value_type* const_pointer; 8657: typedef value_type& reference; 8657: typedef const value_type& const_reference; 8657: typedef qptrdiff difference_type; 8657: typedef iterator Iterator; 8657: typedef const_iterator ConstIterator; 8657: typedef int size_type; 8657: inline void push_back(const T &t) { append(t); } 8657: 8657: void push_back(T &&t) { append(std::move(t)); } 8657: 8657: inline void push_front(const T &t) { prepend(t); } 8657: void pop_back() { removeLast(); } 8657: void pop_front() { removeFirst(); } 8657: inline bool empty() const 8657: { return d->size == 0; } 8657: inline T& front() { return first(); } 8657: inline const_reference front() const { return first(); } 8657: inline reference back() { return last(); } 8657: inline const_reference back() const { return last(); } 8657: 8657: 8657: QVector &operator+=(const QVector &l); 8657: inline QVector operator+(const QVector &l) const 8657: { QVector n = *this; n += l; return n; } 8657: inline QVector &operator+=(const T &t) 8657: { append(t); return *this; } 8657: inline QVector &operator<< (const T &t) 8657: { append(t); return *this; } 8657: inline QVector &operator<<(const QVector &l) 8657: { *this += l; return *this; } 8657: 8657: QList toList() const; 8657: 8657: static QVector fromList(const QList &list); 8657: 8657: static inline QVector fromStdVector(const std::vector &vector) 8657: { QVector tmp; tmp.reserve(int(vector.size())); std::copy(vector.begin(), vector.end(), std::back_inserter(tmp)); return tmp; } 8657: inline std::vector toStdVector() const 8657: { return std::vector(d->begin(), d->end()); } 8657: private: 8657: friend class QRegion; 8657: 8657: 8657: void reallocData(const int size, const int alloc, QArrayData::AllocationOptions options = QArrayData::Default); 8657: void reallocData(const int sz) { reallocData(sz, d->alloc); } 8657: void freeData(Data *d); 8657: void defaultConstruct(T *from, T *to); 8657: void copyConstruct(const T *srcFrom, const T *srcTo, T *dstFrom); 8657: void destruct(T *from, T *to); 8657: bool isValidIterator(const iterator &i) const 8657: { 8657: return (i <= d->end()) && (d->begin() <= i); 8657: } 8657: class AlignmentDummy { Data header; T array[1]; }; 8657: }; 8657: # 316 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvector.h" 3 4 8657: template 8657: void QVector::defaultConstruct(T *from, T *to) 8657: { 8657: if (QTypeInfo::isComplex) { 8657: while (from != to) { 8657: new (from++) T(); 8657: } 8657: } else { 8657: ::memset(static_cast(from), 0, (to - from) * sizeof(T)); 8657: } 8657: } 8657: 8657: template 8657: void QVector::copyConstruct(const T *srcFrom, const T *srcTo, T *dstFrom) 8657: { 8657: if (QTypeInfo::isComplex) { 8657: while (srcFrom != srcTo) 8657: new (dstFrom++) T(*srcFrom++); 8657: } else { 8657: ::memcpy(static_cast(dstFrom), static_cast(srcFrom), (srcTo - srcFrom) * sizeof(T)); 8657: } 8657: } 8657: 8657: template 8657: void QVector::destruct(T *from, T *to) 8657: { 8657: if (QTypeInfo::isComplex) { 8657: while (from != to) { 8657: from++->~T(); 8657: } 8657: } 8657: } 8657: 8657: template 8657: inline QVector::QVector(const QVector &v) 8657: { 8657: if (v.d->ref.ref()) { 8657: d = v.d; 8657: } else { 8657: if (v.d->capacityReserved) { 8657: d = Data::allocate(v.d->alloc); 8657: do { if (!(d)) qBadAlloc(); } while (false); 8657: d->capacityReserved = true; 8657: } else { 8657: d = Data::allocate(v.d->size); 8657: do { if (!(d)) qBadAlloc(); } while (false); 8657: } 8657: if (d->alloc) { 8657: copyConstruct(v.d->begin(), v.d->end(), d->begin()); 8657: d->size = v.d->size; 8657: } 8657: } 8657: } 8657: 8657: 8657: 8657: 8657: 8657: template 8657: void QVector::detach() 8657: { 8657: if (!isDetached()) { 8657: 8657: if (!d->alloc) 8657: d = Data::unsharableEmpty(); 8657: else 8657: 8657: reallocData(d->size, int(d->alloc)); 8657: } 8657: do { } while ((false) && (isDetached())); 8657: } 8657: 8657: template 8657: void QVector::reserve(int asize) 8657: { 8657: if (asize > int(d->alloc)) 8657: reallocData(d->size, asize); 8657: if (isDetached() 8657: 8657: && d != Data::unsharableEmpty() 8657: 8657: ) 8657: d->capacityReserved = 1; 8657: do { } while ((false) && (capacity() >= asize)); 8657: } 8657: 8657: template 8657: void QVector::resize(int asize) 8657: { 8657: int newAlloc; 8657: const int oldAlloc = int(d->alloc); 8657: QArrayData::AllocationOptions opt; 8657: 8657: if (asize > oldAlloc) { 8657: newAlloc = asize; 8657: opt = QArrayData::Grow; 8657: } else { 8657: newAlloc = oldAlloc; 8657: } 8657: reallocData(asize, newAlloc, opt); 8657: } 8657: template 8657: inline void QVector::clear() 8657: { resize(0); } 8657: template 8657: inline const T &QVector::at(int i) const 8657: { do { } while ((false) && (i >= 0 && i < d->size)); 8657: return d->begin()[i]; } 8657: template 8657: inline const T &QVector::operator[](int i) const 8657: { do { } while ((false) && (i >= 0 && i < d->size)); 8657: return d->begin()[i]; } 8657: template 8657: inline T &QVector::operator[](int i) 8657: { do { } while ((false) && (i >= 0 && i < d->size)); 8657: return data()[i]; } 8657: template 8657: inline void QVector::insert(int i, const T &t) 8657: { do { } while ((false) && (i >= 0 && i <= d->size)); 8657: insert(begin() + i, 1, t); } 8657: template 8657: inline void QVector::insert(int i, int n, const T &t) 8657: { do { } while ((false) && (i >= 0 && i <= d->size)); 8657: insert(begin() + i, n, t); } 8657: template 8657: inline void QVector::remove(int i, int n) 8657: { do { } while ((false) && (i >= 0 && n >= 0 && i + n <= d->size)); 8657: erase(d->begin() + i, d->begin() + i + n); } 8657: template 8657: inline void QVector::remove(int i) 8657: { do { } while ((false) && (i >= 0 && i < d->size)); 8657: erase(d->begin() + i, d->begin() + i + 1); } 8657: template 8657: inline void QVector::prepend(const T &t) 8657: { insert(begin(), 1, t); } 8657: 8657: template 8657: inline void QVector::replace(int i, const T &t) 8657: { 8657: do { } while ((false) && (i >= 0 && i < d->size)); 8657: const T copy(t); 8657: data()[i] = copy; 8657: } 8657: 8657: template 8657: QVector &QVector::operator=(const QVector &v) 8657: { 8657: if (v.d != d) { 8657: QVector tmp(v); 8657: tmp.swap(*this); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: QVector::QVector(int asize) 8657: { 8657: do { } while ((false) && (asize >= 0)); 8657: if (__builtin_expect(!!(asize > 0), true)) { 8657: d = Data::allocate(asize); 8657: do { if (!(d)) qBadAlloc(); } while (false); 8657: d->size = asize; 8657: defaultConstruct(d->begin(), d->end()); 8657: } else { 8657: d = Data::sharedNull(); 8657: } 8657: } 8657: 8657: template 8657: QVector::QVector(int asize, const T &t) 8657: { 8657: do { } while ((false) && (asize >= 0)); 8657: if (asize > 0) { 8657: d = Data::allocate(asize); 8657: do { if (!(d)) qBadAlloc(); } while (false); 8657: d->size = asize; 8657: T* i = d->end(); 8657: while (i != d->begin()) 8657: new (--i) T(t); 8657: } else { 8657: d = Data::sharedNull(); 8657: } 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: QVector::QVector(std::initializer_list args) 8657: { 8657: if (args.size() > 0) { 8657: d = Data::allocate(args.size()); 8657: do { if (!(d)) qBadAlloc(); } while (false); 8657: 8657: 8657: copyConstruct(args.begin(), args.end(), d->begin()); 8657: d->size = int(args.size()); 8657: } else { 8657: d = Data::sharedNull(); 8657: } 8657: } 8657: 8657: 8657: 8657: 8657: 8657: template 8657: void QVector::freeData(Data *x) 8657: { 8657: destruct(x->begin(), x->end()); 8657: Data::deallocate(x); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: void QVector::reallocData(const int asize, const int aalloc, QArrayData::AllocationOptions options) 8657: { 8657: do { } while ((false) && (asize >= 0 && asize <= aalloc)); 8657: Data *x = d; 8657: 8657: const bool isShared = d->ref.isShared(); 8657: 8657: if (aalloc != 0) { 8657: if (aalloc != int(d->alloc) || isShared) { 8657: try { 8657: 8657: x = Data::allocate(aalloc, options); 8657: do { if (!(x)) qBadAlloc(); } while (false); 8657: 8657: 8657: do { } while ((false) && (x->ref.isSharable() || options.testFlag(QArrayData::Unsharable))); 8657: 8657: do { } while ((false) && (!x->ref.isStatic())); 8657: x->size = asize; 8657: 8657: T *srcBegin = d->begin(); 8657: T *srcEnd = asize > d->size ? d->end() : d->begin() + asize; 8657: T *dst = x->begin(); 8657: 8657: if (!QTypeInfoQuery::isRelocatable || (isShared && QTypeInfo::isComplex)) { 8657: 8657: while (srcBegin != srcEnd) { 8657: new (dst++) T(*srcBegin++); 8657: } 8657: } else { 8657: ::memcpy(static_cast(dst), static_cast(srcBegin), (srcEnd - srcBegin) * sizeof(T)); 8657: dst += srcEnd - srcBegin; 8657: 8657: 8657: if (asize < d->size) 8657: destruct(d->begin() + asize, d->end()); 8657: } 8657: 8657: if (asize > d->size) { 8657: 8657: try { 8657: defaultConstruct(dst, x->end()); 8657: } catch (...) { 8657: 8657: destruct(x->begin(), dst); 8657: throw; 8657: } 8657: } 8657: } catch (...) { 8657: Data::deallocate(x); 8657: throw; 8657: } 8657: x->capacityReserved = d->capacityReserved; 8657: } else { 8657: do { } while ((false) && (int(d->alloc) == aalloc)); 8657: do { } while ((false) && (isDetached())); 8657: do { } while ((false) && (x == d)); 8657: if (asize <= d->size) { 8657: destruct(x->begin() + asize, x->end()); 8657: } else { 8657: defaultConstruct(x->end(), x->begin() + asize); 8657: } 8657: x->size = asize; 8657: } 8657: } else { 8657: x = Data::sharedNull(); 8657: } 8657: if (d != x) { 8657: if (!d->ref.deref()) { 8657: if (!QTypeInfoQuery::isRelocatable || !aalloc || (isShared && QTypeInfo::isComplex)) { 8657: 8657: 8657: freeData(d); 8657: } else { 8657: Data::deallocate(d); 8657: } 8657: } 8657: d = x; 8657: } 8657: 8657: do { } while ((false) && (d->data())); 8657: do { } while ((false) && (uint(d->size) <= d->alloc)); 8657: 8657: do { } while ((false) && (d != Data::unsharableEmpty())); 8657: 8657: do { } while ((false) && (aalloc ? d != Data::sharedNull() : d == Data::sharedNull())); 8657: do { } while ((false) && (d->alloc >= uint(aalloc))); 8657: do { } while ((false) && (d->size == asize)); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: template 8657: T QVector::value(int i) const 8657: { 8657: if (uint(i) >= uint(d->size)) { 8657: return T(); 8657: } 8657: return d->begin()[i]; 8657: } 8657: template 8657: T QVector::value(int i, const T &defaultValue) const 8657: { 8657: return uint(i) >= uint(d->size) ? defaultValue : d->begin()[i]; 8657: } 8657: 8657: template 8657: void QVector::append(const T &t) 8657: { 8657: const bool isTooSmall = uint(d->size + 1) > d->alloc; 8657: if (!isDetached() || isTooSmall) { 8657: T copy(t); 8657: QArrayData::AllocationOptions opt(isTooSmall ? QArrayData::Grow : QArrayData::Default); 8657: reallocData(d->size, isTooSmall ? d->size + 1 : d->alloc, opt); 8657: 8657: if (QTypeInfo::isComplex) 8657: new (d->end()) T(std::move(copy)); 8657: else 8657: *d->end() = std::move(copy); 8657: 8657: } else { 8657: if (QTypeInfo::isComplex) 8657: new (d->end()) T(t); 8657: else 8657: *d->end() = t; 8657: } 8657: ++d->size; 8657: } 8657: 8657: 8657: template 8657: void QVector::append(T &&t) 8657: { 8657: const bool isTooSmall = uint(d->size + 1) > d->alloc; 8657: if (!isDetached() || isTooSmall) { 8657: QArrayData::AllocationOptions opt(isTooSmall ? QArrayData::Grow : QArrayData::Default); 8657: reallocData(d->size, isTooSmall ? d->size + 1 : d->alloc, opt); 8657: } 8657: 8657: new (d->end()) T(std::move(t)); 8657: 8657: ++d->size; 8657: } 8657: 8657: 8657: template 8657: void QVector::removeLast() 8657: { 8657: do { } while ((false) && (!isEmpty())); 8657: do { } while ((false) && (d->alloc)); 8657: 8657: if (!d->ref.isShared()) { 8657: --d->size; 8657: if (QTypeInfo::isComplex) 8657: (d->data() + d->size)->~T(); 8657: } else { 8657: reallocData(d->size - 1); 8657: } 8657: } 8657: 8657: template 8657: typename QVector::iterator QVector::insert(iterator before, size_type n, const T &t) 8657: { 8657: do { } while ((false) && (isValidIterator(before))); 8657: 8657: const auto offset = std::distance(d->begin(), before); 8657: if (n != 0) { 8657: const T copy(t); 8657: if (!isDetached() || d->size + n > int(d->alloc)) 8657: reallocData(d->size, d->size + n, QArrayData::Grow); 8657: if (!QTypeInfoQuery::isRelocatable) { 8657: T *b = d->end(); 8657: T *i = d->end() + n; 8657: while (i != b) 8657: new (--i) T; 8657: i = d->end(); 8657: T *j = i + n; 8657: b = d->begin() + offset; 8657: while (i != b) 8657: *--j = *--i; 8657: i = b+n; 8657: while (i != b) 8657: *--i = copy; 8657: } else { 8657: T *b = d->begin() + offset; 8657: T *i = b + n; 8657: memmove(i, b, (d->size - offset) * sizeof(T)); 8657: while (i != b) 8657: new (--i) T(copy); 8657: } 8657: d->size += n; 8657: } 8657: return d->begin() + offset; 8657: } 8657: 8657: template 8657: typename QVector::iterator QVector::erase(iterator abegin, iterator aend) 8657: { 8657: do { } while ((false) && (isValidIterator(abegin))); 8657: do { } while ((false) && (isValidIterator(aend))); 8657: 8657: const auto itemsToErase = aend - abegin; 8657: 8657: if (!itemsToErase) 8657: return abegin; 8657: 8657: do { } while ((false) && (abegin >= d->begin())); 8657: do { } while ((false) && (aend <= d->end())); 8657: do { } while ((false) && (abegin <= aend)); 8657: 8657: const auto itemsUntouched = abegin - d->begin(); 8657: 8657: 8657: 8657: 8657: if (d->alloc) { 8657: detach(); 8657: abegin = d->begin() + itemsUntouched; 8657: aend = abegin + itemsToErase; 8657: if (!QTypeInfoQuery::isRelocatable) { 8657: iterator moveBegin = abegin + itemsToErase; 8657: iterator moveEnd = d->end(); 8657: while (moveBegin != moveEnd) { 8657: if (QTypeInfo::isComplex) 8657: static_cast(abegin)->~T(); 8657: new (abegin++) T(*moveBegin++); 8657: } 8657: if (abegin < d->end()) { 8657: 8657: destruct(abegin, d->end()); 8657: } 8657: } else { 8657: destruct(abegin, aend); 8657: 8657: 8657: 8657: memmove(static_cast(abegin), static_cast(aend), 8657: (d->size - itemsToErase - itemsUntouched) * sizeof(T)); 8657: } 8657: d->size -= int(itemsToErase); 8657: } 8657: return d->begin() + itemsUntouched; 8657: } 8657: 8657: template 8657: bool QVector::operator==(const QVector &v) const 8657: { 8657: if (d == v.d) 8657: return true; 8657: if (d->size != v.d->size) 8657: return false; 8657: const T *vb = v.d->begin(); 8657: const T *b = d->begin(); 8657: const T *e = d->end(); 8657: return std::equal(b, e, (vb)); 8657: } 8657: 8657: template 8657: QVector &QVector::fill(const T &from, int asize) 8657: { 8657: const T copy(from); 8657: resize(asize < 0 ? d->size : asize); 8657: if (d->size) { 8657: T *i = d->end(); 8657: T *b = d->begin(); 8657: while (i != b) 8657: *--i = copy; 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: QVector &QVector::operator+=(const QVector &l) 8657: { 8657: if (d == Data::sharedNull()) { 8657: *this = l; 8657: } else { 8657: uint newSize = d->size + l.d->size; 8657: const bool isTooSmall = newSize > d->alloc; 8657: if (!isDetached() || isTooSmall) { 8657: QArrayData::AllocationOptions opt(isTooSmall ? QArrayData::Grow : QArrayData::Default); 8657: reallocData(d->size, isTooSmall ? newSize : d->alloc, opt); 8657: } 8657: 8657: if (d->alloc) { 8657: T *w = d->begin() + newSize; 8657: T *i = l.d->end(); 8657: T *b = l.d->begin(); 8657: while (i != b) { 8657: if (QTypeInfo::isComplex) 8657: new (--w) T(*--i); 8657: else 8657: *--w = *--i; 8657: } 8657: d->size = newSize; 8657: } 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: int QVector::indexOf(const T &t, int from) const 8657: { 8657: if (from < 0) 8657: from = qMax(from + d->size, 0); 8657: if (from < d->size) { 8657: T* n = d->begin() + from - 1; 8657: T* e = d->end(); 8657: while (++n != e) 8657: if (*n == t) 8657: return n - d->begin(); 8657: } 8657: return -1; 8657: } 8657: 8657: template 8657: int QVector::lastIndexOf(const T &t, int from) const 8657: { 8657: if (from < 0) 8657: from += d->size; 8657: else if (from >= d->size) 8657: from = d->size-1; 8657: if (from >= 0) { 8657: T* b = d->begin(); 8657: T* n = d->begin() + from + 1; 8657: while (n != b) { 8657: if (*--n == t) 8657: return n - b; 8657: } 8657: } 8657: return -1; 8657: } 8657: 8657: template 8657: bool QVector::contains(const T &t) const 8657: { 8657: const T *b = d->begin(); 8657: const T *e = d->end(); 8657: return std::find(b, e, t) != e; 8657: } 8657: 8657: template 8657: int QVector::count(const T &t) const 8657: { 8657: const T *b = d->begin(); 8657: const T *e = d->end(); 8657: return int(std::count(b, e, t)); 8657: } 8657: 8657: template 8657: QVector QVector::mid(int pos, int len) const 8657: { 8657: using namespace QtPrivate; 8657: switch (QContainerImplHelper::mid(d->size, &pos, &len)) { 8657: case QContainerImplHelper::Null: 8657: case QContainerImplHelper::Empty: 8657: return QVector(); 8657: case QContainerImplHelper::Full: 8657: return *this; 8657: case QContainerImplHelper::Subset: 8657: break; 8657: } 8657: 8657: QVector midResult; 8657: midResult.reallocData(0, len); 8657: T *srcFrom = d->begin() + pos; 8657: T *srcTo = d->begin() + pos + len; 8657: midResult.copyConstruct(srcFrom, srcTo, midResult.data()); 8657: midResult.d->size = len; 8657: return midResult; 8657: } 8657: 8657: template 8657: QList QVector::toList() const 8657: { 8657: QList result; 8657: result.reserve(size()); 8657: for (int i = 0; i < size(); ++i) 8657: result.append(at(i)); 8657: return result; 8657: } 8657: 8657: template 8657: QVector QList::toVector() const 8657: { 8657: QVector result(size()); 8657: for (int i = 0; i < size(); ++i) 8657: result[i] = at(i); 8657: return result; 8657: } 8657: 8657: template 8657: QVector QVector::fromList(const QList &list) 8657: { 8657: return list.toVector(); 8657: } 8657: 8657: template 8657: QList QList::fromVector(const QVector &vector) 8657: { 8657: return vector.toList(); 8657: } 8657: 8657: template class QVectorIterator { typedef typename QVector::const_iterator const_iterator; QVector c; const_iterator i; public: inline QVectorIterator(const QVector &container) : c(container), i(c.constBegin()) {} inline QVectorIterator &operator=(const QVector &container) { c = container; i = c.constBegin(); return *this; } inline void toFront() { i = c.constBegin(); } inline void toBack() { i = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline const T &next() { return *i++; } inline const T &peekNext() const { return *i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline const T &previous() { return *--i; } inline const T &peekPrevious() const { const_iterator p = i; return *--p; } inline bool findNext(const T &t) { while (i != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(--i) == t) return true; return false; } }; 8657: template class QMutableVectorIterator { typedef typename QVector::iterator iterator; typedef typename QVector::const_iterator const_iterator; QVector *c; iterator i, n; inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } public: inline QMutableVectorIterator(QVector &container) : c(&container) { i = c->begin(); n = c->end(); } inline QMutableVectorIterator &operator=(QVector &container) { c = &container; i = c->begin(); n = c->end(); return *this; } inline void toFront() { i = c->begin(); n = c->end(); } inline void toBack() { i = c->end(); n = i; } inline bool hasNext() const { return c->constEnd() != const_iterator(i); } inline T &next() { n = i++; return *n; } inline T &peekNext() const { return *i; } inline bool hasPrevious() const { return c->constBegin() != const_iterator(i); } inline T &previous() { n = --i; return *n; } inline T &peekPrevious() const { iterator p = i; return *--p; } inline void remove() { if (c->constEnd() != const_iterator(n)) { i = c->erase(n); n = c->end(); } } inline void setValue(const T &t) const { if (c->constEnd() != const_iterator(n)) *n = t; } inline T &value() { do { } while ((false) && (item_exists())); return *n; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline void insert(const T &t) { n = i = c->insert(i, t); ++i; } inline bool findNext(const T &t) { while (c->constEnd() != const_iterator(n = i)) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (c->constBegin() != const_iterator(i)) if (*(n = --i) == t) return true; n = c->end(); return false; } }; 8657: 8657: template 8657: uint qHash(const QVector &key, uint seed = 0) 8657: noexcept(noexcept(qHashRange(key.cbegin(), key.cend(), seed))) 8657: { 8657: return qHashRange(key.cbegin(), key.cend(), seed); 8657: } 8657: 8657: template 8657: bool operator<(const QVector &lhs, const QVector &rhs) 8657: noexcept(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()))) 8657: 8657: { 8657: return std::lexicographical_compare(lhs.begin(), lhs.end(), 8657: rhs.begin(), rhs.end()); 8657: } 8657: 8657: template 8657: inline bool operator>(const QVector &lhs, const QVector &rhs) 8657: noexcept(noexcept(lhs < rhs)) 8657: { 8657: return rhs < lhs; 8657: } 8657: 8657: template 8657: inline bool operator<=(const QVector &lhs, const QVector &rhs) 8657: noexcept(noexcept(lhs < rhs)) 8657: { 8657: return !(lhs > rhs); 8657: } 8657: 8657: template 8657: inline bool operator>=(const QVector &lhs, const QVector &rhs) 8657: noexcept(noexcept(lhs < rhs)) 8657: { 8657: return !(lhs < rhs); 8657: } 8657: # 1006 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvector.h" 3 4 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVector" 2 3 4 8657: # 38 "/<>/templates/lib/node.h" 2 8657: 8657: 8657: # 39 "/<>/templates/lib/node.h" 8657: namespace Grantlee 8657: { 8657: 8657: class Engine; 8657: class NodeList; 8657: class TemplateImpl; 8657: 8657: class NodePrivate; 8657: # 82 "/<>/templates/lib/node.h" 8657: class __attribute__((visibility("default"))) Node : public QObject 8657: { 8657: 8657: # 84 "/<>/templates/lib/node.h" 3 4 8657: public: 8657: # 84 "/<>/templates/lib/node.h" 8657: #pragma GCC diagnostic push 8657: # 84 "/<>/templates/lib/node.h" 8657: 8657: # 84 "/<>/templates/lib/node.h" 8657: #pragma GCC diagnostic ignored "-Wsuggest-override" 8657: # 84 "/<>/templates/lib/node.h" 8657: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8657: # 84 "/<>/templates/lib/node.h" 8657: #pragma GCC diagnostic ignored "-Wattributes" 8657: # 84 "/<>/templates/lib/node.h" 8657: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8657: # 84 "/<>/templates/lib/node.h" 8657: #pragma GCC diagnostic pop 8657: # 84 "/<>/templates/lib/node.h" 8657: struct QPrivateSignal {}; 8657: 8657: # 85 "/<>/templates/lib/node.h" 8657: public: 8657: 8657: 8657: 8657: 8657: 8657: explicit Node(QObject *parent = 0); 8657: 8657: 8657: 8657: 8657: ~Node() override; 8657: 8657: 8657: 8657: 8657: 8657: 8657: virtual void render(OutputStream *stream, Context *c) const = 0; 8657: 8657: 8657: 8657: 8657: 8657: virtual bool mustBeFirst() 8657: { 8657: return false; 8657: } 8657: 8657: 8657: protected: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: void streamValueInContext(OutputStream *stream, const QVariant &input, 8657: Grantlee::Context *c) const; 8657: 8657: 8657: 8657: 8657: TemplateImpl *containerTemplate() const; 8657: 8657: private: 8657: 8657: # 132 "/<>/templates/lib/node.h" 3 4 8657: inline 8657: # 132 "/<>/templates/lib/node.h" 8657: NodePrivate 8657: # 132 "/<>/templates/lib/node.h" 3 4 8657: * d_func() { return reinterpret_cast< 8657: # 132 "/<>/templates/lib/node.h" 8657: NodePrivate 8657: # 132 "/<>/templates/lib/node.h" 3 4 8657: *>(qGetPtrHelper(d_ptr)); } inline const 8657: # 132 "/<>/templates/lib/node.h" 8657: NodePrivate 8657: # 132 "/<>/templates/lib/node.h" 3 4 8657: * d_func() const { return reinterpret_cast>/templates/lib/node.h" 8657: NodePrivate 8657: # 132 "/<>/templates/lib/node.h" 3 4 8657: *>(qGetPtrHelper(d_ptr)); } friend class 8657: # 132 "/<>/templates/lib/node.h" 8657: NodePrivate 8657: # 132 "/<>/templates/lib/node.h" 3 4 8657: ; 8657: 8657: # 133 "/<>/templates/lib/node.h" 8657: NodePrivate *const d_ptr; 8657: }; 8657: # 154 "/<>/templates/lib/node.h" 8657: class __attribute__((visibility("default"))) NodeList : public QList 8657: { 8657: public: 8657: 8657: 8657: 8657: NodeList(); 8657: 8657: 8657: 8657: 8657: NodeList(const NodeList &list); 8657: 8657: NodeList &operator=(const NodeList &list); 8657: 8657: 8657: 8657: 8657: NodeList(const QList &list); 8657: 8657: 8657: 8657: 8657: ~NodeList(); 8657: 8657: 8657: 8657: 8657: void append(Grantlee::Node *node); 8657: 8657: 8657: 8657: 8657: void append(QList nodeList); 8657: 8657: 8657: 8657: 8657: bool containsNonText() const; 8657: 8657: 8657: 8657: 8657: template QList findChildren() 8657: { 8657: QList children; 8657: QList::const_iterator it; 8657: const QList::const_iterator first = constBegin(); 8657: const QList::const_iterator last = constEnd(); 8657: for (it = first; it != last; ++it) { 8657: T object = qobject_cast(*it); 8657: if (object) { 8657: children << object; 8657: } 8657: children << (*it)->findChildren(); 8657: } 8657: return children; 8657: } 8657: 8657: 8657: 8657: 8657: void render(OutputStream *stream, Context *c) const; 8657: 8657: private: 8657: bool m_containsNonText; 8657: }; 8657: 8657: class AbstractNodeFactoryPrivate; 8657: # 306 "/<>/templates/lib/node.h" 8657: class __attribute__((visibility("default"))) AbstractNodeFactory : public QObject 8657: { 8657: 8657: # 308 "/<>/templates/lib/node.h" 3 4 8657: public: 8657: # 308 "/<>/templates/lib/node.h" 8657: #pragma GCC diagnostic push 8657: # 308 "/<>/templates/lib/node.h" 8657: 8657: # 308 "/<>/templates/lib/node.h" 8657: #pragma GCC diagnostic ignored "-Wsuggest-override" 8657: # 308 "/<>/templates/lib/node.h" 8657: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8657: # 308 "/<>/templates/lib/node.h" 8657: #pragma GCC diagnostic ignored "-Wattributes" 8657: # 308 "/<>/templates/lib/node.h" 8657: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8657: # 308 "/<>/templates/lib/node.h" 8657: #pragma GCC diagnostic pop 8657: # 308 "/<>/templates/lib/node.h" 8657: struct QPrivateSignal {}; 8657: 8657: # 309 "/<>/templates/lib/node.h" 8657: public: 8657: 8657: 8657: 8657: 8657: 8657: explicit AbstractNodeFactory(QObject *parent = 0); 8657: 8657: 8657: 8657: 8657: ~AbstractNodeFactory() override; 8657: # 337 "/<>/templates/lib/node.h" 8657: virtual Node *getNode(const QString &tagContent, Parser *p) const = 0; 8657: # 346 "/<>/templates/lib/node.h" 8657: virtual void setEngine(Engine *) {} 8657: 8657: 8657: protected: 8657: # 365 "/<>/templates/lib/node.h" 8657: QStringList smartSplit(const QString &str) const; 8657: 8657: protected: 8657: 8657: 8657: 8657: 8657: 8657: 8657: QList getFilterExpressionList(const QStringList &list, 8657: Parser *p) const; 8657: 8657: private: 8657: 8657: # 378 "/<>/templates/lib/node.h" 3 4 8657: inline 8657: # 378 "/<>/templates/lib/node.h" 8657: AbstractNodeFactoryPrivate 8657: # 378 "/<>/templates/lib/node.h" 3 4 8657: * d_func() { return reinterpret_cast< 8657: # 378 "/<>/templates/lib/node.h" 8657: AbstractNodeFactoryPrivate 8657: # 378 "/<>/templates/lib/node.h" 3 4 8657: *>(qGetPtrHelper(d_ptr)); } inline const 8657: # 378 "/<>/templates/lib/node.h" 8657: AbstractNodeFactoryPrivate 8657: # 378 "/<>/templates/lib/node.h" 3 4 8657: * d_func() const { return reinterpret_cast>/templates/lib/node.h" 8657: AbstractNodeFactoryPrivate 8657: # 378 "/<>/templates/lib/node.h" 3 4 8657: *>(qGetPtrHelper(d_ptr)); } friend class 8657: # 378 "/<>/templates/lib/node.h" 8657: AbstractNodeFactoryPrivate 8657: # 378 "/<>/templates/lib/node.h" 3 4 8657: ; 8657: 8657: # 379 "/<>/templates/lib/node.h" 8657: AbstractNodeFactoryPrivate *const d_ptr; 8657: }; 8657: } 8657: # 27 "/<>/templates/lib/template.h" 2 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QSharedPointer" 1 3 4 8657: # 29 "/<>/templates/lib/template.h" 2 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QStringList" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringlist.h" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QStringList" 2 3 4 8657: # 30 "/<>/templates/lib/template.h" 2 8657: 8657: namespace Grantlee 8657: { 8657: class Context; 8657: class Engine; 8657: class TemplateImpl; 8657: class OutputStream; 8657: 8657: 8657: 8657: 8657: typedef QSharedPointer Template; 8657: 8657: 8657: class TemplatePrivate; 8657: # 94 "/<>/templates/lib/template.h" 8657: class __attribute__((visibility("default"))) TemplateImpl : public QObject 8657: { 8657: 8657: # 96 "/<>/templates/lib/template.h" 3 4 8657: public: 8657: # 96 "/<>/templates/lib/template.h" 8657: #pragma GCC diagnostic push 8657: # 96 "/<>/templates/lib/template.h" 8657: 8657: # 96 "/<>/templates/lib/template.h" 8657: #pragma GCC diagnostic ignored "-Wsuggest-override" 8657: # 96 "/<>/templates/lib/template.h" 8657: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8657: # 96 "/<>/templates/lib/template.h" 8657: #pragma GCC diagnostic ignored "-Wattributes" 8657: # 96 "/<>/templates/lib/template.h" 8657: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8657: # 96 "/<>/templates/lib/template.h" 8657: #pragma GCC diagnostic pop 8657: # 96 "/<>/templates/lib/template.h" 8657: struct QPrivateSignal {}; 8657: 8657: # 97 "/<>/templates/lib/template.h" 8657: public: 8657: ~TemplateImpl() override; 8657: 8657: 8657: 8657: 8657: QString render(Context *c) const; 8657: 8657: 8657: 8657: 8657: OutputStream *render(OutputStream *stream, Context *c) const; 8657: 8657: 8657: 8657: 8657: 8657: NodeList nodeList() const; 8657: 8657: 8657: 8657: 8657: void setNodeList(const NodeList &list); 8657: 8657: 8657: 8657: 8657: 8657: Error error() const; 8657: 8657: 8657: 8657: 8657: QString errorString() const; 8657: 8657: 8657: 8657: 8657: Engine const *engine() const; 8657: 8657: 8657: protected: 8657: TemplateImpl(Engine const *engine, QObject *parent = 0); 8657: TemplateImpl(Engine const *engine, bool smartTrim, QObject *parent = 0); 8657: 8657: void setContent(const QString &templateString); 8657: 8657: 8657: private: 8657: 8657: 8657: 8657: using QObject::setParent; 8657: 8657: private: 8657: 8657: # 152 "/<>/templates/lib/template.h" 3 4 8657: inline 8657: # 152 "/<>/templates/lib/template.h" 8657: TemplatePrivate 8657: # 152 "/<>/templates/lib/template.h" 3 4 8657: * d_func() { return reinterpret_cast< 8657: # 152 "/<>/templates/lib/template.h" 8657: TemplatePrivate 8657: # 152 "/<>/templates/lib/template.h" 3 4 8657: *>(qGetPtrHelper(d_ptr)); } inline const 8657: # 152 "/<>/templates/lib/template.h" 8657: TemplatePrivate 8657: # 152 "/<>/templates/lib/template.h" 3 4 8657: * d_func() const { return reinterpret_cast>/templates/lib/template.h" 8657: TemplatePrivate 8657: # 152 "/<>/templates/lib/template.h" 3 4 8657: *>(qGetPtrHelper(d_ptr)); } friend class 8657: # 152 "/<>/templates/lib/template.h" 8657: TemplatePrivate 8657: # 152 "/<>/templates/lib/template.h" 3 4 8657: ; 8657: 8657: # 153 "/<>/templates/lib/template.h" 8657: TemplatePrivate *const d_ptr; 8657: 8657: friend class Engine; 8657: friend class Parser; 8657: 8657: }; 8657: } 8657: # 25 "/<>/templates/lib/engine.h" 2 8657: # 1 "/<>/templates/lib/templateloader.h" 1 8657: # 24 "/<>/templates/lib/templateloader.h" 8657: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8657: # 25 "/<>/templates/lib/templateloader.h" 2 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QSharedPointer" 1 3 4 8657: # 28 "/<>/templates/lib/templateloader.h" 2 8657: 8657: namespace Grantlee 8657: { 8657: 8657: class AbstractLocalizer; 8657: # 49 "/<>/templates/lib/templateloader.h" 8657: class __attribute__((visibility("default"))) AbstractTemplateLoader 8657: { 8657: public: 8657: 8657: 8657: 8657: virtual ~AbstractTemplateLoader(); 8657: 8657: 8657: 8657: 8657: 8657: 8657: virtual Template loadByName(const QString &name, 8657: Engine const *engine) const = 0; 8657: 8657: 8657: 8657: 8657: virtual QPair 8657: getMediaUri(const QString &fileName) const = 0; 8657: 8657: 8657: 8657: 8657: virtual bool canLoadTemplate(const QString &name) const = 0; 8657: }; 8657: 8657: 8657: 8657: class FileSystemTemplateLoaderPrivate; 8657: # 133 "/<>/templates/lib/templateloader.h" 8657: class __attribute__((visibility("default"))) FileSystemTemplateLoader 8657: : public AbstractTemplateLoader 8657: { 8657: public: 8657: 8657: 8657: 8657: FileSystemTemplateLoader(const QSharedPointer localizer 8657: = QSharedPointer()); 8657: 8657: 8657: 8657: 8657: ~FileSystemTemplateLoader() override; 8657: 8657: Template loadByName(const QString &name, Engine const *engine) const override; 8657: 8657: bool canLoadTemplate(const QString &name) const override; 8657: 8657: QPair getMediaUri(const QString &fileName) const override; 8657: 8657: 8657: 8657: 8657: void setTheme(const QString &themeName); 8657: 8657: 8657: 8657: 8657: QString themeName() const; 8657: 8657: 8657: 8657: 8657: void setTemplateDirs(const QStringList &dirs); 8657: 8657: 8657: 8657: 8657: QStringList templateDirs() const; 8657: 8657: private: 8657: 8657: # 175 "/<>/templates/lib/templateloader.h" 3 4 8657: inline 8657: # 175 "/<>/templates/lib/templateloader.h" 8657: FileSystemTemplateLoaderPrivate 8657: # 175 "/<>/templates/lib/templateloader.h" 3 4 8657: * d_func() { return reinterpret_cast< 8657: # 175 "/<>/templates/lib/templateloader.h" 8657: FileSystemTemplateLoaderPrivate 8657: # 175 "/<>/templates/lib/templateloader.h" 3 4 8657: *>(qGetPtrHelper(d_ptr)); } inline const 8657: # 175 "/<>/templates/lib/templateloader.h" 8657: FileSystemTemplateLoaderPrivate 8657: # 175 "/<>/templates/lib/templateloader.h" 3 4 8657: * d_func() const { return reinterpret_cast>/templates/lib/templateloader.h" 8657: FileSystemTemplateLoaderPrivate 8657: # 175 "/<>/templates/lib/templateloader.h" 3 4 8657: *>(qGetPtrHelper(d_ptr)); } friend class 8657: # 175 "/<>/templates/lib/templateloader.h" 8657: FileSystemTemplateLoaderPrivate 8657: # 175 "/<>/templates/lib/templateloader.h" 3 4 8657: ; 8657: 8657: # 176 "/<>/templates/lib/templateloader.h" 8657: FileSystemTemplateLoaderPrivate *const d_ptr; 8657: }; 8657: # 190 "/<>/templates/lib/templateloader.h" 8657: class __attribute__((visibility("default"))) InMemoryTemplateLoader 8657: : public AbstractTemplateLoader 8657: { 8657: public: 8657: InMemoryTemplateLoader(); 8657: ~InMemoryTemplateLoader() override; 8657: 8657: Template loadByName(const QString &name, Engine const *engine) const override; 8657: 8657: bool canLoadTemplate(const QString &name) const override; 8657: 8657: QPair getMediaUri(const QString &fileName) const override; 8657: # 217 "/<>/templates/lib/templateloader.h" 8657: void setTemplate(const QString &name, const QString &content); 8657: 8657: private: 8657: QHash m_namedTemplates; 8657: }; 8657: } 8657: # 26 "/<>/templates/lib/engine.h" 2 8657: 8657: namespace Grantlee 8657: { 8657: class TagLibraryInterface; 8657: 8657: class EnginePrivate; 8657: # 123 "/<>/templates/lib/engine.h" 8657: class __attribute__((visibility("default"))) Engine : public QObject 8657: { 8657: 8657: # 125 "/<>/templates/lib/engine.h" 3 4 8657: public: 8657: # 125 "/<>/templates/lib/engine.h" 8657: #pragma GCC diagnostic push 8657: # 125 "/<>/templates/lib/engine.h" 8657: 8657: # 125 "/<>/templates/lib/engine.h" 8657: #pragma GCC diagnostic ignored "-Wsuggest-override" 8657: # 125 "/<>/templates/lib/engine.h" 8657: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8657: # 125 "/<>/templates/lib/engine.h" 8657: #pragma GCC diagnostic ignored "-Wattributes" 8657: # 125 "/<>/templates/lib/engine.h" 8657: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8657: # 125 "/<>/templates/lib/engine.h" 8657: #pragma GCC diagnostic pop 8657: # 125 "/<>/templates/lib/engine.h" 8657: struct QPrivateSignal {}; 8657: 8657: # 126 "/<>/templates/lib/engine.h" 8657: public: 8657: 8657: 8657: 8657: Engine(QObject *parent = 0); 8657: 8657: 8657: 8657: 8657: ~Engine() override; 8657: 8657: 8657: 8657: 8657: QList> templateLoaders(); 8657: 8657: 8657: 8657: 8657: void addTemplateLoader(QSharedPointer loader); 8657: # 155 "/<>/templates/lib/engine.h" 8657: void setPluginPaths(const QStringList &dirs); 8657: 8657: 8657: 8657: 8657: void addPluginPath(const QString &dir); 8657: 8657: 8657: 8657: 8657: void removePluginPath(const QString &dir); 8657: 8657: 8657: 8657: 8657: QStringList pluginPaths() const; 8657: # 185 "/<>/templates/lib/engine.h" 8657: QPair mediaUri(const QString &fileName) const; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: Template loadByName(const QString &name) const; 8657: # 202 "/<>/templates/lib/engine.h" 8657: Template newTemplate(const QString &content, const QString &name) const; 8657: 8657: 8657: 8657: 8657: QStringList defaultLibraries() const; 8657: 8657: 8657: 8657: 8657: 8657: void addDefaultLibrary(const QString &libName); 8657: 8657: 8657: 8657: 8657: 8657: 8657: void removeDefaultLibrary(const QString &libName); 8657: # 230 "/<>/templates/lib/engine.h" 8657: bool smartTrimEnabled() const; 8657: 8657: 8657: 8657: 8657: 8657: 8657: void setSmartTrimEnabled(bool enabled); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: void loadDefaultLibraries(); 8657: # 255 "/<>/templates/lib/engine.h" 8657: TagLibraryInterface *loadLibrary(const QString &name); 8657: 8657: 8657: private: 8657: 8657: # 259 "/<>/templates/lib/engine.h" 3 4 8657: inline 8657: # 259 "/<>/templates/lib/engine.h" 8657: EnginePrivate 8657: # 259 "/<>/templates/lib/engine.h" 3 4 8657: * d_func() { return reinterpret_cast< 8657: # 259 "/<>/templates/lib/engine.h" 8657: EnginePrivate 8657: # 259 "/<>/templates/lib/engine.h" 3 4 8657: *>(qGetPtrHelper(d_ptr)); } inline const 8657: # 259 "/<>/templates/lib/engine.h" 8657: EnginePrivate 8657: # 259 "/<>/templates/lib/engine.h" 3 4 8657: * d_func() const { return reinterpret_cast>/templates/lib/engine.h" 8657: EnginePrivate 8657: # 259 "/<>/templates/lib/engine.h" 3 4 8657: *>(qGetPtrHelper(d_ptr)); } friend class 8657: # 259 "/<>/templates/lib/engine.h" 8657: EnginePrivate 8657: # 259 "/<>/templates/lib/engine.h" 3 4 8657: ; 8657: 8657: # 260 "/<>/templates/lib/engine.h" 8657: EnginePrivate *const d_ptr; 8657: }; 8657: } 8657: # 23 "/<>/templates/tests/testgenerictypes.cpp" 2 8657: # 1 "/<>/obj-arm-linux-gnueabihf/templates/tests/grantlee_paths.h" 1 8657: # 24 "/<>/templates/tests/testgenerictypes.cpp" 2 8657: # 1 "/<>/templates/lib/metatype.h" 1 8657: # 25 "/<>/templates/lib/metatype.h" 8657: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8657: # 26 "/<>/templates/lib/metatype.h" 2 8657: 8657: # 1 "/<>/templates/lib/typeaccessor.h" 1 8657: # 24 "/<>/templates/lib/typeaccessor.h" 8657: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8657: # 25 "/<>/templates/lib/typeaccessor.h" 2 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QObject" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QObject" 2 3 4 8657: # 27 "/<>/templates/lib/typeaccessor.h" 2 8657: 8657: 8657: 8657: namespace Grantlee 8657: { 8657: 8657: 8657: template struct TypeAccessor { 8657: static QVariant lookUp(const T object, const QString &property); 8657: }; 8657: 8657: template struct TypeAccessor { 8657: static QVariant lookUp(const T *const object, const QString &property); 8657: }; 8657: 8657: template struct TypeAccessor { 8657: static QVariant lookUp(const T &object, const QString &property); 8657: }; 8657: 8657: } 8657: # 28 "/<>/templates/lib/metatype.h" 2 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVariant" 1 3 4 8657: # 30 "/<>/templates/lib/metatype.h" 2 8657: 8657: 8657: 8657: namespace Grantlee 8657: { 8657: # 52 "/<>/templates/lib/metatype.h" 8657: class __attribute__((visibility("default"))) MetaType 8657: { 8657: public: 8657: 8657: 8657: 8657: typedef QVariant (*LookupFunction)(const QVariant &, const QString &); 8657: 8657: 8657: 8657: 8657: static void registerLookUpOperator(int id, LookupFunction f); 8657: 8657: 8657: 8657: 8657: static void internalLock(); 8657: 8657: 8657: 8657: 8657: static void internalUnlock(); 8657: 8657: 8657: 8657: 8657: static QVariant lookup(const QVariant &object, const QString &property); 8657: 8657: 8657: 8657: 8657: static bool lookupAlreadyRegistered(int id); 8657: 8657: private: 8657: MetaType(); 8657: }; 8657: 8657: 8657: namespace 8657: { 8657: 8657: 8657: 8657: 8657: template struct LookupTrait { 8657: static QVariant doLookUp(const QVariant &object, const QString &property) 8657: { 8657: typedef typename Grantlee::TypeAccessor Accessor; 8657: return Accessor::lookUp(object.value(), property); 8657: } 8657: }; 8657: 8657: template 8657: struct LookupTrait { 8657: static QVariant doLookUp(const QVariant &object, const QString &property) 8657: { 8657: typedef typename Grantlee::TypeAccessor Accessor; 8657: return Accessor::lookUp(object.value(), property); 8657: } 8657: }; 8657: 8657: template static int doRegister(int id) 8657: { 8657: if (MetaType::lookupAlreadyRegistered(id)) 8657: return id; 8657: 8657: QVariant (*lf)(const QVariant &, const QString &) 8657: = LookupTrait::doLookUp; 8657: 8657: MetaType::registerLookUpOperator( 8657: id, reinterpret_cast(lf)); 8657: 8657: return id; 8657: } 8657: 8657: 8657: 8657: 8657: template struct InternalRegisterType { 8657: static int doReg() 8657: { 8657: const int id = qMetaTypeId(); 8657: return doRegister(id); 8657: } 8657: }; 8657: 8657: template 8657: struct InternalRegisterType { 8657: static int doReg() 8657: { 8657: const int id = qMetaTypeId(); 8657: return doRegister(id); 8657: } 8657: }; 8657: } 8657: # 184 "/<>/templates/lib/metatype.h" 8657: template int registerMetaType() 8657: { 8657: MetaType::internalLock(); 8657: 8657: const int id = InternalRegisterType::doReg(); 8657: 8657: MetaType::internalUnlock(); 8657: 8657: return id; 8657: } 8657: # 202 "/<>/templates/lib/metatype.h" 8657: template int registerMetaType() 8657: { 8657: return registerMetaType(); 8657: } 8657: 8657: 8657: } 8657: # 25 "/<>/templates/tests/testgenerictypes.cpp" 2 8657: # 1 "/<>/templates/lib/template.h" 1 8657: # 26 "/<>/templates/tests/testgenerictypes.cpp" 2 8657: # 1 "/<>/templates/tests/test_macros.h" 1 8657: # 29 "/<>/templates/tests/test_macros.h" 8657: # 1 "/<>/templates/tests/qtunorderedmap.h" 1 8657: # 24 "/<>/templates/tests/qtunorderedmap.h" 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QHash" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhash.h" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QHash" 2 3 4 8657: # 25 "/<>/templates/tests/qtunorderedmap.h" 2 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/tr1/unordered_map" 1 3 8657: # 32 "/usr/include/c++/8/tr1/unordered_map" 3 8657: 8657: # 33 "/usr/include/c++/8/tr1/unordered_map" 3 8657: 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/tr1/type_traits" 1 3 8657: # 32 "/usr/include/c++/8/tr1/type_traits" 3 8657: 8657: # 33 "/usr/include/c++/8/tr1/type_traits" 3 8657: 8657: 8657: 8657: 8657: # 36 "/usr/include/c++/8/tr1/type_traits" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: namespace tr1 8657: { 8657: 8657: 8657: 8657: 8657: 8657: struct __sfinae_types 8657: { 8657: typedef char __one; 8657: typedef struct { char __arr[2]; } __two; 8657: }; 8657: # 70 "/usr/include/c++/8/tr1/type_traits" 3 8657: template 8657: struct integral_constant 8657: { 8657: static const _Tp value = __v; 8657: typedef _Tp value_type; 8657: typedef integral_constant<_Tp, __v> type; 8657: }; 8657: 8657: 8657: typedef integral_constant true_type; 8657: 8657: 8657: typedef integral_constant false_type; 8657: 8657: template 8657: const _Tp integral_constant<_Tp, __v>::value; 8657: 8657: 8657: template 8657: struct remove_cv; 8657: 8657: template 8657: struct __is_void_helper 8657: : public false_type { }; 8657: template<> struct __is_void_helper : public integral_constant { }; 8657: 8657: 8657: 8657: 8657: template 8657: struct is_void 8657: : public integral_constant::type>::value)> 8657: { }; 8657: 8657: template 8657: struct __is_integral_helper 8657: : public false_type { }; 8657: template<> struct __is_integral_helper : public integral_constant { }; 8657: template<> struct __is_integral_helper : public integral_constant { }; 8657: template<> struct __is_integral_helper : public integral_constant { }; 8657: template<> struct __is_integral_helper : public integral_constant { }; 8657: 8657: template<> struct __is_integral_helper : public integral_constant { }; 8657: 8657: template<> struct __is_integral_helper : public integral_constant { }; 8657: template<> struct __is_integral_helper : public integral_constant { }; 8657: template<> struct __is_integral_helper : public integral_constant { }; 8657: template<> struct __is_integral_helper : public integral_constant { }; 8657: template<> struct __is_integral_helper : public integral_constant { }; 8657: template<> struct __is_integral_helper : public integral_constant { }; 8657: template<> struct __is_integral_helper : public integral_constant { }; 8657: template<> struct __is_integral_helper : public integral_constant { }; 8657: 8657: 8657: template 8657: struct is_integral 8657: : public integral_constant::type>::value)> 8657: { }; 8657: 8657: template 8657: struct __is_floating_point_helper 8657: : public false_type { }; 8657: template<> struct __is_floating_point_helper : public integral_constant { }; 8657: template<> struct __is_floating_point_helper : public integral_constant { }; 8657: template<> struct __is_floating_point_helper : public integral_constant { }; 8657: 8657: 8657: template 8657: struct is_floating_point 8657: : public integral_constant::type>::value)> 8657: { }; 8657: 8657: 8657: template 8657: struct is_array 8657: : public false_type { }; 8657: 8657: template 8657: struct is_array<_Tp[_Size]> 8657: : public true_type { }; 8657: 8657: template 8657: struct is_array<_Tp[]> 8657: : public true_type { }; 8657: 8657: template 8657: struct __is_pointer_helper 8657: : public false_type { }; 8657: template struct __is_pointer_helper<_Tp*> : public integral_constant { }; 8657: 8657: 8657: template 8657: struct is_pointer 8657: : public integral_constant::type>::value)> 8657: { }; 8657: 8657: 8657: template 8657: struct is_reference; 8657: 8657: 8657: template 8657: struct is_function; 8657: 8657: template 8657: struct __is_member_object_pointer_helper 8657: : public false_type { }; 8657: template struct __is_member_object_pointer_helper<_Tp _Cp::*> : public integral_constant::value> { }; 8657: 8657: 8657: 8657: template 8657: struct is_member_object_pointer 8657: : public integral_constant::type>::value)> 8657: { }; 8657: 8657: template 8657: struct __is_member_function_pointer_helper 8657: : public false_type { }; 8657: template struct __is_member_function_pointer_helper<_Tp _Cp::*> : public integral_constant::value> { }; 8657: 8657: 8657: 8657: template 8657: struct is_member_function_pointer 8657: : public integral_constant::type>::value)> 8657: { }; 8657: 8657: 8657: template 8657: struct is_enum 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: template 8657: struct is_union 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: template 8657: struct is_class 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: template 8657: struct is_function 8657: : public false_type { }; 8657: template 8657: struct is_function<_Res(_ArgTypes...)> 8657: : public true_type { }; 8657: template 8657: struct is_function<_Res(_ArgTypes......)> 8657: : public true_type { }; 8657: template 8657: struct is_function<_Res(_ArgTypes...) const> 8657: : public true_type { }; 8657: template 8657: struct is_function<_Res(_ArgTypes......) const> 8657: : public true_type { }; 8657: template 8657: struct is_function<_Res(_ArgTypes...) volatile> 8657: : public true_type { }; 8657: template 8657: struct is_function<_Res(_ArgTypes......) volatile> 8657: : public true_type { }; 8657: template 8657: struct is_function<_Res(_ArgTypes...) const volatile> 8657: : public true_type { }; 8657: template 8657: struct is_function<_Res(_ArgTypes......) const volatile> 8657: : public true_type { }; 8657: 8657: 8657: 8657: 8657: template 8657: struct is_arithmetic 8657: : public integral_constant::value 8657: || is_floating_point<_Tp>::value)> 8657: { }; 8657: 8657: 8657: template 8657: struct is_fundamental 8657: : public integral_constant::value 8657: || is_void<_Tp>::value)> 8657: { }; 8657: 8657: 8657: template 8657: struct is_object 8657: : public integral_constant::value 8657: || is_reference<_Tp>::value 8657: || is_void<_Tp>::value)> 8657: { }; 8657: 8657: 8657: template 8657: struct is_member_pointer; 8657: 8657: 8657: template 8657: struct is_scalar 8657: : public integral_constant::value 8657: || is_enum<_Tp>::value 8657: || is_pointer<_Tp>::value 8657: || is_member_pointer<_Tp>::value)> 8657: { }; 8657: 8657: 8657: template 8657: struct is_compound 8657: : public integral_constant::value> { }; 8657: 8657: 8657: template 8657: struct __is_member_pointer_helper 8657: : public false_type { }; 8657: template struct __is_member_pointer_helper<_Tp _Cp::*> : public integral_constant { }; 8657: 8657: template 8657: struct is_member_pointer 8657: : public integral_constant::type>::value)> 8657: { }; 8657: 8657: 8657: 8657: template 8657: struct is_const 8657: : public false_type { }; 8657: 8657: template 8657: struct is_const<_Tp const> 8657: : public true_type { }; 8657: 8657: 8657: template 8657: struct is_volatile 8657: : public false_type { }; 8657: 8657: template 8657: struct is_volatile<_Tp volatile> 8657: : public true_type { }; 8657: 8657: 8657: template 8657: struct is_empty 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: template 8657: struct is_polymorphic 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: template 8657: struct is_abstract 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: template 8657: struct has_virtual_destructor 8657: : public integral_constant 8657: { }; 8657: 8657: 8657: template 8657: struct alignment_of 8657: : public integral_constant { }; 8657: 8657: 8657: template 8657: struct rank 8657: : public integral_constant { }; 8657: 8657: template 8657: struct rank<_Tp[_Size]> 8657: : public integral_constant::value> { }; 8657: 8657: template 8657: struct rank<_Tp[]> 8657: : public integral_constant::value> { }; 8657: 8657: 8657: template 8657: struct extent 8657: : public integral_constant { }; 8657: 8657: template 8657: struct extent<_Tp[_Size], _Uint> 8657: : public integral_constant::value> 8657: { }; 8657: 8657: template 8657: struct extent<_Tp[], _Uint> 8657: : public integral_constant::value> 8657: { }; 8657: 8657: 8657: 8657: 8657: template 8657: struct is_same 8657: : public false_type { }; 8657: 8657: template 8657: struct is_same<_Tp, _Tp> 8657: : public true_type { }; 8657: 8657: 8657: 8657: 8657: template 8657: struct remove_const 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct remove_const<_Tp const> 8657: { typedef _Tp type; }; 8657: 8657: 8657: template 8657: struct remove_volatile 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct remove_volatile<_Tp volatile> 8657: { typedef _Tp type; }; 8657: 8657: 8657: template 8657: struct remove_cv 8657: { 8657: typedef typename 8657: remove_const::type>::type type; 8657: }; 8657: 8657: 8657: template 8657: struct add_const 8657: { typedef _Tp const type; }; 8657: 8657: 8657: template 8657: struct add_volatile 8657: { typedef _Tp volatile type; }; 8657: 8657: 8657: template 8657: struct add_cv 8657: { 8657: typedef typename 8657: add_const::type>::type type; 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: struct remove_extent 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct remove_extent<_Tp[_Size]> 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct remove_extent<_Tp[]> 8657: { typedef _Tp type; }; 8657: 8657: 8657: template 8657: struct remove_all_extents 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct remove_all_extents<_Tp[_Size]> 8657: { typedef typename remove_all_extents<_Tp>::type type; }; 8657: 8657: template 8657: struct remove_all_extents<_Tp[]> 8657: { typedef typename remove_all_extents<_Tp>::type type; }; 8657: 8657: 8657: 8657: template 8657: struct __remove_pointer_helper 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct __remove_pointer_helper<_Tp, _Up*> 8657: { typedef _Up type; }; 8657: 8657: 8657: template 8657: struct remove_pointer 8657: : public __remove_pointer_helper<_Tp, typename remove_cv<_Tp>::type> 8657: { }; 8657: 8657: template 8657: struct remove_reference; 8657: 8657: 8657: template 8657: struct add_pointer 8657: { typedef typename remove_reference<_Tp>::type* type; }; 8657: 8657: template 8657: struct is_reference 8657: : public false_type { }; 8657: 8657: template 8657: struct is_reference<_Tp&> 8657: : public true_type { }; 8657: 8657: template 8657: struct is_pod 8657: : public integral_constant::value> 8657: { }; 8657: 8657: template 8657: struct has_trivial_constructor 8657: : public integral_constant::value> 8657: { }; 8657: 8657: template 8657: struct has_trivial_copy 8657: : public integral_constant::value> 8657: { }; 8657: 8657: template 8657: struct has_trivial_assign 8657: : public integral_constant::value> 8657: { }; 8657: 8657: template 8657: struct has_trivial_destructor 8657: : public integral_constant::value> 8657: { }; 8657: 8657: template 8657: struct has_nothrow_constructor 8657: : public integral_constant::value> 8657: { }; 8657: 8657: template 8657: struct has_nothrow_copy 8657: : public integral_constant::value> 8657: { }; 8657: 8657: template 8657: struct has_nothrow_assign 8657: : public integral_constant::value> 8657: { }; 8657: 8657: template 8657: struct __is_signed_helper 8657: : public false_type { }; 8657: template<> struct __is_signed_helper : public integral_constant { }; 8657: template<> struct __is_signed_helper : public integral_constant { }; 8657: template<> struct __is_signed_helper : public integral_constant { }; 8657: template<> struct __is_signed_helper : public integral_constant { }; 8657: template<> struct __is_signed_helper : public integral_constant { }; 8657: 8657: template 8657: struct is_signed 8657: : public integral_constant::type>::value)> 8657: { }; 8657: 8657: template 8657: struct __is_unsigned_helper 8657: : public false_type { }; 8657: template<> struct __is_unsigned_helper : public integral_constant { }; 8657: template<> struct __is_unsigned_helper : public integral_constant { }; 8657: template<> struct __is_unsigned_helper : public integral_constant { }; 8657: template<> struct __is_unsigned_helper : public integral_constant { }; 8657: template<> struct __is_unsigned_helper : public integral_constant { }; 8657: 8657: template 8657: struct is_unsigned 8657: : public integral_constant::type>::value)> 8657: { }; 8657: 8657: template 8657: struct __is_base_of_helper 8657: { 8657: typedef typename remove_cv<_Base>::type _NoCv_Base; 8657: typedef typename remove_cv<_Derived>::type _NoCv_Derived; 8657: static const bool __value = (is_same<_Base, _Derived>::value 8657: || (__is_base_of(_Base, _Derived) 8657: && !is_same<_NoCv_Base, 8657: _NoCv_Derived>::value)); 8657: }; 8657: 8657: template 8657: struct is_base_of 8657: : public integral_constant::__value> 8657: { }; 8657: 8657: template 8657: struct __is_convertible_simple 8657: : public __sfinae_types 8657: { 8657: private: 8657: static __one __test(_To); 8657: static __two __test(...); 8657: static _From __makeFrom(); 8657: 8657: public: 8657: static const bool __value = sizeof(__test(__makeFrom())) == 1; 8657: }; 8657: 8657: template 8657: struct add_reference; 8657: 8657: template 8657: struct __is_int_or_cref 8657: { 8657: typedef typename remove_reference<_Tp>::type __rr_Tp; 8657: static const bool __value = (is_integral<_Tp>::value 8657: || (is_integral<__rr_Tp>::value 8657: && is_const<__rr_Tp>::value 8657: && !is_volatile<__rr_Tp>::value)); 8657: }; 8657: 8657: template::value || is_void<_To>::value 8657: || is_function<_To>::value || is_array<_To>::value 8657: 8657: || (is_floating_point::type>::value 8657: && __is_int_or_cref<_To>::__value))> 8657: struct __is_convertible_helper 8657: { 8657: 8657: static const bool __value = (__is_convertible_simple::type, _To>::__value); 8657: }; 8657: 8657: template 8657: struct __is_convertible_helper<_From, _To, true> 8657: { static const bool __value = (is_void<_To>::value 8657: || (__is_int_or_cref<_To>::__value 8657: && !is_void<_From>::value)); }; 8657: 8657: template 8657: struct is_convertible 8657: : public integral_constant::__value> 8657: { }; 8657: 8657: 8657: template 8657: struct remove_reference 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct remove_reference<_Tp&> 8657: { typedef _Tp type; }; 8657: 8657: 8657: template::value 8657: || is_reference<_Tp>::value)> 8657: struct __add_reference_helper 8657: { typedef _Tp& type; }; 8657: 8657: template 8657: struct __add_reference_helper<_Tp, true> 8657: { typedef _Tp type; }; 8657: 8657: template 8657: struct add_reference 8657: : public __add_reference_helper<_Tp> 8657: { }; 8657: 8657: 8657: template 8657: struct aligned_storage 8657: { 8657: union type 8657: { 8657: unsigned char __data[_Len]; 8657: struct __attribute__((__aligned__((_Align)))) { } __align; 8657: }; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: } 8657: 8657: 8657: } 8657: # 40 "/usr/include/c++/8/tr1/unordered_map" 2 3 8657: # 1 "/usr/include/c++/8/tr1/functional_hash.h" 1 3 8657: # 33 "/usr/include/c++/8/tr1/functional_hash.h" 3 8657: 8657: # 34 "/usr/include/c++/8/tr1/functional_hash.h" 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: namespace tr1 8657: { 8657: 8657: 8657: 8657: template 8657: struct hash : public std::unary_function<_Tp, size_t> 8657: { 8657: size_t 8657: operator()(_Tp __val) const; 8657: }; 8657: 8657: 8657: template 8657: struct hash<_Tp*> : public std::unary_function<_Tp*, size_t> 8657: { 8657: size_t 8657: operator()(_Tp* __p) const 8657: { return reinterpret_cast(__p); } 8657: }; 8657: # 67 "/usr/include/c++/8/tr1/functional_hash.h" 3 8657: template<> inline size_t hash::operator()(bool __val) const { return static_cast(__val); }; 8657: template<> inline size_t hash::operator()(char __val) const { return static_cast(__val); }; 8657: template<> inline size_t hash::operator()(signed char __val) const { return static_cast(__val); }; 8657: template<> inline size_t hash::operator()(unsigned char __val) const { return static_cast(__val); }; 8657: template<> inline size_t hash::operator()(wchar_t __val) const { return static_cast(__val); }; 8657: template<> inline size_t hash::operator()(short __val) const { return static_cast(__val); }; 8657: template<> inline size_t hash::operator()(int __val) const { return static_cast(__val); }; 8657: template<> inline size_t hash::operator()(long __val) const { return static_cast(__val); }; 8657: template<> inline size_t hash::operator()(long long __val) const { return static_cast(__val); }; 8657: template<> inline size_t hash::operator()(unsigned short __val) const { return static_cast(__val); }; 8657: template<> inline size_t hash::operator()(unsigned int __val) const { return static_cast(__val); }; 8657: template<> inline size_t hash::operator()(unsigned long __val) const { return static_cast(__val); }; 8657: template<> inline size_t hash::operator()(unsigned long long __val) const { return static_cast(__val); }; 8657: # 91 "/usr/include/c++/8/tr1/functional_hash.h" 3 8657: template 8657: struct _Fnv_hash_base 8657: { 8657: template 8657: static size_t 8657: hash(const _Tp* __ptr, size_t __clength) 8657: { 8657: size_t __result = 0; 8657: const char* __cptr = reinterpret_cast(__ptr); 8657: for (; __clength; --__clength) 8657: __result = (__result * 131) + *__cptr++; 8657: return __result; 8657: } 8657: }; 8657: 8657: template<> 8657: struct _Fnv_hash_base<4> 8657: { 8657: template 8657: static size_t 8657: hash(const _Tp* __ptr, size_t __clength) 8657: { 8657: size_t __result = static_cast(2166136261UL); 8657: const char* __cptr = reinterpret_cast(__ptr); 8657: for (; __clength; --__clength) 8657: { 8657: __result ^= static_cast(*__cptr++); 8657: __result *= static_cast(16777619UL); 8657: } 8657: return __result; 8657: } 8657: }; 8657: 8657: template<> 8657: struct _Fnv_hash_base<8> 8657: { 8657: template 8657: static size_t 8657: hash(const _Tp* __ptr, size_t __clength) 8657: { 8657: size_t __result 8657: = static_cast(14695981039346656037ULL); 8657: const char* __cptr = reinterpret_cast(__ptr); 8657: for (; __clength; --__clength) 8657: { 8657: __result ^= static_cast(*__cptr++); 8657: __result *= static_cast(1099511628211ULL); 8657: } 8657: return __result; 8657: } 8657: }; 8657: 8657: struct _Fnv_hash 8657: : public _Fnv_hash_base 8657: { 8657: using _Fnv_hash_base::hash; 8657: 8657: template 8657: static size_t 8657: hash(const _Tp& __val) 8657: { return hash(&__val, sizeof(__val)); } 8657: }; 8657: 8657: 8657: template<> 8657: inline size_t 8657: hash::operator()(float __val) const 8657: { 8657: 8657: return __val != 0.0f ? std::tr1::_Fnv_hash::hash(__val) : 0; 8657: } 8657: 8657: 8657: template<> 8657: inline size_t 8657: hash::operator()(double __val) const 8657: { 8657: 8657: return __val != 0.0 ? std::tr1::_Fnv_hash::hash(__val) : 0; 8657: } 8657: 8657: 8657: template<> 8657: __attribute__ ((__pure__)) size_t 8657: hash::operator()(long double __val) const; 8657: 8657: 8657: template<> 8657: __attribute__ ((__pure__)) size_t 8657: hash::operator()(string) const; 8657: 8657: template<> 8657: __attribute__ ((__pure__)) size_t 8657: hash::operator()(const string&) const; 8657: 8657: 8657: template<> 8657: __attribute__ ((__pure__)) size_t 8657: hash::operator()(wstring) const; 8657: 8657: template<> 8657: __attribute__ ((__pure__)) size_t 8657: hash::operator()(const wstring&) const; 8657: 8657: } 8657: 8657: 8657: } 8657: # 41 "/usr/include/c++/8/tr1/unordered_map" 2 3 8657: # 1 "/usr/include/c++/8/tr1/hashtable.h" 1 3 8657: # 34 "/usr/include/c++/8/tr1/hashtable.h" 3 8657: 8657: # 35 "/usr/include/c++/8/tr1/hashtable.h" 3 8657: 8657: # 1 "/usr/include/c++/8/tr1/hashtable_policy.h" 1 3 8657: # 31 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: namespace tr1 8657: { 8657: namespace __detail 8657: { 8657: 8657: 8657: template 8657: inline typename std::iterator_traits<_Iterator>::difference_type 8657: __distance_fw(_Iterator __first, _Iterator __last, 8657: std::input_iterator_tag) 8657: { return 0; } 8657: 8657: template 8657: inline typename std::iterator_traits<_Iterator>::difference_type 8657: __distance_fw(_Iterator __first, _Iterator __last, 8657: std::forward_iterator_tag) 8657: { return std::distance(__first, __last); } 8657: 8657: template 8657: inline typename std::iterator_traits<_Iterator>::difference_type 8657: __distance_fw(_Iterator __first, _Iterator __last) 8657: { 8657: typedef typename std::iterator_traits<_Iterator>::iterator_category _Tag; 8657: return __distance_fw(__first, __last, _Tag()); 8657: } 8657: # 68 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8657: template 8657: struct _Hash_node; 8657: 8657: template 8657: struct _Hash_node<_Value, true> 8657: { 8657: _Value _M_v; 8657: std::size_t _M_hash_code; 8657: _Hash_node* _M_next; 8657: }; 8657: 8657: template 8657: struct _Hash_node<_Value, false> 8657: { 8657: _Value _M_v; 8657: _Hash_node* _M_next; 8657: }; 8657: 8657: 8657: 8657: template 8657: struct _Node_iterator_base 8657: { 8657: _Node_iterator_base(_Hash_node<_Value, __cache>* __p) 8657: : _M_cur(__p) { } 8657: 8657: void 8657: _M_incr() 8657: { _M_cur = _M_cur->_M_next; } 8657: 8657: _Hash_node<_Value, __cache>* _M_cur; 8657: }; 8657: 8657: template 8657: inline bool 8657: operator==(const _Node_iterator_base<_Value, __cache>& __x, 8657: const _Node_iterator_base<_Value, __cache>& __y) 8657: { return __x._M_cur == __y._M_cur; } 8657: 8657: template 8657: inline bool 8657: operator!=(const _Node_iterator_base<_Value, __cache>& __x, 8657: const _Node_iterator_base<_Value, __cache>& __y) 8657: { return __x._M_cur != __y._M_cur; } 8657: 8657: template 8657: struct _Node_iterator 8657: : public _Node_iterator_base<_Value, __cache> 8657: { 8657: typedef _Value value_type; 8657: typedef typename 8657: __gnu_cxx::__conditional_type<__constant_iterators, 8657: const _Value*, _Value*>::__type 8657: pointer; 8657: typedef typename 8657: __gnu_cxx::__conditional_type<__constant_iterators, 8657: const _Value&, _Value&>::__type 8657: reference; 8657: typedef std::ptrdiff_t difference_type; 8657: typedef std::forward_iterator_tag iterator_category; 8657: 8657: _Node_iterator() 8657: : _Node_iterator_base<_Value, __cache>(0) { } 8657: 8657: explicit 8657: _Node_iterator(_Hash_node<_Value, __cache>* __p) 8657: : _Node_iterator_base<_Value, __cache>(__p) { } 8657: 8657: reference 8657: operator*() const 8657: { return this->_M_cur->_M_v; } 8657: 8657: pointer 8657: operator->() const 8657: { return std::__addressof(this->_M_cur->_M_v); } 8657: 8657: _Node_iterator& 8657: operator++() 8657: { 8657: this->_M_incr(); 8657: return *this; 8657: } 8657: 8657: _Node_iterator 8657: operator++(int) 8657: { 8657: _Node_iterator __tmp(*this); 8657: this->_M_incr(); 8657: return __tmp; 8657: } 8657: }; 8657: 8657: template 8657: struct _Node_const_iterator 8657: : public _Node_iterator_base<_Value, __cache> 8657: { 8657: typedef _Value value_type; 8657: typedef const _Value* pointer; 8657: typedef const _Value& reference; 8657: typedef std::ptrdiff_t difference_type; 8657: typedef std::forward_iterator_tag iterator_category; 8657: 8657: _Node_const_iterator() 8657: : _Node_iterator_base<_Value, __cache>(0) { } 8657: 8657: explicit 8657: _Node_const_iterator(_Hash_node<_Value, __cache>* __p) 8657: : _Node_iterator_base<_Value, __cache>(__p) { } 8657: 8657: _Node_const_iterator(const _Node_iterator<_Value, __constant_iterators, 8657: __cache>& __x) 8657: : _Node_iterator_base<_Value, __cache>(__x._M_cur) { } 8657: 8657: reference 8657: operator*() const 8657: { return this->_M_cur->_M_v; } 8657: 8657: pointer 8657: operator->() const 8657: { return std::__addressof(this->_M_cur->_M_v); } 8657: 8657: _Node_const_iterator& 8657: operator++() 8657: { 8657: this->_M_incr(); 8657: return *this; 8657: } 8657: 8657: _Node_const_iterator 8657: operator++(int) 8657: { 8657: _Node_const_iterator __tmp(*this); 8657: this->_M_incr(); 8657: return __tmp; 8657: } 8657: }; 8657: 8657: template 8657: struct _Hashtable_iterator_base 8657: { 8657: _Hashtable_iterator_base(_Hash_node<_Value, __cache>* __node, 8657: _Hash_node<_Value, __cache>** __bucket) 8657: : _M_cur_node(__node), _M_cur_bucket(__bucket) { } 8657: 8657: void 8657: _M_incr() 8657: { 8657: _M_cur_node = _M_cur_node->_M_next; 8657: if (!_M_cur_node) 8657: _M_incr_bucket(); 8657: } 8657: 8657: void 8657: _M_incr_bucket(); 8657: 8657: _Hash_node<_Value, __cache>* _M_cur_node; 8657: _Hash_node<_Value, __cache>** _M_cur_bucket; 8657: }; 8657: 8657: 8657: 8657: template 8657: void 8657: _Hashtable_iterator_base<_Value, __cache>:: 8657: _M_incr_bucket() 8657: { 8657: ++_M_cur_bucket; 8657: 8657: 8657: while (!*_M_cur_bucket) 8657: ++_M_cur_bucket; 8657: _M_cur_node = *_M_cur_bucket; 8657: } 8657: 8657: template 8657: inline bool 8657: operator==(const _Hashtable_iterator_base<_Value, __cache>& __x, 8657: const _Hashtable_iterator_base<_Value, __cache>& __y) 8657: { return __x._M_cur_node == __y._M_cur_node; } 8657: 8657: template 8657: inline bool 8657: operator!=(const _Hashtable_iterator_base<_Value, __cache>& __x, 8657: const _Hashtable_iterator_base<_Value, __cache>& __y) 8657: { return __x._M_cur_node != __y._M_cur_node; } 8657: 8657: template 8657: struct _Hashtable_iterator 8657: : public _Hashtable_iterator_base<_Value, __cache> 8657: { 8657: typedef _Value value_type; 8657: typedef typename 8657: __gnu_cxx::__conditional_type<__constant_iterators, 8657: const _Value*, _Value*>::__type 8657: pointer; 8657: typedef typename 8657: __gnu_cxx::__conditional_type<__constant_iterators, 8657: const _Value&, _Value&>::__type 8657: reference; 8657: typedef std::ptrdiff_t difference_type; 8657: typedef std::forward_iterator_tag iterator_category; 8657: 8657: _Hashtable_iterator() 8657: : _Hashtable_iterator_base<_Value, __cache>(0, 0) { } 8657: 8657: _Hashtable_iterator(_Hash_node<_Value, __cache>* __p, 8657: _Hash_node<_Value, __cache>** __b) 8657: : _Hashtable_iterator_base<_Value, __cache>(__p, __b) { } 8657: 8657: explicit 8657: _Hashtable_iterator(_Hash_node<_Value, __cache>** __b) 8657: : _Hashtable_iterator_base<_Value, __cache>(*__b, __b) { } 8657: 8657: reference 8657: operator*() const 8657: { return this->_M_cur_node->_M_v; } 8657: 8657: pointer 8657: operator->() const 8657: { return std::__addressof(this->_M_cur_node->_M_v); } 8657: 8657: _Hashtable_iterator& 8657: operator++() 8657: { 8657: this->_M_incr(); 8657: return *this; 8657: } 8657: 8657: _Hashtable_iterator 8657: operator++(int) 8657: { 8657: _Hashtable_iterator __tmp(*this); 8657: this->_M_incr(); 8657: return __tmp; 8657: } 8657: }; 8657: 8657: template 8657: struct _Hashtable_const_iterator 8657: : public _Hashtable_iterator_base<_Value, __cache> 8657: { 8657: typedef _Value value_type; 8657: typedef const _Value* pointer; 8657: typedef const _Value& reference; 8657: typedef std::ptrdiff_t difference_type; 8657: typedef std::forward_iterator_tag iterator_category; 8657: 8657: _Hashtable_const_iterator() 8657: : _Hashtable_iterator_base<_Value, __cache>(0, 0) { } 8657: 8657: _Hashtable_const_iterator(_Hash_node<_Value, __cache>* __p, 8657: _Hash_node<_Value, __cache>** __b) 8657: : _Hashtable_iterator_base<_Value, __cache>(__p, __b) { } 8657: 8657: explicit 8657: _Hashtable_const_iterator(_Hash_node<_Value, __cache>** __b) 8657: : _Hashtable_iterator_base<_Value, __cache>(*__b, __b) { } 8657: 8657: _Hashtable_const_iterator(const _Hashtable_iterator<_Value, 8657: __constant_iterators, __cache>& __x) 8657: : _Hashtable_iterator_base<_Value, __cache>(__x._M_cur_node, 8657: __x._M_cur_bucket) { } 8657: 8657: reference 8657: operator*() const 8657: { return this->_M_cur_node->_M_v; } 8657: 8657: pointer 8657: operator->() const 8657: { return std::__addressof(this->_M_cur_node->_M_v); } 8657: 8657: _Hashtable_const_iterator& 8657: operator++() 8657: { 8657: this->_M_incr(); 8657: return *this; 8657: } 8657: 8657: _Hashtable_const_iterator 8657: operator++(int) 8657: { 8657: _Hashtable_const_iterator __tmp(*this); 8657: this->_M_incr(); 8657: return __tmp; 8657: } 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: struct _Mod_range_hashing 8657: { 8657: typedef std::size_t first_argument_type; 8657: typedef std::size_t second_argument_type; 8657: typedef std::size_t result_type; 8657: 8657: result_type 8657: operator()(first_argument_type __num, second_argument_type __den) const 8657: { return __num % __den; } 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: struct _Default_ranged_hash { }; 8657: 8657: 8657: 8657: struct _Prime_rehash_policy 8657: { 8657: _Prime_rehash_policy(float __z = 1.0) 8657: : _M_max_load_factor(__z), _M_growth_factor(2.f), _M_next_resize(0) { } 8657: 8657: float 8657: max_load_factor() const 8657: { return _M_max_load_factor; } 8657: 8657: 8657: std::size_t 8657: _M_next_bkt(std::size_t __n) const; 8657: 8657: 8657: std::size_t 8657: _M_bkt_for_elements(std::size_t __n) const; 8657: 8657: 8657: 8657: 8657: 8657: std::pair 8657: _M_need_rehash(std::size_t __n_bkt, std::size_t __n_elt, 8657: std::size_t __n_ins) const; 8657: 8657: enum { _S_n_primes = sizeof(unsigned long) != 8 ? 256 : 256 + 48 }; 8657: 8657: float _M_max_load_factor; 8657: float _M_growth_factor; 8657: mutable std::size_t _M_next_resize; 8657: }; 8657: 8657: extern const unsigned long __prime_list[]; 8657: 8657: 8657: 8657: 8657: 8657: inline std::size_t 8657: _Prime_rehash_policy:: 8657: _M_next_bkt(std::size_t __n) const 8657: { 8657: 8657: 8657: 8657: const unsigned long* __p 8657: = std::lower_bound(__prime_list, __prime_list + _S_n_primes - 1, __n); 8657: _M_next_resize = 8657: static_cast(__builtin_ceil(*__p * _M_max_load_factor)); 8657: return *__p; 8657: } 8657: 8657: 8657: 8657: inline std::size_t 8657: _Prime_rehash_policy:: 8657: _M_bkt_for_elements(std::size_t __n) const 8657: { 8657: const float __min_bkts = __n / _M_max_load_factor; 8657: return _M_next_bkt(__builtin_ceil(__min_bkts)); 8657: } 8657: # 452 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8657: inline std::pair 8657: _Prime_rehash_policy:: 8657: _M_need_rehash(std::size_t __n_bkt, std::size_t __n_elt, 8657: std::size_t __n_ins) const 8657: { 8657: if (__n_elt + __n_ins > _M_next_resize) 8657: { 8657: float __min_bkts = ((float(__n_ins) + float(__n_elt)) 8657: / _M_max_load_factor); 8657: if (__min_bkts > __n_bkt) 8657: { 8657: __min_bkts = std::max(__min_bkts, _M_growth_factor * __n_bkt); 8657: return std::make_pair(true, 8657: _M_next_bkt(__builtin_ceil(__min_bkts))); 8657: } 8657: else 8657: { 8657: _M_next_resize = static_cast 8657: (__builtin_ceil(__n_bkt * _M_max_load_factor)); 8657: return std::make_pair(false, 0); 8657: } 8657: } 8657: else 8657: return std::make_pair(false, 0); 8657: } 8657: # 492 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8657: template 8657: struct _Map_base { }; 8657: 8657: template 8657: struct _Map_base<_Key, _Pair, std::_Select1st<_Pair>, false, _Hashtable> 8657: { 8657: typedef typename _Pair::second_type mapped_type; 8657: }; 8657: 8657: template 8657: struct _Map_base<_Key, _Pair, std::_Select1st<_Pair>, true, _Hashtable> 8657: { 8657: typedef typename _Pair::second_type mapped_type; 8657: 8657: mapped_type& 8657: operator[](const _Key& __k); 8657: }; 8657: 8657: template 8657: typename _Map_base<_Key, _Pair, std::_Select1st<_Pair>, 8657: true, _Hashtable>::mapped_type& 8657: _Map_base<_Key, _Pair, std::_Select1st<_Pair>, true, _Hashtable>:: 8657: operator[](const _Key& __k) 8657: { 8657: _Hashtable* __h = static_cast<_Hashtable*>(this); 8657: typename _Hashtable::_Hash_code_type __code = __h->_M_hash_code(__k); 8657: std::size_t __n = __h->_M_bucket_index(__k, __code, 8657: __h->_M_bucket_count); 8657: 8657: typename _Hashtable::_Node* __p = 8657: __h->_M_find_node(__h->_M_buckets[__n], __k, __code); 8657: if (!__p) 8657: return __h->_M_insert_bucket(std::make_pair(__k, mapped_type()), 8657: __n, __code)->second; 8657: return (__p->_M_v).second; 8657: } 8657: 8657: 8657: 8657: template 8657: struct _Rehash_base { }; 8657: 8657: template 8657: struct _Rehash_base<_Prime_rehash_policy, _Hashtable> 8657: { 8657: float 8657: max_load_factor() const 8657: { 8657: const _Hashtable* __this = static_cast(this); 8657: return __this->__rehash_policy().max_load_factor(); 8657: } 8657: 8657: void 8657: max_load_factor(float __z) 8657: { 8657: _Hashtable* __this = static_cast<_Hashtable*>(this); 8657: __this->__rehash_policy(_Prime_rehash_policy(__z)); 8657: } 8657: }; 8657: # 565 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8657: template 8657: struct _Hash_code_base; 8657: 8657: 8657: 8657: template 8657: struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, 8657: _Hash, false> 8657: { 8657: protected: 8657: _Hash_code_base(const _ExtractKey& __ex, const _Equal& __eq, 8657: const _H1&, const _H2&, const _Hash& __h) 8657: : _M_extract(__ex), _M_eq(__eq), _M_ranged_hash(__h) { } 8657: 8657: typedef void* _Hash_code_type; 8657: 8657: _Hash_code_type 8657: _M_hash_code(const _Key& __key) const 8657: { return 0; } 8657: 8657: std::size_t 8657: _M_bucket_index(const _Key& __k, _Hash_code_type, 8657: std::size_t __n) const 8657: { return _M_ranged_hash(__k, __n); } 8657: 8657: std::size_t 8657: _M_bucket_index(const _Hash_node<_Value, false>* __p, 8657: std::size_t __n) const 8657: { return _M_ranged_hash(_M_extract(__p->_M_v), __n); } 8657: 8657: bool 8657: _M_compare(const _Key& __k, _Hash_code_type, 8657: _Hash_node<_Value, false>* __n) const 8657: { return _M_eq(__k, _M_extract(__n->_M_v)); } 8657: 8657: void 8657: _M_store_code(_Hash_node<_Value, false>*, _Hash_code_type) const 8657: { } 8657: 8657: void 8657: _M_copy_code(_Hash_node<_Value, false>*, 8657: const _Hash_node<_Value, false>*) const 8657: { } 8657: 8657: void 8657: _M_swap(_Hash_code_base& __x) 8657: { 8657: std::swap(_M_extract, __x._M_extract); 8657: std::swap(_M_eq, __x._M_eq); 8657: std::swap(_M_ranged_hash, __x._M_ranged_hash); 8657: } 8657: 8657: protected: 8657: _ExtractKey _M_extract; 8657: _Equal _M_eq; 8657: _Hash _M_ranged_hash; 8657: }; 8657: # 636 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8657: template 8657: struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, 8657: _Hash, true>; 8657: 8657: 8657: 8657: 8657: template 8657: struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, 8657: _Default_ranged_hash, false> 8657: { 8657: typedef _H1 hasher; 8657: 8657: hasher 8657: hash_function() const 8657: { return _M_h1; } 8657: 8657: protected: 8657: _Hash_code_base(const _ExtractKey& __ex, const _Equal& __eq, 8657: const _H1& __h1, const _H2& __h2, 8657: const _Default_ranged_hash&) 8657: : _M_extract(__ex), _M_eq(__eq), _M_h1(__h1), _M_h2(__h2) { } 8657: 8657: typedef std::size_t _Hash_code_type; 8657: 8657: _Hash_code_type 8657: _M_hash_code(const _Key& __k) const 8657: { return _M_h1(__k); } 8657: 8657: std::size_t 8657: _M_bucket_index(const _Key&, _Hash_code_type __c, 8657: std::size_t __n) const 8657: { return _M_h2(__c, __n); } 8657: 8657: std::size_t 8657: _M_bucket_index(const _Hash_node<_Value, false>* __p, 8657: std::size_t __n) const 8657: { return _M_h2(_M_h1(_M_extract(__p->_M_v)), __n); } 8657: 8657: bool 8657: _M_compare(const _Key& __k, _Hash_code_type, 8657: _Hash_node<_Value, false>* __n) const 8657: { return _M_eq(__k, _M_extract(__n->_M_v)); } 8657: 8657: void 8657: _M_store_code(_Hash_node<_Value, false>*, _Hash_code_type) const 8657: { } 8657: 8657: void 8657: _M_copy_code(_Hash_node<_Value, false>*, 8657: const _Hash_node<_Value, false>*) const 8657: { } 8657: 8657: void 8657: _M_swap(_Hash_code_base& __x) 8657: { 8657: std::swap(_M_extract, __x._M_extract); 8657: std::swap(_M_eq, __x._M_eq); 8657: std::swap(_M_h1, __x._M_h1); 8657: std::swap(_M_h2, __x._M_h2); 8657: } 8657: 8657: protected: 8657: _ExtractKey _M_extract; 8657: _Equal _M_eq; 8657: _H1 _M_h1; 8657: _H2 _M_h2; 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, 8657: _Default_ranged_hash, true> 8657: { 8657: typedef _H1 hasher; 8657: 8657: hasher 8657: hash_function() const 8657: { return _M_h1; } 8657: 8657: protected: 8657: _Hash_code_base(const _ExtractKey& __ex, const _Equal& __eq, 8657: const _H1& __h1, const _H2& __h2, 8657: const _Default_ranged_hash&) 8657: : _M_extract(__ex), _M_eq(__eq), _M_h1(__h1), _M_h2(__h2) { } 8657: 8657: typedef std::size_t _Hash_code_type; 8657: 8657: _Hash_code_type 8657: _M_hash_code(const _Key& __k) const 8657: { return _M_h1(__k); } 8657: 8657: std::size_t 8657: _M_bucket_index(const _Key&, _Hash_code_type __c, 8657: std::size_t __n) const 8657: { return _M_h2(__c, __n); } 8657: 8657: std::size_t 8657: _M_bucket_index(const _Hash_node<_Value, true>* __p, 8657: std::size_t __n) const 8657: { return _M_h2(__p->_M_hash_code, __n); } 8657: 8657: bool 8657: _M_compare(const _Key& __k, _Hash_code_type __c, 8657: _Hash_node<_Value, true>* __n) const 8657: { return __c == __n->_M_hash_code && _M_eq(__k, _M_extract(__n->_M_v)); } 8657: 8657: void 8657: _M_store_code(_Hash_node<_Value, true>* __n, _Hash_code_type __c) const 8657: { __n->_M_hash_code = __c; } 8657: 8657: void 8657: _M_copy_code(_Hash_node<_Value, true>* __to, 8657: const _Hash_node<_Value, true>* __from) const 8657: { __to->_M_hash_code = __from->_M_hash_code; } 8657: 8657: void 8657: _M_swap(_Hash_code_base& __x) 8657: { 8657: std::swap(_M_extract, __x._M_extract); 8657: std::swap(_M_eq, __x._M_eq); 8657: std::swap(_M_h1, __x._M_h1); 8657: std::swap(_M_h2, __x._M_h2); 8657: } 8657: 8657: protected: 8657: _ExtractKey _M_extract; 8657: _Equal _M_eq; 8657: _H1 _M_h1; 8657: _H2 _M_h2; 8657: }; 8657: } 8657: } 8657: 8657: 8657: } 8657: # 37 "/usr/include/c++/8/tr1/hashtable.h" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: namespace tr1 8657: { 8657: # 101 "/usr/include/c++/8/tr1/hashtable.h" 3 8657: template 8657: class _Hashtable 8657: : public __detail::_Rehash_base<_RehashPolicy, 8657: _Hashtable<_Key, _Value, _Allocator, 8657: _ExtractKey, 8657: _Equal, _H1, _H2, _Hash, 8657: _RehashPolicy, 8657: __cache_hash_code, 8657: __constant_iterators, 8657: __unique_keys> >, 8657: public __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, __cache_hash_code>, 8657: public __detail::_Map_base<_Key, _Value, _ExtractKey, __unique_keys, 8657: _Hashtable<_Key, _Value, _Allocator, 8657: _ExtractKey, 8657: _Equal, _H1, _H2, _Hash, 8657: _RehashPolicy, 8657: __cache_hash_code, 8657: __constant_iterators, 8657: __unique_keys> > 8657: { 8657: public: 8657: typedef _Allocator allocator_type; 8657: typedef _Value value_type; 8657: typedef _Key key_type; 8657: typedef _Equal key_equal; 8657: 8657: 8657: typedef typename _Allocator::difference_type difference_type; 8657: typedef typename _Allocator::size_type size_type; 8657: typedef typename _Allocator::pointer pointer; 8657: typedef typename _Allocator::const_pointer const_pointer; 8657: typedef typename _Allocator::reference reference; 8657: typedef typename _Allocator::const_reference const_reference; 8657: 8657: typedef __detail::_Node_iterator 8657: local_iterator; 8657: typedef __detail::_Node_const_iterator 8657: const_local_iterator; 8657: 8657: typedef __detail::_Hashtable_iterator 8657: iterator; 8657: typedef __detail::_Hashtable_const_iterator 8657: const_iterator; 8657: 8657: template 8657: friend struct __detail::_Map_base; 8657: 8657: private: 8657: typedef __detail::_Hash_node<_Value, __cache_hash_code> _Node; 8657: typedef typename _Allocator::template rebind<_Node>::other 8657: _Node_allocator_type; 8657: typedef typename _Allocator::template rebind<_Node*>::other 8657: _Bucket_allocator_type; 8657: 8657: typedef typename _Allocator::template rebind<_Value>::other 8657: _Value_allocator_type; 8657: 8657: _Node_allocator_type _M_node_allocator; 8657: _Node** _M_buckets; 8657: size_type _M_bucket_count; 8657: size_type _M_element_count; 8657: _RehashPolicy _M_rehash_policy; 8657: 8657: _Node* 8657: _M_allocate_node(const value_type& __v); 8657: 8657: void 8657: _M_deallocate_node(_Node* __n); 8657: 8657: void 8657: _M_deallocate_nodes(_Node**, size_type); 8657: 8657: _Node** 8657: _M_allocate_buckets(size_type __n); 8657: 8657: void 8657: _M_deallocate_buckets(_Node**, size_type __n); 8657: 8657: public: 8657: 8657: _Hashtable(size_type __bucket_hint, 8657: const _H1&, const _H2&, const _Hash&, 8657: const _Equal&, const _ExtractKey&, 8657: const allocator_type&); 8657: 8657: template 8657: _Hashtable(_InputIterator __first, _InputIterator __last, 8657: size_type __bucket_hint, 8657: const _H1&, const _H2&, const _Hash&, 8657: const _Equal&, const _ExtractKey&, 8657: const allocator_type&); 8657: 8657: _Hashtable(const _Hashtable&); 8657: 8657: _Hashtable& 8657: operator=(const _Hashtable&); 8657: 8657: ~_Hashtable(); 8657: 8657: void swap(_Hashtable&); 8657: 8657: 8657: iterator 8657: begin() 8657: { 8657: iterator __i(_M_buckets); 8657: if (!__i._M_cur_node) 8657: __i._M_incr_bucket(); 8657: return __i; 8657: } 8657: 8657: const_iterator 8657: begin() const 8657: { 8657: const_iterator __i(_M_buckets); 8657: if (!__i._M_cur_node) 8657: __i._M_incr_bucket(); 8657: return __i; 8657: } 8657: 8657: iterator 8657: end() 8657: { return iterator(_M_buckets + _M_bucket_count); } 8657: 8657: const_iterator 8657: end() const 8657: { return const_iterator(_M_buckets + _M_bucket_count); } 8657: 8657: size_type 8657: size() const 8657: { return _M_element_count; } 8657: 8657: bool 8657: empty() const 8657: { return size() == 0; } 8657: 8657: allocator_type 8657: get_allocator() const 8657: { return allocator_type(_M_node_allocator); } 8657: 8657: _Value_allocator_type 8657: _M_get_Value_allocator() const 8657: { return _Value_allocator_type(_M_node_allocator); } 8657: 8657: size_type 8657: max_size() const 8657: { return _M_node_allocator.max_size(); } 8657: 8657: 8657: key_equal 8657: key_eq() const 8657: { return this->_M_eq; } 8657: 8657: 8657: 8657: 8657: size_type 8657: bucket_count() const 8657: { return _M_bucket_count; } 8657: 8657: size_type 8657: max_bucket_count() const 8657: { return max_size(); } 8657: 8657: size_type 8657: bucket_size(size_type __n) const 8657: { return std::distance(begin(__n), end(__n)); } 8657: 8657: size_type 8657: bucket(const key_type& __k) const 8657: { 8657: return this->_M_bucket_index(__k, this->_M_hash_code(__k), 8657: bucket_count()); 8657: } 8657: 8657: local_iterator 8657: begin(size_type __n) 8657: { return local_iterator(_M_buckets[__n]); } 8657: 8657: local_iterator 8657: end(size_type) 8657: { return local_iterator(0); } 8657: 8657: const_local_iterator 8657: begin(size_type __n) const 8657: { return const_local_iterator(_M_buckets[__n]); } 8657: 8657: const_local_iterator 8657: end(size_type) const 8657: { return const_local_iterator(0); } 8657: 8657: float 8657: load_factor() const 8657: { 8657: return static_cast(size()) / static_cast(bucket_count()); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: const _RehashPolicy& 8657: __rehash_policy() const 8657: { return _M_rehash_policy; } 8657: 8657: void 8657: __rehash_policy(const _RehashPolicy&); 8657: 8657: 8657: iterator 8657: find(const key_type& __k); 8657: 8657: const_iterator 8657: find(const key_type& __k) const; 8657: 8657: size_type 8657: count(const key_type& __k) const; 8657: 8657: std::pair 8657: equal_range(const key_type& __k); 8657: 8657: std::pair 8657: equal_range(const key_type& __k) const; 8657: 8657: private: 8657: 8657: 8657: 8657: 8657: typedef typename __gnu_cxx::__conditional_type<__unique_keys, 8657: std::pair, iterator>::__type 8657: _Insert_Return_Type; 8657: 8657: typedef typename __gnu_cxx::__conditional_type<__unique_keys, 8657: std::_Select1st<_Insert_Return_Type>, 8657: std::_Identity<_Insert_Return_Type> 8657: >::__type 8657: _Insert_Conv_Type; 8657: 8657: _Node* 8657: _M_find_node(_Node*, const key_type&, 8657: typename _Hashtable::_Hash_code_type) const; 8657: 8657: iterator 8657: _M_insert_bucket(const value_type&, size_type, 8657: typename _Hashtable::_Hash_code_type); 8657: 8657: std::pair 8657: _M_insert(const value_type&, std::tr1::true_type); 8657: 8657: iterator 8657: _M_insert(const value_type&, std::tr1::false_type); 8657: 8657: void 8657: _M_erase_node(_Node*, _Node**); 8657: 8657: public: 8657: 8657: _Insert_Return_Type 8657: insert(const value_type& __v) 8657: { return _M_insert(__v, std::tr1::integral_constant()); } 8657: 8657: iterator 8657: insert(iterator, const value_type& __v) 8657: { return iterator(_Insert_Conv_Type()(this->insert(__v))); } 8657: 8657: const_iterator 8657: insert(const_iterator, const value_type& __v) 8657: { return const_iterator(_Insert_Conv_Type()(this->insert(__v))); } 8657: 8657: template 8657: void 8657: insert(_InputIterator __first, _InputIterator __last); 8657: 8657: iterator 8657: erase(iterator); 8657: 8657: const_iterator 8657: erase(const_iterator); 8657: 8657: size_type 8657: erase(const key_type&); 8657: 8657: iterator 8657: erase(iterator, iterator); 8657: 8657: const_iterator 8657: erase(const_iterator, const_iterator); 8657: 8657: void 8657: clear(); 8657: 8657: 8657: void rehash(size_type __n); 8657: 8657: private: 8657: 8657: void _M_rehash(size_type __n); 8657: }; 8657: 8657: 8657: 8657: template 8657: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, 8657: __chc, __cit, __uk>::_Node* 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: _M_allocate_node(const value_type& __v) 8657: { 8657: _Node* __n = _M_node_allocator.allocate(1); 8657: try 8657: { 8657: _M_get_Value_allocator().construct(&__n->_M_v, __v); 8657: __n->_M_next = 0; 8657: return __n; 8657: } 8657: catch(...) 8657: { 8657: _M_node_allocator.deallocate(__n, 1); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: void 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: _M_deallocate_node(_Node* __n) 8657: { 8657: _M_get_Value_allocator().destroy(&__n->_M_v); 8657: _M_node_allocator.deallocate(__n, 1); 8657: } 8657: 8657: template 8657: void 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: _M_deallocate_nodes(_Node** __array, size_type __n) 8657: { 8657: for (size_type __i = 0; __i < __n; ++__i) 8657: { 8657: _Node* __p = __array[__i]; 8657: while (__p) 8657: { 8657: _Node* __tmp = __p; 8657: __p = __p->_M_next; 8657: _M_deallocate_node(__tmp); 8657: } 8657: __array[__i] = 0; 8657: } 8657: } 8657: 8657: template 8657: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, 8657: __chc, __cit, __uk>::_Node** 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: _M_allocate_buckets(size_type __n) 8657: { 8657: _Bucket_allocator_type __alloc(_M_node_allocator); 8657: 8657: 8657: 8657: _Node** __p = __alloc.allocate(__n + 1); 8657: std::fill(__p, __p + __n, (_Node*) 0); 8657: __p[__n] = reinterpret_cast<_Node*>(0x1000); 8657: return __p; 8657: } 8657: 8657: template 8657: void 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: _M_deallocate_buckets(_Node** __p, size_type __n) 8657: { 8657: _Bucket_allocator_type __alloc(_M_node_allocator); 8657: __alloc.deallocate(__p, __n + 1); 8657: } 8657: 8657: template 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: _Hashtable(size_type __bucket_hint, 8657: const _H1& __h1, const _H2& __h2, const _Hash& __h, 8657: const _Equal& __eq, const _ExtractKey& __exk, 8657: const allocator_type& __a) 8657: : __detail::_Rehash_base<_RehashPolicy, _Hashtable>(), 8657: __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, __chc>(__exk, __eq, 8657: __h1, __h2, __h), 8657: __detail::_Map_base<_Key, _Value, _ExtractKey, __uk, _Hashtable>(), 8657: _M_node_allocator(__a), 8657: _M_bucket_count(0), 8657: _M_element_count(0), 8657: _M_rehash_policy() 8657: { 8657: _M_bucket_count = _M_rehash_policy._M_next_bkt(__bucket_hint); 8657: _M_buckets = _M_allocate_buckets(_M_bucket_count); 8657: } 8657: 8657: template 8657: template 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: _Hashtable(_InputIterator __f, _InputIterator __l, 8657: size_type __bucket_hint, 8657: const _H1& __h1, const _H2& __h2, const _Hash& __h, 8657: const _Equal& __eq, const _ExtractKey& __exk, 8657: const allocator_type& __a) 8657: : __detail::_Rehash_base<_RehashPolicy, _Hashtable>(), 8657: __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, __chc>(__exk, __eq, 8657: __h1, __h2, __h), 8657: __detail::_Map_base<_Key, _Value, _ExtractKey, __uk, _Hashtable>(), 8657: _M_node_allocator(__a), 8657: _M_bucket_count(0), 8657: _M_element_count(0), 8657: _M_rehash_policy() 8657: { 8657: _M_bucket_count = std::max(_M_rehash_policy._M_next_bkt(__bucket_hint), 8657: _M_rehash_policy. 8657: _M_bkt_for_elements(__detail:: 8657: __distance_fw(__f, 8657: __l))); 8657: _M_buckets = _M_allocate_buckets(_M_bucket_count); 8657: try 8657: { 8657: for (; __f != __l; ++__f) 8657: this->insert(*__f); 8657: } 8657: catch(...) 8657: { 8657: clear(); 8657: _M_deallocate_buckets(_M_buckets, _M_bucket_count); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: _Hashtable(const _Hashtable& __ht) 8657: : __detail::_Rehash_base<_RehashPolicy, _Hashtable>(__ht), 8657: __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, __chc>(__ht), 8657: __detail::_Map_base<_Key, _Value, _ExtractKey, __uk, _Hashtable>(__ht), 8657: _M_node_allocator(__ht._M_node_allocator), 8657: _M_bucket_count(__ht._M_bucket_count), 8657: _M_element_count(__ht._M_element_count), 8657: _M_rehash_policy(__ht._M_rehash_policy) 8657: { 8657: _M_buckets = _M_allocate_buckets(_M_bucket_count); 8657: try 8657: { 8657: for (size_type __i = 0; __i < __ht._M_bucket_count; ++__i) 8657: { 8657: _Node* __n = __ht._M_buckets[__i]; 8657: _Node** __tail = _M_buckets + __i; 8657: while (__n) 8657: { 8657: *__tail = _M_allocate_node(__n->_M_v); 8657: this->_M_copy_code(*__tail, __n); 8657: __tail = &((*__tail)->_M_next); 8657: __n = __n->_M_next; 8657: } 8657: } 8657: } 8657: catch(...) 8657: { 8657: clear(); 8657: _M_deallocate_buckets(_M_buckets, _M_bucket_count); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>& 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: operator=(const _Hashtable& __ht) 8657: { 8657: _Hashtable __tmp(__ht); 8657: this->swap(__tmp); 8657: return *this; 8657: } 8657: 8657: template 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: ~_Hashtable() 8657: { 8657: clear(); 8657: _M_deallocate_buckets(_M_buckets, _M_bucket_count); 8657: } 8657: 8657: template 8657: void 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: swap(_Hashtable& __x) 8657: { 8657: 8657: 8657: 8657: __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, __chc>::_M_swap(__x); 8657: 8657: 8657: 8657: std::__alloc_swap<_Node_allocator_type>::_S_do_it(_M_node_allocator, 8657: __x._M_node_allocator); 8657: 8657: std::swap(_M_rehash_policy, __x._M_rehash_policy); 8657: std::swap(_M_buckets, __x._M_buckets); 8657: std::swap(_M_bucket_count, __x._M_bucket_count); 8657: std::swap(_M_element_count, __x._M_element_count); 8657: } 8657: 8657: template 8657: void 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: __rehash_policy(const _RehashPolicy& __pol) 8657: { 8657: _M_rehash_policy = __pol; 8657: size_type __n_bkt = __pol._M_bkt_for_elements(_M_element_count); 8657: if (__n_bkt > _M_bucket_count) 8657: _M_rehash(__n_bkt); 8657: } 8657: 8657: template 8657: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, 8657: __chc, __cit, __uk>::iterator 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: find(const key_type& __k) 8657: { 8657: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8657: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8657: _Node* __p = _M_find_node(_M_buckets[__n], __k, __code); 8657: return __p ? iterator(__p, _M_buckets + __n) : this->end(); 8657: } 8657: 8657: template 8657: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, 8657: __chc, __cit, __uk>::const_iterator 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: find(const key_type& __k) const 8657: { 8657: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8657: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8657: _Node* __p = _M_find_node(_M_buckets[__n], __k, __code); 8657: return __p ? const_iterator(__p, _M_buckets + __n) : this->end(); 8657: } 8657: 8657: template 8657: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, 8657: __chc, __cit, __uk>::size_type 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: count(const key_type& __k) const 8657: { 8657: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8657: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8657: std::size_t __result = 0; 8657: for (_Node* __p = _M_buckets[__n]; __p; __p = __p->_M_next) 8657: if (this->_M_compare(__k, __code, __p)) 8657: ++__result; 8657: return __result; 8657: } 8657: 8657: template 8657: std::pair::iterator, 8657: typename _Hashtable<_Key, _Value, _Allocator, 8657: _ExtractKey, _Equal, _H1, 8657: _H2, _Hash, _RehashPolicy, 8657: __chc, __cit, __uk>::iterator> 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: equal_range(const key_type& __k) 8657: { 8657: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8657: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8657: _Node** __head = _M_buckets + __n; 8657: _Node* __p = _M_find_node(*__head, __k, __code); 8657: 8657: if (__p) 8657: { 8657: _Node* __p1 = __p->_M_next; 8657: for (; __p1; __p1 = __p1->_M_next) 8657: if (!this->_M_compare(__k, __code, __p1)) 8657: break; 8657: 8657: iterator __first(__p, __head); 8657: iterator __last(__p1, __head); 8657: if (!__p1) 8657: __last._M_incr_bucket(); 8657: return std::make_pair(__first, __last); 8657: } 8657: else 8657: return std::make_pair(this->end(), this->end()); 8657: } 8657: 8657: template 8657: std::pair::const_iterator, 8657: typename _Hashtable<_Key, _Value, _Allocator, 8657: _ExtractKey, _Equal, _H1, 8657: _H2, _Hash, _RehashPolicy, 8657: __chc, __cit, __uk>::const_iterator> 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: equal_range(const key_type& __k) const 8657: { 8657: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8657: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8657: _Node** __head = _M_buckets + __n; 8657: _Node* __p = _M_find_node(*__head, __k, __code); 8657: 8657: if (__p) 8657: { 8657: _Node* __p1 = __p->_M_next; 8657: for (; __p1; __p1 = __p1->_M_next) 8657: if (!this->_M_compare(__k, __code, __p1)) 8657: break; 8657: 8657: const_iterator __first(__p, __head); 8657: const_iterator __last(__p1, __head); 8657: if (!__p1) 8657: __last._M_incr_bucket(); 8657: return std::make_pair(__first, __last); 8657: } 8657: else 8657: return std::make_pair(this->end(), this->end()); 8657: } 8657: 8657: 8657: 8657: template 8657: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, 8657: _Equal, _H1, _H2, _Hash, _RehashPolicy, 8657: __chc, __cit, __uk>::_Node* 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: _M_find_node(_Node* __p, const key_type& __k, 8657: typename _Hashtable::_Hash_code_type __code) const 8657: { 8657: for (; __p; __p = __p->_M_next) 8657: if (this->_M_compare(__k, __code, __p)) 8657: return __p; 8657: return 0; 8657: } 8657: 8657: 8657: template 8657: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, 8657: __chc, __cit, __uk>::iterator 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: _M_insert_bucket(const value_type& __v, size_type __n, 8657: typename _Hashtable::_Hash_code_type __code) 8657: { 8657: std::pair __do_rehash 8657: = _M_rehash_policy._M_need_rehash(_M_bucket_count, 8657: _M_element_count, 1); 8657: 8657: 8657: 8657: _Node* __new_node = _M_allocate_node(__v); 8657: 8657: try 8657: { 8657: if (__do_rehash.first) 8657: { 8657: const key_type& __k = this->_M_extract(__v); 8657: __n = this->_M_bucket_index(__k, __code, __do_rehash.second); 8657: _M_rehash(__do_rehash.second); 8657: } 8657: 8657: __new_node->_M_next = _M_buckets[__n]; 8657: this->_M_store_code(__new_node, __code); 8657: _M_buckets[__n] = __new_node; 8657: ++_M_element_count; 8657: return iterator(__new_node, _M_buckets + __n); 8657: } 8657: catch(...) 8657: { 8657: _M_deallocate_node(__new_node); 8657: throw; 8657: } 8657: } 8657: 8657: 8657: template 8657: std::pair::iterator, bool> 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: _M_insert(const value_type& __v, std::tr1::true_type) 8657: { 8657: const key_type& __k = this->_M_extract(__v); 8657: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8657: size_type __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8657: 8657: if (_Node* __p = _M_find_node(_M_buckets[__n], __k, __code)) 8657: return std::make_pair(iterator(__p, _M_buckets + __n), false); 8657: return std::make_pair(_M_insert_bucket(__v, __n, __code), true); 8657: } 8657: 8657: 8657: template 8657: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, 8657: __chc, __cit, __uk>::iterator 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: _M_insert(const value_type& __v, std::tr1::false_type) 8657: { 8657: std::pair __do_rehash 8657: = _M_rehash_policy._M_need_rehash(_M_bucket_count, 8657: _M_element_count, 1); 8657: if (__do_rehash.first) 8657: _M_rehash(__do_rehash.second); 8657: 8657: const key_type& __k = this->_M_extract(__v); 8657: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8657: size_type __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8657: 8657: 8657: _Node* __prev = _M_find_node(_M_buckets[__n], __k, __code); 8657: _Node* __new_node = _M_allocate_node(__v); 8657: 8657: if (__prev) 8657: { 8657: __new_node->_M_next = __prev->_M_next; 8657: __prev->_M_next = __new_node; 8657: } 8657: else 8657: { 8657: __new_node->_M_next = _M_buckets[__n]; 8657: _M_buckets[__n] = __new_node; 8657: } 8657: this->_M_store_code(__new_node, __code); 8657: 8657: ++_M_element_count; 8657: return iterator(__new_node, _M_buckets + __n); 8657: } 8657: 8657: 8657: template 8657: void 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: _M_erase_node(_Node* __p, _Node** __b) 8657: { 8657: _Node* __cur = *__b; 8657: if (__cur == __p) 8657: *__b = __cur->_M_next; 8657: else 8657: { 8657: _Node* __next = __cur->_M_next; 8657: while (__next != __p) 8657: { 8657: __cur = __next; 8657: __next = __cur->_M_next; 8657: } 8657: __cur->_M_next = __next->_M_next; 8657: } 8657: 8657: _M_deallocate_node(__p); 8657: --_M_element_count; 8657: } 8657: 8657: template 8657: template 8657: void 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: insert(_InputIterator __first, _InputIterator __last) 8657: { 8657: size_type __n_elt = __detail::__distance_fw(__first, __last); 8657: std::pair __do_rehash 8657: = _M_rehash_policy._M_need_rehash(_M_bucket_count, 8657: _M_element_count, __n_elt); 8657: if (__do_rehash.first) 8657: _M_rehash(__do_rehash.second); 8657: 8657: for (; __first != __last; ++__first) 8657: this->insert(*__first); 8657: } 8657: 8657: template 8657: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, 8657: __chc, __cit, __uk>::iterator 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: erase(iterator __it) 8657: { 8657: iterator __result = __it; 8657: ++__result; 8657: _M_erase_node(__it._M_cur_node, __it._M_cur_bucket); 8657: return __result; 8657: } 8657: 8657: template 8657: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, 8657: __chc, __cit, __uk>::const_iterator 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: erase(const_iterator __it) 8657: { 8657: const_iterator __result = __it; 8657: ++__result; 8657: _M_erase_node(__it._M_cur_node, __it._M_cur_bucket); 8657: return __result; 8657: } 8657: 8657: template 8657: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, 8657: __chc, __cit, __uk>::size_type 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: erase(const key_type& __k) 8657: { 8657: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8657: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8657: size_type __result = 0; 8657: 8657: _Node** __slot = _M_buckets + __n; 8657: while (*__slot && !this->_M_compare(__k, __code, *__slot)) 8657: __slot = &((*__slot)->_M_next); 8657: 8657: _Node** __saved_slot = 0; 8657: while (*__slot && this->_M_compare(__k, __code, *__slot)) 8657: { 8657: 8657: 8657: 8657: if (&this->_M_extract((*__slot)->_M_v) != &__k) 8657: { 8657: _Node* __p = *__slot; 8657: *__slot = __p->_M_next; 8657: _M_deallocate_node(__p); 8657: --_M_element_count; 8657: ++__result; 8657: } 8657: else 8657: { 8657: __saved_slot = __slot; 8657: __slot = &((*__slot)->_M_next); 8657: } 8657: } 8657: 8657: if (__saved_slot) 8657: { 8657: _Node* __p = *__saved_slot; 8657: *__saved_slot = __p->_M_next; 8657: _M_deallocate_node(__p); 8657: --_M_element_count; 8657: ++__result; 8657: } 8657: 8657: return __result; 8657: } 8657: 8657: 8657: 8657: 8657: template 8657: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, 8657: __chc, __cit, __uk>::iterator 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: erase(iterator __first, iterator __last) 8657: { 8657: while (__first != __last) 8657: __first = this->erase(__first); 8657: return __last; 8657: } 8657: 8657: template 8657: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, 8657: __chc, __cit, __uk>::const_iterator 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: erase(const_iterator __first, const_iterator __last) 8657: { 8657: while (__first != __last) 8657: __first = this->erase(__first); 8657: return __last; 8657: } 8657: 8657: template 8657: void 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: clear() 8657: { 8657: _M_deallocate_nodes(_M_buckets, _M_bucket_count); 8657: _M_element_count = 0; 8657: } 8657: 8657: template 8657: void 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: rehash(size_type __n) 8657: { 8657: _M_rehash(std::max(_M_rehash_policy._M_next_bkt(__n), 8657: _M_rehash_policy._M_bkt_for_elements(_M_element_count 8657: + 1))); 8657: } 8657: 8657: template 8657: void 8657: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8657: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8657: _M_rehash(size_type __n) 8657: { 8657: _Node** __new_array = _M_allocate_buckets(__n); 8657: try 8657: { 8657: for (size_type __i = 0; __i < _M_bucket_count; ++__i) 8657: while (_Node* __p = _M_buckets[__i]) 8657: { 8657: std::size_t __new_index = this->_M_bucket_index(__p, __n); 8657: _M_buckets[__i] = __p->_M_next; 8657: __p->_M_next = __new_array[__new_index]; 8657: __new_array[__new_index] = __p; 8657: } 8657: _M_deallocate_buckets(_M_buckets, _M_bucket_count); 8657: _M_bucket_count = __n; 8657: _M_buckets = __new_array; 8657: } 8657: catch(...) 8657: { 8657: 8657: 8657: 8657: 8657: _M_deallocate_nodes(__new_array, __n); 8657: _M_deallocate_buckets(__new_array, __n); 8657: _M_deallocate_nodes(_M_buckets, _M_bucket_count); 8657: _M_element_count = 0; 8657: throw; 8657: } 8657: } 8657: } 8657: 8657: 8657: } 8657: # 42 "/usr/include/c++/8/tr1/unordered_map" 2 3 8657: # 1 "/usr/include/c++/8/tr1/unordered_map.h" 1 3 8657: # 30 "/usr/include/c++/8/tr1/unordered_map.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: namespace tr1 8657: { 8657: 8657: 8657: template, 8657: class _Pred = std::equal_to<_Key>, 8657: class _Alloc = std::allocator >, 8657: bool __cache_hash_code = false> 8657: class __unordered_map 8657: : public _Hashtable<_Key, std::pair, _Alloc, 8657: std::_Select1st >, _Pred, 8657: _Hash, __detail::_Mod_range_hashing, 8657: __detail::_Default_ranged_hash, 8657: __detail::_Prime_rehash_policy, 8657: __cache_hash_code, false, true> 8657: { 8657: typedef _Hashtable<_Key, std::pair, _Alloc, 8657: std::_Select1st >, _Pred, 8657: _Hash, __detail::_Mod_range_hashing, 8657: __detail::_Default_ranged_hash, 8657: __detail::_Prime_rehash_policy, 8657: __cache_hash_code, false, true> 8657: _Base; 8657: 8657: public: 8657: typedef typename _Base::size_type size_type; 8657: typedef typename _Base::hasher hasher; 8657: typedef typename _Base::key_equal key_equal; 8657: typedef typename _Base::allocator_type allocator_type; 8657: 8657: explicit 8657: __unordered_map(size_type __n = 10, 8657: const hasher& __hf = hasher(), 8657: const key_equal& __eql = key_equal(), 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(__n, __hf, __detail::_Mod_range_hashing(), 8657: __detail::_Default_ranged_hash(), 8657: __eql, std::_Select1st >(), __a) 8657: { } 8657: 8657: template 8657: __unordered_map(_InputIterator __f, _InputIterator __l, 8657: size_type __n = 10, 8657: const hasher& __hf = hasher(), 8657: const key_equal& __eql = key_equal(), 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(__f, __l, __n, __hf, __detail::_Mod_range_hashing(), 8657: __detail::_Default_ranged_hash(), 8657: __eql, std::_Select1st >(), __a) 8657: { } 8657: }; 8657: 8657: template, 8657: class _Pred = std::equal_to<_Key>, 8657: class _Alloc = std::allocator >, 8657: bool __cache_hash_code = false> 8657: class __unordered_multimap 8657: : public _Hashtable<_Key, std::pair, 8657: _Alloc, 8657: std::_Select1st >, _Pred, 8657: _Hash, __detail::_Mod_range_hashing, 8657: __detail::_Default_ranged_hash, 8657: __detail::_Prime_rehash_policy, 8657: __cache_hash_code, false, false> 8657: { 8657: typedef _Hashtable<_Key, std::pair, 8657: _Alloc, 8657: std::_Select1st >, _Pred, 8657: _Hash, __detail::_Mod_range_hashing, 8657: __detail::_Default_ranged_hash, 8657: __detail::_Prime_rehash_policy, 8657: __cache_hash_code, false, false> 8657: _Base; 8657: 8657: public: 8657: typedef typename _Base::size_type size_type; 8657: typedef typename _Base::hasher hasher; 8657: typedef typename _Base::key_equal key_equal; 8657: typedef typename _Base::allocator_type allocator_type; 8657: 8657: explicit 8657: __unordered_multimap(size_type __n = 10, 8657: const hasher& __hf = hasher(), 8657: const key_equal& __eql = key_equal(), 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(__n, __hf, __detail::_Mod_range_hashing(), 8657: __detail::_Default_ranged_hash(), 8657: __eql, std::_Select1st >(), __a) 8657: { } 8657: 8657: 8657: template 8657: __unordered_multimap(_InputIterator __f, _InputIterator __l, 8657: typename _Base::size_type __n = 0, 8657: const hasher& __hf = hasher(), 8657: const key_equal& __eql = key_equal(), 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(__f, __l, __n, __hf, __detail::_Mod_range_hashing(), 8657: __detail::_Default_ranged_hash(), 8657: __eql, std::_Select1st >(), __a) 8657: { } 8657: }; 8657: 8657: template 8657: inline void 8657: swap(__unordered_map<_Key, _Tp, _Hash, _Pred, 8657: _Alloc, __cache_hash_code>& __x, 8657: __unordered_map<_Key, _Tp, _Hash, _Pred, 8657: _Alloc, __cache_hash_code>& __y) 8657: { __x.swap(__y); } 8657: 8657: template 8657: inline void 8657: swap(__unordered_multimap<_Key, _Tp, _Hash, _Pred, 8657: _Alloc, __cache_hash_code>& __x, 8657: __unordered_multimap<_Key, _Tp, _Hash, _Pred, 8657: _Alloc, __cache_hash_code>& __y) 8657: { __x.swap(__y); } 8657: # 176 "/usr/include/c++/8/tr1/unordered_map.h" 3 8657: template, 8657: class _Pred = std::equal_to<_Key>, 8657: class _Alloc = std::allocator > > 8657: class unordered_map 8657: : public __unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc> 8657: { 8657: typedef __unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc> _Base; 8657: 8657: public: 8657: typedef typename _Base::value_type value_type; 8657: typedef typename _Base::size_type size_type; 8657: typedef typename _Base::hasher hasher; 8657: typedef typename _Base::key_equal key_equal; 8657: typedef typename _Base::allocator_type allocator_type; 8657: 8657: explicit 8657: unordered_map(size_type __n = 10, 8657: const hasher& __hf = hasher(), 8657: const key_equal& __eql = key_equal(), 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(__n, __hf, __eql, __a) 8657: { } 8657: 8657: template 8657: unordered_map(_InputIterator __f, _InputIterator __l, 8657: size_type __n = 10, 8657: const hasher& __hf = hasher(), 8657: const key_equal& __eql = key_equal(), 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(__f, __l, __n, __hf, __eql, __a) 8657: { } 8657: }; 8657: # 228 "/usr/include/c++/8/tr1/unordered_map.h" 3 8657: template, 8657: class _Pred = std::equal_to<_Key>, 8657: class _Alloc = std::allocator > > 8657: class unordered_multimap 8657: : public __unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc> 8657: { 8657: typedef __unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc> _Base; 8657: 8657: public: 8657: typedef typename _Base::value_type value_type; 8657: typedef typename _Base::size_type size_type; 8657: typedef typename _Base::hasher hasher; 8657: typedef typename _Base::key_equal key_equal; 8657: typedef typename _Base::allocator_type allocator_type; 8657: 8657: explicit 8657: unordered_multimap(size_type __n = 10, 8657: const hasher& __hf = hasher(), 8657: const key_equal& __eql = key_equal(), 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(__n, __hf, __eql, __a) 8657: { } 8657: 8657: 8657: template 8657: unordered_multimap(_InputIterator __f, _InputIterator __l, 8657: typename _Base::size_type __n = 0, 8657: const hasher& __hf = hasher(), 8657: const key_equal& __eql = key_equal(), 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(__f, __l, __n, __hf, __eql, __a) 8657: { } 8657: 8657: }; 8657: 8657: template 8657: inline void 8657: swap(unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 8657: unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 8657: { __x.swap(__y); } 8657: 8657: template 8657: inline void 8657: swap(unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 8657: unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 8657: { __x.swap(__y); } 8657: } 8657: 8657: 8657: } 8657: # 43 "/usr/include/c++/8/tr1/unordered_map" 2 3 8657: # 30 "/<>/templates/tests/qtunorderedmap.h" 2 8657: 8657: 8657: 8657: # 32 "/<>/templates/tests/qtunorderedmap.h" 8657: template struct QtHasher { 8657: size_t operator()(Key k) const { return qHash(k); } 8657: }; 8657: 8657: template 8657: struct QtUnorderedMap 8657: : public std::tr1::unordered_map> { 8657: }; 8657: # 30 "/<>/templates/tests/test_macros.h" 2 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/tr1/array" 1 3 8657: # 32 "/usr/include/c++/8/tr1/array" 3 8657: 8657: # 33 "/usr/include/c++/8/tr1/array" 3 8657: 8657: 8657: 8657: 8657: # 36 "/usr/include/c++/8/tr1/array" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: namespace tr1 8657: { 8657: # 56 "/usr/include/c++/8/tr1/array" 3 8657: template 8657: struct array 8657: { 8657: typedef _Tp value_type; 8657: typedef value_type& reference; 8657: typedef const value_type& const_reference; 8657: typedef value_type* iterator; 8657: typedef const value_type* const_iterator; 8657: typedef std::size_t size_type; 8657: typedef std::ptrdiff_t difference_type; 8657: typedef std::reverse_iterator reverse_iterator; 8657: typedef std::reverse_iterator const_reverse_iterator; 8657: 8657: 8657: value_type _M_instance[_Nm ? _Nm : 1]; 8657: 8657: 8657: 8657: void 8657: assign(const value_type& __u) 8657: { std::fill_n(begin(), size(), __u); } 8657: 8657: void 8657: swap(array& __other) 8657: { std::swap_ranges(begin(), end(), __other.begin()); } 8657: 8657: 8657: iterator 8657: begin() 8657: { return iterator(std::__addressof(_M_instance[0])); } 8657: 8657: const_iterator 8657: begin() const 8657: { return const_iterator(std::__addressof(_M_instance[0])); } 8657: 8657: iterator 8657: end() 8657: { return iterator(std::__addressof(_M_instance[_Nm])); } 8657: 8657: const_iterator 8657: end() const 8657: { return const_iterator(std::__addressof(_M_instance[_Nm])); } 8657: 8657: reverse_iterator 8657: rbegin() 8657: { return reverse_iterator(end()); } 8657: 8657: const_reverse_iterator 8657: rbegin() const 8657: { return const_reverse_iterator(end()); } 8657: 8657: reverse_iterator 8657: rend() 8657: { return reverse_iterator(begin()); } 8657: 8657: const_reverse_iterator 8657: rend() const 8657: { return const_reverse_iterator(begin()); } 8657: 8657: 8657: size_type 8657: size() const { return _Nm; } 8657: 8657: size_type 8657: max_size() const { return _Nm; } 8657: 8657: bool 8657: empty() const { return size() == 0; } 8657: 8657: 8657: reference 8657: operator[](size_type __n) 8657: { return _M_instance[__n]; } 8657: 8657: const_reference 8657: operator[](size_type __n) const 8657: { return _M_instance[__n]; } 8657: 8657: reference 8657: at(size_type __n) 8657: { 8657: if (__n >= _Nm) 8657: std::__throw_out_of_range(("array::at")); 8657: return _M_instance[__n]; 8657: } 8657: 8657: const_reference 8657: at(size_type __n) const 8657: { 8657: if (__n >= _Nm) 8657: std::__throw_out_of_range(("array::at")); 8657: return _M_instance[__n]; 8657: } 8657: 8657: reference 8657: front() 8657: { return *begin(); } 8657: 8657: const_reference 8657: front() const 8657: { return *begin(); } 8657: 8657: reference 8657: back() 8657: { return _Nm ? *(end() - 1) : *end(); } 8657: 8657: const_reference 8657: back() const 8657: { return _Nm ? *(end() - 1) : *end(); } 8657: 8657: _Tp* 8657: data() 8657: { return std::__addressof(_M_instance[0]); } 8657: 8657: const _Tp* 8657: data() const 8657: { return std::__addressof(_M_instance[0]); } 8657: }; 8657: 8657: 8657: template 8657: inline bool 8657: operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8657: { return std::equal(__one.begin(), __one.end(), __two.begin()); } 8657: 8657: template 8657: inline bool 8657: operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8657: { return !(__one == __two); } 8657: 8657: template 8657: inline bool 8657: operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b) 8657: { 8657: return std::lexicographical_compare(__a.begin(), __a.end(), 8657: __b.begin(), __b.end()); 8657: } 8657: 8657: template 8657: inline bool 8657: operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8657: { return __two < __one; } 8657: 8657: template 8657: inline bool 8657: operator<=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8657: { return !(__one > __two); } 8657: 8657: template 8657: inline bool 8657: operator>=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8657: { return !(__one < __two); } 8657: 8657: 8657: template 8657: inline void 8657: swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two) 8657: { __one.swap(__two); } 8657: 8657: 8657: 8657: 8657: template 8657: class tuple_size; 8657: 8657: 8657: template 8657: class tuple_element; 8657: 8657: template 8657: struct tuple_size > 8657: { static const int value = _Nm; }; 8657: 8657: template 8657: const int 8657: tuple_size >::value; 8657: 8657: template 8657: struct tuple_element<_Int, array<_Tp, _Nm> > 8657: { typedef _Tp type; }; 8657: 8657: template 8657: inline _Tp& 8657: get(array<_Tp, _Nm>& __arr) 8657: { return __arr[_Int]; } 8657: 8657: template 8657: inline const _Tp& 8657: get(const array<_Tp, _Nm>& __arr) 8657: { return __arr[_Int]; } 8657: } 8657: 8657: 8657: } 8657: # 35 "/<>/templates/tests/test_macros.h" 2 8657: 8657: 8657: 8657: # 37 "/<>/templates/tests/test_macros.h" 8657: template struct ThreeArray : public std::tr1::array { 8657: }; 8657: # 27 "/<>/templates/tests/testgenerictypes.cpp" 2 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QLinkedList" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlinkedlist.h" 1 3 4 8657: # 55 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlinkedlist.h" 3 4 8657: 8657: 8657: 8657: 8657: # 58 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlinkedlist.h" 3 4 8657: struct __attribute__((visibility("default"))) QLinkedListData 8657: { 8657: QLinkedListData *n, *p; 8657: QtPrivate::RefCount ref; 8657: int size; 8657: uint sharable : 1; 8657: 8657: static const QLinkedListData shared_null; 8657: }; 8657: 8657: template 8657: struct QLinkedListNode 8657: { 8657: inline QLinkedListNode(const T &arg): t(arg) { } 8657: QLinkedListNode *n, *p; 8657: T t; 8657: }; 8657: 8657: template 8657: class QLinkedList 8657: { 8657: typedef QLinkedListNode Node; 8657: union { QLinkedListData *d; QLinkedListNode *e; }; 8657: 8657: public: 8657: inline QLinkedList() noexcept : d(const_cast(&QLinkedListData::shared_null)) { } 8657: inline QLinkedList(const QLinkedList &l) : d(l.d) { d->ref.ref(); if (!d->sharable) detach(); } 8657: 8657: inline QLinkedList(std::initializer_list list) 8657: : d(const_cast(&QLinkedListData::shared_null)) 8657: { 8657: std::copy(list.begin(), list.end(), std::back_inserter(*this)); 8657: } 8657: 8657: ~QLinkedList(); 8657: QLinkedList &operator=(const QLinkedList &); 8657: 8657: QLinkedList(QLinkedList &&other) noexcept 8657: : d(other.d) { other.d = const_cast(&QLinkedListData::shared_null); } 8657: QLinkedList &operator=(QLinkedList &&other) noexcept 8657: { QLinkedList moved(std::move(other)); swap(moved); return *this; } 8657: 8657: inline void swap(QLinkedList &other) noexcept { qSwap(d, other.d); } 8657: bool operator==(const QLinkedList &l) const; 8657: inline bool operator!=(const QLinkedList &l) const { return !(*this == l); } 8657: 8657: inline int size() const { return d->size; } 8657: inline void detach() 8657: { if (d->ref.isShared()) detach_helper2(this->e); } 8657: inline bool isDetached() const { return !d->ref.isShared(); } 8657: 8657: inline void setSharable(bool sharable) { if (!sharable) detach(); if (d != &QLinkedListData::shared_null) d->sharable = sharable; } 8657: 8657: inline bool isSharedWith(const QLinkedList &other) const { return d == other.d; } 8657: 8657: inline bool isEmpty() const { return d->size == 0; } 8657: 8657: void clear(); 8657: 8657: void append(const T &); 8657: void prepend(const T &); 8657: T takeFirst(); 8657: T takeLast(); 8657: int removeAll(const T &t); 8657: bool removeOne(const T &t); 8657: bool contains(const T &t) const; 8657: int count(const T &t) const; 8657: 8657: class const_iterator; 8657: 8657: class iterator 8657: { 8657: public: 8657: typedef std::bidirectional_iterator_tag iterator_category; 8657: typedef qptrdiff difference_type; 8657: typedef T value_type; 8657: typedef T *pointer; 8657: typedef T &reference; 8657: Node *i; 8657: inline iterator() : i(nullptr) {} 8657: inline iterator(Node *n) : i(n) {} 8657: 8657: iterator(const iterator &other) noexcept : i(other.i) {} 8657: iterator &operator=(const iterator &other) noexcept { i = other.i; return *this; } 8657: iterator(iterator &&other) noexcept : i(other.i) {} 8657: iterator &operator=(iterator &&other) noexcept { return *this = other; } 8657: 8657: inline T &operator*() const { return i->t; } 8657: inline T *operator->() const { return &i->t; } 8657: inline bool operator==(const iterator &o) const { return i == o.i; } 8657: inline bool operator!=(const iterator &o) const { return i != o.i; } 8657: inline bool operator==(const const_iterator &o) const 8657: { return i == o.i; } 8657: inline bool operator!=(const const_iterator &o) const 8657: { return i != o.i; } 8657: inline iterator &operator++() { i = i->n; return *this; } 8657: inline iterator operator++(int) { Node *n = i; i = i->n; return n; } 8657: inline iterator &operator--() { i = i->p; return *this; } 8657: inline iterator operator--(int) { Node *n = i; i = i->p; return n; } 8657: inline iterator operator+(int j) const 8657: { Node *n = i; if (j > 0) while (j--) n = n->n; else while (j++) n = n->p; return n; } 8657: inline iterator operator-(int j) const { return operator+(-j); } 8657: inline iterator &operator+=(int j) { return *this = *this + j; } 8657: inline iterator &operator-=(int j) { return *this = *this - j; } 8657: }; 8657: friend class iterator; 8657: 8657: class const_iterator 8657: { 8657: public: 8657: typedef std::bidirectional_iterator_tag iterator_category; 8657: typedef qptrdiff difference_type; 8657: typedef T value_type; 8657: typedef const T *pointer; 8657: typedef const T &reference; 8657: Node *i; 8657: inline const_iterator() : i(nullptr) {} 8657: inline const_iterator(Node *n) : i(n) {} 8657: inline const_iterator(iterator ci) : i(ci.i){} 8657: 8657: const_iterator(const const_iterator &other) noexcept : i(other.i) {} 8657: const_iterator &operator=(const const_iterator &other) noexcept { i = other.i; return *this; } 8657: const_iterator(const_iterator &&other) noexcept : i(other.i) {} 8657: const_iterator &operator=(const_iterator &&other) noexcept { return *this = other; } 8657: 8657: inline const T &operator*() const { return i->t; } 8657: inline const T *operator->() const { return &i->t; } 8657: inline bool operator==(const const_iterator &o) const { return i == o.i; } 8657: inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8657: inline const_iterator &operator++() { i = i->n; return *this; } 8657: inline const_iterator operator++(int) { Node *n = i; i = i->n; return n; } 8657: inline const_iterator &operator--() { i = i->p; return *this; } 8657: inline const_iterator operator--(int) { Node *n = i; i = i->p; return n; } 8657: inline const_iterator operator+(int j) const 8657: { Node *n = i; if (j > 0) while (j--) n = n->n; else while (j++) n = n->p; return n; } 8657: inline const_iterator operator-(int j) const { return operator+(-j); } 8657: inline const_iterator &operator+=(int j) { return *this = *this + j; } 8657: inline const_iterator &operator-=(int j) { return *this = *this - j; } 8657: }; 8657: friend class const_iterator; 8657: 8657: 8657: typedef std::reverse_iterator reverse_iterator; 8657: typedef std::reverse_iterator const_reverse_iterator; 8657: 8657: inline iterator begin() { detach(); return e->n; } 8657: inline const_iterator begin() const noexcept { return e->n; } 8657: inline const_iterator cbegin() const noexcept { return e->n; } 8657: inline const_iterator constBegin() const noexcept { return e->n; } 8657: inline iterator end() { detach(); return e; } 8657: inline const_iterator end() const noexcept { return e; } 8657: inline const_iterator cend() const noexcept { return e; } 8657: inline const_iterator constEnd() const noexcept { return e; } 8657: 8657: reverse_iterator rbegin() { return reverse_iterator(end()); } 8657: reverse_iterator rend() { return reverse_iterator(begin()); } 8657: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8657: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8657: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8657: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8657: 8657: iterator insert(iterator before, const T &t); 8657: iterator erase(iterator pos); 8657: iterator erase(iterator first, iterator last); 8657: 8657: 8657: typedef iterator Iterator; 8657: typedef const_iterator ConstIterator; 8657: inline int count() const { return d->size; } 8657: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8657: inline const T& first() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8657: T& last() { do { } while ((false) && (!isEmpty())); return *(--end()); } 8657: const T& last() const { do { } while ((false) && (!isEmpty())); return *(--end()); } 8657: inline void removeFirst() { do { } while ((false) && (!isEmpty())); erase(begin()); } 8657: inline void removeLast() { do { } while ((false) && (!isEmpty())); erase(--end()); } 8657: inline bool startsWith(const T &t) const { return !isEmpty() && first() == t; } 8657: inline bool endsWith(const T &t) const { return !isEmpty() && last() == t; } 8657: 8657: 8657: inline void push_back(const T &t) { append(t); } 8657: inline void push_front(const T &t) { prepend(t); } 8657: inline T& front() { return first(); } 8657: inline const T& front() const { return first(); } 8657: inline T& back() { return last(); } 8657: inline const T& back() const { return last(); } 8657: inline void pop_front() { removeFirst(); } 8657: inline void pop_back() { removeLast(); } 8657: inline bool empty() const { return isEmpty(); } 8657: typedef int size_type; 8657: typedef T value_type; 8657: typedef value_type *pointer; 8657: typedef const value_type *const_pointer; 8657: typedef value_type &reference; 8657: typedef const value_type &const_reference; 8657: typedef qptrdiff difference_type; 8657: 8657: static inline QLinkedList fromStdList(const std::list &list) 8657: { QLinkedList tmp; std::copy(list.begin(), list.end(), std::back_inserter(tmp)); return tmp; } 8657: inline std::list toStdList() const 8657: { std::list tmp; std::copy(constBegin(), constEnd(), std::back_inserter(tmp)); return tmp; } 8657: 8657: 8657: QLinkedList &operator+=(const QLinkedList &l); 8657: QLinkedList operator+(const QLinkedList &l) const; 8657: inline QLinkedList &operator+=(const T &t) { append(t); return *this; } 8657: inline QLinkedList &operator<< (const T &t) { append(t); return *this; } 8657: inline QLinkedList &operator<<(const QLinkedList &l) { *this += l; return *this; } 8657: 8657: private: 8657: void detach_helper(); 8657: iterator detach_helper2(iterator); 8657: void freeData(QLinkedListData*); 8657: }; 8657: 8657: template 8657: inline QLinkedList::~QLinkedList() 8657: { 8657: if (!d->ref.deref()) 8657: freeData(d); 8657: } 8657: 8657: template 8657: void QLinkedList::detach_helper() 8657: { 8657: detach_helper2(this->e); 8657: } 8657: 8657: template 8657: typename QLinkedList::iterator QLinkedList::detach_helper2(iterator orgite) 8657: { 8657: 8657: bool isEndIterator = (orgite.i == this->e); 8657: union { QLinkedListData *d; Node *e; } x; 8657: x.d = new QLinkedListData; 8657: x.d->ref.initializeOwned(); 8657: x.d->size = d->size; 8657: x.d->sharable = true; 8657: Node *original = e->n; 8657: Node *copy = x.e; 8657: Node *org = orgite.i; 8657: 8657: while (original != org) { 8657: try { 8657: copy->n = new Node(original->t); 8657: copy->n->p = copy; 8657: original = original->n; 8657: copy = copy->n; 8657: } catch (...) { 8657: copy->n = x.e; 8657: do { } while ((false) && (!x.d->ref.deref())); 8657: freeData(x.d); 8657: throw; 8657: } 8657: } 8657: iterator r(copy); 8657: while (original != e) { 8657: try { 8657: copy->n = new Node(original->t); 8657: copy->n->p = copy; 8657: original = original->n; 8657: copy = copy->n; 8657: } catch (...) { 8657: copy->n = x.e; 8657: do { } while ((false) && (!x.d->ref.deref())); 8657: freeData(x.d); 8657: throw; 8657: } 8657: } 8657: copy->n = x.e; 8657: x.e->p = copy; 8657: if (!d->ref.deref()) 8657: freeData(d); 8657: d = x.d; 8657: if (!isEndIterator) 8657: ++r; 8657: return r; 8657: } 8657: 8657: template 8657: void QLinkedList::freeData(QLinkedListData *x) 8657: { 8657: Node *y = reinterpret_cast(x); 8657: Node *i = y->n; 8657: do { } while ((false) && (x->ref.atomic.load() == 0)); 8657: while (i != y) { 8657: Node *n = i; 8657: i = i->n; 8657: delete n; 8657: } 8657: delete x; 8657: } 8657: 8657: template 8657: void QLinkedList::clear() 8657: { 8657: *this = QLinkedList(); 8657: } 8657: 8657: template 8657: QLinkedList &QLinkedList::operator=(const QLinkedList &l) 8657: { 8657: if (d != l.d) { 8657: QLinkedListData *o = l.d; 8657: o->ref.ref(); 8657: if (!d->ref.deref()) 8657: freeData(d); 8657: d = o; 8657: if (!d->sharable) 8657: detach_helper(); 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: bool QLinkedList::operator== (const QLinkedList &l) const 8657: { 8657: if (d->size != l.d->size) 8657: return false; 8657: if (e == l.e) 8657: return true; 8657: Node *i = e->n; 8657: Node *il = l.e->n; 8657: while (i != e) { 8657: if (! (i->t == il->t)) 8657: return false; 8657: i = i->n; 8657: il = il->n; 8657: } 8657: return true; 8657: } 8657: 8657: template 8657: void QLinkedList::append(const T &t) 8657: { 8657: detach(); 8657: Node *i = new Node(t); 8657: i->n = e; 8657: i->p = e->p; 8657: i->p->n = i; 8657: e->p = i; 8657: d->size++; 8657: } 8657: 8657: template 8657: void QLinkedList::prepend(const T &t) 8657: { 8657: detach(); 8657: Node *i = new Node(t); 8657: i->n = e->n; 8657: i->p = e; 8657: i->n->p = i; 8657: e->n = i; 8657: d->size++; 8657: } 8657: 8657: template 8657: int QLinkedList::removeAll(const T &_t) 8657: { 8657: detach(); 8657: const T t = _t; 8657: Node *i = e->n; 8657: int c = 0; 8657: while (i != e) { 8657: if (i->t == t) { 8657: Node *n = i; 8657: i->n->p = i->p; 8657: i->p->n = i->n; 8657: i = i->n; 8657: delete n; 8657: c++; 8657: } else { 8657: i = i->n; 8657: } 8657: } 8657: d->size-=c; 8657: return c; 8657: } 8657: 8657: template 8657: bool QLinkedList::removeOne(const T &_t) 8657: { 8657: detach(); 8657: iterator it = std::find(begin(), end(), _t); 8657: if (it != end()) { 8657: erase(it); 8657: return true; 8657: } 8657: return false; 8657: } 8657: 8657: template 8657: inline T QLinkedList::takeFirst() 8657: { 8657: T t = first(); 8657: removeFirst(); 8657: return t; 8657: } 8657: 8657: template 8657: inline T QLinkedList::takeLast() 8657: { 8657: T t = last(); 8657: removeLast(); 8657: return t; 8657: } 8657: 8657: template 8657: bool QLinkedList::contains(const T &t) const 8657: { 8657: Node *i = e; 8657: while ((i = i->n) != e) 8657: if (i->t == t) 8657: return true; 8657: return false; 8657: } 8657: 8657: template 8657: int QLinkedList::count(const T &t) const 8657: { 8657: Node *i = e; 8657: int c = 0; 8657: while ((i = i->n) != e) 8657: if (i->t == t) 8657: c++; 8657: return c; 8657: } 8657: 8657: 8657: template 8657: typename QLinkedList::iterator QLinkedList::insert(iterator before, const T &t) 8657: { 8657: if (d->ref.isShared()) 8657: before = detach_helper2(before); 8657: 8657: Node *i = before.i; 8657: Node *m = new Node(t); 8657: m->n = i; 8657: m->p = i->p; 8657: m->p->n = m; 8657: i->p = m; 8657: d->size++; 8657: return m; 8657: } 8657: 8657: template 8657: typename QLinkedList::iterator QLinkedList::erase(typename QLinkedList::iterator afirst, 8657: typename QLinkedList::iterator alast) 8657: { 8657: while (afirst != alast) 8657: erase(afirst++); 8657: return alast; 8657: } 8657: 8657: 8657: template 8657: typename QLinkedList::iterator QLinkedList::erase(iterator pos) 8657: { 8657: if (d->ref.isShared()) 8657: pos = detach_helper2(pos); 8657: 8657: Node *i = pos.i; 8657: if (i != e) { 8657: Node *n = i; 8657: i->n->p = i->p; 8657: i->p->n = i->n; 8657: i = i->n; 8657: delete n; 8657: d->size--; 8657: } 8657: return i; 8657: } 8657: 8657: template 8657: QLinkedList &QLinkedList::operator+=(const QLinkedList &l) 8657: { 8657: detach(); 8657: int n = l.d->size; 8657: d->size += n; 8657: Node *original = l.e->n; 8657: while (n--) { 8657: try { 8657: Node *copy = new Node(original->t); 8657: original = original->n; 8657: copy->n = e; 8657: copy->p = e->p; 8657: copy->p->n = copy; 8657: e->p = copy; 8657: } catch (...) { 8657: 8657: while (n++size) 8657: removeLast(); 8657: throw; 8657: } 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: QLinkedList QLinkedList::operator+(const QLinkedList &l) const 8657: { 8657: QLinkedList n = *this; 8657: n += l; 8657: return n; 8657: } 8657: 8657: template class QLinkedListIterator { typedef typename QLinkedList::const_iterator const_iterator; QLinkedList c; const_iterator i; public: inline QLinkedListIterator(const QLinkedList &container) : c(container), i(c.constBegin()) {} inline QLinkedListIterator &operator=(const QLinkedList &container) { c = container; i = c.constBegin(); return *this; } inline void toFront() { i = c.constBegin(); } inline void toBack() { i = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline const T &next() { return *i++; } inline const T &peekNext() const { return *i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline const T &previous() { return *--i; } inline const T &peekPrevious() const { const_iterator p = i; return *--p; } inline bool findNext(const T &t) { while (i != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(--i) == t) return true; return false; } }; 8657: template class QMutableLinkedListIterator { typedef typename QLinkedList::iterator iterator; typedef typename QLinkedList::const_iterator const_iterator; QLinkedList *c; iterator i, n; inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } public: inline QMutableLinkedListIterator(QLinkedList &container) : c(&container) { i = c->begin(); n = c->end(); } inline QMutableLinkedListIterator &operator=(QLinkedList &container) { c = &container; i = c->begin(); n = c->end(); return *this; } inline void toFront() { i = c->begin(); n = c->end(); } inline void toBack() { i = c->end(); n = i; } inline bool hasNext() const { return c->constEnd() != const_iterator(i); } inline T &next() { n = i++; return *n; } inline T &peekNext() const { return *i; } inline bool hasPrevious() const { return c->constBegin() != const_iterator(i); } inline T &previous() { n = --i; return *n; } inline T &peekPrevious() const { iterator p = i; return *--p; } inline void remove() { if (c->constEnd() != const_iterator(n)) { i = c->erase(n); n = c->end(); } } inline void setValue(const T &t) const { if (c->constEnd() != const_iterator(n)) *n = t; } inline T &value() { do { } while ((false) && (item_exists())); return *n; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline void insert(const T &t) { n = i = c->insert(i, t); ++i; } inline bool findNext(const T &t) { while (c->constEnd() != const_iterator(n = i)) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (c->constBegin() != const_iterator(i)) if (*(n = --i) == t) return true; n = c->end(); return false; } }; 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QLinkedList" 2 3 4 8657: # 29 "/<>/templates/tests/testgenerictypes.cpp" 2 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QMetaType" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QMetaType" 2 3 4 8657: # 30 "/<>/templates/tests/testgenerictypes.cpp" 2 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QQueue" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qqueue.h" 1 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qqueue.h" 3 4 8657: 8657: 8657: 8657: template 8657: class QQueue : public QList 8657: { 8657: public: 8657: 8657: inline void swap(QQueue &other) noexcept { QList::swap(other); } 8657: 8657: 8657: 8657: inline void swap(int i, int j) { QList::swap(i, j); } 8657: 8657: inline void enqueue(const T &t) { QList::append(t); } 8657: inline T dequeue() { return QList::takeFirst(); } 8657: inline T &head() { return QList::first(); } 8657: inline const T &head() const { return QList::first(); } 8657: }; 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QQueue" 2 3 4 8657: # 31 "/<>/templates/tests/testgenerictypes.cpp" 2 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QStack" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstack.h" 1 3 4 8657: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstack.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvector.h" 1 3 4 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstack.h" 2 3 4 8657: 8657: 8657: 8657: 8657: template 8657: class QStack : public QVector 8657: { 8657: public: 8657: 8657: inline void swap(QStack &other) noexcept { QVector::swap(other); } 8657: inline void push(const T &t) { QVector::append(t); } 8657: T pop(); 8657: T &top(); 8657: const T &top() const; 8657: }; 8657: 8657: template 8657: inline T QStack::pop() 8657: { do { } while ((false) && (!this->isEmpty())); T t = this->data()[this->size() -1]; 8657: this->resize(this->size()-1); return t; } 8657: 8657: template 8657: inline T &QStack::top() 8657: { do { } while ((false) && (!this->isEmpty())); this->detach(); return this->data()[this->size()-1]; } 8657: 8657: template 8657: inline const T &QStack::top() const 8657: { do { } while ((false) && (!this->isEmpty())); return this->data()[this->size()-1]; } 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QStack" 2 3 4 8657: # 32 "/<>/templates/tests/testgenerictypes.cpp" 2 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVariant" 1 3 4 8657: # 33 "/<>/templates/tests/testgenerictypes.cpp" 2 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVariantHash" 1 3 4 8657: # 34 "/<>/templates/tests/testgenerictypes.cpp" 2 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/QTest" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 1 3 4 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest_global.h" 1 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest_global.h" 3 4 8657: 8657: # 68 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest_global.h" 3 4 8657: namespace QTest 8657: { 8657: enum TestFailMode { Abort = 1, Continue = 2 }; 8657: } 8657: 8657: 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestcase.h" 1 3 4 8657: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestcase.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetaobject.h" 1 3 4 8657: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetaobject.h" 3 4 8657: 8657: 8657: 8657: template class QList; 8657: 8657: 8657: 8657: class __attribute__((visibility("default"))) QMetaMethod 8657: { 8657: public: 8657: constexpr inline QMetaMethod() : mobj(nullptr), handle(0) {} 8657: 8657: QByteArray methodSignature() const; 8657: QByteArray name() const; 8657: const char *typeName() const; 8657: int returnType() const; 8657: int parameterCount() const; 8657: int parameterType(int index) const; 8657: void getParameterTypes(int *types) const; 8657: QList parameterTypes() const; 8657: QList parameterNames() const; 8657: const char *tag() const; 8657: enum Access { Private, Protected, Public }; 8657: Access access() const; 8657: enum MethodType { Method, Signal, Slot, Constructor }; 8657: MethodType methodType() const; 8657: enum Attributes { Compatibility = 0x1, Cloned = 0x2, Scriptable = 0x4 }; 8657: int attributes() const; 8657: int methodIndex() const; 8657: int revision() const; 8657: 8657: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8657: 8657: bool invoke(QObject *object, 8657: Qt::ConnectionType connectionType, 8657: QGenericReturnArgument returnValue, 8657: QGenericArgument val0 = QGenericArgument(nullptr), 8657: QGenericArgument val1 = QGenericArgument(), 8657: QGenericArgument val2 = QGenericArgument(), 8657: QGenericArgument val3 = QGenericArgument(), 8657: QGenericArgument val4 = QGenericArgument(), 8657: QGenericArgument val5 = QGenericArgument(), 8657: QGenericArgument val6 = QGenericArgument(), 8657: QGenericArgument val7 = QGenericArgument(), 8657: QGenericArgument val8 = QGenericArgument(), 8657: QGenericArgument val9 = QGenericArgument()) const; 8657: inline bool invoke(QObject *object, 8657: QGenericReturnArgument returnValue, 8657: QGenericArgument val0 = QGenericArgument(nullptr), 8657: QGenericArgument val1 = QGenericArgument(), 8657: QGenericArgument val2 = QGenericArgument(), 8657: QGenericArgument val3 = QGenericArgument(), 8657: QGenericArgument val4 = QGenericArgument(), 8657: QGenericArgument val5 = QGenericArgument(), 8657: QGenericArgument val6 = QGenericArgument(), 8657: QGenericArgument val7 = QGenericArgument(), 8657: QGenericArgument val8 = QGenericArgument(), 8657: QGenericArgument val9 = QGenericArgument()) const 8657: { 8657: return invoke(object, Qt::AutoConnection, returnValue, 8657: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8657: } 8657: inline bool invoke(QObject *object, 8657: Qt::ConnectionType connectionType, 8657: QGenericArgument val0 = QGenericArgument(nullptr), 8657: QGenericArgument val1 = QGenericArgument(), 8657: QGenericArgument val2 = QGenericArgument(), 8657: QGenericArgument val3 = QGenericArgument(), 8657: QGenericArgument val4 = QGenericArgument(), 8657: QGenericArgument val5 = QGenericArgument(), 8657: QGenericArgument val6 = QGenericArgument(), 8657: QGenericArgument val7 = QGenericArgument(), 8657: QGenericArgument val8 = QGenericArgument(), 8657: QGenericArgument val9 = QGenericArgument()) const 8657: { 8657: return invoke(object, connectionType, QGenericReturnArgument(), 8657: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8657: } 8657: inline bool invoke(QObject *object, 8657: QGenericArgument val0 = QGenericArgument(nullptr), 8657: QGenericArgument val1 = QGenericArgument(), 8657: QGenericArgument val2 = QGenericArgument(), 8657: QGenericArgument val3 = QGenericArgument(), 8657: QGenericArgument val4 = QGenericArgument(), 8657: QGenericArgument val5 = QGenericArgument(), 8657: QGenericArgument val6 = QGenericArgument(), 8657: QGenericArgument val7 = QGenericArgument(), 8657: QGenericArgument val8 = QGenericArgument(), 8657: QGenericArgument val9 = QGenericArgument()) const 8657: { 8657: return invoke(object, Qt::AutoConnection, QGenericReturnArgument(), 8657: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8657: } 8657: 8657: bool invokeOnGadget(void *gadget, 8657: QGenericReturnArgument returnValue, 8657: QGenericArgument val0 = QGenericArgument(nullptr), 8657: QGenericArgument val1 = QGenericArgument(), 8657: QGenericArgument val2 = QGenericArgument(), 8657: QGenericArgument val3 = QGenericArgument(), 8657: QGenericArgument val4 = QGenericArgument(), 8657: QGenericArgument val5 = QGenericArgument(), 8657: QGenericArgument val6 = QGenericArgument(), 8657: QGenericArgument val7 = QGenericArgument(), 8657: QGenericArgument val8 = QGenericArgument(), 8657: QGenericArgument val9 = QGenericArgument()) const; 8657: inline bool invokeOnGadget(void *gadget, 8657: QGenericArgument val0 = QGenericArgument(nullptr), 8657: QGenericArgument val1 = QGenericArgument(), 8657: QGenericArgument val2 = QGenericArgument(), 8657: QGenericArgument val3 = QGenericArgument(), 8657: QGenericArgument val4 = QGenericArgument(), 8657: QGenericArgument val5 = QGenericArgument(), 8657: QGenericArgument val6 = QGenericArgument(), 8657: QGenericArgument val7 = QGenericArgument(), 8657: QGenericArgument val8 = QGenericArgument(), 8657: QGenericArgument val9 = QGenericArgument()) const 8657: { 8657: return invokeOnGadget(gadget, QGenericReturnArgument(), 8657: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8657: } 8657: 8657: inline bool isValid() const { return mobj != nullptr; } 8657: 8657: template 8657: static inline QMetaMethod fromSignal(PointerToMemberFunction signal) 8657: { 8657: typedef QtPrivate::FunctionPointer SignalType; 8657: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8657: ; 8657: return fromSignalImpl(&SignalType::Object::staticMetaObject, 8657: reinterpret_cast(&signal)); 8657: } 8657: 8657: private: 8657: 8657: 8657: 8657: 8657: 8657: 8657: static QMetaMethod fromSignalImpl(const QMetaObject *, void **); 8657: 8657: const QMetaObject *mobj; 8657: uint handle; 8657: friend class QMetaMethodPrivate; 8657: friend struct QMetaObject; 8657: friend struct QMetaObjectPrivate; 8657: friend class QObject; 8657: friend bool operator==(const QMetaMethod &m1, const QMetaMethod &m2); 8657: friend bool operator!=(const QMetaMethod &m1, const QMetaMethod &m2); 8657: }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QMetaMethod)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QMetaMethod >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QMetaMethod) }; static inline const char *name() { return "QMetaMethod"; } }; 8657: 8657: inline bool operator==(const QMetaMethod &m1, const QMetaMethod &m2) 8657: { return m1.mobj == m2.mobj && m1.handle == m2.handle; } 8657: inline bool operator!=(const QMetaMethod &m1, const QMetaMethod &m2) 8657: { return !(m1 == m2); } 8657: 8657: class __attribute__((visibility("default"))) QMetaEnum 8657: { 8657: public: 8657: constexpr inline QMetaEnum() : mobj(nullptr), handle(0) {} 8657: 8657: const char *name() const; 8657: bool isFlag() const; 8657: bool isScoped() const; 8657: 8657: int keyCount() const; 8657: const char *key(int index) const; 8657: int value(int index) const; 8657: 8657: const char *scope() const; 8657: 8657: int keyToValue(const char *key, bool *ok = nullptr) const; 8657: const char* valueToKey(int value) const; 8657: int keysToValue(const char * keys, bool *ok = nullptr) const; 8657: QByteArray valueToKeys(int value) const; 8657: 8657: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8657: 8657: inline bool isValid() const { return name() != nullptr; } 8657: 8657: template static QMetaEnum fromType() { 8657: static_assert(bool(QtPrivate::IsQEnumHelper::Value), "QMetaEnum::fromType only works with enums declared as Q_ENUM or Q_FLAG") 8657: ; 8657: const QMetaObject *metaObject = qt_getEnumMetaObject(T()); 8657: const char *name = qt_getEnumName(T()); 8657: return metaObject->enumerator(metaObject->indexOfEnumerator(name)); 8657: } 8657: 8657: private: 8657: const QMetaObject *mobj; 8657: uint handle; 8657: friend struct QMetaObject; 8657: }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QMetaEnum)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QMetaEnum >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QMetaEnum) }; static inline const char *name() { return "QMetaEnum"; } }; 8657: 8657: class __attribute__((visibility("default"))) QMetaProperty 8657: { 8657: public: 8657: QMetaProperty(); 8657: 8657: const char *name() const; 8657: const char *typeName() const; 8657: QVariant::Type type() const; 8657: int userType() const; 8657: int propertyIndex() const; 8657: 8657: bool isReadable() const; 8657: bool isWritable() const; 8657: bool isResettable() const; 8657: bool isDesignable(const QObject *obj = nullptr) const; 8657: bool isScriptable(const QObject *obj = nullptr) const; 8657: bool isStored(const QObject *obj = nullptr) const; 8657: bool isEditable(const QObject *obj = nullptr) const; 8657: bool isUser(const QObject *obj = nullptr) const; 8657: bool isConstant() const; 8657: bool isFinal() const; 8657: 8657: bool isFlagType() const; 8657: bool isEnumType() const; 8657: QMetaEnum enumerator() const; 8657: 8657: bool hasNotifySignal() const; 8657: QMetaMethod notifySignal() const; 8657: int notifySignalIndex() const; 8657: 8657: int revision() const; 8657: 8657: QVariant read(const QObject *obj) const; 8657: bool write(QObject *obj, const QVariant &value) const; 8657: bool reset(QObject *obj) const; 8657: 8657: QVariant readOnGadget(const void *gadget) const; 8657: bool writeOnGadget(void *gadget, const QVariant &value) const; 8657: bool resetOnGadget(void *gadget) const; 8657: 8657: bool hasStdCppSet() const; 8657: inline bool isValid() const { return isReadable(); } 8657: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8657: 8657: private: 8657: int registerPropertyType() const; 8657: 8657: const QMetaObject *mobj; 8657: uint handle; 8657: int idx; 8657: QMetaEnum menum; 8657: friend struct QMetaObject; 8657: friend struct QMetaObjectPrivate; 8657: }; 8657: 8657: class __attribute__((visibility("default"))) QMetaClassInfo 8657: { 8657: public: 8657: constexpr inline QMetaClassInfo() : mobj(nullptr), handle(0) {} 8657: const char *name() const; 8657: const char *value() const; 8657: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8657: private: 8657: const QMetaObject *mobj; 8657: uint handle; 8657: friend struct QMetaObject; 8657: }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QMetaClassInfo)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QMetaClassInfo >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QMetaClassInfo) }; static inline const char *name() { return "QMetaClassInfo"; } }; 8657: 8657: 8657: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestcase.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer.h" 1 3 4 8657: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestcase.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtemporarydir.h" 1 3 4 8657: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtemporarydir.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdir.h" 1 3 4 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdir.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfileinfo.h" 1 3 4 8657: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfileinfo.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 1 3 4 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 1 3 4 8657: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 3 4 8657: 8657: 8657: class QFileDevicePrivate; 8657: 8657: class __attribute__((visibility("default"))) QFileDevice : public QIODevice 8657: { 8657: 8657: public: 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 3 4 8657: #pragma GCC diagnostic push 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 3 4 8657: 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 3 4 8657: #pragma GCC diagnostic ignored "-Wsuggest-override" 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 3 4 8657: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 3 4 8657: #pragma GCC diagnostic ignored "-Wattributes" 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 3 4 8657: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 3 4 8657: #pragma GCC diagnostic pop 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 3 4 8657: struct QPrivateSignal {}; 8657: 8657: inline QFileDevicePrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QFileDevicePrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QFileDevicePrivate; 8657: 8657: public: 8657: enum FileError { 8657: NoError = 0, 8657: ReadError = 1, 8657: WriteError = 2, 8657: FatalError = 3, 8657: ResourceError = 4, 8657: OpenError = 5, 8657: AbortError = 6, 8657: TimeOutError = 7, 8657: UnspecifiedError = 8, 8657: RemoveError = 9, 8657: RenameError = 10, 8657: PositionError = 11, 8657: ResizeError = 12, 8657: PermissionsError = 13, 8657: CopyError = 14 8657: }; 8657: 8657: enum Permission { 8657: ReadOwner = 0x4000, WriteOwner = 0x2000, ExeOwner = 0x1000, 8657: ReadUser = 0x0400, WriteUser = 0x0200, ExeUser = 0x0100, 8657: ReadGroup = 0x0040, WriteGroup = 0x0020, ExeGroup = 0x0010, 8657: ReadOther = 0x0004, WriteOther = 0x0002, ExeOther = 0x0001 8657: }; 8657: typedef QFlags Permissions; 8657: 8657: enum FileHandleFlag { 8657: AutoCloseHandle = 0x0001, 8657: DontCloseHandle = 0 8657: }; 8657: typedef QFlags FileHandleFlags; 8657: 8657: ~QFileDevice(); 8657: 8657: FileError error() const; 8657: void unsetError(); 8657: 8657: virtual void close() override; 8657: 8657: bool isSequential() const override; 8657: 8657: int handle() const; 8657: virtual QString fileName() const; 8657: 8657: qint64 pos() const override; 8657: bool seek(qint64 offset) override; 8657: bool atEnd() const override; 8657: bool flush(); 8657: 8657: qint64 size() const override; 8657: 8657: virtual bool resize(qint64 sz); 8657: virtual Permissions permissions() const; 8657: virtual bool setPermissions(Permissions permissionSpec); 8657: 8657: 8657: enum MemoryMapFlags { 8657: NoOptions = 0, 8657: MapPrivateOption = 0x0001 8657: }; 8657: 8657: uchar *map(qint64 offset, qint64 size, MemoryMapFlags flags = NoOptions); 8657: bool unmap(uchar *address); 8657: 8657: protected: 8657: QFileDevice(); 8657: 8657: 8657: 8657: explicit QFileDevice(QObject *parent); 8657: QFileDevice(QFileDevicePrivate &dd, QObject *parent = nullptr); 8657: 8657: 8657: qint64 readData(char *data, qint64 maxlen) override; 8657: qint64 writeData(const char *data, qint64 len) override; 8657: qint64 readLineData(char *data, qint64 maxlen) override; 8657: 8657: private: 8657: QFileDevice(const QFileDevice &) = delete; QFileDevice &operator=(const QFileDevice &) = delete; 8657: }; 8657: 8657: constexpr inline QFlags operator|(QFileDevice::Permissions::enum_type f1, QFileDevice::Permissions::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QFileDevice::Permissions::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QFileDevice::Permissions::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: 8657: 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: class QTemporaryFile; 8657: class QFilePrivate; 8657: 8657: class __attribute__((visibility("default"))) QFile : public QFileDevice 8657: { 8657: 8657: public: 8657: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8657: #pragma GCC diagnostic push 8657: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8657: 8657: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8657: #pragma GCC diagnostic ignored "-Wsuggest-override" 8657: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8657: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8657: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8657: #pragma GCC diagnostic ignored "-Wattributes" 8657: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8657: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8657: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8657: #pragma GCC diagnostic pop 8657: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8657: struct QPrivateSignal {}; 8657: 8657: inline QFilePrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QFilePrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QFilePrivate; 8657: 8657: public: 8657: QFile(); 8657: QFile(const QString &name); 8657: 8657: explicit QFile(QObject *parent); 8657: QFile(const QString &name, QObject *parent); 8657: 8657: ~QFile(); 8657: 8657: QString fileName() const override; 8657: void setFileName(const QString &name); 8657: # 87 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8657: static inline QByteArray encodeName(const QString &fileName) 8657: { 8657: return fileName.toLocal8Bit(); 8657: } 8657: static QString decodeName(const QByteArray &localFileName) 8657: { 8657: return QString::fromLocal8Bit(localFileName); 8657: } 8657: 8657: inline static QString decodeName(const char *localFileName) 8657: { return decodeName(QByteArray(localFileName)); } 8657: # 106 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8657: bool exists() const; 8657: static bool exists(const QString &fileName); 8657: 8657: QString readLink() const; 8657: static QString readLink(const QString &fileName); 8657: inline QString symLinkTarget() const { return readLink(); } 8657: inline static QString symLinkTarget(const QString &fileName) { return readLink(fileName); } 8657: 8657: bool remove(); 8657: static bool remove(const QString &fileName); 8657: 8657: bool rename(const QString &newName); 8657: static bool rename(const QString &oldName, const QString &newName); 8657: 8657: bool link(const QString &newName); 8657: static bool link(const QString &oldname, const QString &newName); 8657: 8657: bool copy(const QString &newName); 8657: static bool copy(const QString &fileName, const QString &newName); 8657: 8657: bool open(OpenMode flags) override; 8657: bool open(FILE *f, OpenMode ioFlags, FileHandleFlags handleFlags=DontCloseHandle); 8657: bool open(int fd, OpenMode ioFlags, FileHandleFlags handleFlags=DontCloseHandle); 8657: 8657: qint64 size() const override; 8657: 8657: bool resize(qint64 sz) override; 8657: static bool resize(const QString &filename, qint64 sz); 8657: 8657: Permissions permissions() const override; 8657: static Permissions permissions(const QString &filename); 8657: bool setPermissions(Permissions permissionSpec) override; 8657: static bool setPermissions(const QString &filename, Permissions permissionSpec); 8657: 8657: protected: 8657: 8657: 8657: 8657: QFile(QFilePrivate &dd, QObject *parent = nullptr); 8657: 8657: 8657: private: 8657: friend class QTemporaryFile; 8657: QFile(const QFile &) = delete; QFile &operator=(const QFile &) = delete; 8657: }; 8657: 8657: 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfileinfo.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: class QDir; 8657: class QDirIteratorPrivate; 8657: class QDateTime; 8657: class QFileInfoPrivate; 8657: 8657: class __attribute__((visibility("default"))) QFileInfo 8657: { 8657: friend class QDirIteratorPrivate; 8657: public: 8657: explicit QFileInfo(QFileInfoPrivate *d); 8657: 8657: QFileInfo(); 8657: QFileInfo(const QString &file); 8657: QFileInfo(const QFile &file); 8657: QFileInfo(const QDir &dir, const QString &file); 8657: QFileInfo(const QFileInfo &fileinfo); 8657: ~QFileInfo(); 8657: 8657: QFileInfo &operator=(const QFileInfo &fileinfo); 8657: 8657: QFileInfo &operator=(QFileInfo &&other) noexcept { swap(other); return *this; } 8657: 8657: 8657: void swap(QFileInfo &other) noexcept 8657: { qSwap(d_ptr, other.d_ptr); } 8657: 8657: bool operator==(const QFileInfo &fileinfo) const; 8657: inline bool operator!=(const QFileInfo &fileinfo) const { return !(operator==(fileinfo)); } 8657: 8657: void setFile(const QString &file); 8657: void setFile(const QFile &file); 8657: void setFile(const QDir &dir, const QString &file); 8657: bool exists() const; 8657: static bool exists(const QString &file); 8657: void refresh(); 8657: 8657: QString filePath() const; 8657: QString absoluteFilePath() const; 8657: QString canonicalFilePath() const; 8657: QString fileName() const; 8657: QString baseName() const; 8657: QString completeBaseName() const; 8657: QString suffix() const; 8657: QString bundleName() const; 8657: QString completeSuffix() const; 8657: 8657: QString path() const; 8657: QString absolutePath() const; 8657: QString canonicalPath() const; 8657: QDir dir() const; 8657: QDir absoluteDir() const; 8657: 8657: bool isReadable() const; 8657: bool isWritable() const; 8657: bool isExecutable() const; 8657: bool isHidden() const; 8657: bool isNativePath() const; 8657: 8657: bool isRelative() const; 8657: inline bool isAbsolute() const { return !isRelative(); } 8657: bool makeAbsolute(); 8657: 8657: bool isFile() const; 8657: bool isDir() const; 8657: bool isSymLink() const; 8657: bool isRoot() const; 8657: bool isBundle() const; 8657: 8657: QString readLink() const; 8657: inline QString symLinkTarget() const { return readLink(); } 8657: 8657: QString owner() const; 8657: uint ownerId() const; 8657: QString group() const; 8657: uint groupId() const; 8657: 8657: bool permission(QFile::Permissions permissions) const; 8657: QFile::Permissions permissions() const; 8657: 8657: qint64 size() const; 8657: 8657: QDateTime created() const; 8657: QDateTime lastModified() const; 8657: QDateTime lastRead() const; 8657: 8657: bool caching() const; 8657: void setCaching(bool on); 8657: 8657: protected: 8657: QSharedDataPointer d_ptr; 8657: 8657: private: 8657: QFileInfoPrivate* d_func(); 8657: inline const QFileInfoPrivate* d_func() const 8657: { 8657: return d_ptr.constData(); 8657: } 8657: }; 8657: 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QFileInfo)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QFileInfo >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QFileInfo) }; static inline const char *name() { return "QFileInfo"; } }; inline void swap(QFileInfo &value1, QFileInfo &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8657: 8657: typedef QList QFileInfoList; 8657: 8657: 8657: 8657: template <> struct QMetaTypeId< QFileInfo > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< QFileInfo >("QFileInfo", reinterpret_cast< QFileInfo *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdir.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringlist.h" 1 3 4 8657: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdir.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: class QDirIterator; 8657: class QDirPrivate; 8657: 8657: class __attribute__((visibility("default"))) QDir 8657: { 8657: public: 8657: enum Filter { Dirs = 0x001, 8657: Files = 0x002, 8657: Drives = 0x004, 8657: NoSymLinks = 0x008, 8657: AllEntries = Dirs | Files | Drives, 8657: TypeMask = 0x00f, 8657: 8657: Readable = 0x010, 8657: Writable = 0x020, 8657: Executable = 0x040, 8657: PermissionMask = 0x070, 8657: 8657: Modified = 0x080, 8657: Hidden = 0x100, 8657: System = 0x200, 8657: 8657: AccessMask = 0x3F0, 8657: 8657: AllDirs = 0x400, 8657: CaseSensitive = 0x800, 8657: NoDot = 0x2000, 8657: NoDotDot = 0x4000, 8657: NoDotAndDotDot = NoDot | NoDotDot, 8657: 8657: NoFilter = -1 8657: }; 8657: typedef QFlags Filters; 8657: 8657: enum SortFlag { Name = 0x00, 8657: Time = 0x01, 8657: Size = 0x02, 8657: Unsorted = 0x03, 8657: SortByMask = 0x03, 8657: 8657: DirsFirst = 0x04, 8657: Reversed = 0x08, 8657: IgnoreCase = 0x10, 8657: DirsLast = 0x20, 8657: LocaleAware = 0x40, 8657: Type = 0x80, 8657: NoSort = -1 8657: }; 8657: typedef QFlags SortFlags; 8657: 8657: QDir(const QDir &); 8657: QDir(const QString &path = QString()); 8657: QDir(const QString &path, const QString &nameFilter, 8657: SortFlags sort = SortFlags(Name | IgnoreCase), Filters filter = AllEntries); 8657: ~QDir(); 8657: 8657: QDir &operator=(const QDir &); 8657: QDir &operator=(const QString &path); 8657: 8657: QDir &operator=(QDir &&other) noexcept { swap(other); return *this; } 8657: 8657: 8657: void swap(QDir &other) noexcept 8657: { qSwap(d_ptr, other.d_ptr); } 8657: 8657: void setPath(const QString &path); 8657: QString path() const; 8657: QString absolutePath() const; 8657: QString canonicalPath() const; 8657: 8657: static void addResourceSearchPath(const QString &path); 8657: 8657: static void setSearchPaths(const QString &prefix, const QStringList &searchPaths); 8657: static void addSearchPath(const QString &prefix, const QString &path); 8657: static QStringList searchPaths(const QString &prefix); 8657: 8657: QString dirName() const; 8657: QString filePath(const QString &fileName) const; 8657: QString absoluteFilePath(const QString &fileName) const; 8657: QString relativeFilePath(const QString &fileName) const; 8657: 8657: static QString toNativeSeparators(const QString &pathName); 8657: static QString fromNativeSeparators(const QString &pathName); 8657: 8657: bool cd(const QString &dirName); 8657: bool cdUp(); 8657: 8657: QStringList nameFilters() const; 8657: void setNameFilters(const QStringList &nameFilters); 8657: 8657: Filters filter() const; 8657: void setFilter(Filters filter); 8657: SortFlags sorting() const; 8657: void setSorting(SortFlags sort); 8657: 8657: uint count() const; 8657: bool isEmpty(Filters filters = Filters(AllEntries | NoDotAndDotDot)) const; 8657: 8657: QString operator[](int) const; 8657: 8657: static QStringList nameFiltersFromString(const QString &nameFilter); 8657: 8657: QStringList entryList(Filters filters = NoFilter, SortFlags sort = NoSort) const; 8657: QStringList entryList(const QStringList &nameFilters, Filters filters = NoFilter, 8657: SortFlags sort = NoSort) const; 8657: 8657: QFileInfoList entryInfoList(Filters filters = NoFilter, SortFlags sort = NoSort) const; 8657: QFileInfoList entryInfoList(const QStringList &nameFilters, Filters filters = NoFilter, 8657: SortFlags sort = NoSort) const; 8657: 8657: bool mkdir(const QString &dirName) const; 8657: bool rmdir(const QString &dirName) const; 8657: bool mkpath(const QString &dirPath) const; 8657: bool rmpath(const QString &dirPath) const; 8657: 8657: bool removeRecursively(); 8657: 8657: bool isReadable() const; 8657: bool exists() const; 8657: bool isRoot() const; 8657: 8657: static bool isRelativePath(const QString &path); 8657: inline static bool isAbsolutePath(const QString &path) { return !isRelativePath(path); } 8657: bool isRelative() const; 8657: inline bool isAbsolute() const { return !isRelative(); } 8657: bool makeAbsolute(); 8657: 8657: bool operator==(const QDir &dir) const; 8657: inline bool operator!=(const QDir &dir) const { return !operator==(dir); } 8657: 8657: bool remove(const QString &fileName); 8657: bool rename(const QString &oldName, const QString &newName); 8657: bool exists(const QString &name) const; 8657: 8657: static QFileInfoList drives(); 8657: 8657: constexpr static inline QChar listSeparator() noexcept 8657: { 8657: 8657: 8657: 8657: return QLatin1Char(':'); 8657: 8657: } 8657: 8657: static QChar separator(); 8657: 8657: static bool setCurrent(const QString &path); 8657: static inline QDir current() { return QDir(currentPath()); } 8657: static QString currentPath(); 8657: 8657: static inline QDir home() { return QDir(homePath()); } 8657: static QString homePath(); 8657: static inline QDir root() { return QDir(rootPath()); } 8657: static QString rootPath(); 8657: static inline QDir temp() { return QDir(tempPath()); } 8657: static QString tempPath(); 8657: 8657: 8657: static bool match(const QStringList &filters, const QString &fileName); 8657: static bool match(const QString &filter, const QString &fileName); 8657: 8657: 8657: static QString cleanPath(const QString &path); 8657: void refresh() const; 8657: 8657: protected: 8657: explicit QDir(QDirPrivate &d); 8657: 8657: QSharedDataPointer d_ptr; 8657: 8657: private: 8657: friend class QDirIterator; 8657: 8657: QDirPrivate* d_func(); 8657: inline const QDirPrivate* d_func() const 8657: { 8657: return d_ptr.constData(); 8657: } 8657: 8657: }; 8657: 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QDir)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QDir >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QDir) }; static inline const char *name() { return "QDir"; } }; inline void swap(QDir &value1, QDir &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8657: constexpr inline QFlags operator|(QDir::Filters::enum_type f1, QDir::Filters::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QDir::Filters::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QDir::Filters::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: constexpr inline QFlags operator|(QDir::SortFlags::enum_type f1, QDir::SortFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QDir::SortFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QDir::SortFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: 8657: 8657: class QDebug; 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug debug, QDir::Filters filters); 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug debug, const QDir &dir); 8657: 8657: 8657: 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtemporarydir.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QScopedPointer" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qscopedpointer.h" 1 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QScopedPointer" 2 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtemporarydir.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: class QTemporaryDirPrivate; 8657: 8657: class __attribute__((visibility("default"))) QTemporaryDir 8657: { 8657: public: 8657: QTemporaryDir(); 8657: explicit QTemporaryDir(const QString &templateName); 8657: ~QTemporaryDir(); 8657: 8657: bool isValid() const; 8657: QString errorString() const; 8657: 8657: bool autoRemove() const; 8657: void setAutoRemove(bool b); 8657: bool remove(); 8657: 8657: QString path() const; 8657: QString filePath(const QString &fileName) const; 8657: 8657: private: 8657: QScopedPointer d_ptr; 8657: 8657: QTemporaryDir(const QTemporaryDir &) = delete; QTemporaryDir &operator=(const QTemporaryDir &) = delete; 8657: }; 8657: 8657: 8657: 8657: 8657: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestcase.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: class QRegularExpression; 8657: # 231 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestcase.h" 3 4 8657: class QObject; 8657: class QTestData; 8657: 8657: 8657: 8657: 8657: namespace QTest 8657: { 8657: namespace Internal { 8657: 8657: template 8657: inline typename std::enable_if::Value, char*>::type toString(T e) 8657: { 8657: QMetaEnum me = QMetaEnum::fromType(); 8657: return qstrdup(me.valueToKey(int(e))); 8657: } 8657: 8657: template 8657: inline typename std::enable_if::Value, char*>::type toString(const T &) 8657: { 8657: return nullptr; 8657: } 8657: 8657: } 8657: 8657: template 8657: inline char *toString(const T &t) 8657: { 8657: return Internal::toString(t); 8657: } 8657: 8657: __attribute__((visibility("default"))) char *toHexRepresentation(const char *ba, int length); 8657: __attribute__((visibility("default"))) char *toPrettyCString(const char *unicode, int length); 8657: __attribute__((visibility("default"))) char *toPrettyUnicode(const ushort *unicode, int length); 8657: __attribute__((visibility("default"))) char *toString(const char *); 8657: __attribute__((visibility("default"))) char *toString(const void *); 8657: 8657: __attribute__((visibility("default"))) int qExec(QObject *testObject, int argc = 0, char **argv = nullptr); 8657: __attribute__((visibility("default"))) int qExec(QObject *testObject, const QStringList &arguments); 8657: 8657: __attribute__((visibility("default"))) void setMainSourcePath(const char *file, const char *builddir = nullptr); 8657: 8657: __attribute__((visibility("default"))) bool qVerify(bool statement, const char *statementStr, const char *description, 8657: const char *file, int line); 8657: __attribute__((visibility("default"))) void qFail(const char *statementStr, const char *file, int line); 8657: __attribute__((visibility("default"))) void qSkip(const char *message, const char *file, int line); 8657: __attribute__((visibility("default"))) bool qExpectFail(const char *dataIndex, const char *comment, TestFailMode mode, 8657: const char *file, int line); 8657: __attribute__((visibility("default"))) void qWarn(const char *message, const char *file = nullptr, int line = 0); 8657: __attribute__((visibility("default"))) void ignoreMessage(QtMsgType type, const char *message); 8657: 8657: __attribute__((visibility("default"))) void ignoreMessage(QtMsgType type, const QRegularExpression &messagePattern); 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) QSharedPointer qExtractTestData(const QString &dirName); 8657: 8657: __attribute__((visibility("default"))) QString qFindTestData(const char* basepath, const char* file = nullptr, int line = 0, const char* builddir = nullptr); 8657: __attribute__((visibility("default"))) QString qFindTestData(const QString& basepath, const char* file = nullptr, int line = 0, const char* builddir = nullptr); 8657: 8657: __attribute__((visibility("default"))) void *qData(const char *tagName, int typeId); 8657: __attribute__((visibility("default"))) void *qGlobalData(const char *tagName, int typeId); 8657: __attribute__((visibility("default"))) void *qElementData(const char *elementName, int metaTypeId); 8657: __attribute__((visibility("default"))) QObject *testObject(); 8657: 8657: __attribute__((visibility("default"))) const char *currentAppName(); 8657: 8657: __attribute__((visibility("default"))) const char *currentTestFunction(); 8657: __attribute__((visibility("default"))) const char *currentDataTag(); 8657: __attribute__((visibility("default"))) bool currentTestFailed(); 8657: 8657: __attribute__((visibility("default"))) Qt::Key asciiToKey(char ascii); 8657: __attribute__((visibility("default"))) char keyToAscii(Qt::Key key); 8657: 8657: __attribute__((visibility("default"))) bool compare_helper(bool success, const char *failureMsg, 8657: char *val1, char *val2, 8657: const char *actual, const char *expected, 8657: const char *file, int line); 8657: __attribute__((visibility("default"))) void qSleep(int ms); 8657: __attribute__((visibility("default"))) void addColumnInternal(int id, const char *name); 8657: 8657: template 8657: inline void addColumn(const char *name, T * = nullptr) 8657: { 8657: typedef std::is_same QIsSameTConstChar; 8657: static_assert(bool(!QIsSameTConstChar::value), "const char* is not allowed as a test data format."); 8657: addColumnInternal(qMetaTypeId(), name); 8657: } 8657: __attribute__((visibility("default"))) QTestData &newRow(const char *dataTag); 8657: __attribute__((visibility("default"))) QTestData &addRow(const char *format, ...) __attribute__((format(printf, (1), (2)))); 8657: 8657: template 8657: inline bool qCompare(T const &t1, T const &t2, const char *actual, const char *expected, 8657: const char *file, int line) 8657: { 8657: return compare_helper(t1 == t2, "Compared values are not the same", 8657: toString(t1), toString(t2), actual, expected, file, line); 8657: } 8657: 8657: __attribute__((visibility("default"))) bool qCompare(float const &t1, float const &t2, 8657: const char *actual, const char *expected, const char *file, int line); 8657: 8657: __attribute__((visibility("default"))) bool qCompare(double const &t1, double const &t2, 8657: const char *actual, const char *expected, const char *file, int line); 8657: 8657: inline bool compare_ptr_helper(const volatile void *t1, const volatile void *t2, const char *actual, 8657: const char *expected, const char *file, int line) 8657: { 8657: return compare_helper(t1 == t2, "Compared pointers are not the same", 8657: toString(t1), toString(t2), actual, expected, file, line); 8657: } 8657: 8657: inline bool compare_ptr_helper(const volatile void *t1, std::nullptr_t, const char *actual, 8657: const char *expected, const char *file, int line) 8657: { 8657: return compare_helper(t1 == nullptr, "Compared pointers are not the same", 8657: toString(t1), toString(nullptr), actual, expected, file, line); 8657: } 8657: 8657: inline bool compare_ptr_helper(std::nullptr_t, const volatile void *t2, const char *actual, 8657: const char *expected, const char *file, int line) 8657: { 8657: return compare_helper(nullptr == t2, "Compared pointers are not the same", 8657: toString(nullptr), toString(t2), actual, expected, file, line); 8657: } 8657: 8657: __attribute__((visibility("default"))) bool compare_string_helper(const char *t1, const char *t2, const char *actual, 8657: const char *expected, const char *file, int line); 8657: 8657: 8657: template<> __attribute__((visibility("default"))) char *toString(const short &); 8657: template<> __attribute__((visibility("default"))) char *toString(const ushort &); 8657: template<> __attribute__((visibility("default"))) char *toString(const int &); 8657: template<> __attribute__((visibility("default"))) char *toString(const uint &); 8657: template<> __attribute__((visibility("default"))) char *toString(const long &); 8657: template<> __attribute__((visibility("default"))) char *toString(const ulong &); 8657: template<> __attribute__((visibility("default"))) char *toString(const qint64 &); 8657: template<> __attribute__((visibility("default"))) char *toString(const quint64 &); 8657: 8657: template<> __attribute__((visibility("default"))) char *toString(const float &); 8657: template<> __attribute__((visibility("default"))) char *toString(const double &); 8657: template<> __attribute__((visibility("default"))) char *toString(const char &); 8657: template<> __attribute__((visibility("default"))) char *toString(const signed char &); 8657: template<> __attribute__((visibility("default"))) char *toString(const unsigned char &); 8657: template<> __attribute__((visibility("default"))) char *toString(const bool &); 8657: 8657: 8657: template 8657: bool qCompare(T1 const &, T2 const &, const char *, const char *, const char *, int); 8657: 8657: inline bool qCompare(double const &t1, float const &t2, const char *actual, 8657: const char *expected, const char *file, int line) 8657: { 8657: return qCompare(qreal(t1), qreal(t2), actual, expected, file, line); 8657: } 8657: 8657: inline bool qCompare(float const &t1, double const &t2, const char *actual, 8657: const char *expected, const char *file, int line) 8657: { 8657: return qCompare(qreal(t1), qreal(t2), actual, expected, file, line); 8657: } 8657: 8657: template 8657: inline bool qCompare(const T *t1, const T *t2, const char *actual, const char *expected, 8657: const char *file, int line) 8657: { 8657: return compare_ptr_helper(t1, t2, actual, expected, file, line); 8657: } 8657: template 8657: inline bool qCompare(T *t1, T *t2, const char *actual, const char *expected, 8657: const char *file, int line) 8657: { 8657: return compare_ptr_helper(t1, t2, actual, expected, file, line); 8657: } 8657: 8657: template 8657: inline bool qCompare(T *t1, std::nullptr_t, const char *actual, const char *expected, 8657: const char *file, int line) 8657: { 8657: return compare_ptr_helper(t1, nullptr, actual, expected, file, line); 8657: } 8657: template 8657: inline bool qCompare(std::nullptr_t, T *t2, const char *actual, const char *expected, 8657: const char *file, int line) 8657: { 8657: return compare_ptr_helper(nullptr, t2, actual, expected, file, line); 8657: } 8657: 8657: template 8657: inline bool qCompare(const T1 *t1, const T2 *t2, const char *actual, const char *expected, 8657: const char *file, int line) 8657: { 8657: return compare_ptr_helper(t1, static_cast(t2), actual, expected, file, line); 8657: } 8657: template 8657: inline bool qCompare(T1 *t1, T2 *t2, const char *actual, const char *expected, 8657: const char *file, int line) 8657: { 8657: return compare_ptr_helper(const_cast(t1), 8657: static_cast(const_cast(t2)), actual, expected, file, line); 8657: } 8657: inline bool qCompare(const char *t1, const char *t2, const char *actual, 8657: const char *expected, const char *file, int line) 8657: { 8657: return compare_string_helper(t1, t2, actual, expected, file, line); 8657: } 8657: inline bool qCompare(char *t1, char *t2, const char *actual, const char *expected, 8657: const char *file, int line) 8657: { 8657: return compare_string_helper(t1, t2, actual, expected, file, line); 8657: } 8657: 8657: 8657: 8657: 8657: inline bool qCompare(char *t1, const char *t2, const char *actual, 8657: const char *expected, const char *file, int line) 8657: { 8657: return compare_string_helper(t1, t2, actual, expected, file, line); 8657: } 8657: inline bool qCompare(const char *t1, char *t2, const char *actual, 8657: const char *expected, const char *file, int line) 8657: { 8657: return compare_string_helper(t1, t2, actual, expected, file, line); 8657: } 8657: 8657: template 8657: inline bool qTest(const T& actual, const char *elementName, const char *actualStr, 8657: const char *expected, const char *file, int line) 8657: { 8657: return qCompare(actual, *static_cast(QTest::qElementData(elementName, 8657: qMetaTypeId())), actualStr, expected, file, line); 8657: } 8657: } 8657: 8657: 8657: 8657: 8657: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestdata.h" 1 3 4 8657: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestdata.h" 3 4 8657: 8657: 8657: 8657: class QTestTable; 8657: class QTestDataPrivate; 8657: 8657: class __attribute__((visibility("default"))) QTestData 8657: { 8657: public: 8657: ~QTestData(); 8657: 8657: void append(int type, const void *data); 8657: void *data(int index) const; 8657: const char *dataTag() const; 8657: QTestTable *parent() const; 8657: int dataCount() const; 8657: 8657: private: 8657: friend class QTestTable; 8657: QTestData(const char *tag, QTestTable *parent); 8657: 8657: QTestData(const QTestData &) = delete; QTestData &operator=(const QTestData &) = delete; 8657: 8657: QTestDataPrivate *d; 8657: }; 8657: 8657: template 8657: QTestData &operator<<(QTestData &data, const T &value) 8657: { 8657: data.append(qMetaTypeId(), &value); 8657: return data; 8657: } 8657: 8657: inline QTestData &operator<<(QTestData &data, const char * value) 8657: { 8657: QString str = QString::fromUtf8(value); 8657: data.append(QMetaType::QString, &str); 8657: return data; 8657: } 8657: 8657: 8657: template 8657: inline QTestData &operator<<(QTestData &data, const QStringBuilder &value) 8657: { 8657: return data << typename QConcatenable >::ConvertTo(value); 8657: } 8657: 8657: 8657: 8657: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qbenchmark.h" 1 3 4 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qbenchmark.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qbenchmarkmetric.h" 1 3 4 8657: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qbenchmarkmetric.h" 3 4 8657: 8657: 8657: 8657: namespace QTest { 8657: 8657: enum QBenchmarkMetric { 8657: FramesPerSecond, 8657: BitsPerSecond, 8657: BytesPerSecond, 8657: WalltimeMilliseconds, 8657: CPUTicks, 8657: InstructionReads, 8657: Events, 8657: WalltimeNanoseconds, 8657: BytesAllocated, 8657: CPUMigrations, 8657: CPUCycles, 8657: BusCycles, 8657: StalledCycles, 8657: Instructions, 8657: BranchInstructions, 8657: BranchMisses, 8657: CacheReferences, 8657: CacheReads, 8657: CacheWrites, 8657: CachePrefetches, 8657: CacheMisses, 8657: CacheReadMisses, 8657: CacheWriteMisses, 8657: CachePrefetchMisses, 8657: ContextSwitches, 8657: PageFaults, 8657: MinorPageFaults, 8657: MajorPageFaults, 8657: AlignmentFaults, 8657: EmulationFaults, 8657: RefCPUCycles, 8657: }; 8657: 8657: } 8657: 8657: 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qbenchmark.h" 2 3 4 8657: 8657: 8657: 8657: 8657: namespace QTest 8657: { 8657: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qbenchmark.h" 3 4 8657: class __attribute__((visibility("default"))) QBenchmarkIterationController 8657: { 8657: public: 8657: enum RunMode { RepeatUntilValidMeasurement, RunOnce }; 8657: QBenchmarkIterationController(); 8657: QBenchmarkIterationController(RunMode runMode); 8657: ~QBenchmarkIterationController(); 8657: bool isDone(); 8657: void next(); 8657: int i; 8657: }; 8657: 8657: } 8657: # 84 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qbenchmark.h" 3 4 8657: namespace QTest 8657: { 8657: void __attribute__((visibility("default"))) setBenchmarkResult(qreal result, QBenchmarkMetric metric); 8657: } 8657: 8657: 8657: 8657: 8657: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8657: 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringlist.h" 1 3 4 8657: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdatetime.h" 1 3 4 8657: # 55 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdatetime.h" 3 4 8657: 8657: 8657: class QTimeZone; 8657: 8657: class __attribute__((visibility("default"))) QDate 8657: { 8657: public: 8657: enum MonthNameType { 8657: DateFormat = 0, 8657: StandaloneFormat 8657: }; 8657: private: 8657: explicit constexpr QDate(qint64 julianDay) : jd(julianDay) {} 8657: public: 8657: constexpr QDate() : jd(nullJd()) {} 8657: QDate(int y, int m, int d); 8657: 8657: constexpr bool isNull() const { return !isValid(); } 8657: constexpr bool isValid() const { return jd >= minJd() && jd <= maxJd(); } 8657: 8657: int year() const; 8657: int month() const; 8657: int day() const; 8657: int dayOfWeek() const;make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' 8657: int dayOfYear() const; 8657: int daysInMonth() const; 8657: int daysInYear() const; 8657: int weekNumber(int *yearNum = nullptr) const; 8657: 8657: 8657: static QString shortMonthName(int month, MonthNameType type = DateFormat); 8657: static QString shortDayName(int weekday, MonthNameType type = DateFormat); 8657: static QString longMonthName(int month, MonthNameType type = DateFormat); 8657: static QString longDayName(int weekday, MonthNameType type = DateFormat); 8657: 8657: 8657: QString toString(Qt::DateFormat f = Qt::TextDate) const; 8657: QString toString(const QString &format) const; 8657: 8657: 8657: 8657: 8657: 8657: 8657: bool setDate(int year, int month, int day); 8657: 8657: 8657: void getDate(int *year, int *month, int *day); 8657: 8657: void getDate(int *year, int *month, int *day) const; 8657: 8657: [[nodiscard]] QDate addDays(qint64 days) const; 8657: [[nodiscard]] QDate addMonths(int months) const; 8657: [[nodiscard]] QDate addYears(int years) const; 8657: qint64 daysTo(const QDate &) const; 8657: 8657: constexpr bool operator==(const QDate &other) const { return jd == other.jd; } 8657: constexpr bool operator!=(const QDate &other) const { return jd != other.jd; } 8657: constexpr bool operator< (const QDate &other) const { return jd < other.jd; } 8657: constexpr bool operator<=(const QDate &other) const { return jd <= other.jd; } 8657: constexpr bool operator> (const QDate &other) const { return jd > other.jd; } 8657: constexpr bool operator>=(const QDate &other) const { return jd >= other.jd; } 8657: 8657: static QDate currentDate(); 8657: 8657: static QDate fromString(const QString &s, Qt::DateFormat f = Qt::TextDate); 8657: static QDate fromString(const QString &s, const QString &format); 8657: 8657: static bool isValid(int y, int m, int d); 8657: static bool isLeapYear(int year); 8657: 8657: static constexpr inline QDate fromJulianDay(qint64 jd_) 8657: { return jd_ >= minJd() && jd_ <= maxJd() ? QDate(jd_) : QDate() ; } 8657: constexpr inline qint64 toJulianDay() const { return jd; } 8657: 8657: private: 8657: 8657: static constexpr inline qint64 nullJd() { return (std::numeric_limits::min)(); } 8657: static constexpr inline qint64 minJd() { return static_cast(-784350574879LL); } 8657: static constexpr inline qint64 maxJd() { return static_cast(784354017364LL); } 8657: 8657: qint64 jd; 8657: 8657: friend class QDateTime; 8657: friend class QDateTimePrivate; 8657: 8657: friend __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QDate &); 8657: friend __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QDate &); 8657: 8657: }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QDate)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QDate >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QDate) }; static inline const char *name() { return "QDate"; } }; 8657: 8657: class __attribute__((visibility("default"))) QTime 8657: { 8657: explicit constexpr QTime(int ms) : mds(ms) 8657: {} 8657: public: 8657: constexpr QTime(): mds(NullTime) 8657: {} 8657: QTime(int h, int m, int s = 0, int ms = 0); 8657: 8657: constexpr bool isNull() const { return mds == NullTime; } 8657: bool isValid() const; 8657: 8657: int hour() const; 8657: int minute() const; 8657: int second() const; 8657: int msec() const; 8657: 8657: QString toString(Qt::DateFormat f = Qt::TextDate) const; 8657: QString toString(const QString &format) const; 8657: 8657: bool setHMS(int h, int m, int s, int ms = 0); 8657: 8657: [[nodiscard]] QTime addSecs(int secs) const; 8657: int secsTo(const QTime &) const; 8657: [[nodiscard]] QTime addMSecs(int ms) const; 8657: int msecsTo(const QTime &) const; 8657: 8657: constexpr bool operator==(const QTime &other) const { return mds == other.mds; } 8657: constexpr bool operator!=(const QTime &other) const { return mds != other.mds; } 8657: constexpr bool operator< (const QTime &other) const { return mds < other.mds; } 8657: constexpr bool operator<=(const QTime &other) const { return mds <= other.mds; } 8657: constexpr bool operator> (const QTime &other) const { return mds > other.mds; } 8657: constexpr bool operator>=(const QTime &other) const { return mds >= other.mds; } 8657: 8657: static constexpr inline QTime fromMSecsSinceStartOfDay(int msecs) { return QTime(msecs); } 8657: constexpr inline int msecsSinceStartOfDay() const { return mds == NullTime ? 0 : mds; } 8657: 8657: static QTime currentTime(); 8657: 8657: static QTime fromString(const QString &s, Qt::DateFormat f = Qt::TextDate); 8657: static QTime fromString(const QString &s, const QString &format); 8657: 8657: static bool isValid(int h, int m, int s, int ms = 0); 8657: 8657: void start(); 8657: int restart(); 8657: int elapsed() const; 8657: private: 8657: enum TimeFlag { NullTime = -1 }; 8657: constexpr inline int ds() const { return mds == -1 ? 0 : mds; } 8657: int mds; 8657: 8657: friend class QDateTime; 8657: friend class QDateTimePrivate; 8657: 8657: friend __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QTime &); 8657: friend __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QTime &); 8657: 8657: }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QTime)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QTime >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QTime) }; static inline const char *name() { return "QTime"; } }; 8657: 8657: class QDateTimePrivate; 8657: 8657: class __attribute__((visibility("default"))) QDateTime 8657: { 8657: 8657: struct ShortData { 8657: 8657: quintptr status : 8; 8657: 8657: 8657: qintptr msecs : sizeof(void *) * 8 - 8; 8657: 8657: 8657: 8657: 8657: }; 8657: 8657: union Data { 8657: enum { 8657: 8657: 8657: 8657: CanBeSmall = sizeof(ShortData) * 8 > 50 8657: }; 8657: 8657: Data(); 8657: Data(Qt::TimeSpec); 8657: Data(const Data &other); 8657: Data(Data &&other); 8657: Data &operator=(const Data &other); 8657: ~Data(); 8657: 8657: bool isShort() const; 8657: void detach(); 8657: 8657: const QDateTimePrivate *operator->() const; 8657: QDateTimePrivate *operator->(); 8657: 8657: QDateTimePrivate *d; 8657: ShortData data; 8657: }; 8657: 8657: public: 8657: QDateTime() noexcept(Data::CanBeSmall); 8657: explicit QDateTime(const QDate &); 8657: QDateTime(const QDate &, const QTime &, Qt::TimeSpec spec = Qt::LocalTime); 8657: 8657: QDateTime(const QDate &date, const QTime &time, Qt::TimeSpec spec, int offsetSeconds); 8657: 8657: QDateTime(const QDate &date, const QTime &time, const QTimeZone &timeZone); 8657: 8657: QDateTime(const QDateTime &other) noexcept; 8657: QDateTime(QDateTime &&other) noexcept; 8657: ~QDateTime(); 8657: 8657: 8657: QDateTime &operator=(QDateTime &&other) noexcept { swap(other); return *this; } 8657: 8657: QDateTime &operator=(const QDateTime &other) noexcept; 8657: 8657: void swap(QDateTime &other) noexcept { qSwap(d.d, other.d.d); } 8657: 8657: bool isNull() const; 8657: bool isValid() const; 8657: 8657: QDate date() const; 8657: QTime time() const; 8657: Qt::TimeSpec timeSpec() const; 8657: int offsetFromUtc() const; 8657: 8657: QTimeZone timeZone() const; 8657: 8657: QString timeZoneAbbreviation() const; 8657: bool isDaylightTime() const; 8657: 8657: qint64 toMSecsSinceEpoch() const; 8657: qint64 toSecsSinceEpoch() const; 8657: 8657: void setDate(const QDate &date); 8657: void setTime(const QTime &time); 8657: void setTimeSpec(Qt::TimeSpec spec); 8657: void setOffsetFromUtc(int offsetSeconds); 8657: 8657: void setTimeZone(const QTimeZone &toZone); 8657: 8657: void setMSecsSinceEpoch(qint64 msecs); 8657: void setSecsSinceEpoch(qint64 secs); 8657: 8657: 8657: QString toString(Qt::DateFormat f = Qt::TextDate) const; 8657: QString toString(const QString &format) const; 8657: 8657: [[nodiscard]] QDateTime addDays(qint64 days) const; 8657: [[nodiscard]] QDateTime addMonths(int months) const; 8657: [[nodiscard]] QDateTime addYears(int years) const; 8657: [[nodiscard]] QDateTime addSecs(qint64 secs) const; 8657: [[nodiscard]] QDateTime addMSecs(qint64 msecs) const; 8657: 8657: QDateTime toTimeSpec(Qt::TimeSpec spec) const; 8657: inline QDateTime toLocalTime() const { return toTimeSpec(Qt::LocalTime); } 8657: inline QDateTime toUTC() const { return toTimeSpec(Qt::UTC); } 8657: QDateTime toOffsetFromUtc(int offsetSeconds) const; 8657: 8657: QDateTime toTimeZone(const QTimeZone &toZone) const; 8657: 8657: 8657: qint64 daysTo(const QDateTime &) const; 8657: qint64 secsTo(const QDateTime &) const; 8657: qint64 msecsTo(const QDateTime &) const; 8657: 8657: bool operator==(const QDateTime &other) const; 8657: inline bool operator!=(const QDateTime &other) const { return !(*this == other); } 8657: bool operator<(const QDateTime &other) const; 8657: inline bool operator<=(const QDateTime &other) const { return !(other < *this); } 8657: inline bool operator>(const QDateTime &other) const { return other < *this; } 8657: inline bool operator>=(const QDateTime &other) const { return !(*this < other); } 8657: 8657: 8657: void setUtcOffset(int seconds); 8657: int utcOffset() const; 8657: 8657: 8657: static QDateTime currentDateTime(); 8657: static QDateTime currentDateTimeUtc(); 8657: 8657: static QDateTime fromString(const QString &s, Qt::DateFormat f = Qt::TextDate); 8657: static QDateTime fromString(const QString &s, const QString &format); 8657: 8657: 8657: 8657: uint toTime_t() const; 8657: void setTime_t(uint secsSince1Jan1970UTC); 8657: static QDateTime fromTime_t(uint secsSince1Jan1970UTC); 8657: static QDateTime fromTime_t(uint secsSince1Jan1970UTC, Qt::TimeSpec spec, 8657: int offsetFromUtc = 0); 8657: static QDateTime fromTime_t(uint secsSince1Jan1970UTC, const QTimeZone &timeZone); 8657: 8657: 8657: static QDateTime fromMSecsSinceEpoch(qint64 msecs); 8657: 8657: static QDateTime fromMSecsSinceEpoch(qint64 msecs, Qt::TimeSpec spec, int offsetFromUtc = 0); 8657: static QDateTime fromSecsSinceEpoch(qint64 secs, Qt::TimeSpec spe = Qt::LocalTime, int offsetFromUtc = 0); 8657: 8657: 8657: static QDateTime fromMSecsSinceEpoch(qint64 msecs, const QTimeZone &timeZone); 8657: static QDateTime fromSecsSinceEpoch(qint64 secs, const QTimeZone &timeZone); 8657: 8657: 8657: static qint64 currentMSecsSinceEpoch() noexcept; 8657: static qint64 currentSecsSinceEpoch() noexcept; 8657: # 366 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdatetime.h" 3 4 8657: private: 8657: friend class QDateTimePrivate; 8657: 8657: Data d; 8657: 8657: 8657: friend __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QDateTime &); 8657: friend __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QDateTime &); 8657: 8657: 8657: 8657: friend __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QDateTime &); 8657: 8657: }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QDateTime)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QDateTime >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QDateTime) }; static inline const char *name() { return "QDateTime"; } }; inline void swap(QDateTime &value1, QDateTime &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8657: 8657: 8657: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QDate &); 8657: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QDate &); 8657: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QTime &); 8657: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QTime &); 8657: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QDateTime &); 8657: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QDateTime &); 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QDate &); 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QTime &); 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QDateTime &); 8657: 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) uint qHash(const QDateTime &key, uint seed = 0); 8657: __attribute__((visibility("default"))) uint qHash(const QDate &key, uint seed = 0) noexcept; 8657: __attribute__((visibility("default"))) uint qHash(const QTime &key, uint seed = 0) noexcept; 8657: 8657: 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qurl.h" 1 3 4 8657: # 56 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qurl.h" 3 4 8657: 8657: 8657: 8657: class QUrlQuery; 8657: class QUrlPrivate; 8657: class QDataStream; 8657: 8657: template 8657: class QUrlTwoFlags 8657: { 8657: int i; 8657: typedef int QUrlTwoFlags:: *Zero; 8657: public: 8657: constexpr inline QUrlTwoFlags(E1 f) : i(f) {} 8657: constexpr inline QUrlTwoFlags(E2 f) : i(f) {} 8657: constexpr inline QUrlTwoFlags(QFlag f) : i(f) {} 8657: constexpr inline QUrlTwoFlags(QFlags f) : i(f.operator typename QFlags::Int()) {} 8657: constexpr inline QUrlTwoFlags(QFlags f) : i(f.operator typename QFlags::Int()) {} 8657: constexpr inline QUrlTwoFlags(Zero = 0) : i(0) {} 8657: 8657: inline QUrlTwoFlags &operator&=(int mask) { i &= mask; return *this; } 8657: inline QUrlTwoFlags &operator&=(uint mask) { i &= mask; return *this; } 8657: inline QUrlTwoFlags &operator|=(QUrlTwoFlags f) { i |= f.i; return *this; } 8657: inline QUrlTwoFlags &operator|=(E1 f) { i |= f; return *this; } 8657: inline QUrlTwoFlags &operator|=(E2 f) { i |= f; return *this; } 8657: inline QUrlTwoFlags &operator^=(QUrlTwoFlags f) { i ^= f.i; return *this; } 8657: inline QUrlTwoFlags &operator^=(E1 f) { i ^= f; return *this; } 8657: inline QUrlTwoFlags &operator^=(E2 f) { i ^= f; return *this; } 8657: 8657: constexpr inline operator QFlags() const { return QFlag(i); } 8657: constexpr inline operator QFlags() const { return QFlag(i); } 8657: constexpr inline operator int() const { return i; } 8657: constexpr inline bool operator!() const { return !i; } 8657: 8657: constexpr inline QUrlTwoFlags operator|(QUrlTwoFlags f) const 8657: { return QUrlTwoFlags(QFlag(i | f.i)); } 8657: constexpr inline QUrlTwoFlags operator|(E1 f) const 8657: { return QUrlTwoFlags(QFlag(i | f)); } 8657: constexpr inline QUrlTwoFlags operator|(E2 f) const 8657: { return QUrlTwoFlags(QFlag(i | f)); } 8657: constexpr inline QUrlTwoFlags operator^(QUrlTwoFlags f) const 8657: { return QUrlTwoFlags(QFlag(i ^ f.i)); } 8657: constexpr inline QUrlTwoFlags operator^(E1 f) const 8657: { return QUrlTwoFlags(QFlag(i ^ f)); } 8657: constexpr inline QUrlTwoFlags operator^(E2 f) const 8657: { return QUrlTwoFlags(QFlag(i ^ f)); } 8657: constexpr inline QUrlTwoFlags operator&(int mask) const 8657: { return QUrlTwoFlags(QFlag(i & mask)); } 8657: constexpr inline QUrlTwoFlags operator&(uint mask) const 8657: { return QUrlTwoFlags(QFlag(i & mask)); } 8657: constexpr inline QUrlTwoFlags operator&(E1 f) const 8657: { return QUrlTwoFlags(QFlag(i & f)); } 8657: constexpr inline QUrlTwoFlags operator&(E2 f) const 8657: { return QUrlTwoFlags(QFlag(i & f)); } 8657: constexpr inline QUrlTwoFlags operator~() const 8657: { return QUrlTwoFlags(QFlag(~i)); } 8657: 8657: constexpr inline bool testFlag(E1 f) const { return (i & f) == f && (f != 0 || i == int(f)); } 8657: constexpr inline bool testFlag(E2 f) const { return (i & f) == f && (f != 0 || i == int(f)); } 8657: }; 8657: 8657: template 8657: class QTypeInfo > : public QTypeInfoMerger, E1, E2> {}; 8657: 8657: class QUrl; 8657: 8657: __attribute__((visibility("default"))) uint qHash(const QUrl &url, uint seed = 0) noexcept; 8657: 8657: class __attribute__((visibility("default"))) QUrl 8657: { 8657: public: 8657: enum ParsingMode { 8657: TolerantMode, 8657: StrictMode, 8657: DecodedMode 8657: }; 8657: 8657: 8657: enum UrlFormattingOption { 8657: None = 0x0, 8657: RemoveScheme = 0x1, 8657: RemovePassword = 0x2, 8657: RemoveUserInfo = RemovePassword | 0x4, 8657: RemovePort = 0x8, 8657: RemoveAuthority = RemoveUserInfo | RemovePort | 0x10, 8657: RemovePath = 0x20, 8657: RemoveQuery = 0x40, 8657: RemoveFragment = 0x80, 8657: 8657: PreferLocalFile = 0x200, 8657: StripTrailingSlash = 0x400, 8657: RemoveFilename = 0x800, 8657: NormalizePathSegments = 0x1000 8657: }; 8657: 8657: enum ComponentFormattingOption { 8657: PrettyDecoded = 0x000000, 8657: EncodeSpaces = 0x100000, 8657: EncodeUnicode = 0x200000, 8657: EncodeDelimiters = 0x400000 | 0x800000, 8657: EncodeReserved = 0x1000000, 8657: DecodeReserved = 0x2000000, 8657: 8657: 8657: FullyEncoded = EncodeSpaces | EncodeUnicode | EncodeDelimiters | EncodeReserved, 8657: FullyDecoded = FullyEncoded | DecodeReserved | 0x4000000 8657: }; 8657: typedef QFlags ComponentFormattingOptions; 8657: # 173 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qurl.h" 3 4 8657: typedef QUrlTwoFlags FormattingOptions; 8657: 8657: 8657: QUrl(); 8657: QUrl(const QUrl ©); 8657: QUrl &operator =(const QUrl ©); 8657: 8657: explicit QUrl(const QString &url, ParsingMode mode = TolerantMode); 8657: 8657: 8657: 8657: 8657: 8657: QUrl(QUrl &&other) noexcept : d(other.d) 8657: { other.d = nullptr; } 8657: inline QUrl &operator=(QUrl &&other) noexcept 8657: { qSwap(d, other.d); return *this; } 8657: 8657: ~QUrl(); 8657: 8657: inline void swap(QUrl &other) noexcept { qSwap(d, other.d); } 8657: 8657: void setUrl(const QString &url, ParsingMode mode = TolerantMode); 8657: QString url(FormattingOptions options = FormattingOptions(PrettyDecoded)) const; 8657: QString toString(FormattingOptions options = FormattingOptions(PrettyDecoded)) const; 8657: QString toDisplayString(FormattingOptions options = FormattingOptions(PrettyDecoded)) const; 8657: [[nodiscard]] QUrl adjusted(FormattingOptions options) const; 8657: 8657: QByteArray toEncoded(FormattingOptions options = FullyEncoded) const; 8657: static QUrl fromEncoded(const QByteArray &url, ParsingMode mode = TolerantMode); 8657: 8657: enum UserInputResolutionOption { 8657: DefaultResolution, 8657: AssumeLocalFile 8657: }; 8657: typedef QFlags UserInputResolutionOptions; 8657: 8657: static QUrl fromUserInput(const QString &userInput); 8657: 8657: static QUrl fromUserInput(const QString &userInput, const QString &workingDirectory, 8657: UserInputResolutionOptions options = DefaultResolution); 8657: 8657: bool isValid() const; 8657: QString errorString() const; 8657: 8657: bool isEmpty() const; 8657: void clear(); 8657: 8657: void setScheme(const QString &scheme); 8657: QString scheme() const; 8657: 8657: void setAuthority(const QString &authority, ParsingMode mode = TolerantMode); 8657: QString authority(ComponentFormattingOptions options = PrettyDecoded) const; 8657: 8657: void setUserInfo(const QString &userInfo, ParsingMode mode = TolerantMode); 8657: QString userInfo(ComponentFormattingOptions options = PrettyDecoded) const; 8657: 8657: void setUserName(const QString &userName, ParsingMode mode = DecodedMode); 8657: QString userName(ComponentFormattingOptions options = FullyDecoded) const; 8657: 8657: void setPassword(const QString &password, ParsingMode mode = DecodedMode); 8657: QString password(ComponentFormattingOptions = FullyDecoded) const; 8657: 8657: void setHost(const QString &host, ParsingMode mode = DecodedMode); 8657: QString host(ComponentFormattingOptions = FullyDecoded) const; 8657: 8657: QString topLevelDomain(ComponentFormattingOptions options = FullyDecoded) const; 8657: 8657: 8657: void setPort(int port); 8657: int port(int defaultPort = -1) const; 8657: 8657: void setPath(const QString &path, ParsingMode mode = DecodedMode); 8657: QString path(ComponentFormattingOptions options = FullyDecoded) const; 8657: QString fileName(ComponentFormattingOptions options = FullyDecoded) const; 8657: 8657: bool hasQuery() const; 8657: void setQuery(const QString &query, ParsingMode mode = TolerantMode); 8657: void setQuery(const QUrlQuery &query); 8657: QString query(ComponentFormattingOptions = PrettyDecoded) const; 8657: 8657: bool hasFragment() const; 8657: QString fragment(ComponentFormattingOptions options = PrettyDecoded) const; 8657: void setFragment(const QString &fragment, ParsingMode mode = TolerantMode); 8657: 8657: [[nodiscard]] QUrl resolved(const QUrl &relative) const; 8657: 8657: bool isRelative() const; 8657: bool isParentOf(const QUrl &url) const; 8657: 8657: bool isLocalFile() const; 8657: static QUrl fromLocalFile(const QString &localfile); 8657: QString toLocalFile() const; 8657: 8657: void detach(); 8657: bool isDetached() const; 8657: 8657: bool operator <(const QUrl &url) const; 8657: bool operator ==(const QUrl &url) const; 8657: bool operator !=(const QUrl &url) const; 8657: 8657: bool matches(const QUrl &url, FormattingOptions options) const; 8657: 8657: static QString fromPercentEncoding(const QByteArray &); 8657: static QByteArray toPercentEncoding(const QString &, 8657: const QByteArray &exclude = QByteArray(), 8657: const QByteArray &include = QByteArray()); 8657: # 353 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qurl.h" 3 4 8657: private: 8657: static QString fromEncodedComponent_helper(const QByteArray &ba); 8657: 8657: public: 8657: static QString fromAce(const QByteArray &); 8657: static QByteArray toAce(const QString &); 8657: static QStringList idnWhitelist(); 8657: static QStringList toStringList(const QList &uris, FormattingOptions options = FormattingOptions(PrettyDecoded)); 8657: static QList fromStringList(const QStringList &uris, ParsingMode mode = TolerantMode); 8657: 8657: static void setIdnWhitelist(const QStringList &); 8657: friend __attribute__((visibility("default"))) uint qHash(const QUrl &url, uint seed) noexcept; 8657: 8657: private: 8657: QUrlPrivate *d; 8657: friend class QUrlQuery; 8657: 8657: public: 8657: typedef QUrlPrivate * DataPtr; 8657: inline DataPtr &data_ptr() { return d; } 8657: }; 8657: 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QUrl)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QUrl >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QUrl) }; static inline const char *name() { return "QUrl"; } }; inline void swap(QUrl &value1, QUrl &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8657: constexpr inline QFlags operator|(QUrl::ComponentFormattingOptions::enum_type f1, QUrl::ComponentFormattingOptions::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QUrl::ComponentFormattingOptions::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QUrl::ComponentFormattingOptions::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: 8657: 8657: 8657: constexpr inline QUrl::FormattingOptions operator|(QUrl::UrlFormattingOption f1, QUrl::UrlFormattingOption f2) 8657: { return QUrl::FormattingOptions(f1) | f2; } 8657: constexpr inline QUrl::FormattingOptions operator|(QUrl::UrlFormattingOption f1, QUrl::FormattingOptions f2) 8657: { return f2 | f1; } 8657: constexpr inline QIncompatibleFlag operator|(QUrl::UrlFormattingOption f1, int f2) 8657: { return QIncompatibleFlag(int(f1) | f2); } 8657: 8657: 8657: inline QUrl::FormattingOptions &operator|=(QUrl::FormattingOptions &i, QUrl::ComponentFormattingOptions f) 8657: { i |= QUrl::UrlFormattingOption(int(f)); return i; } 8657: constexpr inline QUrl::FormattingOptions operator|(QUrl::UrlFormattingOption i, QUrl::ComponentFormattingOption f) 8657: { return i | QUrl::UrlFormattingOption(int(f)); } 8657: constexpr inline QUrl::FormattingOptions operator|(QUrl::UrlFormattingOption i, QUrl::ComponentFormattingOptions f) 8657: { return i | QUrl::UrlFormattingOption(int(f)); } 8657: constexpr inline QUrl::FormattingOptions operator|(QUrl::ComponentFormattingOption f, QUrl::UrlFormattingOption i) 8657: { return i | QUrl::UrlFormattingOption(int(f)); } 8657: constexpr inline QUrl::FormattingOptions operator|(QUrl::ComponentFormattingOptions f, QUrl::UrlFormattingOption i) 8657: { return i | QUrl::UrlFormattingOption(int(f)); } 8657: constexpr inline QUrl::FormattingOptions operator|(QUrl::FormattingOptions i, QUrl::ComponentFormattingOptions f) 8657: { return i | QUrl::UrlFormattingOption(int(f)); } 8657: constexpr inline QUrl::FormattingOptions operator|(QUrl::ComponentFormattingOption f, QUrl::FormattingOptions i) 8657: { return i | QUrl::UrlFormattingOption(int(f)); } 8657: constexpr inline QUrl::FormattingOptions operator|(QUrl::ComponentFormattingOptions f, QUrl::FormattingOptions i) 8657: { return i | QUrl::UrlFormattingOption(int(f)); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QUrl &); 8657: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QUrl &); 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QUrl &); 8657: 8657: 8657: 8657: # 56 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/quuid.h" 1 3 4 8657: # 63 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/quuid.h" 3 4 8657: 8657: 8657: 8657: class __attribute__((visibility("default"))) QUuid 8657: { 8657: public: 8657: enum Variant { 8657: VarUnknown =-1, 8657: NCS = 0, 8657: DCE = 2, 8657: Microsoft = 6, 8657: Reserved = 7 8657: }; 8657: 8657: enum Version { 8657: VerUnknown =-1, 8657: Time = 1, 8657: EmbeddedPOSIX = 2, 8657: Md5 = 3, 8657: Name = Md5, 8657: Random = 4, 8657: Sha1 = 5 8657: }; 8657: 8657: 8657: constexpr QUuid() noexcept : data1(0), data2(0), data3(0), data4{0,0,0,0,0,0,0,0} {} 8657: 8657: constexpr QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, 8657: uchar b4, uchar b5, uchar b6, uchar b7, uchar b8) noexcept 8657: : data1(l), data2(w1), data3(w2), data4{b1, b2, b3, b4, b5, b6, b7, b8} {} 8657: # 118 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/quuid.h" 3 4 8657: QUuid(const QString &); 8657: QUuid(const char *); 8657: QString toString() const; 8657: QUuid(const QByteArray &); 8657: QByteArray toByteArray() const; 8657: QByteArray toRfc4122() const; 8657: static QUuid fromRfc4122(const QByteArray &); 8657: bool isNull() const noexcept; 8657: 8657: bool operator==(const QUuid &orig) const noexcept 8657: { 8657: if (data1 != orig.data1 || data2 != orig.data2 || 8657: data3 != orig.data3) 8657: return false; 8657: 8657: for (uint i = 0; i < 8; i++) 8657: if (data4[i] != orig.data4[i]) 8657: return false; 8657: 8657: return true; 8657: } 8657: 8657: bool operator!=(const QUuid &orig) const noexcept 8657: { 8657: return !(*this == orig); 8657: } 8657: 8657: bool operator<(const QUuid &other) const noexcept; 8657: bool operator>(const QUuid &other) const noexcept; 8657: # 189 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/quuid.h" 3 4 8657: static QUuid createUuid(); 8657: 8657: static QUuid createUuidV3(const QUuid &ns, const QByteArray &baseData); 8657: static QUuid createUuidV5(const QUuid &ns, const QByteArray &baseData); 8657: static inline QUuid createUuidV3(const QUuid &ns, const QString &baseData) 8657: { 8657: return QUuid::createUuidV3(ns, baseData.toUtf8()); 8657: } 8657: 8657: static inline QUuid createUuidV5(const QUuid &ns, const QString &baseData) 8657: { 8657: return QUuid::createUuidV5(ns, baseData.toUtf8()); 8657: } 8657: 8657: 8657: 8657: QUuid::Variant variant() const noexcept; 8657: QUuid::Version version() const noexcept; 8657: # 215 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/quuid.h" 3 4 8657: uint data1; 8657: ushort data2; 8657: ushort data3; 8657: uchar data4[8]; 8657: }; 8657: 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QUuid)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QUuid >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QUuid) }; static inline const char *name() { return "QUuid"; } }; 8657: 8657: 8657: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QUuid &); 8657: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QUuid &); 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QUuid &); 8657: 8657: 8657: __attribute__((visibility("default"))) uint qHash(const QUuid &uuid, uint seed = 0) noexcept; 8657: 8657: inline bool operator<=(const QUuid &lhs, const QUuid &rhs) noexcept 8657: { return !(rhs < lhs); } 8657: inline bool operator>=(const QUuid &lhs, const QUuid &rhs) noexcept 8657: { return !(lhs < rhs); } 8657: 8657: 8657: # 57 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qpoint.h" 1 3 4 8657: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qpoint.h" 3 4 8657: 8657: 8657: 8657: class __attribute__((visibility("default"))) QPoint 8657: { 8657: public: 8657: constexpr QPoint(); 8657: constexpr QPoint(int xpos, int ypos); 8657: 8657: constexpr inline bool isNull() const; 8657: 8657: constexpr inline int x() const; 8657: constexpr inline int y() const; 8657: inline void setX(int x); 8657: inline void setY(int y); 8657: 8657: constexpr inline int manhattanLength() const; 8657: 8657: inline int &rx(); 8657: inline int &ry(); 8657: 8657: inline QPoint &operator+=(const QPoint &p); 8657: inline QPoint &operator-=(const QPoint &p); 8657: 8657: inline QPoint &operator*=(float factor); 8657: inline QPoint &operator*=(double factor); 8657: inline QPoint &operator*=(int factor); 8657: 8657: inline QPoint &operator/=(qreal divisor); 8657: 8657: constexpr static inline int dotProduct(const QPoint &p1, const QPoint &p2) 8657: { return p1.xp * p2.xp + p1.yp * p2.yp; } 8657: 8657: friend constexpr inline bool operator==(const QPoint &, const QPoint &); 8657: friend constexpr inline bool operator!=(const QPoint &, const QPoint &); 8657: friend constexpr inline const QPoint operator+(const QPoint &, const QPoint &); 8657: friend constexpr inline const QPoint operator-(const QPoint &, const QPoint &); 8657: friend constexpr inline const QPoint operator*(const QPoint &, float); 8657: friend constexpr inline const QPoint operator*(float, const QPoint &); 8657: friend constexpr inline const QPoint operator*(const QPoint &, double); 8657: friend constexpr inline const QPoint operator*(double, const QPoint &); 8657: friend constexpr inline const QPoint operator*(const QPoint &, int); 8657: friend constexpr inline const QPoint operator*(int, const QPoint &); 8657: friend constexpr inline const QPoint operator+(const QPoint &); 8657: friend constexpr inline const QPoint operator-(const QPoint &); 8657: friend constexpr inline const QPoint operator/(const QPoint &, qreal); 8657: 8657: 8657: 8657: 8657: 8657: private: 8657: friend class QTransform; 8657: int xp; 8657: int yp; 8657: }; 8657: 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QPoint)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QPoint >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QPoint) }; static inline const char *name() { return "QPoint"; } }; 8657: 8657: 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QPoint &); 8657: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QPoint &); 8657: 8657: 8657: 8657: 8657: 8657: 8657: constexpr inline QPoint::QPoint() : xp(0), yp(0) {} 8657: 8657: constexpr inline QPoint::QPoint(int xpos, int ypos) : xp(xpos), yp(ypos) {} 8657: 8657: constexpr inline bool QPoint::isNull() const 8657: { return xp == 0 && yp == 0; } 8657: 8657: constexpr inline int QPoint::x() const 8657: { return xp; } 8657: 8657: constexpr inline int QPoint::y() const 8657: { return yp; } 8657: 8657: inline void QPoint::setX(int xpos) 8657: { xp = xpos; } 8657: 8657: inline void QPoint::setY(int ypos) 8657: { yp = ypos; } 8657: 8657: inline int constexpr QPoint::manhattanLength() const 8657: { return qAbs(x())+qAbs(y()); } 8657: 8657: inline int &QPoint::rx() 8657: { return xp; } 8657: 8657: inline int &QPoint::ry() 8657: { return yp; } 8657: 8657: inline QPoint &QPoint::operator+=(const QPoint &p) 8657: { xp+=p.xp; yp+=p.yp; return *this; } 8657: 8657: inline QPoint &QPoint::operator-=(const QPoint &p) 8657: { xp-=p.xp; yp-=p.yp; return *this; } 8657: 8657: inline QPoint &QPoint::operator*=(float factor) 8657: { xp = qRound(xp*factor); yp = qRound(yp*factor); return *this; } 8657: 8657: inline QPoint &QPoint::operator*=(double factor) 8657: { xp = qRound(xp*factor); yp = qRound(yp*factor); return *this; } 8657: 8657: inline QPoint &QPoint::operator*=(int factor) 8657: { xp = xp*factor; yp = yp*factor; return *this; } 8657: 8657: constexpr inline bool operator==(const QPoint &p1, const QPoint &p2) 8657: { return p1.xp == p2.xp && p1.yp == p2.yp; } 8657: 8657: constexpr inline bool operator!=(const QPoint &p1, const QPoint &p2) 8657: { return p1.xp != p2.xp || p1.yp != p2.yp; } 8657: 8657: constexpr inline const QPoint operator+(const QPoint &p1, const QPoint &p2) 8657: { return QPoint(p1.xp+p2.xp, p1.yp+p2.yp); } 8657: 8657: constexpr inline const QPoint operator-(const QPoint &p1, const QPoint &p2) 8657: { return QPoint(p1.xp-p2.xp, p1.yp-p2.yp); } 8657: 8657: constexpr inline const QPoint operator*(const QPoint &p, float factor) 8657: { return QPoint(qRound(p.xp*factor), qRound(p.yp*factor)); } 8657: 8657: constexpr inline const QPoint operator*(const QPoint &p, double factor) 8657: { return QPoint(qRound(p.xp*factor), qRound(p.yp*factor)); } 8657: 8657: constexpr inline const QPoint operator*(const QPoint &p, int factor) 8657: { return QPoint(p.xp*factor, p.yp*factor); } 8657: 8657: constexpr inline const QPoint operator*(float factor, const QPoint &p) 8657: { return QPoint(qRound(p.xp*factor), qRound(p.yp*factor)); } 8657: 8657: constexpr inline const QPoint operator*(double factor, const QPoint &p) 8657: { return QPoint(qRound(p.xp*factor), qRound(p.yp*factor)); } 8657: 8657: constexpr inline const QPoint operator*(int factor, const QPoint &p) 8657: { return QPoint(p.xp*factor, p.yp*factor); } 8657: 8657: constexpr inline const QPoint operator+(const QPoint &p) 8657: { return p; } 8657: 8657: constexpr inline const QPoint operator-(const QPoint &p) 8657: { return QPoint(-p.xp, -p.yp); } 8657: 8657: inline QPoint &QPoint::operator/=(qreal c) 8657: { 8657: xp = qRound(xp/c); 8657: yp = qRound(yp/c); 8657: return *this; 8657: } 8657: 8657: constexpr inline const QPoint operator/(const QPoint &p, qreal c) 8657: { 8657: return QPoint(qRound(p.xp/c), qRound(p.yp/c)); 8657: } 8657: 8657: 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QPoint &); 8657: 8657: 8657: 8657: 8657: 8657: 8657: class __attribute__((visibility("default"))) QPointF 8657: { 8657: public: 8657: constexpr QPointF(); 8657: constexpr QPointF(const QPoint &p); 8657: constexpr QPointF(qreal xpos, qreal ypos); 8657: 8657: constexpr inline qreal manhattanLength() const; 8657: 8657: inline bool isNull() const; 8657: 8657: constexpr inline qreal x() const; 8657: constexpr inline qreal y() const; 8657: inline void setX(qreal x); 8657: inline void setY(qreal y); 8657: 8657: inline qreal &rx(); 8657: inline qreal &ry(); 8657: 8657: inline QPointF &operator+=(const QPointF &p); 8657: inline QPointF &operator-=(const QPointF &p); 8657: inline QPointF &operator*=(qreal c); 8657: inline QPointF &operator/=(qreal c); 8657: 8657: constexpr static inline qreal dotProduct(const QPointF &p1, const QPointF &p2) 8657: { return p1.xp * p2.xp + p1.yp * p2.yp; } 8657: 8657: friend constexpr inline bool operator==(const QPointF &, const QPointF &); 8657: friend constexpr inline bool operator!=(const QPointF &, const QPointF &); 8657: friend constexpr inline const QPointF operator+(const QPointF &, const QPointF &); 8657: friend constexpr inline const QPointF operator-(const QPointF &, const QPointF &); 8657: friend constexpr inline const QPointF operator*(qreal, const QPointF &); 8657: friend constexpr inline const QPointF operator*(const QPointF &, qreal); 8657: friend constexpr inline const QPointF operator+(const QPointF &); 8657: friend constexpr inline const QPointF operator-(const QPointF &); 8657: friend constexpr inline const QPointF operator/(const QPointF &, qreal); 8657: 8657: constexpr QPoint toPoint() const; 8657: 8657: 8657: 8657: 8657: 8657: 8657: private: 8657: friend class QMatrix; 8657: friend class QTransform; 8657: 8657: qreal xp; 8657: qreal yp; 8657: }; 8657: 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QPointF)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QPointF >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QPointF) }; static inline const char *name() { return "QPointF"; } }; 8657: 8657: 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QPointF &); 8657: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QPointF &); 8657: 8657: 8657: 8657: 8657: 8657: 8657: constexpr inline QPointF::QPointF() : xp(0), yp(0) { } 8657: 8657: constexpr inline QPointF::QPointF(qreal xpos, qreal ypos) : xp(xpos), yp(ypos) { } 8657: 8657: constexpr inline QPointF::QPointF(const QPoint &p) : xp(p.x()), yp(p.y()) { } 8657: 8657: constexpr inline qreal QPointF::manhattanLength() const 8657: { 8657: return qAbs(x())+qAbs(y()); 8657: } 8657: 8657: inline bool QPointF::isNull() const 8657: { 8657: return qIsNull(xp) && qIsNull(yp); 8657: } 8657: 8657: constexpr inline qreal QPointF::x() const 8657: { 8657: return xp; 8657: } 8657: 8657: constexpr inline qreal QPointF::y() const 8657: { 8657: return yp; 8657: } 8657: 8657: inline void QPointF::setX(qreal xpos) 8657: { 8657: xp = xpos; 8657: } 8657: 8657: inline void QPointF::setY(qreal ypos) 8657: { 8657: yp = ypos; 8657: } 8657: 8657: inline qreal &QPointF::rx() 8657: { 8657: return xp; 8657: } 8657: 8657: inline qreal &QPointF::ry() 8657: { 8657: return yp; 8657: } 8657: 8657: inline QPointF &QPointF::operator+=(const QPointF &p) 8657: { 8657: xp+=p.xp; 8657: yp+=p.yp; 8657: return *this; 8657: } 8657: 8657: inline QPointF &QPointF::operator-=(const QPointF &p) 8657: { 8657: xp-=p.xp; yp-=p.yp; return *this; 8657: } 8657: 8657: inline QPointF &QPointF::operator*=(qreal c) 8657: { 8657: xp*=c; yp*=c; return *this; 8657: } 8657: 8657: constexpr inline bool operator==(const QPointF &p1, const QPointF &p2) 8657: { 8657: return qFuzzyIsNull(p1.xp - p2.xp) && qFuzzyIsNull(p1.yp - p2.yp); 8657: } 8657: 8657: constexpr inline bool operator!=(const QPointF &p1, const QPointF &p2) 8657: { 8657: return !qFuzzyIsNull(p1.xp - p2.xp) || !qFuzzyIsNull(p1.yp - p2.yp); 8657: } 8657: 8657: constexpr inline const QPointF operator+(const QPointF &p1, const QPointF &p2) 8657: { 8657: return QPointF(p1.xp+p2.xp, p1.yp+p2.yp); 8657: } 8657: 8657: constexpr inline const QPointF operator-(const QPointF &p1, const QPointF &p2) 8657: { 8657: return QPointF(p1.xp-p2.xp, p1.yp-p2.yp); 8657: } 8657: 8657: constexpr inline const QPointF operator*(const QPointF &p, qreal c) 8657: { 8657: return QPointF(p.xp*c, p.yp*c); 8657: } 8657: 8657: constexpr inline const QPointF operator*(qreal c, const QPointF &p) 8657: { 8657: return QPointF(p.xp*c, p.yp*c); 8657: } 8657: 8657: constexpr inline const QPointF operator+(const QPointF &p) 8657: { 8657: return p; 8657: } 8657: 8657: constexpr inline const QPointF operator-(const QPointF &p) 8657: { 8657: return QPointF(-p.xp, -p.yp); 8657: } 8657: 8657: inline QPointF &QPointF::operator/=(qreal divisor) 8657: { 8657: xp/=divisor; 8657: yp/=divisor; 8657: return *this; 8657: } 8657: 8657: constexpr inline const QPointF operator/(const QPointF &p, qreal divisor) 8657: { 8657: return QPointF(p.xp/divisor, p.yp/divisor); 8657: } 8657: 8657: constexpr inline QPoint QPointF::toPoint() const 8657: { 8657: return QPoint(qRound(xp), qRound(yp)); 8657: } 8657: 8657: 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug d, const QPointF &p); 8657: 8657: 8657: 8657: # 59 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsize.h" 1 3 4 8657: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsize.h" 3 4 8657: 8657: 8657: 8657: class __attribute__((visibility("default"))) QSize 8657: { 8657: public: 8657: constexpr QSize() noexcept; 8657: constexpr QSize(int w, int h) noexcept; 8657: 8657: constexpr inline bool isNull() const noexcept; 8657: constexpr inline bool isEmpty() const noexcept; 8657: constexpr inline bool isValid() const noexcept; 8657: 8657: constexpr inline int width() const noexcept; 8657: constexpr inline int height() const noexcept; 8657: inline void setWidth(int w) noexcept; 8657: inline void setHeight(int h) noexcept; 8657: void transpose() noexcept; 8657: [[nodiscard]] constexpr inline QSize transposed() const noexcept; 8657: 8657: inline void scale(int w, int h, Qt::AspectRatioMode mode) noexcept; 8657: inline void scale(const QSize &s, Qt::AspectRatioMode mode) noexcept; 8657: [[nodiscard]] QSize scaled(int w, int h, Qt::AspectRatioMode mode) const noexcept; 8657: [[nodiscard]] QSize scaled(const QSize &s, Qt::AspectRatioMode mode) const noexcept; 8657: 8657: [[nodiscard]] constexpr inline QSize expandedTo(const QSize &) const noexcept; 8657: [[nodiscard]] constexpr inline QSize boundedTo(const QSize &) const noexcept; 8657: 8657: inline int &rwidth() noexcept; 8657: inline int &rheight() noexcept; 8657: 8657: inline QSize &operator+=(const QSize &) noexcept; 8657: inline QSize &operator-=(const QSize &) noexcept; 8657: inline QSize &operator*=(qreal c) noexcept; 8657: inline QSize &operator/=(qreal c); 8657: 8657: friend inline constexpr bool operator==(const QSize &, const QSize &) noexcept; 8657: friend inline constexpr bool operator!=(const QSize &, const QSize &) noexcept; 8657: friend inline constexpr const QSize operator+(const QSize &, const QSize &) noexcept; 8657: friend inline constexpr const QSize operator-(const QSize &, const QSize &) noexcept; 8657: friend inline constexpr const QSize operator*(const QSize &, qreal) noexcept; 8657: friend inline constexpr const QSize operator*(qreal, const QSize &) noexcept; 8657: friend inline const QSize operator/(const QSize &, qreal); 8657: 8657: 8657: 8657: 8657: 8657: private: 8657: int wd; 8657: int ht; 8657: }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QSize)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QSize >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QSize) }; static inline const char *name() { return "QSize"; } }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QSize &); 8657: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QSize &); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: constexpr inline QSize::QSize() noexcept : wd(-1), ht(-1) {} 8657: 8657: constexpr inline QSize::QSize(int w, int h) noexcept : wd(w), ht(h) {} 8657: 8657: constexpr inline bool QSize::isNull() const noexcept 8657: { return wd==0 && ht==0; } 8657: 8657: constexpr inline bool QSize::isEmpty() const noexcept 8657: { return wd<1 || ht<1; } 8657: 8657: constexpr inline bool QSize::isValid() const noexcept 8657: { return wd>=0 && ht>=0; } 8657: 8657: constexpr inline int QSize::width() const noexcept 8657: { return wd; } 8657: 8657: constexpr inline int QSize::height() const noexcept 8657: { return ht; } 8657: 8657: inline void QSize::setWidth(int w) noexcept 8657: { wd = w; } 8657: 8657: inline void QSize::setHeight(int h) noexcept 8657: { ht = h; } 8657: 8657: constexpr inline QSize QSize::transposed() const noexcept 8657: { return QSize(ht, wd); } 8657: 8657: inline void QSize::scale(int w, int h, Qt::AspectRatioMode mode) noexcept 8657: { scale(QSize(w, h), mode); } 8657: 8657: inline void QSize::scale(const QSize &s, Qt::AspectRatioMode mode) noexcept 8657: { *this = scaled(s, mode); } 8657: 8657: inline QSize QSize::scaled(int w, int h, Qt::AspectRatioMode mode) const noexcept 8657: { return scaled(QSize(w, h), mode); } 8657: 8657: inline int &QSize::rwidth() noexcept 8657: { return wd; } 8657: 8657: inline int &QSize::rheight() noexcept 8657: { return ht; } 8657: 8657: inline QSize &QSize::operator+=(const QSize &s) noexcept 8657: { wd+=s.wd; ht+=s.ht; return *this; } 8657: 8657: inline QSize &QSize::operator-=(const QSize &s) noexcept 8657: { wd-=s.wd; ht-=s.ht; return *this; } 8657: 8657: inline QSize &QSize::operator*=(qreal c) noexcept 8657: { wd = qRound(wd*c); ht = qRound(ht*c); return *this; } 8657: 8657: constexpr inline bool operator==(const QSize &s1, const QSize &s2) noexcept 8657: { return s1.wd == s2.wd && s1.ht == s2.ht; } 8657: 8657: constexpr inline bool operator!=(const QSize &s1, const QSize &s2) noexcept 8657: { return s1.wd != s2.wd || s1.ht != s2.ht; } 8657: 8657: constexpr inline const QSize operator+(const QSize & s1, const QSize & s2) noexcept 8657: { return QSize(s1.wd+s2.wd, s1.ht+s2.ht); } 8657: 8657: constexpr inline const QSize operator-(const QSize &s1, const QSize &s2) noexcept 8657: { return QSize(s1.wd-s2.wd, s1.ht-s2.ht); } 8657: 8657: constexpr inline const QSize operator*(const QSize &s, qreal c) noexcept 8657: { return QSize(qRound(s.wd*c), qRound(s.ht*c)); } 8657: 8657: constexpr inline const QSize operator*(qreal c, const QSize &s) noexcept 8657: { return QSize(qRound(s.wd*c), qRound(s.ht*c)); } 8657: 8657: inline QSize &QSize::operator/=(qreal c) 8657: { 8657: do { } while ((false) && (!qFuzzyIsNull(c))); 8657: wd = qRound(wd/c); ht = qRound(ht/c); 8657: return *this; 8657: } 8657: 8657: inline const QSize operator/(const QSize &s, qreal c) 8657: { 8657: do { } while ((false) && (!qFuzzyIsNull(c))); 8657: return QSize(qRound(s.wd/c), qRound(s.ht/c)); 8657: } 8657: 8657: constexpr inline QSize QSize::expandedTo(const QSize & otherSize) const noexcept 8657: { 8657: return QSize(qMax(wd,otherSize.wd), qMax(ht,otherSize.ht)); 8657: } 8657: 8657: constexpr inline QSize QSize::boundedTo(const QSize & otherSize) const noexcept 8657: { 8657: return QSize(qMin(wd,otherSize.wd), qMin(ht,otherSize.ht)); 8657: } 8657: 8657: 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QSize &); 8657: 8657: 8657: 8657: class __attribute__((visibility("default"))) QSizeF 8657: { 8657: public: 8657: constexpr QSizeF() noexcept; 8657: constexpr QSizeF(const QSize &sz) noexcept; 8657: constexpr QSizeF(qreal w, qreal h) noexcept; 8657: 8657: inline bool isNull() const noexcept; 8657: constexpr inline bool isEmpty() const noexcept; 8657: constexpr inline bool isValid() const noexcept; 8657: 8657: constexpr inline qreal width() const noexcept; 8657: constexpr inline qreal height() const noexcept; 8657: inline void setWidth(qreal w) noexcept; 8657: inline void setHeight(qreal h) noexcept; 8657: void transpose() noexcept; 8657: [[nodiscard]] constexpr inline QSizeF transposed() const noexcept; 8657: 8657: inline void scale(qreal w, qreal h, Qt::AspectRatioMode mode) noexcept; 8657: inline void scale(const QSizeF &s, Qt::AspectRatioMode mode) noexcept; 8657: [[nodiscard]] QSizeF scaled(qreal w, qreal h, Qt::AspectRatioMode mode) const noexcept; 8657: [[nodiscard]] QSizeF scaled(const QSizeF &s, Qt::AspectRatioMode mode) const noexcept; 8657: 8657: [[nodiscard]] constexpr inline QSizeF expandedTo(const QSizeF &) const noexcept; 8657: [[nodiscard]] constexpr inline QSizeF boundedTo(const QSizeF &) const noexcept; 8657: 8657: inline qreal &rwidth() noexcept; 8657: inline qreal &rheight() noexcept; 8657: 8657: inline QSizeF &operator+=(const QSizeF &) noexcept; 8657: inline QSizeF &operator-=(const QSizeF &) noexcept; 8657: inline QSizeF &operator*=(qreal c) noexcept; 8657: inline QSizeF &operator/=(qreal c); 8657: 8657: friend constexpr inline bool operator==(const QSizeF &, const QSizeF &) noexcept; 8657: friend constexpr inline bool operator!=(const QSizeF &, const QSizeF &) noexcept; 8657: friend constexpr inline const QSizeF operator+(const QSizeF &, const QSizeF &) noexcept; 8657: friend constexpr inline const QSizeF operator-(const QSizeF &, const QSizeF &) noexcept; 8657: friend constexpr inline const QSizeF operator*(const QSizeF &, qreal) noexcept; 8657: friend constexpr inline const QSizeF operator*(qreal, const QSizeF &) noexcept; 8657: friend inline const QSizeF operator/(const QSizeF &, qreal); 8657: 8657: constexpr inline QSize toSize() const noexcept; 8657: 8657: 8657: 8657: 8657: 8657: 8657: private: 8657: qreal wd; 8657: qreal ht; 8657: }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QSizeF)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QSizeF >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QSizeF) }; static inline const char *name() { return "QSizeF"; } }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QSizeF &); 8657: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QSizeF &); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: constexpr inline QSizeF::QSizeF() noexcept : wd(-1.), ht(-1.) {} 8657: 8657: constexpr inline QSizeF::QSizeF(const QSize &sz) noexcept : wd(sz.width()), ht(sz.height()) {} 8657: 8657: constexpr inline QSizeF::QSizeF(qreal w, qreal h) noexcept : wd(w), ht(h) {} 8657: 8657: inline bool QSizeF::isNull() const noexcept 8657: { return qIsNull(wd) && qIsNull(ht); } 8657: 8657: constexpr inline bool QSizeF::isEmpty() const noexcept 8657: { return wd <= 0. || ht <= 0.; } 8657: 8657: constexpr inline bool QSizeF::isValid() const noexcept 8657: { return wd >= 0. && ht >= 0.; } 8657: 8657: constexpr inline qreal QSizeF::width() const noexcept 8657: { return wd; } 8657: 8657: constexpr inline qreal QSizeF::height() const noexcept 8657: { return ht; } 8657: 8657: inline void QSizeF::setWidth(qreal w) noexcept 8657: { wd = w; } 8657: 8657: inline void QSizeF::setHeight(qreal h) noexcept 8657: { ht = h; } 8657: 8657: constexpr inline QSizeF QSizeF::transposed() const noexcept 8657: { return QSizeF(ht, wd); } 8657: 8657: inline void QSizeF::scale(qreal w, qreal h, Qt::AspectRatioMode mode) noexcept 8657: { scale(QSizeF(w, h), mode); } 8657: 8657: inline void QSizeF::scale(const QSizeF &s, Qt::AspectRatioMode mode) noexcept 8657: { *this = scaled(s, mode); } 8657: 8657: inline QSizeF QSizeF::scaled(qreal w, qreal h, Qt::AspectRatioMode mode) const noexcept 8657: { return scaled(QSizeF(w, h), mode); } 8657: 8657: inline qreal &QSizeF::rwidth() noexcept 8657: { return wd; } 8657: 8657: inline qreal &QSizeF::rheight() noexcept 8657: { return ht; } 8657: 8657: inline QSizeF &QSizeF::operator+=(const QSizeF &s) noexcept 8657: { wd += s.wd; ht += s.ht; return *this; } 8657: 8657: inline QSizeF &QSizeF::operator-=(const QSizeF &s) noexcept 8657: { wd -= s.wd; ht -= s.ht; return *this; } 8657: 8657: inline QSizeF &QSizeF::operator*=(qreal c) noexcept 8657: { wd *= c; ht *= c; return *this; } 8657: 8657: constexpr inline bool operator==(const QSizeF &s1, const QSizeF &s2) noexcept 8657: { return qFuzzyCompare(s1.wd, s2.wd) && qFuzzyCompare(s1.ht, s2.ht); } 8657: 8657: constexpr inline bool operator!=(const QSizeF &s1, const QSizeF &s2) noexcept 8657: { return !qFuzzyCompare(s1.wd, s2.wd) || !qFuzzyCompare(s1.ht, s2.ht); } 8657: 8657: constexpr inline const QSizeF operator+(const QSizeF & s1, const QSizeF & s2) noexcept 8657: { return QSizeF(s1.wd+s2.wd, s1.ht+s2.ht); } 8657: 8657: constexpr inline const QSizeF operator-(const QSizeF &s1, const QSizeF &s2) noexcept 8657: { return QSizeF(s1.wd-s2.wd, s1.ht-s2.ht); } 8657: 8657: constexpr inline const QSizeF operator*(const QSizeF &s, qreal c) noexcept 8657: { return QSizeF(s.wd*c, s.ht*c); } 8657: 8657: constexpr inline const QSizeF operator*(qreal c, const QSizeF &s) noexcept 8657: { return QSizeF(s.wd*c, s.ht*c); } 8657: 8657: inline QSizeF &QSizeF::operator/=(qreal c) 8657: { 8657: do { } while ((false) && (!qFuzzyIsNull(c))); 8657: wd = wd/c; ht = ht/c; 8657: return *this; 8657: } 8657: 8657: inline const QSizeF operator/(const QSizeF &s, qreal c) 8657: { 8657: do { } while ((false) && (!qFuzzyIsNull(c))); 8657: return QSizeF(s.wd/c, s.ht/c); 8657: } 8657: 8657: constexpr inline QSizeF QSizeF::expandedTo(const QSizeF & otherSize) const noexcept 8657: { 8657: return QSizeF(qMax(wd,otherSize.wd), qMax(ht,otherSize.ht)); 8657: } 8657: 8657: constexpr inline QSizeF QSizeF::boundedTo(const QSizeF & otherSize) const noexcept 8657: { 8657: return QSizeF(qMin(wd,otherSize.wd), qMin(ht,otherSize.ht)); 8657: } 8657: 8657: constexpr inline QSize QSizeF::toSize() const noexcept 8657: { 8657: return QSize(qRound(wd), qRound(ht)); 8657: } 8657: 8657: 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QSizeF &); 8657: 8657: 8657: 8657: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 1 3 4 8657: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmargins.h" 1 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmargins.h" 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: class QMargins 8657: { 8657: public: 8657: constexpr QMargins() noexcept; 8657: constexpr QMargins(int left, int top, int right, int bottom) noexcept; 8657: 8657: constexpr bool isNull() const noexcept; 8657: 8657: constexpr int left() const noexcept; 8657: constexpr int top() const noexcept; 8657: constexpr int right() const noexcept; 8657: constexpr int bottom() const noexcept; 8657: 8657: void setLeft(int left) noexcept; 8657: void setTop(int top) noexcept; 8657: void setRight(int right) noexcept; 8657: void setBottom(int bottom) noexcept; 8657: 8657: QMargins &operator+=(const QMargins &margins) noexcept; 8657: QMargins &operator-=(const QMargins &margins) noexcept; 8657: QMargins &operator+=(int) noexcept; 8657: QMargins &operator-=(int) noexcept; 8657: QMargins &operator*=(int) noexcept; 8657: QMargins &operator/=(int); 8657: QMargins &operator*=(qreal) noexcept; 8657: QMargins &operator/=(qreal); 8657: 8657: private: 8657: int m_left; 8657: int m_top; 8657: int m_right; 8657: int m_bottom; 8657: 8657: friend constexpr inline bool operator==(const QMargins &, const QMargins &) noexcept; 8657: friend constexpr inline bool operator!=(const QMargins &, const QMargins &) noexcept; 8657: }; 8657: 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QMargins)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QMargins >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QMargins) }; static inline const char *name() { return "QMargins"; } }; 8657: 8657: 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QMargins &); 8657: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QMargins &); 8657: 8657: 8657: 8657: 8657: 8657: 8657: constexpr inline QMargins::QMargins() noexcept : m_left(0), m_top(0), m_right(0), m_bottom(0) {} 8657: 8657: constexpr inline QMargins::QMargins(int aleft, int atop, int aright, int abottom) noexcept 8657: : m_left(aleft), m_top(atop), m_right(aright), m_bottom(abottom) {} 8657: 8657: constexpr inline bool QMargins::isNull() const noexcept 8657: { return m_left==0 && m_top==0 && m_right==0 && m_bottom==0; } 8657: 8657: constexpr inline int QMargins::left() const noexcept 8657: { return m_left; } 8657: 8657: constexpr inline int QMargins::top() const noexcept 8657: { return m_top; } 8657: 8657: constexpr inline int QMargins::right() const noexcept 8657: { return m_right; } 8657: 8657: constexpr inline int QMargins::bottom() const noexcept 8657: { return m_bottom; } 8657: 8657: 8657: inline void QMargins::setLeft(int aleft) noexcept 8657: { m_left = aleft; } 8657: 8657: inline void QMargins::setTop(int atop) noexcept 8657: { m_top = atop; } 8657: 8657: inline void QMargins::setRight(int aright) noexcept 8657: { m_right = aright; } 8657: 8657: inline void QMargins::setBottom(int abottom) noexcept 8657: { m_bottom = abottom; } 8657: 8657: constexpr inline bool operator==(const QMargins &m1, const QMargins &m2) noexcept 8657: { 8657: return 8657: m1.m_left == m2.m_left && 8657: m1.m_top == m2.m_top && 8657: m1.m_right == m2.m_right && 8657: m1.m_bottom == m2.m_bottom; 8657: } 8657: 8657: constexpr inline bool operator!=(const QMargins &m1, const QMargins &m2) noexcept 8657: { 8657: return 8657: m1.m_left != m2.m_left || 8657: m1.m_top != m2.m_top || 8657: m1.m_right != m2.m_right || 8657: m1.m_bottom != m2.m_bottom; 8657: } 8657: 8657: constexpr inline QMargins operator+(const QMargins &m1, const QMargins &m2) noexcept 8657: { 8657: return QMargins(m1.left() + m2.left(), m1.top() + m2.top(), 8657: m1.right() + m2.right(), m1.bottom() + m2.bottom()); 8657: } 8657: 8657: constexpr inline QMargins operator-(const QMargins &m1, const QMargins &m2) noexcept 8657: { 8657: return QMargins(m1.left() - m2.left(), m1.top() - m2.top(), 8657: m1.right() - m2.right(), m1.bottom() - m2.bottom()); 8657: } 8657: 8657: constexpr inline QMargins operator+(const QMargins &lhs, int rhs) noexcept 8657: { 8657: return QMargins(lhs.left() + rhs, lhs.top() + rhs, 8657: lhs.right() + rhs, lhs.bottom() + rhs); 8657: } 8657: 8657: constexpr inline QMargins operator+(int lhs, const QMargins &rhs) noexcept 8657: { 8657: return QMargins(rhs.left() + lhs, rhs.top() + lhs, 8657: rhs.right() + lhs, rhs.bottom() + lhs); 8657: } 8657: 8657: constexpr inline QMargins operator-(const QMargins &lhs, int rhs) noexcept 8657: { 8657: return QMargins(lhs.left() - rhs, lhs.top() - rhs, 8657: lhs.right() - rhs, lhs.bottom() - rhs); 8657: } 8657: 8657: constexpr inline QMargins operator*(const QMargins &margins, int factor) noexcept 8657: { 8657: return QMargins(margins.left() * factor, margins.top() * factor, 8657: margins.right() * factor, margins.bottom() * factor); 8657: } 8657: 8657: constexpr inline QMargins operator*(int factor, const QMargins &margins) noexcept 8657: { 8657: return QMargins(margins.left() * factor, margins.top() * factor, 8657: margins.right() * factor, margins.bottom() * factor); 8657: } 8657: 8657: constexpr inline QMargins operator*(const QMargins &margins, qreal factor) noexcept 8657: { 8657: return QMargins(qRound(margins.left() * factor), qRound(margins.top() * factor), 8657: qRound(margins.right() * factor), qRound(margins.bottom() * factor)); 8657: } 8657: 8657: constexpr inline QMargins operator*(qreal factor, const QMargins &margins) noexcept 8657: { 8657: return QMargins(qRound(margins.left() * factor), qRoun[ 94%] Built target testfilters_exec d(margins.top() * factor), 8657: qRound(margins.right() * factor), qRound(margins.bottom() * factor)); 8657: } 8657: 8657: constexpr inline QMargins operator/(const QMargins &margins, int divisor) 8657: { 8657: return QMargins(margins.left() / divisor, margins.top() / divisor, 8657: margins.right() / divisor, margins.bottom() / divisor); 8657: } 8657: 8657: constexpr inline QMargins operator/(const QMargins &margins, qreal divisor) 8657: { 8657: return QMargins(qRound(margins.left() / divisor), qRound(margins.top() / divisor), 8657: qRound(margins.right() / divisor), qRound(margins.bottom() / divisor)); 8657: } 8657: 8657: inline QMargins &QMargins::operator+=(const QMargins &margins) noexcept 8657: { 8657: return *this = *this + margins; 8657: } 8657: 8657: inline QMargins &QMargins::operator-=(const QMargins &margins) noexcept 8657: { 8657: return *this = *this - margins; 8657: } 8657: 8657: inline QMargins &QMargins::operator+=(int margin) noexcept 8657: { 8657: m_left += margin; 8657: m_top += margin; 8657: m_right += margin; 8657: m_bottom += margin; 8657: return *this; 8657: } 8657: 8657: inline QMargins &QMargins::operator-=(int margin) noexcept 8657: { 8657: m_left -= margin; 8657: m_top -= margin; 8657: m_right -= margin; 8657: m_bottom -= margin; 8657: return *this; 8657: } 8657: 8657: inline QMargins &QMargins::operator*=(int factor) noexcept 8657: { 8657: return *this = *this * factor; 8657: } 8657: 8657: inline QMargins &QMargins::operator/=(int divisor) 8657: { 8657: return *this = *this / divisor; 8657: } 8657: 8657: inline QMargins &QMargins::operator*=(qreal factor) noexcept 8657: { 8657: return *this = *this * factor; 8657: } 8657: 8657: inline QMargins &QMargins::operator/=(qreal divisor) 8657: { 8657: return *this = *this / divisor; 8657: } 8657: 8657: constexpr inline QMargins operator+(const QMargins &margins) noexcept 8657: { 8657: return margins; 8657: } 8657: 8657: constexpr inline QMargins operator-(const QMargins &margins) noexcept 8657: { 8657: return QMargins(-margins.left(), -margins.top(), -margins.right(), -margins.bottom()); 8657: } 8657: 8657: 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QMargins &); 8657: 8657: 8657: 8657: 8657: 8657: 8657: class QMarginsF 8657: { 8657: public: 8657: constexpr QMarginsF() noexcept; 8657: constexpr QMarginsF(qreal left, qreal top, qreal right, qreal bottom) noexcept; 8657: constexpr QMarginsF(const QMargins &margins) noexcept; 8657: 8657: constexpr bool isNull() const noexcept; 8657: 8657: constexpr qreal left() const noexcept; 8657: constexpr qreal top() const noexcept; 8657: constexpr qreal right() const noexcept; 8657: constexpr qreal bottom() const noexcept; 8657: 8657: void setLeft(qreal left) noexcept; 8657: void setTop(qreal top) noexcept; 8657: void setRight(qreal right) noexcept; 8657: void setBottom(qreal bottom) noexcept; 8657: 8657: QMarginsF &operator+=(const QMarginsF &margins) noexcept; 8657: QMarginsF &operator-=(const QMarginsF &margins) noexcept; 8657: QMarginsF &operator+=(qreal addend) noexcept; 8657: QMarginsF &operator-=(qreal subtrahend) noexcept; 8657: QMarginsF &operator*=(qreal factor) noexcept; 8657: QMarginsF &operator/=(qreal divisor); 8657: 8657: constexpr inline QMargins toMargins() const noexcept; 8657: 8657: private: 8657: qreal m_left; 8657: qreal m_top; 8657: qreal m_right; 8657: qreal m_bottom; 8657: }; 8657: 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QMarginsF)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QMarginsF >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QMarginsF) }; static inline const char *name() { return "QMarginsF"; } }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QMarginsF &); 8657: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QMarginsF &); 8657: 8657: 8657: 8657: 8657: 8657: 8657: constexpr inline QMarginsF::QMarginsF() noexcept 8657: : m_left(0), m_top(0), m_right(0), m_bottom(0) {} 8657: 8657: constexpr inline QMarginsF::QMarginsF(qreal aleft, qreal atop, qreal aright, qreal abottom) noexcept 8657: : m_left(aleft), m_top(atop), m_right(aright), m_bottom(abottom) {} 8657: 8657: constexpr inline QMarginsF::QMarginsF(const QMargins &margins) noexcept 8657: : m_left(margins.left()), m_top(margins.top()), m_right(margins.right()), m_bottom(margins.bottom()) {} 8657: 8657: constexpr inline bool QMarginsF::isNull() const noexcept 8657: { return qFuzzyIsNull(m_left) && qFuzzyIsNull(m_top) && qFuzzyIsNull(m_right) && qFuzzyIsNull(m_bottom); } 8657: 8657: constexpr inline qreal QMarginsF::left() const noexcept 8657: { return m_left; } 8657: 8657: constexpr inline qreal QMarginsF::top() const noexcept 8657: { return m_top; } 8657: 8657: constexpr inline qreal QMarginsF::right() const noexcept 8657: { return m_right; } 8657: 8657: constexpr inline qreal QMarginsF::bottom() const noexcept 8657: { return m_bottom; } 8657: 8657: 8657: inline void QMarginsF::setLeft(qreal aleft) noexcept 8657: { m_left = aleft; } 8657: 8657: inline void QMarginsF::setTop(qreal atop) noexcept 8657: { m_top = atop; } 8657: 8657: inline void QMarginsF::setRight(qreal aright) noexcept 8657: { m_right = aright; } 8657: 8657: inline void QMarginsF::setBottom(qreal abottom) noexcept 8657: { m_bottom = abottom; } 8657: 8657: constexpr inline bool operator==(const QMarginsF &lhs, const QMarginsF &rhs) noexcept 8657: { 8657: return qFuzzyCompare(lhs.left(), rhs.left()) 8657: && qFuzzyCompare(lhs.top(), rhs.top()) 8657: && qFuzzyCompare(lhs.right(), rhs.right()) 8657: && qFuzzyCompare(lhs.bottom(), rhs.bottom()); 8657: } 8657: 8657: constexpr inline bool operator!=(const QMarginsF &lhs, const QMarginsF &rhs) noexcept 8657: { 8657: return !operator==(lhs, rhs); 8657: } 8657: 8657: constexpr inline QMarginsF operator+(const QMarginsF &lhs, const QMarginsF &rhs) noexcept 8657: { 8657: return QMarginsF(lhs.left() + rhs.left(), lhs.top() + rhs.top(), 8657: lhs.right() + rhs.right(), lhs.bottom() + rhs.bottom()); 8657: } 8657: 8657: constexpr inline QMarginsF operator-(const QMarginsF &lhs, const QMarginsF &rhs) noexcept 8657: { 8657: return QMarginsF(lhs.left() - rhs.left(), lhs.top() - rhs.top(), 8657: lhs.right() - rhs.right(), lhs.bottom() - rhs.bottom()); 8657: } 8657: 8657: constexpr inline QMarginsF operator+(const QMarginsF &lhs, qreal rhs) noexcept 8657: { 8657: return QMarginsF(lhs.left() + rhs, lhs.top() + rhs, 8657: lhs.right() + rhs, lhs.bottom() + rhs); 8657: } 8657: 8657: constexpr inline QMarginsF operator+(qreal lhs, const QMarginsF &rhs) noexcept 8657: { 8657: return QMarginsF(rhs.left() + lhs, rhs.top() + lhs, 8657: rhs.right() + lhs, rhs.bottom() + lhs); 8657: } 8657: 8657: constexpr inline QMarginsF operator-(const QMarginsF &lhs, qreal rhs) noexcept 8657: { 8657: return QMarginsF(lhs.left() - rhs, lhs.top() - rhs, 8657: lhs.right() - rhs, lhs.bottom() - rhs); 8657: } 8657: 8657: constexpr inline QMarginsF operator*(const QMarginsF &lhs, qreal rhs) noexcept 8657: { 8657: return QMarginsF(lhs.left() * rhs, lhs.top() * rhs, 8657: lhs.right() * rhs, lhs.bottom() * rhs); 8657: } 8657: 8657: constexpr inline QMarginsF operator*(qreal lhs, const QMarginsF &rhs) noexcept 8657: { 8657: return QMarginsF(rhs.left() * lhs, rhs.top() * lhs, 8657: rhs.right() * lhs, rhs.bottom() * lhs); 8657: } 8657: 8657: constexpr inline QMarginsF operator/(const QMarginsF &lhs, qreal divisor) 8657: { 8657: return QMarginsF(lhs.left() / divisor, lhs.top() / divisor, 8657: lhs.right() / divisor, lhs.bottom() / divisor); 8657: } 8657: 8657: inline QMarginsF &QMarginsF::operator+=(const QMarginsF &margins) noexcept 8657: { 8657: return *this = *this + margins; 8657: } 8657: 8657: inline QMarginsF &QMarginsF::operator-=(const QMarginsF &margins) noexcept 8657: { 8657: return *this = *this - margins; 8657: } 8657: 8657: inline QMarginsF &QMarginsF::operator+=(qreal addend) noexcept 8657: { 8657: m_left += addend; 8657: m_top += addend; 8657: m_right += addend; 8657: m_bottom += addend; 8657: return *this; 8657: } 8657: 8657: inline QMarginsF &QMarginsF::operator-=(qreal subtrahend) noexcept 8657: { 8657: m_left -= subtrahend; 8657: m_top -= subtrahend; 8657: m_right -= subtrahend; 8657: m_bottom -= subtrahend; 8657: return *this; 8657: } 8657: 8657: inline QMarginsF &QMarginsF::operator*=(qreal factor) noexcept 8657: { 8657: return *this = *this * factor; 8657: } 8657: 8657: inline QMarginsF &QMarginsF::operator/=(qreal divisor) 8657: { 8657: return *this = *this / divisor; 8657: } 8657: 8657: constexpr inline QMarginsF operator+(const QMarginsF &margins) noexcept 8657: { 8657: return margins; 8657: } 8657: 8657: constexpr inline QMarginsF operator-(const QMarginsF &margins) noexcept 8657: { 8657: return QMarginsF(-margins.left(), -margins.top(), -margins.right(), -margins.bottom()); 8657: } 8657: 8657: constexpr inline QMargins QMarginsF::toMargins() const noexcept 8657: { 8657: return QMargins(qRound(m_left), qRound(m_top), qRound(m_right), qRound(m_bottom)); 8657: } 8657: 8657: 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QMarginsF &); 8657: 8657: 8657: 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 2 3 4 8657: # 55 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 3 4 8657: 8657: 8657: class __attribute__((visibility("default"))) QRect 8657: { 8657: public: 8657: constexpr QRect() noexcept : x1(0), y1(0), x2(-1), y2(-1) {} 8657: constexpr QRect(const QPoint &topleft, const QPoint &bottomright) noexcept; 8657: constexpr QRect(const QPoint &topleft, const QSize &size) noexcept; 8657: constexpr QRect(int left, int top, int width, int height) noexcept; 8657: 8657: constexpr inline bool isNull() const noexcept; 8657: constexpr inline bool isEmpty() const noexcept; 8657: constexpr inline bool isValid() const noexcept; 8657: 8657: constexpr inline int left() const noexcept; 8657: constexpr inline int top() const noexcept; 8657: constexpr inline int right() const noexcept; 8657: constexpr inline int bottom() const noexcept; 8657: [[nodiscard]] QRect normalized() const noexcept; 8657: 8657: constexpr inline int x() const noexcept; 8657: constexpr inline int y() const noexcept; 8657: inline void setLeft(int pos) noexcept; 8657: inline void setTop(int pos) noexcept; 8657: inline void setRight(int pos) noexcept; 8657: inline void setBottom(int pos) noexcept; 8657: inline void setX(int x) noexcept; 8657: inline void setY(int y) noexcept; 8657: 8657: inline void setTopLeft(const QPoint &p) noexcept; 8657: inline void setBottomRight(const QPoint &p) noexcept; 8657: inline void setTopRight(const QPoint &p) noexcept; 8657: inline void setBottomLeft(const QPoint &p) noexcept; 8657: 8657: constexpr inline QPoint topLeft() const noexcept; 8657: constexpr inline QPoint bottomRight() const noexcept; 8657: constexpr inline QPoint topRight() const noexcept; 8657: constexpr inline QPoint bottomLeft() const noexcept; 8657: constexpr inline QPoint center() const noexcept; 8657: 8657: inline void moveLeft(int pos) noexcept; 8657: inline void moveTop(int pos) noexcept; 8657: inline void moveRight(int pos) noexcept; 8657: inline void moveBottom(int pos) noexcept; 8657: inline void moveTopLeft(const QPoint &p) noexcept; 8657: inline void moveBottomRight(const QPoint &p) noexcept; 8657: inline void moveTopRight(const QPoint &p) noexcept; 8657: inline void moveBottomLeft(const QPoint &p) noexcept; 8657: inline void moveCenter(const QPoint &p) noexcept; 8657: 8657: inline void translate(int dx, int dy) noexcept; 8657: inline void translate(const QPoint &p) noexcept; 8657: [[nodiscard]] constexpr inline QRect translated(int dx, int dy) const noexcept; 8657: [[nodiscard]] constexpr inline QRect translated(const QPoint &p) const noexcept; 8657: [[nodiscard]] constexpr inline QRect transposed() const noexcept; 8657: 8657: inline void moveTo(int x, int t) noexcept; 8657: inline void moveTo(const QPoint &p) noexcept; 8657: 8657: inline void setRect(int x, int y, int w, int h) noexcept; 8657: inline void getRect(int *x, int *y, int *w, int *h) const; 8657: 8657: inline void setCoords(int x1, int y1, int x2, int y2) noexcept; 8657: inline void getCoords(int *x1, int *y1, int *x2, int *y2) const; 8657: 8657: inline void adjust(int x1, int y1, int x2, int y2) noexcept; 8657: [[nodiscard]] constexpr inline QRect adjusted(int x1, int y1, int x2, int y2) const noexcept; 8657: 8657: constexpr inline QSize size() const noexcept; 8657: constexpr inline int width() const noexcept; 8657: constexpr inline int height() const noexcept; 8657: inline void setWidth(int w) noexcept; 8657: inline void setHeight(int h) noexcept; 8657: inline void setSize(const QSize &s) noexcept; 8657: 8657: QRect operator|(const QRect &r) const noexcept; 8657: QRect operator&(const QRect &r) const noexcept; 8657: inline QRect& operator|=(const QRect &r) noexcept; 8657: inline QRect& operator&=(const QRect &r) noexcept; 8657: 8657: bool contains(const QRect &r, bool proper = false) const noexcept; 8657: bool contains(const QPoint &p, bool proper=false) const noexcept; 8657: inline bool contains(int x, int y) const noexcept; 8657: inline bool contains(int x, int y, bool proper) const noexcept; 8657: [[nodiscard]] inline QRect united(const QRect &other) const noexcept; 8657: [[nodiscard]] inline QRect intersected(const QRect &other) const noexcept; 8657: bool intersects(const QRect &r) const noexcept; 8657: 8657: constexpr inline QRect marginsAdded(const QMargins &margins) const noexcept; 8657: constexpr inline QRect marginsRemoved(const QMargins &margins) const noexcept; 8657: inline QRect &operator+=(const QMargins &margins) noexcept; 8657: inline QRect &operator-=(const QMargins &margins) noexcept; 8657: 8657: 8657: 8657: 8657: 8657: 8657: friend constexpr inline bool operator==(const QRect &, const QRect &) noexcept; 8657: friend constexpr inline bool operator!=(const QRect &, const QRect &) noexcept; 8657: 8657: 8657: 8657: 8657: 8657: private: 8657: int x1; 8657: int y1; 8657: int x2; 8657: int y2; 8657: }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QRect)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QRect >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QRect) }; static inline const char *name() { return "QRect"; } }; 8657: 8657: constexpr inline bool operator==(const QRect &, const QRect &) noexcept; 8657: constexpr inline bool operator!=(const QRect &, const QRect &) noexcept; 8657: 8657: 8657: 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QRect &); 8657: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QRect &); 8657: 8657: 8657: 8657: 8657: 8657: 8657: constexpr inline QRect::QRect(int aleft, int atop, int awidth, int aheight) noexcept 8657: : x1(aleft), y1(atop), x2(aleft + awidth - 1), y2(atop + aheight - 1) {} 8657: 8657: constexpr inline QRect::QRect(const QPoint &atopLeft, const QPoint &abottomRight) noexcept 8657: : x1(atopLeft.x()), y1(atopLeft.y()), x2(abottomRight.x()), y2(abottomRight.y()) {} 8657: 8657: constexpr inline QRect::QRect(const QPoint &atopLeft, const QSize &asize) noexcept 8657: : x1(atopLeft.x()), y1(atopLeft.y()), x2(atopLeft.x()+asize.width() - 1), y2(atopLeft.y()+asize.height() - 1) {} 8657: 8657: constexpr inline bool QRect::isNull() const noexcept 8657: { return x2 == x1 - 1 && y2 == y1 - 1; } 8657: 8657: constexpr inline bool QRect::isEmpty() const noexcept 8657: { return x1 > x2 || y1 > y2; } 8657: 8657: constexpr inline bool QRect::isValid() const noexcept 8657: { return x1 <= x2 && y1 <= y2; } 8657: 8657: constexpr inline int QRect::left() const noexcept 8657: { return x1; } 8657: 8657: constexpr inline int QRect::top() const noexcept 8657: { return y1; } 8657: 8657: constexpr inline int QRect::right() const noexcept 8657: { return x2; } 8657: 8657: constexpr inline int QRect::bottom() const noexcept 8657: { return y2; } 8657: 8657: constexpr inline int QRect::x() const noexcept 8657: { return x1; } 8657: 8657: constexpr inline int QRect::y() const noexcept 8657: { return y1; } 8657: 8657: inline void QRect::setLeft(int pos) noexcept 8657: { x1 = pos; } 8657: 8657: inline void QRect::setTop(int pos) noexcept 8657: { y1 = pos; } 8657: 8657: inline void QRect::setRight(int pos) noexcept 8657: { x2 = pos; } 8657: 8657: inline void QRect::setBottom(int pos) noexcept 8657: { y2 = pos; } 8657: 8657: inline void QRect::setTopLeft(const QPoint &p) noexcept 8657: { x1 = p.x(); y1 = p.y(); } 8657: 8657: inline void QRect::setBottomRight(const QPoint &p) noexcept 8657: { x2 = p.x(); y2 = p.y(); } 8657: 8657: inline void QRect::setTopRight(const QPoint &p) noexcept 8657: { x2 = p.x(); y1 = p.y(); } 8657: 8657: inline void QRect::setBottomLeft(const QPoint &p) noexcept 8657: { x1 = p.x(); y2 = p.y(); } 8657: 8657: inline void QRect::setX(int ax) noexcept 8657: { x1 = ax; } 8657: 8657: inline void QRect::setY(int ay) noexcept 8657: { y1 = ay; } 8657: 8657: constexpr inline QPoint QRect::topLeft() const noexcept 8657: { return QPoint(x1, y1); } 8657: 8657: constexpr inline QPoint QRect::bottomRight() const noexcept 8657: { return QPoint(x2, y2); } 8657: 8657: constexpr inline QPoint QRect::topRight() const noexcept 8657: { return QPoint(x2, y1); } 8657: 8657: constexpr inline QPoint QRect::bottomLeft() const noexcept 8657: { return QPoint(x1, y2); } 8657: 8657: constexpr inline QPoint QRect::center() const noexcept 8657: { return QPoint(int((qint64(x1)+x2)/2), int((qint64(y1)+y2)/2)); } 8657: 8657: constexpr inline int QRect::width() const noexcept 8657: { return x2 - x1 + 1; } 8657: 8657: constexpr inline int QRect::height() const noexcept 8657: { return y2 - y1 + 1; } 8657: 8657: constexpr inline QSize QRect::size() const noexcept 8657: { return QSize(width(), height()); } 8657: 8657: inline void QRect::translate(int dx, int dy) noexcept 8657: { 8657: x1 += dx; 8657: y1 += dy; 8657: x2 += dx; 8657: y2 += dy; 8657: } 8657: 8657: inline void QRect::translate(const QPoint &p) noexcept 8657: { 8657: x1 += p.x(); 8657: y1 += p.y(); 8657: x2 += p.x(); 8657: y2 += p.y(); 8657: } 8657: 8657: constexpr inline QRect QRect::translated(int dx, int dy) const noexcept 8657: { return QRect(QPoint(x1 + dx, y1 + dy), QPoint(x2 + dx, y2 + dy)); } 8657: 8657: constexpr inline QRect QRect::translated(const QPoint &p) const noexcept 8657: { return QRect(QPoint(x1 + p.x(), y1 + p.y()), QPoint(x2 + p.x(), y2 + p.y())); } 8657: 8657: constexpr inline QRect QRect::transposed() const noexcept 8657: { return QRect(topLeft(), size().transposed()); } 8657: 8657: inline void QRect::moveTo(int ax, int ay) noexcept 8657: { 8657: x2 += ax - x1; 8657: y2 += ay - y1; 8657: x1 = ax; 8657: y1 = ay; 8657: } 8657: 8657: inline void QRect::moveTo(const QPoint &p) noexcept 8657: { 8657: x2 += p.x() - x1; 8657: y2 += p.y() - y1; 8657: x1 = p.x(); 8657: y1 = p.y(); 8657: } 8657: 8657: inline void QRect::moveLeft(int pos) noexcept 8657: { x2 += (pos - x1); x1 = pos; } 8657: 8657: inline void QRect::moveTop(int pos) noexcept 8657: { y2 += (pos - y1); y1 = pos; } 8657: 8657: inline void QRect::moveRight(int pos) noexcept 8657: { 8657: x1 += (pos - x2); 8657: x2 = pos; 8657: } 8657: 8657: inline void QRect::moveBottom(int pos) noexcept 8657: { 8657: y1 += (pos - y2); 8657: y2 = pos; 8657: } 8657: 8657: inline void QRect::moveTopLeft(const QPoint &p) noexcept 8657: { 8657: moveLeft(p.x()); 8657: moveTop(p.y()); 8657: } 8657: 8657: inline void QRect::moveBottomRight(const QPoint &p) noexcept 8657: { 8657: moveRight(p.x()); 8657: moveBottom(p.y()); 8657: } 8657: 8657: inline void QRect::moveTopRight(const QPoint &p) noexcept 8657: { 8657: moveRight(p.x()); 8657: moveTop(p.y()); 8657: } 8657: 8657: inline void QRect::moveBottomLeft(const QPoint &p) noexcept 8657: { 8657: moveLeft(p.x()); 8657: moveBottom(p.y()); 8657: } 8657: 8657: inline void QRect::moveCenter(const QPoint &p) noexcept 8657: { 8657: int w = x2 - x1; 8657: int h = y2 - y1; 8657: x1 = p.x() - w/2; 8657: y1 = p.y() - h/2; 8657: x2 = x1 + w; 8657: y2 = y1 + h; 8657: } 8657: 8657: inline void QRect::getRect(int *ax, int *ay, int *aw, int *ah) const 8657: { 8657: *ax = x1; 8657: *ay = y1; 8657: *aw = x2 - x1 + 1; 8657: *ah = y2 - y1 + 1; 8657: } 8657: 8657: inline void QRect::setRect(int ax, int ay, int aw, int ah) noexcept 8657: { 8657: x1 = ax; 8657: y1 = ay; 8657: x2 = (ax + aw - 1); 8657: y2 = (ay + ah - 1); 8657: } 8657: 8657: inline void QRect::getCoords(int *xp1, int *yp1, int *xp2, int *yp2) const 8657: { 8657: *xp1 = x1; 8657: *yp1 = y1; 8657: *xp2 = x2; 8657: *yp2 = y2; 8657: } 8657: 8657: inline void QRect::setCoords(int xp1, int yp1, int xp2, int yp2) noexcept 8657: { 8657: x1 = xp1; 8657: y1 = yp1; 8657: x2 = xp2; 8657: y2 = yp2; 8657: } 8657: 8657: constexpr inline QRect QRect::adjusted(int xp1, int yp1, int xp2, int yp2) const noexcept 8657: { return QRect(QPoint(x1 + xp1, y1 + yp1), QPoint(x2 + xp2, y2 + yp2)); } 8657: 8657: inline void QRect::adjust(int dx1, int dy1, int dx2, int dy2) noexcept 8657: { 8657: x1 += dx1; 8657: y1 += dy1; 8657: x2 += dx2; 8657: y2 += dy2; 8657: } 8657: 8657: inline void QRect::setWidth(int w) noexcept 8657: { x2 = (x1 + w - 1); } 8657: 8657: inline void QRect::setHeight(int h) noexcept 8657: { y2 = (y1 + h - 1); } 8657: 8657: inline void QRect::setSize(const QSize &s) noexcept 8657: { 8657: x2 = (s.width() + x1 - 1); 8657: y2 = (s.height() + y1 - 1); 8657: } 8657: 8657: inline bool QRect::contains(int ax, int ay, bool aproper) const noexcept 8657: { 8657: return contains(QPoint(ax, ay), aproper); 8657: } 8657: 8657: inline bool QRect::contains(int ax, int ay) const noexcept 8657: { 8657: return contains(QPoint(ax, ay), false); 8657: } 8657: 8657: inline QRect& QRect::operator|=(const QRect &r) noexcept 8657: { 8657: *this = *this | r; 8657: return *this; 8657: } 8657: 8657: inline QRect& QRect::operator&=(const QRect &r) noexcept 8657: { 8657: *this = *this & r; 8657: return *this; 8657: } 8657: 8657: inline QRect QRect::intersected(const QRect &other) const noexcept 8657: { 8657: return *this & other; 8657: } 8657: 8657: inline QRect QRect::united(const QRect &r) const noexcept 8657: { 8657: return *this | r; 8657: } 8657: 8657: constexpr inline bool operator==(const QRect &r1, const QRect &r2) noexcept 8657: { 8657: return r1.x1==r2.x1 && r1.x2==r2.x2 && r1.y1==r2.y1 && r1.y2==r2.y2; 8657: } 8657: 8657: constexpr inline bool operator!=(const QRect &r1, const QRect &r2) noexcept 8657: { 8657: return r1.x1!=r2.x1 || r1.x2!=r2.x2 || r1.y1!=r2.y1 || r1.y2!=r2.y2; 8657: } 8657: 8657: constexpr inline QRect operator+(const QRect &rectangle, const QMargins &margins) noexcept 8657: { 8657: return QRect(QPoint(rectangle.left() - margins.left(), rectangle.top() - margins.top()), 8657: QPoint(rectangle.right() + margins.right(), rectangle.bottom() + margins.bottom())); 8657: } 8657: 8657: constexpr inline QRect operator+(const QMargins &margins, const QRect &rectangle) noexcept 8657: { 8657: return QRect(QPoint(rectangle.left() - margins.left(), rectangle.top() - margins.top()), 8657: QPoint(rectangle.right() + margins.right(), rectangle.bottom() + margins.bottom())); 8657: } 8657: 8657: constexpr inline QRect operator-(const QRect &lhs, const QMargins &rhs) noexcept 8657: { 8657: return QRect(QPoint(lhs.left() + rhs.left(), lhs.top() + rhs.top()), 8657: QPoint(lhs.right() - rhs.right(), lhs.bottom() - rhs.bottom())); 8657: } 8657: 8657: constexpr inline QRect QRect::marginsAdded(const QMargins &margins) const noexcept 8657: { 8657: return QRect(QPoint(x1 - margins.left(), y1 - margins.top()), 8657: QPoint(x2 + margins.right(), y2 + margins.bottom())); 8657: } 8657: 8657: constexpr inline QRect QRect::marginsRemoved(const QMargins &margins) const noexcept 8657: { 8657: return QRect(QPoint(x1 + margins.left(), y1 + margins.top()), 8657: QPoint(x2 - margins.right(), y2 - margins.bottom())); 8657: } 8657: 8657: inline QRect &QRect::operator+=(const QMargins &margins) noexcept 8657: { 8657: *this = marginsAdded(margins); 8657: return *this; 8657: } 8657: 8657: inline QRect &QRect::operator-=(const QMargins &margins) noexcept 8657: { 8657: *this = marginsRemoved(margins); 8657: return *this; 8657: } 8657: 8657: 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QRect &); 8657: 8657: 8657: 8657: class __attribute__((visibility("default"))) QRectF 8657: { 8657: public: 8657: constexpr QRectF() noexcept : xp(0.), yp(0.), w(0.), h(0.) {} 8657: constexpr QRectF(const QPointF &topleft, const QSizeF &size) noexcept; 8657: constexpr QRectF(const QPointF &topleft, const QPointF &bottomRight) noexcept; 8657: constexpr QRectF(qreal left, qreal top, qreal width, qreal height) noexcept; 8657: constexpr QRectF(const QRect &rect) noexcept; 8657: 8657: constexpr inline bool isNull() const noexcept; 8657: constexpr inline bool isEmpty() const noexcept; 8657: constexpr inline bool isValid() const noexcept; 8657: [[nodiscard]] QRectF normalized() const noexcept; 8657: 8657: constexpr inline qreal left() const noexcept { return xp; } 8657: constexpr inline qreal top() const noexcept { return yp; } 8657: constexpr inline qreal right() const noexcept { return xp + w; } 8657: constexpr inline qreal bottom() const noexcept { return yp + h; } 8657: 8657: constexpr inline qreal x() const noexcept; 8657: constexpr inline qreal y() const noexcept; 8657: inline void setLeft(qreal pos) noexcept; 8657: inline void setTop(qreal pos) noexcept; 8657: inline void setRight(qreal pos) noexcept; 8657: inline void setBottom(qreal pos) noexcept; 8657: inline void setX(qreal pos) noexcept { setLeft(pos); } 8657: inline void setY(qreal pos) noexcept { setTop(pos); } 8657: 8657: constexpr inline QPointF topLeft() const noexcept { return QPointF(xp, yp); } 8657: constexpr inline QPointF bottomRight() const noexcept { return QPointF(xp+w, yp+h); } 8657: constexpr inline QPointF topRight() const noexcept { return QPointF(xp+w, yp); } 8657: constexpr inline QPointF bottomLeft() const noexcept { return QPointF(xp, yp+h); } 8657: constexpr inline QPointF center() const noexcept; 8657: 8657: inline void setTopLeft(const QPointF &p) noexcept; 8657: inline void setBottomRight(const QPointF &p) noexcept; 8657: inline void setTopRight(const QPointF &p) noexcept; 8657: inline void setBottomLeft(const QPointF &p) noexcept; 8657: 8657: inline void moveLeft(qreal pos) noexcept; 8657: inline void moveTop(qreal pos) noexcept; 8657: inline void moveRight(qreal pos) noexcept; 8657: inline void moveBottom(qreal pos) noexcept; 8657: inline void moveTopLeft(const QPointF &p) noexcept; 8657: inline void moveBottomRight(const QPointF &p) noexcept; 8657: inline void moveTopRight(const QPointF &p) noexcept; 8657: inline void moveBottomLeft(const QPointF &p) noexcept; 8657: inline void moveCenter(const QPointF &p) noexcept; 8657: 8657: inline void translate(qreal dx, qreal dy) noexcept; 8657: inline void translate(const QPointF &p) noexcept; 8657: 8657: [[nodiscard]] constexpr inline QRectF translated(qreal dx, qreal dy) const noexcept; 8657: [[nodiscard]] constexpr inline QRectF translated(const QPointF &p) const noexcept; 8657: 8657: [[nodiscard]] constexpr inline QRectF transposed() const noexcept; 8657: 8657: inline void moveTo(qreal x, qreal y) noexcept; 8657: inline void moveTo(const QPointF &p) noexcept; 8657: 8657: inline void setRect(qreal x, qreal y, qreal w, qreal h) noexcept; 8657: inline void getRect(qreal *x, qreal *y, qreal *w, qreal *h) const; 8657: 8657: inline void setCoords(qreal x1, qreal y1, qreal x2, qreal y2) noexcept; 8657: inline void getCoords(qreal *x1, qreal *y1, qreal *x2, qreal *y2) const; 8657: 8657: inline void adjust(qreal x1, qreal y1, qreal x2, qreal y2) noexcept; 8657: [[nodiscard]] constexpr inline QRectF adjusted(qreal x1, qreal y1, qreal x2, qreal y2) const noexcept; 8657: 8657: constexpr inline QSizeF size() const noexcept; 8657: constexpr inline qreal width() const noexcept; 8657: constexpr inline qreal height() const noexcept; 8657: inline void setWidth(qreal w) noexcept; 8657: inline void setHeight(qreal h) noexcept; 8657: inline void setSize(const QSizeF &s) noexcept; 8657: 8657: QRectF operator|(const QRectF &r) const noexcept; 8657: QRectF operator&(const QRectF &r) const noexcept; 8657: inline QRectF& operator|=(const QRectF &r) noexcept; 8657: inline QRectF& operator&=(const QRectF &r) noexcept; 8657: 8657: bool contains(const QRectF &r) const noexcept; 8657: bool contains(const QPointF &p) const noexcept; 8657: inline bool contains(qreal x, qreal y) const noexcept; 8657: [[nodiscard]] inline QRectF united(const QRectF &other) const noexcept; 8657: [[nodiscard]] inline QRectF intersected(const QRectF &other) const noexcept; 8657: bool intersects(const QRectF &r) const noexcept; 8657: 8657: constexpr inline QRectF marginsAdded(const QMarginsF &margins) const noexcept; 8657: constexpr inline QRectF marginsRemoved(const QMarginsF &margins) const noexcept; 8657: inline QRectF &operator+=(const QMarginsF &margins) noexcept; 8657: inline QRectF &operator-=(const QMarginsF &margins) noexcept; 8657: 8657: 8657: 8657: 8657: 8657: 8657: friend constexpr inline bool operator==(const QRectF &, const QRectF &) noexcept; 8657: friend constexpr inline bool operator!=(const QRectF &, const QRectF &) noexcept; 8657: 8657: [[nodiscard]] constexpr inline QRect toRect() const noexcept; 8657: [[nodiscard]] QRect toAlignedRect() const noexcept; 8657: 8657: 8657: 8657: 8657: 8657: 8657: private: 8657: qreal xp; 8657: qreal yp; 8657: qreal w; 8657: qreal h; 8657: }; 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QRectF)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QRectF >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QRectF) }; static inline const char *name() { return "QRectF"; } }; 8657: 8657: constexpr inline bool operator==(const QRectF &, const QRectF &) noexcept; 8657: constexpr inline bool operator!=(const QRectF &, const QRectF &) noexcept; 8657: 8657: 8657: 8657: 8657: 8657: 8657: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QRectF &); 8657: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QRectF &); 8657: 8657: 8657: 8657: 8657: 8657: 8657: constexpr inline QRectF::QRectF(qreal aleft, qreal atop, qreal awidth, qreal aheight) noexcept 8657: : xp(aleft), yp(atop), w(awidth), h(aheight) 8657: { 8657: } 8657: 8657: constexpr inline QRectF::QRectF(const QPointF &atopLeft, const QSizeF &asize) noexcept 8657: : xp(atopLeft.x()), yp(atopLeft.y()), w(asize.width()), h(asize.height()) 8657: { 8657: } 8657: 8657: 8657: constexpr inline QRectF::QRectF(const QPointF &atopLeft, const QPointF &abottomRight) noexcept 8657: : xp(atopLeft.x()), yp(atopLeft.y()), w(abottomRight.x() - atopLeft.x()), h(abottomRight.y() - atopLeft.y()) 8657: { 8657: } 8657: 8657: constexpr inline QRectF::QRectF(const QRect &r) noexcept 8657: : xp(r.x()), yp(r.y()), w(r.width()), h(r.height()) 8657: { 8657: } 8657: 8657: 8657: # 665 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 3 4 8657: #pragma GCC diagnostic push 8657: # 665 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 3 4 8657: 8657: 8657: 8657: # 667 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 3 4 8657: #pragma GCC diagnostic ignored "-Wfloat-equal" 8657: # 667 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 3 4 8657: 8657: 8657: constexpr inline bool QRectF::isNull() const noexcept 8657: { return w == 0. && h == 0.; } 8657: 8657: constexpr inline bool QRectF::isEmpty() const noexcept 8657: { return w <= 0. || h <= 0.; } 8657: 8657: 8657: # 675 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 3 4 8657: #pragma GCC diagnostic pop 8657: # 675 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 3 4 8657: 8657: 8657: constexpr inline bool QRectF::isValid() const noexcept 8657: { return w > 0. && h > 0.; } 8657: 8657: constexpr inline qreal QRectF::x() const noexcept 8657: { return xp; } 8657: 8657: constexpr inline qreal QRectF::y() const noexcept 8657: { return yp; } 8657: 8657: inline void QRectF::setLeft(qreal pos) noexcept 8657: { qreal diff = pos - xp; xp += diff; w -= diff; } 8657: 8657: inline void QRectF::setRight(qreal pos) noexcept 8657: { w = pos - xp; } 8657: 8657: inline void QRectF::setTop(qreal pos) noexcept 8657: { qreal diff = pos - yp; yp += diff; h -= diff; } 8657: 8657: inline void QRectF::setBottom(qreal pos) noexcept 8657: { h = pos - yp; } 8657: 8657: inline void QRectF::setTopLeft(const QPointF &p) noexcept 8657: { setLeft(p.x()); setTop(p.y()); } 8657: 8657: inline void QRectF::setTopRight(const QPointF &p) noexcept 8657: { setRight(p.x()); setTop(p.y()); } 8657: 8657: inline void QRectF::setBottomLeft(const QPointF &p) noexcept 8657: { setLeft(p.x()); setBottom(p.y()); } 8657: 8657: inline void QRectF::setBottomRight(const QPointF &p) noexcept 8657: { setRight(p.x()); setBottom(p.y()); } 8657: 8657: constexpr inline QPointF QRectF::center() const noexcept 8657: { return QPointF(xp + w/2, yp + h/2); } 8657: 8657: inline void QRectF::moveLeft(qreal pos) noexcept 8657: { xp = pos; } 8657: 8657: inline void QRectF::moveTop(qreal pos) noexcept 8657: { yp = pos; } 8657: 8657: inline void QRectF::moveRight(qreal pos) noexcept 8657: { xp = pos - w; } 8657: 8657: inline void QRectF::moveBottom(qreal pos) noexcept 8657: { yp = pos - h; } 8657: 8657: inline void QRectF::moveTopLeft(const QPointF &p) noexcept 8657: { moveLeft(p.x()); moveTop(p.y()); } 8657: 8657: inline void QRectF::moveTopRight(const QPointF &p) noexcept 8657: { moveRight(p.x()); moveTop(p.y()); } 8657: 8657: inline void QRectF::moveBottomLeft(const QPointF &p) noexcept 8657: { moveLeft(p.x()); moveBottom(p.y()); } 8657: 8657: inline void QRectF::moveBottomRight(const QPointF &p) noexcept 8657: { moveRight(p.x()); moveBottom(p.y()); } 8657: 8657: inline void QRectF::moveCenter(const QPointF &p) noexcept 8657: { xp = p.x() - w/2; yp = p.y() - h/2; } 8657: 8657: constexpr inline qreal QRectF::width() co[ 95%] Building CXX object templates/tests/CMakeFiles/testscriptabletags_exec.dir/testscriptabletags_exec_autogen/mocs_compilation.cpp.o nst noexcept 8657: { return w; } 8657: 8657: constexpr inline qreal QRectF::height() const noexcept 8657: { return h; } 8657: 8657: constexpr inline QSizeF QRectF::size() const noexcept 8657: { return QSizeF(w, h); } 8657: 8657: inline void QRectF::translate(qreal dx, qreal dy) noexcept 8657: { 8657: xp += dx; 8657: yp += dy; 8657: } 8657: 8657: inline void QRectF::translate(const QPointF &p) noexcept 8657: { 8657: xp += p.x(); 8657: yp += p.y(); 8657: } 8657: 8657: inline void QRectF::moveTo(qreal ax, qreal ay) noexcept 8657: { 8657: xp = ax; 8657: yp = ay; 8657: } 8657: 8657: inline void QRectF::moveTo(const QPointF &p) noexcept 8657: { 8657: xp = p.x(); 8657: yp = p.y(); 8657: } 8657: 8657: constexpr inline QRectF QRectF::translated(qreal dx, qreal dy) const noexcept 8657: { return QRectF(xp + dx, yp + dy, w, h); } 8657: 8657: constexpr inline QRectF QRectF::translated(const QPointF &p) const noexcept 8657: { return QRectF(xp + p.x(), yp + p.y(), w, h); } 8657: 8657: constexpr inline QRectF QRectF::transposed() const noexcept 8657: { return QRectF(topLeft(), size().transposed()); } 8657: 8657: inline void QRectF::getRect(qreal *ax, qreal *ay, qreal *aaw, qreal *aah) const 8657: { 8657: *ax = this->xp; 8657: *ay = this->yp; 8657: *aaw = this->w; 8657: *aah = this->h; 8657: } 8657: 8657: inline void QRectF::setRect(qreal ax, qreal ay, qreal aaw, qreal aah) noexcept 8657: { 8657: this->xp = ax; 8657: this->yp = ay; 8657: this->w = aaw; 8657: this->h = aah; 8657: } 8657: 8657: inline void QRectF::getCoords(qreal *xp1, qreal *yp1, qreal *xp2, qreal *yp2) const 8657: { 8657: *xp1 = xp; 8657: *yp1 = yp; 8657: *xp2 = xp + w; 8657: *yp2 = yp + h; 8657: } 8657: 8657: inline void QRectF::setCoords(qreal xp1, qreal yp1, qreal xp2, qreal yp2) noexcept 8657: { 8657: xp = xp1; 8657: yp = yp1; 8657: w = xp2 - xp1; 8657: h = yp2 - yp1; 8657: } 8657: 8657: inline void QRectF::adjust(qreal xp1, qreal yp1, qreal xp2, qreal yp2) noexcept 8657: { xp += xp1; yp += yp1; w += xp2 - xp1; h += yp2 - yp1; } 8657: 8657: constexpr inline QRectF QRectF::adjusted(qreal xp1, qreal yp1, qreal xp2, qreal yp2) const noexcept 8657: { return QRectF(xp + xp1, yp + yp1, w + xp2 - xp1, h + yp2 - yp1); } 8657: 8657: inline void QRectF::setWidth(qreal aw) noexcept 8657: { this->w = aw; } 8657: 8657: inline void QRectF::setHeight(qreal ah) noexcept 8657: { this->h = ah; } 8657: 8657: inline void QRectF::setSize(const QSizeF &s) noexcept 8657: { 8657: w = s.width(); 8657: h = s.height(); 8657: } 8657: 8657: inline bool QRectF::contains(qreal ax, qreal ay) const noexcept 8657: { 8657: return contains(QPointF(ax, ay)); 8657: } 8657: 8657: inline QRectF& QRectF::operator|=(const QRectF &r) noexcept 8657: { 8657: *this = *this | r; 8657: return *this; 8657: } 8657: 8657: inline QRectF& QRectF::operator&=(const QRectF &r) noexcept 8657: { 8657: *this = *this & r; 8657: return *this; 8657: } 8657: 8657: inline QRectF QRectF::intersected(const QRectF &r) const noexcept 8657: { 8657: return *this & r; 8657: } 8657: 8657: inline QRectF QRectF::united(const QRectF &r) const noexcept 8657: { 8657: return *this | r; 8657: } 8657: 8657: constexpr inline bool operator==(const QRectF &r1, const QRectF &r2) noexcept 8657: { 8657: return qFuzzyCompare(r1.xp, r2.xp) && qFuzzyCompare(r1.yp, r2.yp) 8657: && qFuzzyCompare(r1.w, r2.w) && qFuzzyCompare(r1.h, r2.h); 8657: } 8657: 8657: constexpr inline bool operator!=(const QRectF &r1, const QRectF &r2) noexcept 8657: { 8657: return !qFuzzyCompare(r1.xp, r2.xp) || !qFuzzyCompare(r1.yp, r2.yp) 8657: || !qFuzzyCompare(r1.w, r2.w) || !qFuzzyCompare(r1.h, r2.h); 8657: } 8657: 8657: constexpr inline QRect QRectF::toRect() const noexcept 8657: { 8657: return QRect(qRound(xp), qRound(yp), qRound(w), qRound(h)); 8657: } 8657: 8657: constexpr inline QRectF operator+(const QRectF &lhs, const QMarginsF &rhs) noexcept 8657: { 8657: return QRecd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testscriptabletags_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testscriptabletags_exec.dir/testscriptabletags_exec_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/templates/tests/testscriptabletags_exec_autogen/mocs_compilation.cpp ctF(QPointF(lhs.left() - rhs.left(), lhs.top() - rhs.top()), 8657: QSizeF(lhs.width() + rhs.left() + rhs.right(), lhs.height() + rhs.top() + rhs.bottom())); 8657: } 8657: 8657: constexpr inline QRectF operator+(const QMarginsF &lhs, const QRectF &rhs) noexcept 8657: { 8657: return QRectF(QPointF(rhs.left() - lhs.left(), rhs.top() - lhs.top()), 8657: QSizeF(rhs.width() + lhs.left() + lhs.right(), rhs.height() + lhs.top() + lhs.bottom())); 8657: } 8657: 8657: constexpr inline QRectF operator-(const QRectF &lhs, const QMarginsF &rhs) noexcept 8657: { 8657: return QRectF(QPointF(lhs.left() + rhs.left(), lhs.top() + rhs.top()), 8657: QSizeF(lhs.width() - rhs.left() - rhs.right(), lhs.height() - rhs.top() - rhs.bottom())); 8657: } 8657: 8657: constexpr inline QRectF QRectF::marginsAdded(const QMarginsF &margins) const noexcept 8657: { 8657: return QRectF(QPointF(xp - margins.left(), yp - margins.top()), 8657: QSizeF(w + margins.left() + margins.right(), h + margins.top() + margins.bottom())); 8657: } 8657: 8657: constexpr inline QRectF QRectF::marginsRemoved(const QMarginsF &margins) const noexcept 8657: { 8657: return QRectF(QPointF(xp + margins.left(), yp + margins.top()), 8657: QSizeF(w - margins.left() - margins.right(), h - margins.top() - margins.bottom())); 8657: } 8657: 8657: inline QRectF &QRectF::operator+=(const QMarginsF &margins) noexcept 8657: { 8657: *this = marginsAdded(margins); 8657: return *this; 8657: } 8657: 8657: inline QRectF &QRectF::operator-=(const QMarginsF &margins) noexcept 8657: { 8657: *this = marginsRemoved(margins); 8657: return *this; 8657: } 8657: 8657: 8657: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QRectF &); 8657: 8657: 8657: 8657: # 61 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8657: 8657: 8657: 8657: 8657: namespace QTest 8657: { 8657: 8657: template<> inline char *toString(const QString &str) 8657: { 8657: return QTest::toPrettyUnicode(reinterpret_cast(str.constData()), str.length()); 8657: } 8657: 8657: template<> inline char *toString(const QLatin1String &str) 8657: { 8657: return toString(QString(str)); 8657: } 8657: 8657: template<> inline char *toString(const QByteArray &ba) 8657: { 8657: return QTest::toPrettyCString(ba.constData(), ba.length()); 8657: } 8657: 8657: 8657: template<> inline char *toString(const QTime &time) 8657: { 8657: return time.isValid() 8657: ? qstrdup(QString(time.toString(QLatin1String("hh:mm:ss.zzz"))).toLocal8Bit().constData()) 8657: : qstrdup("Invalid QTime"); 8657: } 8657: 8657: template<> inline char *toString(const QDate &date) 8657: { 8657: return date.isValid() 8657: ? qstrdup(QString(date.toString(QLatin1String("yyyy/MM/dd"))).toLocal8Bit().constData()) 8657: : qstrdup("Invalid QDate"); 8657: } 8657: 8657: template<> inline char *toString(const QDateTime &dateTime) 8657: { 8657: return dateTime.isValid() 8657: ? qstrdup(QString(dateTime.toString(QLatin1String("yyyy/MM/dd hh:mm:ss.zzz[t]"))).toLocal8Bit().constData()) 8657: : qstrdup("Invalid QDateTime"); 8657: } 8657: 8657: 8657: template<> inline char *toString(const QChar &c) 8657: { 8657: const ushort uc = c.unicode(); 8657: if (uc < 128) { 8657: char msg[32] = {'\0'}; 8657: qsnprintf(msg, sizeof(msg), "QChar: '%c' (0x%x)", char(uc), unsigned(uc)); 8657: return qstrdup(msg); 8657: } 8657: return qstrdup(QString(QString::fromLatin1("QChar: '%1' (0x%2)").arg(c).arg(QString::number(static_cast(c.unicode()), 16))).toLocal8Bit().constData()); 8657: } 8657: 8657: template<> inline char *toString(const QPoint &p) 8657: { 8657: char msg[128] = {'\0'}; 8657: qsnprintf(msg, sizeof(msg), "QPoint(%d,%d)", p.x(), p.y()); 8657: return qstrdup(msg); 8657: } 8657: 8657: template<> inline char *toString(const QSize &s) 8657: { 8657: char msg[128] = {'\0'}; 8657: qsnprintf(msg, sizeof(msg), "QSize(%dx%d)", s.width(), s.height()); 8657: return qstrdup(msg); 8657: } 8657: 8657: template<> inline char *toString(const QRect &s) 8657: { 8657: char msg[256] = {'\0'}; 8657: qsnprintf(msg, sizeof(msg), "QRect(%d,%d %dx%d) (bottomright %d,%d)", 8657: s.left(), s.top(), s.width(), s.height(), s.right(), s.bottom()); 8657: return qstrdup(msg); 8657: } 8657: 8657: template<> inline char *toString(const QPointF &p) 8657: { 8657: char msg[64] = {'\0'}; 8657: qsnprintf(msg, sizeof(msg), "QPointF(%g,%g)", p.x(), p.y()); 8657: return qstrdup(msg); 8657: } 8657: 8657: template<> inline char *toString(const QSizeF &s) 8657: { 8657: char msg[64] = {'\0'}; 8657: qsnprintf(msg, sizeof(msg), "QSizeF(%gx%g)", s.width(), s.height()); 8657: return qstrdup(msg); 8657: } 8657: 8657: template<> inline char *toString(const QRectF &s) 8657: { 8657: char msg[256] = {'\0'}; 8657: qsnprintf(msg, sizeof(msg), "QRectF(%g,%g %gx%g) (bottomright %g,%g)", 8657: s.left(), s.top(), s.width(), s.height(), s.right(), s.bottom()); 8657: return qstrdup(msg); 8657: } 8657: 8657: template<> inline char *toString(const QUrl &uri) 8657: { 8657: if (!uri.isValid()) 8657: return qstrdup(QString(QLatin1String("Invalid URL: ") + uri.errorString()).toLocal8Bit().constData()); 8657: return qstrdup(uri.toEncoded().constData()); 8657: } 8657: 8657: template <> inline char *toString(const QUuid &uuid) 8657: { 8657: return qstrdup(uuid.toByteArray().constData()); 8657: } 8657: 8657: template<> inline char *toString(const QVariant &v) 8657: { 8657: QByteArray vstring("QVariant("); 8657: if (v.isValid()) { 8657: QByteArray type(v.typeName()); 8657: if (type.isEmpty()) { 8657: type = QByteArray::number(v.userType()); 8657: } 8657: vstring.append(type); 8657: if (!v.isNull()) { 8657: vstring.append(','); 8657: if (v.canConvert(QVariant::String)) { 8657: vstring.append(v.toString().toLocal8Bit()); 8657: } 8657: else { 8657: vstring.append(""); 8657: } 8657: } 8657: } 8657: vstring.append(')'); 8657: 8657: return qstrdup(vstring.constData()); 8657: } 8657: 8657: inline char *toString(std::nullptr_t) 8657: { 8657: return toString(QLatin1String("nullptr")); 8657: } 8657: 8657: template<> 8657: inline bool qCompare(QString const &t1, QLatin1String const &t2, const char *actual, 8657: const char *expected, const char *file, int line) 8657: { 8657: return qCompare(t1, QString(t2), actual, expected, file, line); 8657: } 8657: template<> 8657: inline bool qCompare(QLatin1String const &t1, QString const &t2, const char *actual, 8657: const char *expected, const char *file, int line) 8657: { 8657: return qCompare(QString(t1), t2, actual, expected, file, line); 8657: } 8657: 8657: template 8657: inline bool qCompare(QList const &t1, QList const &t2, const char *actual, const char *expected, 8657: const char *file, int line) 8657: { 8657: char msg[1024]; 8657: msg[0] = '\0'; 8657: bool isOk = true; 8657: const int actualSize = t1.count(); 8657: const int expectedSize = t2.count(); 8657: if (actualSize != expectedSize) { 8657: qsnprintf(msg, sizeof(msg), "Compared lists have different sizes.\n" 8657: " Actual (%s) size: %d\n" 8657: " Expected (%s) size: %d", actual, actualSize, expected, expectedSize); 8657: isOk = false; 8657: } 8657: for (int i = 0; isOk && i < actualSize; ++i) { 8657: if (!(t1.at(i) == t2.at(i))) { 8657: char *val1 = toString(t1.at(i)); 8657: char *val2 = toString(t2.at(i)); 8657: 8657: qsnprintf(msg, sizeof(msg), "Compared lists differ at index %d.\n" 8657: " Actual (%s): %s\n" 8657: " Expected (%s): %s", i, actual, val1 ? val1 : "", 8657: expected, val2 ? val2 : ""); 8657: isOk = false; 8657: 8657: delete [] val1; 8657: delete [] val2; 8657: } 8657: } 8657: return compare_helper(isOk, msg, nullptr, nullptr, actual, expected, file, line); 8657: } 8657: 8657: template <> 8657: inline bool qCompare(QStringList const &t1, QStringList const &t2, const char *actual, const char *expected, 8657: const char *file, int line) 8657: { 8657: return qCompare(t1, t2, actual, expected, file, line); 8657: } 8657: 8657: template 8657: inline bool qCompare(QFlags const &t1, T const &t2, const char *actual, const char *expected, 8657: const char *file, int line) 8657: { 8657: return qCompare(int(t1), int(t2), actual, expected, file, line); 8657: } 8657: 8657: template 8657: inline bool qCompare(QFlags const &t1, int const &t2, const char *actual, const char *expected, 8657: const char *file, int line) 8657: { 8657: return qCompare(int(t1), t2, actual, expected, file, line); 8657: } 8657: 8657: template<> 8657: inline bool qCompare(qint64 const &t1, qint32 const &t2, const char *actual, 8657: const char *expected, const char *file, int line) 8657: { 8657: return qCompare(t1, static_cast(t2), actual, expected, file, line); 8657: } 8657: 8657: template<> 8657: inline bool qCompare(qint64 const &t1, quint32 const &t2, const char *actual, 8657: const char *expected, const char *file, int line) 8657: { 8657: return qCompare(t1, static_cast(t2), actual, expected, file, line); 8657: } 8657: 8657: template<> 8657: inline bool qCompare(quint64 const &t1, quint32 const &t2, const char *actual, 8657: const char *expected, const char *file, int line) 8657: { 8657: return qCompare(t1, static_cast(t2), actual, expected, file, line); 8657: } 8657: 8657: template<> 8657: inline bool qCompare(qint32 const &t1, qint64 const &t2, const char *actual, 8657: const char *expected, const char *file, int line) 8657: { 8657: return qCompare(static_cast(t1), t2, actual, expected, file, line); 8657: } 8657: 8657: template<> 8657: inline bool qCompare(quint32 const &t1, qint64 const &t2, const char *actual, 8657: const char *expected, const char *file, int line) 8657: { 8657: return qCompare(static_cast(t1), t2, actual, expected, file, line); 8657: } 8657: 8657: template<> 8657: inline bool qCompare(quint32 const &t1, quint64 const &t2, const char *actual, 8657: const char *expected, const char *file, int line) 8657: { 8657: return qCompare(static_cast(t1), t2, actual, expected, file, line); 8657: } 8657: 8657: } 8657: 8657: # 328 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestsystem.h" 1 3 4 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestsystem.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 1 3 4 8657: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreevent.h" 1 3 4 8657: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreevent.h" 3 4 8657: 8657: 8657: 8657: class QEventPrivate; 8657: class __attribute__((visibility("default"))) QEvent 8657: { 8657: public: static const QMetaObject staticMetaObject; void qt_check_for_QGADGET_macro(); typedef void QtGadgetHelper; private: 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreevent.h" 3 4 8657: #pragma GCC diagnostic push 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreevent.h" 3 4 8657: 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreevent.h" 3 4 8657: #pragma GCC diagnostic ignored "-Wattributes" 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreevent.h" 3 4 8657: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreevent.h" 3 4 8657: #pragma GCC diagnostic pop 8657: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreevent.h" 3 4 8657: 8657: 8657: public: 8657: enum Type { 8657: 8657: 8657: 8657: 8657: 8657: 8657: None = 0, 8657: Timer = 1, 8657: MouseButtonPress = 2, 8657: MouseButtonRelease = 3, 8657: MouseButtonDblClick = 4, 8657: MouseMove = 5, 8657: KeyPress = 6, 8657: KeyRelease = 7, 8657: FocusIn = 8, 8657: FocusOut = 9, 8657: FocusAboutToChange = 23, 8657: Enter = 10, 8657: Leave = 11, 8657: Paint = 12, 8657: Move = 13, 8657: Resize = 14, 8657: Create = 15, 8657: Destroy = 16, 8657: Show = 17, 8657: Hide = 18, 8657: Close = 19, 8657: Quit = 20, 8657: ParentChange = 21, 8657: ParentAboutToChange = 131, 8657: ThreadChange = 22, 8657: WindowActivate = 24, 8657: WindowDeactivate = 25, 8657: ShowToParent = 26, 8657: HideToParent = 27, 8657: Wheel = 31, 8657: WindowTitleChange = 33, 8657: WindowIconChange = 34, 8657: ApplicationWindowIconChange = 35, 8657: ApplicationFontChange = 36, 8657: ApplicationLayoutDirectionChange = 37, 8657: ApplicationPaletteChange = 38, 8657: PaletteChange = 39, 8657: Clipboard = 40, 8657: Speech = 42, 8657: MetaCall = 43, 8657: SockAct = 50, 8657: WinEventAct = 132, 8657: DeferredDelete = 52, 8657: DragEnter = 60, 8657: DragMove = 61, 8657: DragLeave = 62, 8657: Drop = 63, 8657: DragResponse = 64, 8657: ChildAdded = 68, 8657: ChildPolished = 69, 8657: ChildRemoved = 71, 8657: ShowWindowRequest = 73, 8657: PolishRequest = 74, 8657: Polish = 75, 8657: LayoutRequest = 76, 8657: UpdateRequest = 77, 8657: UpdateLater = 78, 8657: 8657: EmbeddingControl = 79, 8657: ActivateControl = 80, 8657: DeactivateControl = 81, 8657: ContextMenu = 82, 8657: InputMethod = 83, 8657: TabletMove = 87, 8657: LocaleChange = 88, 8657: LanguageChange = 89, 8657: LayoutDirectionChange = 90, 8657: Style = 91, 8657: TabletPress = 92, 8657: TabletRelease = 93, 8657: OkRequest = 94, 8657: HelpRequest = 95, 8657: 8657: IconDrag = 96, 8657: 8657: FontChange = 97, 8657: EnabledChange = 98, 8657: ActivationChange = 99, 8657: StyleChange = 100, 8657: IconTextChange = 101, 8657: ModifiedChange = 102, 8657: MouseTrackingChange = 109, 8657: 8657: WindowBlocked = 103, 8657: WindowUnblocked = 104, 8657: WindowStateChange = 105, 8657: 8657: ReadOnlyChange = 106, 8657: 8657: ToolTip = 110, 8657: WhatsThis = 111, 8657: StatusTip = 112, 8657: 8657: ActionChanged = 113, 8657: ActionAdded = 114, 8657: ActionRemoved = 115, 8657: 8657: FileOpen = 116, 8657: 8657: Shortcut = 117, 8657: ShortcutOverride = 51, 8657: 8657: WhatsThisClicked = 118, 8657: 8657: ToolBarChange = 120, 8657: 8657: ApplicationActivate = 121, 8657: ApplicationActivated = ApplicationActivate, 8657: ApplicationDeactivate = 122, 8657: ApplicationDeactivated = ApplicationDeactivate, 8657: 8657: QueryWhatsThis = 123, 8657: EnterWhatsThisMode = 124, 8657: LeaveWhatsThisMode = 125, 8657: 8657: ZOrderChange = 126, 8657: 8657: HoverEnter = 127, 8657: HoverLeave = 128, 8657: HoverMove = 129, 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: AcceptDropsChange = 152, 8657: 8657: ZeroTimerEvent = 154, 8657: 8657: GraphicsSceneMouseMove = 155, 8657: GraphicsSceneMousePress = 156, 8657: GraphicsSceneMouseRelease = 157, 8657: GraphicsSceneMouseDoubleClick = 158, 8657: GraphicsSceneContextMenu = 159, 8657: GraphicsSceneHoverEnter = 160, 8657: GraphicsSceneHoverMove = 161, 8657: GraphicsSceneHoverLeave = 162, 8657: GraphicsSceneHelp = 163, 8657: GraphicsSceneDragEnter = 164, 8657: GraphicsSceneDragMove = 165, 8657: GraphicsSceneDragLeave = 166, 8657: GraphicsSceneDrop = 167, 8657: GraphicsSceneWheel = 168, 8657: 8657: KeyboardLayoutChange = 169, 8657: 8657: DynamicPropertyChange = 170, 8657: 8657: TabletEnterProximity = 171, 8657: TabletLeaveProximity = 172, 8657: 8657: NonClientAreaMouseMove = 173, 8657: NonClientAreaMouseButtonPress = 174, 8657: NonClientAreaMouseButtonRelease = 175, 8657: NonClientAreaMouseButtonDblClick = 176, 8657: 8657: MacSizeChange = 177, 8657: 8657: ContentsRectChange = 178, 8657: 8657: MacGLWindowChange = 179, 8657: 8657: FutureCallOut = 180, 8657: 8657: GraphicsSceneResize = 181, 8657: GraphicsSceneMove = 182, 8657: 8657: CursorChange = 183, 8657: ToolTipChange = 184, 8657: 8657: NetworkReplyUpdated = 185, 8657: 8657: GrabMouse = 186, 8657: UngrabMouse = 187, 8657: GrabKeyboard = 188, 8657: UngrabKeyboard = 189, 8657: MacGLClearDrawable = 191, 8657: 8657: StateMachineSignal = 192, 8657: StateMachineWrapped = 193, 8657: 8657: TouchBegin = 194, 8657: TouchUpdate = 195, 8657: TouchEnd = 196, 8657: 8657: 8657: NativeGesture = 197, 8657: 8657: RequestSoftwareInputPanel = 199, 8657: CloseSoftwareInputPanel = 200, 8657: 8657: WinIdChange = 203, 8657: 8657: Gesture = 198, 8657: GestureOverride = 202, 8657: 8657: ScrollPrepare = 204, 8657: Scroll = 205, 8657: 8657: Expose = 206, 8657: 8657: InputMethodQuery = 207, 8657: OrientationChange = 208, 8657: 8657: TouchCancel = 209, 8657: 8657: ThemeChange = 210, 8657: 8657: SockClose = 211, 8657: 8657: PlatformPanel = 212, 8657: 8657: StyleAnimationUpdate = 213, 8657: ApplicationStateChange = 214, 8657: 8657: WindowChangeInternal = 215, 8657: ScreenChangeInternal = 216, 8657: 8657: PlatformSurface = 217, 8657: 8657: Pointer = 218, 8657: 8657: TabletTrackingChange = 219, 8657: 8657: 8657: 8657: 8657: User = 1000, 8657: MaxUser = 65535 8657: }; 8657: friend constexpr const QMetaObject *qt_getEnumMetaObject(Type) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Type) noexcept { return "Type"; } 8657: 8657: explicit QEvent(Type type); 8657: QEvent(const QEvent &other); 8657: virtual ~QEvent(); 8657: QEvent &operator=(const QEvent &other); 8657: inline Type type() const { return static_cast(t); } 8657: inline bool spontaneous() const { return spont; } 8657: 8657: inline void setAccepted(bool accepted) { m_accept = accepted; } 8657: inline bool isAccepted() const { return m_accept; } 8657: 8657: inline void accept() { m_accept = true; } 8657: inline void ignore() { m_accept = false; } 8657: 8657: static int registerEventType(int hint = -1) noexcept; 8657: 8657: protected: 8657: QEventPrivate *d; 8657: ushort t; 8657: 8657: private: 8657: ushort posted : 1; 8657: ushort spont : 1; 8657: ushort m_accept : 1; 8657: ushort reserved : 13; 8657: 8657: friend class QCoreApplication; 8657: friend class QCoreApplicationPrivate; 8657: friend class QThreadData; 8657: friend class QApplication; 8657: friend class QShortcutMap; 8657: friend class QGraphicsView; 8657: friend class QGraphicsScene; 8657: friend class QGraphicsScenePrivate; 8657: 8657: friend class QSpontaneKeyEvent; 8657: 8657: inline __attribute__((always_inline)) 8657: void setSpontaneous() { spont = true; } 8657: }; 8657: 8657: class __attribute__((visibility("default"))) QTimerEvent : public QEvent 8657: { 8657: public: 8657: explicit QTimerEvent( int timerId ); 8657: ~QTimerEvent(); 8657: int timerId() const { return id; } 8657: protected: 8657: int id; 8657: }; 8657: 8657: class QObject; 8657: 8657: class __attribute__((visibility("default"))) QChildEvent : public QEvent 8657: { 8657: public: 8657: QChildEvent( Type type, QObject *child ); 8657: ~QChildEvent(); 8657: QObject *child() const { return c; } 8657: bool added() const { return type() == ChildAdded; } 8657: bool polished() const { return type() == ChildPolished; } 8657: bool removed() const { return type() == ChildRemoved; } 8657: protected: 8657: QObject *c; 8657: }; 8657: 8657: class __attribute__((visibility("default"))) QDynamicPropertyChangeEvent : public QEvent 8657: { 8657: public: 8657: explicit QDynamicPropertyChangeEvent(const QByteArray &name); 8657: ~QDynamicPropertyChangeEvent(); 8657: 8657: inline QByteArray propertyName() const { return n; } 8657: 8657: private: 8657: QByteArray n; 8657: }; 8657: 8657: class __attribute__((visibility("default"))) QDeferredDeleteEvent : public QEvent 8657: { 8657: public: 8657: explicit QDeferredDeleteEvent(); 8657: ~QDeferredDeleteEvent(); 8657: int loopLevel() const { return level; } 8657: private: 8657: int level; 8657: friend class QCoreApplication; 8657: }; 8657: 8657: 8657: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 1 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 3 4 8657: 8657: 8657: 8657: class QEventLoopPrivate; 8657: 8657: class __attribute__((visibility("default"))) QEventLoop : public QObject 8657: { 8657: public: 8657: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 3 4 8657: #pragma GCC diagnostic push 8657: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 3 4 8657: 8657: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 3 4 8657: #pragma GCC diagnostic ignored "-Wsuggest-override" 8657: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 3 4 8657: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8657: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 3 4 8657: #pragma GCC diagnostic ignored "-Wattributes" 8657: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 3 4 8657: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8657: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 3 4 8657: #pragma GCC diagnostic pop 8657: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 3 4 8657: struct QPrivateSignal {}; 8657: inline QEventLoopPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QEventLoopPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QEventLoopPrivate; 8657: 8657: public: 8657: explicit QEventLoop(QObject *parent = nullptr); 8657: ~QEventLoop(); 8657: 8657: enum ProcessEventsFlag { 8657: AllEvents = 0x00, 8657: ExcludeUserInputEvents = 0x01, 8657: ExcludeSocketNotifiers = 0x02, 8657: WaitForMoreEvents = 0x04, 8657: X11ExcludeTimers = 0x08, 8657: EventLoopExec = 0x20, 8657: DialogExec = 0x40 8657: }; 8657: typedef QFlags ProcessEventsFlags; 8657: 8657: bool processEvents(ProcessEventsFlags flags = AllEvents); 8657: void processEvents(ProcessEventsFlags flags, int maximumTime); 8657: 8657: int exec(ProcessEventsFlags flags = AllEvents); 8657: void exit(int returnCode = 0); 8657: bool isRunning() const; 8657: 8657: void wakeUp(); 8657: 8657: bool event(QEvent *event) override; 8657: 8657: public : 8657: void quit(); 8657: }; 8657: 8657: constexpr inline QFlags operator|(QEventLoop::ProcessEventsFlags::enum_type f1, QEventLoop::ProcessEventsFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QEventLoop::ProcessEventsFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QEventLoop::ProcessEventsFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8657: 8657: 8657: class QEventLoopLockerPrivate; 8657: 8657: class __attribute__((visibility("default"))) QEventLoopLocker 8657: { 8657: public: 8657: QEventLoopLocker(); 8657: explicit QEventLoopLocker(QEventLoop *loop); 8657: explicit QEventLoopLocker(QThread *thread); 8657: ~QEventLoopLocker(); 8657: 8657: private: 8657: QEventLoopLocker(const QEventLoopLocker &) = delete; QEventLoopLocker &operator=(const QEventLoopLocker &) = delete; 8657: QEventLoopLockerPrivate *d_ptr; 8657: }; 8657: 8657: 8657: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 2 3 4 8657: # 59 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8657: 8657: 8657: 8657: class QCoreApplicationPrivate; 8657: class QTextCodec; 8657: class QTranslator; 8657: class QPostEventList; 8657: class QStringList; 8657: class QAbstractEventDispatcher; 8657: class QAbstractNativeEventFilter; 8657: 8657: 8657: 8657: class __attribute__((visibility("default"))) QCoreApplication 8657: 8657: : public QObject 8657: 8657: { 8657: 8657: public: 8657: # 78 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8657: #pragma GCC diagnostic push 8657: # 78 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8657: 8657: # 78 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8657: #pragma GCC diagnostic ignored "-Wsuggest-override" 8657: # 78 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8657: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8657: # 78 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8657: #pragma GCC diagnostic ignored "-Wattributes" 8657: # 78 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8657: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8657: # 78 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8657: #pragma GCC diagnostic pop 8657: # 78 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8657: struct QPrivateSignal {}; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: inline QCoreApplicationPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QCoreApplicationPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QCoreApplicationPrivate; 8657: public: 8657: enum { ApplicationFlags = ((5<<16)|(9<<8)|(3)) 8657: }; 8657: 8657: QCoreApplication(int &argc, char **argv 8657: 8657: , int = ApplicationFlags 8657: 8657: ); 8657: 8657: ~QCoreApplication(); 8657: 8657: static QStringList arguments(); 8657: 8657: static void setAttribute(Qt::ApplicationAttribute attribute, bool on = true); 8657: static bool testAttribute(Qt::ApplicationAttribute attribute); 8657: 8657: static void setOrganizationDomain(const QString &orgDomain); 8657: static QString organizationDomain(); 8657: static void setOrganizationName(const QString &orgName); 8657: static QString organizationName(); 8657: static void setApplicationName(const QString &application); 8657: static QString applicationName(); 8657: static void setApplicationVersion(const QString &version); 8657: static QString applicationVersion(); 8657: 8657: static void setSetuidAllowed(bool allow); 8657: static bool isSetuidAllowed(); 8657: 8657: static QCoreApplication *instance() { return self; } 8657: 8657: 8657: static int exec(); 8657: static void processEvents(QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents); 8657: static void processEvents(QEventLoop::ProcessEventsFlags flags, int maxtime); 8657: static void exit(int retcode=0); 8657: 8657: static bool sendEvent(QObject *receiver, QEvent *event); 8657: static void postEvent(QObject *receiver, QEvent *event, int priority = Qt::NormalEventPriority); 8657: static void sendPostedEvents(QObject *receiver = nullptr, int event_type = 0); 8657: static void removePostedEvents(QObject *receiver, int eventType = 0); 8657: 8657: static bool hasPendingEvents(); 8657: 8657: static QAbstractEventDispatcher *eventDispatcher(); 8657: static void setEventDispatcher(QAbstractEventDispatcher *eventDispatcher); 8657: 8657: virtual bool notify(QObject *, QEvent *); 8657: 8657: static bool startingUp(); 8657: static bool closingDown(); 8657: 8657: 8657: static QString applicationDirPath(); 8657: static QString applicationFilePath(); 8657: static qint64 applicationPid(); 8657: 8657: 8657: static void setLibraryPaths(const QStringList &); 8657: static QStringList libraryPaths(); 8657: static void addLibraryPath(const QString &); 8657: static void removeLibraryPath(const QString &); 8657: 8657: 8657: 8657: static bool installTranslator(QTranslator * messageFile); 8657: static bool removeTranslator(QTranslator * messageFile); 8657: 8657: 8657: static QString translate(const char * context, 8657: const char * key, 8657: const char * disambiguation = nullptr, 8657: int n = -1); 8657: # 169 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8657: static void flush(); 8657: 8657: 8657: void installNativeEventFilter(QAbstractNativeEventFilter *filterObj); 8657: void removeNativeEventFilter(QAbstractNativeEventFilter *filterObj); 8657: 8657: static bool isQuitLockEnabled(); 8657: static void setQuitLockEnabled(bool enabled); 8657: 8657: public : 8657: static void quit(); 8657: 8657: public : 8657: void aboutToQuit(QPrivateSignal); 8657: 8657: void organizationNameChanged(); 8657: void organizationDomainChanged(); 8657: void applicationNameChanged(); 8657: void applicationVersionChanged(); 8657: 8657: protected: 8657: bool event(QEvent *) override; 8657: 8657: virtual bool compressEvent(QEvent *, QObject *receiver, QPostEventList *); 8657: 8657: 8657: protected: 8657: QCoreApplication(QCoreApplicationPrivate &p); 8657: 8657: 8657: 8657: 8657: 8657: private: 8657: 8657: static bool sendSpontaneousEvent(QObject *receiver, QEvent *event); 8657: 8657: bool notifyInternal(QObject *receiver, QEvent *event); 8657: 8657: static bool notifyInternal2(QObject *receiver, QEvent *); 8657: 8657: 8657: static QCoreApplication *self; 8657: 8657: QCoreApplication(const QCoreApplication &) = delete; QCoreApplication &operator=(const QCoreApplication &) = delete; 8657: 8657: friend class QApplication; 8657: friend class QApplicationPrivate; 8657: friend class QGuiApplication; 8657: friend class QGuiApplicationPrivate; 8657: friend class QWidget; 8657: friend class QWidgetWindow; 8657: friend class QWidgetPrivate; 8657: 8657: friend class QEventDispatcherUNIXPrivate; 8657: friend class QCocoaEventDispatcherPrivate; 8657: friend bool qt_sendSpontaneousEvent(QObject*, QEvent*); 8657: 8657: friend __attribute__((visibility("default"))) QString qAppName(); 8657: friend class QClassFactory; 8657: }; 8657: 8657: 8657: inline bool QCoreApplication::sendEvent(QObject *receiver, QEvent *event) 8657: { if (event) event->spont = false; return notifyInternal2(receiver, event); } 8657: 8657: inline bool QCoreApplication::sendSpontaneousEvent(QObject *receiver, QEvent *event) 8657: { if (event) event->spont = true; return notifyInternal2(receiver, event); } 8657: # 254 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8657: typedef void (*QtStartUpFunction)(); 8657: typedef void (*QtCleanUpFunction)(); 8657: 8657: __attribute__((visibility("default"))) void qAddPreRoutine(QtStartUpFunction); 8657: __attribute__((visibility("default"))) void qAddPostRoutine(QtCleanUpFunction); 8657: __attribute__((visibility("default"))) void qRemovePostRoutine(QtCleanUpFunction); 8657: __attribute__((visibility("default"))) QString qAppName(); 8657: # 275 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8657: 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestsystem.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdeadlinetimer.h" 1 3 4 8657: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdeadlinetimer.h" 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qelapsedtimer.h" 1 3 4 8657: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qelapsedtimer.h" 3 4 8657: 8657: 8657: 8657: class __attribute__((visibility("default"))) QElapsedTimer 8657: { 8657: public: 8657: enum ClockType { 8657: SystemTime, 8657: MonotonicClock, 8657: TickCounter, 8657: MachAbsoluteTime, 8657: PerformanceCounter 8657: }; 8657: 8657: constexpr QElapsedTimer() 8657: : t1(static_cast(0x8000000000000000LL)), 8657: t2(static_cast(0x8000000000000000LL)) 8657: { 8657: } 8657: 8657: static ClockType clockType() noexcept; 8657: static bool isMonotonic() noexcept; 8657: 8657: void start() noexcept; 8657: qint64 restart() noexcept; 8657: void invalidate() noexcept; 8657: bool isValid() const noexcept; 8657: 8657: qint64 nsecsElapsed() const noexcept; 8657: qint64 elapsed() const noexcept; 8657: bool hasExpired(qint64 timeout) const noexcept; 8657: 8657: qint64 msecsSinceReference() const noexcept; 8657: qint64 msecsTo(const QElapsedTimer &other) const noexcept; 8657: qint64 secsTo(const QElapsedTimer &other) const noexcept; 8657: 8657: bool operator==(const QElapsedTimer &other) const noexcept 8657: { return t1 == other.t1 && t2 == other.t2; } 8657: bool operator!=(const QElapsedTimer &other) const noexcept 8657: { return !(*this == other); } 8657: 8657: friend bool __attribute__((visibility("default"))) operator<(const QElapsedTimer &v1, const QElapsedTimer &v2) noexcept; 8657: 8657: private: 8657: qint64 t1; 8657: qint64 t2; 8657: }; 8657: 8657: 8657: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdeadlinetimer.h" 2 3 4 8657: # 58 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdeadlinetimer.h" 3 4 8657: 8657: 8657: class __attribute__((visibility("default"))) QDeadlineTimer 8657: { 8657: public: 8657: enum ForeverConstant { Forever }; 8657: 8657: constexpr QDeadlineTimer(Qt::TimerType type_ = Qt::CoarseTimer) noexcept 8657: : t1(0), t2(0), type(type_) {} 8657: constexpr QDeadlineTimer(ForeverConstant, Qt::TimerType type_ = Qt::CoarseTimer) noexcept 8657: : t1(std::numeric_limits::max()), t2(0), type(type_) {} 8657: explicit QDeadlineTimer(qint64 msecs, Qt::TimerType type = Qt::CoarseTimer) noexcept; 8657: 8657: void swap(QDeadlineTimer &other) noexcept 8657: { qSwap(t1, other.t1); qSwap(t2, other.t2); qSwap(type, other.type); } 8657: 8657: constexpr bool isForever() const noexcept 8657: { return t1 == (std::numeric_limits::max)(); } 8657: bool hasExpired() const noexcept; 8657: 8657: Qt::TimerType timerType() const noexcept 8657: { return Qt::TimerType(type & 0xff); } 8657: void setTimerType(Qt::TimerType type); 8657: 8657: qint64 remainingTime() const noexcept; 8657: qint64 remainingTimeNSecs() const noexcept; 8657: void setRemainingTime(qint64 msecs, Qt::TimerType type = Qt::CoarseTimer) noexcept; 8657: void setPreciseRemainingTime(qint64 secs, qint64 nsecs = 0, 8657: Qt::TimerType type = Qt::CoarseTimer) noexcept; 8657: 8657: qint64 deadline() const noexcept __attribute__((pure)); 8657: qint64 deadlineNSecs() const noexcept __attribute__((pure)); 8657: void setDeadline(qint64 msecs, Qt::TimerType timerType = Qt::CoarseTimer) noexcept; 8657: void setPreciseDeadline(qint64 secs, qint64 nsecs = 0, 8657: Qt::TimerType type = Qt::CoarseTimer) noexcept; 8657: 8657: static QDeadlineTimer addNSecs(QDeadlineTimer dt, qint64 nsecs) noexcept __attribute__((pure)); 8657: static QDeadlineTimer current(Qt::TimerType timerType = Qt::CoarseTimer) noexcept; 8657: 8657: friend bool operator==(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8657: { return d1.t1 == d2.t1 && d1.t2 == d2.t2; } 8657: friend bool operator!=(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8657: { return !(d1 == d2); } 8657: friend bool operator<(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8657: { return d1.t1 < d2.t1 || (d1.t1 == d2.t1 && d1.t2 < d2.t2); } 8657: friend bool operator<=(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8657: { return d1 == d2 || d1 < d2; } 8657: friend bool operator>(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8657: { return d2 < d1; } 8657: friend bool operator>=(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8657: { return !(d1 < d2); } 8657: 8657: friend QDeadlineTimer operator+(QDeadlineTimer dt, qint64 msecs) 8657: { return QDeadlineTimer::addNSecs(dt, msecs * 1000 * 1000); } 8657: friend QDeadlineTimer operator+(qint64 msecs, QDeadlineTimer dt) 8657: { return dt + msecs; } 8657: friend QDeadlineTimer operator-(QDeadlineTimer dt, qint64 msecs) 8657: { return dt + (-msecs); } 8657: friend qint64 operator-(QDeadlineTimer dt1, QDeadlineTimer dt2) 8657: { return (dt1.deadlineNSecs() - dt2.deadlineNSecs()) / (1000 * 1000); } 8657: QDeadlineTimer &operator+=(qint64 msecs) 8657: { *this = *this + msecs; return *this; } 8657: QDeadlineTimer &operator-=(qint64 msecs) 8657: { *this = *this + (-msecs); return *this; } 8657: 8657: 8657: template 8657: QDeadlineTimer(std::chrono::time_point deadline_, 8657: Qt::TimerType type_ = Qt::CoarseTimer) : t2(0) 8657: { setDeadline(deadline_, type_); } 8657: template 8657: QDeadlineTimer &operator=(std::chrono::time_point deadline_) 8657: { setDeadline(deadline_); return *this; } 8657: 8657: template 8657: void setDeadline(std::chrono::time_point deadline_, 8657: Qt::TimerType type_ = Qt::CoarseTimer) 8657: { setRemainingTime(deadline_ == deadline_.max() ? Duration::max() : deadline_ - Clock::now(), type_); } 8657: 8657: template 8657: std::chrono::time_point deadline() const 8657: { 8657: auto val = std::chrono::nanoseconds(rawRemainingTimeNSecs()) + Clock::now(); 8657: return std::chrono::time_point_cast(val); 8657: } 8657: 8657: template 8657: QDeadlineTimer(std::chrono::duration remaining, Qt::TimerType type_ = Qt::CoarseTimer) 8657: : t2(0) 8657: { setRemainingTime(remaining, type_); } 8657: 8657: template 8657: QDeadlineTimer &operator=(std::chrono::duration remaining) 8657: { setRemainingTime(remaining); return *this; } 8657: 8657: template 8657: void setRemainingTime(std::chrono::duration remaining, Qt::TimerType type_ = Qt::CoarseTimer) 8657: { 8657: if (remaining == remaining.max()) 8657: *this = QDeadlineTimer(Forever, type_); 8657: else 8657: setPreciseRemainingTime(0, std::chrono::nanoseconds(remaining).count(), type_); 8657: } 8657: 8657: std::chrono::nanoseconds remainingTimeAsDuration() const noexcept 8657: { 8657: if (isForever()) 8657: return std::chrono::nanoseconds::max(); 8657: qint64 nsecs = rawRemainingTimeNSecs(); 8657: if (nsecs <= 0) 8657: return std::chrono::nanoseconds::zero(); 8657: return std::chrono::nanoseconds(nsecs); 8657: } 8657: 8657: template 8657: friend QDeadlineTimer operator+(QDeadlineTimer dt, std::chrono::duration value) 8657: { return QDeadlineTimer::addNSecs(dt, std::chrono::duration_cast(value).count()); } 8657: template 8657: friend QDeadlineTimer operator+(std::chrono::duration value, QDeadlineTimer dt) 8657: { return dt + value; } 8657: template 8657: friend QDeadlineTimer operator+=(QDeadlineTimer &dt, std::chrono::duration value) 8657: { return dt = dt + value; } 8657: 8657: 8657: private: 8657: qint64 t1; 8657: unsigned t2; 8657: unsigned type; 8657: 8657: qint64 rawRemainingTimeNSecs() const noexcept; 8657: }; 8657: 8657: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QDeadlineTimer)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QDeadlineTimer >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QDeadlineTimer) }; static inline const char *name() { return "QDeadlineTimer"; } }; inline void swap(QDeadlineTimer &value1, QDeadlineTimer &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8657: 8657: 8657: 8657: template <> struct QMetaTypeId< QDeadlineTimer > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< QDeadlineTimer >("QDeadlineTimer", reinterpret_cast< QDeadlineTimer *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8657: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestsystem.h" 2 3 4 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: namespace QTest 8657: { 8657: __attribute__((__unused__)) inline static void qWait(int ms) 8657: { 8657: do { } while ((false) && (QCoreApplication::instance())); 8657: 8657: QDeadlineTimer timer(ms, Qt::PreciseTimer); 8657: int remaining = ms; 8657: do { 8657: QCoreApplication::processEvents(QEventLoop::AllEvents, remaining); 8657: QCoreApplication::sendPostedEvents(nullptr, QEvent::DeferredDelete); 8657: remaining = timer.remainingTime(); 8657: if (remaining <= 0) 8657: break; 8657: QTest::qSleep(qMin(10, remaining)); 8657: remaining = timer.remainingTime(); 8657: } while (remaining > 0); 8657: } 8657: # 140 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestsystem.h" 3 4 8657: } 8657: 8657: 8657: # 329 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8657: # 1 "/usr/include/c++/8/set" 1 3 4 8657: # 58 "/usr/include/c++/8/set" 3 4 8657: 8657: # 59 "/usr/include/c++/8/set" 3 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/stl_set.h" 1 3 8657: # 64 "/usr/include/c++/8/bits/stl_set.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: template 8657: class multiset; 8657: # 92 "/usr/include/c++/8/bits/stl_set.h" 3 8657: template, 8657: typename _Alloc = std::allocator<_Key> > 8657: class set 8657: { 8657: # 108 "/usr/include/c++/8/bits/stl_set.h" 3 8657: static_assert(is_same::type, _Key>::value, 8657: "std::set must have a non-const, non-volatile value_type"); 8657: 8657: 8657: 8657: 8657: 8657: 8657: public: 8657: 8657: 8657: 8657: typedef _Key key_type; 8657: typedef _Key value_type; 8657: typedef _Compare key_compare; 8657: typedef _Compare value_compare; 8657: typedef _Alloc allocator_type; 8657: 8657: 8657: private: 8657: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8657: rebind<_Key>::other _Key_alloc_type; 8657: 8657: typedef _Rb_tree, 8657: key_compare, _Key_alloc_type> _Rep_type; 8657: _Rep_type _M_t; 8657: 8657: typedef __gnu_cxx::__alloc_traits<_Key_alloc_type> _Alloc_traits; 8657: 8657: public: 8657: 8657: 8657: typedef typename _Alloc_traits::pointer pointer; 8657: typedef typename _Alloc_traits::const_pointer const_pointer; 8657: typedef typename _Alloc_traits::reference reference; 8657: typedef typename _Alloc_traits::const_reference const_reference; 8657: 8657: 8657: 8657: typedef typename _Rep_type::const_iterator iterator; 8657: typedef typename _Rep_type::const_iterator const_iterator; 8657: typedef typename _Rep_type::const_reverse_iterator reverse_iterator; 8657: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 8657: typedef typename _Rep_type::size_type size_type; 8657: typedef typename _Rep_type::difference_type difference_type; 8657: # 167 "/usr/include/c++/8/bits/stl_set.h" 3 8657: set() = default; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: explicit 8657: set(const _Compare& __comp, 8657: const allocator_type& __a = allocator_type()) 8657: : _M_t(__comp, _Key_alloc_type(__a)) { } 8657: # 190 "/usr/include/c++/8/bits/stl_set.h" 3 8657: template 8657: set(_InputIterator __first, _InputIterator __last) 8657: : _M_t() 8657: { _M_t._M_insert_unique(__first, __last); } 8657: # 207 "/usr/include/c++/8/bits/stl_set.h" 3 8657: template 8657: set(_InputIterator __first, _InputIterator __last, 8657: const _Compare& __comp, 8657: const allocator_type& __a = allocator_type()) 8657: : _M_t(__comp, _Key_alloc_type(__a)) 8657: { _M_t._M_insert_unique(__first, __last); } 8657: # 223 "/usr/include/c++/8/bits/stl_set.h" 3 8657: set(const set&) = default; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: set(set&&) = default; 8657: # 243 "/usr/include/c++/8/bits/stl_set.h" 3 8657: set(initializer_list __l, 8657: const _Compare& __comp = _Compare(), 8657: const allocator_type& __a = allocator_type()) 8657: : _M_t(__comp, _Key_alloc_type(__a)) 8657: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 8657: 8657: 8657: explicit 8657: set(const allocator_type& __a) 8657: : _M_t(_Compare(), _Key_alloc_type(__a)) { } 8657: 8657: 8657: set(const set& __x, const allocator_type& __a) 8657: : _M_t(__x._M_t, _Key_alloc_type(__a)) { } 8657: 8657: 8657: set(set&& __x, const allocator_type& __a) 8657: noexcept(is_nothrow_copy_constructible<_Compare>::value 8657: && _Alloc_traits::_S_always_equal()) 8657: : _M_t(std::move(__x._M_t), _Key_alloc_type(__a)) { } 8657: 8657: 8657: set(initializer_list __l, const allocator_type& __a) 8657: : _M_t(_Compare(), _Key_alloc_type(__a)) 8657: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 8657: 8657: 8657: template 8657: set(_InputIterator __first, _InputIterator __last, 8657: const allocator_type& __a) 8657: : _M_t(_Compare(), _Key_alloc_type(__a)) 8657: { _M_t._M_insert_unique(__first, __last); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: ~set() = default; 8657: # 297 "/usr/include/c++/8/bits/stl_set.h" 3 8657: set& 8657: operator=(const set&) = default; 8657: 8657: 8657: set& 8657: operator=(set&&) = default; 8657: # 315 "/usr/include/c++/8/bits/stl_set.h" 3 8657: set& 8657: operator=(initializer_list __l) 8657: { 8657: _M_t._M_assign_unique(__l.begin(), __l.end()); 8657: return *this; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: key_compare 8657: key_comp() const 8657: { return _M_t.key_comp(); } 8657: 8657: value_compare 8657: value_comp() const 8657: { return _M_t.key_comp(); } 8657: 8657: allocator_type 8657: get_allocator() const noexcept 8657: { return allocator_type(_M_t.get_allocator()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: begin() const noexcept 8657: { return _M_t.begin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: end() const noexcept 8657: { return _M_t.end(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: rbegin() const noexcept 8657: { return _M_t.rbegin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: rend() const noexcept 8657: { return _M_t.rend(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: cbegin() const noexcept 8657: { return _M_t.begin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: cend() const noexcept 8657: { return _M_t.end(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: crbegin() const noexcept 8657: { return _M_t.rbegin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: crend() const noexcept 8657: { return _M_t.rend(); } 8657: 8657: 8657: 8657: bool 8657: empty() const noexcept 8657: { return _M_t.empty(); } 8657: 8657: 8657: size_type 8657: size() const noexcept 8657: { return _M_t.size(); } 8657: 8657: 8657: size_type 8657: max_size() const noexcept 8657: { return _M_t.max_size(); } 8657: # 440 "/usr/include/c++/8/bits/stl_set.h" 3 8657: void 8657: swap(set& __x) 8657: noexcept(__is_nothrow_swappable<_Compare>::value) 8657: { _M_t.swap(__x._M_t); } 8657: # 460 "/usr/include/c++/8/bits/stl_set.h" 3 8657: template 8657: std::pair 8657: emplace(_Args&&... __args) 8657: { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); } 8657: # 486 "/usr/include/c++/8/bits/stl_set.h" 3 8657: template 8657: iterator 8657: emplace_hint(const_iterator __pos, _Args&&... __args) 8657: { 8657: return _M_t._M_emplace_hint_unique(__pos, 8657: std::forward<_Args>(__args)...); 8657: } 8657: # 508 "/usr/include/c++/8/bits/stl_set.h" 3 8657: std::pair 8657: insert(const value_type& __x) 8657: { 8657: std::pair __p = 8657: _M_t._M_insert_unique(__x); 8657: return std::pair(__p.first, __p.second); 8657: } 8657: 8657: 8657: std::pair 8657: insert(value_type&& __x) 8657: { 8657: std::pair __p = 8657: _M_t._M_insert_unique(std::move(__x)); 8657: return std::pair(__p.first, __p.second); 8657: } 8657: # 545 "/usr/include/c++/8/bits/stl_set.h" 3 8657: iterator 8657: insert(const_iterator __position, const value_type& __x) 8657: { return _M_t._M_insert_unique_(__position, __x); } 8657: 8657: 8657: iterator 8657: insert(const_iterator __position, value_type&& __x) 8657: { return _M_t._M_insert_unique_(__position, std::move(__x)); } 8657: # 564 "/usr/include/c++/8/bits/stl_set.h" 3 8657: template 8657: void 8657: insert(_InputIterator __first, _InputIterator __last) 8657: { _M_t._M_insert_unique(__first, __last); } 8657: # 577 "/usr/include/c++/8/bits/stl_set.h" 3 8657: void 8657: insert(initializer_list __l) 8657: { this->insert(__l.begin(), __l.end()); } 8657: # 652 "/usr/include/c++/8/bits/stl_set.h" 3 8657: __attribute ((__abi_tag__ ("cxx11"))) 8657: iterator 8657: erase(const_iterator __position) 8657: { return _M_t.erase(__position); } 8657: # 683 "/usr/include/c++/8/bits/stl_set.h" 3 8657: size_type 8657: erase(const key_type& __x) 8657: { return _M_t.erase(__x); } 8657: # 704 "/usr/include/c++/8/bits/stl_set.h" 3 8657: __attribute ((__abi_tag__ ("cxx11"))) 8657: iterator 8657: erase(const_iterator __first, const_iterator __last) 8657: { return _M_t.erase(__first, __last); } 8657: # 732 "/usr/include/c++/8/bits/stl_set.h" 3 8657: void 8657: clear() noexcept 8657: { _M_t.clear(); } 8657: # 747 "/usr/include/c++/8/bits/stl_set.h" 3 8657: size_type 8657: count(const key_type& __x) const 8657: { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } 8657: # 774 "/usr/include/c++/8/bits/stl_set.h" 3 8657: iterator 8657: find(const key_type& __x) 8657: { return _M_t.find(__x); } 8657: 8657: const_iterator 8657: find(const key_type& __x) const 8657: { return _M_t.find(__x); } 8657: # 809 "/usr/include/c++/8/bits/stl_set.h" 3 8657: iterator 8657: lower_bound(const key_type& __x) 8657: { return _M_t.lower_bound(__x); } 8657: 8657: const_iterator 8657: lower_bound(const key_type& __x) const 8657: { return _M_t.lower_bound(__x); } 8657: # 839 "/usr/include/c++/8/bits/stl_set.h" 3 8657: iterator 8657: upper_bound(const key_type& __x) 8657: { return _M_t.upper_bound(__x); } 8657: 8657: const_iterator 8657: upper_bound(const key_type& __x) const 8657: { return _M_t.upper_bound(__x); } 8657: # 878 "/usr/include/c++/8/bits/stl_set.h" 3 8657: std::pair 8657: equal_range(const key_type& __x) 8657: { return _M_t.equal_range(__x); } 8657: 8657: std::pair 8657: equal_range(const key_type& __x) const 8657: { return _M_t.equal_range(__x); } 8657: # 901 "/usr/include/c++/8/bits/stl_set.h" 3 8657: template 8657: friend bool 8657: operator==(const set<_K1, _C1, _A1>&, const set<_K1, _C1, _A1>&); 8657: 8657: template 8657: friend bool 8657: operator<(const set<_K1, _C1, _A1>&, const set<_K1, _C1, _A1>&); 8657: }; 8657: # 956 "/usr/include/c++/8/bits/stl_set.h" 3 8657: template 8657: inline bool 8657: operator==(const set<_Key, _Compare, _Alloc>& __x, 8657: const set<_Key, _Compare, _Alloc>& __y) 8657: { return __x._M_t == __y._M_t; } 8657: # 973 "/usr/include/c++/8/bits/stl_set.h" 3 8657: template 8657: inline bool 8657: operator<(const set<_Key, _Compare, _Alloc>& __x, 8657: const set<_Key, _Compare, _Alloc>& __y) 8657: { return __x._M_t < __y._M_t; } 8657: 8657: 8657: template 8657: inline bool 8657: operator!=(const set<_Key, _Compare, _Alloc>& __x, 8657: const set<_Key, _Compare, _Alloc>& __y) 8657: { return !(__x == __y); } 8657: 8657: 8657: template 8657: inline bool 8657: operator>(const set<_Key, _Compare, _Alloc>& __x, 8657: const set<_Key, _Compare, _Alloc>& __y) 8657: { return __y < __x; } 8657: 8657: 8657: template 8657: inline bool 8657: operator<=(const set<_Key, _Compare, _Alloc>& __x, 8657: const set<_Key, _Compare, _Alloc>& __y) 8657: { return !(__y < __x); } 8657: 8657: 8657: template 8657: inline bool 8657: operator>=(const set<_Key, _Compare, _Alloc>& __x, 8657: const set<_Key, _Compare, _Alloc>& __y) 8657: { return !(__x < __y); } 8657: 8657: 8657: template 8657: inline void 8657: swap(set<_Key, _Compare, _Alloc>& __x, set<_Key, _Compare, _Alloc>& __y) 8657: noexcept(noexcept(__x.swap(__y))) 8657: { __x.swap(__y); } 8657: 8657: 8657: # 1035 "/usr/include/c++/8/bits/stl_set.h" 3 8657: 8657: } 8657: # 62 "/usr/include/c++/8/set" 2 3 8657: # 1 "/usr/include/c++/8/bits/stl_multiset.h" 1 3 8657: # 64 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: template 8657: class set; 8657: # 94 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: template , 8657: typename _Alloc = std::allocator<_Key> > 8657: class multiset 8657: { 8657: # 110 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: static_assert(is_same::type, _Key>::value, 8657: "std::multiset must have a non-const, non-volatile value_type"); 8657: 8657: 8657: 8657: 8657: 8657: 8657: public: 8657: 8657: typedef _Key key_type; 8657: typedef _Key value_type; 8657: typedef _Compare key_compare; 8657: typedef _Compare value_compare; 8657: typedef _Alloc allocator_type; 8657: 8657: private: 8657: 8657: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8657: rebind<_Key>::other _Key_alloc_type; 8657: 8657: typedef _Rb_tree, 8657: key_compare, _Key_alloc_type> _Rep_type; 8657: 8657: _Rep_type _M_t; 8657: 8657: typedef __gnu_cxx::__alloc_traits<_Key_alloc_type> _Alloc_traits; 8657: 8657: public: 8657: typedef typename _Alloc_traits::pointer pointer; 8657: typedef typename _Alloc_traits::const_pointer const_pointer; 8657: typedef typename _Alloc_traits::reference reference; 8657: typedef typename _Alloc_traits::const_reference const_reference; 8657: 8657: 8657: 8657: typedef typename _Rep_type::const_iterator iterator; 8657: typedef typename _Rep_type::const_iterator const_iterator; 8657: typedef typename _Rep_type::const_reverse_iterator reverse_iterator; 8657: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 8657: typedef typename _Rep_type::size_type size_type; 8657: typedef typename _Rep_type::difference_type difference_type; 8657: # 164 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: multiset() = default; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: explicit 8657: multiset(const _Compare& __comp, 8657: const allocator_type& __a = allocator_type()) 8657: : _M_t(__comp, _Key_alloc_type(__a)) { } 8657: # 186 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: template 8657: multiset(_InputIterator __first, _InputIterator __last) 8657: : _M_t() 8657: { _M_t._M_insert_equal(__first, __last); } 8657: # 202 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: template 8657: multiset(_InputIterator __first, _InputIterator __last, 8657: const _Compare& __comp, 8657: const allocator_type& __a = allocator_type()) 8657: : _M_t(__comp, _Key_alloc_type(__a)) 8657: { _M_t._M_insert_equal(__first, __last); } 8657: # 218 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: multiset(const multiset&) = default; 8657: # 227 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: multiset(multiset&&) = default; 8657: # 239 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: multiset(initializer_list __l, 8657: const _Compare& __comp = _Compare(), 8657: const allocator_type& __a = allocator_type()) 8657: : _M_t(__comp, _Key_alloc_type(__a)) 8657: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 8657: 8657: 8657: explicit 8657: multiset(const allocator_type& __a) 8657: : _M_t(_Compare(), _Key_alloc_type(__a)) { } 8657: 8657: 8657: multiset(const multiset& __m, const allocator_type& __a) 8657: : _M_t(__m._M_t, _Key_alloc_type(__a)) { } 8657: 8657: 8657: multiset(multiset&& __m, const allocator_type& __a) 8657: noexcept(is_nothrow_copy_constructible<_Compare>::value 8657: && _Alloc_traits::_S_always_equal()) 8657: : _M_t(std::move(__m._M_t), _Key_alloc_type(__a)) { } 8657: 8657: 8657: multiset(initializer_list __l, const allocator_type& __a) 8657: : _M_t(_Compare(), _Key_alloc_type(__a)) 8657: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 8657: 8657: 8657: template 8657: multiset(_InputIterator __first, _InputIterator __last, 8657: const allocator_type& __a) 8657: : _M_t(_Compare(), _Key_alloc_type(__a)) 8657: { _M_t._M_insert_equal(__first, __last); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: ~multiset() = default; 8657: # 293 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: multiset& 8657: operator=(const multiset&) = default; 8657: 8657: 8657: multiset& 8657: operator=(multiset&&) = default; 8657: # 311 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: multiset& 8657: operator=(initializer_list __l) 8657: { 8657: _M_t._M_assign_equal(__l.begin(), __l.end()); 8657: return *this; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: key_compare 8657: key_comp() const 8657: { return _M_t.key_comp(); } 8657: 8657: value_compare 8657: value_comp() const 8657: { return _M_t.key_comp(); } 8657: 8657: allocator_type 8657: get_allocator() const noexcept 8657: { return allocator_type(_M_t.get_allocator()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: begin() const noexcept 8657: { return _M_t.begin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: end() const noexcept 8657: { return _M_t.end(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: rbegin() const noexcept 8657: { return _M_t.rbegin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: rend() const noexcept 8657: { return _M_t.rend(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: cbegin() const noexcept 8657: { return _M_t.begin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: cend() const noexcept 8657: { return _M_t.end(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: crbegin() const noexcept 8657: { return _M_t.rbegin(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: crend() const noexcept 8657: { return _M_t.rend(); } 8657: 8657: 8657: 8657: bool 8657: empty() const noexcept 8657: { return _M_t.empty(); } 8657: 8657: 8657: size_type 8657: size() const noexcept 8657: { return _M_t.size(); } 8657: 8657: 8657: size_type 8657: max_size() const noexcept 8657: { return _M_t.max_size(); } 8657: # 436 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: void 8657: swap(multiset& __x) 8657: noexcept(__is_nothrow_swappable<_Compare>::value) 8657: { _M_t.swap(__x._M_t); } 8657: # 455 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: template 8657: iterator 8657: emplace(_Args&&... __args) 8657: { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); } 8657: # 481 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: template 8657: iterator 8657: emplace_hint(const_iterator __pos, _Args&&... __args) 8657: { 8657: return _M_t._M_emplace_hint_equal(__pos, 8657: std::forward<_Args>(__args)...); 8657: } 8657: # 501 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: iterator 8657: insert(const value_type& __x) 8657: { return _M_t._M_insert_equal(__x); } 8657: 8657: 8657: iterator 8657: insert(value_type&& __x) 8657: { return _M_t._M_insert_equal(std::move(__x)); } 8657: # 531 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: iterator 8657: insert(const_iterator __position, const value_type& __x) 8657: { return _M_t._M_insert_equal_(__position, __x); } 8657: 8657: 8657: iterator 8657: insert(const_iterator __position, value_type&& __x) 8657: { return _M_t._M_insert_equal_(__position, std::move(__x)); } 8657: # 549 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: template 8657: void 8657: insert(_InputIterator __first, _InputIterator __last) 8657: { _M_t._M_insert_equal(__first, __last); } 8657: # 562 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: void 8657: insert(initializer_list __l) 8657: { this->insert(__l.begin(), __l.end()); } 8657: # 637 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: __attribute ((__abi_tag__ ("cxx11"))) 8657: iterator 8657: erase(const_iterator __position) 8657: { return _M_t.erase(__position); } 8657: # 668 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: size_type 8657: erase(const key_type& __x) 8657: { return _M_t.erase(__x); } 8657: # 689 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: __attribute ((__abi_tag__ ("cxx11"))) 8657: iterator 8657: erase(const_iterator __first, const_iterator __last) 8657: { return _M_t.erase(__first, __last); } 8657: # 717 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: void 8657: clear() noexcept 8657: { _M_t.clear(); } 8657: # 729 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: size_type 8657: count(const key_type& __x) const 8657: { return _M_t.count(__x); } 8657: # 755 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: iterator 8657: find(const key_type& __x) 8657: { return _M_t.find(__x); } 8657: 8657: const_iterator 8657: find(const key_type& __x) const 8657: { return _M_t.find(__x); } 8657: # 790 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: iterator 8657: lower_bound(const key_type& __x) 8657: { return _M_t.lower_bound(__x); } 8657: 8657: const_iterator 8657: lower_bound(const key_type& __x) const 8657: { return _M_t.lower_bound(__x); } 8657: # 820 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: iterator 8657: upper_bound(const key_type& __x) 8657: { return _M_t.upper_bound(__x); } 8657: 8657: const_iterator 8657: upper_bound(const key_type& __x) const 8657: { return _M_t.upper_bound(__x); } 8657: # 859 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: std::pair 8657: equal_range(const key_type& __x) 8657: { return _M_t.equal_range(__x); } 8657: 8657: std::pair 8657: equal_range(const key_type& __x) const 8657: { return _M_t.equal_range(__x); } 8657: # 882 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: template 8657: friend bool 8657: operator==(const multiset<_K1, _C1, _A1>&, 8657: const multiset<_K1, _C1, _A1>&); 8657: 8657: template 8657: friend bool 8657: operator< (const multiset<_K1, _C1, _A1>&, 8657: const multiset<_K1, _C1, _A1>&); 8657: }; 8657: # 941 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: template 8657: inline bool 8657: operator==(const multiset<_Key, _Compare, _Alloc>& __x, 8657: const multiset<_Key, _Compare, _Alloc>& __y) 8657: { return __x._M_t == __y._M_t; } 8657: # 958 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: template 8657: inline bool 8657: operator<(const multiset<_Key, _Compare, _Alloc>& __x, 8657: const multiset<_Key, _Compare, _Alloc>& __y) 8657: { return __x._M_t < __y._M_t; } 8657: 8657: 8657: template 8657: inline bool 8657: operator!=(const multiset<_Key, _Compare, _Alloc>& __x, 8657: const multiset<_Key, _Compare, _Alloc>& __y) 8657: { return !(__x == __y); } 8657: 8657: 8657: template 8657: inline bool 8657: operator>(const multiset<_Key,_Compare,_Alloc>& __x, 8657: const multiset<_Key,_Compare,_Alloc>& __y) 8657: { return __y < __x; } 8657: 8657: 8657: template 8657: inline bool 8657: operator<=(const multiset<_Key, _Compare, _Alloc>& __x, 8657: const multiset<_Key, _Compare, _Alloc>& __y) 8657: { return !(__y < __x); } 8657: 8657: 8657: template 8657: inline bool 8657: operator>=(const multiset<_Key, _Compare, _Alloc>& __x, 8657: const multiset<_Key, _Compare, _Alloc>& __y) 8657: { return !(__x < __y); } 8657: 8657: 8657: template 8657: inline void 8657: swap(multiset<_Key, _Compare, _Alloc>& __x, 8657: multiset<_Key, _Compare, _Alloc>& __y) 8657: noexcept(noexcept(__x.swap(__y))) 8657: { __x.swap(__y); } 8657: 8657: 8657: # 1023 "/usr/include/c++/8/bits/stl_multiset.h" 3 8657: 8657: } 8657: # 63 "/usr/include/c++/8/set" 2 3 8657: # 330 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/QTest" 2 3 4 8657: # 35 "/<>/templates/tests/testgenerictypes.cpp" 2 8657: 8657: # 1 "/<>/templates/tests/coverageobject.h" 1 8657: 8657: 8657: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QObject" 1 3 4 8657: # 4 "/<>/templates/tests/coverageobject.h" 2 8657: 8657: # 4 "/<>/templates/tests/coverageobject.h" 8657: class CoverageObject : public QObject 8657: { 8657: 8657: # 6 "/<>/templates/tests/coverageobject.h" 3 4 8657: public: 8657: # 6 "/<>/templates/tests/coverageobject.h" 8657: #pragma GCC diagnostic push 8657: # 6 "/<>/templates/tests/coverageobject.h" 8657: 8657: # 6 "/<>/templates/tests/coverageobject.h" 8657: #pragma GCC diagnostic ignored "-Wsuggest-override" 8657: # 6 "/<>/templates/tests/coverageobject.h" 8657: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8657: # 6 "/<>/templates/tests/coverageobject.h" 8657: #pragma GCC diagnostic ignored "-Wattributes" 8657: # 6 "/<>/templates/tests/coverageobject.h" 8657: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8657: # 6 "/<>/templates/tests/coverageobject.h" 8657: #pragma GCC diagnostic pop 8657: # 6 "/<>/templates/tests/coverageobject.h" 8657: struct QPrivateSignal {}; 8657: 8657: # 7 "/<>/templates/tests/coverageobject.h" 8657: public: 8657: CoverageObject(QObject *p = 8657: # 8 "/<>/templates/tests/coverageobject.h" 3 4 8657: __null 8657: # 8 "/<>/templates/tests/coverageobject.h" 8657: ) : QObject(p) {} 8657: virtual void initTest() {} 8657: virtual void cleanupTest() {} 8657: protected : 8657: void init(); 8657: void cleanup(); 8657: 8657: private: 8657: void saveCoverageData(); 8657: QString generateTestName() const; 8657: }; 8657: # 37 "/<>/templates/tests/testgenerictypes.cpp" 2 8657: # 1 "/usr/include/c++/8/deque" 1 3 8657: # 58 "/usr/include/c++/8/deque" 3 8657: 8657: # 59 "/usr/include/c++/8/deque" 3 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/stl_deque.h" 1 3 8657: # 68 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: 8657: # 68 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: # 91 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: constexpr inline size_t 8657: __deque_buf_size(size_t __size) 8657: { return (__size < 512 8657: ? size_t(512 / __size) : size_t(1)); } 8657: # 108 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: template 8657: struct _Deque_iterator 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: private: 8657: template 8657: using __ptr_to = typename pointer_traits<_Ptr>::template rebind<_Up>; 8657: template 8657: using __iter = _Deque_iterator<_Tp, _CvTp&, __ptr_to<_CvTp>>; 8657: public: 8657: typedef __iter<_Tp> iterator; 8657: typedef __iter const_iterator; 8657: typedef __ptr_to<_Tp> _Elt_pointer; 8657: typedef __ptr_to<_Elt_pointer> _Map_pointer; 8657: 8657: 8657: static size_t _S_buffer_size() noexcept 8657: { return __deque_buf_size(sizeof(_Tp)); } 8657: 8657: typedef std::random_access_iterator_tag iterator_category; 8657: typedef _Tp value_type; 8657: typedef _Ptr pointer; 8657: typedef _Ref reference; 8657: typedef size_t size_type; 8657: typedef ptrdiff_t difference_type; 8657: typedef _Deque_iterator _Self; 8657: 8657: _Elt_pointer _M_cur; 8657: _Elt_pointer _M_first; 8657: _Elt_pointer _M_last; 8657: _Map_pointer _M_node; 8657: 8657: _Deque_iterator(_Elt_pointer __x, _Map_pointer __y) noexcept 8657: : _M_cur(__x), _M_first(*__y), 8657: _M_last(*__y + _S_buffer_size()), _M_node(__y) { } 8657: 8657: _Deque_iterator() noexcept 8657: : _M_cur(), _M_first(), _M_last(), _M_node() { } 8657: 8657: _Deque_iterator(const iterator& __x) noexcept 8657: : _M_cur(__x._M_cur), _M_first(__x._M_first), 8657: _M_last(__x._M_last), _M_node(__x._M_node) { } 8657: 8657: iterator 8657: _M_const_cast() const noexcept 8657: { return iterator(_M_cur, _M_node); } 8657: 8657: reference 8657: operator*() const noexcept 8657: { return *_M_cur; } 8657: 8657: pointer 8657: operator->() const noexcept 8657: { return _M_cur; } 8657: 8657: _Self& 8657: operator++() noexcept 8657: { 8657: ++_M_cur; 8657: if (_M_cur == _M_last) 8657: { 8657: _M_set_node(_M_node + 1); 8657: _M_cur = _M_first; 8657: } 8657: return *this; 8657: } 8657: 8657: _Self 8657: operator++(int) noexcept 8657: { 8657: _Self __tmp = *this; 8657: ++*this; 8657: return __tmp; 8657: } 8657: 8657: _Self& 8657: operator--() noexcept 8657: { 8657: if (_M_cur == _M_first) 8657: { 8657: _M_set_node(_M_node - 1); 8657: _M_cur = _M_last; 8657: } 8657: --_M_cur; 8657: return *this; 8657: } 8657: 8657: _Self 8657: operator--(int) noexcept 8657: { 8657: _Self __tmp = *this; 8657: --*this; 8657: return __tmp; 8657: } 8657: 8657: _Self& 8657: operator+=(difference_type __n) noexcept 8657: { 8657: const difference_type __offset = __n + (_M_cur - _M_first); 8657: if (__offset >= 0 && __offset < difference_type(_S_buffer_size())) 8657: _M_cur += __n; 8657: else 8657: { 8657: const difference_type __node_offset = 8657: __offset > 0 ? __offset / difference_type(_S_buffer_size()) 8657: : -difference_type((-__offset - 1) 8657: / _S_buffer_size()) - 1; 8657: _M_set_node(_M_node + __node_offset); 8657: _M_cur = _M_first + (__offset - __node_offset 8657: * difference_type(_S_buffer_size())); 8657: } 8657: return *this; 8657: } 8657: 8657: _Self 8657: operator+(difference_type __n) const noexcept 8657: { 8657: _Self __tmp = *this; 8657: return __tmp += __n; 8657: } 8657: 8657: _Self& 8657: operator-=(difference_type __n) noexcept 8657: { return *this += -__n; } 8657: 8657: _Self 8657: operator-(difference_type __n) const noexcept 8657: { 8657: _Self __tmp = *this; 8657: return __tmp -= __n; 8657: } 8657: 8657: reference 8657: operator[](difference_type __n) const noexcept 8657: { return *(*this + __n); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: void 8657: _M_set_node(_Map_pointer __new_node) noexcept 8657: { 8657: _M_node = __new_node; 8657: _M_first = *__new_node; 8657: _M_last = _M_first + difference_type(_S_buffer_size()); 8657: } 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: inline bool 8657: operator==(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 8657: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 8657: { return __x._M_cur == __y._M_cur; } 8657: 8657: template 8657: inline bool 8657: operator==(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 8657: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 8657: { return __x._M_cur == __y._M_cur; } 8657: 8657: template 8657: inline bool 8657: operator!=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 8657: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 8657: { return !(__x == __y); } 8657: 8657: template 8657: inline bool 8657: operator!=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 8657: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 8657: { return !(__x == __y); } 8657: 8657: template 8657: inline bool 8657: operator<(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 8657: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 8657: { return (__x._M_node == __y._M_node) ? (__x._M_cur < __y._M_cur) 8657: : (__x._M_node < __y._M_node); } 8657: 8657: template 8657: inline bool 8657: operator<(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 8657: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 8657: { return (__x._M_node == __y._M_node) ? (__x._M_cur < __y._M_cur) 8657: : (__x._M_node < __y._M_node); } 8657: 8657: template 8657: inline bool 8657: operator>(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 8657: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 8657: { return __y < __x; } 8657: 8657: template 8657: inline bool 8657: operator>(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 8657: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 8657: { return __y < __x; } 8657: 8657: template 8657: inline bool 8657: operator<=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 8657: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 8657: { return !(__y < __x); } 8657: 8657: template 8657: inline bool 8657: operator<=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 8657: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 8657: { return !(__y < __x); } 8657: 8657: template 8657: inline bool 8657: operator>=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 8657: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 8657: { return !(__x < __y); } 8657: 8657: template 8657: inline bool 8657: operator>=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 8657: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 8657: { return !(__x < __y); } 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline typename _Deque_iterator<_Tp, _Ref, _Ptr>::difference_type 8657: operator-(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 8657: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 8657: { 8657: return typename _Deque_iterator<_Tp, _Ref, _Ptr>::difference_type 8657: (_Deque_iterator<_Tp, _Ref, _Ptr>::_S_buffer_size()) 8657: * (__x._M_node - __y._M_node - 1) + (__x._M_cur - __x._M_first) 8657: + (__y._M_last - __y._M_cur); 8657: } 8657: 8657: template 8657: inline typename _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type 8657: operator-(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 8657: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 8657: { 8657: return typename _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type 8657: (_Deque_iterator<_Tp, _RefL, _PtrL>::_S_buffer_size()) 8657: * (__x._M_node - __y._M_node - 1) + (__x._M_cur - __x._M_first) 8657: + (__y._M_last - __y._M_cur); 8657: } 8657: 8657: template 8657: inline _Deque_iterator<_Tp, _Ref, _Ptr> 8657: operator+(ptrdiff_t __n, const _Deque_iterator<_Tp, _Ref, _Ptr>& __x) 8657: noexcept 8657: { return __x + __n; } 8657: 8657: template 8657: void 8657: fill(const _Deque_iterator<_Tp, _Tp&, _Tp*>&, 8657: const _Deque_iterator<_Tp, _Tp&, _Tp*>&, const _Tp&); 8657: 8657: template 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> 8657: copy(_Deque_iterator<_Tp, const _Tp&, const _Tp*>, 8657: _Deque_iterator<_Tp, const _Tp&, const _Tp*>, 8657: _Deque_iterator<_Tp, _Tp&, _Tp*>); 8657: 8657: template 8657: inline _Deque_iterator<_Tp, _Tp&, _Tp*> 8657: copy(_Deque_iterator<_Tp, _Tp&, _Tp*> __first, 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> __last, 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 8657: { return std::copy(_Deque_iterator<_Tp, const _Tp&, const _Tp*>(__first), 8657: _Deque_iterator<_Tp, const _Tp&, const _Tp*>(__last), 8657: __result); } 8657: 8657: template 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> 8657: copy_backward(_Deque_iterator<_Tp, const _Tp&, const _Tp*>, 8657: _Deque_iterator<_Tp, const _Tp&, const _Tp*>, 8657: _Deque_iterator<_Tp, _Tp&, _Tp*>); 8657: 8657: template 8657: inline _Deque_iterator<_Tp, _Tp&, _Tp*> 8657: copy_backward(_Deque_iterator<_Tp, _Tp&, _Tp*> __first, 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> __last, 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 8657: { return std::copy_backward(_Deque_iterator<_Tp, 8657: const _Tp&, const _Tp*>(__first), 8657: _Deque_iterator<_Tp, 8657: const _Tp&, const _Tp*>(__last), 8657: __result); } 8657: 8657: 8657: template 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> 8657: move(_Deque_iterator<_Tp, const _Tp&, const _Tp*>, 8657: _Deque_iterator<_Tp, const _Tp&, const _Tp*>, 8657: _Deque_iterator<_Tp, _Tp&, _Tp*>); 8657: 8657: template 8657: inline _Deque_iterator<_Tp, _Tp&, _Tp*> 8657: move(_Deque_iterator<_Tp, _Tp&, _Tp*> __first, 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> __last, 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 8657: { return std::move(_Deque_iterator<_Tp, const _Tp&, const _Tp*>(__first), 8657: _Deque_iterator<_Tp, const _Tp&, const _Tp*>(__last), 8657: __result); } 8657: 8657: template 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> 8657: move_backward(_Deque_iterator<_Tp, const _Tp&, const _Tp*>, 8657: _Deque_iterator<_Tp, const _Tp&, const _Tp*>, 8657: _Deque_iterator<_Tp, _Tp&, _Tp*>); 8657: 8657: template 8657: inline _Deque_iterator<_Tp, _Tp&, _Tp*> 8657: move_backward(_Deque_iterator<_Tp, _Tp&, _Tp*> __first, 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> __last, 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 8657: { return std::move_backward(_Deque_iterator<_Tp, 8657: const _Tp&, const _Tp*>(__first), 8657: _Deque_iterator<_Tp, 8657: const _Tp&, const _Tp*>(__last), 8657: __result); } 8657: # 460 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: template 8657: class _Deque_base 8657: { 8657: protected: 8657: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8657: rebind<_Tp>::other _Tp_alloc_type; 8657: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; 8657: 8657: 8657: 8657: 8657: 8657: typedef typename _Alloc_traits::pointer _Ptr; 8657: typedef typename _Alloc_traits::const_pointer _Ptr_const; 8657: 8657: 8657: typedef typename _Alloc_traits::template rebind<_Ptr>::other 8657: _Map_alloc_type; 8657: typedef __gnu_cxx::__alloc_traits<_Map_alloc_type> _Map_alloc_traits; 8657: 8657: public: 8657: typedef _Alloc allocator_type; 8657: typedef typename _Alloc_traits::size_type size_type; 8657: 8657: allocator_type 8657: get_allocator() const noexcept 8657: { return allocator_type(_M_get_Tp_allocator()); } 8657: 8657: typedef _Deque_iterator<_Tp, _Tp&, _Ptr> iterator; 8657: typedef _Deque_iterator<_Tp, const _Tp&, _Ptr_const> const_iterator; 8657: 8657: _Deque_base() 8657: : _M_impl() 8657: { _M_initialize_map(0); } 8657: 8657: _Deque_base(size_t __num_elements) 8657: : _M_impl() 8657: { _M_initialize_map(__num_elements); } 8657: 8657: _Deque_base(const allocator_type& __a, size_t __num_elements) 8657: : _M_impl(__a) 8657: { _M_initialize_map(__num_elements); } 8657: 8657: _Deque_base(const allocator_type& __a) 8657: : _M_impl(__a) 8657: { } 8657: 8657: 8657: _Deque_base(_Deque_base&& __x, false_type) 8657: : _M_impl(__x._M_move_impl()) 8657: { } 8657: 8657: _Deque_base(_Deque_base&& __x, true_type) 8657: : _M_impl(std::move(__x._M_get_Tp_allocator())) 8657: { 8657: _M_initialize_map(0); 8657: if (__x._M_impl._M_map) 8657: this->_M_impl._M_swap_data(__x._M_impl); 8657: } 8657: 8657: _Deque_base(_Deque_base&& __x) 8657: : _Deque_base(std::move(__x), typename _Alloc_traits::is_always_equal{}) 8657: { } 8657: 8657: _Deque_base(_Deque_base&& __x, const allocator_type& __a, size_type __n) 8657: : _M_impl(__a) 8657: { 8657: if (__x.get_allocator() == __a) 8657: { 8657: if (__x._M_impl._M_map) 8657: { 8657: _M_initialize_map(0); 8657: this->_M_impl._M_swap_data(__x._M_impl); 8657: } 8657: } 8657: else 8657: { 8657: _M_initialize_map(__n); 8657: } 8657: } 8657: 8657: 8657: ~_Deque_base() noexcept; 8657: 8657: protected: 8657: typedef typename iterator::_Map_pointer _Map_pointer; 8657: 8657: 8657: 8657: 8657: struct _Deque_impl 8657: : public _Tp_alloc_type 8657: { 8657: _Map_pointer _M_map; 8657: size_t _M_map_size; 8657: iterator _M_start; 8657: iterator _M_finish; 8657: 8657: _Deque_impl() 8657: : _Tp_alloc_type(), _M_map(), _M_map_size(0), 8657: _M_start(), _M_finish() 8657: { } 8657: 8657: _Deque_impl(const _Tp_alloc_type& __a) noexcept 8657: : _Tp_alloc_type(__a), _M_map(), _M_map_size(0), 8657: _M_start(), _M_finish() 8657: { } 8657: 8657: 8657: _Deque_impl(_Deque_impl&&) = default; 8657: 8657: _Deque_impl(_Tp_alloc_type&& __a) noexcept 8657: : _Tp_alloc_type(std::move(__a)), _M_map(), _M_map_size(0), 8657: _M_start(), _M_finish() 8657: { } 8657: 8657: 8657: void _M_swap_data(_Deque_impl& __x) noexcept 8657: { 8657: using std::swap; 8657: swap(this->_M_start, __x._M_start); 8657: swap(this->_M_finish, __x._M_finish); 8657: swap(this->_M_map, __x._M_map); 8657: swap(this->_M_map_size, __x._M_map_size); 8657: } 8657: }; 8657: 8657: _Tp_alloc_type& 8657: _M_get_Tp_allocator() noexcept 8657: { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); } 8657: 8657: const _Tp_alloc_type& 8657: _M_get_Tp_allocator() const noexcept 8657: { return *static_cast(&this->_M_impl); } 8657: 8657: _Map_alloc_type 8657: _M_get_map_allocator() const noexcept 8657: { return _Map_alloc_type(_M_get_Tp_allocator()); } 8657: 8657: _Ptr 8657: _M_allocate_node() 8657: { 8657: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Traits; 8657: return _Traits::allocate(_M_impl, __deque_buf_size(sizeof(_Tp))); 8657: } 8657: 8657: void 8657: _M_deallocate_node(_Ptr __p) noexcept 8657: { 8657: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Traits; 8657: _Traits::deallocate(_M_impl, __p, __deque_buf_size(sizeof(_Tp))); 8657: } 8657: 8657: _Map_pointer 8657: _M_allocate_map(size_t __n) 8657: { 8657: _Map_alloc_type __map_alloc = _M_get_map_allocator(); 8657: return _Map_alloc_traits::allocate(__map_alloc, __n); 8657: } 8657: 8657: void 8657: _M_deallocate_map(_Map_pointer __p, size_t __n) noexcept 8657: { 8657: _Map_alloc_type __map_alloc = _M_get_map_allocator(); 8657: _Map_alloc_traits::deallocate(__map_alloc, __p, __n); 8657: } 8657: 8657: protected: 8657: void _M_initialize_map(size_t); 8657: void _M_create_nodes(_Map_pointer __nstart, _Map_pointer __nfinish); 8657: void _M_destroy_nodes(_Map_pointer __nstart, 8657: _Map_pointer __nfinish) noexcept; 8657: enum { _S_initial_map_size = 8 }; 8657: 8657: _Deque_impl _M_impl; 8657: 8657: 8657: private: 8657: _Deque_impl 8657: _M_move_impl() 8657: { 8657: if (!_M_impl._M_map) 8657: return std::move(_M_impl); 8657: 8657: 8657: _Tp_alloc_type __alloc{_M_get_Tp_allocator()}; 8657: 8657: _Tp_alloc_type __sink __attribute((__unused__)) {std::move(__alloc)}; 8657: 8657: _Deque_base __empty{__alloc}; 8657: __empty._M_initialize_map(0); 8657: 8657: _Deque_impl __ret{std::move(_M_get_Tp_allocator())}; 8657: _M_impl._M_swap_data(__ret); 8657: _M_impl._M_swap_data(__empty._M_impl); 8657: return __ret; 8657: } 8657: 8657: }; 8657: 8657: template 8657: _Deque_base<_Tp, _Alloc>:: 8657: ~_Deque_base() noexcept 8657: { 8657: if (this->_M_impl._M_map) 8657: { 8657: _M_destroy_nodes(this->_M_impl._M_start._M_node, 8657: this->_M_impl._M_finish._M_node + 1); 8657: _M_deallocate_map(this->_M_impl._M_map, this->_M_impl._M_map_size); 8657: } 8657: } 8657: # 680 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: template 8657: void 8657: _Deque_base<_Tp, _Alloc>:: 8657: _M_initialize_map(size_t __num_elements) 8657: { 8657: const size_t __num_nodes = (__num_elements/ __deque_buf_size(sizeof(_Tp)) 8657: + 1); 8657: 8657: this->_M_impl._M_map_size = std::max((size_t) _S_initial_map_size, 8657: size_t(__num_nodes + 2)); 8657: this->_M_impl._M_map = _M_allocate_map(this->_M_impl._M_map_size); 8657: 8657: 8657: 8657: 8657: 8657: 8657: _Map_pointer __nstart = (this->_M_impl._M_map 8657: + (this->_M_impl._M_map_size - __num_nodes) / 2); 8657: _Map_pointer __nfinish = __nstart + __num_nodes; 8657: 8657: try 8657: { _M_create_nodes(__nstart, __nfinish); } 8657: catch(...) 8657: { 8657: _M_deallocate_map(this->_M_impl._M_map, this->_M_impl._M_map_size); 8657: this->_M_impl._M_map = _Map_pointer(); 8657: this->_M_impl._M_map_size = 0; 8657: throw; 8657: } 8657: 8657: this->_M_impl._M_start._M_set_node(__nstart); 8657: this->_M_impl._M_finish._M_set_node(__nfinish - 1); 8657: this->_M_impl._M_start._M_cur = _M_impl._M_start._M_first; 8657: this->_M_impl._M_finish._M_cur = (this->_M_impl._M_finish._M_first 8657: + __num_elements 8657: % __deque_buf_size(sizeof(_Tp))); 8657: } 8657: 8657: template 8657: void 8657: _Deque_base<_Tp, _Alloc>:: 8657: _M_create_nodes(_Map_pointer __nstart, _Map_pointer __nfinish) 8657: { 8657: _Map_pointer __cur; 8657: try 8657: { 8657: for (__cur = __nstart; __cur < __nfinish; ++__cur) 8657: *__cur = this->_M_allocate_node(); 8657: } 8657: catch(...) 8657: { 8657: _M_destroy_nodes(__nstart, __cur); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: void 8657: _Deque_base<_Tp, _Alloc>:: 8657: _M_destroy_nodes(_Map_pointer __nstart, 8657: _Map_pointer __nfinish) noexcept 8657: { 8657: for (_Map_pointer __n = __nstart; __n < __nfinish; ++__n) 8657: _M_deallocate_node(*__n); 8657: } 8657: # 831 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: template > 8657: class deque : protected _Deque_base<_Tp, _Alloc> 8657: { 8657: # 844 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: static_assert(is_same::type, _Tp>::value, 8657: "std::deque must have a non-const, non-volatile value_type"); 8657: 8657: 8657: 8657: 8657: 8657: 8657: typedef _Deque_base<_Tp, _Alloc> _Base; 8657: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 8657: typedef typename _Base::_Alloc_traits _Alloc_traits; 8657: typedef typename _Base::_Map_pointer _Map_pointer; 8657: 8657: public: 8657: typedef _Tp value_type; 8657: typedef typename _Alloc_traits::pointer pointer; 8657: typedef typename _Alloc_traits::const_pointer const_pointer; 8657: typedef typename _Alloc_traits::reference reference; 8657: typedef typename _Alloc_traits::const_reference const_reference; 8657: typedef typename _Base::iterator iterator; 8657: typedef typename _Base::const_iterator const_iterator; 8657: typedef std::reverse_iterator const_reverse_iterator; 8657: typedef std::reverse_iterator reverse_iterator; 8657: typedef size_t size_type; 8657: typedef ptrdiff_t difference_type; 8657: typedef _Alloc allocator_type; 8657: 8657: protected: 8657: static size_t _S_buffer_size() noexcept 8657: { return __deque_buf_size(sizeof(_Tp)); } 8657: 8657: 8657: using _Base::_M_initialize_map; 8657: using _Base::_M_create_nodes; 8657: using _Base::_M_destroy_nodes; 8657: using _Base::_M_allocate_node; 8657: using _Base::_M_deallocate_node; 8657: using _Base::_M_allocate_map; 8657: using _Base::_M_deallocate_map; 8657: using _Base::_M_get_Tp_allocator; 8657: 8657: 8657: 8657: 8657: 8657: using _Base::_M_impl; 8657: 8657: public: 8657: 8657: 8657: 8657: 8657: 8657: 8657: deque() : _Base() { } 8657: 8657: 8657: 8657: 8657: 8657: explicit 8657: deque(const allocator_type& __a) 8657: : _Base(__a, 0) { } 8657: # 917 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: explicit 8657: deque(size_type __n, const allocator_type& __a = allocator_type()) 8657: : _Base(__a, __n) 8657: { _M_default_initialize(); } 8657: # 930 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: deque(size_type __n, const value_type& __value, 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(__a, __n) 8657: { _M_fill_initialize(__value); } 8657: # 957 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: deque(const deque& __x) 8657: : _Base(_Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator()), 8657: __x.size()) 8657: { std::__uninitialized_copy_a(__x.begin(), __x.end(), 8657: this->_M_impl._M_start, 8657: _M_get_Tp_allocator()); } 8657: # 972 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: deque(deque&& __x) 8657: : _Base(std::move(__x)) { } 8657: 8657: 8657: deque(const deque& __x, const allocator_type& __a) 8657: : _Base(__a, __x.size()) 8657: { std::__uninitialized_copy_a(__x.begin(), __x.end(), 8657: this->_M_impl._M_start, 8657: _M_get_Tp_allocator()); } 8657: 8657: 8657: deque(deque&& __x, const allocator_type& __a) 8657: : _Base(std::move(__x), __a, __x.size()) 8657: { 8657: if (__x.get_allocator() != __a) 8657: { 8657: std::__uninitialized_move_a(__x.begin(), __x.end(), 8657: this->_M_impl._M_start, 8657: _M_get_Tp_allocator()); 8657: __x.clear(); 8657: } 8657: } 8657: # 1006 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: deque(initializer_list __l, 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(__a) 8657: { 8657: _M_range_initialize(__l.begin(), __l.end(), 8657: random_access_iterator_tag()); 8657: } 8657: # 1031 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: template> 8657: deque(_InputIterator __first, _InputIterator __last, 8657: const allocator_type& __a = allocator_type()) 8657: : _Base(__a) 8657: { _M_initialize_dispatch(__first, __last, __false_type()); } 8657: # 1054 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: ~deque() 8657: { _M_destroy_data(begin(), end(), _M_get_Tp_allocator()); } 8657: # 1066 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: deque& 8657: operator=(const deque& __x); 8657: # 1078 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: deque& 8657: operator=(deque&& __x) noexcept(_Alloc_traits::_S_always_equal()) 8657: { 8657: using __always_equal = typename _Alloc_traits::is_always_equal; 8657: _M_move_assign1(std::move(__x), __always_equal{}); 8657: return *this; 8657: } 8657: # 1097 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: deque& 8657: operator=(initializer_list __l) 8657: { 8657: _M_assign_aux(__l.begin(), __l.end(), 8657: random_access_iterator_tag()); 8657: return *this; 8657: } 8657: # 1116 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: void 8657: assign(size_type __n, const value_type& __val) 8657: { _M_fill_assign(__n, __val); [ 96%] Building CXX object templates/tests/CMakeFiles/testgenericcontainers_exec.dir/testgenericcontainers_exec_autogen/mocs_compilation.cpp.o } 8657: # 1133 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: template> 8657: void 8657: assign(_InputIterator __first, _InputIterator __last) 8657: { _M_assign_dispatch(__first, __last, __false_type()); } 8657: # 1160 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: void 8657: assign(initializer_list __l) 8657: { _M_assign_aux(__l.begin(), __l.end(), random_access_iterator_tag()); } 8657: 8657: 8657: 8657: allocator_type 8657: get_allocator() const noexcept 8657: { return _Base::get_allocator(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: begin() noexcept 8657: { return this->_M_impl._M_start; } 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: begin() const noexcept 8657: { return this->_M_impl._M_start; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: iterator 8657: end() noexcept 8657: { return this->_M_impl._M_finish; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: end() const noexcept 8657: { return this->_M_impl._M_finish; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: rbegin() noexcept 8657: { return reverse_iterator(this->_M_impl._M_finish); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: rbegin() const noexcept 8657: { return const_reverse_iterator(this->_M_impl._M_finish); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: reverse_iterator 8657: rend() noexcept 8657: { return reverse_iterator(this->_M_impl._M_start); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: rend() const noexcept 8657: { return const_reverse_iterator(this->_M_impl._M_start); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: cbegin() const noexcept 8657: { return this->_M_impl._M_start; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_iterator 8657: cend() const noexcept 8657: { return this->_M_impl._M_finish; } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: crbegin() const noexcept 8657: { return const_reverse_iterator(this->_M_impl._M_finish); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: const_reverse_iterator 8657: crend() const noexcept 8657: { return const_reverse_iterator(this->_M_impl._M_start); } 8657: 8657: 8657: 8657: 8657: size_type 8657: size() const noexcept 8657: { return this->_M_impl._M_finish - this->_M_impl._M_start; } 8657: 8657: 8657: size_type 8657: max_size() const noexcept 8657: { return _Alloc_traits::max_size(_M_get_Tp_allocator()); } 8657: # 1299 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: void 8657: resize(size_type __new_size) 8657: { 8657: const size_type __len = size(); 8657: if (__new_size > __len) 8657: _M_default_append(__new_size - __len); 8657: else if (__new_size < __len) 8657: _M_erase_at_end(this->_M_impl._M_start 8657: + difference_type(__new_size)); 8657: } 8657: # 1321 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: void 8657: resize(size_type __new_size, const value_type& __x) 8657: { 8657: const size_type __len = size(); 8657: if (__new_size > __len) 8657: _M_fill_insert(this->_M_impl._M_finish, __new_size - __len, __x); 8657: else if (__new_size < __len) 8657: _M_erase_at_end(this->_M_impl._M_start 8657: + difference_type(__new_size)); 8657: } 8657: # 1357 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: void 8657: shrink_to_fit() noexcept 8657: { _M_shrink_to_fit(); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: bool 8657: empty() const noexcept 8657: { return this->_M_impl._M_finish == this->_M_impl._M_start; } 8657: # 1382 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: reference cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testgenericcontainers_exec.dir/testgenericcontainers_exec_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/mocs_compilation.cpp 8657: operator[](size_type __n) noexcept 8657: { 8657: ; 8657: return this->_M_impl._M_start[difference_type(__n)]; 8657: } 8657: # 1400 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: const_reference 8657: operator[](size_type __n) const noexcept 8657: { 8657: ; 8657: return this->_M_impl._M_start[difference_type(__n)]; 8657: } 8657: 8657: protected: 8657: 8657: void 8657: _M_range_check(size_type __n) const 8657: { 8657: if (__n >= this->size()) 8657: __throw_out_of_range_fmt(("deque::_M_range_check: __n " "(which is %zu)>= this->size() " "(which is %zu)") 8657: 8657: , 8657: __n, this->size()); 8657: } 8657: 8657: public: 8657: # 1431 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: reference 8657: at(size_type __n) 8657: { 8657: _M_range_check(__n); 8657: return (*this)[__n]; 8657: } 8657: # 1449 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: const_reference 8657: at(size_type __n) const 8657: { 8657: _M_range_check(__n); 8657: return (*this)[__n]; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: reference 8657: front() noexcept 8657: { 8657: ; 8657: return *begin(); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: const_reference 8657: front() const noexcept 8657: { 8657: ; 8657: return *begin(); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: reference 8657: back() noexcept 8657: { 8657: ; 8657: iterator __tmp = end(); 8657: --__tmp; 8657: return *__tmp; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: const_reference 8657: back() const noexcept 8657: { 8657: ; 8657: const_iterator __tmp = end(); 8657: --__tmp; 8657: return *__tmp; 8657: } 8657: # 1514 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: void 8657: push_front(const value_type& __x) 8657: { 8657: if (this->_M_impl._M_start._M_cur != this->_M_impl._M_start._M_first) 8657: { 8657: _Alloc_traits::construct(this->_M_impl, 8657: this->_M_impl._M_start._M_cur - 1, 8657: __x); 8657: --this->_M_impl._M_start._M_cur; 8657: } 8657: else 8657: _M_push_front_aux(__x); 8657: } 8657: 8657: 8657: void 8657: push_front(value_type&& __x) 8657: { emplace_front(std::move(__x)); } 8657: 8657: template 8657: 8657: 8657: 8657: void 8657: 8657: emplace_front(_Args&&... __args); 8657: # 1551 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: void 8657: push_back(const value_type& __x) 8657: { 8657: if (this->_M_impl._M_finish._M_cur 8657: != this->_M_impl._M_finish._M_last - 1) 8657: { 8657: _Alloc_traits::construct(this->_M_impl, 8657: this->_M_impl._M_finish._M_cur, __x); 8657: ++this->_M_impl._M_finish._M_cur; 8657: } 8657: else 8657: _M_push_back_aux(__x); 8657: } 8657: 8657: 8657: void 8657: push_back(value_type&& __x) 8657: { emplace_back(std::move(__x)); } 8657: 8657: template 8657: 8657: 8657: 8657: void 8657: 8657: emplace_back(_Args&&... __args); 8657: # 1587 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: void 8657: pop_front() noexcept 8657: { 8657: ; 8657: if (this->_M_impl._M_start._M_cur 8657: != this->_M_impl._M_start._M_last - 1) 8657: { 8657: _Alloc_traits::destroy(this->_M_impl, 8657: this->_M_impl._M_start._M_cur); 8657: ++this->_M_impl._M_start._M_cur; 8657: } 8657: else 8657: _M_pop_front_aux(); 8657: } 8657: # 1610 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: void 8657: pop_back() noexcept 8657: { 8657: ; 8657: if (this->_M_impl._M_finish._M_cur 8657: != this->_M_impl._M_finish._M_first) 8657: { 8657: --this->_M_impl._M_finish._M_cur; 8657: _Alloc_traits::destroy(this->_M_impl, 8657: this->_M_impl._M_finish._M_cur); 8657: } 8657: else 8657: _M_pop_back_aux(); 8657: } 8657: # 1635 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: template 8657: iterator 8657: emplace(const_iterator __position, _Args&&... __args); 8657: # 1648 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: iterator 8657: insert(const_iterator __position, const value_type& __x); 8657: # 1674 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: iterator 8657: insert(const_iterator __position, value_type&& __x) 8657: { return emplace(__position, std::move(__x)); } 8657: # 1687 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: iterator 8657: insert(const_iterator __p, initializer_list __l) 8657: { 8657: auto __offset = __p - cbegin(); 8657: _M_range_insert_aux(__p._M_const_cast(), __l.begin(), __l.end(), 8657: std::random_access_iterator_tag()); 8657: return begin() + __offset; 8657: } 8657: # 1708 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: iterator 8657: insert(const_iterator __position, size_type __n, const value_type& __x) 8657: { 8657: difference_type __offset = __position - cbegin(); 8657: _M_fill_insert(__position._M_const_cast(), __n, __x); 8657: return begin() + __offset; 8657: } 8657: # 1742 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: template> 8657: iterator 8657: insert(const_iterator __position, _InputIterator __first, 8657: _InputIterator __last) 8657: { 8657: difference_type __offset = __position - cbegin(); 8657: _M_insert_dispatch(__position._M_const_cast(), 8657: __first, __last, __false_type()); 8657: return begin() + __offset; 8657: } 8657: # 1788 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: iterator 8657: 8657: erase(const_iterator __position) 8657: 8657: 8657: 8657: { return _M_erase(__position._M_const_cast()); } 8657: # 1812 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: iterator 8657: 8657: erase(const_iterator __first, const_iterator __last) 8657: 8657: 8657: 8657: { return _M_erase(__first._M_const_cast(), __last._M_const_cast()); } 8657: # 1831 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: void 8657: swap(deque& __x) noexcept 8657: { 8657: 8657: 8657: ; 8657: 8657: _M_impl._M_swap_data(__x._M_impl); 8657: _Alloc_traits::_S_on_swap(_M_get_Tp_allocator(), 8657: __x._M_get_Tp_allocator()); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: void 8657: clear() noexcept 8657: { _M_erase_at_end(begin()); } 8657: 8657: protected: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: void 8657: _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) 8657: { 8657: _M_initialize_map(static_cast(__n)); 8657: _M_fill_initialize(__x); 8657: } 8657: 8657: 8657: template 8657: void 8657: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 8657: __false_type) 8657: { 8657: _M_range_initialize(__first, __last, 8657: std::__iterator_category(__first)); 8657: } 8657: # 1890 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: template 8657: void 8657: _M_range_initialize(_InputIterator __first, _InputIterator __last, 8657: std::input_iterator_tag); 8657: 8657: 8657: template 8657: void 8657: _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, 8657: std::forward_iterator_tag); 8657: # 1912 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: void 8657: _M_fill_initialize(const value_type& __value); 8657: 8657: 8657: 8657: void 8657: _M_default_initialize(); 8657: # 1928 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: template 8657: void 8657: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 8657: { _M_fill_assign(__n, __val); } 8657: 8657: 8657: template 8657: void 8657: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 8657: __false_type) 8657: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 8657: 8657: 8657: template 8657: void 8657: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8657: std::input_iterator_tag); 8657: 8657: 8657: template 8657: void 8657: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 8657: std::forward_iterator_tag) 8657: { 8657: const size_type __len = std::distance(__first, __last); 8657: if (__len > size()) 8657: { 8657: _ForwardIterator __mid = __first; 8657: std::advance(__mid, size()); 8657: std::copy(__first, __mid, begin()); 8657: _M_range_insert_aux(end(), __mid, __last, 8657: std::__iterator_category(__first)); 8657: } 8657: else 8657: _M_erase_at_end(std::copy(__first, __last, begin())); 8657: } 8657: 8657: 8657: 8657: void 8657: _M_fill_assign(size_type __n, const value_type& __val) 8657: { 8657: if (__n > size()) 8657: { 8657: std::fill(begin(), end(), __val); 8657: _M_fill_insert(end(), __n - size(), __val); 8657: } 8657: else 8657: { 8657: _M_erase_at_end(begin() + difference_type(__n)); 8657: std::fill(begin(), end(), __val); 8657: } 8657: } 8657: # 1989 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: template 8657: void _M_push_back_aux(_Args&&... __args); 8657: 8657: template 8657: void _M_push_front_aux(_Args&&... __args); 8657: 8657: 8657: void _M_pop_back_aux(); 8657: 8657: void _M_pop_front_aux(); 8657: # 2008 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: template 8657: void 8657: _M_insert_dispatch(iterator __pos, 8657: _Integer __n, _Integer __x, __true_type) 8657: { _M_fill_insert(__pos, __n, __x); } 8657: 8657: 8657: template 8657: void 8657: _M_insert_dispatch(iterator __pos, 8657: _InputIterator __first, _InputIterator __last, 8657: __false_type) 8657: { 8657: _M_range_insert_aux(__pos, __first, __last, 8657: std::__iterator_category(__first)); 8657: } 8657: 8657: 8657: template 8657: void 8657: _M_range_insert_aux(iterator __pos, _InputIterator __first, 8657: _InputIterator __last, std::input_iterator_tag); 8657: 8657: 8657: template 8657: void 8657: _M_range_insert_aux(iterator __pos, _ForwardIterator __first, 8657: _ForwardIterator __last, std::forward_iterator_tag); 8657: 8657: 8657: 8657: 8657: void 8657: _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: iterator 8657: _M_insert_aux(iterator __pos, _Args&&... __args); 8657: 8657: 8657: 8657: void 8657: _M_insert_aux(iterator __pos, size_type __n, const value_type& __x); 8657: 8657: 8657: template 8657: void 8657: _M_insert_aux(iterator __pos, 8657: _ForwardIterator __first, _ForwardIterator __last, 8657: size_type __n); 8657: 8657: 8657: 8657: 8657: void 8657: _M_destroy_data_aux(iterator __first, iterator __last); 8657: 8657: 8657: 8657: template 8657: void 8657: _M_destroy_data(iterator __first, iterator __last, const _Alloc1&) 8657: { _M_destroy_data_aux(__first, __last); } 8657: 8657: void 8657: _M_destroy_data(iterator __first, iterator __last, 8657: const std::allocator<_Tp>&) 8657: { 8657: if (!__has_trivial_destructor(value_type)) 8657: _M_destroy_data_aux(__first, __last); 8657: } 8657: 8657: 8657: void 8657: _M_erase_at_begin(iterator __pos) 8657: { 8657: _M_destroy_data(begin(), __pos, _M_get_Tp_allocator()); 8657: _M_destroy_nodes(this->_M_impl._M_start._M_node, __pos._M_node); 8657: this->_M_impl._M_start = __pos; 8657: } 8657: 8657: 8657: 8657: void 8657: _M_erase_at_end(iterator __pos) 8657: { 8657: _M_destroy_data(__pos, end(), _M_get_Tp_allocator()); 8657: _M_destroy_nodes(__pos._M_node + 1, 8657: this->_M_impl._M_finish._M_node + 1); 8657: this->_M_impl._M_finish = __pos; 8657: } 8657: 8657: iterator 8657: _M_erase(iterator __pos); 8657: 8657: iterator 8657: _M_erase(iterator __first, iterator __last); 8657: 8657: 8657: 8657: void 8657: _M_default_append(size_type __n); 8657: 8657: bool 8657: _M_shrink_to_fit(); 8657: 8657: 8657: 8657: 8657: iterator 8657: _M_reserve_elements_at_front(size_type __n) 8657: { 8657: const size_type __vacancies = this->_M_impl._M_start._M_cur 8657: - this->_M_impl._M_start._M_first; 8657: if (__n > __vacancies) 8657: _M_new_elements_at_front(__n - __vacancies); 8657: return this->_M_impl._M_start - difference_type(__n); 8657: } 8657: 8657: iterator 8657: _M_reserve_elements_at_back(size_type __n) 8657: { 8657: const size_type __vacancies = (this->_M_impl._M_finish._M_last 8657: - this->_M_impl._M_finish._M_cur) - 1; 8657: if (__n > __vacancies) 8657: _M_new_elements_at_back(__n - __vacancies); 8657: return this->_M_impl._M_finish + difference_type(__n); 8657: } 8657: 8657: void 8657: _M_new_elements_at_front(size_type __new_elements); 8657: 8657: void 8657: _M_new_elements_at_back(size_type __new_elements); 8657: # 2158 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: void 8657: _M_reserve_map_at_back(size_type __nodes_to_add = 1) 8657: { 8657: if (__nodes_to_add + 1 > this->_M_impl._M_map_size 8657: - (this->_M_impl._M_finish._M_node - this->_M_impl._M_map)) 8657: _M_reallocate_map(__nodes_to_add, false); 8657: } 8657: 8657: void 8657: _M_reserve_map_at_front(size_type __nodes_to_add = 1) 8657: { 8657: if (__nodes_to_add > size_type(this->_M_impl._M_start._M_node 8657: - this->_M_impl._M_map)) 8657: _M_reallocate_map(__nodes_to_add, true); 8657: } 8657: 8657: void 8657: _M_reallocate_map(size_type __nodes_to_add, bool __add_at_front); 8657: 8657: 8657: 8657: 8657: 8657: void 8657: _M_move_assign1(deque&& __x, true_type) noexcept 8657: { 8657: this->_M_impl._M_swap_data(__x._M_impl); 8657: __x.clear(); 8657: std::__alloc_on_move(_M_get_Tp_allocator(), __x._M_get_Tp_allocator()); 8657: } 8657: 8657: 8657: 8657: 8657: void 8657: _M_move_assign1(deque&& __x, false_type) 8657: { 8657: constexpr bool __move_storage = 8657: _Alloc_traits::_S_propagate_on_move_assign(); 8657: _M_move_assign2(std::move(__x), __bool_constant<__move_storage>()); 8657: } 8657: 8657: 8657: 8657: template 8657: void 8657: _M_replace_map(_Args&&... __args) 8657: { 8657: 8657: deque __newobj(std::forward<_Args>(__args)...); 8657: 8657: clear(); 8657: _M_deallocate_node(*begin()._M_node); 8657: _M_deallocate_map(this->_M_impl._M_map, this->_M_impl._M_map_size); 8657: this->_M_impl._M_map = nullptr; 8657: this->_M_impl._M_map_size = 0; 8657: 8657: this->_M_impl._M_swap_data(__newobj._M_impl); 8657: } 8657: 8657: 8657: void 8657: _M_move_assign2(deque&& __x, true_type) 8657: { 8657: 8657: auto __alloc = __x._M_get_Tp_allocator(); 8657: 8657: 8657: _M_replace_map(std::move(__x)); 8657: 8657: _M_get_Tp_allocator() = std::move(__alloc); 8657: } 8657: 8657: 8657: 8657: void 8657: _M_move_assign2(deque&& __x, false_type) 8657: { 8657: if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator()) 8657: { 8657: 8657: 8657: _M_replace_map(std::move(__x), __x.get_allocator()); 8657: } 8657: else 8657: { 8657: 8657: 8657: _M_assign_aux(std::__make_move_if_noexcept_iterator(__x.begin()), 8657: std::__make_move_if_noexcept_iterator(__x.end()), 8657: std::random_access_iterator_tag()); 8657: __x.clear(); 8657: } 8657: } 8657: 8657: }; 8657: # 2275 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: template 8657: inline bool 8657: operator==(const deque<_Tp, _Alloc>& __x, 8657: const deque<_Tp, _Alloc>& __y) 8657: { return __x.size() == __y.size() 8657: && std::equal(__x.begin(), __x.end(), __y.begin()); } 8657: # 2293 "/usr/include/c++/8/bits/stl_deque.h" 3 8657: template 8657: inline bool 8657: operator<(const deque<_Tp, _Alloc>& __x, 8657: const deque<_Tp, _Alloc>& __y) 8657: { return std::lexicographical_compare(__x.begin(), __x.end(), 8657: __y.begin(), __y.end()); } 8657: 8657: 8657: template 8657: inline bool 8657: operator!=(const deque<_Tp, _Alloc>& __x, 8657: const deque<_Tp, _Alloc>& __y) 8657: { return !(__x == __y); } 8657: 8657: 8657: template 8657: inline bool 8657: operator>(const deque<_Tp, _Alloc>& __x, 8657: const deque<_Tp, _Alloc>& __y) 8657: { return __y < __x; } 8657: 8657: 8657: template 8657: inline bool 8657: operator<=(const deque<_Tp, _Alloc>& __x, 8657: const deque<_Tp, _Alloc>& __y) 8657: { return !(__y < __x); } 8657: 8657: 8657: template 8657: inline bool 8657: operator>=(const deque<_Tp, _Alloc>& __x, 8657: const deque<_Tp, _Alloc>& __y) 8657: { return !(__x < __y); } 8657: 8657: 8657: template 8657: inline void 8657: swap(deque<_Tp,_Alloc>& __x, deque<_Tp,_Alloc>& __y) 8657: noexcept(noexcept(__x.swap(__y))) 8657: { __x.swap(__y); } 8657: 8657: 8657: 8657: 8657: 8657: } 8657: # 65 "/usr/include/c++/8/deque" 2 3 8657: 8657: # 1 "/usr/include/c++/8/bits/deque.tcc" 1 3 8657: # 59 "/usr/include/c++/8/bits/deque.tcc" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: template 8657: void 8657: deque<_Tp, _Alloc>:: 8657: _M_default_initialize() 8657: { 8657: _Map_pointer __cur; 8657: try 8657: { 8657: for (__cur = this->_M_impl._M_start._M_node; 8657: __cur < this->_M_impl._M_finish._M_node; 8657: ++__cur) 8657: std::__uninitialized_default_a(*__cur, *__cur + _S_buffer_size(), 8657: _M_get_Tp_allocator()); 8657: std::__uninitialized_default_a(this->_M_impl._M_finish._M_first, 8657: this->_M_impl._M_finish._M_cur, 8657: _M_get_Tp_allocator()); 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(this->_M_impl._M_start, iterator(*__cur, __cur), 8657: _M_get_Tp_allocator()); 8657: throw; 8657: } 8657: } 8657: 8657: 8657: template 8657: deque<_Tp, _Alloc>& 8657: deque<_Tp, _Alloc>:: 8657: operator=(const deque& __x) 8657: { 8657: if (&__x != this) 8657: { 8657: 8657: if (_Alloc_traits::_S_propagate_on_copy_assign()) 8657: { 8657: if (!_Alloc_traits::_S_always_equal() 8657: && _M_get_Tp_allocator() != __x._M_get_Tp_allocator()) 8657: { 8657: 8657: 8657: _M_replace_map(__x, __x.get_allocator()); 8657: std::__alloc_on_copy(_M_get_Tp_allocator(), 8657: __x._M_get_Tp_allocator()); 8657: return *this; 8657: } 8657: std::__alloc_on_copy(_M_get_Tp_allocator(), 8657: __x._M_get_Tp_allocator()); 8657: } 8657: 8657: const size_type __len = size(); 8657: if (__len >= __x.size()) 8657: _M_erase_at_end(std::copy(__x.begin(), __x.end(), 8657: this->_M_impl._M_start)); 8657: else 8657: { 8657: const_iterator __mid = __x.begin() + difference_type(__len); 8657: std::copy(__x.begin(), __mid, this->_M_impl._M_start); 8657: _M_range_insert_aux(this->_M_impl._M_finish, __mid, __x.end(), 8657: std::random_access_iterator_tag()); 8657: } 8657: } 8657: return *this; 8657: } 8657: 8657: 8657: template 8657: template 8657: 8657: 8657: 8657: void 8657: 8657: deque<_Tp, _Alloc>:: 8657: emplace_front(_Args&&... __args) 8657: { 8657: if (this->_M_impl._M_start._M_cur != this->_M_impl._M_start._M_first) 8657: { 8657: _Alloc_traits::construct(this->_M_impl, 8657: this->_M_impl._M_start._M_cur - 1, 8657: std::forward<_Args>(__args)...); 8657: --this->_M_impl._M_start._M_cur; 8657: } 8657: else 8657: _M_push_front_aux(std::forward<_Args>(__args)...); 8657: 8657: 8657: 8657: } 8657: 8657: template 8657: template 8657: 8657: 8657: 8657: void 8657: 8657: deque<_Tp, _Alloc>:: 8657: emplace_back(_Args&&... __args) 8657: { 8657: if (this->_M_impl._M_finish._M_cur 8657: != this->_M_impl._M_finish._M_last - 1) 8657: { 8657: _Alloc_traits::construct(this->_M_impl, 8657: this->_M_impl._M_finish._M_cur, 8657: std::forward<_Args>(__args)...); 8657: ++this->_M_impl._M_finish._M_cur; 8657: } 8657: else 8657: _M_push_back_aux(std::forward<_Args>(__args)...); 8657: 8657: 8657: 8657: } 8657: 8657: 8657: 8657: template 8657: template 8657: typename deque<_Tp, _Alloc>::iterator 8657: deque<_Tp, _Alloc>:: 8657: emplace(const_iterator __position, _Args&&... __args) 8657: { 8657: if (__position._M_cur == this->_M_impl._M_start._M_cur) 8657: { 8657: emplace_front(std::forward<_Args>(__args)...); 8657: return this->_M_impl._M_start; 8657: } 8657: else if (__position._M_cur == this->_M_impl._M_finish._M_cur) 8657: { 8657: emplace_back(std::forward<_Args>(__args)...); 8657: iterator __tmp = this->_M_impl._M_finish; 8657: --__tmp; 8657: return __tmp; 8657: } 8657: else 8657: return _M_insert_aux(__position._M_const_cast(), 8657: std::forward<_Args>(__args)...); 8657: } 8657: 8657: 8657: template 8657: typename deque<_Tp, _Alloc>::iterator 8657: deque<_Tp, _Alloc>:: 8657: 8657: insert(const_iterator __position, const value_type& __x) 8657: 8657: 8657: 8657: { 8657: if (__position._M_cur == this->_M_impl._M_start._M_cur) 8657: { 8657: push_front(__x); 8657: return this->_M_impl._M_start; 8657: } 8657: else if (__position._M_cur == this->_M_impl._M_finish._M_cur) 8657: { 8657: push_back(__x); 8657: iterator __tmp = this->_M_impl._M_finish; 8657: --__tmp; 8657: return __tmp; 8657: } 8657: else 8657: return _M_insert_aux(__position._M_const_cast(), __x); 8657: } 8657: 8657: template 8657: typename deque<_Tp, _Alloc>::iterator 8657: deque<_Tp, _Alloc>:: 8657: _M_erase(iterator __position) 8657: { 8657: iterator __next = __position; 8657: ++__next; 8657: const difference_type __index = __position - begin(); 8657: if (static_cast(__index) < (size() >> 1)) 8657: { 8657: if (__position != begin()) 8657: std::move_backward(begin(), __position, __next); 8657: pop_front(); 8657: } 8657: else 8657: { 8657: if (__next != end()) 8657: std::move(__next, end(), __position); 8657: pop_back(); 8657: } 8657: return begin() + __index; 8657: } 8657: 8657: template 8657: typename deque<_Tp, _Alloc>::iterator 8657: deque<_Tp, _Alloc>:: 8657: _M_erase(iterator __first, iterator __last) 8657: { 8657: if (__first == __last) 8657: return __first; 8657: else if (__first == begin() && __last == end()) 8657: { 8657: clear(); 8657: return end(); 8657: } 8657: else 8657: { 8657: const difference_type __n = __last - __first; 8657: const difference_type __elems_before = __first - begin(); 8657: if (static_cast(__elems_before) <= (size() - __n) / 2) 8657: { 8657: if (__first != begin()) 8657: std::move_backward(begin(), __first, __last); 8657: _M_erase_at_begin(begin() + __n); 8657: } 8657: else 8657: { 8657: if (__last != end()) 8657: std::move(__last, end(), __first); 8657: _M_erase_at_end(end() - __n); 8657: } 8657: return begin() + __elems_before; 8657: } 8657: } 8657: 8657: template 8657: template 8657: void 8657: deque<_Tp, _Alloc>:: 8657: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8657: std::input_iterator_tag) 8657: { 8657: iterator __cur = begin(); 8657: for (; __first != __last && __cur != end(); ++__cur, ++__first) 8657: *__cur = *__first; 8657: if (__first == __last) 8657: _M_erase_at_end(__cur); 8657: else 8657: _M_range_insert_aux(end(), __first, __last, 8657: std::__iterator_category(__first)); 8657: } 8657: 8657: template 8657: void 8657: deque<_Tp, _Alloc>:: 8657: _M_fill_insert(iterator __pos, size_type __n, const value_type& __x) 8657: { 8657: if (__pos._M_cur == this->_M_impl._M_start._M_cur) 8657: { 8657: iterator __new_start = _M_reserve_elements_at_front(__n); 8657: try 8657: { 8657: std::__uninitialized_fill_a(__new_start, this->_M_impl._M_start, 8657: __x, _M_get_Tp_allocator()); 8657: this->_M_impl._M_start = __new_start; 8657: } 8657: catch(...) 8657: { 8657: _M_destroy_nodes(__new_start._M_node, 8657: this->_M_impl._M_start._M_node); 8657: throw; 8657: } 8657: } 8657: else if (__pos._M_cur == this->_M_impl._M_finish._M_cur) 8657: { 8657: iterator __new_finish = _M_reserve_elements_at_back(__n); 8657: try 8657: { 8657: std::__uninitialized_fill_a(this->_M_impl._M_finish, 8657: __new_finish, __x, 8657: _M_get_Tp_allocator()); 8657: this->_M_impl._M_finish = __new_finish; 8657: } 8657: catch(...) 8657: { 8657: _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1, 8657: __new_finish._M_node + 1); 8657: throw; 8657: } 8657: } 8657: else 8657: _M_insert_aux(__pos, __n, __x); 8657: } 8657: 8657: 8657: template 8657: void 8657: deque<_Tp, _Alloc>:: 8657: _M_default_append(size_type __n) 8657: { 8657: if (__n) 8657: { 8657: iterator __new_finish = _M_reserve_elements_at_back(__n); 8657: try 8657: { 8657: std::__uninitialized_default_a(this->_M_impl._M_finish, 8657: __new_finish, 8657: _M_get_Tp_allocator()); 8657: this->_M_impl._M_finish = __new_finish; 8657: } 8657: catch(...) 8657: { 8657: _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1, 8657: __new_finish._M_node + 1); 8657: throw; 8657: } 8657: } 8657: } 8657: 8657: template 8657: bool 8657: deque<_Tp, _Alloc>:: 8657: _M_shrink_to_fit() 8657: { 8657: const difference_type __front_capacity 8657: = (this->_M_impl._M_start._M_cur - this->_M_impl._M_start._M_first); 8657: if (__front_capacity == 0) 8657: return false; 8657: 8657: const difference_type __back_capacity 8657: = (this->_M_impl._M_finish._M_last - this->_M_impl._M_finish._M_cur); 8657: if (__front_capacity + __back_capacity < _S_buffer_size()) 8657: return false; 8657: 8657: return std::__shrink_to_fit_aux::_S_do_it(*this); 8657: } 8657: 8657: 8657: template 8657: void 8657: deque<_Tp, _Alloc>:: 8657: _M_fill_initialize(const value_type& __value) 8657: { 8657: _Map_pointer __cur; 8657: try 8657: { 8657: for (__cur = this->_M_impl._M_start._M_node; 8657: __cur < this->_M_impl._M_finish._M_node; 8657: ++__cur) 8657: std::__uninitialized_fill_a(*__cur, *__cur + _S_buffer_size(), 8657: __value, _M_get_Tp_allocator()); 8657: std::__uninitialized_fill_a(this->_M_impl._M_finish._M_first, 8657: this->_M_impl._M_finish._M_cur, 8657: __value, _M_get_Tp_allocator()); 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(this->_M_impl._M_start, iterator(*__cur, __cur), 8657: _M_get_Tp_allocator()); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: template 8657: void 8657: deque<_Tp, _Alloc>:: 8657: _M_range_initialize(_InputIterator __first, _InputIterator __last, 8657: std::input_iterator_tag) 8657: { 8657: this->_M_initialize_map(0); 8657: try 8657: { 8657: for (; __first != __last; ++__first) 8657: 8657: emplace_back(*__first); 8657: 8657: 8657: 8657: } 8657: catch(...) 8657: { 8657: clear(); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: template 8657: void 8657: deque<_Tp, _Alloc>:: 8657: _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, 8657: std::forward_iterator_tag) 8657: { 8657: const size_type __n = std::distance(__first, __last); 8657: this->_M_initialize_map(__n); 8657: 8657: _Map_pointer __cur_node; 8657: try 8657: { 8657: for (__cur_node = this->_M_impl._M_start._M_node; 8657: __cur_node < this->_M_impl._M_finish._M_node; 8657: ++__cur_node) 8657: { 8657: _ForwardIterator __mid = __first; 8657: std::advance(__mid, _S_buffer_size()); 8657: std::__uninitialized_copy_a(__first, __mid, *__cur_node, 8657: _M_get_Tp_allocator()); 8657: __first = __mid; 8657: } 8657: std::__uninitialized_copy_a(__first, __last, 8657: this->_M_impl._M_finish._M_first, 8657: _M_get_Tp_allocator()); 8657: } 8657: catch(...) 8657: { 8657: std::_Destroy(this->_M_impl._M_start, 8657: iterator(*__cur_node, __cur_node), 8657: _M_get_Tp_allocator()); 8657: throw; 8657: } 8657: } 8657: 8657: 8657: template 8657: 8657: template 8657: void 8657: deque<_Tp, _Alloc>:: 8657: _M_push_back_aux(_Args&&... __args) 8657: 8657: 8657: 8657: 8657: 8657: { 8657: _M_reserve_map_at_back(); 8657: *(this->_M_impl._M_finish._M_node + 1) = this->_M_allocate_node(); 8657: try 8657: { 8657: 8657: _Alloc_traits::construct(this->_M_impl, 8657: this->_M_impl._M_finish._M_cur, 8657: std::forward<_Args>(__args)...); 8657: 8657: 8657: 8657: this->_M_impl._M_finish._M_set_node(this->_M_impl._M_finish._M_node 8657: + 1); 8657: this->_M_impl._M_finish._M_cur = this->_M_impl._M_finish._M_first; 8657: } 8657: catch(...) 8657: { 8657: _M_deallocate_node(*(this->_M_impl._M_finish._M_node + 1)); 8657: throw; 8657: } 8657: } 8657: 8657: 8657: template 8657: 8657: template 8657: void 8657: deque<_Tp, _Alloc>:: 8657: _M_push_front_aux(_Args&&... __args) 8657: 8657: 8657: 8657: 8657: 8657: { 8657: _M_reserve_map_at_front(); 8657: *(this->_M_impl._M_start._M_node - 1) = this->_M_allocate_node(); 8657: try 8657: { 8657: this->_M_impl._M_start._M_set_node(this->_M_impl._M_start._M_node 8657: - 1); 8657: this->_M_impl._M_start._M_cur = this->_M_impl._M_start._M_last - 1; 8657: 8657: _Alloc_traits::construct(this->_M_impl, 8657: this->_M_impl._M_start._M_cur, 8657: std::forward<_Args>(__args)...); 8657: 8657: 8657: 8657: } 8657: catch(...) 8657: { 8657: ++this->_M_impl._M_start; 8657: _M_deallocate_node(*(this->_M_impl._M_start._M_node - 1)); 8657: throw; 8657: } 8657: } 8657: 8657: 8657: template 8657: void deque<_Tp, _Alloc>:: 8657: _M_pop_back_aux() 8657: { 8657: _M_deallocate_node(this->_M_impl._M_finish._M_first); 8657: this->_M_impl._M_finish._M_set_node(this->_M_impl._M_finish._M_node - 1); 8657: this->_M_impl._M_finish._M_cur = this->_M_impl._M_finish._M_last - 1; 8657: _Alloc_traits::destroy(_M_get_Tp_allocator(), 8657: this->_M_impl._M_finish._M_cur); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: void deque<_Tp, _Alloc>:: 8657: _M_pop_front_aux() 8657: { 8657: _Alloc_traits::destroy(_M_get_Tp_allocator(), 8657: this->_M_impl._M_start._M_cur); 8657: _M_deallocate_node(this->_M_impl._M_start._M_first); 8657: this->_M_impl._M_start._M_set_node(this->_M_impl._M_start._M_node + 1); 8657: this->_M_impl._M_start._M_cur = this->_M_impl._M_start._M_first; 8657: } 8657: 8657: template 8657: template 8657: void 8657: deque<_Tp, _Alloc>:: 8657: _M_range_insert_aux(iterator __pos, 8657: _InputIterator __first, _InputIterator __last, 8657: std::input_iterator_tag) 8657: { std::copy(__first, __last, std::inserter(*this, __pos)); } 8657: 8657: template 8657: template 8657: void 8657: deque<_Tp, _Alloc>:: 8657: _M_range_insert_aux(iterator __pos, 8657: _ForwardIterator __first, _ForwardIterator __last, 8657: std::forward_iterator_tag) 8657: { 8657: const size_type __n = std::distance(__first, __last); 8657: if (__pos._M_cur == this->_M_impl._M_start._M_cur) 8657: { 8657: iterator __new_start = _M_reserve_elements_at_front(__n); 8657: try 8657: { 8657: std::__uninitialized_copy_a(__first, __last, __new_start, 8657: _M_get_Tp_allocator()); 8657: this->_M_impl._M_start = __new_start; 8657: } 8657: catch(...) 8657: { 8657: _M_destroy_nodes(__new_start._M_node, 8657: this->_M_impl._M_start._M_node); 8657: throw; 8657: } 8657: } 8657: else if (__pos._M_cur == this->_M_impl._M_finish._M_cur) 8657: { 8657: iterator __new_finish = _M_reserve_elements_at_back(__n); 8657: try 8657: { 8657: std::__uninitialized_copy_a(__first, __last, 8657: this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: this->_M_impl._M_finish = __new_finish; 8657: } 8657: catch(...) 8657: { 8657: _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1, 8657: __new_finish._M_node + 1); 8657: throw; 8657: } 8657: } 8657: else 8657: _M_insert_aux(__pos, __first, __last, __n); 8657: } 8657: 8657: template 8657: 8657: template 8657: typename deque<_Tp, _Alloc>::iterator 8657: deque<_Tp, _Alloc>:: 8657: _M_insert_aux(iterator __pos, _Args&&... __args) 8657: { 8657: value_type __x_copy(std::forward<_Args>(__args)...); 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: difference_type __index = __pos - this->_M_impl._M_start; 8657: if (static_cast(__index) < size() / 2) 8657: { 8657: push_front(std::move(front())); 8657: iterator __front1 = this->_M_impl._M_start; 8657: ++__front1; 8657: iterator __front2 = __front1; 8657: ++__front2; 8657: __pos = this->_M_impl._M_start + __index; 8657: iterator __pos1 = __pos; 8657: ++__pos1; 8657: std::move(__front2, __pos1, __front1); 8657: } 8657: else 8657: { 8657: push_back(std::move(back())); 8657: iterator __back1 = this->_M_impl._M_finish; 8657: --__back1; 8657: iterator __back2 = __back1; 8657: --__back2; 8657: __pos = this->_M_impl._M_start + __index; 8657: std::move_backward(__pos, __back2, __back1); 8657: } 8657: *__pos = std::move(__x_copy); 8657: return __pos; 8657: } 8657: 8657: template 8657: void 8657: deque<_Tp, _Alloc>:: 8657: _M_insert_aux(iterator __pos, size_type __n, const value_type& __x) 8657: { 8657: const difference_type __elems_before = __pos - this->_M_impl._M_start; 8657: const size_type __length = this->size(); 8657: value_type __x_copy = __x; 8657: if (__elems_before < difference_type(__length / 2)) 8657: { 8657: iterator __new_start = _M_reserve_elements_at_front(__n); 8657: iterator __old_start = this->_M_impl._M_start; 8657: __pos = this->_M_impl._M_start + __elems_before; 8657: try 8657: { 8657: if (__elems_before >= difference_type(__n)) 8657: { 8657: iterator __start_n = (this->_M_impl._M_start 8657: + difference_type(__n)); 8657: std::__uninitialized_move_a(this->_M_impl._M_start, 8657: __start_n, __new_start, 8657: _M_get_Tp_allocator()); 8657: this->_M_impl._M_start = __new_start; 8657: std::move(__start_n, __pos, __old_start); 8657: std::fill(__pos - difference_type(__n), __pos, __x_copy); 8657: } 8657: else 8657: { 8657: std::__uninitialized_move_fill(this->_M_impl._M_start, 8657: __pos, __new_start, 8657: this->_M_impl._M_start, 8657: __x_copy, 8657: _M_get_Tp_allocator()); 8657: this->_M_impl._M_start = __new_start; 8657: std::fill(__old_start, __pos, __x_copy); 8657: } 8657: } 8657: catch(...) 8657: { 8657: _M_destroy_nodes(__new_start._M_node, 8657: this->_M_impl._M_start._M_node); 8657: throw; 8657: } 8657: } 8657: else 8657: { 8657: iterator __new_finish = _M_reserve_elements_at_back(__n); 8657: iterator __old_finish = this->_M_impl._M_finish; 8657: const difference_type __elems_after = 8657: difference_type(__length) - __elems_before; 8657: __pos = this->_M_impl._M_finish - __elems_after; 8657: try 8657: { 8657: if (__elems_after > difference_type(__n)) 8657: { 8657: iterator __finish_n = (this->_M_impl._M_finish 8657: - difference_type(__n)); 8657: std::__uninitialized_move_a(__finish_n, 8657: this->_M_impl._M_finish, 8657: this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: this->_M_impl._M_finish = __new_finish; 8657: std::move_backward(__pos, __finish_n, __old_finish); 8657: std::fill(__pos, __pos + difference_type(__n), __x_copy); 8657: } 8657: else 8657: { 8657: std::__uninitialized_fill_move(this->_M_impl._M_finish, 8657: __pos + difference_type(__n), 8657: __x_copy, __pos, 8657: this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: this->_M_impl._M_finish = __new_finish; 8657: std::fill(__pos, __old_finish, __x_copy); 8657: } 8657: } 8657: catch(...) 8657: { 8657: _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1, 8657: __new_finish._M_node + 1); 8657: throw; 8657: } 8657: } 8657: } 8657: 8657: template 8657: template 8657: void 8657: deque<_Tp, _Alloc>:: 8657: _M_insert_aux(iterator __pos, 8657: _ForwardIterator __first, _ForwardIterator __last, 8657: size_type __n) 8657: { 8657: const difference_type __elemsbefore = __pos - this->_M_impl._M_start; 8657: const size_type __length = size(); 8657: if (static_cast(__elemsbefore) < __length / 2) 8657: { 8657: iterator __new_start = _M_reserve_elements_at_front(__n); 8657: iterator __old_start = this->_M_impl._M_start; 8657: __pos = this->_M_impl._M_start + __elemsbefore; 8657: try 8657: { 8657: if (__elemsbefore >= difference_type(__n)) 8657: { 8657: iterator __start_n = (this->_M_impl._M_start 8657: + difference_type(__n)); 8657: std::__uninitialized_move_a(this->_M_impl._M_start, 8657: __start_n, __new_start, 8657: _M_get_Tp_allocator()); 8657: this->_M_impl._M_start = __new_start; 8657: std::move(__start_n, __pos, __old_start); 8657: std::copy(__first, __last, __pos - difference_type(__n)); 8657: } 8657: else 8657: { 8657: _ForwardIterator __mid = __first; 8657: std::advance(__mid, difference_type(__n) - __elemsbefore); 8657: std::__uninitialized_move_copy(this->_M_impl._M_start, 8657: __pos, __first, __mid, 8657: __new_start, 8657: _M_get_Tp_allocator()); 8657: this->_M_impl._M_start = __new_start; 8657: std::copy(__mid, __last, __old_start); 8657: } 8657: } 8657: catch(...) 8657: { 8657: _M_destroy_nodes(__new_start._M_node, 8657: this->_M_impl._M_start._M_node); 8657: throw; 8657: } 8657: } 8657: else 8657: { 8657: iterator __new_finish = _M_reserve_elements_at_back(__n); 8657: iterator __old_finish = this->_M_impl._M_finish; 8657: const difference_type __elemsafter = 8657: difference_type(__length) - __elemsbefore; 8657: __pos = this->_M_impl._M_finish - __elemsafter; 8657: try 8657: { 8657: if (__elemsafter > difference_type(__n)) 8657: { 8657: iterator __finish_n = (this->_M_impl._M_finish 8657: - difference_type(__n)); 8657: std::__uninitialized_move_a(__finish_n, 8657: this->_M_impl._M_finish, 8657: this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: this->_M_impl._M_finish = __new_finish; 8657: std::move_backward(__pos, __finish_n, __old_finish); 8657: std::copy(__first, __last, __pos); 8657: } 8657: else 8657: { 8657: _ForwardIterator __mid = __first; 8657: std::advance(__mid, __elemsafter); 8657: std::__uninitialized_copy_move(__mid, __last, __pos, 8657: this->_M_impl._M_finish, 8657: this->_M_impl._M_finish, 8657: _M_get_Tp_allocator()); 8657: this->_M_impl._M_finish = __new_finish; 8657: std::copy(__first, __mid, __pos); 8657: } 8657: } 8657: catch(...) 8657: { 8657: _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1, 8657: __new_finish._M_node + 1); 8657: throw; 8657: } 8657: } 8657: } 8657: 8657: template 8657: void 8657: deque<_Tp, _Alloc>:: 8657: _M_destroy_data_aux(iterator __first, iterator __last) 8657: { 8657: for (_Map_pointer __node = __first._M_node + 1; 8657: __node < __last._M_node; ++__node) 8657: std::_Destroy(*__node, *__node + _S_buffer_size(), 8657: _M_get_Tp_allocator()); 8657: 8657: if (__first._M_node != __last._M_node) 8657: { 8657: std::_Destroy(__first._M_cur, __first._M_last, 8657: _M_get_Tp_allocator()); 8657: std::_Destroy(__last._M_first, __last._M_cur, 8657: _M_get_Tp_allocator()); 8657: } 8657: else 8657: std::_Destroy(__first._M_cur, __last._M_cur, 8657: _M_get_Tp_allocator()); 8657: } 8657: 8657: template 8657: void 8657: deque<_Tp, _Alloc>:: 8657: _M_new_elements_at_front(size_type __new_elems) 8657: { 8657: if (this->max_size() - this->size() < __new_elems) 8657: __throw_length_error(("deque::_M_new_elements_at_front")); 8657: 8657: const size_type __new_nodes = ((__new_elems + _S_buffer_size() - 1) 8657: / _S_buffer_size()); 8657: _M_reserve_map_at_front(__new_nodes); 8657: size_type __i; 8657: try 8657: { 8657: for (__i = 1; __i <= __new_nodes; ++__i) 8657: *(this->_M_impl._M_start._M_node - __i) = this->_M_allocate_node(); 8657: } 8657: catch(...) 8657: { 8657: for (size_type __j = 1; __j < __i; ++__j) 8657: _M_deallocate_node(*(this->_M_impl._M_start._M_node - __j)); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: void 8657: deque<_Tp, _Alloc>:: 8657: _M_new_elements_at_back(size_type __new_elems) 8657: { 8657: if (this->max_size() - this->size() < __new_elems) 8657: __throw_length_error(("deque::_M_new_elements_at_back")); 8657: 8657: const size_type __new_nodes = ((__new_elems + _S_buffer_size() - 1) 8657: / _S_buffer_size()); 8657: _M_reserve_map_at_back(__new_nodes); 8657: size_type __i; 8657: try 8657: { 8657: for (__i = 1; __i <= __new_nodes; ++__i) 8657: *(this->_M_impl._M_finish._M_node + __i) = this->_M_allocate_node(); 8657: } 8657: catch(...) 8657: { 8657: for (size_type __j = 1; __j < __i; ++__j) 8657: _M_deallocate_node(*(this->_M_impl._M_finish._M_node + __j)); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: void 8657: deque<_Tp, _Alloc>:: 8657: _M_reallocate_map(size_type __nodes_to_add, bool __add_at_front) 8657: { 8657: const size_type __old_num_nodes 8657: = this->_M_impl._M_finish._M_node - this->_M_impl._M_start._M_node + 1; 8657: const size_type __new_num_nodes = __old_num_nodes + __nodes_to_add; 8657: 8657: _Map_pointer __new_nstart; 8657: if (this->_M_impl._M_map_size > 2 * __new_num_nodes) 8657: { 8657: __new_nstart = this->_M_impl._M_map + (this->_M_impl._M_map_size 8657: - __new_num_nodes) / 2 8657: + (__add_at_front ? __nodes_to_add : 0); 8657: if (__new_nstart < this->_M_impl._M_start._M_node) 8657: std::copy(this->_M_impl._M_start._M_node, 8657: this->_M_impl._M_finish._M_node + 1, 8657: __new_nstart); 8657: else 8657: std::copy_backward(this->_M_impl._M_start._M_node, 8657: this->_M_impl._M_finish._M_node + 1, 8657: __new_nstart + __old_num_nodes); 8657: } 8657: else 8657: { 8657: size_type __new_map_size = this->_M_impl._M_map_size 8657: + std::max(this->_M_impl._M_map_size, 8657: __nodes_to_add) + 2; 8657: 8657: _Map_pointer __new_map = this->_M_allocate_map(__new_map_size); 8657: __new_nstart = __new_map + (__new_map_size - __new_num_nodes) / 2 8657: + (__add_at_front ? __nodes_to_add : 0); 8657: std::copy(this->_M_impl._M_start._M_node, 8657: this->_M_impl._M_finish._M_node + 1, 8657: __new_nstart); 8657: _M_deallocate_map(this->_M_impl._M_map, this->_M_impl._M_map_size); 8657: 8657: this->_M_impl._M_map = __new_map; 8657: this->_M_impl._M_map_size = __new_map_size; 8657: } 8657: 8657: this->_M_impl._M_start._M_set_node(__new_nstart); 8657: this->_M_impl._M_finish._M_set_node(__new_nstart + __old_num_nodes - 1); 8657: } 8657: 8657: 8657: 8657: template 8657: void 8657: fill(const _Deque_iterator<_Tp, _Tp&, _Tp*>& __first, 8657: const _Deque_iterator<_Tp, _Tp&, _Tp*>& __last, const _Tp& __value) 8657: { 8657: typedef typename _Deque_iterator<_Tp, _Tp&, _Tp*>::_Self _Self; 8657: 8657: for (typename _Self::_Map_pointer __node = __first._M_node + 1; 8657: __node < __last._M_node; ++__node) 8657: std::fill(*__node, *__node + _Self::_S_buffer_size(), __value); 8657: 8657: if (__first._M_node != __last._M_node) 8657: { 8657: std::fill(__first._M_cur, __first._M_last, __value); 8657: std::fill(__last._M_first, __last._M_cur, __value); 8657: } 8657: else 8657: std::fill(__first._M_cur, __last._M_cur, __value); 8657: } 8657: 8657: template 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> 8657: copy(_Deque_iterator<_Tp, const _Tp&, const _Tp*> __first, 8657: _Deque_iterator<_Tp, const _Tp&, const _Tp*> __last, 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 8657: { 8657: typedef typename _Deque_iterator<_Tp, _Tp&, _Tp*>::_Self _Self; 8657: typedef typename _Self::difference_type difference_type; 8657: 8657: difference_type __len = __last - __first; 8657: while (__len > 0) 8657: { 8657: const difference_type __clen 8657: = std::min(__len, std::min(__first._M_last - __first._M_cur, 8657: __result._M_last - __result._M_cur)); 8657: std::copy(__first._M_cur, __first._M_cur + __clen, __result._M_cur); 8657: __first += __clen; 8657: __result += __clen; 8657: __len -= __clen; 8657: } 8657: return __result; 8657: } 8657: 8657: template 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> 8657: copy_backward(_Deque_iterator<_Tp, const _Tp&, const _Tp*> __first, 8657: _Deque_iterator<_Tp, const _Tp&, const _Tp*> __last, 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 8657: { 8657: typedef typename _Deque_iterator<_Tp, _Tp&, _Tp*>::_Self _Self; 8657: typedef typename _Self::difference_type difference_type; 8657: 8657: difference_type __len = __last - __first; 8657: while (__len > 0) 8657: { 8657: difference_type __llen = __last._M_cur - __last._M_first; 8657: _Tp* __lend = __last._M_cur; 8657: 8657: difference_type __rlen = __result._M_cur - __result._M_first; 8657: _Tp* __rend = __result._M_cur; 8657: 8657: if (!__llen) 8657: { 8657: __llen = _Self::_S_buffer_size(); 8657: __lend = *(__last._M_node - 1) + __llen; 8657: } 8657: if (!__rlen) 8657: { 8657: __rlen = _Self::_S_buffer_size(); 8657: __rend = *(__result._M_node - 1) + __rlen; 8657: } 8657: 8657: const difference_type __clen = std::min(__len, 8657: std::min(__llen, __rlen)); 8657: std::copy_backward(__lend - __clen, __lend, __rend); 8657: __last -= __clen; 8657: __result -= __clen; 8657: __len -= __clen; 8657: } 8657: return __result; 8657: } 8657: 8657: 8657: template 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> 8657: move(_Deque_iterator<_Tp, const _Tp&, const _Tp*> __first, 8657: _Deque_iterator<_Tp, const _Tp&, const _Tp*> __last, 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 8657: { 8657: typedef typename _Deque_iterator<_Tp, _Tp&, _Tp*>::_Self _Self; 8657: typedef typename _Self::difference_type difference_type; 8657: 8657: difference_type __len = __last - __first; 8657: while (__len > 0) 8657: { 8657: const difference_type __clen 8657: = std::min(__len, std::min(__first._M_last - __first._M_cur, 8657: __result._M_last - __result._M_cur)); 8657: std::move(__first._M_cur, __first._M_cur + __clen, __result._M_cur); 8657: __first += __clen; 8657: __result += __clen; 8657: __len -= __clen; 8657: } 8657: return __result; 8657: } 8657: 8657: template 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> 8657: move_backward(_Deque_iterator<_Tp, const _Tp&, const _Tp*> __first, 8657: _Deque_iterator<_Tp, const _Tp&, const _Tp*> __last, 8657: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 8657: { 8657: typedef typename _Deque_iterator<_Tp, _Tp&, _Tp*>::_Self _Self; 8657: typedef typename _Self::difference_type difference_type; 8657: 8657: difference_type __len = __last - __first; 8657: while (__len > 0) 8657: { 8657: difference_type __llen = __last._M_cur - __last._M_first; 8657: _Tp* __lend = __last._M_cur; 8657: 8657: difference_type __rlen = __result._M_cur - __result._M_first; 8657: _Tp* __rend = __result._M_cur; 8657: 8657: if (!__llen) 8657: { 8657: __llen = _Self::_S_buffer_size(); 8657: __lend = *(__last._M_node - 1) + __llen; 8657: } 8657: if (!__rlen) 8657: { 8657: __rlen = _Self::_S_buffer_size(); 8657: __rend = *(__result._M_node - 1) + __rlen; 8657: } 8657: 8657: const difference_type __clen = std::min(__len, 8657: std::min(__llen, __rlen)); 8657: std::move_backward(__lend - __clen, __lend, __rend); 8657: __last -= __clen; 8657: __result -= __clen; 8657: __len -= __clen; 8657: } 8657: return __result; 8657: } 8657: 8657: 8657: 8657: 8657: } 8657: # 67 "/usr/include/c++/8/deque" 2 3 8657: # 38 "/<>/templates/tests/testgenerictypes.cpp" 2 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/tr1/memory" 1 3 8657: # 33 "/usr/include/c++/8/tr1/memory" 3 8657: 8657: # 34 "/usr/include/c++/8/tr1/memory" 3 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/memory" 1 3 8657: # 46 "/usr/include/c++/8/memory" 3 8657: 8657: # 47 "/usr/include/c++/8/memory" 3 8657: # 67 "/usr/include/c++/8/memory" 3 8657: # 1 "/usr/include/c++/8/bits/stl_raw_storage_iter.h" 1 3 8657: # 59 "/usr/include/c++/8/bits/stl_raw_storage_iter.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: class raw_storage_iterator 8657: : public iterator 8657: { 8657: protected: 8657: _OutputIterator _M_iter; 8657: 8657: public: 8657: explicit 8657: raw_storage_iterator(_OutputIterator __x) 8657: : _M_iter(__x) {} 8657: 8657: raw_storage_iterator& 8657: operator*() { return *this; } 8657: 8657: raw_storage_iterator& 8657: operator=(const _Tp& __element) 8657: { 8657: std::_Construct(std::__addressof(*_M_iter), __element); 8657: return *this; 8657: } 8657: 8657: 8657: 8657: 8657: raw_storage_iterator& 8657: operator=(_Tp&& __element) 8657: { 8657: std::_Construct(std::__addressof(*_M_iter), std::move(__element)); 8657: return *this; 8657: } 8657: 8657: 8657: raw_storage_iterator& 8657: operator++() 8657: { 8657: ++_M_iter; 8657: return *this; 8657: } 8657: 8657: raw_storage_iterator 8657: operator++(int) 8657: { 8657: raw_storage_iterator __tmp = *this; 8657: ++_M_iter; 8657: return __tmp; 8657: } 8657: 8657: 8657: 8657: _OutputIterator base() const { return _M_iter; } 8657: }; 8657: 8657: 8657: } 8657: # 68 "/usr/include/c++/8/memory" 2 3 8657: 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/ext/concurrence.h" 1 3 8657: # 32 "/usr/include/c++/8/ext/concurrence.h" 3 8657: 8657: # 33 "/usr/include/c++/8/ext/concurrence.h" 3 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: enum _Lock_policy { _S_single, _S_mutex, _S_atomic }; 8657: 8657: 8657: 8657: static const _Lock_policy __default_lock_policy = 8657: 8657: 8657: 8657: _S_atomic; 8657: # 67 "/usr/include/c++/8/ext/concurrence.h" 3 8657: class __concurrence_lock_error : public std::exception 8657: { 8657: public: 8657: virtual char const* 8657: what() const throw() 8657: { return "__gnu_cxx::__concurrence_lock_error"; } 8657: }; 8657: 8657: class __concurrence_unlock_error : public std::exception 8657: { 8657: public: 8657: virtual char const* 8657: what() const throw() 8657: { return "__gnu_cxx::__concurrence_unlock_error"; } 8657: }; 8657: 8657: class __concurrence_broadcast_error : public std::exception 8657: { 8657: public: 8657: virtual char const* 8657: what() const throw() 8657: { return "__gnu_cxx::__concurrence_broadcast_error"; } 8657: }; 8657: 8657: class __concurrence_wait_error : public std::exception 8657: { 8657: public: 8657: virtual char const* 8657: what() const throw() 8657: { return "__gnu_cxx::__concurrence_wait_error"; } 8657: }; 8657: 8657: 8657: inline void 8657: __throw_concurrence_lock_error() 8657: { (throw (__concurrence_lock_error())); } 8657: 8657: inline void 8657: __throw_concurrence_unlock_error() 8657: { (throw (__concurrence_unlock_error())); } 8657: 8657: 8657: inline void 8657: __throw_concurrence_broadcast_error() 8657: { (throw (__concurrence_broadcast_error())); } 8657: 8657: inline void 8657: __throw_concurrence_wait_error() 8657: { (throw (__concurrence_wait_error())); } 8657: 8657: 8657: class __mutex 8657: { 8657: private: 8657: 8657: __gthread_mutex_t _M_mutex = { { 0, 0, 0, 0, 0, { 0 } } }; 8657: 8657: 8657: 8657: 8657: __mutex(const __mutex&); 8657: __mutex& operator=(const __mutex&); 8657: 8657: public: 8657: __mutex() 8657: { 8657: 8657: 8657: 8657: 8657: } 8657: # 147 "/usr/include/c++/8/ext/concurrence.h" 3 8657: void lock() 8657: { 8657: 8657: if (__gthread_active_p()) 8657: { 8657: if (__gthread_mutex_lock(&_M_mutex) != 0) 8657: __throw_concurrence_lock_error(); 8657: } 8657: 8657: } 8657: 8657: void unlock() 8657: { 8657: 8657: if (__gthread_active_p()) 8657: { 8657: if (__gthread_mutex_unlock(&_M_mutex) != 0) 8657: __throw_concurrence_unlock_error(); 8657: } 8657: 8657: } 8657: 8657: __gthread_mutex_t* gthread_mutex(void) 8657: { return &_M_mutex; } 8657: }; 8657: 8657: class __recursive_mutex 8657: { 8657: private: 8657: 8657: __gthread_recursive_mutex_t _M_mutex = { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { 0 } } }; 8657: 8657: 8657: 8657: 8657: __recursive_mutex(const __recursive_mutex&); 8657: __recursive_mutex& operator=(const __recursive_mutex&); 8657: 8657: public: 8657: __recursive_mutex() 8657: { 8657: 8657: 8657: 8657: 8657: } 8657: # 202 "/usr/include/c++/8/ext/concurrence.h" 3 8657: void lock() 8657: { 8657: 8657: if (__gthread_active_p()) 8657: { 8657: if (__gthread_recursive_mutex_lock(&_M_mutex) != 0) 8657: __throw_concurrence_lock_error(); 8657: } 8657: 8657: } 8657: 8657: void unlock() 8657: { 8657: 8657: if (__gthread_active_p()) 8657: { 8657: if (__gthread_recursive_mutex_unlock(&_M_mutex) != 0) 8657: __throw_concurrence_unlock_error(); 8657: } 8657: 8657: } 8657: 8657: __gthread_recursive_mutex_t* gthread_recursive_mutex(void) 8657: { return &_M_mutex; } 8657: }; 8657: 8657: 8657: 8657: 8657: class __scoped_lock 8657: { 8657: public: 8657: typedef __mutex __mutex_type; 8657: 8657: private: 8657: __mutex_type& _M_device; 8657: 8657: __scoped_lock(const __scoped_lock&); 8657: __scoped_lock& operator=(const __scoped_lock&); 8657: 8657: public: 8657: explicit __scoped_lock(__mutex_type& __name) : _M_device(__name) 8657: { _M_device.lock(); } 8657: 8657: ~__scoped_lock() throw() 8657: { _M_device.unlock(); } 8657: }; 8657: 8657: 8657: class __cond 8657: { 8657: private: 8657: 8657: __gthread_cond_t _M_cond = { { {0}, {0}, {0, 0}, {0, 0}, 0, 0, {0, 0} } }; 8657: 8657: 8657: 8657: 8657: __cond(const __cond&); 8657: __cond& operator=(const __cond&); 8657: 8657: public: 8657: __cond() 8657: { 8657: 8657: 8657: 8657: 8657: } 8657: # 280 "/usr/include/c++/8/ext/concurrence.h" 3 8657: void broadcast() 8657: { 8657: 8657: if (__gthread_active_p()) 8657: { 8657: if (__gthread_cond_broadcast(&_M_cond) != 0) 8657: __throw_concurrence_broadcast_error(); 8657: } 8657: 8657: } 8657: 8657: void wait(__mutex *mutex) 8657: { 8657: 8657: { 8657: if (__gthread_cond_wait(&_M_cond, mutex->gthread_mutex()) != 0) 8657: __throw_concurrence_wait_error(); 8657: } 8657: 8657: } 8657: 8657: void wait_recursive(__recursive_mutex *mutex) 8657: { 8657: 8657: { 8657: if (__gthread_cond_wait_recursive(&_M_cond, 8657: mutex->gthread_recursive_mutex()) 8657: != 0) 8657: __throw_concurrence_wait_error(); 8657: } 8657: 8657: } 8657: }; 8657: 8657: 8657: 8657: } 8657: # 75 "/usr/include/c++/8/memory" 2 3 8657: 8657: 8657: 8657: 8657: 8657: # 1 "/usr/include/c++/8/bits/unique_ptr.h" 1 3 8657: # 41 "/usr/include/c++/8/bits/unique_ptr.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: #pragma GCC diagnostic push 8657: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8657: template class auto_ptr; 8657: #pragma GCC diagnostic pop 8657: 8657: 8657: 8657: template 8657: struct default_delete 8657: { 8657: 8657: constexpr default_delete() noexcept = default; 8657: 8657: 8657: 8657: 8657: 8657: 8657: template::value>::type> 8657: default_delete(const default_delete<_Up>&) noexcept { } 8657: 8657: 8657: void 8657: operator()(_Tp* __ptr) const 8657: { 8657: static_assert(!is_void<_Tp>::value, 8657: "can't delete pointer to incomplete type"); 8657: static_assert(sizeof(_Tp)>0, 8657: "can't delete pointer to incomplete type"); 8657: delete __ptr; 8657: } 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: struct default_delete<_Tp[]> 8657: { 8657: public: 8657: 8657: constexpr default_delete() noexcept = default; 8657: # 104 "/usr/include/c++/8/bits/unique_ptr.h" 3 8657: template::value>::type> 8657: default_delete(const default_delete<_Up[]>&) noexcept { } 8657: 8657: 8657: template 8657: typename enable_if::value>::type 8657: operator()(_Up* __ptr) const 8657: { 8657: static_assert(sizeof(_Tp)>0, 8657: "can't delete pointer to incomplete type"); 8657: delete [] __ptr; 8657: } 8657: }; 8657: 8657: template 8657: class __uniq_ptr_impl 8657: { 8657: template 8657: struct _Ptr 8657: { 8657: using type = _Up*; 8657: }; 8657: 8657: template 8657: struct 8657: _Ptr<_Up, _Ep, __void_t::type::pointer>> 8657: { 8657: using type = typename remove_reference<_Ep>::type::pointer; 8657: }; 8657: 8657: public: 8657: using _DeleterConstraint = enable_if< 8657: __and_<__not_>, 8657: is_default_constructible<_Dp>>::value>; 8657: 8657: using pointer = typename _Ptr<_Tp, _Dp>::type; 8657: 8657: __uniq_ptr_impl() = default; 8657: __uniq_ptr_impl(pointer __p) : _M_t() { _M_ptr() = __p; } 8657: 8657: template 8657: __uniq_ptr_impl(pointer __p, _Del&& __d) 8657: : _M_t(__p, std::forward<_Del>(__d)) { } 8657: 8657: pointer& _M_ptr() { return std::get<0>(_M_t); } 8657: pointer _M_ptr() const { return std::get<0>(_M_t); } 8657: _Dp& _M_deleter() { return std::get<1>(_M_t); } 8657: const _Dp& _M_deleter() const { return std::get<1>(_M_t); } 8657: 8657: private: 8657: tuple _M_t; 8657: }; 8657: 8657: 8657: template > 8657: class unique_ptr 8657: { 8657: template 8657: using _DeleterConstraint = 8657: typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type; 8657: 8657: __uniq_ptr_impl<_Tp, _Dp> _M_t; 8657: 8657: public: 8657: using pointer = typename __uniq_ptr_impl<_Tp, _Dp>::pointer; 8657: using element_type = _Tp; 8657: using deleter_type = _Dp; 8657: 8657: 8657: 8657: template 8657: using __safe_conversion_up = __and_< 8657: is_convertible::pointer, pointer>, 8657: __not_>, 8657: __or_<__and_, 8657: is_same>, 8657: __and_<__not_>, 8657: is_convertible<_Ep, deleter_type>> 8657: > 8657: >; 8657: 8657: 8657: 8657: 8657: template > 8657: constexpr unique_ptr() noexcept 8657: : _M_t() 8657: { } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template > 8657: explicit 8657: unique_ptr(pointer __p) noexcept 8657: : _M_t(__p) 8657: { } 8657: # 215 "/usr/include/c++/8/bits/unique_ptr.h" 3 8657: unique_ptr(pointer __p, 8657: typename conditional::value, 8657: deleter_type, const deleter_type&>::type __d) noexcept 8657: : _M_t(__p, __d) { } 8657: # 227 "/usr/include/c++/8/bits/unique_ptr.h" 3 8657: unique_ptr(pointer __p, 8657: typename remove_reference::type&& __d) noexcept 8657: : _M_t(std::move(__p), std::move(__d)) 8657: { static_assert(!std::is_reference::value, 8657: "rvalue deleter bound to reference"); } 8657: 8657: 8657: template > 8657: constexpr unique_ptr(nullptr_t) noexcept : unique_ptr() { } 8657: 8657: 8657: 8657: 8657: unique_ptr(unique_ptr&& __u) noexcept 8657: : _M_t(__u.release(), std::forward(__u.get_deleter())) { } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template, 8657: typename conditional::value, 8657: is_same<_Ep, _Dp>, 8657: is_convertible<_Ep, _Dp>>::type>> 8657: unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept 8657: : _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter())) 8657: { } 8657: 8657: 8657: #pragma GCC diagnostic push 8657: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8657: 8657: template, is_same<_Dp, default_delete<_Tp>>>> 8657: unique_ptr(auto_ptr<_Up>&& __u) noexcept; 8657: #pragma GCC diagnostic pop 8657: 8657: 8657: 8657: ~unique_ptr() noexcept 8657: { 8657: auto& __ptr = _M_t._M_ptr(); 8657: if (__ptr != nullptr) 8657: get_deleter()(__ptr); 8657: __ptr = pointer(); 8657: } 8657: # 286 "/usr/include/c++/8/bits/unique_ptr.h" 3 8657: unique_ptr& 8657: operator=(unique_ptr&& __u) noexcept 8657: { 8657: reset(__u.release()); 8657: get_deleter() = std::forward(__u.get_deleter()); 8657: return *this; 8657: } 8657: # 301 "/usr/include/c++/8/bits/unique_ptr.h" 3 8657: template 8657: typename enable_if< __and_< 8657: __safe_conversion_up<_Up, _Ep>, 8657: is_assignable 8657: >::value, 8657: unique_ptr&>::type 8657: operator=(unique_ptr<_Up, _Ep>&& __u) noexcept 8657: { 8657: reset(__u.release()); 8657: get_deleter() = std::forward<_Ep>(__u.get_deleter()); 8657: return *this; 8657: } 8657: 8657: 8657: unique_ptr& 8657: operator=(nullptr_t) noexcept 8657: { 8657: reset(); 8657: return *this; 8657: } 8657: 8657: 8657: 8657: 8657: typename add_lvalue_reference::type 8657: operator*make -f templates/tests/CMakeFiles/testbuiltins_exec.dir/build.make templates/tests/CMakeFiles/testbuiltins_exec.dir/depend () const 8657: { 8657: ; 8657: return *get(); 8657: } 8657: 8657: 8657: pointer 8657: operator->() const noexcept 8657: { 8657: ; 8657: return get(); 8657: } 8657: 8657: 8657: pointer 8657: get() const noexcept 8657: { return _M_t._M_ptr(); } 8657: 8657: 8657: deleter_type& 8657: get_deleter() noexcept 8657: { return _M_t._M_deleter(); } 8657: 8657: 8657: const deleter_type& 8657: get_deleter() const noexcept 8657: { return _M_t._M_deleter(); } 8657: 8657: 8657: explicit operator bool() const noexcept 8657: { return get() == pointer() ? false : true; } 8657: 8657: 8657: 8657: 8657: pointer 8657: release() noexcept 8657: { 8657: pointer __p = get(); 8657: _M_t._M_ptr() = pointer(); 8657: return __p; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: void 8657: reset(pointer __p = pointer()) noexcept 8657: { 8657: using std::swap; 8657: swap(_M_t._M_ptr(), __p); 8657: if (__p != pointer()) 8657: get_deleter()(__p); 8657: } 8657: 8657: 8657: void 8657: swap(unique_ptr& __u) noexcept 8657: { 8657: using std::swap; 8657: swap(_M_t, __u._M_t); 8657: } 8657: 8657: 8657: unique_ptr(const unique_ptr&) = delete; 8657: unique_ptr& operator=(const unique_ptr&) = delete; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: template 8657: class unique_ptr<_Tp[], _Dp> 8657: { 8657: template 8657: using _DeleterConstraint = 8657: typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type; 8657: 8657: __uniq_ptr_impl<_Tp, _Dp> _M_t; 8657: 8657: template 8657: using __remove_cv = typename remove_cv<_Up>::type; 8657: 8657: 8657: template 8657: using __is_derived_Tp 8657: = __and_< is_base_of<_Tp, _Up>, 8657: __not_, __remove_cv<_Up>>> >; 8657: 8657: public: 8657: using pointer = typename __uniq_ptr_impl<_Tp, _Dp>::pointer; 8657: using element_type = _Tp; 8657: using deleter_type = _Dp; 8657: 8657: 8657: 8657: template, 8657: typename _Up_element_type = typename _Up_up::element_type> 8657: using __safe_conversion_up = __and_< 8657: is_array<_Up>, 8657: is_same, 8657: is_same, 8657: is_convertible<_Up_element_type(*)[], element_type(*)[]>, 8657: __or_<__and_, is_same>, 8657: __and_<__not_>, 8657: is_convertible<_Ep, deleter_type>>> 8657: >; 8657: 8657: 8657: template 8657: using __safe_conversion_raw = __and_< 8657: __or_<__or_, 8657: is_same<_Up, nullptr_t>>, 8657: __and_, 8657: is_same, 8657: is_convertible< 8657: typename remove_pointer<_Up>::type(*)[], 8657: element_type(*)[]> 8657: > 8657: > 8657: >; 8657: 8657: 8657: 8657: 8657: template > 8657: constexpr unique_ptr() noexcept 8657: : _M_t() 8657: { } 8657: # 470 "/usr/include/c++/8/bits/unique_ptr.h" 3 8657: template, 8657: typename = typename enable_if< 8657: __safe_conversion_raw<_Up>::value, bool>::type> 8657: explicit 8657: unique_ptr(_Up __p) noexcept 8657: : _M_t(__p) 8657: { } 8657: # 488 "/usr/include/c++/8/bits/unique_ptr.h" 3 8657: template>/obj-arm-linux-gnueabihf' cd /<>/obj-arm-linux-gnueabihf && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-arm-linux-gnueabihf /<>/obj-arm-linux-gnueabihf/templates/tests /<>/obj-arm-linux-gnueabihf/templates/tests/CMakeFiles/testbuiltins_exec.dir/DependInfo.cmake --color= _Up, 8657: typename = typename enable_if< 8657: __safe_conversion_raw<_Up>::value, bool>::type> 8657: unique_ptr(_Up __p, 8657: typename conditional::value, 8657: deleter_type, const deleter_type&>::type __d) noexcept 8657: : _M_t(__p, __d) { } 8657: # 504 "/usr/include/c++/8/bits/unique_ptr.h" 3 8657: template::value, bool>::type> 8657: unique_ptr(_Up __p, typename 8657: remove_reference::type&& __d) noexcept 8657: : _M_t(std::move(__p), std::move(__d)) 8657: { static_assert(!is_reference::value, 8657: "rvalue deleter bound to reference"); } 8657: 8657: 8657: unique_ptr(unique_ptr&& __u) noexcept 8657: : _M_t(__u.release(), std::forward(__u.get_deleter())) { } 8657: 8657: 8657: template > 8657: constexpr unique_ptr(nullptr_t) noexcept : unique_ptr() { } 8657: 8657: template>> 8657: unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept 8657: : _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter())) 8657: { } 8657: 8657: 8657: ~unique_ptr() 8657: { 8657: auto& __ptr = _M_t._M_ptr(); 8657: if (__ptr != nullptr) 8657: get_deleter()(__ptr); 8657: __ptr = pointer(); 8657: } 8657: # 545 "/usr/include/c++/8/bits/unique_ptr.h" 3 8657: unique_ptr& 8657: operator=(unique_ptr&& __u) noexcept 8657: { 8657: reset(__u.release()); 8657: get_deleter() = std::forward(__u.get_deleter()); 8657: return *this; 8657: } 8657: # 560 "/usr/include/c++/8/bits/unique_ptr.h" 3 8657: template 8657: typename 8657: enable_if<__and_<__safe_conversion_up<_Up, _Ep>, 8657: is_assignable 8657: >::value, 8657: unique_ptr&>::type 8657: operator=(unique_ptr<_Up, _Ep>&& __u) noexcept 8657: { 8657: reset(__u.release()); 8657: get_deleter() = std::forward<_Ep>(__u.get_deleter()); 8657: return *this; 8657: } 8657: 8657: 8657: unique_ptr& 8657: operator=(nullptr_t) noexcept 8657: { 8657: reset(); 8657: return *this; 8657: } 8657: 8657: 8657: 8657: 8657: typename std::add_lvalue_reference::type 8657: operator[](size_t __i) const 8657: { 8657: ; 8657: return get()[__i]; 8657: } 8657: 8657: 8657: pointer 8657: get() const noexcept 8657: { return _M_t._M_ptr(); } 8657: 8657: 8657: deleter_type& 8657: get_deleter() noexcept 8657: { return _M_t._M_deleter(); } 8657: 8657: 8657: const deleter_type& 8657: get_deleter() const noexcept 8657: { return _M_t._M_deleter(); } 8657: 8657: 8657: explicit operator bool() const noexcept 8657: { return get() == pointer() ? false : true; } 8657: 8657: 8657: 8657: 8657: pointer 8657: release() noexcept 8657: { 8657: pointer __p = get(); 8657: _M_t._M_ptr() = pointer(); 8657: return __p; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template , 8657: __and_, 8657: is_pointer<_Up>, 8657: is_convertible< 8657: typename remove_pointer<_Up>::type(*)[], 8657: element_type(*)[] 8657: > 8657: > 8657: > 8657: >> 8657: void 8657: reset(_Up __p) noexcept 8657: { 8657: pointer __ptr = __p; 8657: using std::swap; 8657: swap(_M_t._M_ptr(), __ptr); 8657: if (__ptr != nullptr) 8657: get_deleter()(__ptr); 8657: } 8657: 8657: void reset(nullptr_t = nullptr) noexcept 8657: { 8657: reset(pointer()); 8657: } 8657: 8657: 8657: void 8657: swap(unique_ptr& __u) noexcept 8657: { 8657: using std::swap; 8657: swap(_M_t, __u._M_t); 8657: } 8657: 8657: 8657: unique_ptr(const unique_ptr&) = delete; 8657: unique_ptr& operator=(const unique_ptr&) = delete; 8657: }; 8657: 8657: template 8657: inline 8657: 8657: 8657: typename enable_if<__is_swappable<_Dp>::value>::type 8657: 8657: 8657: 8657: swap(unique_ptr<_Tp, _Dp>& __x, 8657: unique_ptr<_Tp, _Dp>& __y) noexcept 8657: { __x.swap(__y); } 8657: 8657: 8657: template 8657: typename enable_if::value>::type 8657: swap(unique_ptr<_Tp, _Dp>&, 8657: unique_ptr<_Tp, _Dp>&) = delete; 8657: 8657: 8657: template 8657: inline bool 8657: operator==(const unique_ptr<_Tp, _Dp>& __x, 8657: const unique_ptr<_Up, _Ep>& __y) 8657: { return __x.get() == __y.get(); } 8657: 8657: template 8657: inline bool 8657: operator==(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept 8657: { return !__x; } 8657: 8657: template 8657: inline bool 8657: operator==(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept 8657: { return !__x; } 8657: 8657: template 8657: inline bool 8657: operator!=(const unique_ptr<_Tp, _Dp>& __x, 8657: const unique_ptr<_Up, _Ep>& __y) 8657: { return __x.get() != __y.get(); } 8657: 8657: template 8657: inline bool 8657: operator!=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept 8657: { return (bool)__x; } 8657: 8657: template 8657: inline bool 8657: operator!=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept 8657: { return (bool)__x; } 8657: 8657: template 8657: inline bool 8657: operator<(const unique_ptr<_Tp, _Dp>& __x, 8657: const unique_ptr<_Up, _Ep>& __y) 8657: { 8657: typedef typename 8657: std::common_type::pointer, 8657: typename unique_ptr<_Up, _Ep>::pointer>::type _CT; 8657: return std::less<_CT>()(__x.get(), __y.get()); 8657: } 8657: 8657: template 8657: inline bool 8657: operator<(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 8657: { return std::less::pointer>()(__x.get(), 8657: nullptr); } 8657: 8657: template 8657: inline bool 8657: operator<(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 8657: { return std::less::pointer>()(nullptr, 8657: __x.get()); } 8657: 8657: template 8657: inline bool 8657: operator<=(const unique_ptr<_Tp, _Dp>& __x, 8657: const unique_ptr<_Up, _Ep>& __y) 8657: { return !(__y < __x); } 8657: 8657: template 8657: inline bool 8657: operator<=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 8657: { return !(nullptr < __x); } 8657: 8657: template 8657: inline bool 8657: operator<=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 8657: { return !(__x < nullptr); } 8657: 8657: template 8657: inline bool 8657: operator>(const unique_ptr<_Tp, _Dp>& __x, 8657: const unique_ptr<_Up, _Ep>& __y) 8657: { return (__y < __x); } 8657: 8657: template 8657: inline bool 8657: operator>(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 8657: { return std::less::pointer>()(nullptr, 8657: __x.get()); } 8657: 8657: template 8657: inline bool 8657: operator>(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 8657: { return std::less::pointer>()(__x.get(), 8657: nullptr); } 8657: 8657: template 8657: inline bool 8657: operator>=(const unique_ptr<_Tp, _Dp>& __x, 8657: const unique_ptr<_Up, _Ep>& __y) 8657: { return !(__x < __y); } 8657: 8657: template 8657: inline bool 8657: operator>=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 8657: { return !(__x < nullptr); } 8657: 8657: template 8657: inline bool 8657: operator>=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 8657: { return !(nullptr < __x); } 8657: 8657: 8657: template 8657: struct hash> 8657: : public __hash_base>, 8657: private __poison_hash::pointer> 8657: { 8657: size_t 8657: operator()(const unique_ptr<_Tp, _Dp>& __u) const noexcept 8657: { 8657: typedef unique_ptr<_Tp, _Dp> _UP; 8657: return std::hash()(__u.get()); 8657: } 8657: }; 8657: # 847 "/usr/include/c++/8/bits/unique_ptr.h" 3 8657: 8657: } 8657: # 81 "/usr/include/c++/8/memory" 2 3 8657: # 1 "/usr/include/c++/8/bits/shared_ptr.h" 1 3 8657: # 52 "/usr/include/c++/8/bits/shared_ptr.h" 3 8657: # 1 "/usr/include/c++/8/bits/shared_ptr_base.h" 1 3 8657: # 60 "/usr/include/c++/8/bits/shared_ptr_base.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: #pragma GCC diagnostic push 8657: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8657: template class auto_ptr; 8657: #pragma GCC diagnostic pop 8657: 8657: 8657: 8657: 8657: 8657: 8657: class bad_weak_ptr : public std::exception 8657: { 8657: public: 8657: virtual char const* what() const noexcept; 8657: 8657: virtual ~bad_weak_ptr() noexcept; 8657: }; 8657: 8657: 8657: inline void 8657: __throw_bad_weak_ptr() 8657: { (throw (bad_weak_ptr())); } 8657: 8657: using __gnu_cxx::_Lock_policy; 8657: using __gnu_cxx::__default_lock_policy; 8657: using __gnu_cxx::_S_single; 8657: using __gnu_cxx::_S_mutex; 8657: using __gnu_cxx::_S_atomic; 8657: 8657: 8657: template<_Lock_policy _Lp> 8657: class _Mutex_base 8657: { 8657: protected: 8657: 8657: enum { _S_need_barriers = 0 }; 8657: }; 8657: 8657: template<> 8657: class _Mutex_base<_S_mutex> 8657: : public __gnu_cxx::__mutex 8657: { 8657: protected: 8657: 8657: 8657: 8657: enum { _S_need_barriers = 1 }; 8657: }; 8657: 8657: template<_Lock_policy _Lp = __default_lock_policy> 8657: class _Sp_counted_base 8657: : public _Mutex_base<_Lp> 8657: { 8657: public: 8657: _Sp_counted_base() noexcept 8657: : _M_use_count(1), _M_weak_count(1) { } 8657: 8657: virtual 8657: ~_Sp_counted_base() noexcept 8657: { } 8657: 8657: 8657: 8657: virtual void 8657: _M_dispose() noexcept = 0; 8657: 8657: 8657: virtual void 8657: _M_destroy() noexcept 8657: { delete this; } 8657: 8657: virtual void* 8657: _M_get_deleter(const std::type_info&) noexcept = 0; 8657: 8657: void 8657: _M_add_ref_copy() 8657: { __gnu_cxx::__atomic_add_dispatch(&_M_use_count, 1); } 8657: 8657: void 8657: _M_add_ref_lock(); 8657: 8657: bool 8657: _M_add_ref_lock_nothrow(); 8657: 8657: void 8657: _M_release() noexcept 8657: { 8657: 8657: ; 8657: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, -1) == 1) 8657: { 8657: ; 8657: _M_dispose(); 8657: 8657: 8657: 8657: 8657: if (_Mutex_base<_Lp>::_S_need_barriers) 8657: { 8657: __atomic_thread_fence (4); 8657: } 8657: 8657: 8657: ; 8657: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, 8657: -1) == 1) 8657: { 8657: ; 8657: _M_destroy(); 8657: } 8657: } 8657: } 8657: 8657: void 8657: _M_weak_add_ref() noexcept 8657: { __gnu_cxx::__atomic_add_dispatch(&_M_weak_count, 1); } 8657: 8657: void 8657: _M_weak_release() noexcept 8657: { 8657: 8657: ; 8657: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, -1) == 1) 8657: { 8657: ; 8657: if (_Mutex_base<_Lp>::_S_need_barriers) 8657: { 8657: 8657: 8657: __atomic_thread_fence (4); 8657: } 8657: _M_destroy(); 8657: } 8657: } 8657: 8657: long 8657: _M_get_use_count() const noexcept 8657: { 8657: 8657: 8657: return __atomic_load_n(&_M_use_count, 0); 8657: } 8657: 8657: private: 8657: _Sp_counted_base(_Sp_counted_base const&) = delete; 8657: _Sp_counted_base& operator=(_Sp_counted_base const&) = delete; 8657: 8657: _Atomic_word _M_use_count; 8657: _Atomic_word _M_weak_count; 8657: }; 8657: 8657: template<> 8657: inline void 8657: _Sp_counted_base<_S_single>:: 8657: _M_add_ref_lock() 8657: { 8657: if (_M_use_count == 0) 8657: __throw_bad_weak_ptr(); 8657: ++_M_use_count; 8657: } 8657: 8657: template<> 8657: inline void 8657: _Sp_counted_base<_S_mutex>:: 8657: _M_add_ref_lock() 8657: { 8657: __gnu_cxx::__scoped_lock sentry(*this); 8657: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0) 8657: { 8657: _M_use_count = 0; 8657: __throw_bad_weak_ptr(); 8657: } 8657: } 8657: 8657: template<> 8657: inline void 8657: _Sp_counted_base<_S_atomic>:: 8657: _M_add_ref_lock() 8657: { 8657: 8657: _Atomic_word __count = _M_get_use_count(); 8657: do 8657: { 8657: if (__count == 0) 8657: __throw_bad_weak_ptr(); 8657: 8657: 8657: } 8657: while (!__atomic_compare_exchange_n(&_M_use_count, &__count, __count + 1, 8657: true, 4, 8657: 0)); 8657: } 8657: 8657: template<> 8657: inline bool 8657: _Sp_counted_base<_S_single>:: 8657: _M_add_ref_lock_nothrow() 8657: { 8657: if (_M_use_count == 0) 8657: return false; 8657: ++_M_use_count; 8657: return true; 8657: } 8657: 8657: template<> 8657: inline bool 8657: _Sp_counted_base<_S_mutex>:: 8657: _M_add_ref_lock_nothrow() 8657: { 8657: __gnu_cxx::__scoped_lock sentry(*this); 8657: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0) 8657: { 8657: _M_use_count = 0; 8657: return false; 8657: } 8657: return true; 8657: } 8657: 8657: template<> 8657: inline bool 8657: _Sp_counted_base<_S_atomic>:: 8657: _M_add_ref_lock_nothrow() 8657: { 8657: 8657: _Atomic_word __count = _M_get_use_count(); 8657: do 8657: { 8657: if (__count == 0) 8657: return false; 8657: 8657: 8657: } 8657: while (!__atomic_compare_exchange_n(&_M_use_count, &__count, __count + 1, 8657: true, 4, 8657: 0)); 8657: return true; 8657: } 8657: 8657: template<> 8657: inline void 8657: _Sp_counted_base<_S_single>::_M_add_ref_copy() 8657: { ++_M_use_count; } 8657: 8657: template<> 8657: inline void 8657: _Sp_counted_base<_S_single>::_M_release() noexcept 8657: { 8657: if (--_M_use_count == 0) 8657: { 8657: _M_dispose(); 8657: if (--_M_weak_count == 0) 8657: _M_destroy(); 8657: } 8657: } 8657: 8657: template<> 8657: inline void 8657: _Sp_counted_base<_S_single>::_M_weak_add_ref() noexcept 8657: { ++_M_weak_count; } 8657: 8657: template<> 8657: inline void 8657: _Sp_counted_base<_S_single>::_M_weak_release() noexcept 8657: { 8657: if (--_M_weak_count == 0) 8657: _M_destroy(); 8657: } 8657: 8657: template<> 8657: inline long 8657: _Sp_counted_base<_S_single>::_M_get_use_count() const noexcept 8657: { return _M_use_count; } 8657: 8657: 8657: 8657: template 8657: class __shared_ptr; 8657: 8657: template 8657: class __weak_ptr; 8657: 8657: template 8657: class __enable_shared_from_this; 8657: 8657: template 8657: class shared_ptr; 8657: 8657: template 8657: class weak_ptr; 8657: 8657: template 8657: struct owner_less; 8657: 8657: template 8657: class enable_shared_from_this; 8657: 8657: template<_Lock_policy _Lp = __default_lock_policy> 8657: class __weak_count; 8657: 8657: template<_Lock_policy _Lp = __default_lock_policy> 8657: class __shared_count; 8657: 8657: 8657: 8657: template 8657: class _Sp_counted_ptr final : public _Sp_counted_base<_Lp> 8657: { 8657: public: 8657: explicit 8657: _Sp_counted_ptr(_Ptr __p) noexcept 8657: : _M_ptr(__p) { } 8657: 8657: virtual void 8657: _M_dispose() noexcept 8657: { delete _M_ptr; } 8657: 8657: virtual void 8657: _M_destroy() noexcept 8657: { delete this; } 8657: 8657: virtual void* 8657: _M_get_deleter(const std::type_info&) noexcept 8657: { return nullptr; } 8657: 8657: _Sp_counted_ptr(const _Sp_counted_ptr&) = delete; 8657: _Sp_counted_ptr& operator=(const _Sp_counted_ptr&) = delete; 8657: 8657: private: 8657: _Ptr _M_ptr; 8657: }; 8657: 8657: template<> 8657: inline void 8657: _Sp_counted_ptr::_M_dispose() noexcept { } 8657: 8657: template<> 8657: inline void 8657: _Sp_counted_ptr::_M_dispose() noexcept { } 8657: 8657: template<> 8657: inline void 8657: _Sp_counted_ptr::_M_dispose() noexcept { } 8657: 8657: template 8657: struct _Sp_ebo_helper; 8657: 8657: 8657: template 8657: struct _Sp_ebo_helper<_Nm, _Tp, true> : private _Tp 8657: { 8657: explicit _Sp_ebo_helper(const _Tp& __tp) : _Tp(__tp) { } 8657: explicit _Sp_ebo_helper(_Tp&& __tp) : _Tp(std::move(__tp)) { } 8657: 8657: static _Tp& 8657: _S_get(_Sp_ebo_helper& __eboh) { return static_cast<_Tp&>(__eboh); } 8657: }; 8657: 8657: 8657: template 8657: struct _Sp_ebo_helper<_Nm, _Tp, false> 8657: { 8657: explicit _Sp_ebo_helper(const _Tp& __tp) : _M_tp(__tp) { } 8657: explicit _Sp_ebo_helper(_Tp&& __tp) : _M_tp(std::move(__tp)) { } 8657: 8657: static _Tp& 8657: _S_get(_Sp_ebo_helper& __eboh) 8657: { return __eboh._M_tp; } 8657: 8657: private: 8657: _Tp _M_tp; 8657: }; 8657: 8657: 8657: template 8657: class _Sp_counted_deleter final : public _Sp_counted_base<_Lp> 8657: { 8657: class _Impl : _Sp_ebo_helper<0, _Deleter>, _Sp_ebo_helper<1, _Alloc> 8657: { 8657: typedef _Sp_ebo_helper<0, _Deleter> _Del_base; 8657: typedef _Sp_ebo_helper<1, _Alloc> _Alloc_base; 8657: 8657: public: 8657: _Impl(_Ptr __p, _Deleter __d, const _Alloc& __a) noexcept 8657: : _M_ptr(__p), _Del_base(std::move(__d)), _Alloc_base(__a) 8657: { } 8657: 8657: _Deleter& _M_del() noexcept { return _Del_base::_S_get(*this); } 8657: _Alloc& _M_alloc() noexcept { return _Alloc_base::_S_get(*this); } 8657: 8657: _Ptr _M_ptr; 8657: }; 8657: 8657: public: 8657: using __allocator_type = __alloc_rebind<_Alloc, _Sp_counted_deleter>; 8657: 8657: 8657: _Sp_counted_deleter(_Ptr __p, _Deleter __d) noexcept 8657: : _M_impl(__p, std::move(__d), _Alloc()) { } 8657: 8657: 8657: _Sp_counted_deleter(_Ptr __p, _Deleter __d, const _Alloc& __a) noexcept 8657: : _M_impl(__p, std::move(__d), __a) { } 8657: 8657: ~_Sp_counted_deleter() noexcept { } 8657: 8657: virtual void 8657: _M_dispose() noexcept 8657: { _M_impl._M_del()(_M_impl._M_ptr); } 8657: 8657: virtual void 8657: _M_destroy() noexcept 8657: { 8657: __allocator_type __a(_M_impl._M_alloc()); 8657: __allocated_ptr<__allocator_type> __guard_ptr{ __a, this }; 8657: this->~_Sp_counted_deleter(); 8657: } 8657: 8657: virtual void* 8657: _M_get_deleter(const std::type_info& __ti) noexcept 8657: { 8657: 8657: 8657: 8657: return __ti == typeid(_Deleter) 8657: ? std::__addressof(_M_impl._M_del()) 8657: : nullptr; 8657: 8657: 8657: 8657: } 8657: 8657: private: 8657: _Impl _M_impl; 8657: }; 8657: 8657: 8657: 8657: struct _Sp_make_shared_tag 8657: { 8657: # 523 "/usr/include/c++/8/bits/shared_ptr_base.h" 3 8657: }; 8657: 8657: template 8657: class _Sp_counted_ptr_inplace final : public _Sp_counted_base<_Lp> 8657: { 8657: class _Impl : _Sp_ebo_helper<0, _Alloc> 8657: { 8657: typedef _Sp_ebo_helper<0, _Alloc> _A_base; 8657: 8657: public: 8657: explicit _Impl(_Alloc __a) noexcept : _A_base(__a) { } 8657: 8657: _Alloc& _M_alloc() noexcept { return _A_base::_S_get(*this); } 8657: 8657: __gnu_cxx::__aligned_buffer<_Tp> _M_storage; 8657: }; 8657: 8657: public: 8657: using __allocator_type = __alloc_rebind<_Alloc, _Sp_counted_ptr_inplace>; 8657: 8657: template 8657: _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args) 8657: : _M_impl(__a) 8657: { 8657: 8657: 8657: allocator_traits<_Alloc>::construct(__a, _M_ptr(), 8657: std::forward<_Args>(__args)...); 8657: } 8657: 8657: ~_Sp_counted_ptr_inplace() noexcept { } 8657: 8657: virtual void 8657: _M_dispose() noexcept 8657: { 8657: allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr()); 8657: } 8657: 8657: 8657: virtual void 8657: _M_destroy() noexcept 8657: { 8657: __allocator_type __a(_M_impl._M_alloc()); 8657: __allocated_ptr<__allocator_type> __guard_ptr{ __a, this }; 8657: this->~_Sp_counted_ptr_inplace(); 8657: } 8657: 8657: 8657: virtual void* 8657: _M_get_deleter(const std::type_info& __ti) noexcept 8657: { 8657: 8657: if (__ti == typeid(_Sp_make_shared_tag)) 8657: 8657: 8657: 8657: return const_cast::type*>(_M_ptr()); 8657: return nullptr; 8657: } 8657: 8657: private: 8657: _Tp* _M_ptr() noexcept { return _M_impl._M_storage._M_ptr(); } 8657: 8657: _Impl _M_impl; 8657: }; 8657: 8657: 8657: struct __sp_array_delete 8657: { 8657: template 8657: void operator()(_Yp* __p) const { delete[] __p; } 8657: }; 8657: 8657: template<_Lock_policy _Lp> 8657: class __shared_count 8657: { 8657: public: 8657: constexpr __shared_count() noexcept : _M_pi(0) 8657: { } 8657: 8657: template 8657: explicit 8657: __shared_count(_Ptr __p) : _M_pi(0) 8657: { 8657: try 8657: { 8657: _M_pi = new _Sp_counted_ptr<_Ptr, _Lp>(__p); 8657: } 8657: catch(...) 8657: { 8657: delete __p; 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: __shared_count(_Ptr __p, false_type) 8657: : __shared_count(__p) 8657: { } 8657: 8657: template 8657: __shared_count(_Ptr __p, true_type) 8657: : __shared_count(__p, __sp_array_delete{}, allocator()) 8657: { } 8657: 8657: template 8657: __shared_count(_Ptr __p, _Deleter __d) 8657: : __shared_count(__p, std::move(__d), allocator()) 8657: { } 8657: 8657: template 8657: __shared_count(_Ptr __p, _Deleter __d, _Alloc __a) : _M_pi(0) 8657: { 8657: typedef _Sp_counted_deleter<_Ptr, _Deleter, _Alloc, _Lp> _Sp_cd_type; 8657: try 8657: { 8657: typename _Sp_cd_type::__allocator_type __a2(__a); 8657: auto __guard = std::__allocate_guarded(__a2); 8657: _Sp_cd_type* __mem = __guard.get(); 8657: ::new (__mem) _Sp_cd_type(__p, std::move(__d), std::move(__a)); 8657: _M_pi = __mem; 8657: __guard = nullptr; 8657: } 8657: catch(...) 8657: { 8657: __d(__p); 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: __shared_count(_Sp_make_shared_tag, _Tp*, const _Alloc& __a, 8657: _Args&&... __args) 8657: : _M_pi(0) 8657: { 8657: typedef _Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp> _Sp_cp_type; 8657: typename _Sp_cp_type::__allocator_type __a2(__a); 8657: auto __guard = std::__allocate_guarded(__a2); 8657: _Sp_cp_type* __mem = __guard.get(); 8657: ::new (__mem) _Sp_cp_type(std::move(__a), 8657: std::forward<_Args>(__args)...); 8657: _M_pi = __mem; 8657: __guard = nullptr; 8657: } 8657: 8657: 8657: #pragma GCC diagnostic push 8657: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8657: 8657: template 8657: explicit 8657: __shared_count(std::auto_ptr<_Tp>&& __r); 8657: #pragma GCC diagnostic pop 8657: 8657: 8657: 8657: template 8657: explicit 8657: __shared_count(std::unique_ptr<_Tp, _Del>&& __r) : _M_pi(0) 8657: { 8657: 8657: 8657: if (__r.get() == nullptr) 8657: return; 8657: 8657: using _Ptr = typename unique_ptr<_Tp, _Del>::pointer; 8657: using _Del2 = typename conditional::value, 8657: reference_wrapper::type>, 8657: _Del>::type; 8657: using _Sp_cd_type 8657: = _Sp_counted_deleter<_Ptr, _Del2, allocator, _Lp>; 8657: using _Alloc = allocator<_Sp_cd_type>; 8657: using _Alloc_traits = allocator_traits<_Alloc>; 8657: _Alloc __a; 8657: _Sp_cd_type* __mem = _Alloc_traits::allocate(__a, 1); 8657: _Alloc_traits::construct(__a, __mem, __r.release(), 8657: __r.get_deleter()); 8657: _M_pi = __mem; 8657: } 8657: 8657: 8657: explicit __shared_count(const __weak_count<_Lp>& __r); 8657: 8657: 8657: explicit __shared_count(const __weak_count<_Lp>& __r, std::nothrow_t); 8657: 8657: ~__shared_count() noexcept 8657: { 8657: if (_M_pi != nullptr) 8657: _M_pi->_M_release(); 8657: } 8657: 8657: __shared_count(const __shared_count& __r) noexcept 8657: : _M_pi(__r._M_pi) 8657: { 8657: if (_M_pi != 0) 8657: _M_pi->_M_add_ref_copy(); 8657: } 8657: 8657: __shared_count& 8657: operator=(const __shared_count& __r) noexcept 8657: { 8657: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8657: if (__tmp != _M_pi) 8657: { 8657: if (__tmp != 0) 8657: __tmp->_M_add_ref_copy(); 8657: if (_M_pi != 0) 8657: _M_pi->_M_release(); 8657: _M_pi = __tmp; 8657: } 8657: return *this; 8657: } 8657: 8657: void 8657: _M_swap(__shared_count& __r) noexcept 8657: { 8657: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8657: __r._M_pi = _M_pi; 8657: _M_pi = __tmp; 8657: } 8657: 8657: long 8657: _M_get_use_count() const noexcept 8657: { return _M_pi != 0 ? _M_pi->_M_get_use_count() : 0; } 8657: 8657: bool 8657: _M_unique() const noexcept 8657: { return this->_M_get_use_count() == 1; } 8657: 8657: void* 8657: _M_get_deleter(const std::type_info& __ti) const noexcept 8657: { return _M_pi ? _M_pi->_M_get_deleter(__ti) : nullptr; } 8657: 8657: bool 8657: _M_less(const __shared_count& __rhs) const noexcept 8657: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 8657: 8657: bool 8657: _M_less(const __weak_count<_Lp>& __rhs) const noexcept 8657: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 8657: 8657: 8657: friend inline bool 8657: operator==(const __shared_count& __a, const __shared_count& __b) noexcept 8657: { return __a._M_pi == __b._M_pi; } 8657: 8657: private: 8657: friend class __weak_count<_Lp>; 8657: 8657: _Sp_counted_base<_Lp>* _M_pi; 8657: }; 8657: 8657: 8657: template<_Lock_policy _Lp> 8657: class __weak_count 8657: { 8657: public: 8657: constexpr __weak_count() noexcept : _M_pi(nullptr) 8657: { } 8657: 8657: __weak_count(const __shared_count<_Lp>& __r) noexcept 8657: : _M_pi(__r._M_pi) 8657: { 8657: if (_M_pi != nullptr) 8657: _M_pi->_M_weak_add_ref(); 8657: } 8657: 8657: __weak_count(const __weak_count& __r) noexcept 8657: : _M_pi(__r._M_pi) 8657: { 8657: if (_M_pi != nullptr) 8657: _M_pi->_M_weak_add_ref(); 8657: } 8657: 8657: __weak_count(__weak_count&& __r) noexcept 8657: : _M_pi(__r._M_pi) 8657: { __r._M_pi = nullptr; } 8657: 8657: ~__weak_count() noexcept 8657: { 8657: if (_M_pi != nullptr) 8657: _M_pi->_M_weak_release(); 8657: } 8657: 8657: __weak_count& 8657: operator=(const __shared_count<_Lp>& __r) noexcept 8657: { 8657: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8657: if (__tmp != nullptr) 8657: __tmp->_M_weak_add_ref(); 8657: if (_M_pi != nullptr) 8657: _M_pi->_M_weak_release(); 8657: _M_pi = __tmp; 8657: return *this; 8657: } 8657: 8657: __weak_count& 8657: operator=(const __weak_count& __r) noexcept 8657: { 8657: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8657: if (__tmp != nullptr) 8657: __tmp->_M_weak_add_ref(); 8657: if (_M_pi != nullptr) 8657: _M_pi->_M_weak_release(); 8657: _M_pi = __tmp; 8657: return *this; 8657: } 8657: 8657: __weak_count& 8657: operator=(__weak_count&& __r) noexcept 8657: { 8657: if (_M_pi != nullptr) 8657: _M_pi->_M_weak_release(); 8657: _M_pi = __r._M_pi; 8657: __r._M_pi = nullptr; 8657: return *this; 8657: } 8657: 8657: void 8657: _M_swap(__weak_count& __r) noexcept 8657: { 8657: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8657: __r._M_pi = _M_pi; 8657: _M_pi = __tmp; 8657: } 8657: 8657: long 8657: _M_get_use_count() const noexcept 8657: { return _M_pi != nullptr ? _M_pi->_M_get_use_count() : 0; } 8657: 8657: bool 8657: _M_less(const __weak_count& __rhs) const noexcept 8657: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 8657: 8657: bool 8657: _M_less(const __shared_count<_Lp>& __rhs) const noexcept 8657: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 8657: 8657: 8657: friend inline bool 8657: operator==(const __weak_count& __a, const __weak_count& __b) noexcept 8657: { return __a._M_pi == __b._M_pi; } 8657: 8657: private: 8657: friend class __shared_count<_Lp>; 8657: 8657: _Sp_counted_base<_Lp>* _M_pi; 8657: }; 8657: 8657: 8657: template<_Lock_policy _Lp> 8657: inline 8657: __shared_count<_Lp>::__shared_count(const __weak_count<_Lp>& __r) 8657: : _M_pi(__r._M_pi) 8657: { 8657: if (_M_pi != nullptr) 8657: _M_pi->_M_add_ref_lock(); 8657: else 8657: __throw_bad_weak_ptr(); 8657: } 8657: 8657: 8657: template<_Lock_policy _Lp> 8657: inline 8657: __shared_count<_Lp>:: 8657: __shared_count(const __weak_count<_Lp>& __r, std::nothrow_t) 8657: : _M_pi(__r._M_pi) 8657: { 8657: if (_M_pi != nullptr) 8657: if (!_M_pi->_M_add_ref_lock_nothrow()) 8657: _M_pi = nullptr; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: struct __sp_compatible_with 8657: : false_type 8657: { }; 8657: 8657: template 8657: struct __sp_compatible_with<_Yp*, _Tp*> 8657: : is_convertible<_Yp*, _Tp*>::type 8657: { }; 8657: 8657: template 8657: struct __sp_compatible_with<_Up(*)[_Nm], _Up(*)[]> 8657: : true_type 8657: { }; 8657: 8657: template 8657: struct __sp_compatible_with<_Up(*)[_Nm], const _Up(*)[]> 8657: : true_type 8657: { }; 8657: 8657: template 8657: struct __sp_compatible_with<_Up(*)[_Nm], volatile _Up(*)[]> 8657: : true_type 8657: { }; 8657: 8657: template 8657: struct __sp_compatible_with<_Up(*)[_Nm], const volatile _Up(*)[]> 8657: : true_type 8657: { }; 8657: 8657: 8657: template 8657: struct __sp_is_constructible_arrN 8657: : false_type 8657: { }; 8657: 8657: template 8657: struct __sp_is_constructible_arrN<_Up, _Nm, _Yp, __void_t<_Yp[_Nm]>> 8657: : is_convertible<_Yp(*)[_Nm], _Up(*)[_Nm]>::type 8657: { }; 8657: 8657: 8657: template 8657: struct __sp_is_constructible_arr 8657: : false_type 8657: { }; 8657: 8657: template 8657: struct __sp_is_constructible_arr<_Up, _Yp, __void_t<_Yp[]>> 8657: : is_convertible<_Yp(*)[], _Up(*)[]>::type 8657: { }; 8657: 8657: 8657: template 8657: struct __sp_is_constructible; 8657: 8657: 8657: template 8657: struct __sp_is_constructible<_Up[_Nm], _Yp> 8657: : __sp_is_constructible_arrN<_Up, _Nm, _Yp>::type 8657: { }; 8657: 8657: 8657: template 8657: struct __sp_is_constructible<_Up[], _Yp> 8657: : __sp_is_constructible_arr<_Up, _Yp>::type 8657: { }; 8657: 8657: 8657: template 8657: struct __sp_is_constructible 8657: : is_convertible<_Yp*, _Tp*>::type 8657: { }; 8657: 8657: 8657: 8657: template::value, bool = is_void<_Tp>::value> 8657: class __shared_ptr_access 8657: { 8657: public: 8657: using element_type = _Tp; 8657: 8657: element_type& 8657: operator*() const noexcept 8657: { 8657: ; 8657: return *_M_get(); 8657: } 8657: 8657: element_type* 8657: operator->() const noexcept 8657: { 8657: ; 8657: return _M_get(); 8657: } 8657: 8657: private: 8657: element_type* 8657: _M_get() const noexcept 8657: { return static_cast*>(this)->get(); } 8657: }; 8657: 8657: 8657: template 8657: class __shared_ptr_access<_Tp, _Lp, false, true> 8657: { 8657: public: 8657: using element_type = _Tp; 8657: 8657: element_type* 8657: operator->() const noexcept 8657: { 8657: auto __ptr = static_cast*>(this)->get(); 8657: ; 8657: return __ptr; 8657: } 8657: }; 8657: 8657: 8657: template 8657: class __shared_ptr_access<_Tp, _Lp, true, false> 8657: { 8657: public: 8657: using element_type = typename remove_extent<_Tp>::type; 8657: 8657: 8657: [[__deprecated__("shared_ptr::operator* is absent from C++17")]] 8657: element_type& 8657: operator*() const noexcept 8657: { 8657: ; 8657: return *_M_get(); 8657: } 8657: 8657: [[__deprecated__("shared_ptr::operator-> is absent from C++17")]] 8657: element_type* 8657: operator->() const noexcept 8657: { 8657: ; 8657: return _M_get(); 8657: } 8657: 8657: 8657: element_type& 8657: operator[](ptrdiff_t __i) const 8657: { 8657: ; 8657: ; 8657: return _M_get()[__i]; 8657: } 8657: 8657: private: 8657: element_type* 8657: _M_get() const noexcept 8657: { return static_cast*>(this)->get(); } 8657: }; 8657: 8657: template 8657: class __shared_ptr 8657: : public __shared_ptr_access<_Tp, _Lp> 8657: { 8657: public: 8657: using element_type = typename remove_extent<_Tp>::type; 8657: 8657: private: 8657: 8657: template 8657: using _SafeConv 8657: = typename enable_if<__sp_is_constructible<_Tp, _Yp>::value>::type; 8657: 8657: 8657: template 8657: using _Compatible = typename 8657: enable_if<__sp_compatible_with<_Yp*, _Tp*>::value, _Res>::type; 8657: 8657: 8657: template 8657: using _Assignable = _Compatible<_Yp, __shared_ptr&>; 8657: 8657: 8657: template::pointer> 8657: using _UniqCompatible = typename enable_if<__and_< 8657: __sp_compatible_with<_Yp*, _Tp*>, is_convertible<_Ptr, element_type*> 8657: >::value, _Res>::type; 8657: 8657: 8657: template 8657: using _UniqAssignable = _UniqCompatible<_Yp, _Del, __shared_ptr&>; 8657: 8657: public: 8657: 8657: 8657: 8657: 8657: 8657: constexpr __shared_ptr() noexcept 8657: : _M_ptr(0), _M_refcount() 8657: { } 8657: 8657: template> 8657: explicit 8657: __shared_ptr(_Yp* __p) 8657: : _M_ptr(__p), _M_refcount(__p, typename is_array<_Tp>::type()) 8657: { 8657: static_assert( !is_void<_Yp>::value, "incomplete type" ); 8657: static_assert( sizeof(_Yp) > 0, "incomplete type" ); 8657: _M_enable_shared_from_this_with(__p); 8657: } 8657: 8657: template> 8657: __shared_ptr(_Yp* __p, _Deleter __d) 8657: : _M_ptr(__p), _M_refcount(__p, std::move(__d)) 8657: { 8657: static_assert(__is_invocable<_Deleter&, _Yp*&>::value, 8657: "deleter expression d(p) is well-formed"); 8657: _M_enable_shared_from_this_with(__p); 8657: } 8657: 8657: template> 8657: __shared_ptr(_Yp* __p, _Deleter __d, _Alloc __a) 8657: : _M_ptr(__p), _M_refcount(__p, std::move(__d), std::move(__a)) 8657: { 8657: static_assert(__is_invocable<_Deleter&, _Yp*&>::value, 8657: "deleter expression d(p) is well-formed"); 8657: _M_enable_shared_from_this_with(__p); 8657: } 8657: 8657: template 8657: __shared_ptr(nullptr_t __p, _Deleter __d) 8657: : _M_ptr(0), _M_refcount(__p, std::move(__d)) 8657: { } 8657: 8657: template 8657: __shared_ptr(nullptr_t __p, _Deleter __d, _Alloc __a) 8657: : _M_ptr(0), _M_refcount(__p, std::move(__d), std::move(__a)) 8657: { } 8657: 8657: template 8657: __shared_ptr(const __shared_ptr<_Yp, _Lp>& __r, 8657: element_type* __p) noexcept 8657: : _M_ptr(__p), _M_refcount(__r._M_refcount) 8657: { } 8657: 8657: __shared_ptr(const __shared_ptr&) noexcept = default; 8657: __shared_ptr& operator=(const __shared_ptr&) noexcept = default; 8657: ~__shared_ptr() = default; 8657: 8657: template> 8657: __shared_ptr(const __shared_ptr<_Yp, _Lp>& __r) noexcept 8657: : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) 8657: { } 8657: 8657: __shared_ptr(__shared_ptr&& __r) noexcept 8657: : _M_ptr(__r._M_ptr), _M_refcount() 8657: { 8657: _M_refcount._M_swap(__r._M_refcount); 8657: __r._M_ptr = 0; 8657: } 8657: 8657: template> 8657: __shared_ptr(__shared_ptr<_Yp, _Lp>&& __r) noexcept 8657: : _M_ptr(__r._M_ptr), _M_refcount() 8657: { 8657: _M_refcount._M_swap(__r._M_refcount); 8657: __r._M_ptr = 0; 8657: } 8657: 8657: template> 8657: explicit __shared_ptr(const __weak_ptr<_Yp, _Lp>& __r) 8657: : _M_refcount(__r._M_refcount) 8657: { 8657: 8657: 8657: _M_ptr = __r._M_ptr; 8657: } 8657: 8657: 8657: template> 8657: __shared_ptr(unique_ptr<_Yp, _Del>&& __r) 8657: : _M_ptr(__r.get()), _M_refcount() 8657: { 8657: auto __raw = __to_address(__r.get()); 8657: _M_refcount = __shared_count<_Lp>(std::move(__r)); 8657: _M_enable_shared_from_this_with(__raw); 8657: } 8657: 8657: 8657: protected: 8657: 8657: template>, is_array<_Tp1>, 8657: is_convertible::pointer, _Tp*> 8657: >::value, bool>::type = true> 8657: __shared_ptr(unique_ptr<_Tp1, _Del>&& __r, __sp_array_delete) 8657: : _M_ptr(__r.get()), _M_refcount() 8657: { 8657: auto __raw = __to_address(__r.get()); 8657: _M_refcount = __shared_count<_Lp>(std::move(__r)); 8657: _M_enable_shared_from_this_with(__raw); 8657: } 8657: public: 8657: 8657: 8657: 8657: #pragma GCC diagnostic push 8657: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8657: 8657: template> 8657: __shared_ptr(auto_ptr<_Yp>&& __r); 8657: #pragma GCC diagnostic pop 8657: 8657: 8657: constexpr __shared_ptr(nullptr_t) noexcept : __shared_ptr() { } 8657: 8657: template 8657: _Assignable<_Yp> 8657: operator=(const __shared_ptr<_Yp, _Lp>& __r) noexcept 8657: { 8657: _M_ptr = __r._M_ptr; 8657: _M_refcount = __r._M_refcount; 8657: return *this; 8657: } 8657: 8657: 8657: #pragma GCC diagnostic push 8657: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8657: template 8657: _Assignable<_Yp> 8657: operator=(auto_ptr<_Yp>&& __r) 8657: { 8657: __shared_ptr(std::move(__r)).swap(*this); 8657: return *this; 8657: } 8657: #pragma GCC diagnostic pop 8657: 8657: 8657: __shared_ptr& 8657: operator=(__shared_ptr&& __r) noexcept 8657: { 8657: __shared_ptr(std::move(__r)).swap(*this); 8657: return *this; 8657: } 8657: 8657: template 8657: _Assignable<_Yp> 8657: operator=(__shared_ptr<_Yp, _Lp>&& __r) noexcept 8657: { 8657: __shared_ptr(std::move(__r)).swap(*this); 8657: return *this; 8657: } 8657: 8657: template 8657: _UniqAssignable<_Yp, _Del> 8657: operator=(unique_ptr<_Yp, _Del>&& __r) 8657: { 8657: __shared_ptr(std::move(__r)).swap(*this); 8657: return *this; 8657: } 8657: 8657: void 8657: reset() noexcept 8657: { __shared_ptr().swap(*this); } 8657: 8657: template 8657: _SafeConv<_Yp> 8657: reset(_Yp* __p) 8657: { 8657: 8657: ; 8657: __shared_ptr(__p).swap(*this); 8657: } 8657: 8657: template 8657: _SafeConv<_Yp> 8657: reset(_Yp* __p, _Deleter __d) 8657: { __shared_ptr(__p, std::move(__d)).swap(*this); } 8657: 8657: template 8657: _SafeConv<_Yp> 8657: reset(_Yp* __p, _Deleter __d, _Alloc __a) 8657: { __shared_ptr(__p, std::move(__d), std::move(__a)).swap(*this); } 8657: 8657: element_type* 8657: get() const noexcept 8657: { return _M_ptr; } 8657: 8657: explicit operator bool() const 8657: { return _M_ptr == 0 ? false : true; } 8657: 8657: bool 8657: unique() const noexcept 8657: { return _M_refcount._M_unique(); } 8657: 8657: long 8657: use_count() const noexcept 8657: { return _M_refcount._M_get_use_count(); } 8657: 8657: void 8657: swap(__shared_ptr<_Tp, _Lp>& __other) noexcept 8657: { 8657: std::swap(_M_ptr, __other._M_ptr); 8657: _M_refcount._M_swap(__other._M_refcount); 8657: } 8657: 8657: template 8657: bool 8657: owner_before(__shared_ptr<_Tp1, _Lp> const& __rhs) const noexcept 8657: { return _M_refcount._M_less(__rhs._M_refcount); } 8657: 8657: template 8657: bool 8657: owner_before(__weak_ptr<_Tp1, _Lp> const& __rhs) const noexcept 8657: { return _M_refcount._M_less(__rhs._M_refcount); } 8657: 8657: protected: 8657: 8657: template 8657: __shared_ptr(_Sp_make_shared_tag __tag, const _Alloc& __a, 8657: _Args&&... __args) 8657: : _M_ptr(), _M_refcount(__tag, (_Tp*)0, __a, 8657: std::forward<_Args>(__args)...) 8657: { 8657: 8657: 8657: 8657: void* __p = _M_refcount._M_get_deleter(typeid(__tag)); 8657: 8657: 8657: 8657: _M_ptr = static_cast<_Tp*>(__p); 8657: _M_enable_shared_from_this_with(_M_ptr); 8657: } 8657: 8657: template 8657: friend __shared_ptr<_Tp1, _Lp1> 8657: __allocate_shared(const _Alloc& __a, _Args&&... __args); 8657: 8657: 8657: 8657: __shared_ptr(const __weak_ptr<_Tp, _Lp>& __r, std::nothrow_t) 8657: : _M_refcount(__r._M_refcount, std::nothrow) 8657: { 8657: _M_ptr = _M_refcount._M_get_use_count() ? __r._M_ptr : nullptr; 8657: } 8657: 8657: friend class __weak_ptr<_Tp, _Lp>; 8657: 8657: private: 8657: 8657: template 8657: using __esft_base_t = decltype(__enable_shared_from_this_base( 8657: std::declval&>(), 8657: std::declval<_Yp*>())); 8657: 8657: 8657: template 8657: struct __has_esft_base 8657: : false_type { }; 8657: 8657: template 8657: struct __has_esft_base<_Yp, __void_t<__esft_base_t<_Yp>>> 8657: : __not_> { }; 8657: 8657: template::type> 8657: typename enable_if<__has_esft_base<_Yp2>::value>::type 8657: _M_enable_shared_from_this_with(_Yp* __p) noexcept 8657: { 8657: if (auto __base = __enable_shared_from_this_base(_M_refcount, __p)) 8657: __base->_M_weak_assign(const_cast<_Yp2*>(__p), _M_refcount); 8657: } 8657: 8657: template::type> 8657: typename enable_if::value>::type 8657: _M_enable_shared_from_this_with(_Yp*) noexcept 8657: { } 8657: 8657: void* 8657: _M_get_deleter(const std::type_info& __ti) const noexcept 8657: { return _M_refcount._M_get_deleter(__ti); } 8657: 8657: template friend class __shared_ptr; 8657: template friend class __weak_ptr; 8657: 8657: template 8657: friend _Del* get_deleter(const __shared_ptr<_Tp1, _Lp1>&) noexcept; 8657: 8657: template 8657: friend _Del* get_deleter(const shared_ptr<_Tp1>&) noexcept; 8657: 8657: element_type* _M_ptr; 8657: __shared_count<_Lp> _M_refcount; 8657: }; 8657: 8657: 8657: 8657: template 8657: inline bool 8657: operator==(const __shared_ptr<_Tp1, _Lp>& __a, 8657: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 8657: { return __a.get() == __b.get(); } 8657: 8657: template 8657: inline bool 8657: operator==(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 8657: { return !__a; } 8657: 8657: template 8657: inline bool 8657: operator==(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 8657: { return !__a; } 8657: 8657: template 8657: inline bool 8657: operator!=(const __shared_ptr<_Tp1, _Lp>& __a, 8657: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 8657: { return __a.get() != __b.get(); } 8657: 8657: template 8657: inline bool 8657: operator!=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 8657: { return (bool)__a; } 8657: 8657: template 8657: inline bool 8657: operator!=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 8657: { return (bool)__a; } 8657: 8657: template 8657: inline bool 8657: operator<(const __shared_ptr<_Tp, _Lp>& __a, 8657: const __shared_ptr<_Up, _Lp>& __b) noexcept 8657: { 8657: using _Tp_elt = typename __shared_ptr<_Tp, _Lp>::element_type; 8657: using _Up_elt = typename __shared_ptr<_Up, _Lp>::element_type; 8657: using _Vp = typename common_type<_Tp_elt*, _Up_elt*>::type; 8657: return less<_Vp>()(__a.get(), __b.get()); 8657: } 8657: 8657: template 8657: inline bool 8657: operator<(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 8657: { 8657: using _Tp_elt = typename __shared_ptr<_Tp, _Lp>::element_type; 8657: return less<_Tp_elt*>()(__a.get(), nullptr); 8657: } 8657: 8657: template 8657: inline bool 8657: operator<(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 8657: { 8657: using _Tp_elt = typename __shared_ptr<_Tp, _Lp>::element_type; 8657: return less<_Tp_elt*>()(nullptr, __a.get()); 8657: } 8657: 8657: template 8657: inline bool 8657: operator<=(const __shared_ptr<_Tp1, _Lp>& __a, 8657: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 8657: { return !(__b < __a); } 8657: 8657: template 8657: inline bool 8657: operator<=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 8657: { return !(nullptr < __a); } 8657: 8657: template 8657: inline bool 8657: operator<=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 8657: { return !(__a < nullptr); } 8657: 8657: template 8657: inline bool 8657: operator>(const __shared_ptr<_Tp1, _Lp>& __a, 8657: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 8657: { return (__b < __a); } 8657: 8657: template 8657: inline bool 8657: operator>(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 8657: { return nullptr < __a; } 8657: 8657: template 8657: inline bool 8657: operator>(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 8657: { return __a < nullptr; } 8657: 8657: template 8657: inline bool 8657: operator>=(const __shared_ptr<_Tp1, _Lp>& __a, 8657: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 8657: { return !(__a < __b); } 8657: 8657: template 8657: inline bool 8657: operator>=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 8657: { return !(__a < nullptr); } 8657: 8657: template 8657: inline bool 8657: operator>=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 8657: { return !(nullptr < __a); } 8657: 8657: template 8657: struct _Sp_less : public binary_function<_Sp, _Sp, bool> 8657: { 8657: bool 8657: operator()(const _Sp& __lhs, const _Sp& __rhs) const noexcept 8657: { 8657: typedef typename _Sp::element_type element_type; 8657: return std::less()(__lhs.get(), __rhs.get()); 8657: } 8657: }; 8657: 8657: template 8657: struct less<__shared_ptr<_Tp, _Lp>> 8657: : public _Sp_less<__shared_ptr<_Tp, _Lp>> 8657: { }; 8657: 8657: 8657: template 8657: inline void 8657: swap(__shared_ptr<_Tp, _Lp>& __a, __shared_ptr<_Tp, _Lp>& __b) noexcept 8657: { __a.swap(__b); } 8657: # 1540 "/usr/include/c++/8/bits/shared_ptr_base.h" 3 8657: template 8657: inline __shared_ptr<_Tp, _Lp> 8657: static_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 8657: { 8657: using _Sp = __shared_ptr<_Tp, _Lp>; 8657: return _Sp(__r, static_cast(__r.get())); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline __shared_ptr<_Tp, _Lp> 8657: const_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 8657: { 8657: using _Sp = __shared_ptr<_Tp, _Lp>; 8657: return _Sp(__r, const_cast(__r.get())); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline __shared_ptr<_Tp, _Lp> 8657: dynamic_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 8657: { 8657: using _Sp = __shared_ptr<_Tp, _Lp>; 8657: if (auto* __p = dynamic_cast(__r.get())) 8657: return _Sp(__r, __p); 8657: return _Sp(); 8657: } 8657: # 1586 "/usr/include/c++/8/bits/shared_ptr_base.h" 3 8657: template 8657: class __weak_ptr 8657: { 8657: template 8657: using _Compatible = typename 8657: enable_if<__sp_compatible_with<_Yp*, _Tp*>::value, _Res>::type; 8657: 8657: 8657: template 8657: using _Assignable = _Compatible<_Yp, __weak_ptr&>; 8657: 8657: public: 8657: using element_type = typename remove_extent<_Tp>::type; 8657: 8657: constexpr __weak_ptr() noexcept 8657: : _M_ptr(nullptr), _M_refcount() 8657: { } 8657: 8657: __weak_ptr(const __weak_ptr&) noexcept = default; 8657: 8657: ~__weak_ptr() = default; 8657: # 1622 "/usr/include/c++/8/bits/shared_ptr_base.h" 3 8657: template> 8657: __weak_ptr(const __weak_ptr<_Yp, _Lp>& __r) noexcept 8657: : _M_refcount(__r._M_refcount) 8657: { _M_ptr = __r.lock().get(); } 8657: 8657: template> 8657: __weak_ptr(const __shared_ptr<_Yp, _Lp>& __r) noexcept 8657: : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) 8657: { } 8657: 8657: __weak_ptr(__weak_ptr&& __r) noexcept 8657: : _M_ptr(__r._M_ptr), _M_refcount(std::move(__r._M_refcount)) 8657: { __r._M_ptr = nullptr; } 8657: 8657: template> 8657: __weak_ptr(__weak_ptr<_Yp, _Lp>&& __r) noexcept 8657: : _M_ptr(__r.lock().get()), _M_refcount(std::move(__r._M_refcount)) 8657: { __r._M_ptr = nullptr; } 8657: 8657: __weak_ptr& 8657: operator=(const __weak_ptr& __r) noexcept = default; 8657: 8657: template 8657: _Assignable<_Yp> 8657: operator=(const __weak_ptr<_Yp, _Lp>& __r) noexcept 8657: { 8657: _M_ptr = __r.lock().get(); 8657: _M_refcount = __r._M_refcount; 8657: return *this; 8657: } 8657: 8657: template 8657: _Assignable<_Yp> 8657: operator=(const __shared_ptr<_Yp, _Lp>& __r) noexcept 8657: { 8657: _M_ptr = __r._M_ptr; 8657: _M_refcount = __r._M_refcount; 8657: return *this; 8657: } 8657: 8657: __weak_ptr& 8657: operator=(__weak_ptr&& __r) noexcept 8657: { 8657: _M_ptr = __r._M_ptr; 8657: _M_refcount = std::move(__r._M_refcount); 8657: __r._M_ptr = nullptr; 8657: return *this; 8657: } 8657: 8657: template 8657: _Assignable<_Yp> 8657: operator=(__weak_ptr<_Yp, _Lp>&& __r) noexcept 8657: { 8657: _M_ptr = __r.lock().get(); 8657: _M_refcount = std::move(__r._M_refcount); 8657: __r._M_ptr = nullptr; 8657: return *this; 8657: } 8657: 8657: __shared_ptr<_Tp, _Lp> 8657: lock() const noexcept 8657: { return __shared_ptr(*this, std::nothrow); } 8657: 8657: long 8657: use_count() const noexcept 8657: { return _M_refcount._M_get_use_count(); } 8657: 8657: bool 8657: expired() const noexcept 8657: { return _M_refcount._M_get_use_count() == 0; } 8657: 8657: template 8657: bool 8657: owner_before(const __shared_ptr<_Tp1, _Lp>& __rhs) const noexcept 8657: { return _M_refcount._M_less(__rhs._M_refcount); } 8657: 8657: template 8657: bool 8657: owner_before(const __weak_ptr<_Tp1, _Lp>& __rhs) const noexcept 8657: { return _M_refcount._M_less(__rhs._M_refcount); } 8657: 8657: void 8657: reset() noexcept 8657: { __weak_ptr().swap(*this); } 8657: 8657: void 8657: swap(__weak_ptr& __s) noexcept 8657: { 8657: std::swap(_M_ptr, __s._M_ptr); 8657: _M_refcount._M_swap(__s._M_refcount); 8657: } 8657: 8657: private: 8657: 8657: void 8657: _M_assign(_Tp* __ptr, const __shared_count<_Lp>& __refcount) noexcept 8657: { 8657: if (use_count() == 0) 8657: { 8657: _M_ptr = __ptr; 8657: _M_refcount = __refcount; 8657: } 8657: } 8657: 8657: template friend class __shared_ptr; 8657: template friend class __weak_ptr; 8657: friend class __enable_shared_from_this<_Tp, _Lp>; 8657: friend class enable_shared_from_this<_Tp>; 8657: 8657: element_type* _M_ptr; 8657: __weak_count<_Lp> _M_refcount; 8657: }; 8657: 8657: 8657: template 8657: inline void 8657: swap(__weak_ptr<_Tp, _Lp>& __a, __weak_ptr<_Tp, _Lp>& __b) noexcept 8657: { __a.swap(__b); } 8657: 8657: template 8657: struct _Sp_owner_less : public binary_function<_Tp, _Tp, bool> 8657: { 8657: bool 8657: operator()(const _Tp& __lhs, const _Tp& __rhs) const noexcept 8657: { return __lhs.owner_before(__rhs); } 8657: 8657: bool 8657: operator()(const _Tp& __lhs, const _Tp1& __rhs) const noexcept 8657: { return __lhs.owner_before(__rhs); } 8657: 8657: bool 8657: operator()(const _Tp1& __lhs, const _Tp& __rhs) const noexcept 8657: { return __lhs.owner_before(__rhs); } 8657: }; 8657: 8657: template<> 8657: struct _Sp_owner_less 8657: { 8657: template 8657: auto 8657: operator()(const _Tp& __lhs, const _Up& __rhs) const noexcept 8657: -> decltype(__lhs.owner_before(__rhs)) 8657: { return __lhs.owner_before(__rhs); } 8657: 8657: using is_transparent = void; 8657: }; 8657: 8657: template 8657: struct owner_less<__shared_ptr<_Tp, _Lp>> 8657: : public _Sp_owner_less<__shared_ptr<_Tp, _Lp>, __weak_ptr<_Tp, _Lp>> 8657: { }; 8657: 8657: template 8657: struct owner_less<__weak_ptr<_Tp, _Lp>> 8657: : public _Sp_owner_less<__weak_ptr<_Tp, _Lp>, __shared_ptr<_Tp, _Lp>> 8657: { }; 8657: 8657: 8657: template 8657: class __enable_shared_from_this 8657: { 8657: protected: 8657: constexpr __enable_shared_from_this() noexcept { } 8657: 8657: __enable_shared_from_this(const __enable_shared_from_this&) noexcept { } 8657: 8657: __enable_shared_from_this& 8657: operator=(const __enable_shared_from_this&) noexcept 8657: { return *this; } 8657: 8657: ~__enable_shared_from_this() { } 8657: 8657: public: 8657: __shared_ptr<_Tp, _Lp> 8657: shared_from_this() 8657: { return __shared_ptr<_Tp, _Lp>(this->_M_weak_this); } 8657: 8657: __shared_ptr 8657: shared_from_this() const 8657: { return __shared_ptr(this->_M_weak_this); } 8657: 8657: 8657: __weak_ptr<_Tp, _Lp> 8657: weak_from_this() noexcept 8657: { return this->_M_weak_this; } 8657: 8657: __weak_ptr 8657: weak_from_this() const noexcept 8657: { return this->_M_weak_this; } 8657: 8657: 8657: private: 8657: template 8657: void 8657: _M_weak_assign(_Tp1* __p, const __shared_count<_Lp>& __n) const noexcept 8657: { _M_weak_this._M_assign(__p, __n); } 8657: 8657: friend const __enable_shared_from_this* 8657: __enable_shared_from_this_base(const __shared_count<_Lp>&, 8657: const __enable_shared_from_this* __p) 8657: { return __p; } 8657: 8657: template 8657: friend class __shared_ptr; 8657: 8657: mutable __weak_ptr<_Tp, _Lp> _M_weak_this; 8657: }; 8657: 8657: template 8657: inline __shared_ptr<_Tp, _Lp> 8657: __allocate_shared(const _Alloc& __a, _Args&&... __args) 8657: { 8657: return __shared_ptr<_Tp, _Lp>(_Sp_make_shared_tag(), __a, 8657: std::forward<_Args>(__args)...); 8657: } 8657: 8657: template 8657: inline __shared_ptr<_Tp, _Lp> 8657: __make_shared(_Args&&... __args) 8657: { 8657: typedef typename std::remove_const<_Tp>::type _Tp_nc; 8657: return std::__allocate_shared<_Tp, _Lp>(std::allocator<_Tp_nc>(), 8657: std::forward<_Args>(__args)...); 8657: } 8657: 8657: 8657: template 8657: struct hash<__shared_ptr<_Tp, _Lp>> 8657: : public __hash_base> 8657: { 8657: size_t 8657: operator()(const __shared_ptr<_Tp, _Lp>& __s) const noexcept 8657: { 8657: return hash::element_type*>()( 8657: __s.get()); 8657: } 8657: }; 8657: 8657: 8657: } 8657: # 53 "/usr/include/c++/8/bits/shared_ptr.h" 2 3 8657: 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline std::basic_ostream<_Ch, _Tr>& 8657: operator<<(std::basic_ostream<_Ch, _Tr>& __os, 8657: const __shared_ptr<_Tp, _Lp>& __p) 8657: { 8657: __os << __p.get(); 8657: return __os; 8657: } 8657: 8657: template 8657: inline _Del* 8657: get_deleter(const __shared_ptr<_Tp, _Lp>& __p) noexcept 8657: { 8657: 8657: return static_cast<_Del*>(__p._M_get_deleter(typeid(_Del))); 8657: 8657: 8657: 8657: } 8657: 8657: 8657: template 8657: inline _Del* 8657: get_deleter(const shared_ptr<_Tp>& __p) noexcept 8657: { 8657: 8657: return static_cast<_Del*>(__p._M_get_deleter(typeid(_Del))); 8657: 8657: 8657: 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: class shared_ptr : public __shared_ptr<_Tp> 8657: { 8657: template 8657: using _Constructible = typename enable_if< 8657: is_constructible<__shared_ptr<_Tp>, _Args...>::value 8657: >::type; 8657: 8657: template 8657: using _Assignable = typename enable_if< 8657: is_assignable<__shared_ptr<_Tp>&, _Arg>::value, shared_ptr& 8657: >::type; 8657: 8657: public: 8657: 8657: using element_type = typename __shared_ptr<_Tp>::element_type; 8657: # 127 "/usr/include/c++/8/bits/shared_ptr.h" 3 8657: constexpr shared_ptr() noexcept : __shared_ptr<_Tp>() { } 8657: 8657: shared_ptr(const shared_ptr&) noexcept = default; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template> 8657: explicit 8657: shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { } 8657: # 154 "/usr/include/c++/8/bits/shared_ptr.h" 3 8657: template> 8657: shared_ptr(_Yp* __p, _Deleter __d) 8657: : __shared_ptr<_Tp>(__p, std::move(__d)) { } 8657: # 172 "/usr/include/c++/8/bits/shared_ptr.h" 3 8657: template 8657: shared_ptr(nullptr_t __p, _Deleter __d) 8657: : __shared_ptr<_Tp>(__p, std::move(__d)) { } 8657: # 191 "/usr/include/c++/8/bits/shared_ptr.h" 3 8657: template> 8657: shared_ptr(_Yp* __p, _Deleter __d, _Alloc __a) 8657: : __shared_ptr<_Tp>(__p, std::move(__d), std::move(__a)) { } 8657: # 211 "/usr/include/c++/8/bits/shared_ptr.h" 3 8657: template 8657: shared_ptr(nullptr_t __p, _Deleter __d, _Alloc __a) 8657: : __shared_ptr<_Tp>(__p, std::move(__d), std::move(__a)) { } 8657: # 233 "/usr/include/c++/8/bits/shared_ptr.h" 3 8657: template 8657: shared_ptr(const shared_ptr<_Yp>& __r, element_type* __p) noexcept 8657: : __shared_ptr<_Tp>(__r, __p) { } 8657: # 244 "/usr/include/c++/8/bits/shared_ptr.h" 3 8657: template&>> 8657: shared_ptr(const shared_ptr<_Yp>& __r) noexcept 8657: : __shared_ptr<_Tp>(__r) { } 8657: 8657: 8657: 8657: 8657: 8657: 8657: shared_ptr(shared_ptr&& __r) noexcept 8657: : __shared_ptr<_Tp>(std::move(__r)) { } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template>> 8657: shared_ptr(shared_ptr<_Yp>&& __r) noexcept 8657: : __shared_ptr<_Tp>(std::move(__r)) { } 8657: # 274 "/usr/include/c++/8/bits/shared_ptr.h" 3 8657: template&>> 8657: explicit shared_ptr(const weak_ptr<_Yp>& __r) 8657: : __shared_ptr<_Tp>(__r) { } 8657: 8657: 8657: #pragma GCC diagnostic push 8657: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8657: template>> 8657: shared_ptr(auto_ptr<_Yp>&& __r); 8657: #pragma GCC diagnostic pop 8657: 8657: 8657: 8657: 8657: template>> 8657: shared_ptr(unique_ptr<_Yp, _Del>&& __r) 8657: : __shared_ptr<_Tp>(std::move(__r)) { } 8657: 8657: 8657: 8657: 8657: 8657: template, __sp_array_delete>* = 0> 8657: shared_ptr(unique_ptr<_Yp, _Del>&& __r) 8657: : __shared_ptr<_Tp>(std::move(__r), __sp_array_delete()) { } 8657: 8657: 8657: 8657: 8657: 8657: 8657: constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { } 8657: 8657: shared_ptr& operator=(const shared_ptr&) noexcept = default; 8657: 8657: template 8657: _Assignable&> 8657: operator=(const shared_ptr<_Yp>& __r) noexcept 8657: { 8657: this->__shared_ptr<_Tp>::operator=(__r); 8657: return *this; 8657: } 8657: 8657: 8657: #pragma GCC diagnostic push 8657: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8657: template 8657: _Assignable> 8657: operator=(auto_ptr<_Yp>&& __r) 8657: { 8657: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 8657: return *this; 8657: } 8657: #pragma GCC diagnostic pop 8657: 8657: 8657: shared_ptr& 8657: operator=(shared_ptr&& __r) noexcept 8657: { 8657: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 8657: return *this; 8657: } 8657: 8657: template 8657: _Assignable> 8657: operator=(shared_ptr<_Yp>&& __r) noexcept 8657: { 8657: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 8657: return *this; 8657: } 8657: 8657: template 8657: _Assignable> 8657: operator=(unique_ptr<_Yp, _Del>&& __r) 8657: { 8657: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 8657: return *this; 8657: } 8657: 8657: private: 8657: 8657: template 8657: shared_ptr(_Sp_make_shared_tag __tag, const _Alloc& __a, 8657: _Args&&... __args) 8657: : __shared_ptr<_Tp>(__tag, __a, std::forward<_Args>(__args)...) 8657: { } 8657: 8657: template 8657: friend shared_ptr<_Yp> 8657: allocate_shared(const _Alloc& __a, _Args&&... __args); 8657: 8657: 8657: shared_ptr(const weak_ptr<_Tp>& __r, std::nothrow_t) 8657: : __shared_ptr<_Tp>(__r, std::nothrow) { } 8657: 8657: friend class weak_ptr<_Tp>; 8657: }; 8657: # 382 "/usr/include/c++/8/bits/shared_ptr.h" 3 8657: template 8657: inline bool 8657: operator==(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 8657: { return __a.get() == __b.get(); } 8657: 8657: template 8657: inline bool 8657: operator==(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 8657: { return !__a; } 8657: 8657: template 8657: inline bool 8657: operator==(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 8657: { return !__a; } 8657: 8657: template 8657: inline bool 8657: operator!=(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 8657: { return __a.get() != __b.get(); } 8657: 8657: template 8657: inline bool 8657: operator!=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 8657: { return (bool)__a; } 8657: 8657: template 8657: inline bool 8657: operator!=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 8657: { return (bool)__a; } 8657: 8657: template 8657: inline bool 8657: operator<(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 8657: { 8657: using _Tp_elt = typename shared_ptr<_Tp>::element_type; 8657: using _Up_elt = typename shared_ptr<_Up>::element_type; 8657: using _Vp = typename common_type<_Tp_elt*, _Up_elt*>::type; 8657: return less<_Vp>()(__a.get(), __b.get()); 8657: } 8657: 8657: template 8657: inline bool 8657: operator<(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 8657: { 8657: using _Tp_elt = typename shared_ptr<_Tp>::element_type; 8657: return less<_Tp_elt*>()(__a.get(), nullptr); 8657: } 8657: 8657: template 8657: inline bool 8657: operator<(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 8657: { 8657: using _Tp_elt = typename shared_ptr<_Tp>::element_type; 8657: return less<_Tp_elt*>()(nullptr, __a.get()); 8657: } 8657: 8657: template 8657: inline bool 8657: operator<=(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 8657: { return !(__b < __a); } 8657: 8657: template 8657: inline bool 8657: operator<=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 8657: { return !(nullptr < __a); } 8657: 8657: template 8657: inline bool 8657: operator<=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 8657: { return !(__a < nullptr); } 8657: 8657: template 8657: inline bool 8657: operator>(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 8657: { return (__b < __a); } 8657: 8657: template 8657: inline bool 8657: operator>(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 8657: { return nullptr < __a; } 8657: 8657: template 8657: inline bool 8657: operator>(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 8657: { return __a < nullptr; } 8657: 8657: template 8657: inline bool 8657: operator>=(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 8657: { return !(__a < __b); } 8657: 8657: template 8657: inline bool 8657: operator>=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 8657: { return !(__a < nullptr); } 8657: 8657: template 8657: inline bool 8657: operator>=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 8657: { return !(nullptr < __a); } 8657: 8657: template 8657: struct less> : public _Sp_less> 8657: { }; 8657: 8657: 8657: template 8657: inline void 8657: swap(shared_ptr<_Tp>& __a, shared_ptr<_Tp>& __b) noexcept 8657: { __a.swap(__b); } 8657: 8657: 8657: template 8657: inline shared_ptr<_Tp> 8657: static_pointer_cast(const shared_ptr<_Up>& __r) noexcept 8657: { 8657: using _Sp = shared_ptr<_Tp>; 8657: return _Sp(__r, static_cast(__r.get())); 8657: } 8657: 8657: template 8657: inline shared_ptr<_Tp> 8657: const_pointer_cast(const shared_ptr<_Up>& __r) noexcept 8657: { 8657: using _Sp = shared_ptr<_Tp>; 8657: return _Sp(__r, const_cast(__r.get())); 8657: } 8657: 8657: template 8657: inline shared_ptr<_Tp> 8657: dynamic_pointer_cast(const shared_ptr<_Up>& __r) noexcept 8657: { 8657: using _Sp = shared_ptr<_Tp>; 8657: if (auto* __p = dynamic_cast(__r.get())) 8657: return _Sp(__r, __p); 8657: return _Sp(); 8657: } 8657: # 535 "/usr/include/c++/8/bits/shared_ptr.h" 3 8657: template 8657: class weak_ptr : public __weak_ptr<_Tp> 8657: { 8657: template 8657: using _Constructible = typename enable_if< 8657: is_constructible<__weak_ptr<_Tp>, _Arg>::value 8657: >::type; 8657: 8657: template 8657: using _Assignable = typename enable_if< 8657: is_assignable<__weak_ptr<_Tp>&, _Arg>::value, weak_ptr& 8657: >::type; 8657: 8657: public: 8657: constexpr weak_ptr() noexcept = default; 8657: 8657: template&>> 8657: weak_ptr(const shared_ptr<_Yp>& __r) noexcept 8657: : __weak_ptr<_Tp>(__r) { } 8657: 8657: weak_ptr(const weak_ptr&) noexcept = default; 8657: 8657: template&>> 8657: weak_ptr(const weak_ptr<_Yp>& __r) noexcept 8657: : __weak_ptr<_Tp>(__r) { } 8657: 8657: weak_ptr(weak_ptr&&) noexcept = default; 8657: 8657: template>> 8657: weak_ptr(weak_ptr<_Yp>&& __r) noexcept 8657: : __weak_ptr<_Tp>(std::move(__r)) { } 8657: 8657: weak_ptr& 8657: operator=(const weak_ptr& __r) noexcept = default; 8657: 8657: template 8657: _Assignable&> 8657: operator=(const weak_ptr<_Yp>& __r) noexcept 8657: { 8657: this->__weak_ptr<_Tp>::operator=(__r); 8657: return *this; 8657: } 8657: 8657: template 8657: _Assignable&> 8657: operator=(const shared_ptr<_Yp>& __r) noexcept 8657: { 8657: this->__weak_ptr<_Tp>::operator=(__r); 8657: return *this; 8657: } 8657: 8657: weak_ptr& 8657: operator=(weak_ptr&& __r) noexcept = default; 8657: 8657: template 8657: _Assignable> 8657: operator=(weak_ptr<_Yp>&& __r) noexcept 8657: { 8657: this->__weak_ptr<_Tp>::operator=(std::move(__r)); 8657: return *this; 8657: } 8657: 8657: shared_ptr<_Tp> 8657: lock() const noexcept 8657: { return shared_ptr<_Tp>(*this, std::nothrow); } 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline void 8657: swap(weak_ptr<_Tp>& __a, weak_ptr<_Tp>& __b) noexcept 8657: { __a.swap(__b); } 8657: 8657: 8657: 8657: template 8657: struct owner_less; 8657: 8657: 8657: template<> 8657: struct owner_less : _Sp_owner_less 8657: { }; 8657: 8657: 8657: template 8657: struct owner_less> 8657: : public _Sp_owner_less, weak_ptr<_Tp>> 8657: { }; 8657: 8657: 8657: template 8657: struct owner_less> 8657: : public _Sp_owner_less, shared_ptr<_Tp>> 8657: { }; 8657: 8657: 8657: 8657: 8657: template 8657: class enable_shared_from_this 8657: { 8657: protected: 8657: constexpr enable_shared_from_this() noexcept { } 8657: 8657: enable_shared_from_this(const enable_shared_from_this&) noexcept { } 8657: 8657: enable_shared_from_this& 8657: operator=(const enable_shared_from_this&) noexcept 8657: { return *this; } 8657: 8657: ~enable_shared_from_this() { } 8657: 8657: public: 8657: shared_ptr<_Tp> 8657: shared_from_this() 8657: { return shared_ptr<_Tp>(this->_M_weak_this); } 8657: 8657: shared_ptr 8657: shared_from_this() const 8657: { return shared_ptr(this->_M_weak_this); } 8657: 8657: 8657: 8657: weak_ptr<_Tp> 8657: weak_from_this() noexcept 8657: { return this->_M_weak_this; } 8657: 8657: weak_ptr 8657: weak_from_this() const noexcept 8657: { return this->_M_weak_this; } 8657: 8657: 8657: private: 8657: template 8657: void 8657: _M_weak_assign(_Tp1* __p, const __shared_count<>& __n) const noexcept 8657: { _M_weak_this._M_assign(__p, __n); } 8657: 8657: 8657: friend const enable_shared_from_this* 8657: __enable_shared_from_this_base(const __shared_count<>&, 8657: const enable_shared_from_this* __p) 8657: { return __p; } 8657: 8657: template 8657: friend class __shared_ptr; 8657: 8657: mutable weak_ptr<_Tp> _M_weak_this; 8657: }; 8657: # 702 "/usr/include/c++/8/bits/shared_ptr.h" 3 8657: template 8657: inline shared_ptr<_Tp> 8657: allocate_shared(const _Alloc& __a, _Args&&... __args) 8657: { 8657: return shared_ptr<_Tp>(_Sp_make_shared_tag(), __a, 8657: std::forward<_Args>(__args)...); 8657: } 8657: # 717 "/usr/include/c++/8/bits/shared_ptr.h" 3 8657: template 8657: inline shared_ptr<_Tp> 8657: make_shared(_Args&&... __args) 8657: { 8657: typedef typename std::remove_const<_Tp>::type _Tp_nc; 8657: return std::allocate_shared<_Tp>(std::allocator<_Tp_nc>(), 8657: std::forward<_Args>(__args)...); 8657: } 8657: 8657: 8657: template 8657: struct hash> 8657: : public __hash_base> 8657: { 8657: size_t 8657: operator()(const shared_ptr<_Tp>& __s) const noexcept 8657: { 8657: return std::hash::element_type*>()(__s.get()); 8657: } 8657: }; 8657: 8657: 8657: 8657: 8657: } 8657: # 82 "/usr/include/c++/8/memory" 2 3 8657: # 1 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 1 3 8657: # 35 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: struct _Sp_locker 8657: { 8657: _Sp_locker(const _Sp_locker&) = delete; 8657: _Sp_locker& operator=(const _Sp_locker&) = delete; 8657: 8657: 8657: explicit 8657: _Sp_locker(const void*) noexcept; 8657: _Sp_locker(const void*, const void*) noexcept; 8657: ~_Sp_locker(); 8657: 8657: private: 8657: unsigned char _M_key1; 8657: unsigned char _M_key2; 8657: 8657: 8657: 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline bool 8657: atomic_is_lock_free(const __shared_ptr<_Tp, _Lp>* __p) 8657: { 8657: 8657: return __gthread_active_p() == 0; 8657: 8657: 8657: 8657: } 8657: 8657: template 8657: inline bool 8657: atomic_is_lock_free(const shared_ptr<_Tp>* __p) 8657: { return std::atomic_is_lock_free<_Tp, __default_lock_policy>(__p); } 8657: # 96 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 3 8657: template 8657: inline shared_ptr<_Tp> 8657: atomic_load_explicit(const shared_ptr<_Tp>* __p, memory_order) 8657: { 8657: _Sp_locker __lock{__p}; 8657: return *__p; 8657: } 8657: 8657: template 8657: inline shared_ptr<_Tp> 8657: atomic_load(const shared_ptr<_Tp>* __p) 8657: { return std::atomic_load_explicit(__p, memory_order_seq_cst); } 8657: 8657: template 8657: inline __shared_ptr<_Tp, _Lp> 8657: atomic_load_explicit(const __shared_ptr<_Tp, _Lp>* __p, memory_order) 8657: { 8657: _Sp_locker __lock{__p}; 8657: return *__p; 8657: } 8657: 8657: template 8657: inline __shared_ptr<_Tp, _Lp> 8657: atomic_load(const __shared_ptr<_Tp, _Lp>* __p) 8657: { return std::atomic_load_explicit(__p, memory_order_seq_cst); } 8657: # 132 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 3 8657: template 8657: inline void 8657: atomic_store_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, 8657: memory_order) 8657: { 8657: _Sp_locker __lock{__p}; 8657: __p->swap(__r); 8657: } 8657: 8657: template 8657: inline void 8657: atomic_store(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) 8657: { std::atomic_store_explicit(__p, std::move(__r), memory_order_seq_cst); } 8657: 8657: template 8657: inline void 8657: atomic_store_explicit(__shared_ptr<_Tp, _Lp>* __p, 8657: __shared_ptr<_Tp, _Lp> __r, 8657: memory_order) 8657: { 8657: _Sp_locker __lock{__p}; 8657: __p->swap(__r); 8657: } 8657: 8657: template 8657: inline void 8657: atomic_store(__shared_ptr<_Tp, _Lp>* __p, __shared_ptr<_Tp, _Lp> __r) 8657: { std::atomic_store_explicit(__p, std::move(__r), memory_order_seq_cst); } 8657: # 169 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 3 8657: template 8657: inline shared_ptr<_Tp> 8657: atomic_exchange_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, 8657: memory_order) 8657: { 8657: _Sp_locker __lock{__p}; 8657: __p->swap(__r); 8657: return __r; 8657: } 8657: 8657: template 8657: inline shared_ptr<_Tp> 8657: atomic_exchange(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) 8657: { 8657: return std::atomic_exchange_explicit(__p, std::move(__r), 8657: memory_order_seq_cst); 8657: } 8657: 8657: template 8657: inline __shared_ptr<_Tp, _Lp> 8657: atomic_exchange_explicit(__shared_ptr<_Tp, _Lp>* __p, 8657: __shared_ptr<_Tp, _Lp> __r, 8657: memory_order) 8657: { 8657: _Sp_locker __lock{__p}; 8657: __p->swap(__r); 8657: return __r; 8657: } 8657: 8657: template 8657: inline __shared_ptr<_Tp, _Lp> 8657: atomic_exchange(__shared_ptr<_Tp, _Lp>* __p, __shared_ptr<_Tp, _Lp> __r) 8657: { 8657: return std::atomic_exchange_explicit(__p, std::move(__r), 8657: memory_order_seq_cst); 8657: } 8657: # 218 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 3 8657: template 8657: bool 8657: atomic_compare_exchange_strong_explicit(shared_ptr<_Tp>* __p, 8657: shared_ptr<_Tp>* __v, 8657: shared_ptr<_Tp> __w, 8657: memory_order, 8657: memory_order) 8657: { 8657: shared_ptr<_Tp> __x; 8657: _Sp_locker __lock{__p, __v}; 8657: owner_less> __less; 8657: if (*__p == *__v && !__less(*__p, *__v) && !__less(*__v, *__p)) 8657: { 8657: __x = std::move(*__p); 8657: *__p = std::move(__w); 8657: return true; 8657: } 8657: __x = std::move(*__v); 8657: *__v = *__p; 8657: return false; 8657: } 8657: 8657: template 8657: inline bool 8657: atomic_compare_exchange_strong(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, 8657: shared_ptr<_Tp> __w) 8657: { 8657: return std::atomic_compare_exchange_strong_explicit(__p, __v, 8657: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 8657: } 8657: 8657: template 8657: inline bool 8657: atomic_compare_exchange_weak_explicit(shared_ptr<_Tp>* __p, 8657: shared_ptr<_Tp>* __v, 8657: shared_ptr<_Tp> __w, 8657: memory_order __success, 8657: memory_order __failure) 8657: { 8657: return std::atomic_compare_exchange_strong_explicit(__p, __v, 8657: std::move(__w), __success, __failure); 8657: } 8657: 8657: template 8657: inline bool 8657: atomic_compare_exchange_weak(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, 8657: shared_ptr<_Tp> __w) 8657: { 8657: return std::atomic_compare_exchange_weak_explicit(__p, __v, 8657: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 8657: } 8657: 8657: template 8657: bool 8657: atomic_compare_exchange_strong_explicit(__shared_ptr<_Tp, _Lp>* __p, 8657: __shared_ptr<_Tp, _Lp>* __v, 8657: __shared_ptr<_Tp, _Lp> __w, 8657: memory_order, 8657: memory_order) 8657: { 8657: __shared_ptr<_Tp, _Lp> __x; 8657: _Sp_locker __lock{__p, __v}; 8657: owner_less<__shared_ptr<_Tp, _Lp>> __less; 8657: if (*__p == *__v && !__less(*__p, *__v) && !__less(*__v, *__p)) 8657: { 8657: __x = std::move(*__p); 8657: *__p = std::move(__w); 8657: return true; 8657: } 8657: __x = std::move(*__v); 8657: *__v = *__p; 8657: return false; 8657: } 8657: 8657: template 8657: inline bool 8657: atomic_compare_exchange_strong(__shared_ptr<_Tp, _Lp>* __p, 8657: __shared_ptr<_Tp, _Lp>* __v, 8657: __shared_ptr<_Tp, _Lp> __w) 8657: { 8657: return std::atomic_compare_exchange_strong_explicit(__p, __v, 8657: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 8657: } 8657: 8657: template 8657: inline bool 8657: atomic_compare_exchange_weak_explicit(__shared_ptr<_Tp, _Lp>* __p, 8657: __shared_ptr<_Tp, _Lp>* __v, 8657: __shared_ptr<_Tp, _Lp> __w, 8657: memory_order __success, 8657: memory_order __failure) 8657: { 8657: return std::atomic_compare_exchange_strong_explicit(__p, __v, 8657: std::move(__w), __success, __failure); 8657: } 8657: 8657: template 8657: inline bool 8657: atomic_compare_exchange_weak(__shared_ptr<_Tp, _Lp>* __p, 8657: __shared_ptr<_Tp, _Lp>* __v, 8657: __shared_ptr<_Tp, _Lp> __w) 8657: { 8657: return std::atomic_compare_exchange_weak_explicit(__p, __v, 8657: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: } 8657: # 83 "/usr/include/c++/8/memory" 2 3 8657: 8657: # 1 "/usr/include/c++/8/backward/auto_ptr.h" 1 3 8657: # 36 "/usr/include/c++/8/backward/auto_ptr.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 47 "/usr/include/c++/8/backward/auto_ptr.h" 3 8657: template 8657: struct auto_ptr_ref 8657: { 8657: _Tp1* _M_ptr; 8657: 8657: explicit 8657: auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { } 8657: } __attribute__ ((__deprecated__)); 8657: 8657: #pragma GCC diagnostic push 8657: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8657: # 88 "/usr/include/c++/8/backward/auto_ptr.h" 3 8657: template 8657: class auto_ptr 8657: { 8657: private: 8657: _Tp* _M_ptr; 8657: 8657: public: 8657: 8657: typedef _Tp element_type; 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: explicit 8657: auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { } 8657: # 114 "/usr/include/c++/8/backward/auto_ptr.h" 3 8657: auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { } 8657: # 126 "/usr/include/c++/8/backward/auto_ptr.h" 3 8657: template 8657: auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { } 8657: # 137 "/usr/include/c++/8/backward/auto_ptr.h" 3 8657: auto_ptr& 8657: operator=(auto_ptr& __a) throw() 8657: { 8657: reset(__a.release()); 8657: return *this; 8657: } 8657: # 154 "/usr/include/c++/8/backward/auto_ptr.h" 3 8657: template 8657: auto_ptr& 8657: operator=(auto_ptr<_Tp1>& __a) throw() 8657: { 8657: reset(__a.release()); 8657: return *this; 8657: } 8657: # 172 "/usr/include/c++/8/backward/auto_ptr.h" 3 8657: ~auto_ptr() { delete _M_ptr; } 8657: # 182 "/usr/include/c++/8/backward/auto_ptr.h" 3 8657: element_type& 8657: operator*() const throw() 8657: { 8657: ; 8657: return *_M_ptr; 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: element_type* 8657: operator->() const throw() 8657: { 8657: ; 8657: return _M_ptr; 8657: } 8657: # 212 "/usr/include/c++/8/backward/auto_ptr.h" 3 8657: element_type* 8657: get() const throw() { return _M_ptr; } 8657: # 226 "/usr/include/c++/8/backward/auto_ptr.h" 3 8657: element_type* 8657: release() throw() 8657: { 8657: element_type* __tmp = _M_ptr; 8657: _M_ptr = 0; 8657: return __tmp; 8657: } 8657: # 241 "/usr/include/c++/8/backward/auto_ptr.h" 3 8657: void 8657: reset(element_type* __p = 0) throw() 8657: { 8657: if (__p != _M_ptr) 8657: { 8657: delete _M_ptr; 8657: _M_ptr = __p; 8657: } 8657: } 8657: # 266 "/usr/include/c++/8/backward/auto_ptr.h" 3 8657: auto_ptr(auto_ptr_ref __ref) throw() 8657: : _M_ptr(__ref._M_ptr) { } 8657: 8657: auto_ptr& 8657: operator=(auto_ptr_ref __ref) throw() 8657: { 8657: if (__ref._M_ptr != this->get()) 8657: { 8657: delete _M_ptr; 8657: _M_ptr = __ref._M_ptr; 8657: } 8657: return *this; 8657: } 8657: 8657: template 8657: operator auto_ptr_ref<_Tp1>() throw() 8657: { return auto_ptr_ref<_Tp1>(this->release()); } 8657: 8657: template 8657: operator auto_ptr<_Tp1>() throw() 8657: { return auto_ptr<_Tp1>(this->release()); } 8657: } __attribute__ ((__deprecated__)); 8657: 8657: 8657: 8657: template<> 8657: class auto_ptr 8657: { 8657: public: 8657: typedef void element_type; 8657: } __attribute__ ((__deprecated__)); 8657: 8657: 8657: template<_Lock_policy _Lp> 8657: template 8657: inline 8657: __shared_count<_Lp>::__shared_count(std::auto_ptr<_Tp>&& __r) 8657: : _M_pi(new _Sp_counted_ptr<_Tp*, _Lp>(__r.get())) 8657: { __r.release(); } 8657: 8657: template 8657: template 8657: inline 8657: __shared_ptr<_Tp, _Lp>::__shared_ptr(std::auto_ptr<_Tp1>&& __r) 8657: : _M_ptr(__r.get()), _M_refcount() 8657: { 8657: 8657: static_assert( sizeof(_Tp1) > 0, "incomplete type" ); 8657: _Tp1* __tmp = __r.get(); 8657: _M_refcount = __shared_count<_Lp>(std::move(__r)); 8657: _M_enable_shared_from_this_with(__tmp); 8657: } 8657: 8657: template 8657: template 8657: inline 8657: shared_ptr<_Tp>::shared_ptr(std::auto_ptr<_Tp1>&& __r) 8657: : __shared_ptr<_Tp>(std::move(__r)) { } 8657: 8657: template 8657: template 8657: inline 8657: unique_ptr<_Tp, _Dp>::unique_ptr(auto_ptr<_Up>&& __u) noexcept 8657: : _M_t(__u.release(), deleter_type()) { } 8657: 8657: 8657: #pragma GCC diagnostic pop 8657: 8657: 8657: } 8657: # 85 "/usr/include/c++/8/memory" 2 3 8657: # 93 "/Scanning dependencies of target testbuiltins_exec usr/include/c++/8/memory" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: # 113 "/usr/include/c++/8/memory" 3 8657: inline void* 8657: align(size_t __align, size_t __size, void*& __ptr, size_t& __space) noexcept 8657: { 8657: const auto __intptr = reinterpret_cast(__ptr); 8657: const auto __aligned = (__intptr - 1u + __align) & -__align; 8657: const auto __diff = __aligned - __intptr; 8657: if ((__size + __diff) > __space) 8657: return nullptr; 8657: else 8657: { 8657: __space -= __diff; 8657: return __ptr = reinterpret_cast(__aligned); 8657: } 8657: } 8657: 8657: 8657: 8657: enum class pointer_safety { relaxed, preferred, strict }; 8657: 8657: inline void 8657: declare_reachable(void*) { } 8657: 8657: template 8657: inline _Tp* 8657: undeclare_reachable(_Tp* __p) { return __p; } 8657: 8657: inline void 8657: declare_no_pointers(char*, size_t) { } 8657: 8657: inline void 8657: undeclare_no_pointers(char*, size_t) { } 8657: 8657: inline pointer_safety 8657: get_pointer_safety() noexcept { return pointer_safety::relaxed; } 8657: 8657: 8657: } 8657: # 40 "/usr/include/c++/8/tr1/memory" 2 3 8657: # 50 "/usr/include/c++/8/tr1/memory" 3 8657: # 1 "/usr/include/c++/8/tr1/shared_ptr.h" 1 3 8657: # 52 "/usr/include/c++/8/tr1/shared_ptr.h" 3 8657: namespace std __attribute__ ((__visibility__ ("default"))) 8657: { 8657: 8657: 8657: namespace tr1 8657: { 8657: 8657: 8657: 8657: 8657: class bad_weak_ptr : public std::exception 8657: { 8657: public: 8657: virtual char const* 8657: what() const throw() 8657: { return "tr1::bad_weak_ptr"; } 8657: }; 8657: 8657: 8657: inline void 8657: __throw_bad_weak_ptr() 8657: { (throw (bad_weak_ptr())); } 8657: 8657: using __gnu_cxx::_Lock_policy; 8657: using __gnu_cxx::__default_lock_policy; 8657: using __gnu_cxx::_S_single; 8657: using __gnu_cxx::_S_mutex; 8657: using __gnu_cxx::_S_atomic; 8657: 8657: 8657: template<_Lock_policy _Lp> 8657: class _Mutex_base 8657: { 8657: protected: 8657: 8657: enum { _S_need_barriers = 0 }; 8657: }; 8657: 8657: template<> 8657: class _Mutex_base<_S_mutex> 8657: : public __gnu_cxx::__mutex 8657: { 8657: protected: 8657: 8657: 8657: 8657: enum { _S_need_barriers = 1 }; 8657: }; 8657: 8657: template<_Lock_policy _Lp = __default_lock_policy> 8657: class _Sp_counted_base 8657: : public _Mutex_base<_Lp> 8657: { 8657: public: 8657: _Sp_counted_base() 8657: : _M_use_count(1), _M_weak_count(1) { } 8657: 8657: virtual 8657: ~_Sp_counted_base() 8657: { } 8657: 8657: 8657: 8657: virtual void 8657: _M_dispose() = 0; 8657: 8657: 8657: virtual void 8657: _M_destroy() 8657: { delete this; } 8657: 8657: virtual void* 8657: _M_get_deleter(const std::type_info&) = 0; 8657: 8657: void 8657: _M_add_ref_copy() 8657: { __gnu_cxx::__atomic_add_dispatch(&_M_use_count, 1); } 8657: 8657: void 8657: _M_add_ref_lock(); 8657: 8657: void 8657: _M_release() 8657: { 8657: 8657: ; 8657: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, -1) == 1) 8657: { 8657: ; 8657: _M_dispose(); 8657: 8657: 8657: 8657: 8657: if (_Mutex_base<_Lp>::_S_need_barriers) 8657: { 8657: __atomic_thread_fence (4); 8657: } 8657: 8657: 8657: ; 8657: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, 8657: -1) == 1) 8657: { 8657: ; 8657: _M_destroy(); 8657: } 8657: } 8657: } 8657: 8657: void 8657: _M_weak_add_ref() 8657: { __gnu_cxx::__atomic_add_dispatch(&_M_weak_count, 1); } 8657: 8657: void 8657: _M_weak_release() 8657: { 8657: 8657: ; 8657: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, -1) == 1) 8657: { 8657: ; 8657: make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' if (_Mutex_base<_Lp>::_S_need_barriers) 8657: { 8657: 8657: 8657: __atomic_thread_fence (4); 8657: } 8657: _M_destroy(); 8657: } 8657: } 8657: 8657: long 8657: _M_get_use_count() const 8657: { 8657: 8657: 8657: return const_cast(_M_use_count); 8657: } 8657: 8657: private: 8657: _Sp_counted_base(_Sp_counted_base const&); 8657: _Sp_counted_base& operator=(_Sp_counted_base const&); 8657: 8657: _Atomic_word _M_use_count; 8657: _Atomic_word _M_weak_count; 8657: }; 8657: 8657: template<> 8657: inline void 8657: _Sp_counted_base<_S_single>:: 8657: _M_add_ref_lock() 8657: { 8657: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0) 8657: { 8657: _M_use_count = 0; 8657: __throw_bad_weak_ptr(); 8657: } 8657: } 8657: 8657: template<> 8657: inline void 8657: _Sp_counted_base<_S_mutex>:: 8657: _M_add_ref_lock() 8657: { 8657: __gnu_cxx::__scoped_lock sentry(*this); 8657: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0) 8657: { 8657: _M_use_count = 0; 8657: __throw_bad_weak_ptr(); 8657: } 8657: } 8657: 8657: template<> 8657: inline void 8657: _Sp_counted_base<_S_atomic>:: 8657: _M_add_ref_lock() 8657: { 8657: 8657: _Atomic_word __count = _M_use_count; 8657: do 8657: { 8657: if (__count == 0) 8657: __throw_bad_weak_ptr(); 8657: 8657: 8657: } 8657: while (!__atomic_compare_exchange_n(&_M_use_count, &__count, __count + 1, 8657: true, 4, 8657: 0)); 8657: } 8657: 8657: template 8657: class _Sp_counted_base_impl 8657: : public _Sp_counted_base<_Lp> 8657: { 8657: public: 8657: 8657: _Sp_counted_base_impl(_Ptr __p, _Deleter __d) 8657: : _M_ptr(__p), _M_del(__d) { } 8657: 8657: virtual void 8657: _M_dispose() 8657: { _M_del(_M_ptr); } 8657: 8657: virtual void* 8657: _M_get_deleter(const std::type_info& __ti) 8657: { 8657: 8657: return __ti == typeid(_Deleter) ? &_M_del : 0; 8657: 8657: 8657: 8657: } 8657: 8657: private: 8657: _Sp_counted_base_impl(const _Sp_counted_base_impl&); 8657: _Sp_counted_base_impl& operator=(const _Sp_counted_base_impl&); 8657: 8657: _Ptr _M_ptr; 8657: _Deleter _M_del; 8657: }; 8657: 8657: template<_Lock_policy _Lp = __default_lock_policy> 8657: class __weak_count; 8657: 8657: template 8657: struct _Sp_deleter 8657: { 8657: typedef void result_type; 8657: typedef _Tp* argument_type; 8657: void operator()(_Tp* __p) const { delete __p; } 8657: }; 8657: 8657: template<_Lock_policy _Lp = __default_lock_policy> 8657: class __shared_count 8657: { 8657: public: 8657: __shared_count() 8657: : _M_pi(0) 8657: { } 8657: 8657: template 8657: __shared_count(_Ptr __p) : _M_pi(0) 8657: { 8657: try 8657: { 8657: typedef typename std::tr1::remove_pointer<_Ptr>::type _Tp; 8657: _M_pi = new _Sp_counted_base_impl<_Ptr, _Sp_deleter<_Tp>, _Lp>( 8657: __p, _Sp_deleter<_Tp>()); 8657: } 8657: catch(...) 8657: { 8657: delete __p; 8657: throw; 8657: } 8657: } 8657: 8657: template 8657: __shared_count(_Ptr __p, _Deleter __d) : _M_pi(0) 8657: { 8657: try 8657: { 8657: _M_pi = new _Sp_counted_base_impl<_Ptr, _Deleter, _Lp>(__p, __d); 8657: } 8657: catch(...) 8657: { 8657: __d(__p); 8657: throw; 8657: } 8657: } 8657: 8657: 8657: template 8657: explicit 8657: __shared_count(std::auto_ptr<_Tp>& __r) 8657: : _M_pi(new _Sp_counted_base_impl<_Tp*, 8657: _Sp_deleter<_Tp>, _Lp >(__r.get(), _Sp_deleter<_Tp>())) 8657: { __r.release(); } 86make -f templates/tests/CMakeFiles/testbuiltins_exec.dir/build.make templates/tests/CMakeFiles/testbuiltins_exec.dir/build 57: 8657: 8657: explicit 8657: __shared_count(const __weak_count<_Lp>& __r); 8657: 8657: ~__shared_count() 8657: { 8657: if (_M_pi != 0) 8657: _M_pi->_M_release(); 8657: } 8657: 8657: __shared_count(const __shared_count& __r) 8657: : _M_pi(__r._M_pi) 8657: { 8657: if (_M_pi != 0) 8657: _M_pi->_M_add_ref_copy(); 8657: } 8657: 8657: __shared_count& 8657: operator=(const __shared_count& __r) 8657: { 8657: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8657: if (__tmp != _M_pi) 8657: { 8657: if (__tmp != 0) 8657: __tmp->_M_add_ref_copy(); 8657: if (_M_pi != 0) 8657: _M_pi->_M_release(); 8657: _M_pi = __tmp; 8657: } 8657: return *this; 8657: } 8657: 8657: void 8657: _M_swap(__shared_count& __r) 8657: { 8657: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8657: __r._M_pi = _M_pi; 8657: _M_pi = __tmp; 8657: } 8657: 8657: long 8657: _M_get_use_count() const 8657: { return _M_pi != 0 ? _M_pi->_M_get_use_count() : 0; } 8657: 8657: bool 8657: _M_unique() const 8657: { return this->_M_get_use_count() == 1; } 8657: 8657: friend inline bool 8657: operator==(const __shared_count& __a, const __shared_count& __b) 8657: { return __a._M_pi == __b._M_pi; } 8657: 8657: friend inline bool 8657: operator<(const __shared_count& __a, const __shared_count& __b) 8657: { return std::less<_Sp_counted_base<_Lp>*>()(__a._M_pi, __b._M_pi); } 8657: 8657: void* 8657: _M_get_deleter(const std::type_info& __ti) const 8657: { return _M_pi ? _M_pi->_M_get_deleter(__ti) : 0; } 8657: 8657: private: 8657: friend class __weak_count<_Lp>; 8657: 8657: _Sp_counted_base<_Lp>* _M_pi; 8657: }; 8657: 8657: 8657: template<_Lock_policy _Lp> 8657: class __weak_count 8657: { 8657: public: 8657: __weak_count() 8657: : _M_pi(0) 8657: { } 8657: 8657: __weak_count(const __shared_count<_Lp>& __r) 8657: : _M_pi(__r._M_pi) 8657: { 8657: if (_M_pi != 0) 8657: _M_pi->_M_weak_add_ref(); 8657: } 8657: 8657: __weak_count(const __weak_count<_Lp>& __r) 8657: : _M_pi(__r._M_pi) 8657: { 8657: if (_M_pi != 0) 8657: _M_pi->_M_weak_add_ref(); 8657: } 8657: 8657: ~__weak_count() 8657: { 8657: if (_M_pi != 0) 8657: _M_pi->_M_weak_release(); 8657: } 8657: 8657: __weak_count<_Lp>& 8657: operator=(const __shared_count<_Lp>& __r) 8657: { 8657: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8657: if (__tmp != 0) 8657: __tmp->_M_weak_add_ref(); 8657: if (_M_pi != 0) 8657: _M_pi->_M_weak_release(); 8657: _M_pi = __tmp; 8657: return *this; 8657: } 8657: 8657: __weak_count<_Lp>& 8657: operator=(const __weak_count<_Lp>& __r) 8657: { 8657: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8657: if (__tmp != 0) 8657: __tmp->_M_weak_add_ref(); 8657: if (_M_pi != 0) 8657: _M_pi->_M_weak_release(); 8657: _M_pi = __tmp; 8657: return *this; 8657: } 8657: 8657: void 8657: _M_swap(__weak_count<_Lp>& __r) 8657: { 8657: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8657: __r._M_pi = _M_pi; 8657: _M_pi = __tmp; 8657: } 8657: 8657: long 8657: _M_get_use_count() const 8657: { return _M_pi != 0 ? _M_pi->_M_get_use_count() : 0; } 8657: 8657: friend inline bool 8657: operator==(const __weak_count<_Lp>& __a, const __weak_count<_Lp>& __b) 8657: { return __a._M_pi == __b._M_pi; } 8657: 8657: friend inline bool 8657: operator<(const __weak_count<_Lp>& __a, const __weak_count<_Lp>& __b) 8657: { return std::less<_Sp_counted_base<_Lp>*>()(__a._M_pi, __b._M_pi); } 8657: 8657: private: 8657: friend class __shared_count<_Lp>; 8657: 8657: _Sp_counted_base<_Lp>* _M_pi; 8657: }; 8657: 8657: 8657: template<_Lock_policy _Lp> 8657: inline 8657: __shared_count<_Lp>:: 8657: __shared_count(const __weak_count<_Lp>& __r) 8657: : _M_pi(__r._M_pi) 8657: { 8657: if (_M_pi != 0) 8657: _M_pi->_M_add_ref_lock(); 8657: else 8657: __throw_bad_weak_ptr(); 8657: } 8657: 8657: 8657: template 8657: class __shared_ptr; 8657: 8657: template 8657: class __weak_ptr; 8657: 8657: template 8657: class __enable_shared_from_this; 8657: 8657: template 8657: class shared_ptr; 8657: 8657: template 8657: class weak_ptr; 8657: 8657: template 8657: class enable_shared_from_this; 8657: 8657: 8657: 8657: 8657: template<_Lock_policy _Lp, typename _Tp1, typename _Tp2> 8657: void 8657: __enable_shared_from_this_helper(const __shared_count<_Lp>&, 8657: const __enable_shared_from_this<_Tp1, 8657: _Lp>*, const _Tp2*); 8657: 8657: 8657: template 8657: void 8657: __enable_shared_from_this_helper(const __shared_count<>&, 8657: const enable_shared_from_this<_Tp1>*, 8657: const _Tp2*); 8657: 8657: template<_Lock_policy _Lp> 8657: inline void 8657: __enable_shared_from_this_helper(const __shared_count<_Lp>&, ...) 8657: { } 8657: 8657: 8657: struct __static_cast_tag { }; 8657: struct __const_cast_tag { }; 8657: struct __dynamic_cast_tag { }; 8657: 8657: 8657: 8657: 8657: template 8657: class __shared_ptr 8657: { 8657: public: 8657: typedef _Tp element_type; 8657: 8657: __shared_ptr() 8657: : _M_ptr(0), _M_refcount() 8657: { } 8657: 8657: template 8657: explicit 8657: __shared_ptr(_Tp1* __p) 8657: : _M_ptr(__p), _M_refcount(__p) 8657: { 8657: 8657: typedef int _IsComplete[sizeof(_Tp1)]; 8657: __enable_shared_from_this_helper(_M_refcount, __p, __p); 8657: } 8657: 8657: template 8657: __shared_ptr(_Tp1* __p, _Deleter __d) 8657: : _M_ptr(__p), _M_refcount(__p, __d) 8657: { 8657: 8657: 8657: __enable_shared_from_this_helper(_M_refcount, __p, __p); 8657: } 8657: 8657: 8657: 8657: template 8657: __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r) 8657: : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) 8657: { } 8657: 8657: template 8657: explicit 8657: __shared_ptr(const __weak_ptr<_Tp1, _Lp>& __r) 8657: : _M_refcount(__r._M_refcount) 8657: { 8657: 8657: 8657: 8657: _M_ptr = __r._M_ptr; 8657: } 8657: 8657: 8657: 8657: template 8657: explicit 8657: __shared_ptr(std::auto_ptr<_Tp1>& __r) 8657: : _M_ptr(__r.get()), _M_refcount() 8657: { 8657: 8657: typedef int _IsComplete[sizeof(_Tp1)]; 8657: _Tp1* __tmp = __r.get(); 8657: _M_refcount = __shared_count<_Lp>(__r); 8657: __enable_shared_from_this_helper(_M_refcount, __tmp, __tmp); 8657: } 8657: 8657: 8657: 8657: template 8657: __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r, __static_cast_tag) 8657: : _M_ptr(static_cast(__r._M_ptr)), 8657: _M_refcount(__r._M_refcount) 8657: { } 8657: 8657: template 8657: __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r, __const_cast_tag) 8657: : _M_ptr(const_cast(__r._M_ptr)), 8657: _M_refcount(__r._M_refcount) 8657: { } 8657: 8657: template 8657: __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r, __dynamic_cast_tag) 8657: : _M_ptr(dynamic_cast(__r._M_ptr)), 8657: _M_refcount(__r._M_refcount) 8657: { 8657: if (_M_ptr == 0) 8657: _M_refcount = __shared_count<_Lp>(); 8657: } 8657: 8657: template 8657: __shared_ptr& 8657: operator=(const __shared_ptr<_Tp1, _Lp>& __r) 8657: { 8657: _M_ptr = __r._M_ptr; 8657: _M_refcount = __r._M_refcount; 8657: return *this; 8657: } 8657: 8657: 8657: template 8657: __shared_ptr& 8657: operator=(std::auto_ptr<_Tp1>& __r) 8657: { 8657: __shared_ptr(__r).swap(*this); 8657: return *this; 8657: } 8657: 8657: 8657: void 8657: reset() 8657: { __shared_ptr().swap(*this); } 8657: 8657: template 8657: void 8657: reset(_Tp1* __p) 8657: { 8657: 8657: ; 8657: __shared_ptr(__p).swap(*this); 8657: } 8657: 8657: template 8657: void 8657: reset(_Tp1* __p, _Deleter __d) 8657: { __shared_ptr(__p, __d).swap(*this); } 8657: 8657: 8657: typename std::tr1::add_reference<_Tp>::type 8657: operator*() const 8657: { 8657: ; 8657: return *_M_ptr; 8657: } 8657: 8657: _Tp* 8657: operator->() const 8657: { 8657: ; 8657: return _M_ptr; 8657: } 8657: 8657: _Tp* 8657: get() const 8657: { return _M_ptr; } 8657: 8657: 8657: private: 8657: typedef _Tp* __shared_ptr::*__unspecified_bool_type; 8657: 8657: public: 8657: operator __unspecified_bool_type() const 8657: { return _M_ptr == 0 ? 0 : &__shared_ptr::_M_ptr; } 8657: 8657: bool 8657: unique() const 8657: { return _M_refcount._M_unique(); } 8657: 8657: long 8657: use_count() const 8657: { return _M_refcount._M_get_use_count(); } 8657: 8657: void 8657: swap(__shared_ptr<_Tp, _Lp>& __other) 8657: { 8657: std::swap(_M_ptr, __other._M_ptr); 8657: _M_refcount._M_swap(__other._M_refcount); 8657: } 8657: 8657: private: 8657: void* 8657: _M_get_deleter(const std::type_info& __ti) const 8657: { return _M_refcount._M_get_deleter(__ti); } 8657: 8657: template 8657: bool 8657: _M_less(const __shared_ptr<_Tp1, _Lp1>& __rhs) const 8657: { return _M_refcount < __rhs._M_refcount; } 8657: 8657: template friend class __shared_ptr; 8657: template friend class __weak_ptr; 8657: 8657: template 8657: friend _Del* get_deleter(const __shared_ptr<_Tp1, _Lp1>&); 8657: 8657: 8657: template 8657: friend inline bool 8657: operator==(const __shared_ptr& __a, const __shared_ptr<_Tp1, _Lp>& __b) 8657: { return __a.get() == __b.get(); } 8657: 8657: template 8657: friend inline bool 8657: operator!=(const __shared_ptr& __a, const __shared_ptr<_Tp1, _Lp>& __b) 8657: { return __a.get() != __b.get(); } 8657: 8657: template 8657: friend inline bool 8657: operator<(const __shared_ptr& __a, const __shared_ptr<_Tp1, _Lp>& __b) 8657: { return __a._M_less(__b); } 8657: 8657: _Tp* _M_ptr; 8657: __shared_count<_Lp> _M_refcount; 8657: }; 8657: 8657: 8657: template 8657: inline void 8657: swap(__shared_ptr<_Tp, _Lp>& __a, __shared_ptr<_Tp, _Lp>& __b) 8657: { __a.swap(__b); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline __shared_ptr<_Tp, _Lp> 8657: static_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) 8657: { return __shared_ptr<_Tp, _Lp>(__r, __static_cast_tag()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8657: inline __shared_ptr<_Tp, _Lp> 8657: const_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) 8657: { return __shared_ptr<_Tp, _Lp>(__r, __const_cast_tag()); } 8657: 8657: 8657: 8657: 8657: 8657: 8657: template 8make[3]: Entering directory '/<>/obj-arm-linux-gnueabihf' 657: inline __shared_ptr<_Tp, _Lp> 8657: dynamic_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) 8657: { return __shared_ptr<_Tp, _Lp>(__r, __dynamic_cast_tag()); } 8657: 8657: 8657: template 8657: std::basic_ostream<_Ch, _Tr>& 8657: operator<<(std::basic_ostream<_Ch, _Tr>& __os, 8657: const __shared_ptr<_Tp, _Lp>& __p) 8657: { 8657: __os << __p.get(); 8657: return __os; 8657: } 8657: 8657: 8657: template 8657: inline _Del* 8657: get_deleter(const __shared_ptr<_Tp, _Lp>& __p) 8657: { 8657: 8657: return static_cast<_Del*>(__p._M_get_deleter(typeid(_Del))); 8657: 8657: 8657: 8657: } 8657: 8657: 8657: template 8657: class __weak_ptr 8657: { 8657: public: 8657: typedef _Tp element_type; 8657: 8657: __weak_ptr() 8657: : _M_ptr(0), _M_refcount() 8657: { } 8657: # 823 "/usr/include/c++/8/tr1/shared_ptr.h" 3 8657: template 8657: __weak_ptr(const __weak_ptr<_Tp1, _Lp>& __r) 8657: : _M_refcount(__r._M_refcount) 8657: { 8657: 8657: _M_ptr = __r.lock().get(); 8657: } 8657: 8657: template 8657: __weak_ptr(const __shared_ptr<_Tp1, _Lp>& __r) 8657: : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) 8657: { } 8657: 8657: template 8657: __weak_ptr& 8657: operator=(const __weak_ptr<_Tp1, _Lp>& __r) 8657: { 8657: _M_ptr = __r.lock().get(); 8657: _M_refcount = __r._M_refcount; 8657: return *this; 8657: } 8657: 8657: template 8657: __weak_ptr& 8657: operator=(const __shared_ptr<_Tp1, _Lp>& __r) 8657: { 8657: _M_ptr = __r._M_ptr; 8657: _M_refcount = __r._M_refcount; 8657: return *this; 8657: } 8657: 8657: __shared_ptr<_Tp, _Lp> 8657: lock() const 8657: { 8657: 8657: 8657: if (expired()) 8657: return __shared_ptr(); 8657: 8657: try 8657: { 8657: return __shared_ptr(*this); 8657: } 8657: catch(const bad_weak_ptr&) 8657: { 8657: 8657: 8657: 8657: return __shared_ptr(); 8657: } 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: } 8657: 8657: long 8657: use_count() const 8657: { return _M_refcount._M_get_use_count(); } 8657: 8657: bool 8657: expired() const 8657: { return _M_refcount._M_get_use_count() == 0; } 8657: 8657: void 8657: reset() 8657: { __weak_ptr().swap(*this); } 8657: 8657: void 8657: swap(__weak_ptr& __s) 8657: { 8657: std::swap(_M_ptr, __s._M_ptr); 8657: _M_refcount._M_swap(__s._M_refcount); 8657: } 8657: 8657: private: 8657: 8657: void 8657: _M_assign(_Tp* __ptr, const __shared_count<_Lp>& __refcount) 8657: { 8657: _M_ptr = __ptr; 8657: _M_refcount = __refcount; 8657: } 8657: 8657: template 8657: bool 8657: _M_less(const __weak_ptr<_Tp1, _Lp>& __rhs) const 8657: { return _M_refcount < __rhs._M_refcount; } 8657: 8657: template friend class __shared_ptr; 8657: template friend class __weak_ptr; 8657: friend class __enable_shared_from_this<_Tp, _Lp>; 8657: friend class enable_shared_from_this<_Tp>; 8657: 8657: 8657: template 8657: friend inline bool 8657: operator<(const __weak_ptr& __lhs, const __weak_ptr<_Tp1, _Lp>& __rhs) 8657: { return __lhs._M_less(__rhs); } 8657: 8657: _Tp* _M_ptr; 8657: __weak_count<_Lp> _M_refcount; 8657: }; 8657: 8657: 8657: template 8657: inline void 8657: swap(__weak_ptr<_Tp, _Lp>& __a, __weak_ptr<_Tp, _Lp>& __b) 8657: { __a.swap(__b); } 8657: 8657: 8657: template 8657: class __enable_shared_from_this 8657: { 8657: protected: 8657: __enable_shared_from_this() { } 8657: 8657: __enable_shared_from_this(const __enable_shared_from_this&) { } 8657: 8657: __enable_shared_from_this& 8657: operator=(const __enable_shared_from_this&) 8657: { return *this; } 8657: 8657: ~__enable_shared_from_this() { } 8657: 8657: public: 8657: __shared_ptr<_Tp, _Lp> 8657: shared_from_this() 8657: { return __shared_ptr<_Tp, _Lp>(this->_M_weak_this); } 8657: 8657: __shared_ptr 8657: shared_from_this() const 8657: { return __shared_ptr(this->_M_weak_this); } 8657: 8657: private: 8657: template 8657: void 8657: _M_weak_assign(_Tp1* __p, const __shared_count<_Lp>& __n) const 8657: { _M_weak_this._M_assign(__p, __n); } 8657: 8657: template 8657: friend void 8657: __enable_shared_from_this_helper(const __shared_count<_Lp>& __pn, 8657: const __enable_shared_from_this* __pe, 8657: const _Tp1* __px) 8657: { 8657: if (__pe != 0) 8657: __pe->_M_weak_assign(const_cast<_Tp1*>(__px), __pn); 8657: } 8657: 8657: mutable __weak_ptr<_Tp, _Lp> _M_weak_this; 8657: }; 8657: 8657: 8657: 8657: 8657: template 8657: class shared_ptr 8657: : public __shared_ptr<_Tp> 8657: { 8657: public: 8657: shared_ptr() 8657: : __shared_ptr<_Tp>() { } 8657: 8657: template 8657: explicit 8657: shared_ptr(_Tp1* __p) 8657: : __shared_ptr<_Tp>(__p) { } 8657: 8657: template 8657: shared_ptr(_Tp1* __p, _Deleter __d) 8657: : __shared_ptr<_Tp>(__p, __d) { } 8657: 8657: template 8657: shared_ptr(const shared_ptr<_Tp1>& __r) 8657: : __shared_ptr<_Tp>(__r) { } 8657: 8657: template 8657: explicit 8657: shared_ptr(const weak_ptr<_Tp1>& __r) 8657: : __shared_ptr<_Tp>(__r) { } 8657: 8657: 8657: template 8657: explicit 8657: shared_ptr(std::auto_ptr<_Tp1>& __r) 8657: : __shared_ptr<_Tp>(__r) { } 8657: 8657: 8657: template 8657: shared_ptr(const shared_ptr<_Tp1>& __r, __static_cast_tag) 8657: : __shared_ptr<_Tp>(__r, __static_cast_tag()) { } 8657: 8657: template 8657: shared_ptr(const shared_ptr<_Tp1>& __r, __const_cast_tag) 8657: : __shared_ptr<_Tp>(__r, __const_cast_tag()) { } 8657: 8657: template 8657: shared_ptr(const shared_ptr<_Tp1>& __r, __dynamic_cast_tag) 8657: : __shared_ptr<_Tp>(__r, __dynamic_cast_tag()) { } 8657: 8657: template 8657: shared_ptr& 8657: operator=(const shared_ptr<_Tp1>& __r) 8657: { 8657: this->__shared_ptr<_Tp>::operator=(__r); 8657: return *this; 8657: } 8657: 8657: 8657: template 8657: shared_ptr& 8657: operator=(std::auto_ptr<_Tp1>& __r) 8657: { 8657: this->__shared_ptr<_Tp>::operator=(__r); 8657: return *this; 8657: } 8657: 8657: }; 8657: 8657: 8657: template 8657: inline void 8657: swap(__shared_ptr<_Tp>& __a, __shared_ptr<_Tp>& __b) 8657: { __a.swap(__b); } 8657: 8657: template 8657: inline shared_ptr<_Tp> 8657: static_pointer_cast(const shared_ptr<_Tp1>& __r) 8657: { return shared_ptr<_Tp>(__r, __static_cast_tag()); } 8657: 8657: template 8657: inline shared_ptr<_Tp> 8657: const_pointer_cast(const shared_ptr<_Tp1>& __r) 8657: { return shared_ptr<_Tp>(__r, __const_cast_tag()); } 8657: 8657: template 8657: inline shared_ptr<_Tp> 8657: dynamic_pointer_cast(const shared_ptr<_Tp1>& __r) 8657: { return shared_ptr<_Tp>(__r, __dynamic_cast_tag()); } 8657: 8657: 8657: 8657: 8657: template 8657: class weak_ptr 8657: : public __weak_ptr<_Tp> 8657: { 8657: public: 8657: weak_ptr() 8657: : __weak_ptr<_Tp>() { } 8657: 8657: template 8657: weak_ptr(const weak_ptr<_Tp1>& __r) 8657: : __weak_ptr<_Tp>(__r) { } 8657: 8657: template 8657: weak_ptr(const shared_ptr<_Tp1>& __r) 8657: : __weak_ptr<_Tp>(__r) { } 8657: 8657: template 8657: weak_ptr& 8657: operator=(const weak_ptr<_Tp1>& __r) 8657: { 8657: this->__weak_ptr<_Tp>::operator=(__r); 8657: return *this; 8657: } 8657: 8657: template 8657: weak_ptr& 8657: operator=(const shared_ptr<_Tp1>& __r) 8657: { 8657: this->__weak_ptr<_Tp>::operator=(__r); 8657: return *this; 8657: } 8657: 8657: shared_ptr<_Tp> 8657: lock() const 8657: { 8657: 8657: if (this->expired()) 8657: return shared_ptr<_Tp>(); 8657: 8657: try 8657: { 8657: return shared_ptr<_Tp>(*this); 8657: } 8657: catch(const bad_weak_ptr&) 8657: { 8657: return shared_ptr<_Tp>(); 8657: } 8657: 8657: 8657: 8657: 8657: } 8657: }; 8657: 8657: template 8657: class enable_shared_from_this 8657: { 8657: protected: 8657: enable_shared_from_this() { } 8657: 8657: enable_shared_from_this(const enable_shared_from_this&) { } 8657: 8657: enable_shared_from_this& 8657: operator=(const enable_shared_from_this&) 8657: { return *this; } 8657: 8657: ~enable_shared_from_this() { } 8657: 8657: public: 8657: shared_ptr<_Tp> 8657: shared_from_this() 8657: { return shared_ptr<_Tp>(this->_M_weak_this); } 8657: 8657: shared_ptr 8657: shared_from_this() const 8657: { return shared_ptr(this->_M_weak_this); } 8657: 8657: private: 8657: template 8657: void 8657: _M_weak_assign(_Tp1* __p, const __shared_count<>& __n) const 8657: { _M_weak_this._M_assign(__p, __n); } 8657: 8657: template 8657: friend void 8657: __enable_shared_from_this_helper(const __shared_count<>& __pn, 8657: const enable_shared_from_this* __pe, 8657: const _Tp1* __px) 8657: { 8657: if (__pe != 0) 8657: __pe->_M_weak_assign(const_cast<_Tp1*>(__px), __pn); 8657: } 8657: 8657: mutable weak_ptr<_Tp> _M_weak_this; 8657: }; 8657: } 8657: 8657: 8657: } 8657: # 51 "/usr/include/c++/8/tr1/memory" 2 3 8657: # 46 "/<>/templates/tests/testgenerictypes.cpp" 2 8657: 8657: 8657: template struct QMetaTypeId< 8657: # 48 "/<>/templates/tests/testgenerictypes.cpp" 8657: ThreeArray 8657: # 48 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof( 8657: # 48 "/<>/templates/tests/testgenerictypes.cpp" 8657: "ThreeArray" 8657: # 48 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )) + 1 + tNameLen + 1 + 1); typeName.append( 8657: # 48 "/<>/templates/tests/testgenerictypes.cpp" 8657: "ThreeArray" 8657: # 48 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , int(sizeof( 8657: # 48 "/<>/templates/tests/testgenerictypes.cpp" 8657: "ThreeArray" 8657: # 48 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )) - 1) .append('<').append(tName, tNameL[ 96%] Building CXX object templates/tests/CMakeFiles/testbuiltins_exec.dir/testbuiltins.cpp.o en); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< 8657: # 48 "/<>/templates/tests/testgenerictypes.cpp" 8657: ThreeArray 8657: # 48 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: >( typeName, reinterpret_cast< 8657: # 48 "/<>/templates/tests/testgenerictypes.cpp" 8657: ThreeArray 8657: # 48 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer< 8657: # 48 "/<>/templates/tests/testgenerictypes.cpp" 8657: ThreeArray 8657: # 48 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: > { enum { Value = true }; }; } 8657: 8657: namespace QtPrivate { template struct IsAssociativeContainer< 8657: # 50 "/<>/templates/tests/testgenerictypes.cpp" 8657: QtUnorderedMap 8657: # 50 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: > { enum { Value = true }; }; } template struct QMetaTypeId< 8657: # 50 "/<>/templates/tests/testgenerictypes.cpp" 8657: QtUnorderedMap 8657: # 50 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: > { enum { Defined = QMetaTypeId2::Defined && QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); const char *uName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); do { } while ((false) && (uName)); const int tNameLen = int(qstrlen(tName)); const int uNameLen = int(qstrlen(uName)); QByteArray typeName; typeName.reserve(int(sizeof( 8657: # 50 "/<>/templates/tests/testgenerictypes.cpp" 8657: "QtUnorderedMap" 8657: # 50 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )) + 1 + tNameLen + 1 + uNameLen + 1 + 1); typeName.append( 8657: # 50 "/<>/templates/tests/testgenerictypes.cpp" 8657: "QtUnorderedMap" 8657: # 50 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , int(sizeof( 8657: # 50 "/<>/templates/tests/testgenerictypes.cpp" 8657: "QtUnorderedMap" 8657: # 50 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )) - 1) .append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< 8657: # 50 "/<>/templates/tests/testgenerictypes.cpp" 8657: QtUnorderedMap 8657: # 50 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: >( typeName, reinterpret_cast< 8657: # 50 "/<>/templates/tests/testgenerictypes.cpp" 8657: QtUnorderedMap 8657: # 50 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8657: 8657: namespace QtPrivate { template struct SharedPointerMetaTypeIdHelper< 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8657: std::tr1::shared_ptr 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , true> { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char * const cName = T::staticMetaObject.className(); QByteArray typeName; typeName.reserve(int(sizeof( 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8657: "std::tr1::shared_ptr" 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ) + 1 + strlen(cName) + 1)); typeName.append( 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8657: "std::tr1::shared_ptr" 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , int(sizeof( 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8657: "std::tr1::shared_ptr" 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )) - 1) .append('<').append(cName).append('>'); const int newId = qRegisterNormalizedMetaType< 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8657: std::tr1::shared_ptr 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: >( typeName, reinterpret_cast< 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8657: std::tr1::shared_ptr 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; template struct MetaTypeSmartPointerHelper< 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8657: std::tr1::shared_ptr 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , typename std::enable_if::Value>::type> { static bool registerConverter(int id) { const int toId = QMetaType::QObjectStar; if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { QtPrivate::QSmartPointerConvertFunctor< 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8657: std::tr1::shared_ptr 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: > o; static const QtPrivate::ConverterFunctor< 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8657: std::tr1::shared_ptr 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , QObject*, QSmartPointerConvertFunctor< 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8657: std::tr1::shared_ptr 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: > > f(o); return QMetaType::registerConverterFunction(&f, id, toId); } return true; } }; } template struct QMetaTypeId< 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8657: std::tr1::shared_ptr 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: > : QtPrivate::SharedPointerMetaTypeIdHelper< 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8657: std::tr1::shared_ptr 8657: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , QtPrivate::IsPointerToTypeDerivedFromQObject::Value> { }; 8657: 8657: 8657: template struct QMetaTypeId< 8657: # 55 "/<>/templates/tests/testgenerictypes.cpp" 8657: std::deque 8657: # 55 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof( 8657: # 55 "/<>/templates/tests/testgenerictypes.cpp" 8657: "std::deque" 8657: # 55 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )) + 1 + tNameLen + 1 + 1); typeName.append( 8657: # 55 "/<>/templates/tests/testgenerictypes.cpp" 8657: "std::deque" 8657: # 55 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , int(sizeof( 8657: # 55 "/<>/templates/tests/testgenerictypes.cpp" 8657: "std::deque" 8657: # 55 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< 8657: # 55 "/<>/templates/tests/testgenerictypes.cpp" 8657: std::deque 8657: # 55 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: >( typeName, reinterpret_cast< 8657: # 55 "/<>/templates/tests/testgenerictypes.cpp" 8657: std::deque 8657: # 55 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer< 8657: # 55 "/<>/templates/tests/testgenerictypes.cpp" 8657: std::deque 8657: # 55 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: > { enum { Value = true }; }; } 8657: 8657: 8657: # 57 "/<>/templates/tests/testgenerictypes.cpp" 8657: class TestGenericTypes : public CoverageObject 8657: { 8657: 8657: # 59 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: public: 8657: # 59 "/<>/templates/tests/testgenerictypes.cpp" 8657: #pragma GCC diagnostic push 8657: # 59 "/<>/templates/tests/testgenerictypes.cpp" 8657: 8657: # 59 "/<>/templates/tests/testgenerictypes.cpp" 8657: #pragma GCC diagnostic ignored "-Wsuggest-override" 8657: # 59 "/<>/templates/tests/testgenerictypes.cpp" 8657: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8657: # 59 "/<>/templates/tests/testgenerictypes.cpp" 8657: #pragma GCC diagnostic ignored "-Wattributes" 8657: # 59 "/<>/templates/tests/testgenerictypes.cpp" 8657: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8657: # 59 "/<>/templates/tests/testgenerictypes.cpp" 8657: #pragma GCC diagnostic pop 8657: # 59 "/<>/templates/tests/testgenerictypes.cpp" 8657: struct QPrivateSignal {}; 8657: 8657: 8657: # 61 "/<>/templates/tests/testgenerictypes.cpp" 8657: private : 8657: 8657: void initTestCase(); 8657: 8657: void testGenericClassType(); 8657: void testSequentialContainer_Variant(); 8657: void testAssociativeContainer_Variant(); 8657: void testSequentialContainer_Type(); 8657: void testAssociativeContainer_Type(); 8657: void testSharedPointer(); 8657: void testThirdPartySharedPointer(); 8657: void testNestedContainers(); 8657: 8657: void testCustomQObjectDerived(); 8657: 8657: void testUnregistered(); 8657: void testPointerNonQObject(); 8657: }; 8657: 8657: class Person 8657: { 8657: public: 8657: Person() : age(0) {} 8657: Person(std::string _name, int _age) : name(_name), age(_age) 8657: { 8657: static auto _uid = 0; 8657: uid = ++_uid; 8657: } 8657: 8657: bool operator==(const Person &other) const { return uid == other.uid; } 8657: 8657: std::string name; 8657: int age; 8657: int uid; 8657: }; 8657: 8657: int qHash(const Person &p) { return p.uid; } 8657: 8657: 8657: # 99 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: template <> struct QMetaTypeId< 8657: # 99 "/<>/templates/tests/testgenerictypes.cpp" 8657: Person 8657: # 99 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< 8657: # 99 "/<>/templates/tests/testgenerictypes.cpp" 8657: Person 8657: # 99 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: >( 8657: # 99 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Person" 8657: # 99 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , reinterpret_cast< 8657: # 99 "/<>/templates/tests/testgenerictypes.cpp" 8657: Person 8657: # 99 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8657: 8657: 8657: # 101 "/<>/templates/tests/testgenerictypes.cpp" 8657: namespace Grantlee { template <> inline QVariant TypeAccessor::lookUp(const Person &object, const QString &property) { 8657: if (property == 8657: # 102 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 102 "/<>/templates/tests/testgenerictypes.cpp" 8657: "name" 8657: # 102 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 102 "/<>/templates/tests/testgenerictypes.cpp" 8657: "name" 8657: # 102 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 102 "/<>/templates/tests/testgenerictypes.cpp" 8657: ) 8657: return QString::fromStdString(object.name); 8657: else if (property == 8657: # 104 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 104 "/<>/templates/tests/testgenerictypes.cpp" 8657: "age" 8657: # 104 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 104 "/<>/templates/tests/testgenerictypes.cpp" 8657: "age" 8657: # 104 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 104 "/<>/templates/tests/testgenerictypes.cpp" 8657: ) 8657: return object.age; 8657: return QVariant(); } } 8657: 8657: class PersonObject : public QObject 8657: { 8657: 8657: # 110 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: public: 8657: # 110 "/<>/templates/tests/testgenerictypes.cpp" 8657: #pragma GCC diagnostic push 8657: # 110 "/<>/templates/tests/testgenerictypes.cpp" 8657: 8657: # 110 "/<>/templates/tests/testgenerictypes.cpp" 8657: #pragma GCC diagnostic ignored "-Wsuggest-override" 8657: # 110 "/<>/templates/tests/testgenerictypes.cpp" 8657: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8657: # 110 "/<>/templates/tests/testgenerictypes.cpp" 8657: #pragma GCC diagnostic ignored "-Wattributes" 8657: # 110 "/<>/templates/tests/testgenerictypes.cpp" 8657: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8657: # 110 "/<>/templates/tests/testgenerictypes.cpp" 8657: #pragma GCC diagnostic pop 8657: # 110 "/<>/templates/tests/testgenerictypes.cpp" 8657: struct QPrivateSignal {}; 8657: 8657: 8657: 8657: # 113 "/<>/templates/tests/testgenerictypes.cpp" 8657: public: 8657: PersonObject(const QString &name, int age, QObject *parent = 0) 8657: : QObject(parent), m_name(name), m_age(age) 8657: { 8657: } 8657: 8657: QString name() const { return m_name; } 8657: int age() const { return m_age; } 8657: 8657: private: 8657: const QString m_name; 8657: const int m_age; 8657: }; 8657: 8657: void TestGenericTypes::initTestCase() 8657: { 8657: 8657: Grantlee::registerMetaType(); 8657: } 8657: 8657: void TestGenericTypes::testGenericClassType() 8657: { 8657: Grantlee::Engine engine; 8657: 8657: engine.setPluginPaths(QStringList() << 8657: # 137 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 137 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 137 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 137 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 137 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 137 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: auto t1 = engine.newTemplate( 8657: 8657: # 140 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 140 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Person: \nName: {{p.name}}\nAge: {{p.age}}\nUnknown: {{p.unknown}}" 8657: # 140 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 140 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Person: \nName: {{p.name}}\nAge: {{p.age}}\nUnknown: {{p.unknown}}" 8657: # 140 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: 8657: # 141 "/<>/templates/tests/testgenerictypes.cpp" 8657: , 8657: 8657: # 142 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 142 "/<>/templates/tests/testgenerictypes.cpp" 8657: "template1" 8657: # 142 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 142 "/<>/templates/tests/testgenerictypes.cpp" 8657: "template1" 8657: # 142 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 142 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: 8657: QVariantHash h; 8657: Person p("Grant Lee", 2); 8657: h.insert( 8657: # 147 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 147 "/<>/templates/tests/testgenerictypes.cpp" 8657: "p" 8657: # 147 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 147 "/<>/templates/tests/testgenerictypes.cpp" 8657: "p" 8657: # 147 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 147 "/<>/templates/tests/testgenerictypes.cpp" 8657: , QVariant::fromValue(p)); 8657: Grantlee::Context c(h); 8657: 8657: # 149 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qCompare( 8657: # 149 "/<>/templates/tests/testgenerictypes.cpp" 8657: t1->render(&c) 8657: # 149 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 149 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Person: \nName: Grant Lee\nAge: 2\nUnknown: " 8657: # 149 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 149 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Person: \nName: Grant Lee\nAge: 2\nUnknown: " 8657: # 149 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8657: # 149 "/<>/templates/tests/testgenerictypes.cpp" 8657: "t1->render(&c)" 8657: # 149 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 149 "/<>/templates/tests/testgenerictypes.cpp" 8657: "QStringLiteral(\"Person: \\nName: Grant Lee\\nAge: 2\\nUnknown: \")" 8657: # 149 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: "/<>/templates/tests/testgenerictypes.cpp" 8657: # 149 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: 150 8657: # 149 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )) return;} while (false) 8657: 8657: # 150 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: } 8657: 8657: static QMap getPeople() 8657: { 8657: QMap people; 8657: people.insert(23, Person("Claire", 23)); 8657: people.insert(32, Person("Grant", 32)); 8657: people.insert(50, Person("Alan", 50)); 8657: return people; 8657: } 8657: 8657: template 8657: void insertPeopleVariants(Grantlee::Context &c) 8657: { 8657: auto people = getPeople(); 8657: auto it = people.constBegin(); 8657: const auto end = people.constEnd(); 8657: SequentialContainer container; 8657: for (; it != end; ++it) 8657: container.push_back(QVariant::fromValue(it.value())); 8657: c.insert( 8657: # 171 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 171 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people" 8657: # 171 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 171 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people" 8657: # 171 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 171 "/<>/templates/tests/testgenerictypes.cpp" 8657: , QVariant::fromValue(container)); 8657: } 8657: 8657: template 8657: void insertAssociatedPeopleVariants(Grantlee::Context &c) 8657: { 8657: auto people = getPeople(); 8657: auto it = people.constBegin(); 8657: const auto end = people.constEnd(); 8657: AssociativeContainer container; 8657: for (; it != end; ++it) 8657: container.insert(QString::number(it.key()), 8657: QVariant::fromValue(it.value())); 8657: c.insert( 8657: # 184 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 184 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people" 8657: # 184 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizecd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testbuiltins_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testbuiltins_exec.dir/testbuiltins.cpp.o -c /<>/templates/tests/testbuiltins.cpp of(QStringData) }, u"" 8657: # 184 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people" 8657: # 184 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 184 "/<>/templates/tests/testgenerictypes.cpp" 8657: , QVariant::fromValue(container)); 8657: } 8657: 8657: template <> 8657: void insertPeopleVariants>(Grantlee::Context &c) 8657: { 8657: insertAssociatedPeopleVariants>(c); 8657: } 8657: 8657: template <> 8657: void insertPeopleVariants>(Grantlee::Context &c) 8657: { 8657: insertAssociatedPeopleVariants>(c); 8657: } 8657: 8657: template void testSequentialIteration(Grantlee::Context &c) 8657: { 8657: Grantlee::Engine engine; 8657: 8657: engine.setPluginPaths(QStringList() << 8657: # 203 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 203 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 203 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 203 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 203 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 203 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: { 8657: Grantlee::Template t1 = engine.newTemplate( 8657: 8657: # 207 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 207 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{% for person in people %}{{ person.name }},{% endfor %}" 8657: # 207 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 207 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{% for person in people %}{{ person.name }},{% endfor %}" 8657: # 207 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: 8657: # 208 "/<>/templates/tests/testgenerictypes.cpp" 8657: , 8657: 8657: # 209 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 209 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people_template" 8657: # 209 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 209 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people_template" 8657: # 209 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 209 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: # 210 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qCompare( 8657: # 210 "/<>/templates/tests/testgenerictypes.cpp" 8657: t1->render(&c) 8657: # 210 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 210 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Claire,Grant,Alan," 8657: # 210 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 210 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Claire,Grant,Alan," 8657: # 210 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8657: # 210 "/<>/templates/tests/testgenerictypes.cpp" 8657: "t1->render(&c)" 8657: # 210 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 210 "/<>/templates/tests/testgenerictypes.cpp" 8657: "QStringLiteral(\"Claire,Grant,Alan,\")" 8657: # 210 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "/<>/templates/tests/testgenerictypes.cpp", 210)) return;} while (false) 8657: # 210 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: } 8657: } 8657: 8657: template void testSequentialIndexing(Grantlee::Context &c) 8657: { 8657: Grantlee::Engine engine; 8657: 8657: engine.setPluginPaths(QStringList() << 8657: # 218 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 218 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 218 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 218 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 218 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 218 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: { 8657: Grantlee::Template t1 = engine.newTemplate( 8657: 8657: # 222 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 222 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{{ people.0.name }},{{ people.1.name }},{{ people.2.name }}," 8657: # 222 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 222 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{{ people.0.name }},{{ people.1.name }},{{ people.2.name }}," 8657: # 222 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: 8657: # 223 "/<>/templates/tests/testgenerictypes.cpp" 8657: , 8657: 8657: # 224 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 224 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people_template" 8657: # 224 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 224 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people_template" 8657: # 224 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 224 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: # 225 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qCompare( 8657: # 225 "/<>/templates/tests/testgenerictypes.cpp" 8657: t1->render(&c) 8657: # 225 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 225 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Claire,Grant,Alan," 8657: # 225 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 225 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Claire,Grant,Alan," 8657: # 225 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8657: # 225 "/<>/templates/tests/testgenerictypes.cpp" 8657: "t1->render(&c)" 8657: # 225 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 225 "/<>/templates/tests/testgenerictypes.cpp" 8657: "QStringLiteral(\"Claire,Grant,Alan,\")" 8657: # 225 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "/<>/templates/tests/testgenerictypes.cpp", 225)) return;} while (false) 8657: # 225 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: } 8657: } 8657: 8657: template struct SequentialContainerTester { 8657: static void iteration(Grantlee::Context &c) 8657: { 8657: testSequentialIteration(c); 8657: } 8657: 8657: static void indexing(Grantlee::Context &c) 8657: { 8657: testSequentialIndexing(c); 8657: } 8657: }; 8657: 8657: template struct SequentialContainerTester> { 8657: static void iteration(Grantlee::Context &c) 8657: { 8657: Grantlee::Engine engine; 8657: 8657: engine.setPluginPaths(QStringList() 8657: << 8657: # 247 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 247 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 247 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 247 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 247 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 247 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: Grantlee::Template t1 = engine.newTemplate( 8657: 8657: # 250 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 250 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{% for person in people %}{{ person.name }},{% endfor %}" 8657: # 250 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 250 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{% for person in people %}{{ person.name }},{% endfor %}" 8657: # 250 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: 8657: # 251 "/<>/templates/tests/testgenerictypes.cpp" 8657: , 8657: 8657: # 252 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 252 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people_template" 8657: # 252 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 252 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people_template" 8657: # 252 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 252 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: auto result = t1->render(&c); 8657: QStringList output; 8657: output << 8657: # 255 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 255 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Claire," 8657: # 255 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 255 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Claire," 8657: # 255 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 255 "/<>/templates/tests/testgenerictypes.cpp" 8657: << 8657: # 255 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 255 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Grant," 8657: # 255 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 255 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Grant," 8657: # 255 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: 8657: # 256 "/<>/templates/tests/testgenerictypes.cpp" 8657: << 8657: # 256 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 256 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Alan," 8657: # 256 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 256 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Alan," 8657: # 256 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 256 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: 8657: # 257 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8657: # 257 "/<>/templates/tests/testgenerictypes.cpp" 8657: output 8657: # 257 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8657: # 257 "/<>/templates/tests/testgenerictypes.cpp" 8657: const QString &s 8657: # 257 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: = *_container_.i; _container_.control; _container_.control = 0) 8657: # 257 "/<>/templates/tests/testgenerictypes.cpp" 8657: { 8657: 8657: # 258 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qVerify(static_cast( 8657: # 258 "/<>/templates/tests/testgenerictypes.cpp" 8657: result.contains(s) 8657: # 258 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ), 8657: # 258 "/<>/templates/tests/testgenerictypes.cpp" 8657: "result.contains(s)" 8657: # 258 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "", "/<>/templates/tests/testgenerictypes.cpp", 258)) return;} while (false) 8657: # 258 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: } 8657: 8657: 8657: # 261 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qCompare( 8657: # 261 "/<>/templates/tests/testgenerictypes.cpp" 8657: result.length() 8657: # 261 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 261 "/<>/templates/tests/testgenerictypes.cpp" 8657: output.join(QString()).length() 8657: # 261 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 261 "/<>/templates/tests/testgenerictypes.cpp" 8657: "result.length()" 8657: # 261 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 261 "/<>/templates/tests/testgenerictypes.cpp" 8657: "output.join(QString()).length()" 8657: # 261 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "/<>/templates/tests/testgenerictypes.cpp", 261)) return;} while (false) 8657: # 261 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: } 8657: 8657: static void indexing(Grantlee::Context) {} 8657: }; 8657: 8657: template struct SequentialContainerTester> { 8657: static void iteration(Grantlee::Context &c) 8657: { 8657: testSequentialIteration>(c); 8657: } 8657: 8657: static void indexing(Grantlee::Context) {} 8657: }; 8657: 8657: template struct SequentialContainerTester> { 8657: static void iteration(Grantlee::Context &c) 8657: { 8657: testSequentialIteration>(c); 8657: } 8657: 8657: static void indexing(Grantlee::Context) {} 8657: }; 8657: 8657: template void doTestSequentialContainer_Variant() 8657: { 8657: Grantlee::Context c; 8657: 8657: insertPeopleVariants(c); 8657: 8657: SequentialContainerTester::iteration(c); 8657: SequentialContainerTester::indexing(c); 8657: } 8657: 8657: template 8657: void testAssociativeValues(Grantlee::Context &c, bool unordered = false) 8657: { 8657: Grantlee::Engine engine; 8657: 8657: engine.setPluginPaths(QStringList() << 8657: # 300 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 300 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 300 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 300 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 300 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 300 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: { 8657: Grantlee::Template t1 = engine.newTemplate( 8657: 8657: # 304 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 304 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{% for person in people.values %}({{ person.name }}:{{ person.age }}),{% endfor %}" 8657: # 304 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 304 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{% for person in people.values %}({{ person.name }}:{{ person.age }}),{% endfor %}" 8657: # 304 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 304 "/<>/templates/tests/testgenerictypes.cpp" 8657: , 8657: 8657: # 305 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 305 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people_template" 8657: # 305 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 305 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people_template" 8657: # 305 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 305 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: auto result = t1->render(&c); 8657: if (!unordered) 8657: 8657: # 309 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qCompare( 8657: # 309 "/<>/templates/tests/testgenerictypes.cpp" 8657: result 8657: # 309 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 309 "/<>/templates/tests/testgenerictypes.cpp" 8657: "(Claire:23),(Grant:32),(Alan:50)," 8657: # 309 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 309 "/<>/templates/tests/testgenerictypes.cpp" 8657: "(Claire:23),(Grant:32),(Alan:50)," 8657: # 309 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8657: # 309 "/<>/templates/tests/testgenerictypes.cpp" 8657: "result" 8657: # 309 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 309 "/<>/templates/tests/testgenerictypes.cpp" 8657: "QStringLiteral(\"(Claire:23),(Grant:32),(Alan:50),\")" 8657: # 309 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "/<>/templates/tests/testgenerictypes.cpp", 309)) return;} while (false) 8657: # 309 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: else { 8657: 8657: # 311 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qVerify(static_cast( 8657: # 311 "/<>/templates/tests/testgenerictypes.cpp" 8657: result.size() == 33 8657: # 311 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ), 8657: # 311 "/<>/templates/tests/testgenerictypes.cpp" 8657: "result.size() == 33" 8657: # 311 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "", "/<>/templates/tests/testgenerictypes.cpp", 311)) return;} while (false) 8657: # 311 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: 8657: # 312 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qVerify(static_cast( 8657: # 312 "/<>/templates/tests/testgenerictypes.cpp" 8657: result.contains( 8657: # 312 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 312 "/<>/templates/tests/testgenerictypes.cpp" 8657: "(Claire:23)," 8657: # 312 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 312 "/<>/templates/tests/testgenerictypes.cpp" 8657: "(Claire:23)," 8657: # 312 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 312 "/<>/templates/tests/testgenerictypes.cpp" 8657: ) 8657: # 312 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ), 8657: # 312 "/<>/templates/tests/testgenerictypes.cpp" 8657: "result.contains(QStringLiteral(\"(Claire:23),\"))" 8657: # 312 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "", "/<>/templates/tests/testgenerictypes.cpp", 312)) return;} while (false) 8657: # 312 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: 8657: # 313 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qVerify(static_cast( 8657: # 313 "/<>/templates/tests/testgenerictypes.cpp" 8657: result.contains( 8657: # 313 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 313 "/<>/templates/tests/testgenerictypes.cpp" 8657: "(Grant:32)," 8657: # 313 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 313 "/<>/templates/tests/testgenerictypes.cpp" 8657: "(Grant:32)," 8657: # 313 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 313 "/<>/templates/tests/testgenerictypes.cpp" 8657: ) 8657: # 313 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ), 8657: # 313 "/<>/templates/tests/testgenerictypes.cpp" 8657: "result.contains(QStringLiteral(\"(Grant:32),\"))" 8657: # 313 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "", "/<>/templates/tests/testgenerictypes.cpp", 313)) return;} while (false) 8657: # 313 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: 8657: # 314 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qVerify(static_cast( 8657: # 314 "/<>/templates/tests/testgenerictypes.cpp" 8657: result.contains( 8657: # 314 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 314 "/<>/templates/tests/testgenerictypes.cpp" 8657: "(Alan:50)," 8657: # 314 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 314 "/<>/templates/tests/testgenerictypes.cpp" 8657: "(Alan:50)," 8657: # 314 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 314 "/<>/templates/tests/testgenerictypes.cpp" 8657: ) 8657: # 314 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ), 8657: # 314 "/<>/templates/tests/testgenerictypes.cpp" 8657: "result.contains(QStringLiteral(\"(Alan:50),\"))" 8657: # 314 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "", "/<>/templates/tests/testgenerictypes.cpp", 314)) return;} while (false) 8657: # 314 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: } 8657: } 8657: } 8657: 8657: template 8657: void testAssociativeItems(Grantlee::Context &c, bool unordered) 8657: { 8657: Grantlee::Engine engine; 8657: 8657: engine.setPluginPaths(QStringList() << 8657: # 324 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 324 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 324 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 324 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 324 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 324 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: { 8657: Grantlee::Template t1 = engine.newTemplate( 8657: 8657: # 328 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 328 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{% for item in people.items %}({{ item.1.name }}:{{ item.1.age }}),{% endfor %}" 8657: # 328 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 328 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{% for item in people.items %}({{ item.1.name }}:{{ item.1.age }}),{% endfor %}" 8657: # 328 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 328 "/<>/templates/tests/testgenerictypes.cpp" 8657: , 8657: 8657: # 329 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 329 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people_template" 8657: # 329 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 329 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people_template" 8657: # 329 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 329 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: auto result = t1->render(&c); 8657: if (!unordered) 8657: 8657: # 332 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qCompare( 8657: # 332 "/<>/templates/tests/testgenerictypes.cpp" 8657: result 8657: # 332 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 332 "/<>/templates/tests/testgenerictypes.cpp" 8657: "(Claire:23),(Grant:32),(Alan:50)," 8657: # 332 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 332 "/<>/templates/tests/testgenerictypes.cpp" 8657: "(Claire:23),(Grant:32),(Alan:50)," 8657: # 332 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8657: # 332 "/<>/templates/tests/testgenerictypes.cpp" 8657: "result" 8657: # 332 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 332 "/<>/templates/tests/testgenerictypes.cpp" 8657: "QStringLiteral(\"(Claire:23),(Grant:32),(Alan:50),\")" 8657: # 332 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "/<>/templates/tests/testgenerictypes.cpp", 332)) return;} while (false) 8657: # 332 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: else { 8657: 8657: # 334 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qVerify(static_cast( 8657: # 334 "/<>/templates/tests/testgenerictypes.cpp" 8657: result.size() == 33 8657: # 334 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ), 8657: # 334 "/<>/templates/tests/testgenerictypes.cpp" 8657: "result.size() == 33" 8657: # 334 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "", "/<>/templates/tests/testgenerictypes.cpp", 334)) return;} while (false) 8657: # 334 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: 8657: # 335 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qVerify(static_cast( 8657: # 335 "/<>/templates/tests/testgenerictypes.cpp" 8657: result.contains( 8657: # 335 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 335 "/<>/templates/tests/testgenerictypes.cpp" 8657: "(Claire:23)," 8657: # 335 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 335 "/<>/templates/tests/testgenerictypes.cpp" 8657: "(Claire:23)," 8657: # 335 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 335 "/<>/templates/tests/testgenerictypes.cpp" 8657: ) 8657: # 335 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ), 8657: # 335 "/<>/templates/tests/testgenerictypes.cpp" 8657: "result.contains(QStringLiteral(\"(Claire:23),\"))" 8657: # 335 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "", "/<>/templates/tests/testgenerictypes.cpp", 335)) return;} while (false) 8657: # 335 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: 8657: # 336 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qVerify(static_cast( 8657: # 336 "/<>/templates/tests/testgenerictypes.cpp" 8657: result.contains( 8657: # 336 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 336 "/<>/templates/tests/testgenerictypes.cpp" 8657: "(Grant:32)," 8657: # 336 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 336 "/<>/templates/tests/testgenerictypes.cpp" 8657: "(Grant:32)," 8657: # 336 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 336 "/<>/templates/tests/testgenerictypes.cpp" 8657: ) 8657: # 336 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ), 8657: # 336 "/<>/templates/tests/testgenerictypes.cpp" 8657: "result.contains(QStringLiteral(\"(Grant:32),\"))" 8657: # 336 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "", "/<>/templates/tests/testgenerictypes.cpp", 336)) return;} while (false) 8657: # 336 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: 8657: # 337 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qVerify(static_cast( 8657: # 337 "/<>/templates/tests/testgenerictypes.cpp" 8657: result.contains( 8657: # 337 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 337 "/<>/templates/tests/testgenerictypes.cpp" 8657: "(Alan:50)," 8657: # 337 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 337 "/<>/templates/tests/testgenerictypes.cpp" 8657: "(Alan:50)," 8657: # 337 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 337 "/<>/templates/tests/testgenerictypes.cpp" 8657: ) 8657: # 337 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ), 8657: # 337 "/<>/templates/tests/testgenerictypes.cpp" 8657: "result.contains(QStringLiteral(\"(Alan:50),\"))" 8657: # 337 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "", "/<>/templates/tests/testgenerictypes.cpp", 337)) return;} while (false) 8657: # 337 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: } 8657: } 8657: } 8657: 8657: template 8657: void doTestAssociativeContainer_Variant(bool unordered = false) 8657: { 8657: Grantlee::Engine engine; 8657: 8657: engine.setPluginPaths(QStringList() << 8657: # 347 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 347 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 347 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 347 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 347 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 347 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: Grantlee::Context c; 8657: 8657: insertPeopleVariants(c); 8657: testAssociativeValues(c, unordered); 8657: testAssociativeItems(c, unordered); 8657: } 8657: 8657: void TestGenericTypes::testSequentialContainer_Variant() 8657: { 8657: doTestSequentialContainer_Variant(); 8657: doTestSequentialContainer_Variant>(); 8657: doTestSequentialContainer_Variant>(); 8657: doTestSequentialContainer_Variant>(); 8657: doTestSequentialContainer_Variant>(); 8657: } 8657: 8657: void TestGenericTypes::testAssociativeContainer_Variant() 8657: { 8657: doTestAssociativeContainer_Variant(); 8657: doTestAssociativeContainer_Variant(true); 8657: } 8657: 8657: template void insertPeople(Grantlee::Context &c) 8657: { 8657: auto people = getPeople(); 8657: auto it = people.constBegin(); 8657: const auto end = people.constEnd(); 8657: SequentialContainer container; 8657: for (; it != end; ++it) 8657: container.insert(container.end(), it.value()); 8657: c.insert( 8657: # 379 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 379 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people" 8657: # 379 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 379 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people" 8657: # 379 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 379 "/<>/templates/tests/testgenerictypes.cpp" 8657: , QVariant::fromValue(container)); 8657: } 8657: 8657: template <> void insertPeople>(Grantlee::Context &c) 8657: { 8657: auto people = getPeople(); 8657: auto it = people.constBegin(); 8657: const auto end = people.constEnd(); 8657: QSet container; 8657: for (; it != end; ++it) 8657: container.insert(it.value()); 8657: c.insert( 8657: # 390 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 390 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people" 8657: # 390 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 390 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people" 8657: # 390 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 390 "/<>/templates/tests/testgenerictypes.cpp" 8657: , QVariant::fromValue(container)); 8657: } 8657: 8657: 8657: template <> void insertPeople>(Grantlee::Context &c) 8657: { 8657: auto people = getPeople(); 8657: auto it = people.constBegin(); 8657: ThreeArray container; 8657: for (auto i = 0; i < 3; ++i, ++it) { 8657: 8657: # 400 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { } while ((false) && ( 8657: # 400 "/<>/templates/tests/testgenerictypes.cpp" 8657: it != people.constEnd() 8657: # 400 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )) 8657: # 400 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: container[i] = it.value(); 8657: } 8657: c.insert( 8657: # 403 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 403 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people" 8657: # 403 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 403 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people" 8657: # 403 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 403 "/<>/templates/tests/testgenerictypes.cpp" 8657: , QVariant::fromValue(container)); 8657: } 8657: 8657: 8657: template 8657: void insertAssociatedPeople(Grantlee::Context &c) 8657: { 8657: auto people = getPeople(); 8657: auto it = people.constBegin(); 8657: const auto end = people.constEnd(); 8657: AssociativeContainer container; 8657: for (; it != end; ++it) 8657: container[QString::number(it.key())] = it.value(); 8657: c.insert( 8657: # 416 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 416 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people" 8657: # 416 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 416 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people" 8657: # 416 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 416 "/<>/templates/tests/testgenerictypes.cpp" 8657: , QVariant::fromValue(container)); 8657: } 8657: 8657: template 8657: void insertAssociatedPeople_Number(Grantlee::Context &c) 8657: { 8657: auto people = getPeople(); 8657: auto it = people.constBegin(); 8657: const auto end = people.constEnd(); 8657: AssociativeContainer container; 8657: for (; it != end; ++it) 8657: container[it.key()] = it.value(); 8657: c.insert( 8657: # 428 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 428 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people" 8657: # 428 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 428 "/<>/templates/tests/testgenerictypes.cpp" 8657: "people" 8657: # 428 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 428 "/<>/templates/tests/testgenerictypes.cpp" 8657: , QVariant::fromValue(container)); 8657: } 8657: 8657: template void doTestSequentialContainer_Type() 8657: { 8657: Grantlee::Context c; 8657: 8657: insertPeople(c); 8657: 8657: SequentialContainerTester::iteration(c); 8657: SequentialContainerTester::indexing(c); 8657: } 8657: 8657: template 8657: void doTestAssociativeContainer_Type(bool unordered = false) 8657: { 8657: Grantlee::Engine engine; 8657: 8657: engine.setPluginPaths(QStringList() << 8657: # 446 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 446 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 446 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 446 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 446 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 446 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: Grantlee::Context c; 8657: 8657: insertAssociatedPeople(c); 8657: testAssociativeValues(c, unordered); 8657: testAssociativeItems(c, unordered); 8657: } 8657: 8657: template 8657: void doTestAssociativeContainer_Type_Number(bool unordered = false) 8657: { 8657: Grantlee::Engine engine; 8657: 8657: engine.setPluginPaths(QStringList() << 8657: # 460 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 460 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 460 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 460 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 460 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 460 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: Grantlee::Context c; 8657: 8657: insertAssociatedPeople_Number(c); 8657: testAssociativeValues(c, unordered); 8657: testAssociativeItems(c, unordered); 8657: 8657: { 8657: Grantlee::Template t1 8657: = engine.newTemplate( 8657: # 470 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 470 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{{ people.23.name }}" 8657: # 470 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 470 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{{ people.23.name }}" 8657: # 470 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 470 "/<>/templates/tests/testgenerictypes.cpp" 8657: , 8657: 8657: # 471 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 471 "/<>/templates/tests/testgenerictypes.cpp" 8657: "claire_template" 8657: # 471 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 471 "/<>/templates/tests/testgenerictypes.cpp" 8657: "claire_template" 8657: # 471 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 471 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: auto result = t1->render(&c); 8657: 8657: # 473 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qCompare( 8657: # 473 "/<>/templates/tests/testgenerictypes.cpp" 8657: result 8657: # 473 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 473 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Claire" 8657: # 473 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 473 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Claire" 8657: # 473 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8657: # 473 "/<>/templates/tests/testgenerictypes.cpp" 8657: "result" 8657: # 473 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 473 "/<>/templates/tests/testgenerictypes.cpp" 8657: "QStringLiteral(\"Claire\")" 8657: # 473 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "/<>/templates/tests/testgenerictypes.cpp", 473)) return;} while (false) 8657: # 473 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: } 8657: } 8657: 8657: void TestGenericTypes::testSequentialContainer_Type() 8657: { 8657: doTestSequentialContainer_Type>(); 8657: doTestSequentialContainer_Type>(); 8657: doTestSequentialContainer_Type>(); 8657: doTestSequentialContainer_Type>(); 8657: doTestSequentialContainer_Type>(); 8657: doTestSequentialContainer_Type>(); 8657: doTestSequentialContainer_Type>(); 8657: doTestSequentialContainer_Type>(); 8657: doTestSequentialContainer_Type>(); 8657: 8657: doTestSequentialContainer_Type>(); 8657: 8657: } 8657: 8657: void TestGenericTypes::testAssociativeContainer_Type() 8657: { 8657: doTestAssociativeContainer_Type>(); 8657: doTestAssociativeContainer_Type_Number>(); 8657: doTestAssociativeContainer_Type_Number>(); 8657: doTestAssociativeContainer_Type_Number>(); 8657: doTestAssociativeContainer_Type_Number>(); 8657: doTestAssociativeContainer_Type_Number>(); 8657: doTestAssociativeContainer_Type_Number>(); 8657: doTestAssociativeContainer_Type>(true); 8657: doTestAssociativeContainer_Type_Number>(true); 8657: doTestAssociativeContainer_Type_Number>(true); 8657: doTestAssociativeContainer_Type_Number>(true); 8657: doTestAssociativeContainer_Type_Number>(true); 8657: doTestAssociativeContainer_Type_Number>(true); 8657: doTestAssociativeContainer_Type_Number>(true); 8657: 8657: doTestAssociativeContainer_Type>(); 8657: doTestAssociativeContainer_Type_Number>(); 8657: doTestAssociativeContainer_Type_Number>(); 8657: doTestAssociativeContainer_Type_Number>(); 8657: doTestAssociativeContainer_Type_Number>(); 8657: doTestAssociativeContainer_Type_Number>(); 8657: doTestAssociativeContainer_Type_Number>(); 8657: 8657: 8657: doTestAssociativeContainer_Type>(true); 8657: doTestAssociativeContainer_Type_Number>(true); 8657: doTestAssociativeContainer_Type_Number>(true); 8657: doTestAssociativeContainer_Type_Number>(true); 8657: doTestAssociativeContainer_Type_Number>(true); 8657: doTestAssociativeContainer_Type_Number>(true); 8657: doTestAssociativeContainer_Type_Number>(true); 8657: 8657: } 8657: 8657: void TestGenericTypes::testSharedPointer() 8657: { 8657: Grantlee::Engine engine; 8657: 8657: engine.setPluginPaths(QStringList() << 8657: # 533 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 533 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 533 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 533 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 533 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 533 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: auto t1 = engine.newTemplate( 8657: # 535 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 535 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{{ p.name }} {{ p.age }}" 8657: # 535 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 535 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{{ p.name }} {{ p.age }}" 8657: # 535 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 535 "/<>/templates/tests/testgenerictypes.cpp" 8657: , 8657: 8657: # 536 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 536 "/<>/templates/tests/testgenerictypes.cpp" 8657: "template1" 8657: # 536 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 536 "/<>/templates/tests/testgenerictypes.cpp" 8657: "template1" 8657: # 536 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 536 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: 8657: QVariantHash h; 8657: QSharedPointer p( 8657: new PersonObject( 8657: # 541 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 541 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Grant Lee" 8657: # 541 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 541 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Grant Lee" 8657: # 541 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 541 "/<>/templates/tests/testgenerictypes.cpp" 8657: , 2)); 8657: h.insert( 8657: # 542 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 542 "/<>/templates/tests/testgenerictypes.cpp" 8657: "p" 8657: # 542 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 542 "/<>/templates/tests/testgenerictypes.cpp" 8657: "p" 8657: # 542 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 542 "/<>/templates/tests/testgenerictypes.cpp" 8657: , QVariant::fromValue(p)); 8657: Grantlee::Context c(h); 8657: 8657: # 544 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qCompare( 8657: # 544 "/<>/templates/tests/testgenerictypes.cpp" 8657: t1->render(&c) 8657: # 544 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 544 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Grant Lee 2" 8657: # 544 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 544 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Grant Lee 2" 8657: # 544 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8657: # 544 "/<>/templates/tests/testgenerictypes.cpp" 8657: "t1->render(&c)" 8657: # 544 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 544 "/<>/templates/tests/testgenerictypes.cpp" 8657: "QStringLiteral(\"Grant Lee 2\")" 8657: # 544 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "/<>/templates/tests/testgenerictypes.cpp", 544)) return;} while (false) 8657: # 544 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: } 8657: 8657: void TestGenericTypes::testThirdPartySharedPointer() 8657: { 8657: 8657: Grantlee::Engine engine; 8657: 8657: engine.setPluginPaths(QStringList() << 8657: # 552 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 552 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 552 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 552 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 552 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 552 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: auto t1 = engine.newTemplate( 8657: # 554 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 554 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{{ p.name }} {{ p.age }}" 8657: # 554 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 554 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{{ p.name }} {{ p.age }}" 8657: # 554 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 554 "/<>/templates/tests/testgenerictypes.cpp" 8657: , 8657: 8657: # 555 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 555 "/<>/templates/tests/testgenerictypes.cpp" 8657: "template1" 8657: # 555 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 555 "/<>/templates/tests/testgenerictypes.cpp" 8657: "template1" 8657: # 555 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 555 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: 8657: QVariantHash h; 8657: std::tr1::shared_ptr p( 8657: new PersonObject( 8657: # 560 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 560 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Grant Lee" 8657: # 560 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 560 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Grant Lee" 8657: # 560 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 560 "/<>/templates/tests/testgenerictypes.cpp" 8657: , 2)); 8657: h.insert( 8657: # 561 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 561 "/<>/templates/tests/testgenerictypes.cpp" 8657: "p" 8657: # 561 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 561 "/<>/templates/tests/testgenerictypes.cpp" 8657: "p" 8657: # 561 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 561 "/<>/templates/tests/testgenerictypes.cpp" 8657: , QVariant::fromValue(p)); 8657: Grantlee::Context c(h); 8657: 8657: # 563 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qCompare( 8657: # 563 "/<>/templates/tests/testgenerictypes.cpp" 8657: t1->render(&c) 8657: # 563 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 563 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Grant Lee 2" 8657: # 563 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 563 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Grant Lee 2" 8657: # 563 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8657: # 563 "/<>/templates/tests/testgenerictypes.cpp" 8657: "t1->render(&c)" 8657: # 563 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 563 "/<>/templates/tests/testgenerictypes.cpp" 8657: "QStringLiteral(\"Grant Lee 2\")" 8657: # 563 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "/<>/templates/tests/testgenerictypes.cpp", 563)) return;} while (false) 8657: # 563 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: 8657: } 8657: 8657: typedef QList> ListVectorInt; 8657: typedef QMap>> MapListVectorInt; 8657: typedef QStack>>> StackMapListVectorInt; 8657: 8657: static QVector getNumbers() 8657: { 8657: static auto n = 0; 8657: QVector nums; 8657: nums.push_back(++n); 8657: nums.push_back(++n); 8657: return nums; 8657: } 8657: 8657: static ListVectorInt getNumberLists() 8657: { 8657: ListVectorInt list; 8657: for (auto i = 0; i < 2; ++i) { 8657: list.append(getNumbers()); 8657: } 8657: return list; 8657: } 8657: 8657: static MapListVectorInt getNumberListMap() 8657: { 8657: MapListVectorInt map; 8657: for (auto i = 0; i < 2; ++i) { 8657: map.insert(i, getNumberLists()); 8657: } 8657: return map; 8657: } 8657: 8657: static StackMapListVectorInt getMapStack() 8657: { 8657: StackMapListVectorInt stack; 8657: for (auto i = 0; i < 2; ++i) { 8657: stack.push(getNumberListMap()); 8657: } 8657: return stack; 8657: } 8657: 8657: void TestGenericTypes::testNestedContainers() 8657: { 8657: Grantlee::Engine engine; 8657: 8657: engine.setPluginPaths(QStringList() << 8657: # 611 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 611 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 611 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 611 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 611 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 611 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: Grantlee::Context c; 8657: c.insert( 8657: # 614 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 614 "/<>/templates/tests/testgenerictypes.cpp" 8657: "stack" 8657: # 614 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 614 "/<>/templates/tests/testgenerictypes.cpp" 8657: "stack" 8657: # 614 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 614 "/<>/templates/tests/testgenerictypes.cpp" 8657: , QVariant::fromValue(getMapStack())); 8657: # 623 "/<>/templates/tests/testgenerictypes.cpp" 8657: auto t1 = engine.newTemplate( 8657: 8657: # 624 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 624 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{% for map in stack %}" "(M {% for key, list in map.items %}" "({{ key }} : (L {% for vector in list %}" "(V {% for number in vector %}" "{{ number }}," "{% endfor %})," "{% endfor %})," "{% endfor %})," "{% endfor %}" 8657: # 624 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 624 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{% for map in stack %}" "(M {% for key, list in map.items %}" "({{ key }} : (L {% for vector in list %}" "(V {% for number in vector %}" "{{ number }}," "{% endfor %})," "{% endfor %})," "{% endfor %})," "{% endfor %}" 8657: # 624 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: 8657: # 632 "/<>/templates/tests/testgenerictypes.cpp" 8657: , 8657: 8657: # 633 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 633 "/<>/templates/tests/testgenerictypes.cpp" 8657: "template1" 8657: # 633 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 633 "/<>/templates/tests/testgenerictypes.cpp" 8657: "template1" 8657: # 633 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 633 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: 8657: 8657: auto result = t1->render(&c); 8657: 8657: auto expectedResult = 8657: # 639 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 639 "/<>/templates/tests/testgenerictypes.cpp" 8657: "(M (0 : (L (V 1,2,),(V 3,4,),),(1 : (L (V 5,6,),(V 7,8,),),),(M (0 : (L (V 9,10,),(V 11,12,),),(1 : (L (V 13,14,),(V 15,16,),),)," 8657: # 639 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 639 "/<>/templates/tests/testgenerictypes.cpp" 8657: "(M (0 : (L (V 1,2,),(V 3,4,),),(1 : (L (V 5,6,),(V 7,8,),),),(M (0 : (L (V 9,10,),(V 11,12,),),(1 : (L (V 13,14,),(V 15,16,),),)," 8657: # 639 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 639 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: 8657: 8657: # 641 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qCompare( 8657: # 641 "/<>/templates/tests/testgenerictypes.cpp" 8657: result 8657: # 641 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 641 "/<>/templates/tests/testgenerictypes.cpp" 8657: expectedResult 8657: # 641 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 641 "/<>/templates/tests/testgenerictypes.cpp" 8657: "result" 8657: # 641 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 641 "/<>/templates/tests/testgenerictypes.cpp" 8657: "expectedResult" 8657: # 641 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "/<>/templates/tests/testgenerictypes.cpp", 641)) return;} while (false) 8657: # 641 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: } 8657: 8657: class CustomObject : public QObject 8657: { 8657: 8657: # 646 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: public: 8657: # 646 "/<>/templates/tests/testgenerictypes.cpp" 8657: #pragma GCC diagnostic push 8657: # 646 "/<>/templates/tests/testgenerictypes.cpp" 8657: 8657: # 646 "/<>/templates/tests/testgenerictypes.cpp" 8657: #pragma GCC diagnostic ignored "-Wsuggest-override" 8657: # 646 "/<>/templates/tests/testgenerictypes.cpp" 8657: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8657: # 646 "/<>/templates/tests/testgenerictypes.cpp" 8657: #pragma GCC diagnostic ignored "-Wattributes" 8657: # 646 "/<>/templates/tests/testgenerictypes.cpp" 8657: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8657: # 646 "/<>/templates/tests/testgenerictypes.cpp" 8657: #pragma GCC diagnostic pop 8657: # 646 "/<>/templates/tests/testgenerictypes.cpp" 8657: struct QPrivateSignal {}; 8657: 8657: # 647 "/<>/templates/tests/testgenerictypes.cpp" 8657: public: 8657: explicit CustomObject(QObject *parent = 0) : QObject(parent) {} 8657: }; 8657: 8657: class OtherObject : public QObject 8657: { 8657: 8657: # 653 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: public: 8657: # 653 "/<>/templates/tests/testgenerictypes.cpp" 8657: #pragma GCC diagnostic push 8657: # 653 "/<>/templates/tests/testgenerictypes.cpp" 8657: 8657: # 653 "/<>/templates/tests/testgenerictypes.cpp" 8657: #pragma GCC diagnostic ignored "-Wsuggest-override" 8657: # 653 "/<>/templates/tests/testgenerictypes.cpp" 8657: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8657: # 653 "/<>/templates/tests/testgenerictypes.cpp" 8657: #pragma GCC diagnostic ignored "-Wattributes" 8657: # 653 "/<>/templates/tests/testgenerictypes.cpp" 8657: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8657: # 653 "/<>/templates/tests/testgenerictypes.cpp" 8657: #pragma GCC diagnostic pop 8657: # 653 "/<>/templates/tests/testgenerictypes.cpp" 8657: struct QPrivateSignal {}; 8657: 8657: 8657: # 655 "/<>/templates/tests/testgenerictypes.cpp" 8657: public: 8657: explicit OtherObject(QObject *parent = 0) 8657: : QObject(parent), m_custom(new CustomObject(this)) 8657: { 8657: m_custom->setProperty("nestedProp", 8657: # 659 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 659 "/<>/templates/tests/testgenerictypes.cpp" 8657: "nestedValue" 8657: # 659 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 659 "/<>/templates/tests/testgenerictypes.cpp" 8657: "nestedValue" 8657: # 659 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 659 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: } 8657: 8657: CustomObject *custom() { return m_custom; } 8657: 8657: private: 8657: CustomObject *m_custom; 8657: }; 8657: 8657: void TestGenericTypes::testCustomQObjectDerived() 8657: { 8657: Grantlee::Engine engine; 8657: 8657: engine.setPluginPaths(QStringList() << 8657: # 672 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 672 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 672 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 672 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf/" 8657: # 672 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 672 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: auto customObject = new CustomObject(this); 8657: customObject->setProperty("someProp", 8657: # 675 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 675 "/<>/templates/tests/testgenerictypes.cpp" 8657: "propValue" 8657: # 675 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 675 "/<>/templates/tests/testgenerictypes.cpp" 8657: "propValue" 8657: # 675 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 675 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: Grantlee::Context c; 8657: c.insert( 8657: # 678 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 678 "/<>/templates/tests/testgenerictypes.cpp" 8657: "custom" 8657: # 678 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 678 "/<>/templates/tests/testgenerictypes.cpp" 8657: "custom" 8657: # 678 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 678 "/<>/templates/tests/testgenerictypes.cpp" 8657: , QVariant::fromValue(customObject)); 8657: 8657: { 8657: auto t1 = engine.newTemplate( 8657: # 681 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 681 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{{ custom.someProp }}" 8657: # 681 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 681 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{{ custom.someProp }}" 8657: # 681 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 681 "/<>/templates/tests/testgenerictypes.cpp" 8657: , 8657: 8657: # 682 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 682 "/<>/templates/tests/testgenerictypes.cpp" 8657: "template1" 8657: # 682 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 682 "/<>/templates/tests/testgenerictypes.cpp" 8657: "template1" 8657: # 682 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 682 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: auto result = t1->render(&c); 8657: auto expectedResult = 8657: # 685 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 685 "/<>/templates/tests/testgenerictypes.cpp" 8657: "propValue" 8657: # 685 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 685 "/<>/templates/tests/testgenerictypes.cpp" 8657: "propValue" 8657: # 685 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 685 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: 8657: 8657: # 687 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qCompare( 8657: # 687 "/<>/templates/tests/testgenerictypes.cpp" 8657: result 8657: # 687 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 687 "/<>/templates/tests/testgenerictypes.cpp" 8657: expectedResult 8657: # 687 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 687 "/<>/templates/tests/testgenerictypes.cpp" 8657: "result" 8657: # 687 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 687 "/<>/templates/tests/testgenerictypes.cpp" 8657: "expectedResult" 8657: # 687 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "/<>/templates/tests/testgenerictypes.cpp", 687)) return;} while (false) 8657: # 687 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: } 8657: 8657: auto other = new OtherObject(this); 8657: 8657: c.insert( 8657: # 692 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 692 "/<>/templates/tests/testgenerictypes.cpp" 8657: "other" 8657: # 692 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 692 "/<>/templates/tests/testgenerictypes.cpp" 8657: "other" 8657: # 692 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 692 "/<>/templates/tests/testgenerictypes.cpp" 8657: , other); 8657: 8657: { 8657: auto t1 8657: = engine.newTemplate( 8657: # 696 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 696 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{{ other.custom.nestedProp }}" 8657: # 696 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 696 "/<>/templates/tests/testgenerictypes.cpp" 8657: "{{ other.custom.nestedProp }}" 8657: # 696 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 696 "/<>/templates/tests/testgenerictypes.cpp" 8657: , 8657: 8657: # 697 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 697 "/<>/templates/tests/testgenerictypes.cpp" 8657: "template1" 8657: # 697 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 697 "/<>/templates/tests/testgenerictypes.cpp" 8657: "template1" 8657: # 697 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 697 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: auto result = t1->render(&c); 8657: auto expectedResult = 8657: # 700 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 700 "/<>/templates/tests/testgenerictypes.cpp" 8657: "nestedValue" 8657: # 700 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 700 "/<>/templates/tests/testgenerictypes.cpp" 8657: "nestedValue" 8657: # 700 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 700 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: 8657: 8657: # 702 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qCompare( 8657: # 702 "/<>/templates/tests/testgenerictypes.cpp" 8657: result 8657: # 702 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 702 "/<>/templates/tests/testgenerictypes.cpp" 8657: expectedResult 8657: # 702 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 702 "/<>/templates/tests/testgenerictypes.cpp" 8657: "result" 8657: # 702 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 702 "/<>/templates/tests/testgenerictypes.cpp" 8657: "expectedResult" 8657: # 702 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "/<>/templates/tests/testgenerictypes.cpp", 702)) return;} while (false) 8657: # 702 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: } 8657: } 8657: 8657: struct UnregisteredType { 8657: }; 8657: 8657: 8657: # 709 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: template <> struct QMetaTypeId< 8657: # 709 "/<>/templates/tests/testgenerictypes.cpp" 8657: UnregisteredType 8657: # 709 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< 8657: # 709 "/<>/templates/tests/testgenerictypes.cpp" 8657: UnregisteredType 8657: # 709 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: >( 8657: # 709 "/<>/templates/tests/testgenerictypes.cpp" 8657: "UnregisteredType" 8657: # 709 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , reinterpret_cast< 8657: # 709 "/<>/templates/tests/testgenerictypes.cpp" 8657: UnregisteredType 8657: # 709 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8657: 8657: 8657: # 711 "/<>/templates/tests/testgenerictypes.cpp" 8657: struct RegisteredNotListType { 8657: }; 8657: 8657: 8657: # 714 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: template <> struct QMetaTypeId< 8657: # 714 "/<>/templates/tests/testgenerictypes.cpp" 8657: RegisteredNotListType 8657: # 714 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< 8657: # 714 "/<>/templates/tests/testgenerictypes.cpp" 8657: RegisteredNotListType 8657: # 714 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: >( 8657: # 714 "/<>/templates/tests/testgenerictypes.cpp" 8657: "RegisteredNotListType" 8657: # 714 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , reinterpret_cast< 8657: # 714 "/<>/templates/tests/testgenerictypes.cpp" 8657: RegisteredNotListType 8657: # 714 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8657: 8657: 8657: # 716 "/<>/templates/tests/testgenerictypes.cpp" 8657: namespace Grantlee { template <> inline QVariant TypeAccessor::lookUp(const RegisteredNotListType &object, const QString &property) { 8657: 8657: # 717 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: (void) 8657: # 717 "/<>/templates/tests/testgenerictypes.cpp" 8657: object 8657: # 717 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ; 8657: 8657: # 718 "/<>/templates/tests/testgenerictypes.cpp" 8657: if (property == 8657: # 718 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 718 "/<>/templates/tests/testgenerictypes.cpp" 8657: "property" 8657: # 718 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 718 "/<>/templates/tests/testgenerictypes.cpp" 8657: "property" 8657: # 718 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 718 "/<>/templates/tests/testgenerictypes.cpp" 8657: ) 8657: return 42; 8657: return QVariant(); } } 8657: 8657: static QVariantList dummy(const UnregisteredType &) 8657: { 8657: return QVariantList() << 42; 8657: } 8657: 8657: QVariant dummyLookup(const QVariant &, const QString &) { return 42; } 8657: 8657: void TestGenericTypes::testUnregistered() 8657: { 8657: 8657: { 8657: UnregisteredType unregType; 8657: auto v = QVariant::fromValue(unregType); 8657: 8657: auto result = Grantlee::MetaType::lookup(v, 8657: # 736 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 736 "/<>/templates/tests/testgenerictypes.cpp" 8657: "property" 8657: # 736 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 736 "/<>/templates/tests/testgenerictypes.cpp" 8657: "property" 8657: # 736 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 736 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: # 737 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qVerify(static_cast( 8657: # 737 "/<>/templates/tests/testgenerictypes.cpp" 8657: !result.isValid() 8657: # 737 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ), 8657: # 737 "/<>/templates/tests/testgenerictypes.cpp" 8657: "!result.isValid()" 8657: # 737 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "", "/<>/templates/tests/testgenerictypes.cpp", 737)) return;} while (false) 8657: # 737 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: 8657: 8657: # 739 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qVerify(static_cast( 8657: # 739 "/<>/templates/tests/testgenerictypes.cpp" 8657: !v.canConvert() 8657: # 739 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ), 8657: # 739 "/<>/templates/tests/testgenerictypes.cpp" 8657: "!v.canConvert()" 8657: # 739 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "", "/<>/templates/tests/testgenerictypes.cpp", 739)) return;} while (false) 8657: # 739 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: } 8657: 8657: Grantlee::registerMetaType(); 8657: 8657: { 8657: RegisteredNotListType nonListType; 8657: auto v = QVariant::fromValue(nonListType); 8657: auto result = Grantlee::MetaType::lookup(v, 8657: # 747 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 747 "/<>/templates/tests/testgenerictypes.cpp" 8657: "property" 8657: # 747 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 747 "/<>/templates/tests/testgenerictypes.cpp" 8657: "property" 8657: # 747 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 747 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: # 748 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qVerify(static_cast( 8657: # 748 "/<>/templates/tests/testgenerictypes.cpp" 8657: result.isValid() 8657: # 748 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ), 8657: # 748 "/<>/templates/tests/testgenerictypes.cpp" 8657: "result.isValid()" 8657: # 748 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "", "/<>/templates/tests/testgenerictypes.cpp", 748)) return;} while (false) 8657: # 748 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: 8657: # 749 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qVerify(static_cast( 8657: # 749 "/<>/templates/tests/testgenerictypes.cpp" 8657: !v.canConvert() 8657: # 749 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ), 8657: # 749 "/<>/templates/tests/testgenerictypes.cpp" 8657: "!v.canConvert()" 8657: # 749 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "", "/<>/templates/tests/testgenerictypes.cpp", 749)) return;} while (false) 8657: # 749 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: } 8657: 8657: { 8657: QMetaType::registerConverter(&dummy); 8657: UnregisteredType unregType; 8657: auto v = QVariant::fromValue(unregType); 8657: auto result = Grantlee::MetaType::lookup(v, 8657: # 756 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 756 "/<>/templates/tests/testgenerictypes.cpp" 8657: "property" 8657: # 756 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 756 "/<>/templates/tests/testgenerictypes.cpp" 8657: "property" 8657: # 756 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 756 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: # 757 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qVerify(static_cast( 8657: # 757 "/<>/templates/tests/testgenerictypes.cpp" 8657: !result.isValid() 8657: # 757 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ), 8657: # 757 "/<>/templates/tests/testgenerictypes.cpp" 8657: "!result.isValid()" 8657: # 757 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "", "/<>/templates/tests/testgenerictypes.cpp", 757)) return;} while (false) 8657: # 757 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: } 8657: 8657: 8657: 8657: 8657: } 8657: 8657: 8657: # 765 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: template <> struct QMetaTypeId< 8657: # 765 "/<>/templates/tests/testgenerictypes.cpp" 8657: Person * 8657: # 765 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< 8657: # 765 "/<>/templates/tests/testgenerictypes.cpp" 8657: Person * 8657: # 765 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: >( 8657: # 765 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Person *" 8657: # 765 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , reinterpret_cast< 8657: # 765 "/<>/templates/tests/testgenerictypes.cpp" 8657: Person * 8657: # 765 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8657: 8657: 8657: # 767 "/<>/templates/tests/testgenerictypes.cpp" 8657: namespace Grantlee { template <> inline QVariant TypeAccessor::lookUp(const Person *const object, const QString &property) { 8657: if (property == 8657: # 768 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 768 "/<>/templates/tests/testgenerictypes.cpp" 8657: "name" 8657: # 768 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 768 "/<>/templates/tests/testgenerictypes.cpp" 8657: "name" 8657: # 768 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 768 "/<>/templates/tests/testgenerictypes.cpp" 8657: ) 8657: return QString::fromStdString(object->name); 8657: else if (property == 8657: # 770 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 770 "/<>/templates/tests/testgenerictypes.cpp" 8657: "age" 8657: # 770 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 770 "/<>/templates/tests/testgenerictypes.cpp" 8657: "age" 8657: # 770 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 770 "/<>/templates/tests/testgenerictypes.cpp" 8657: ) 8657: return object->age; 8657: return QVariant(); } } 8657: 8657: void TestGenericTypes::testPointerNonQObject() 8657: { 8657: auto p = new Person("Adele", 21); 8657: auto v = QVariant::fromValue(p); 8657: 8657: Grantlee::registerMetaType(); 8657: 8657: auto result = Grantlee::MetaType::lookup(v, 8657: # 781 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 781 "/<>/templates/tests/testgenerictypes.cpp" 8657: "name" 8657: # 781 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 781 "/<>/templates/tests/testgenerictypes.cpp" 8657: "name" 8657: # 781 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8657: # 781 "/<>/templates/tests/testgenerictypes.cpp" 8657: ); 8657: 8657: 8657: # 783 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: do { if (!QTest::qCompare( 8657: # 783 "/<>/templates/tests/testgenerictypes.cpp" 8657: result.value() 8657: # 783 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8657: # 783 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Adele" 8657: # 783 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8657: # 783 "/<>/templates/tests/testgenerictypes.cpp" 8657: "Adele" 8657: # 783 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8657: # 783 "/<>/templates/tests/testgenerictypes.cpp" 8657: "result.value()" 8657: # 783 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , 8657: # 783 "/<>/templates/tests/testgenerictypes.cpp" 8657: "QStringLiteral(\"Adele\")" 8657: # 783 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: , "/<>/templates/tests/testgenerictypes.cpp", 783)) return;} while (false) 8657: # 783 "/<>/templates/tests/testgenerictypes.cpp" 8657: ; 8657: 8657: delete p; 8657: } 8657: 8657: 8657: # 788 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); app.setAttribute(Qt::AA_Use96Dpi, true); 8657: # 788 "/<>/templates/tests/testgenerictypes.cpp" 8657: TestGenericTypes 8657: # 788 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: tc; QTest::setMainSourcePath("/<>/templates/tests/testgenerictypes.cpp", 8657: # 788 "/<>/templates/tests/testgenerictypes.cpp" 8657: "/<>/obj-arm-linux-gnueabihf" 8657: # 788 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8657: ); return QTest::qExec(&tc, argc, argv); } 8657: # 1 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 1 8657: # 19 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 8657: 8657: # 20 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: #pragma GCC diagnostic push 8657: # 20 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 8657: 8657: # 21 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8657: # 21 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 8657: 8657: # 22 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: struct qt_meta_stringdata_TestGenericTypes_t { 8657: QByteArrayData data[14]; 8657: char stringdata0[307]; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: static const qt_meta_stringdata_TestGenericTypes_t qt_meta_stringdata_TestGenericTypes = { 8657: { 8657: 8657: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 16 8657: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_TestGenericTypes_t 8657: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 0 - 0 * sizeof(QByteArrayData)) 8657: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: , 8657: 8657: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 12 8657: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_TestGenericTypes_t 8657: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 17 - 1 * sizeof(QByteArrayData)) 8657: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: , 8657: 8657: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 0 8657: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_TestGenericTypes_t 8657: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 30 - 2 * sizeof(QByteArrayData)) 8657: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: , 8657: 8657: # 36 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 36 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 20 8657: # 36 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 36 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 36 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 36 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_TestGenericTypes_t 8657: # 36 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 36 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 36 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 36 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 31 - 3 * sizeof(QByteArrayData)) 8657: # 36 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: # 36 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: , 8657: 8657: # 37 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 37 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 31 8657: # 37 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 37 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 37 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 37 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_TestGenericTypes_t 8657: # 37 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 37 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 37 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 37 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 52 - 4 * sizeof(QByteArrayData)) 8657: # 37 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: # 37 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: , 8657: 8657: # 38 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 38 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 32 8657: # 38 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 38 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 38 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 38 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_TestGenericTypes_t 8657: # 38 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 38 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 38 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 38 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 84 - 5 * sizeof(QByteArrayData)) 8657: # 38 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: # 38 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: , 8657: 8657: # 39 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 39 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 28 8657: # 39 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 39 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 39 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 39 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_TestGenericTypes_t 8657: # 39 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 39 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 39 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 39 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 117 - 6 * sizeof(QByteArrayData)) 8657: # 39 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: # 39 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: , 8657: 8657: # 40 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 40 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 29 8657: # 40 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 40 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 40 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 40 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_TestGenericTypes_t 8657: # 40 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 40 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 40 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 40 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 146 - 7 * sizeof(QByteArrayData)) 8657: # 40 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: # 40 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: , 8657: 8657: # 41 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 41 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 17 8657: # 41 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 41 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 41 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 41 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_TestGenericTypes_t 8657: # 41 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 41 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 41 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 41 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 176 - 8 * sizeof(QByteArrayData)) 8657: # 41 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: # 41 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: , 8657: 8657: # 42 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 42 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 27 8657: # 42 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 42 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 42 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 42 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_TestGenericTypes_t 8657: # 42 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 42 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 42 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 42 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 194 - 9 * sizeof(QByteArrayData)) 8657: # 42 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: # 42 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: , 8657: 8657: # 43 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 43 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 20 8657: # 43 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 43 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 43 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 43 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_TestGenericTypes_t 8657: # 43 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 43 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 43 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 43 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 222 - 10 * sizeof(QByteArrayData)) 8657: # 43 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: # 43 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: , 8657: 8657: # 44 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 44 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 24 8657: # 44 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 44 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 44 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 44 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_TestGenericTypes_t 8657: # 44 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 44 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 44 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 44 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 243 - 11 * sizeof(QByteArrayData)) 8657: # 44 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: # 44 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: , 8657: 8657: # 45 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 45 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 16 8657: # 45 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 45 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 45 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 45 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_TestGenericTypes_t 8657: # 45 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 45 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 45 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 45 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 268 - 12 * sizeof(QByteArrayData)) 8657: # 45 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: # 45 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: , 8657: 8657: # 46 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 46 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 21 8657: # 46 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 46 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 46 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 46 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_TestGenericTypes_t 8657: # 46 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 46 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 46 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 46 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 285 - 13 * sizeof(QByteArrayData)) 8657: # 46 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: 8657: 8657: # 48 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: }, 8657: "TestGenericTypes\0initTestCase\0\0" 8657: "testGenericClassType\0" 8657: "testSequentialContainer_Variant\0" 8657: "testAssociativeContainer_Variant\0" 8657: "testSequentialContainer_Type\0" 8657: "testAssociativeContainer_Type\0" 8657: "testSharedPointer\0testThirdPartySharedPointer\0" 8657: "testNestedContainers\0testCustomQObjectDerived\0" 8657: "testUnregistered\0testPointerNonQObject" 8657: }; 8657: 8657: 8657: static const uint qt_meta_data_TestGenericTypes[] = { 8657: 8657: 8657: 7, 8657: 0, 8657: 0, 0, 8657: 12, 14, 8657: 0, 0, 8657: 0, 0, 8657: 0, 0, 8657: 0, 8657: 0, 8657: 8657: 8657: 1, 0, 74, 2, 0x08 , 8657: 3, 0, 75, 2, 0x08 , 8657: 4, 0, 76, 2, 0x08 , 8657: 5, 0, 77, 2, 0x08 , 8657: 6, 0, 78, 2, 0x08 , 8657: 7, 0, 79, 2, 0x08 , 8657: 8, 0, 80, 2, 0x08 , 8657: 9, 0, 81, 2, 0x08 , 8657: 10, 0, 82, 2, 0x08 , 8657: 11, 0, 83, 2, 0x08 , 8657: 12, 0, 84, 2, 0x08 , 8657: 13, 0, 85, 2, 0x08 , 8657: 8657: 8657: QMetaType::Void, 8657: QMetaType::Void, 8657: QMetaType::Void, 8657: QMetaType::Void, 8657: QMetaType::Void, 8657: QMetaType::Void, 8657: QMetaType::Void, 8657: QMetaType::Void, 8657: QMetaType::Void, 8657: QMetaType::Void, 8657: QMetaType::Void, 8657: QMetaType::Void, 8657: 8657: 0 8657: }; 8657: 8657: void TestGenericTypes::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) 8657: { 8657: if (_c == QMetaObject::InvokeMetaMethod) { 8657: TestGenericTypes *_t = static_cast(_o); 8657: 8657: # 109 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: (void) 8657: # 109 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: _t 8657: # 109 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ; 8657: 8657: # 110 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: switch (_id) { 8657: case 0: _t->initTestCase(); break; 8657: case 1: _t->testGenericClassType(); break; 8657: case 2: _t->testSequentialContainer_Variant(); break; 8657: case 3: _t->testAssociativeContainer_Variant(); break; 8657: case 4: _t->testSequentialContainer_Type(); break; 8657: case 5: _t->testAssociativeContainer_Type(); break; 8657: case 6: _t->testSharedPointer(); break; 8657: case 7: _t->testThirdPartySharedPointer(); break; 8657: case 8: _t->testNestedContainers(); break; 8657: case 9: _t->testCustomQObjectDerived(); break; 8657: case 10: _t->testUnregistered(); break; 8657: case 11: _t->testPointerNonQObject(); break; 8657: default: ; 8657: } 8657: } 8657: 8657: # 126 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: (void) 8657: # 126 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: _a 8657: # 126 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ; 8657: # 126 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: ; 8657: } 8657: 8657: const QMetaObject TestGenericTypes::staticMetaObject = { 8657: { &CoverageObject::staticMetaObject, qt_meta_stringdata_TestGenericTypes.data, 8657: qt_meta_data_TestGenericTypes, qt_static_metacall, nullptr, nullptr} 8657: }; 8657: 8657: 8657: const QMetaObject *TestGenericTypes::metaObject() const 8657: { 8657: return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; 8657: } 8657: 8657: void *TestGenericTypes::qt_metacast(const char *_clname) 8657: { 8657: if (!_clname) return nullptr; 8657: if (!strcmp(_clname, qt_meta_stringdata_TestGenericTypes.stringdata0)) 8657: return static_cast(this); 8657: return CoverageObject::qt_metacast(_clname); 8657: } 8657: 8657: int TestGenericTypes::qt_metacall(QMetaObject::Call _c, int _id, void **_a) 8657: { 8657: _id = CoverageObject::qt_metacall(_c, _id, _a); 8657: if (_id < 0) 8657: return _id; 8657: if (_c == QMetaObject::InvokeMetaMethod) { 8657: if (_id < 12) 8657: qt_static_metacall(this, _c, _id, _a); 8657: _id -= 12; 8657: } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { 8657: if (_id < 12) 8657: *reinterpret_cast(_a[0]) = -1; 8657: _id -= 12; 8657: } 8657: return _id; 8657: } 8657: struct qt_meta_stringdata_PersonObject_t { 8657: QByteArrayData data[3]; 8657: char stringdata0[22]; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: static const qt_meta_stringdata_PersonObject_t qt_meta_stringdata_PersonObject = { 8657: { 8657: 8657: # 175 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 175 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 12 8657: # 175 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 175 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 175 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 175 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_PersonObject_t 8657: # 175 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 175 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 175 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 175 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 0 - 0 * sizeof(QByteArrayData)) 8657: # 175 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: # 175 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: , 8657: 8657: # 176 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 176 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 4 8657: # 176 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 176 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 176 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 176 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_PersonObject_t 8657: # 176 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 176 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 176 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 176 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 13 - 1 * sizeof(QByteArrayData)) 8657: # 176 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: # 176 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: , 8657: 8657: # 177 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 177 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 3 8657: # 177 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 177 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 177 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 177 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_PersonObject_t 8657: # 177 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 177 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 177 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 177 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 18 - 2 * sizeof(QByteArrayData)) 8657: # 177 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: 8657: 8657: # 179 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: }, 8657: "PersonObject\0name\0age" 8657: }; 8657: 8657: 8657: static const uint qt_meta_data_PersonObject[] = { 8657: 8657: 8657: 7, 8657: 0, 8657: 0, 0, 8657: 0, 0, 8657: 2, 14, 8657: 0, 0, 8657: 0, 0, 8657: 0, 8657: 0, 8657: 8657: 8657: 1, QMetaType::QString, 0x00095001, 8657: 2, QMetaType::Int, 0x00095001, 8657: 8657: 0 8657: }; 8657: 8657: void PersonObject::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) 8657: { 8657: 8657: 8657: if (_c == QMetaObject::ReadProperty) { 8657: PersonObject *_t = static_cast(_o); 8657: 8657: # 210 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: (void) 8657: # 210 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: _t 8657: # 210 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ; 8657: 8657: # 211 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: void *_v = _a[0]; 8657: switch (_id) { 8657: case 0: *reinterpret_cast< QString*>(_v) = _t->name(); break; 8657: case 1: *reinterpret_cast< int*>(_v) = _t->age(); break; 8657: default: break; 8657: } 8657: } else if (_c == QMetaObject::WriteProperty) { 8657: } else if (_c == QMetaObject::ResetProperty) { 8657: } 8657: 8657: 8657: # 221 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: (void) 8657: # 221 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: _o 8657: # 221 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ; 8657: # 221 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: ; 8657: 8657: # 222 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: (void) 8657: # 222 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: _id 8657: # 222 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ; 8657: # 222 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: ; 8657: 8657: # 223 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: (void) 8657: # 223 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: _c 8657: # 223 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ; 8657: # 223 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: ; 8657: 8657: # 224 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: (void) 8657: # 224 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: _a 8657: # 224 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ; 8657: # 224 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: ; 8657: } 8657: 8657: const QMetaObject PersonObject::staticMetaObject = { 8657: { &QObject::staticMetaObject, qt_meta_stringdata_PersonObject.data, 8657: qt_meta_data_PersonObject, qt_static_metacall, nullptr, nullptr} 8657: }; 8657: 8657: 8657: const QMetaObject *PersonObject::metaObject() const 8657: { 8657: return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; 8657: } 8657: 8657: void *PersonObject::qt_metacast(const char *_clname) 8657: { 8657: if (!_clname) return nullptr; 8657: if (!strcmp(_clname, qt_meta_stringdata_PersonObject.stringdata0)) 8657: return static_cast(this); 8657: return QObject::qt_metacast(_clname); 8657: } 8657: 8657: int PersonObject::qt_metacall(QMetaObject::Call _c, int _id, void **_a) 8657: { 8657: _id = QObject::qt_metacall(_c, _id, _a); 8657: if (_id < 0) 8657: return _id; 8657: 8657: 8657: if (_c == QMetaObject::ReadProperty || _c == QMetaObject::WriteProperty 8657: || _c == QMetaObject::ResetProperty || _c == QMetaObject::RegisterPropertyMetaType) { 8657: qt_static_metacall(this, _c, _id, _a); 8657: _id -= 2; 8657: } else if (_c == QMetaObject::QueryPropertyDesignable) { 8657: _id -= 2; 8657: } else if (_c == QMetaObject::QueryPropertyScriptable) { 8657: _id -= 2; 8657: } else if (_c == QMetaObject::QueryPropertyStored) { 8657: _id -= 2; 8657: } else if (_c == QMetaObject::QueryPropertyEditable) { 8657: _id -= 2; 8657: } else if (_c == QMetaObject::QueryPropertyUser) { 8657: _id -= 2; 8657: } 8657: 8657: return _id; 8657: } 8657: struct qt_meta_stringdata_CustomObject_t { 8657: QByteArrayData data[1]; 8657: char stringdata0[13]; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: static const qt_meta_stringdata_CustomObject_t qt_meta_stringdata_CustomObject = { 8657: { 8657: 8657: # 282 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 282 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 12 8657: # 282 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 282 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 282 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 282 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_CustomObject_t 8657: # 282 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 282 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 282 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 282 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 0 - 0 * sizeof(QByteArrayData)) 8657: # 282 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: 8657: 8657: # 284 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: }, 8657: "CustomObject" 8657: }; 8657: 8657: 8657: static const uint qt_meta_data_CustomObject[] = { 8657: 8657: 8657: 7, 8657: 0, 8657: 0, 0, 8657: 0, 0, 8657: 0, 0, 8657: 0, 0, 8657: 0, 0, 8657: 0, 8657: 0, 8657: 8657: 0 8657: }; 8657: 8657: void CustomObject::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) 8657: { 8657: 8657: # 307 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: (void) 8657: # 307 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: _o 8657: # 307 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ; 8657: # 307 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: ; 8657: 8657: # 308 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: (void) 8657: # 308 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: _id 8657: # 308 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ; 8657: # 308 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: ; 8657: 8657: # 309 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: (void) 8657: # 309 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: _c 8657: # 309 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ; 8657: # 309 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: ; 8657: 8657: # 310 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: (void) 8657: # 310 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: _a 8657: # 310 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ; 8657: # 310 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: ; 8657: } 8657: 8657: const QMetaObject CustomObject::staticMetaObject = { 8657: { &QObject::staticMetaObject, qt_meta_stringdata_CustomObject.data, 8657: qt_meta_data_CustomObject, qt_static_metacall, nullptr, nullptr} 8657: }; 8657: 8657: 8657: const QMetaObject *CustomObject::metaObject() const 8657: { 8657: return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; 8657: } 8657: 8657: void *CustomObject::qt_metacast(const char *_clname) 8657: { 8657: if (!_clname) return nullptr; 8657: if (!strcmp(_clname, qt_meta_stringdata_CustomObject.stringdata0)) 8657: return static_cast(this); 8657: return QObject::qt_metacast(_clname); 8657: } 8657: 8657: int CustomObject::qt_metacall(QMetaObject::Call _c, int _id, void **_a) 8657: { 8657: _id = QObject::qt_metacall(_c, _id, _a); 8657: return _id; 8657: } 8657: struct qt_meta_stringdata_OtherObject_t { 8657: QByteArrayData data[3]; 8657: char stringdata0[33]; 8657: }; 8657: 8657: 8657: 8657: 8657: 8657: static const qt_meta_stringdata_OtherObject_t qt_meta_stringdata_OtherObject = { 8657: { 8657: 8657: # 348 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 348 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 11 8657: # 348 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 348 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 348 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 348 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_OtherObject_t 8657: # 348 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 348 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 348 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 348 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 0 - 0 * sizeof(QByteArrayData)) 8657: # 348 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: # 348 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: , 8657: 8657: # 349 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 349 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 6 8657: # 349 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 349 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 349 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 349 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_OtherObject_t 8657: # 349 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 349 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 349 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 349 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 12 - 1 * sizeof(QByteArrayData)) 8657: # 349 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: # 349 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: , 8657: 8657: # 350 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: { { { -1 } }, 8657: # 350 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 13 8657: # 350 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 0, 0, 8657: # 350 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qptrdiff( 8657: # 350 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: __builtin_offsetof ( 8657: # 350 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: qt_meta_stringdata_OtherObject_t 8657: # 350 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: , 8657: # 350 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: stringdata0 8657: # 350 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ) 8657: # 350 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: + 19 - 2 * sizeof(QByteArrayData)) 8657: # 350 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: } 8657: 8657: 8657: # 352 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: }, 8657: "OtherObject\0custom\0CustomObject*" 8657: }; 8657: 8657: 8657: static const uint qt_meta_data_OtherObject[] = { 8657: 8657: 8657: 7, 8657: 0, 8657: 0, 0, 8657: 0, 0, 8657: 1, 14, 8657: 0, 0, 8657: 0, 0, 8657: 0, 8657: 0, 8657: 8657: 8657: 1, 0x80000000 | 2, 0x00095009, 8657: 8657: 0 8657: }; 8657: 8657: void OtherObject::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) 8657: { 8657: if (_c == QMetaObject::RegisterPropertyMetaType) { 8657: switch (_id) { 8657: default: *reinterpret_cast(_a[0]) = -1; break; 8657: case 0: 8657: *reinterpret_cast(_a[0]) = qRegisterMetaType< CustomObject* >(); break; 8657: } 8657: } 8657: 8657: 8657: else if (_c == QMetaObject::ReadProperty) { 8657: OtherObject *_t = static_cast(_o); 8657: 8657: # 389 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: (void) 8657: # 389 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: _t 8657: # 389 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ; 8657: 8657: # 390 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: void *_v = _a[0]; 8657: switch (_id) { 8657: case 0: *reinterpret_cast< CustomObject**>(_v) = _t->custom(); break; 8657: default: break; 8657: } 8657: } else if (_c == QMetaObject::WriteProperty) { 8657: } else if (_c == QMetaObject::ResetProperty) { 8657: } 8657: 8657: 8657: # 399 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: (void) 8657: # 399 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: _o 8657: # 399 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8657: ; 8657: # 399 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: ; 8657: } 8657: 8657: const QMetaObject OtherObject::staticMetaObject = { 8657: { &QObject::staticMetaObject, qt_meta_stringdata_OtherObject.data, 8657: qt_meta_data_OtherObject, qt_static_metacall, nullptr, nullptr} 8657: }; 8657: 8657: 8657: const QMetaObject *OtherObject::metaObject() const 8657: { 8657: return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; 8657: } 8657: 8657: void *OtherObject::qt_metacast(const char *_clname) 8657: { 8657: if (!_clname) return nullptr; 8657: if (!strcmp(_clname, qt_meta_stringdata_OtherObject.stringdata0)) 8657: return static_cast(this); 8657: return QObject::qt_metacast(_clname); 8657: } 8657: 8657: int OtherObject::qt_metacall(QMetaObject::Call _c, int _id, void **_a) 8657: { 8657: _id = QObject::qt_metacall(_c, _id, _a); 8657: if (_id < 0) 8657: return _id; 8657: 8657: 8657: if (_c == QMetaObject::ReadProperty || _c == QMetaObject::WriteProperty 8657: || _c == QMetaObject::ResetProperty || _c == QMetaObject::RegisterPropertyMetaType) { 8657: qt_static_metacall(this, _c, _id, _a); 8657: _id -= 1; 8657: } else if (_c == QMetaObject::QueryPropertyDesignable) { 8657: _id -= 1; 8657: } else if (_c == QMetaObject::QueryPropertyScriptable) { 8657: _id -= 1; 8657: } else if (_c == QMetaObject::QueryPropertyStored) { 8657: _id -= 1; 8657: } else if (_c == QMetaObject::QueryPropertyEditable) { 8657: _id -= 1; 8657: } else if (_c == QMetaObject::QueryPropertyUser) { 8657: _id -= 1; 8657: } 8657: 8657: return _id; 8657: } 8657: 8657: # 446 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: #pragma GCC diagnostic pop 8657: # 446 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8657: 8657: 8657: # 789 "/<>/templates/tests/testgenerictypes.cpp" 2 === END GCC DUMP === templates/tests/CMakeFiles/testgenerictypes_exec.dir/build.make:65: recipe for target 'templates/tests/CMakeFiles/testgenerictypes_exec.dir/testgenerictypes.cpp.o' failed make[3]: *** [templates/tests/CMakeFiles/testgenerictypes_exec.dir/testgenerictypes.cpp.o] Error 1 make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' CMakeFiles/Makefile2:812: recipe for target 'templates/tests/CMakeFiles/testgenerictypes_exec.dir/all' failed make[2]: *** [templates/tests/CMakeFiles/testgenerictypes_exec.dir/all] Error 2 make[2]: *** Waiting for unfinished jobs.... [ 97%] Building CXX object templates/tests/CMakeFiles/testbuiltins_exec.dir/testbuiltins_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/c++ -DHAVE_QTSCRIPT_LIB -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_TESTCASE_BUILDDIR=\"/<>/obj-arm-linux-gnueabihf\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-arm-linux-gnueabihf/templates/tests -I/<>/templates/tests -I/<>/obj-arm-linux-gnueabihf/templates/tests/testbuiltins_exec_autogen/include -I/<>/obj-arm-linux-gnueabihf/templates/lib -I/<>/templates/lib -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/testbuiltins_exec.dir/testbuiltins_exec_autogen/mocs_compilation.cpp.o -c /<>/obj-arm-linux-gnueabihf/templates/tests/testbuiltins_exec_autogen/mocs_compilation.cpp [ 97%] Linking CXX executable testscriptabletags_exec cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/testscriptabletags_exec.dir/link.txt --verbose=1 /usr/bin/c++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -Wl,-Bsymbolic-functions -Wl,-z,relro -rdynamic CMakeFiles/testscriptabletags_exec.dir/testscriptabletags.cpp.o CMakeFiles/testscriptabletags_exec.dir/testscriptabletags_exec_autogen/mocs_compilation.cpp.o -o testscriptabletags_exec -Wl,-rpath,/<>/obj-arm-linux-gnueabihf/templates/lib ../lib/libGrantlee_Templates.so.5.1.0 libtemplate_test_builtins.a /usr/lib/arm-linux-gnueabihf/libQt5Test.so.5.9.3 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 97%] Built target testscriptabletags_exec Preprocessed source stored into /tmp/ccTu4Nwy.out file, please attach this to your bugreport. === BEGIN GCC DUMP === 8751: // Target: arm-linux-gnueabihf 8751: // Configured with: ../src/configure -v --with-pkgversion='Ubuntu 8-20180110-1ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-8 --program-prefix=arm-linux-gnueabihf- --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-libquadmath --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --disable-werror --enable-multilib --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf 8751: // Thread model: posix 8751: // gcc version 8.0.0 20180110 (experimental) [trunk revision 256425] (Ubuntu 8-20180110-1ubuntu1) 8751: // 8751: // In file included from /usr/include/arm-linux-gnueabihf/qt5/QtCore/QString:1, 8751: // from /<>/templates/lib/exception.h:26, 8751: // from /<>/templates/lib/template.h:24, 8751: // from /<>/templates/lib/engine.h:24, 8751: // from /<>/templates/tests/testgenericcontainers.cpp:23: 8751: // /<>/templates/tests/testgenericcontainers.cpp: In instantiation of ‘QString getTemplate() [with T = int]’: 8751: // /<>/templates/tests/testgenericcontainers.cpp:275:60: required from ‘void doTestSequentialContainer(bool) [with Container = QSet]’ 8751: // /<>/templates/tests/testgenericcontainers.cpp:329:37: required from ‘void doTestContainers() [with T = int]’ 8751: // /<>/templates/tests/testgenericcontainers.cpp:334:28: required from here 8751: // /<>/templates/tests/testgenericcontainers.cpp:154:10: internal compiler error: Segmentation fault 8751: // return QStringLiteral("{{ container.size }};{{ container.count }};{% for item in container %}{{ item }},{% endfor %}"); 8751: // ^~~~~~~~~~~~~~ 8751: // 0x514d17 crash_signal 8751: // ../../src/gcc/toplev.c:325 8751: // 0x189dbd determine_visibility(tree_node*) 8751: // ../../src/gcc/cp/decl2.c:2477 8751: // 0x1f128f lookup_template_class_1 8751: // ../../src/gcc/cp/pt.c:9145 8751: // 0x1f128f lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int) 8751: // ../../src/gcc/cp/pt.c:9161 8751: // 0x1f1ba3 tsubst_aggr_type 8751: // ../../src/gcc/cp/pt.c:12008 8751: // 0x1eb855 tsubst(tree_node*, tree_node*, int, tree_node*) 8751: // ../../src/gcc/cp/pt.c:13643 8751: // 0x1f63b7 tsubst_decl 8751: // ../../src/gcc/cp/pt.c:12940 8751: // 0x1eba53 tsubst(tree_node*, tree_node*, int, tree_node*) 8751: // ../../src/gcc/cp/pt.c:13561 8751: // 0x1e7849 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8751: // ../../src/gcc/cp/pt.c:16046 8751: // 0x1e723f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8751: // ../../src/gcc/cp/pt.c:15973 8751: // 0x1e6fd3 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8751: // ../../src/gcc/cp/pt.c:16236 8751: // 0x1e6fd3 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8751: // ../../src/gcc/cp/pt.c:16236 8751: // 0x1e884b tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8751: // ../../src/gcc/cp/pt.c:15958 8751: // 0x1e884b tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*) 8751: // ../../src/gcc/cp/pt.c:16970 8751: // 0x1e97ed tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8751: // ../../src/gcc/cp/pt.c:18260 8751: // 0x1ea22b tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8751: // ../../src/gcc/cp/pt.c:17577 8751: // 0x1e72f9 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8751: // ../../src/gcc/cp/pt.c:17014 8751: // 0x1e72f9 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8751: // ../../src/gcc/cp/pt.c:16752 8751: // 0x1e70d5 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8751: // ../../src/gcc/cp/pt.c:15983 8751: // 0x1e723f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8751: // ../../src/gcc/cp/pt.c:15973 8751: // Please submit a full bug report, 8751: // with preprocessed source if appropriate. 8751: // Please include the complete backtrace with any bug report. 8751: // See for instructions. 8751: 8751: // /usr/lib/gcc/arm-linux-gnueabihf/8/cc1plus -quiet -I /<>/obj-arm-linux-gnueabihf/templates/tests -I /<>/templates/tests -I /<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include -I /<>/obj-arm-linux-gnueabihf/templates/lib -I /<>/templates/lib -imultiarch arm-linux-gnueabihf -D_GNU_SOURCE -D HAVE_QTSCRIPT_LIB -D QT_CORE_LIB -D QT_NO_CAST_FROM_ASCII -D QT_NO_CAST_FROM_BYTEARRAY -D QT_NO_CAST_TO_ASCII -D QT_NO_DEBUG -D QT_NO_KEYWORDS -D QT_NO_URL_CAST_FROM_STRING -D QT_STRICT_ITERATORS -D QT_TESTCASE_BUILDDIR="/<>/obj-arm-linux-gnueabihf" -D QT_TESTLIB_LIB -D QT_USE_QSTRINGBUILDER -D cxx_auto_type -D _FORTIFY_SOURCE=2 -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -isystem /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -isystem /usr/include/arm-linux-gnueabihf/qt5/QtTest /<>/templates/tests/testgenericcontainers.cpp -quiet -dumpbase testgenericcontainers.cpp -mfloat-abi=hard -mfpu=vfpv3-d16 -mthumb -mtls-dialect=gnu -march=armv7-a+fp -auxbase-strip CMakeFiles/testgenericcontainers_exec.dir/testgenericcontainers.cpp.o -g -O2 -Wformat=1 -Werror=format-security -Wdate-time -Wnon-virtual-dtor -Wno-long-long -Wundef -Wcast-align -Wchar-subscripts -Wall -Wextra -Wpointer-arith -Wformat-security -pedantic-errors -ansi -std=gnu++11 -fdebug-prefix-map=/<>=. -fstack-protector-strong -fno-check-new -fno-common -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -fstack-protector-strong -Wformat-security -o - -frandom-seed=0 -fdump-noaddr 8751: 8751: # 1 "/<>/templates/tests/testgenericcontainers.cpp" 8751: # 1 "/<>/obj-arm-linux-gnueabihf/templates/tests//" 8751: # 1 "" 8751: # 1 "" 8751: # 1 "/usr/include/stdc-predef.h" 1 3 4 8751: # 1 "" 2 8751: # 1 "/<>/templates/tests/testgenericcontainers.cpp" 8751: # 23 "/<>/templates/tests/testgenericcontainers.cpp" 8751: # 1 "/<>/templates/lib/engine.h" 1 8751: # 24 "/<>/templates/lib/engine.h" 8751: # 1 "/<>/templates/lib/template.h" 1 8751: # 24 "/<>/templates/lib/template.h" 8751: # 1 "/<>/templates/lib/exception.h" 1 8751: # 24 "/<>/templates/lib/exception.h" 8751: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8751: # 25 "/<>/templates/lib/exception.h" 2 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QString" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 1 3 4 8751: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qchar.h" 1 3 4 8751: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qchar.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 1 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: # 1 "/usr/include/c++/8/type_traits" 1 3 4 8751: # 32 "/usr/include/c++/8/type_traits" 3 4 8751: 8751: # 33 "/usr/include/c++/8/type_traits" 3 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 1 3 8751: # 236 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 3 8751: 8751: # 236 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 3 8751: namespace std 8751: { 8751: typedef unsigned int size_t; 8751: typedef int ptrdiff_t; 8751: 8751: 8751: typedef decltype(nullptr) nullptr_t; 8751: 8751: } 8751: # 258 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 3 8751: namespace std 8751: { 8751: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 8751: } 8751: namespace __gnu_cxx 8751: { 8751: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 8751: } 8751: # 508 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 3 8751: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/os_defines.h" 1 3 8751: # 39 "/usr/include/arm-linux-gnueabihf/c++/8/bits/os_defines.h" 3 8751: # 1 "/usr/include/features.h" 1 3 4 8751: # 419 "/usr/include/features.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/sys/cdefs.h" 1 3 4 8751: # 419 "/usr/include/arm-linux-gnueabihf/sys/cdefs.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4 8751: # 420 "/usr/include/arm-linux-gnueabihf/sys/cdefs.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/long-double.h" 1 3 4 8751: # 421 "/usr/include/arm-linux-gnueabihf/sys/cdefs.h" 2 3 4 8751: # 420 "/usr/include/features.h" 2 3 4 8751: # 443 "/usr/include/features.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/gnu/stubs.h" 1 3 4 8751: # 10 "/usr/include/arm-linux-gnueabihf/gnu/stubs.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/gnu/stubs-hard.h" 1 3 4 8751: # 11 "/usr/include/arm-linux-gnueabihf/gnu/stubs.h" 2 3 4 8751: # 444 "/usr/include/features.h" 2 3 4 8751: # 40 "/usr/include/arm-linux-gnueabihf/c++/8/bits/os_defines.h" 2 3 8751: # 509 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 2 3 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/cpu_defines.h" 1 3 8751: # 512 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++config.h" 2 3 8751: # 39 "/usr/include/c++/8/type_traits" 2 3 8751: 8751: 8751: 8751: namespace std 8751: { 8751: typedef short unsigned int uint_least16_t; 8751: typedef unsigned int uint_least32_t; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 68 "/usr/include/c++/8/type_traits" 3 8751: template 8751: struct integral_constant 8751: { 8751: static constexpr _Tp value = __v; 8751: typedef _Tp value_type; 8751: typedef integral_constant<_Tp, __v> type; 8751: constexpr operator value_type() const noexcept { return value; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: template 8751: constexpr _Tp integral_constant<_Tp, __v>::value; 8751: 8751: 8751: typedef integral_constant true_type; 8751: 8751: 8751: typedef integral_constant false_type; 8751: 8751: template 8751: using __bool_constant = integral_constant; 8751: # 103 "/usr/include/c++/8/type_traits" 3 8751: template 8751: struct conditional; 8751: 8751: template 8751: struct __or_; 8751: 8751: template<> 8751: struct __or_<> 8751: : public false_type 8751: { }; 8751: 8751: template 8751: struct __or_<_B1> 8751: : public _B1 8751: { }; 8751: 8751: template 8751: struct __or_<_B1, _B2> 8751: : public conditional<_B1::value, _B1, _B2>::type 8751: { }; 8751: 8751: template 8751: struct __or_<_B1, _B2, _B3, _Bn...> 8751: : public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type 8751: { }; 8751: 8751: template 8751: struct __and_; 8751: 8751: template<> 8751: struct __and_<> 8751: : public true_type 8751: { }; 8751: 8751: template 8751: struct __and_<_B1> 8751: : public _B1 8751: { }; 8751: 8751: template 8751: struct __and_<_B1, _B2> 8751: : public conditional<_B1::value, _B2, _B1>::type 8751: { }; 8751: 8751: template 8751: struct __and_<_B1, _B2, _B3, _Bn...> 8751: : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type 8751: { }; 8751: 8751: template 8751: struct __not_ 8751: : public __bool_constant 8751: { }; 8751: # 192 "/usr/include/c++/8/type_traits" 3 8751: template 8751: struct __success_type 8751: { typedef _Tp type; }; 8751: 8751: struct __failure_type 8751: { }; 8751: 8751: 8751: 8751: template 8751: struct remove_cv; 8751: 8751: template 8751: struct __is_void_helper 8751: : public false_type { }; 8751: 8751: template<> 8751: struct __is_void_helper 8751: : public true_type { }; 8751: 8751: 8751: template 8751: struct is_void 8751: : public __is_void_helper::type>::type 8751: { }; 8751: 8751: template 8751: struct __is_integral_helper 8751: : public false_type { }; 8751: 8751: template<> 8751: struct __is_integral_helper 8751: : public true_type { }; 8751: 8751: template<> 8751: struct __is_integral_helper 8751: : public true_type { }; 8751: 8751: template<> 8751: struct __is_integral_helper 8751: : public true_type { }; 8751: 8751: template<> 8751: struct __is_integral_helper 8751: : public true_type { }; 8751: 8751: 8751: template<> 8751: struct __is_integral_helper 8751: : public true_type { }; 8751: 8751: 8751: template<> 8751: struct __is_integral_helper 8751: : public true_type { }; 8751: 8751: template<> 8751: struct __is_integral_helper 8751: : public true_type { }; 8751: 8751: template<> 8751: struct __is_integral_helper 8751: : public true_type { }; 8751: 8751: template<> 8751: struct __is_integral_helper 8751: : public true_type { }; 8751: 8751: template<> 8751: struct __is_integral_helper 8751: : public true_type { }; 8751: 8751: template<> 8751: struct __is_integral_helper 8751: : public true_type { }; 8751: 8751: template<> 8751: struct __is_integral_helper 8751: : public true_type { }; 8751: 8751: template<> 8751: struct __is_integral_helper 8751: : public true_type { }; 8751: 8751: template<> 8751: struct __is_integral_helper 8751: : public true_type { }; 8751: 8751: template<> 8751: struct __is_integral_helper 8751: : public true_type { }; 8751: # 324 "/usr/include/c++/8/type_traits" 3 8751: template 8751: struct is_integral 8751: : public __is_integral_helper::type>::type 8751: { }; 8751: 8751: template 8751: struct __is_floating_point_helper 8751: : public false_type { }; 8751: 8751: template<> 8751: struct __is_floating_point_helper 8751: : public true_type { }; 8751: 8751: template<> 8751: struct __is_floating_point_helper 8751: : public true_type { }; 8751: 8751: template<> 8751: struct __is_floating_point_helper 8751: : public true_type { }; 8751: # 352 "/usr/include/c++/8/type_traits" 3 8751: template 8751: struct is_floating_point 8751: : public __is_floating_point_helper::type>::type 8751: { }; 8751: 8751: 8751: template 8751: struct is_array 8751: : public false_type { }; 8751: 8751: template 8751: struct is_array<_Tp[_Size]> 8751: : public true_type { }; 8751: 8751: template 8751: struct is_array<_Tp[]> 8751: : public true_type { }; 8751: 8751: template 8751: struct __is_pointer_helper 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_pointer_helper<_Tp*> 8751: : public true_type { }; 8751: 8751: 8751: template 8751: struct is_pointer 8751: : public __is_pointer_helper::type>::type 8751: { }; 8751: 8751: 8751: template 8751: struct is_lvalue_reference 8751: : public false_type { }; 8751: 8751: template 8751: struct is_lvalue_reference<_Tp&> 8751: : public true_type { }; 8751: 8751: 8751: template 8751: struct is_rvalue_reference 8751: : public false_type { }; 8751: 8751: template 8751: struct is_rvalue_reference<_Tp&&> 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function; 8751: 8751: template 8751: struct __is_member_object_pointer_helper 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_member_object_pointer_helper<_Tp _Cp::*> 8751: : public integral_constant::value> { }; 8751: 8751: 8751: template 8751: struct is_member_object_pointer 8751: : public __is_member_object_pointer_helper< 8751: typename remove_cv<_Tp>::type>::type 8751: { }; 8751: 8751: template 8751: struct __is_member_function_pointer_helper 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_member_function_pointer_helper<_Tp _Cp::*> 8751: : public integral_constant::value> { }; 8751: 8751: 8751: template 8751: struct is_member_function_pointer 8751: : public __is_member_function_pointer_helper< 8751: typename remove_cv<_Tp>::type>::type 8751: { }; 8751: 8751: 8751: template 8751: struct is_enum 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: template 8751: struct is_union 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: template 8751: struct is_class 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: template 8751: struct is_function 8751: : public false_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes...) > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes...) & > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes...) && > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes......) > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes......) & > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes......) && > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes...) const > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes...) const & > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes...) const && > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes......) const > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes......) const & > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes......) const && > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes...) volatile > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes...) volatile & > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes...) volatile && > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes......) volatile > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes......) volatile & > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes......) volatile && > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes...) const volatile > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes...) const volatile & > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes...) const volatile && > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes......) const volatile > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes......) const volatile & > 8751: : public true_type { }; 8751: 8751: template 8751: struct is_function<_Res(_ArgTypes......) const volatile && > 8751: : public true_type { }; 8751: 8751: 8751: 8751: template 8751: struct __is_null_pointer_helper 8751: : public false_type { }; 8751: 8751: template<> 8751: struct __is_null_pointer_helper 8751: : public true_type { }; 8751: 8751: 8751: template 8751: struct is_null_pointer 8751: : public __is_null_pointer_helper::type>::type 8751: { }; 8751: 8751: 8751: template 8751: struct __is_nullptr_t 8751: : public is_null_pointer<_Tp> 8751: { }; 8751: 8751: 8751: 8751: 8751: template 8751: struct is_reference 8751: : public __or_, 8751: is_rvalue_reference<_Tp>>::type 8751: { }; 8751: 8751: 8751: template 8751: struct is_arithmetic 8751: : public __or_, is_floating_point<_Tp>>::type 8751: { }; 8751: 8751: 8751: template 8751: struct is_fundamental 8751: : public __or_, is_void<_Tp>, 8751: is_null_pointer<_Tp>>::type 8751: { }; 8751: 8751: 8751: template 8751: struct is_object 8751: : public __not_<__or_, is_reference<_Tp>, 8751: is_void<_Tp>>>::type 8751: { }; 8751: 8751: template 8751: struct is_member_pointer; 8751: 8751: 8751: template 8751: struct is_scalar 8751: : public __or_, is_enum<_Tp>, is_pointer<_Tp>, 8751: is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type 8751: { }; 8751: 8751: 8751: template 8751: struct is_compound 8751: : public integral_constant::value> { }; 8751: 8751: template 8751: struct __is_member_pointer_helper 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_member_pointer_helper<_Tp _Cp::*> 8751: : public true_type { }; 8751: 8751: 8751: template 8751: struct is_member_pointer 8751: : public __is_member_pointer_helper::type>::type 8751: { }; 8751: 8751: 8751: 8751: template 8751: struct __is_referenceable 8751: : public __or_, is_reference<_Tp>>::type 8751: { }; 8751: 8751: template 8751: struct __is_referenceable<_Res(_Args...) > 8751: : public true_type 8751: { }; 8751: 8751: template 8751: struct __is_referenceable<_Res(_Args......) > 8751: : public true_type 8751: { }; 8751: 8751: 8751: 8751: 8751: template 8751: struct is_const 8751: : public false_type { }; 8751: 8751: template 8751: struct is_const<_Tp const> 8751: : public true_type { }; 8751: 8751: 8751: template 8751: struct is_volatile 8751: : public false_type { }; 8751: 8751: template 8751: struct is_volatile<_Tp volatile> 8751: : public true_type { }; 8751: 8751: 8751: template 8751: struct is_trivial 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: template 8751: struct is_trivially_copyable 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: template 8751: struct is_standard_layout 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: 8751: template 8751: struct is_pod 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: template 8751: struct is_literal_type 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: template 8751: struct is_empty 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: template 8751: struct is_polymorphic 8751: : public integral_constant 8751: { }; 8751: # 724 "/usr/include/c++/8/type_traits" 3 8751: template 8751: struct is_abstract 8751: : public integral_constant 8751: { }; 8751: 8751: template::value> 8751: struct __is_signed_helper 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_signed_helper<_Tp, true> 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: template 8751: struct is_signed 8751: : public __is_signed_helper<_Tp>::type 8751: { }; 8751: 8751: 8751: template 8751: struct is_unsigned 8751: : public __and_, __not_>> 8751: { }; 8751: # 759 "/usr/include/c++/8/type_traits" 3 8751: template 8751: _Up 8751: __declval(int); 8751: 8751: template 8751: _Tp 8751: __declval(long); 8751: 8751: template 8751: auto declval() noexcept -> decltype(__declval<_Tp>(0)); 8751: 8751: template 8751: struct extent; 8751: 8751: template 8751: struct remove_all_extents; 8751: 8751: template 8751: struct __is_array_known_bounds 8751: : public integral_constant::value > 0)> 8751: { }; 8751: 8751: template 8751: struct __is_array_unknown_bounds 8751: : public __and_, __not_>> 8751: { }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: struct __do_is_destructible_impl 8751: { 8751: template().~_Tp())> 8751: static true_type __test(int); 8751: 8751: template 8751: static false_type __test(...); 8751: }; 8751: 8751: template 8751: struct __is_destructible_impl 8751: : public __do_is_destructible_impl 8751: { 8751: typedef decltype(__test<_Tp>(0)) type; 8751: }; 8751: 8751: template, 8751: __is_array_unknown_bounds<_Tp>, 8751: is_function<_Tp>>::value, 8751: bool = __or_, is_scalar<_Tp>>::value> 8751: struct __is_destructible_safe; 8751: 8751: template 8751: struct __is_destructible_safe<_Tp, false, false> 8751: : public __is_destructible_impl::type>::type 8751: { }; 8751: 8751: template 8751: struct __is_destructible_safe<_Tp, true, false> 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_destructible_safe<_Tp, false, true> 8751: : public true_type { }; 8751: 8751: 8751: template 8751: struct is_destructible 8751: : public __is_destructible_safe<_Tp>::type 8751: { }; 8751: 8751: 8751: 8751: 8751: 8751: struct __do_is_nt_destructible_impl 8751: { 8751: template 8751: static integral_constant().~_Tp())> 8751: __test(int); 8751: 8751: template 8751: static false_type __test(...); 8751: }; 8751: 8751: template 8751: struct __is_nt_destructible_impl 8751: : public __do_is_nt_destructible_impl 8751: { 8751: typedef decltype(__test<_Tp>(0)) type; 8751: }; 8751: 8751: template, 8751: __is_array_unknown_bounds<_Tp>, 8751: is_function<_Tp>>::value, 8751: bool = __or_, is_scalar<_Tp>>::value> 8751: struct __is_nt_destructible_safe; 8751: 8751: template 8751: struct __is_nt_destructible_safe<_Tp, false, false> 8751: : public __is_nt_destructible_impl::type>::type 8751: { }; 8751: 8751: template 8751: struct __is_nt_destructible_safe<_Tp, true, false> 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_nt_destructible_safe<_Tp, false, true> 8751: : public true_type { }; 8751: 8751: 8751: template 8751: struct is_nothrow_destructible 8751: : public __is_nt_destructible_safe<_Tp>::type 8751: { }; 8751: 8751: struct __do_is_default_constructible_impl 8751: { 8751: template 8751: static true_type __test(int); 8751: 8751: template 8751: static false_type __test(...); 8751: }; 8751: 8751: template 8751: struct __is_default_constructible_impl 8751: : public __do_is_default_constructible_impl 8751: { 8751: typedef decltype(__test<_Tp>(0)) type; 8751: }; 8751: 8751: template 8751: struct __is_default_constructible_atom 8751: : public __and_<__not_>, 8751: __is_default_constructible_impl<_Tp>> 8751: { }; 8751: 8751: template::value> 8751: struct __is_default_constructible_safe; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct __is_default_constructible_safe<_Tp, true> 8751: : public __and_<__is_array_known_bounds<_Tp>, 8751: __is_default_constructible_atom::type>> 8751: { }; 8751: 8751: template 8751: struct __is_default_constructible_safe<_Tp, false> 8751: : public __is_default_constructible_atom<_Tp>::type 8751: { }; 8751: 8751: 8751: template 8751: struct is_default_constructible 8751: : public __is_default_constructible_safe<_Tp>::type 8751: { }; 8751: 8751: 8751: template 8751: struct is_constructible 8751: : public __bool_constant<__is_constructible(_Tp, _Args...)> 8751: { }; 8751: 8751: template::value> 8751: struct __is_copy_constructible_impl; 8751: 8751: template 8751: struct __is_copy_constructible_impl<_Tp, false> 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_copy_constructible_impl<_Tp, true> 8751: : public is_constructible<_Tp, const _Tp&> 8751: { }; 8751: 8751: 8751: template 8751: struct is_copy_constructible 8751: : public __is_copy_constructible_impl<_Tp> 8751: { }; 8751: 8751: template::value> 8751: struct __is_move_constructible_impl; 8751: 8751: template 8751: struct __is_move_constructible_impl<_Tp, false> 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_move_constructible_impl<_Tp, true> 8751: : public is_constructible<_Tp, _Tp&&> 8751: { }; 8751: 8751: 8751: template 8751: struct is_move_constructible 8751: : public __is_move_constructible_impl<_Tp> 8751: { }; 8751: 8751: template 8751: struct __is_nt_default_constructible_atom 8751: : public integral_constant 8751: { }; 8751: 8751: template::value> 8751: struct __is_nt_default_constructible_impl; 8751: 8751: template 8751: struct __is_nt_default_constructible_impl<_Tp, true> 8751: : public __and_<__is_array_known_bounds<_Tp>, 8751: __is_nt_default_constructible_atom::type>> 8751: { }; 8751: 8751: template 8751: struct __is_nt_default_constructible_impl<_Tp, false> 8751: : public __is_nt_default_constructible_atom<_Tp> 8751: { }; 8751: 8751: 8751: template 8751: struct is_nothrow_default_constructible 8751: : public __and_, 8751: __is_nt_default_constructible_impl<_Tp>> 8751: { }; 8751: 8751: template 8751: struct __is_nt_constructible_impl 8751: : public integral_constant()...))> 8751: { }; 8751: 8751: template 8751: struct __is_nt_constructible_impl<_Tp, _Arg> 8751: : public integral_constant(declval<_Arg>()))> 8751: { }; 8751: 8751: template 8751: struct __is_nt_constructible_impl<_Tp> 8751: : public is_nothrow_default_constructible<_Tp> 8751: { }; 8751: 8751: 8751: template 8751: struct is_nothrow_constructible 8751: : public __and_, 8751: __is_nt_constructible_impl<_Tp, _Args...>> 8751: { }; 8751: 8751: template::value> 8751: struct __is_nothrow_copy_constructible_impl; 8751: 8751: template 8751: struct __is_nothrow_copy_constructible_impl<_Tp, false> 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_nothrow_copy_constructible_impl<_Tp, true> 8751: : public is_nothrow_constructible<_Tp, const _Tp&> 8751: { }; 8751: 8751: 8751: template 8751: struct is_nothrow_copy_constructible 8751: : public __is_nothrow_copy_constructible_impl<_Tp> 8751: { }; 8751: 8751: template::value> 8751: struct __is_nothrow_move_constructible_impl; 8751: 8751: template 8751: struct __is_nothrow_move_constructible_impl<_Tp, false> 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_nothrow_move_constructible_impl<_Tp, true> 8751: : public is_nothrow_constructible<_Tp, _Tp&&> 8751: { }; 8751: 8751: 8751: template 8751: struct is_nothrow_move_constructible 8751: : public __is_nothrow_move_constructible_impl<_Tp> 8751: { }; 8751: 8751: 8751: template 8751: struct is_assignable 8751: : public __bool_constant<__is_assignable(_Tp, _Up)> 8751: { }; 8751: 8751: template::value> 8751: struct __is_copy_assignable_impl; 8751: 8751: template 8751: struct __is_copy_assignable_impl<_Tp, false> 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_copy_assignable_impl<_Tp, true> 8751: : public is_assignable<_Tp&, const _Tp&> 8751: { }; 8751: 8751: 8751: template 8751: struct is_copy_assignable 8751: : public __is_copy_assignable_impl<_Tp> 8751: { }; 8751: 8751: template::value> 8751: struct __is_move_assignable_impl; 8751: 8751: template 8751: struct __is_move_assignable_impl<_Tp, false> 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_move_assignable_impl<_Tp, true> 8751: : public is_assignable<_Tp&, _Tp&&> 8751: { }; 8751: 8751: 8751: template 8751: struct is_move_assignable 8751: : public __is_move_assignable_impl<_Tp> 8751: { }; 8751: 8751: template 8751: struct __is_nt_assignable_impl 8751: : public integral_constant() = declval<_Up>())> 8751: { }; 8751: 8751: 8751: template 8751: struct is_nothrow_assignable 8751: : public __and_, 8751: __is_nt_assignable_impl<_Tp, _Up>> 8751: { }; 8751: 8751: template::value> 8751: struct __is_nt_copy_assignable_impl; 8751: 8751: template 8751: struct __is_nt_copy_assignable_impl<_Tp, false> 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_nt_copy_assignable_impl<_Tp, true> 8751: : public is_nothrow_assignable<_Tp&, const _Tp&> 8751: { }; 8751: 8751: 8751: template 8751: struct is_nothrow_copy_assignable 8751: : public __is_nt_copy_assignable_impl<_Tp> 8751: { }; 8751: 8751: template::value> 8751: struct __is_nt_move_assignable_impl; 8751: 8751: template 8751: struct __is_nt_move_assignable_impl<_Tp, false> 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_nt_move_assignable_impl<_Tp, true> 8751: : public is_nothrow_assignable<_Tp&, _Tp&&> 8751: { }; 8751: 8751: 8751: template 8751: struct is_nothrow_move_assignable 8751: : public __is_nt_move_assignable_impl<_Tp> 8751: { }; 8751: 8751: 8751: template 8751: struct is_trivially_constructible 8751: : public __bool_constant<__is_trivially_constructible(_Tp, _Args...)> 8751: { }; 8751: 8751: 8751: template 8751: struct is_trivially_default_constructible 8751: : public is_trivially_constructible<_Tp>::type 8751: { }; 8751: 8751: struct __do_is_implicitly_default_constructible_impl 8751: { 8751: template 8751: static void __helper(const _Tp&); 8751: 8751: template 8751: static true_type __test(const _Tp&, 8751: decltype(__helper({}))* = 0); 8751: 8751: static false_type __test(...); 8751: }; 8751: 8751: template 8751: struct __is_implicitly_default_constructible_impl 8751: : public __do_is_implicitly_default_constructible_impl 8751: { 8751: typedef decltype(__test(declval<_Tp>())) type; 8751: }; 8751: 8751: template 8751: struct __is_implicitly_default_constructible_safe 8751: : public __is_implicitly_default_constructible_impl<_Tp>::type 8751: { }; 8751: 8751: template 8751: struct __is_implicitly_default_constructible 8751: : public __and_, 8751: __is_implicitly_default_constructible_safe<_Tp>> 8751: { }; 8751: 8751: 8751: 8751: template::value> 8751: struct __is_trivially_copy_constructible_impl; 8751: 8751: template 8751: struct __is_trivially_copy_constructible_impl<_Tp, false> 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_trivially_copy_constructible_impl<_Tp, true> 8751: : public __and_, 8751: integral_constant> 8751: { }; 8751: 8751: template 8751: struct is_trivially_copy_constructible 8751: : public __is_trivially_copy_constructible_impl<_Tp> 8751: { }; 8751: 8751: 8751: 8751: template::value> 8751: struct __is_trivially_move_constructible_impl; 8751: 8751: template 8751: struct __is_trivially_move_constructible_impl<_Tp, false> 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_trivially_move_constructible_impl<_Tp, true> 8751: : public __and_, 8751: integral_constant> 8751: { }; 8751: 8751: template 8751: struct is_trivially_move_constructible 8751: : public __is_trivially_move_constructible_impl<_Tp> 8751: { }; 8751: 8751: 8751: template 8751: struct is_trivially_assignable 8751: : public __bool_constant<__is_trivially_assignable(_Tp, _Up)> 8751: { }; 8751: 8751: 8751: 8751: template::value> 8751: struct __is_trivially_copy_assignable_impl; 8751: 8751: template 8751: struct __is_trivially_copy_assignable_impl<_Tp, false> 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_trivially_copy_assignable_impl<_Tp, true> 8751: : public __and_, 8751: integral_constant> 8751: { }; 8751: 8751: template 8751: struct is_trivially_copy_assignable 8751: : public __is_trivially_copy_assignable_impl<_Tp> 8751: { }; 8751: 8751: 8751: 8751: template::value> 8751: struct __is_trivially_move_assignable_impl; 8751: 8751: template 8751: struct __is_trivially_move_assignable_impl<_Tp, false> 8751: : public false_type { }; 8751: 8751: template 8751: struct __is_trivially_move_assignable_impl<_Tp, true> 8751: : public __and_, 8751: integral_constant> 8751: { }; 8751: 8751: template 8751: struct is_trivially_move_assignable 8751: : public __is_trivially_move_assignable_impl<_Tp> 8751: { }; 8751: 8751: 8751: template 8751: struct is_trivially_destructible 8751: : public __and_, integral_constant> 8751: { }; 8751: 8751: 8751: 8751: template 8751: struct has_virtual_destructor 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct alignment_of 8751: : public integral_constant { }; 8751: 8751: 8751: template 8751: struct rank 8751: : public integral_constant { }; 8751: 8751: template 8751: struct rank<_Tp[_Size]> 8751: : public integral_constant::value> { }; 8751: 8751: template 8751: struct rank<_Tp[]> 8751: : public integral_constant::value> { }; 8751: 8751: 8751: template 8751: struct extent 8751: : public integral_constant { }; 8751: 8751: template 8751: struct extent<_Tp[_Size], _Uint> 8751: : public integral_constant::value> 8751: { }; 8751: 8751: template 8751: struct extent<_Tp[], _Uint> 8751: : public integral_constant::value> 8751: { }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct is_same 8751: : public false_type { }; 8751: 8751: template 8751: struct is_same<_Tp, _Tp> 8751: : public true_type { }; 8751: 8751: 8751: template 8751: struct is_base_of 8751: : public integral_constant 8751: { }; 8751: 8751: template, is_function<_To>, 8751: is_array<_To>>::value> 8751: struct __is_convertible_helper 8751: { typedef typename is_void<_To>::type type; }; 8751: 8751: template 8751: class __is_convertible_helper<_From, _To, false> 8751: { 8751: template 8751: static void __test_aux(_To1); 8751: 8751: template(std::declval<_From1>()))> 8751: static true_type 8751: __test(int); 8751: 8751: template 8751: static false_type 8751: __test(...); 8751: 8751: public: 8751: typedef decltype(__test<_From, _To>(0)) type; 8751: }; 8751: 8751: 8751: 8751: template 8751: struct is_convertible 8751: : public __is_convertible_helper<_From, _To>::type 8751: { }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct remove_const 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct remove_const<_Tp const> 8751: { typedef _Tp type; }; 8751: 8751: 8751: template 8751: struct remove_volatile 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct remove_volatile<_Tp volatile> 8751: { typedef _Tp type; }; 8751: 8751: 8751: template 8751: struct remove_cv 8751: { 8751: typedef typename 8751: remove_const::type>::type type; 8751: }; 8751: 8751: 8751: template 8751: struct add_const 8751: { typedef _Tp const type; }; 8751: 8751: 8751: template 8751: struct add_volatile 8751: { typedef _Tp volatile type; }; 8751: 8751: 8751: template 8751: struct add_cv 8751: { 8751: typedef typename 8751: add_const::type>::type type; 8751: }; 8751: # 1463 "/usr/include/c++/8/type_traits" 3 8751: template 8751: struct remove_reference 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct remove_reference<_Tp&> 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct remove_reference<_Tp&&> 8751: { typedef _Tp type; }; 8751: 8751: template::value> 8751: struct __add_lvalue_reference_helper 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct __add_lvalue_reference_helper<_Tp, true> 8751: { typedef _Tp& type; }; 8751: 8751: 8751: template 8751: struct add_lvalue_reference 8751: : public __add_lvalue_reference_helper<_Tp> 8751: { }; 8751: 8751: template::value> 8751: struct __add_rvalue_reference_helper 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct __add_rvalue_reference_helper<_Tp, true> 8751: { typedef _Tp&& type; }; 8751: 8751: 8751: template 8751: struct add_rvalue_reference 8751: : public __add_rvalue_reference_helper<_Tp> 8751: { }; 8751: # 1520 "/usr/include/c++/8/type_traits" 3 8751: template 8751: struct __cv_selector; 8751: 8751: template 8751: struct __cv_selector<_Unqualified, false, false> 8751: { typedef _Unqualified __type; }; 8751: 8751: template 8751: struct __cv_selector<_Unqualified, false, true> 8751: { typedef volatile _Unqualified __type; }; 8751: 8751: template 8751: struct __cv_selector<_Unqualified, true, false> 8751: { typedef const _Unqualified __type; }; 8751: 8751: template 8751: struct __cv_selector<_Unqualified, true, true> 8751: { typedef const volatile _Unqualified __type; }; 8751: 8751: template::value, 8751: bool _IsVol = is_volatile<_Qualified>::value> 8751: class __match_cv_qualifiers 8751: { 8751: typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match; 8751: 8751: public: 8751: typedef typename __match::__type __type; 8751: }; 8751: 8751: 8751: template 8751: struct __make_unsigned 8751: { typedef _Tp __type; }; 8751: 8751: template<> 8751: struct __make_unsigned 8751: { typedef unsigned char __type; }; 8751: 8751: template<> 8751: struct __make_unsigned 8751: { typedef unsigned char __type; }; 8751: 8751: template<> 8751: struct __make_unsigned 8751: { typedef unsigned short __type; }; 8751: 8751: template<> 8751: struct __make_unsigned 8751: { typedef unsigned int __type; }; 8751: 8751: template<> 8751: struct __make_unsigned 8751: { typedef unsigned long __type; }; 8751: 8751: template<> 8751: struct __make_unsigned 8751: { typedef unsigned long long __type; }; 8751: # 1607 "/usr/include/c++/8/type_traits" 3 8751: template::value, 8751: bool _IsEnum = is_enum<_Tp>::value> 8751: class __make_unsigned_selector; 8751: 8751: template 8751: class __make_unsigned_selector<_Tp, true, false> 8751: { 8751: typedef __make_unsigned::type> __unsignedt; 8751: typedef typename __unsignedt::__type __unsigned_type; 8751: typedef __match_cv_qualifiers<_Tp, __unsigned_type> __cv_unsigned; 8751: 8751: public: 8751: typedef typename __cv_unsigned::__type __type; 8751: }; 8751: 8751: template 8751: class __make_unsigned_selector<_Tp, false, true> 8751: { 8751: 8751: typedef unsigned char __smallest; 8751: static const bool __b0 = sizeof(_Tp) <= sizeof(__smallest); 8751: static const bool __b1 = sizeof(_Tp) <= sizeof(unsigned short); 8751: static const bool __b2 = sizeof(_Tp) <= sizeof(unsigned int); 8751: static const bool __b3 = sizeof(_Tp) <= sizeof(unsigned long); 8751: typedef conditional<__b3, unsigned long, unsigned long long> __cond3; 8751: typedef typename __cond3::type __cond3_type; 8751: typedef conditional<__b2, unsigned int, __cond3_type> __cond2; 8751: typedef typename __cond2::type __cond2_type; 8751: typedef conditional<__b1, unsigned short, __cond2_type> __cond1; 8751: typedef typename __cond1::type __cond1_type; 8751: 8751: typedef typename conditional<__b0, __smallest, __cond1_type>::type 8751: __unsigned_type; 8751: typedef __match_cv_qualifiers<_Tp, __unsigned_type> __cv_unsigned; 8751: 8751: public: 8751: typedef typename __cv_unsigned::__type __type; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct make_unsigned 8751: { typedef typename __make_unsigned_selector<_Tp>::__type type; }; 8751: 8751: 8751: template<> 8751: struct make_unsigned; 8751: 8751: 8751: 8751: template 8751: struct __make_signed 8751: { typedef _Tp __type; }; 8751: 8751: template<> 8751: struct __make_signed 8751: { typedef signed char __type; }; 8751: 8751: template<> 8751: struct __make_signed 8751: { typedef signed char __type; }; 8751: 8751: template<> 8751: struct __make_signed 8751: { typedef signed short __type; }; 8751: 8751: template<> 8751: struct __make_signed 8751: { typedef signed int __type; }; 8751: 8751: template<> 8751: struct __make_signed 8751: { typedef signed long __type; }; 8751: 8751: template<> 8751: struct __make_signed 8751: { typedef signed long long __type; }; 8751: 8751: 8751: template<> 8751: struct __make_signed : __make_signed 8751: { }; 8751: 8751: 8751: 8751: template<> 8751: struct __make_signed : __make_signed 8751: { }; 8751: template<> 8751: struct __make_signed : __make_signed 8751: { }; 8751: # 1726 "/usr/include/c++/8/type_traits" 3 8751: template::value, 8751: bool _IsEnum = is_enum<_Tp>::value> 8751: class __make_signed_selector; 8751: 8751: template 8751: class __make_signed_selector<_Tp, true, false> 8751: { 8751: typedef __make_signed::type> __signedt; 8751: typedef typename __signedt::__type __signed_type; 8751: typedef __match_cv_qualifiers<_Tp, __signed_type> __cv_signed; 8751: 8751: public: 8751: typedef typename __cv_signed::__type __type; 8751: }; 8751: 8751: template 8751: class __make_signed_selector<_Tp, false, true> 8751: { 8751: typedef typename __make_unsigned_selector<_Tp>::__type __unsigned_type; 8751: 8751: public: 8751: typedef typename __make_signed_selector<__unsigned_type>::__type __type; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct make_signed 8751: { typedef typename __make_signed_selector<_Tp>::__type type; }; 8751: 8751: 8751: template<> 8751: struct make_signed; 8751: # 1776 "/usr/include/c++/8/type_traits" 3 8751: template 8751: struct remove_extent 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct remove_extent<_Tp[_Size]> 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct remove_extent<_Tp[]> 8751: { typedef _Tp type; }; 8751: 8751: 8751: template 8751: struct remove_all_extents 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct remove_all_extents<_Tp[_Size]> 8751: { typedef typename remove_all_extents<_Tp>::type type; }; 8751: 8751: template 8751: struct remove_all_extents<_Tp[]> 8751: { typedef typename remove_all_extents<_Tp>::type type; }; 8751: # 1813 "/usr/include/c++/8/type_traits" 3 8751: template 8751: struct __remove_pointer_helper 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct __remove_pointer_helper<_Tp, _Up*> 8751: { typedef _Up type; }; 8751: 8751: 8751: template 8751: struct remove_pointer 8751: : public __remove_pointer_helper<_Tp, typename remove_cv<_Tp>::type> 8751: { }; 8751: 8751: 8751: template, 8751: is_void<_Tp>>::value> 8751: struct __add_pointer_helper 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct __add_pointer_helper<_Tp, true> 8751: { typedef typename remove_reference<_Tp>::type* type; }; 8751: 8751: template 8751: struct add_pointer 8751: : public __add_pointer_helper<_Tp> 8751: { }; 8751: # 1852 "/usr/include/c++/8/type_traits" 3 8751: template 8751: struct __aligned_storage_msa 8751: { 8751: union __type 8751: { 8751: unsigned char __data[_Len]; 8751: struct __attribute__((__aligned__)) { } __align; 8751: }; 8751: }; 8751: # 1872 "/usr/include/c++/8/type_traits" 3 8751: template::__type)> 8751: struct aligned_storage 8751: { 8751: union type 8751: { 8751: unsigned char __data[_Len]; 8751: struct __attribute__((__aligned__((_Align)))) { } __align; 8751: }; 8751: }; 8751: 8751: template 8751: struct __strictest_alignment 8751: { 8751: static const size_t _S_alignment = 0; 8751: static const size_t _S_size = 0; 8751: }; 8751: 8751: template 8751: struct __strictest_alignment<_Tp, _Types...> 8751: { 8751: static const size_t _S_alignment = 8751: alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment 8751: ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; 8751: static const size_t _S_size = 8751: sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size 8751: ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; 8751: }; 8751: # 1911 "/usr/include/c++/8/type_traits" 3 8751: template 8751: struct aligned_union 8751: { 8751: private: 8751: static_assert(sizeof...(_Types) != 0, "At least one type is required"); 8751: 8751: using __strictest = __strictest_alignment<_Types...>; 8751: static const size_t _S_len = _Len > __strictest::_S_size 8751: ? _Len : __strictest::_S_size; 8751: public: 8751: 8751: static const size_t alignment_value = __strictest::_S_alignment; 8751: 8751: typedef typename aligned_storage<_S_len, alignment_value>::type type; 8751: }; 8751: 8751: template 8751: const size_t aligned_union<_Len, _Types...>::alignment_value; 8751: 8751: 8751: 8751: template::value, 8751: bool _IsFunction = is_function<_Up>::value> 8751: struct __decay_selector; 8751: 8751: 8751: template 8751: struct __decay_selector<_Up, false, false> 8751: { typedef typename remove_cv<_Up>::type __type; }; 8751: 8751: template 8751: struct __decay_selector<_Up, true, false> 8751: { typedef typename remove_extent<_Up>::type* __type; }; 8751: 8751: template 8751: struct __decay_selector<_Up, false, true> 8751: { typedef typename add_pointer<_Up>::type __type; }; 8751: 8751: 8751: template 8751: class decay 8751: { 8751: typedef typename remove_reference<_Tp>::type __remove_type; 8751: 8751: public: 8751: typedef typename __decay_selector<__remove_type>::__type type; 8751: }; 8751: 8751: template 8751: class reference_wrapper; 8751: 8751: 8751: template 8751: struct __strip_reference_wrapper 8751: { 8751: typedef _Tp __type; 8751: }; 8751: 8751: template 8751: struct __strip_reference_wrapper > 8751: { 8751: typedef _Tp& __type; 8751: }; 8751: 8751: template 8751: struct __decay_and_strip 8751: { 8751: typedef typename __strip_reference_wrapper< 8751: typename decay<_Tp>::type>::__type __type; 8751: }; 8751: 8751: 8751: 8751: 8751: template 8751: struct enable_if 8751: { }; 8751: 8751: 8751: template 8751: struct enable_if 8751: { typedef _Tp type; }; 8751: 8751: template 8751: using _Require = typename enable_if<__and_<_Cond...>::value>::type; 8751: 8751: 8751: 8751: template 8751: struct conditional 8751: { typedef _Iftrue type; }; 8751: 8751: 8751: template 8751: struct conditional 8751: { typedef _Iffalse type; }; 8751: 8751: 8751: template 8751: struct common_type; 8751: 8751: 8751: 8751: struct __do_common_type_impl 8751: { 8751: template 8751: static __success_type() 8751: : std::declval<_Up>())>::type> _S_test(int); 8751: 8751: template 8751: static __failure_type _S_test(...); 8751: }; 8751: 8751: template 8751: struct __common_type_impl 8751: : private __do_common_type_impl 8751: { 8751: typedef decltype(_S_test<_Tp, _Up>(0)) type; 8751: }; 8751: 8751: struct __do_member_type_wrapper 8751: { 8751: template 8751: static __success_type _S_test(int); 8751: 8751: template 8751: static __failure_type _S_test(...); 8751: }; 8751: 8751: template 8751: struct __member_type_wrapper 8751: : private __do_member_type_wrapper 8751: { 8751: typedef decltype(_S_test<_Tp>(0)) type; 8751: }; 8751: 8751: template 8751: struct __expanded_common_type_wrapper 8751: { 8751: typedef common_type type; 8751: }; 8751: 8751: template 8751: struct __expanded_common_type_wrapper<__failure_type, _Args...> 8751: { typedef __failure_type type; }; 8751: 8751: template 8751: struct common_type<_Tp> 8751: { typedef typename decay<_Tp>::type type; }; 8751: 8751: template 8751: struct common_type<_Tp, _Up> 8751: : public __common_type_impl<_Tp, _Up>::type 8751: { }; 8751: 8751: template 8751: struct common_type<_Tp, _Up, _Vp...> 8751: : public __expanded_common_type_wrapper>::type, _Vp...>::type 8751: { }; 8751: 8751: 8751: template 8751: struct underlying_type 8751: { 8751: typedef __underlying_type(_Tp) type; 8751: }; 8751: 8751: template 8751: struct __declval_protector 8751: { 8751: static const bool __stop = false; 8751: }; 8751: 8751: template 8751: auto declval() noexcept -> decltype(__declval<_Tp>(0)) 8751: { 8751: static_assert(__declval_protector<_Tp>::__stop, 8751: "declval() must not be used!"); 8751: return __declval<_Tp>(0); 8751: } 8751: 8751: 8751: template 8751: class result_of; 8751: 8751: 8751: 8751: 8751: 8751: struct __invoke_memfun_ref { }; 8751: struct __invoke_memfun_deref { }; 8751: struct __invoke_memobj_ref { }; 8751: struct __invoke_memobj_deref { }; 8751: struct __invoke_other { }; 8751: 8751: 8751: template 8751: struct __result_of_success : __success_type<_Tp> 8751: { using __invoke_type = _Tag; }; 8751: 8751: 8751: struct __result_of_memfun_ref_impl 8751: { 8751: template 8751: static __result_of_success().*std::declval<_Fp>())(std::declval<_Args>()...) 8751: ), __invoke_memfun_ref> _S_test(int); 8751: 8751: template 8751: static __failure_type _S_test(...); 8751: }; 8751: 8751: template 8751: struct __result_of_memfun_ref 8751: : private __result_of_memfun_ref_impl 8751: { 8751: typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; 8751: }; 8751: 8751: 8751: struct __result_of_memfun_deref_impl 8751: { 8751: template 8751: static __result_of_success()).*std::declval<_Fp>())(std::declval<_Args>()...) 8751: ), __invoke_memfun_deref> _S_test(int); 8751: 8751: template 8751: static __failure_type _S_test(...); 8751: }; 8751: 8751: template 8751: struct __result_of_memfun_deref 8751: : private __result_of_memfun_deref_impl 8751: { 8751: typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; 8751: }; 8751: 8751: 8751: struct __result_of_memobj_ref_impl 8751: { 8751: template 8751: static __result_of_success().*std::declval<_Fp>() 8751: ), __invoke_memobj_ref> _S_test(int); 8751: 8751: template 8751: static __failure_type _S_test(...); 8751: }; 8751: 8751: template 8751: struct __result_of_memobj_ref 8751: : private __result_of_memobj_ref_impl 8751: { 8751: typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; 8751: }; 8751: 8751: 8751: struct __result_of_memobj_deref_impl 8751: { 8751: template 8751: static __result_of_success()).*std::declval<_Fp>() 8751: ), __invoke_memobj_deref> _S_test(int); 8751: 8751: template 8751: static __failure_type _S_test(...); 8751: }; 8751: 8751: template 8751: struct __result_of_memobj_deref 8751: : private __result_of_memobj_deref_impl 8751: { 8751: typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; 8751: }; 8751: 8751: template 8751: struct __result_of_memobj; 8751: 8751: template 8751: struct __result_of_memobj<_Res _Class::*, _Arg> 8751: { 8751: typedef typename remove_cv::type>::type _Argval; 8751: typedef _Res _Class::* _MemPtr; 8751: typedef typename conditional<__or_, 8751: is_base_of<_Class, _Argval>>::value, 8751: __result_of_memobj_ref<_MemPtr, _Arg>, 8751: __result_of_memobj_deref<_MemPtr, _Arg> 8751: >::type::type type; 8751: }; 8751: 8751: template 8751: struct __result_of_memfun; 8751: 8751: template 8751: struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> 8751: { 8751: typedef typename remove_cv::type>::type _Argval; 8751: typedef _Res _Class::* _MemPtr; 8751: typedef typename conditional<__or_, 8751: is_base_of<_Class, _Argval>>::value, 8751: __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, 8751: __result_of_memfun_deref<_MemPtr, _Arg, _Args...> 8751: >::type::type type; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template::type> 8751: struct __inv_unwrap 8751: { 8751: using type = _Tp; 8751: }; 8751: 8751: template 8751: struct __inv_unwrap<_Tp, reference_wrapper<_Up>> 8751: { 8751: using type = _Up&; 8751: }; 8751: 8751: template 8751: struct __result_of_impl 8751: { 8751: typedef __failure_type type; 8751: }; 8751: 8751: template 8751: struct __result_of_impl 8751: : public __result_of_memobj::type, 8751: typename __inv_unwrap<_Arg>::type> 8751: { }; 8751: 8751: template 8751: struct __result_of_impl 8751: : public __result_of_memfun::type, 8751: typename __inv_unwrap<_Arg>::type, _Args...> 8751: { }; 8751: 8751: 8751: struct __result_of_other_impl 8751: { 8751: template 8751: static __result_of_success()(std::declval<_Args>()...) 8751: ), __invoke_other> _S_test(int); 8751: 8751: template 8751: static __failure_type _S_test(...); 8751: }; 8751: 8751: template 8751: struct __result_of_impl 8751: : private __result_of_other_impl 8751: { 8751: typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type; 8751: }; 8751: 8751: 8751: template 8751: struct __invoke_result 8751: : public __result_of_impl< 8751: is_member_object_pointer< 8751: typename remove_reference<_Functor>::type 8751: >::value, 8751: is_member_function_pointer< 8751: typename remove_reference<_Functor>::type 8751: >::value, 8751: _Functor, _ArgTypes... 8751: >::type 8751: { }; 8751: 8751: template 8751: struct result_of<_Functor(_ArgTypes...)> 8751: : public __invoke_result<_Functor, _ArgTypes...> 8751: { }; 8751: # 2329 "/usr/include/c++/8/type_traits" 3 8751: template using __void_t = void; 8751: 8751: 8751: 8751: 8751: template using void_t = void; 8751: 8751: 8751: 8751: template class _Op, typename... _Args> 8751: struct __detector 8751: { 8751: using value_t = false_type; 8751: using type = _Default; 8751: }; 8751: 8751: 8751: template class _Op, 8751: typename... _Args> 8751: struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> 8751: { 8751: using value_t = true_type; 8751: using type = _Op<_Args...>; 8751: }; 8751: 8751: 8751: template class _Op, 8751: typename... _Args> 8751: using __detected_or = __detector<_Default, void, _Op, _Args...>; 8751: 8751: 8751: template class _Op, 8751: typename... _Args> 8751: using __detected_or_t 8751: = typename __detected_or<_Default, _Op, _Args...>::type; 8751: # 2382 "/usr/include/c++/8/type_traits" 3 8751: template 8751: struct __is_swappable; 8751: 8751: template 8751: struct __is_nothrow_swappable; 8751: 8751: template 8751: class tuple; 8751: 8751: template 8751: struct __is_tuple_like_impl : false_type 8751: { }; 8751: 8751: template 8751: struct __is_tuple_like_impl> : true_type 8751: { }; 8751: 8751: 8751: template 8751: struct __is_tuple_like 8751: : public __is_tuple_like_impl::type>::type>::type 8751: { }; 8751: 8751: template 8751: inline 8751: typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, 8751: is_move_constructible<_Tp>, 8751: is_move_assignable<_Tp>>::value>::type 8751: swap(_Tp&, _Tp&) 8751: noexcept(__and_, 8751: is_nothrow_move_assignable<_Tp>>::value); 8751: 8751: template 8751: inline 8751: typename enable_if<__is_swappable<_Tp>::value>::type 8751: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 8751: noexcept(__is_nothrow_swappable<_Tp>::value); 8751: 8751: namespace __swappable_details { 8751: using std::swap; 8751: 8751: struct __do_is_swappable_impl 8751: { 8751: template(), std::declval<_Tp&>()))> 8751: static true_type __test(int); 8751: 8751: template 8751: static false_type __test(...); 8751: }; 8751: 8751: struct __do_is_nothrow_swappable_impl 8751: { 8751: template 8751: static __bool_constant< 8751: noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) 8751: > __test(int); 8751: 8751: template 8751: static false_type __test(...); 8751: }; 8751: 8751: } 8751: 8751: template 8751: struct __is_swappable_impl 8751: : public __swappable_details::__do_is_swappable_impl 8751: { 8751: typedef decltype(__test<_Tp>(0)) type; 8751: }; 8751: 8751: template 8751: struct __is_nothrow_swappable_impl 8751: : public __swappable_details::__do_is_nothrow_swappable_impl 8751: { 8751: typedef decltype(__test<_Tp>(0)) type; 8751: }; 8751: 8751: template 8751: struct __is_swappable 8751: : public __is_swappable_impl<_Tp>::type 8751: { }; 8751: 8751: template 8751: struct __is_nothrow_swappable 8751: : public __is_nothrow_swappable_impl<_Tp>::type 8751: { }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct is_swappable 8751: : public __is_swappable_impl<_Tp>::type 8751: { }; 8751: 8751: 8751: template 8751: struct is_nothrow_swappable 8751: : public __is_nothrow_swappable_impl<_Tp>::type 8751: { }; 8751: # 2499 "/usr/include/c++/8/type_traits" 3 8751: namespace __swappable_with_details { 8751: using std::swap; 8751: 8751: struct __do_is_swappable_with_impl 8751: { 8751: template(), std::declval<_Up>())), 8751: typename 8751: = decltype(swap(std::declval<_Up>(), std::declval<_Tp>()))> 8751: static true_type __test(int); 8751: 8751: template 8751: static false_type __test(...); 8751: }; 8751: 8751: struct __do_is_nothrow_swappable_with_impl 8751: { 8751: template 8751: static __bool_constant< 8751: noexcept(swap(std::declval<_Tp>(), std::declval<_Up>())) 8751: && 8751: noexcept(swap(std::declval<_Up>(), std::declval<_Tp>())) 8751: > __test(int); 8751: 8751: template 8751: static false_type __test(...); 8751: }; 8751: 8751: } 8751: 8751: template 8751: struct __is_swappable_with_impl 8751: : public __swappable_with_details::__do_is_swappable_with_impl 8751: { 8751: typedef decltype(__test<_Tp, _Up>(0)) type; 8751: }; 8751: 8751: 8751: template 8751: struct __is_swappable_with_impl<_Tp&, _Tp&> 8751: : public __swappable_details::__do_is_swappable_impl 8751: { 8751: typedef decltype(__test<_Tp&>(0)) type; 8751: }; 8751: 8751: template 8751: struct __is_nothrow_swappable_with_impl 8751: : public __swappable_with_details::__do_is_nothrow_swappable_with_impl 8751: { 8751: typedef decltype(__test<_Tp, _Up>(0)) type; 8751: }; 8751: 8751: 8751: template 8751: struct __is_nothrow_swappable_with_impl<_Tp&, _Tp&> 8751: : public __swappable_details::__do_is_nothrow_swappable_impl 8751: { 8751: typedef decltype(__test<_Tp&>(0)) type; 8751: }; 8751: 8751: 8751: template 8751: struct is_swappable_with 8751: : public __is_swappable_with_impl<_Tp, _Up>::type 8751: { }; 8751: 8751: 8751: template 8751: struct is_nothrow_swappable_with 8751: : public __is_nothrow_swappable_with_impl<_Tp, _Up>::type 8751: { }; 8751: # 2587 "/usr/include/c++/8/type_traits" 3 8751: template 8751: struct __is_invocable_impl : false_type { }; 8751: 8751: template 8751: struct __is_invocable_impl<_Result, _Ret, __void_t> 8751: : __or_, is_convertible>::type 8751: { }; 8751: 8751: template 8751: struct __is_invocable 8751: : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type 8751: { }; 8751: 8751: template 8751: constexpr bool __call_is_nt(__invoke_memfun_ref) 8751: { 8751: using _Up = typename __inv_unwrap<_Tp>::type; 8751: return noexcept((std::declval<_Up>().*std::declval<_Fn>())( 8751: std::declval<_Args>()...)); 8751: } 8751: 8751: template 8751: constexpr bool __call_is_nt(__invoke_memfun_deref) 8751: { 8751: return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())( 8751: std::declval<_Args>()...)); 8751: } 8751: 8751: template 8751: constexpr bool __call_is_nt(__invoke_memobj_ref) 8751: { 8751: using _Up = typename __inv_unwrap<_Tp>::type; 8751: return noexcept(std::declval<_Up>().*std::declval<_Fn>()); 8751: } 8751: 8751: template 8751: constexpr bool __call_is_nt(__invoke_memobj_deref) 8751: { 8751: return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>()); 8751: } 8751: 8751: template 8751: constexpr bool __call_is_nt(__invoke_other) 8751: { 8751: return noexcept(std::declval<_Fn>()(std::declval<_Args>()...)); 8751: } 8751: 8751: template 8751: struct __call_is_nothrow 8751: : __bool_constant< 8751: std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{}) 8751: > 8751: { }; 8751: 8751: template 8751: using __call_is_nothrow_ 8751: = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>; 8751: 8751: 8751: template 8751: struct __is_nothrow_invocable 8751: : __and_<__is_invocable<_Fn, _Args...>, 8751: __call_is_nothrow_<_Fn, _Args...>>::type 8751: { }; 8751: 8751: struct __nonesuch { 8751: __nonesuch() = delete; 8751: ~__nonesuch() = delete; 8751: __nonesuch(__nonesuch const&) = delete; 8751: void operator=(__nonesuch const&) = delete; 8751: }; 8751: # 2943 "/usr/include/c++/8/type_traits" 3 8751: 8751: } 8751: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8751: # 1 "/usr/include/c++/8/cstddef" 1 3 4 8751: # 42 "/usr/include/c++/8/cstddef" 3 4 8751: 8751: # 43 "/usr/include/c++/8/cstddef" 3 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8751: # 149 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 3 4 8751: typedef int ptrdiff_t; 8751: # 216 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 3 4 8751: typedef unsigned int size_t; 8751: # 426 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 3 4 8751: typedef struct { 8751: long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); 8751: long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); 8751: # 437 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 3 4 8751: } max_align_t; 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef decltype(nullptr) nullptr_t; 8751: # 51 "/usr/include/c++/8/cstddef" 2 3 8751: 8751: 8751: namespace std 8751: { 8751: 8751: using ::max_align_t; 8751: } 8751: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8751: # 1 "/usr/include/c++/8/utility" 1 3 4 8751: # 58 "/usr/include/c++/8/utility" 3 4 8751: 8751: # 59 "/usr/include/c++/8/utility" 3 8751: # 69 "/usr/include/c++/8/utility" 3 8751: # 1 "/usr/include/c++/8/bits/stl_relops.h" 1 3 8751: # 67 "/usr/include/c++/8/bits/stl_relops.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: namespace rel_ops 8751: { 8751: # 85 "/usr/include/c++/8/bits/stl_relops.h" 3 8751: template 8751: inline bool 8751: operator!=(const _Tp& __x, const _Tp& __y) 8751: { return !(__x == __y); } 8751: # 98 "/usr/include/c++/8/bits/stl_relops.h" 3 8751: template 8751: inline bool 8751: operator>(const _Tp& __x, const _Tp& __y) 8751: { return __y < __x; } 8751: # 111 "/usr/include/c++/8/bits/stl_relops.h" 3 8751: template 8751: inline bool 8751: operator<=(const _Tp& __x, const _Tp& __y) 8751: { return !(__y < __x); } 8751: # 124 "/usr/include/c++/8/bits/stl_relops.h" 3 8751: template 8751: inline bool 8751: operator>=(const _Tp& __x, const _Tp& __y) 8751: { return !(__x < __y); } 8751: } 8751: 8751: 8751: } 8751: # 70 "/usr/include/c++/8/utility" 2 3 8751: # 1 "/usr/include/c++/8/bits/stl_pair.h" 1 3 8751: # 59 "/usr/include/c++/8/bits/stl_pair.h" 3 8751: # 1 "/usr/include/c++/8/bits/move.h" 1 3 8751: # 34 "/usr/include/c++/8/bits/move.h" 3 8751: # 1 "/usr/include/c++/8/bits/concept_check.h" 1 3 8751: # 33 "/usr/include/c++/8/bits/concept_check.h" 3 8751: 8751: # 34 "/usr/include/c++/8/bits/concept_check.h" 3 8751: # 35 "/usr/include/c++/8/bits/move.h" 2 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline constexpr _Tp* 8751: __addressof(_Tp& __r) noexcept 8751: { return __builtin_addressof(__r); } 8751: 8751: 8751: 8751: 8751: } 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 72 "/usr/include/c++/8/bits/move.h" 3 8751: template 8751: constexpr _Tp&& 8751: forward(typename std::remove_reference<_Tp>::type& __t) noexcept 8751: { return static_cast<_Tp&&>(__t); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: constexpr _Tp&& 8751: forward(typename std::remove_reference<_Tp>::type&& __t) noexcept 8751: { 8751: static_assert(!std::is_lvalue_reference<_Tp>::value, "template argument" 8751: " substituting _Tp is an lvalue reference type"); 8751: return static_cast<_Tp&&>(__t); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: constexpr typename std::remove_reference<_Tp>::type&& 8751: move(_Tp&& __t) noexcept 8751: { return static_cast::type&&>(__t); } 8751: 8751: 8751: template 8751: struct __move_if_noexcept_cond 8751: : public __and_<__not_>, 8751: is_copy_constructible<_Tp>>::type { }; 8751: # 116 "/usr/include/c++/8/bits/move.h" 3 8751: template 8751: constexpr typename 8751: conditional<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&>::type 8751: move_if_noexcept(_Tp& __x) noexcept 8751: { return std::move(__x); } 8751: # 136 "/usr/include/c++/8/bits/move.h" 3 8751: template 8751: inline _Tp* 8751: addressof(_Tp& __r) noexcept 8751: { return std::__addressof(__r); } 8751: 8751: 8751: 8751: template 8751: const _Tp* addressof(const _Tp&&) = delete; 8751: 8751: 8751: template 8751: inline _Tp 8751: __exchange(_Tp& __obj, _Up&& __new_val) 8751: { 8751: _Tp __old_val = std::move(__obj); 8751: __obj = std::forward<_Up>(__new_val); 8751: return __old_val; 8751: } 8751: # 176 "/usr/include/c++/8/bits/move.h" 3 8751: template 8751: inline 8751: 8751: typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, 8751: is_move_constructible<_Tp>, 8751: is_move_assignable<_Tp>>::value>::type 8751: swap(_Tp& __a, _Tp& __b) 8751: noexcept(__and_, 8751: is_nothrow_move_assignable<_Tp>>::value) 8751: 8751: 8751: 8751: 8751: { 8751: 8751: 8751: 8751: _Tp __tmp = std::move(__a); 8751: __a = std::move(__b); 8751: __b = std::move(__tmp); 8751: } 8751: 8751: 8751: 8751: 8751: template 8751: inline 8751: 8751: typename enable_if<__is_swappable<_Tp>::value>::type 8751: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 8751: noexcept(__is_nothrow_swappable<_Tp>::value) 8751: 8751: 8751: 8751: 8751: { 8751: for (size_t __n = 0; __n < _Nm; ++__n) 8751: swap(__a[__n], __b[__n]); 8751: } 8751: 8751: 8751: 8751: } 8751: # 60 "/usr/include/c++/8/bits/stl_pair.h" 2 3 8751: 8751: 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 76 "/usr/include/c++/8/bits/stl_pair.h" 3 8751: struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; 8751: 8751: 8751: constexpr piecewise_construct_t piecewise_construct = 8751: piecewise_construct_t(); 8751: 8751: 8751: template 8751: class tuple; 8751: 8751: template 8751: struct _Index_tuple; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct _PCC 8751: { 8751: template 8751: static constexpr bool _ConstructiblePair() 8751: { 8751: return __and_, 8751: is_constructible<_T2, const _U2&>>::value; 8751: } 8751: 8751: template 8751: static constexpr bool _ImplicitlyConvertiblePair() 8751: { 8751: return __and_, 8751: is_convertible>::value; 8751: } 8751: 8751: template 8751: static constexpr bool _MoveConstructiblePair() 8751: { 8751: return __and_, 8751: is_constructible<_T2, _U2&&>>::value; 8751: } 8751: 8751: template 8751: static constexpr bool _ImplicitlyMoveConvertiblePair() 8751: { 8751: return __and_, 8751: is_convertible<_U2&&, _T2>>::value; 8751: } 8751: 8751: template 8751: static constexpr bool _CopyMovePair() 8751: { 8751: using __do_converts = __and_, 8751: is_convertible<_U2&&, _T2>>; 8751: using __converts = typename conditional<__implicit, 8751: __do_converts, 8751: __not_<__do_converts>>::type; 8751: return __and_, 8751: is_constructible<_T2, _U2&&>, 8751: __converts 8751: >::value; 8751: } 8751: 8751: template 8751: static constexpr bool _MoveCopyPair() 8751: { 8751: using __do_converts = __and_, 8751: is_convertible>; 8751: using __converts = typename conditional<__implicit, 8751: __do_converts, 8751: __not_<__do_converts>>::type; 8751: return __and_, 8751: is_constructible<_T2, const _U2&&>, 8751: __converts 8751: >::value; 8751: } 8751: }; 8751: 8751: template 8751: struct _PCC 8751: { 8751: template 8751: static constexpr bool _ConstructiblePair() 8751: { 8751: return false; 8751: } 8751: 8751: template 8751: static constexpr bool _ImplicitlyConvertiblePair() 8751: { 8751: return false; 8751: } 8751: 8751: template 8751: static constexpr bool _MoveConstructiblePair() 8751: { 8751: return false; 8751: } 8751: 8751: template 8751: static constexpr bool _ImplicitlyMoveConvertiblePair() 8751: { 8751: return false; 8751: } 8751: }; 8751: 8751: 8751: 8751: 8751: struct __nonesuch_no_braces : std::__nonesuch { 8751: explicit __nonesuch_no_braces(const __nonesuch&) = delete; 8751: }; 8751: # 197 "/usr/include/c++/8/bits/stl_pair.h" 3 8751: template 8751: struct pair 8751: { 8751: typedef _T1 first_type; 8751: typedef _T2 second_type; 8751: 8751: _T1 first; 8751: _T2 second; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template , 8751: __is_implicitly_default_constructible<_U2>> 8751: ::value, bool>::type = true> 8751: 8751: constexpr pair() 8751: : first(), second() { } 8751: 8751: 8751: template , 8751: is_default_constructible<_U2>, 8751: __not_< 8751: __and_<__is_implicitly_default_constructible<_U1>, 8751: __is_implicitly_default_constructible<_U2>>>> 8751: ::value, bool>::type = false> 8751: explicit constexpr pair() 8751: : first(), second() { } 8751: # 241 "/usr/include/c++/8/bits/stl_pair.h" 3 8751: using _PCCP = _PCC; 8751: 8751: template() 8751: && _PCCP::template 8751: _ImplicitlyConvertiblePair<_U1, _U2>(), 8751: bool>::type=true> 8751: constexpr pair(const _T1& __a, const _T2& __b) 8751: : first(__a), second(__b) { } 8751: 8751: template() 8751: && !_PCCP::template 8751: _ImplicitlyConvertiblePair<_U1, _U2>(), 8751: bool>::type=false> 8751: explicit constexpr pair(const _T1& __a, const _T2& __b) 8751: : first(__a), second(__b) { } 8751: # 269 "/usr/include/c++/8/bits/stl_pair.h" 3 8751: template 8751: using _PCCFP = _PCC::value 8751: || !is_same<_T2, _U2>::value, 8751: _T1, _T2>; 8751: 8751: template::template 8751: _ConstructiblePair<_U1, _U2>() 8751: && _PCCFP<_U1, _U2>::template 8751: _ImplicitlyConvertiblePair<_U1, _U2>(), 8751: bool>::type=true> 8751: constexpr pair(const pair<_U1, _U2>& __p) 8751: : first(__p.first), second(__p.second) { } 8751: 8751: template::template 8751: _ConstructiblePair<_U1, _U2>() 8751: && !_PCCFP<_U1, _U2>::template 8751: _ImplicitlyConvertiblePair<_U1, _U2>(), 8751: bool>::type=false> 8751: explicit constexpr pair(const pair<_U1, _U2>& __p) 8751: : first(__p.first), second(__p.second) { } 8751: 8751: constexpr pair(const pair&) = default; 8751: constexpr pair(pair&&) = default; 8751: 8751: 8751: template(), 8751: bool>::type=true> 8751: constexpr pair(_U1&& __x, const _T2& __y) 8751: : first(std::forward<_U1>(__x)), second(__y) { } 8751: 8751: template(), 8751: bool>::type=false> 8751: explicit constexpr pair(_U1&& __x, const _T2& __y) 8751: : first(std::forward<_U1>(__x)), second(__y) { } 8751: 8751: template(), 8751: bool>::type=true> 8751: constexpr pair(const _T1& __x, _U2&& __y) 8751: : first(__x), second(std::forward<_U2>(__y)) { } 8751: 8751: template(), 8751: bool>::type=false> 8751: explicit pair(const _T1& __x, _U2&& __y) 8751: : first(__x), second(std::forward<_U2>(__y)) { } 8751: 8751: template() 8751: && _PCCP::template 8751: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8751: bool>::type=true> 8751: constexpr pair(_U1&& __x, _U2&& __y) 8751: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } 8751: 8751: template() 8751: && !_PCCP::template 8751: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8751: bool>::type=false> 8751: explicit constexpr pair(_U1&& __x, _U2&& __y) 8751: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } 8751: 8751: 8751: template::template 8751: _MoveConstructiblePair<_U1, _U2>() 8751: && _PCCFP<_U1, _U2>::template 8751: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8751: bool>::type=true> 8751: constexpr pair(pair<_U1, _U2>&& __p) 8751: : first(std::forward<_U1>(__p.first)), 8751: second(std::forward<_U2>(__p.second)) { } 8751: 8751: template::template 8751: _MoveConstructiblePair<_U1, _U2>() 8751: && !_PCCFP<_U1, _U2>::template 8751: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8751: bool>::type=false> 8751: explicit constexpr pair(pair<_U1, _U2>&& __p) 8751: : first(std::forward<_U1>(__p.first)), 8751: second(std::forward<_U2>(__p.second)) { } 8751: 8751: template 8751: pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); 8751: 8751: pair& 8751: operator=(typename conditional< 8751: __and_, 8751: is_copy_assignable<_T2>>::value, 8751: const pair&, const __nonesuch_no_braces&>::type __p) 8751: { 8751: first = __p.first; 8751: second = __p.second; 8751: return *this; 8751: } 8751: 8751: pair& 8751: operator=(typename conditional< 8751: __not_<__and_, 8751: is_copy_assignable<_T2>>>::value, 8751: const pair&, const __nonesuch_no_braces&>::type __p) = delete; 8751: 8751: pair& 8751: operator=(typename conditional< 8751: __and_, 8751: is_move_assignable<_T2>>::value, 8751: pair&&, __nonesuch_no_braces&&>::type __p) 8751: noexcept(__and_, 8751: is_nothrow_move_assignable<_T2>>::value) 8751: { 8751: first = std::forward(__p.first); 8751: second = std::forward(__p.second); 8751: return *this; 8751: } 8751: 8751: template 8751: typename enable_if<__and_, 8751: is_assignable<_T2&, const _U2&>>::value, 8751: pair&>::type 8751: operator=(const pair<_U1, _U2>& __p) 8751: { 8751: first = __p.first; 8751: second = __p.second; 8751: return *this; 8751: } 8751: 8751: template 8751: typename enable_if<__and_, 8751: is_assignable<_T2&, _U2&&>>::value, 8751: pair&>::type 8751: operator=(pair<_U1, _U2>&& __p) 8751: { 8751: first = std::forward<_U1>(__p.first); 8751: second = std::forward<_U2>(__p.second); 8751: return *this; 8751: } 8751: 8751: void 8751: swap(pair& __p) 8751: noexcept(__and_<__is_nothrow_swappable<_T1>, 8751: __is_nothrow_swappable<_T2>>::value) 8751: { 8751: using std::swap; 8751: swap(first, __p.first); 8751: swap(second, __p.second); 8751: } 8751: 8751: private: 8751: template 8751: pair(tuple<_Args1...>&, tuple<_Args2...>&, 8751: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); 8751: 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline constexpr bool 8751: operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8751: { return __x.first == __y.first && __x.second == __y.second; } 8751: 8751: 8751: template 8751: inline constexpr bool 8751: operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8751: { return __x.first < __y.first 8751: || (!(__y.first < __x.first) && __x.second < __y.second); } 8751: 8751: 8751: template 8751: inline constexpr bool 8751: operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8751: { return !(__x == __y); } 8751: 8751: 8751: template 8751: inline constexpr bool 8751: operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8751: { return __y < __x; } 8751: 8751: 8751: template 8751: inline constexpr bool 8751: operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8751: { return !(__y < __x); } 8751: 8751: 8751: template 8751: inline constexpr bool 8751: operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8751: { return !(__x < __y); } 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline 8751: 8751: 8751: typename enable_if<__and_<__is_swappable<_T1>, 8751: __is_swappable<_T2>>::value>::type 8751: 8751: 8751: 8751: swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) 8751: noexcept(noexcept(__x.swap(__y))) 8751: { __x.swap(__y); } 8751: 8751: 8751: template 8751: typename enable_if, 8751: __is_swappable<_T2>>::value>::type 8751: swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; 8751: # 516 "/usr/include/c++/8/bits/stl_pair.h" 3 8751: template 8751: constexpr pair::__type, 8751: typename __decay_and_strip<_T2>::__type> 8751: make_pair(_T1&& __x, _T2&& __y) 8751: { 8751: typedef typename __decay_and_strip<_T1>::__type __ds_type1; 8751: typedef typename __decay_and_strip<_T2>::__type __ds_type2; 8751: typedef pair<__ds_type1, __ds_type2> __pair_type; 8751: return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); 8751: } 8751: # 535 "/usr/include/c++/8/bits/stl_pair.h" 3 8751: 8751: } 8751: # 71 "/usr/include/c++/8/utility" 2 3 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/initializer_list" 1 3 8751: # 33 "/usr/include/c++/8/initializer_list" 3 8751: 8751: # 34 "/usr/include/c++/8/initializer_list" 3 8751: 8751: 8751: 8751: 8751: 8751: #pragma GCC visibility push(default) 8751: 8751: 8751: 8751: namespace std 8751: { 8751: 8751: template 8751: class initializer_list 8751: { 8751: public: 8751: typedef _E value_type; 8751: typedef const _E& reference; 8751: typedef const _E& const_reference; 8751: typedef size_t size_type; 8751: typedef const _E* iterator; 8751: typedef const _E* const_iterator; 8751: 8751: private: 8751: iterator _M_array; 8751: size_type _M_len; 8751: 8751: 8751: constexpr initializer_list(const_iterator __a, size_type __l) 8751: : _M_array(__a), _M_len(__l) { } 8751: 8751: public: 8751: constexpr initializer_list() noexcept 8751: : _M_array(0), _M_len(0) { } 8751: 8751: 8751: constexpr size_type 8751: size() const noexcept { return _M_len; } 8751: 8751: 8751: constexpr const_iterator 8751: begin() const noexcept { return _M_array; } 8751: 8751: 8751: constexpr const_iterator 8751: end() const noexcept { return begin() + size(); } 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: constexpr const _Tp* 8751: begin(initializer_list<_Tp> __ils) noexcept 8751: { return __ils.begin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: constexpr const _Tp* 8751: end(initializer_list<_Tp> __ils) noexcept 8751: { return __ils.end(); } 8751: } 8751: 8751: #pragma GCC visibility pop 8751: # 77 "/usr/include/c++/8/utility" 2 3 8751: 8751: 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: template 8751: struct tuple_size; 8751: 8751: 8751: 8751: 8751: 8751: template::type, 8751: typename = typename enable_if::value>::type, 8751: size_t = tuple_size<_Tp>::value> 8751: using __enable_if_has_tuple_size = _Tp; 8751: 8751: template 8751: struct tuple_size> 8751: : public tuple_size<_Tp> { }; 8751: 8751: template 8751: struct tuple_size> 8751: : public tuple_size<_Tp> { }; 8751: 8751: template 8751: struct tuple_size> 8751: : public tuple_size<_Tp> { }; 8751: 8751: 8751: template 8751: struct tuple_element; 8751: 8751: 8751: template 8751: using __tuple_element_t = typename tuple_element<__i, _Tp>::type; 8751: 8751: template 8751: struct tuple_element<__i, const _Tp> 8751: { 8751: typedef typename add_const<__tuple_element_t<__i, _Tp>>::type type; 8751: }; 8751: 8751: template 8751: struct tuple_element<__i, volatile _Tp> 8751: { 8751: typedef typename add_volatile<__tuple_element_t<__i, _Tp>>::type type; 8751: }; 8751: 8751: template 8751: struct tuple_element<__i, const volatile _Tp> 8751: { 8751: typedef typename add_cv<__tuple_element_t<__i, _Tp>>::type type; 8751: }; 8751: # 148 "/usr/include/c++/8/utility" 3 8751: template 8751: struct __is_tuple_like_impl> : true_type 8751: { }; 8751: 8751: 8751: template 8751: struct tuple_size> 8751: : public integral_constant { }; 8751: 8751: 8751: template 8751: struct tuple_element<0, std::pair<_Tp1, _Tp2>> 8751: { typedef _Tp1 type; }; 8751: 8751: 8751: template 8751: struct tuple_element<1, std::pair<_Tp1, _Tp2>> 8751: { typedef _Tp2 type; }; 8751: 8751: template 8751: struct __pair_get; 8751: 8751: template<> 8751: struct __pair_get<0> 8751: { 8751: template 8751: static constexpr _Tp1& 8751: __get(std::pair<_Tp1, _Tp2>& __pair) noexcept 8751: { return __pair.first; } 8751: 8751: template 8751: static constexpr _Tp1&& 8751: __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept 8751: { return std::forward<_Tp1>(__pair.first); } 8751: 8751: template 8751: static constexpr const _Tp1& 8751: __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept 8751: { return __pair.first; } 8751: 8751: template 8751: static constexpr const _Tp1&& 8751: __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept 8751: { return std::forward(__pair.first); } 8751: }; 8751: 8751: template<> 8751: struct __pair_get<1> 8751: { 8751: template 8751: static constexpr _Tp2& 8751: __get(std::pair<_Tp1, _Tp2>& __pair) noexcept 8751: { return __pair.second; } 8751: 8751: template 8751: static constexpr _Tp2&& 8751: __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept 8751: { return std::forward<_Tp2>(__pair.second); } 8751: 8751: template 8751: static constexpr const _Tp2& 8751: __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept 8751: { return __pair.second; } 8751: 8751: template 8751: static constexpr const _Tp2&& 8751: __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept 8751: { return std::forward(__pair.second); } 8751: }; 8751: 8751: template 8751: constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& 8751: get(std::pair<_Tp1, _Tp2>& __in) noexcept 8751: { return __pair_get<_Int>::__get(__in); } 8751: 8751: template 8751: constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& 8751: get(std::pair<_Tp1, _Tp2>&& __in) noexcept 8751: { return __pair_get<_Int>::__move_get(std::move(__in)); } 8751: 8751: template 8751: constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& 8751: get(const std::pair<_Tp1, _Tp2>& __in) noexcept 8751: { return __pair_get<_Int>::__const_get(__in); } 8751: 8751: template 8751: constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& 8751: get(const std::pair<_Tp1, _Tp2>&& __in) noexcept 8751: { return __pair_get<_Int>::__const_move_get(std::move(__in)); } 8751: # 293 "/usr/include/c++/8/utility" 3 8751: template struct _Index_tuple { }; 8751: # 302 "/usr/include/c++/8/utility" 3 8751: template 8751: struct _Build_index_tuple 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: using __type = _Index_tuple<__integer_pack(_Num)...>; 8751: 8751: }; 8751: # 397 "/usr/include/c++/8/utility" 3 8751: 8751: } 8751: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8751: 8751: 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8751: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8751: # 64 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qconfig.h" 1 3 4 8751: # 65 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtcore-config.h" 1 3 4 8751: # 66 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8751: # 96 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsystemdetection.h" 1 3 4 8751: # 97 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qprocessordetection.h" 1 3 4 8751: # 98 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcompilerdetection.h" 1 3 4 8751: # 99 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8751: # 109 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: # 1 "/usr/include/c++/8/algorithm" 1 3 4 8751: # 58 "/usr/include/c++/8/algorithm" 3 4 8751: 8751: # 59 "/usr/include/c++/8/algorithm" 3 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/stl_algobase.h" 1 3 8751: # 60 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: # 1 "/usr/include/c++/8/bits/functexcept.h" 1 3 8751: # 40 "/usr/include/c++/8/bits/functexcept.h" 3 8751: # 1 "/usr/include/c++/8/bits/exception_defines.h" 1 3 8751: # 41 "/usr/include/c++/8/bits/functexcept.h" 2 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: void 8751: __throw_bad_exception(void) __attribute__((__noreturn__)); 8751: 8751: 8751: void 8751: __throw_bad_alloc(void) __attribute__((__noreturn__)); 8751: 8751: 8751: void 8751: __throw_bad_cast(void) __attribute__((__noreturn__)); 8751: 8751: void 8751: __throw_bad_typeid(void) __attribute__((__noreturn__)); 8751: 8751: 8751: void 8751: __throw_logic_error(const char*) __attribute__((__noreturn__)); 8751: 8751: void 8751: __throw_domain_error(const char*) __attribute__((__noreturn__)); 8751: 8751: void 8751: __throw_invalid_argument(const char*) __attribute__((__noreturn__)); 8751: 8751: void 8751: __throw_length_error(const char*) __attribute__((__noreturn__)); 8751: 8751: void 8751: __throw_out_of_range(const char*) __attribute__((__noreturn__)); 8751: 8751: void 8751: __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__)) 8751: __attribute__((__format__(__gnu_printf__, 1, 2))); 8751: 8751: void 8751: __throw_runtime_error(const char*) __attribute__((__noreturn__)); 8751: 8751: void 8751: __throw_range_error(const char*) __attribute__((__noreturn__)); 8751: 8751: void 8751: __throw_overflow_error(const char*) __attribute__((__noreturn__)); 8751: 8751: void 8751: __throw_underflow_error(const char*) __attribute__((__noreturn__)); 8751: 8751: 8751: void 8751: __throw_ios_failure(const char*) __attribute__((__noreturn__)); 8751: 8751: void 8751: __throw_system_error(int) __attribute__((__noreturn__)); 8751: 8751: void 8751: __throw_future_error(int) __attribute__((__noreturn__)); 8751: 8751: 8751: void 8751: __throw_bad_function_call() __attribute__((__noreturn__)); 8751: 8751: 8751: } 8751: # 61 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8751: # 1 "/usr/include/c++/8/bits/cpp_type_traits.h" 1 3 8751: # 35 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8751: 8751: # 36 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8751: # 67 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8751: extern "C++" { 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: struct __true_type { }; 8751: struct __false_type { }; 8751: 8751: template 8751: struct __truth_type 8751: { typedef __false_type __type; }; 8751: 8751: template<> 8751: struct __truth_type 8751: { typedef __true_type __type; }; 8751: 8751: 8751: 8751: template 8751: struct __traitor 8751: { 8751: enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; 8751: typedef typename __truth_type<__value>::__type __type; 8751: }; 8751: 8751: 8751: template 8751: struct __are_same 8751: { 8751: enum { __value = 0 }; 8751: typedef __false_type __type; 8751: }; 8751: 8751: template 8751: struct __are_same<_Tp, _Tp> 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: 8751: template 8751: struct __is_void 8751: { 8751: enum { __value = 0 }; 8751: typedef __false_type __type; 8751: }; 8751: 8751: template<> 8751: struct __is_void 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: 8751: 8751: 8751: template 8751: struct __is_integer 8751: { 8751: enum { __value = 0 }; 8751: typedef __false_type __type; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: template<> 8751: struct __is_integer 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: template<> 8751: struct __is_integer 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: template<> 8751: struct __is_integer 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: template<> 8751: struct __is_integer 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: 8751: template<> 8751: struct __is_integer 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: 8751: 8751: template<> 8751: struct __is_integer 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: template<> 8751: struct __is_integer 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: 8751: template<> 8751: struct __is_integer 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: template<> 8751: struct __is_integer 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: template<> 8751: struct __is_integer 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: template<> 8751: struct __is_integer 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: template<> 8751: struct __is_integer 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: template<> 8751: struct __is_integer 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: template<> 8751: struct __is_integer 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: template<> 8751: struct __is_integer 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: # 278 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8751: template 8751: struct __is_floating 8751: { 8751: enum { __value = 0 }; 8751: typedef __false_type __type; 8751: }; 8751: 8751: 8751: template<> 8751: struct __is_floating 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: template<> 8751: struct __is_floating 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: template<> 8751: struct __is_floating 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: 8751: 8751: 8751: template 8751: struct __is_pointer 8751: { 8751: enum { __value = 0 }; 8751: typedef __false_type __type; 8751: }; 8751: 8751: template 8751: struct __is_pointer<_Tp*> 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: 8751: 8751: 8751: template 8751: struct __is_arithmetic 8751: : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > 8751: { }; 8751: 8751: 8751: 8751: 8751: template 8751: struct __is_scalar 8751: : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > 8751: { }; 8751: 8751: 8751: 8751: 8751: template 8751: struct __is_char 8751: { 8751: enum { __value = 0 }; 8751: typedef __false_type __type; 8751: }; 8751: 8751: template<> 8751: struct __is_char 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: 8751: template<> 8751: struct __is_char 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: 8751: template 8751: struct __is_byte 8751: { 8751: enum { __value = 0 }; 8751: typedef __false_type __type; 8751: }; 8751: 8751: template<> 8751: struct __is_byte 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: template<> 8751: struct __is_byte 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: template<> 8751: struct __is_byte 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: 8751: 8751: 8751: template 8751: struct __is_move_iterator 8751: { 8751: enum { __value = 0 }; 8751: typedef __false_type __type; 8751: }; 8751: 8751: 8751: 8751: template 8751: inline _Iterator 8751: __miter_base(_Iterator __it) 8751: { return __it; } 8751: 8751: 8751: } 8751: } 8751: # 62 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8751: # 1 "/usr/include/c++/8/ext/type_traits.h" 1 3 8751: # 32 "/usr/include/c++/8/ext/type_traits.h" 3 8751: 8751: # 33 "/usr/include/c++/8/ext/type_traits.h" 3 8751: 8751: 8751: 8751: 8751: extern "C++" { 8751: 8751: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: template 8751: struct __enable_if 8751: { }; 8751: 8751: template 8751: struct __enable_if 8751: { typedef _Tp __type; }; 8751: 8751: 8751: 8751: template 8751: struct __conditional_type 8751: { typedef _Iftrue __type; }; 8751: 8751: template 8751: struct __conditional_type 8751: { typedef _Iffalse __type; }; 8751: 8751: 8751: 8751: template 8751: struct __add_unsigned 8751: { 8751: private: 8751: typedef __enable_if::__value, _Tp> __if_type; 8751: 8751: public: 8751: typedef typename __if_type::__type __type; 8751: }; 8751: 8751: template<> 8751: struct __add_unsigned 8751: { typedef unsigned char __type; }; 8751: 8751: template<> 8751: struct __add_unsigned 8751: { typedef unsigned char __type; }; 8751: 8751: template<> 8751: struct __add_unsigned 8751: { typedef unsigned short __type; }; 8751: 8751: template<> 8751: struct __add_unsigned 8751: { typedef unsigned int __type; }; 8751: 8751: template<> 8751: struct __add_unsigned 8751: { typedef unsigned long __type; }; 8751: 8751: template<> 8751: struct __add_unsigned 8751: { typedef unsigned long long __type; }; 8751: 8751: 8751: template<> 8751: struct __add_unsigned; 8751: 8751: template<> 8751: struct __add_unsigned; 8751: 8751: 8751: 8751: template 8751: struct __remove_unsigned 8751: { 8751: private: 8751: typedef __enable_if::__value, _Tp> __if_type; 8751: 8751: public: 8751: typedef typename __if_type::__type __type; 8751: }; 8751: 8751: template<> 8751: struct __remove_unsigned 8751: { typedef signed char __type; }; 8751: 8751: template<> 8751: struct __remove_unsigned 8751: { typedef signed char __type; }; 8751: 8751: template<> 8751: struct __remove_unsigned 8751: { typedef short __type; }; 8751: 8751: template<> 8751: struct __remove_unsigned 8751: { typedef int __type; }; 8751: 8751: template<> 8751: struct __remove_unsigned 8751: { typedef long __type; }; 8751: 8751: template<> 8751: struct __remove_unsigned 8751: { typedef long long __type; }; 8751: 8751: 8751: template<> 8751: struct __remove_unsigned; 8751: 8751: template<> 8751: struct __remove_unsigned; 8751: 8751: 8751: 8751: template 8751: inline bool 8751: __is_null_pointer(_Type* __ptr) 8751: { return __ptr == 0; } 8751: 8751: template 8751: inline bool 8751: __is_null_pointer(_Type) 8751: { return false; } 8751: 8751: 8751: inline bool 8751: __is_null_pointer(std::nullptr_t) 8751: { return true; } 8751: 8751: 8751: 8751: template::__value> 8751: struct __promote 8751: { typedef double __type; }; 8751: 8751: 8751: 8751: 8751: template 8751: struct __promote<_Tp, false> 8751: { }; 8751: 8751: template<> 8751: struct __promote 8751: { typedef long double __type; }; 8751: 8751: template<> 8751: struct __promote 8751: { typedef double __type; }; 8751: 8751: template<> 8751: struct __promote 8751: { typedef float __type; }; 8751: 8751: template::__type, 8751: typename _Up2 = typename __promote<_Up>::__type> 8751: struct __promote_2 8751: { 8751: typedef __typeof__(_Tp2() + _Up2()) __type; 8751: }; 8751: 8751: template::__type, 8751: typename _Up2 = typename __promote<_Up>::__type, 8751: typename _Vp2 = typename __promote<_Vp>::__type> 8751: struct __promote_3 8751: { 8751: typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type; 8751: }; 8751: 8751: template::__type, 8751: typename _Up2 = typename __promote<_Up>::__type, 8751: typename _Vp2 = typename __promote<_Vp>::__type, 8751: typename _Wp2 = typename __promote<_Wp>::__type> 8751: struct __promote_4 8751: { 8751: typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type; 8751: }; 8751: 8751: 8751: } 8751: } 8751: # 63 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8751: # 1 "/usr/include/c++/8/ext/numeric_traits.h" 1 3 8751: # 32 "/usr/include/c++/8/ext/numeric_traits.h" 3 8751: 8751: # 33 "/usr/include/c++/8/ext/numeric_traits.h" 3 8751: 8751: 8751: 8751: 8751: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 54 "/usr/include/c++/8/ext/numeric_traits.h" 3 8751: template 8751: struct __numeric_traits_integer 8751: { 8751: 8751: static const _Value __min = (((_Value)(-1) < 0) ? (_Value)1 << (sizeof(_Value) * 8 - ((_Value)(-1) < 0)) : (_Value)0); 8751: static const _Value __max = (((_Value)(-1) < 0) ? (((((_Value)1 << ((sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0); 8751: 8751: 8751: 8751: static const bool __is_signed = ((_Value)(-1) < 0); 8751: static const int __digits = (sizeof(_Value) * 8 - ((_Value)(-1) < 0)); 8751: }; 8751: 8751: template 8751: const _Value __numeric_traits_integer<_Value>::__min; 8751: 8751: template 8751: const _Value __numeric_traits_integer<_Value>::__max; 8751: 8751: template 8751: const bool __numeric_traits_integer<_Value>::__is_signed; 8751: 8751: template 8751: const int __numeric_traits_integer<_Value>::__digits; 8751: # 99 "/usr/include/c++/8/ext/numeric_traits.h" 3 8751: template 8751: struct __numeric_traits_floating 8751: { 8751: 8751: static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 53) * 643L / 2136); 8751: 8751: 8751: static const bool __is_signed = true; 8751: static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 15); 8751: static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 308); 8751: }; 8751: 8751: template 8751: const int __numeric_traits_floating<_Value>::__max_digits10; 8751: 8751: template 8751: const bool __numeric_traits_floating<_Value>::__is_signed; 8751: 8751: template 8751: const int __numeric_traits_floating<_Value>::__digits10; 8751: 8751: template 8751: const int __numeric_traits_floating<_Value>::__max_exponent10; 8751: 8751: template 8751: struct __numeric_traits 8751: : public __conditional_type::__value, 8751: __numeric_traits_integer<_Value>, 8751: __numeric_traits_floating<_Value> >::__type 8751: { }; 8751: 8751: 8751: } 8751: # 64 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8751: 8751: # 1 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 1 3 8751: # 62 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8751: 8751: # 63 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 89 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8751: struct input_iterator_tag { }; 8751: 8751: 8751: struct output_iterator_tag { }; 8751: 8751: 8751: struct forward_iterator_tag : public input_iterator_tag { }; 8751: 8751: 8751: 8751: struct bidirectional_iterator_tag : public forward_iterator_tag { }; 8751: 8751: 8751: 8751: struct random_access_iterator_tag : public bidirectional_iterator_tag { }; 8751: # 116 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8751: template 8751: struct iterator 8751: { 8751: 8751: typedef _Category iterator_category; 8751: 8751: typedef _Tp value_type; 8751: 8751: typedef _Distance difference_type; 8751: 8751: typedef _Pointer pointer; 8751: 8751: typedef _Reference reference; 8751: }; 8751: # 143 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8751: template> 8751: struct __iterator_traits { }; 8751: 8751: template 8751: struct __iterator_traits<_Iterator, 8751: __void_t> 8751: { 8751: typedef typename _Iterator::iterator_category iterator_category; 8751: typedef typename _Iterator::value_type value_type; 8751: typedef typename _Iterator::difference_type difference_type; 8751: typedef typename _Iterator::pointer pointer; 8751: typedef typename _Iterator::reference reference; 8751: }; 8751: 8751: template 8751: struct iterator_traits 8751: : public __iterator_traits<_Iterator> { }; 8751: # 177 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8751: template 8751: struct iterator_traits<_Tp*> 8751: { 8751: typedef random_access_iterator_tag iterator_category; 8751: typedef _Tp value_type; 8751: typedef ptrdiff_t difference_type; 8751: typedef _Tp* pointer; 8751: typedef _Tp& reference; 8751: }; 8751: 8751: 8751: template 8751: struct iterator_traits 8751: { 8751: typedef random_access_iterator_tag iterator_category; 8751: typedef _Tp value_type; 8751: typedef ptrdiff_t difference_type; 8751: typedef const _Tp* pointer; 8751: typedef const _Tp& reference; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline constexpr 8751: typename iterator_traits<_Iter>::iterator_category 8751: __iterator_category(const _Iter&) 8751: { return typename iterator_traits<_Iter>::iterator_category(); } 8751: # 231 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8751: template 8751: using _RequireInputIter = typename 8751: enable_if::iterator_category, 8751: input_iterator_tag>::value>::type; 8751: 8751: 8751: 8751: } 8751: # 66 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8751: # 1 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 1 3 8751: # 62 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8751: 8751: # 63 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8751: 8751: 8751: # 1 "/usr/include/c++/8/debug/assertions.h" 1 3 8751: # 66 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 2 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: template struct _List_iterator; 8751: template struct _List_const_iterator; 8751: 8751: 8751: template 8751: inline 8751: typename iterator_traits<_InputIterator>::difference_type 8751: __distance(_InputIterator __first, _InputIterator __last, 8751: input_iterator_tag) 8751: { 8751: 8751: 8751: 8751: typename iterator_traits<_InputIterator>::difference_type __n = 0; 8751: while (__first != __last) 8751: { 8751: ++__first; 8751: ++__n; 8751: } 8751: return __n; 8751: } 8751: 8751: template 8751: inline 8751: typename iterator_traits<_RandomAccessIterator>::difference_type 8751: __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, 8751: random_access_iterator_tag) 8751: { 8751: 8751: 8751: 8751: return __last - __first; 8751: } 8751: 8751: 8751: 8751: template 8751: ptrdiff_t 8751: __distance(std::_List_iterator<_Tp>, 8751: std::_List_iterator<_Tp>, 8751: input_iterator_tag); 8751: 8751: template 8751: ptrdiff_t 8751: __distance(std::_List_const_iterator<_Tp>, 8751: std::_List_const_iterator<_Tp>, 8751: input_iterator_tag); 8751: # 135 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8751: template 8751: inline 8751: typename iterator_traits<_InputIterator>::difference_type 8751: distance(_InputIterator __first, _InputIterator __last) 8751: { 8751: 8751: return std::__distance(__first, __last, 8751: std::__iterator_category(__first)); 8751: } 8751: 8751: template 8751: inline void 8751: __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) 8751: { 8751: 8751: 8751: ; 8751: while (__n--) 8751: ++__i; 8751: } 8751: 8751: template 8751: inline void 8751: __advance(_BidirectionalIterator& __i, _Distance __n, 8751: bidirectional_iterator_tag) 8751: { 8751: 8751: 8751: 8751: if (__n > 0) 8751: while (__n--) 8751: ++__i; 8751: else 8751: while (__n++) 8751: --__i; 8751: } 8751: 8751: template 8751: inline void 8751: __advance(_RandomAccessIterator& __i, _Distance __n, 8751: random_access_iterator_tag) 8751: { 8751: 8751: 8751: 8751: if (__builtin_constant_p(__n) && __n == 1) 8751: ++__i; 8751: else if (__builtin_constant_p(__n) && __n == -1) 8751: --__i; 8751: else 8751: __i += __n; 8751: } 8751: # 200 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8751: template 8751: inline void 8751: advance(_InputIterator& __i, _Distance __n) 8751: { 8751: 8751: typename iterator_traits<_InputIterator>::difference_type __d = __n; 8751: std::__advance(__i, __d, std::__iterator_category(__i)); 8751: } 8751: 8751: 8751: 8751: template 8751: inline _InputIterator 8751: next(_InputIterator __x, typename 8751: iterator_traits<_InputIterator>::difference_type __n = 1) 8751: { 8751: 8751: 8751: std::advance(__x, __n); 8751: return __x; 8751: } 8751: 8751: template 8751: inline _BidirectionalIterator 8751: prev(_BidirectionalIterator __x, typename 8751: iterator_traits<_BidirectionalIterator>::difference_type __n = 1) 8751: { 8751: 8751: 8751: 8751: std::advance(__x, -__n); 8751: return __x; 8751: } 8751: 8751: 8751: 8751: 8751: } 8751: # 67 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8751: # 1 "/usr/include/c++/8/bits/stl_iterator.h" 1 3 8751: # 66 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: # 1 "/usr/include/c++/8/bits/ptr_traits.h" 1 3 8751: # 37 "/usr/include/c++/8/bits/ptr_traits.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: class __undefined; 8751: 8751: 8751: template 8751: struct __get_first_arg 8751: { using type = __undefined; }; 8751: 8751: template class _Template, typename _Tp, 8751: typename... _Types> 8751: struct __get_first_arg<_Template<_Tp, _Types...>> 8751: { using type = _Tp; }; 8751: 8751: template 8751: using __get_first_arg_t = typename __get_first_arg<_Tp>::type; 8751: 8751: 8751: template 8751: struct __replace_first_arg 8751: { }; 8751: 8751: template class _Template, typename _Up, 8751: typename _Tp, typename... _Types> 8751: struct __replace_first_arg<_Template<_Tp, _Types...>, _Up> 8751: { using type = _Template<_Up, _Types...>; }; 8751: 8751: template 8751: using __replace_first_arg_t = typename __replace_first_arg<_Tp, _Up>::type; 8751: 8751: template 8751: using __make_not_void 8751: = typename conditional::value, __undefined, _Tp>::type; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct pointer_traits 8751: { 8751: private: 8751: template 8751: using __element_type = typename _Tp::element_type; 8751: 8751: template 8751: using __difference_type = typename _Tp::difference_type; 8751: 8751: template 8751: struct __rebind : __replace_first_arg<_Tp, _Up> { }; 8751: 8751: template 8751: struct __rebind<_Tp, _Up, __void_t>> 8751: { using type = typename _Tp::template rebind<_Up>; }; 8751: 8751: public: 8751: 8751: using pointer = _Ptr; 8751: 8751: 8751: using element_type 8751: = __detected_or_t<__get_first_arg_t<_Ptr>, __element_type, _Ptr>; 8751: 8751: 8751: using difference_type 8751: = __detected_or_t; 8751: 8751: 8751: template 8751: using rebind = typename __rebind<_Ptr, _Up>::type; 8751: 8751: static _Ptr 8751: pointer_to(__make_not_void& __e) 8751: { return _Ptr::pointer_to(__e); } 8751: 8751: static_assert(!is_same::value, 8751: "pointer type defines element_type or is like SomePointer"); 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct pointer_traits<_Tp*> 8751: { 8751: 8751: typedef _Tp* pointer; 8751: 8751: typedef _Tp element_type; 8751: 8751: typedef ptrdiff_t difference_type; 8751: 8751: template 8751: using rebind = _Up*; 8751: 8751: 8751: 8751: 8751: 8751: 8751: static pointer 8751: pointer_to(__make_not_void& __r) noexcept 8751: { return std::addressof(__r); } 8751: }; 8751: 8751: 8751: template 8751: using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>; 8751: 8751: template 8751: constexpr _Tp* 8751: __to_address(_Tp* __ptr) noexcept 8751: { 8751: static_assert(!std::is_function<_Tp>::value, "not a function pointer"); 8751: return __ptr; 8751: } 8751: 8751: 8751: template 8751: constexpr typename std::pointer_traits<_Ptr>::element_type* 8751: __to_address(const _Ptr& __ptr) 8751: { return std::__to_address(__ptr.operator->()); } 8751: # 198 "/usr/include/c++/8/bits/ptr_traits.h" 3 8751: 8751: } 8751: # 67 "/usr/include/c++/8/bits/stl_iterator.h" 2 3 8751: 8751: 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 100 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: template 8751: class reverse_iterator 8751: : public iterator::iterator_category, 8751: typename iterator_traits<_Iterator>::value_type, 8751: typename iterator_traits<_Iterator>::difference_type, 8751: typename iterator_traits<_Iterator>::pointer, 8751: typename iterator_traits<_Iterator>::reference> 8751: { 8751: protected: 8751: _Iterator current; 8751: 8751: typedef iterator_traits<_Iterator> __traits_type; 8751: 8751: public: 8751: typedef _Iterator iterator_type; 8751: typedef typename __traits_type::difference_type difference_type; 8751: typedef typename __traits_type::pointer pointer; 8751: typedef typename __traits_type::reference reference; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator() : current() { } 8751: 8751: 8751: 8751: 8751: explicit 8751: reverse_iterator(iterator_type __x) : current(__x) { } 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator(const reverse_iterator& __x) 8751: : current(__x.current) { } 8751: 8751: 8751: 8751: 8751: 8751: template 8751: 8751: reverse_iterator(const reverse_iterator<_Iter>& __x) 8751: : current(__x.base()) { } 8751: 8751: 8751: 8751: 8751: iterator_type 8751: base() const 8751: { return current; } 8751: # 167 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: reference 8751: operator*() const 8751: { 8751: _Iterator __tmp = current; 8751: return *--__tmp; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: pointer 8751: operator->() const 8751: { return &(operator*()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator& 8751: operator++() 8751: { 8751: --current; 8751: return *this; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: operator++(int) 8751: { 8751: reverse_iterator __tmp = *this; 8751: --current; 8751: return __tmp; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator& 8751: operator--() 8751: { 8751: ++current; 8751: return *this; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: operator--(int) 8751: { 8751: reverse_iterator __tmp = *this; 8751: ++current; 8751: return __tmp; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: operator+(difference_type __n) const 8751: { return reverse_iterator(current - __n); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator& 8751: operator+=(difference_type __n) 8751: { 8751: current -= __n; 8751: return *this; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: operator-(difference_type __n) const 8751: { return reverse_iterator(current + __n); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator& 8751: operator-=(difference_type __n) 8751: { 8751: current += __n; 8751: return *this; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reference 8751: operator[](difference_type __n) const 8751: { return *(*this + __n); } 8751: }; 8751: # 297 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: template 8751: inline bool 8751: operator==(const reverse_iterator<_Iterator>& __x, 8751: const reverse_iterator<_Iterator>& __y) 8751: { return __x.base() == __y.base(); } 8751: 8751: template 8751: inline bool 8751: operator<(const reverse_iterator<_Iterator>& __x, 8751: const reverse_iterator<_Iterator>& __y) 8751: { return __y.base() < __x.base(); } 8751: 8751: template 8751: inline bool 8751: operator!=(const reverse_iterator<_Iterator>& __x, 8751: const reverse_iterator<_Iterator>& __y) 8751: { return !(__x == __y); } 8751: 8751: template 8751: inline bool 8751: operator>(const reverse_iterator<_Iterator>& __x, 8751: const reverse_iterator<_Iterator>& __y) 8751: { return __y < __x; } 8751: 8751: template 8751: inline bool 8751: operator<=(const reverse_iterator<_Iterator>& __x, 8751: const reverse_iterator<_Iterator>& __y) 8751: { return !(__y < __x); } 8751: 8751: template 8751: inline bool 8751: operator>=(const reverse_iterator<_Iterator>& __x, 8751: const reverse_iterator<_Iterator>& __y) 8751: { return !(__x < __y); } 8751: 8751: 8751: 8751: template 8751: inline bool 8751: operator==(const reverse_iterator<_IteratorL>& __x, 8751: const reverse_iterator<_IteratorR>& __y) 8751: { return __x.base() == __y.base(); } 8751: 8751: template 8751: inline bool 8751: operator<(const reverse_iterator<_IteratorL>& __x, 8751: const reverse_iterator<_IteratorR>& __y) 8751: { return __y.base() < __x.base(); } 8751: 8751: template 8751: inline bool 8751: operator!=(const reverse_iterator<_IteratorL>& __x, 8751: const reverse_iterator<_IteratorR>& __y) 8751: { return !(__x == __y); } 8751: 8751: template 8751: inline bool 8751: operator>(const reverse_iterator<_IteratorL>& __x, 8751: const reverse_iterator<_IteratorR>& __y) 8751: { return __y < __x; } 8751: 8751: template 8751: inline bool 8751: operator<=(const reverse_iterator<_IteratorL>& __x, 8751: const reverse_iterator<_IteratorR>& __y) 8751: { return !(__y < __x); } 8751: 8751: template 8751: inline bool 8751: operator>=(const reverse_iterator<_IteratorL>& __x, 8751: const reverse_iterator<_IteratorR>& __y) 8751: { return !(__x < __y); } 8751: # 387 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: template 8751: inline auto 8751: operator-(const reverse_iterator<_IteratorL>& __x, 8751: const reverse_iterator<_IteratorR>& __y) 8751: -> decltype(__y.base() - __x.base()) 8751: { return __y.base() - __x.base(); } 8751: 8751: 8751: template 8751: inline reverse_iterator<_Iterator> 8751: operator+(typename reverse_iterator<_Iterator>::difference_type __n, 8751: const reverse_iterator<_Iterator>& __x) 8751: { return reverse_iterator<_Iterator>(__x.base() - __n); } 8751: 8751: 8751: 8751: template 8751: inline reverse_iterator<_Iterator> 8751: __make_reverse_iterator(_Iterator __i) 8751: { return reverse_iterator<_Iterator>(__i); } 8751: # 422 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: template 8751: auto 8751: __niter_base(reverse_iterator<_Iterator> __it) 8751: -> decltype(__make_reverse_iterator(__niter_base(__it.base()))) 8751: { return __make_reverse_iterator(__niter_base(__it.base())); } 8751: 8751: template 8751: struct __is_move_iterator > 8751: : __is_move_iterator<_Iterator> 8751: { }; 8751: 8751: template 8751: auto 8751: __miter_base(reverse_iterator<_Iterator> __it) 8751: -> decltype(__make_reverse_iterator(__miter_base(__it.base()))) 8751: { return __make_reverse_iterator(__miter_base(__it.base())); } 8751: # 451 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: template 8751: class back_insert_iterator 8751: : public iterator 8751: { 8751: protected: 8751: _Container* container; 8751: 8751: public: 8751: 8751: typedef _Container container_type; 8751: 8751: 8751: explicit 8751: back_insert_iterator(_Container& __x) 8751: : container(std::__addressof(__x)) { } 8751: # 486 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: back_insert_iterator& 8751: operator=(const typename _Container::value_type& __value) 8751: { 8751: container->push_back(__value); 8751: return *this; 8751: } 8751: 8751: back_insert_iterator& 8751: operator=(typename _Container::value_type&& __value) 8751: { 8751: container->push_back(std::move(__value)); 8751: return *this; 8751: } 8751: 8751: 8751: 8751: back_insert_iterator& 8751: operator*() 8751: { return *this; } 8751: 8751: 8751: back_insert_iterator& 8751: operator++() 8751: { return *this; } 8751: 8751: 8751: back_insert_iterator 8751: operator++(int) 8751: { return *this; } 8751: }; 8751: # 528 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: template 8751: inline back_insert_iterator<_Container> 8751: back_inserter(_Container& __x) 8751: { return back_insert_iterator<_Container>(__x); } 8751: # 543 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: template 8751: class front_insert_iterator 8751: : public iterator 8751: { 8751: protected: 8751: _Container* container; 8751: 8751: public: 8751: 8751: typedef _Container container_type; 8751: 8751: 8751: explicit front_insert_iterator(_Container& __x) 8751: : container(std::__addressof(__x)) { } 8751: # 577 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: front_insert_iterator& 8751: operator=(const typename _Container::value_type& __value) 8751: { 8751: container->push_front(__value); 8751: return *this; 8751: } 8751: 8751: front_insert_iterator& 8751: operator=(typename _Container::value_type&& __value) 8751: { 8751: container->push_front(std::move(__value)); 8751: return *this; 8751: } 8751: 8751: 8751: 8751: front_insert_iterator& 8751: operator*() 8751: { return *this; } 8751: 8751: 8751: front_insert_iterator& 8751: operator++() 8751: { return *this; } 8751: 8751: 8751: front_insert_iterator 8751: operator++(int) 8751: { return *this; } 8751: }; 8751: # 619 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: template 8751: inline front_insert_iterator<_Container> 8751: front_inserter(_Container& __x) 8751: { return front_insert_iterator<_Container>(__x); } 8751: # 638 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: template 8751: class insert_iterator 8751: : public iterator 8751: { 8751: protected: 8751: _Container* container; 8751: typename _Container::iterator iter; 8751: 8751: public: 8751: 8751: typedef _Container container_type; 8751: 8751: 8751: 8751: 8751: 8751: insert_iterator(_Container& __x, typename _Container::iterator __i) 8751: : container(std::__addressof(__x)), iter(__i) {} 8751: # 689 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: insert_iterator& 8751: operator=(const typename _Container::value_type& __value) 8751: { 8751: iter = container->insert(iter, __value); 8751: ++iter; 8751: return *this; 8751: } 8751: 8751: insert_iterator& 8751: operator=(typename _Container::value_type&& __value) 8751: { 8751: iter = container->insert(iter, std::move(__value)); 8751: ++iter; 8751: return *this; 8751: } 8751: 8751: 8751: 8751: insert_iterator& 8751: operator*() 8751: { return *this; } 8751: 8751: 8751: insert_iterator& 8751: operator++() 8751: { return *this; } 8751: 8751: 8751: insert_iterator& 8751: operator++(int) 8751: { return *this; } 8751: }; 8751: # 734 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: template 8751: inline insert_iterator<_Container> 8751: inserter(_Container& __x, _Iterator __i) 8751: { 8751: return insert_iterator<_Container>(__x, 8751: typename _Container::iterator(__i)); 8751: } 8751: 8751: 8751: 8751: 8751: } 8751: 8751: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 758 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: using std::iterator_traits; 8751: using std::iterator; 8751: template 8751: class __normal_iterator 8751: { 8751: protected: 8751: _Iterator _M_current; 8751: 8751: typedef iterator_traits<_Iterator> __traits_type; 8751: 8751: public: 8751: typedef _Iterator iterator_type; 8751: typedef typename __traits_type::iterator_category iterator_category; 8751: typedef typename __traits_type::value_type value_type; 8751: typedef typename __traits_type::difference_type difference_type; 8751: typedef typename __traits_type::reference reference; 8751: typedef typename __traits_type::pointer pointer; 8751: 8751: constexpr __normal_iterator() noexcept 8751: : _M_current(_Iterator()) { } 8751: 8751: explicit 8751: __normal_iterator(const _Iterator& __i) noexcept 8751: : _M_current(__i) { } 8751: 8751: 8751: template 8751: __normal_iterator(const __normal_iterator<_Iter, 8751: typename __enable_if< 8751: (std::__are_same<_Iter, typename _Container::pointer>::__value), 8751: _Container>::__type>& __i) noexcept 8751: : _M_current(__i.base()) { } 8751: 8751: 8751: reference 8751: operator*() const noexcept 8751: { return *_M_current; } 8751: 8751: pointer 8751: operator->() const noexcept 8751: { return _M_current; } 8751: 8751: __normal_iterator& 8751: operator++() noexcept 8751: { 8751: ++_M_current; 8751: return *this; 8751: } 8751: 8751: __normal_iterator 8751: operator++(int) noexcept 8751: { return __normal_iterator(_M_current++); } 8751: 8751: 8751: __normal_iterator& 8751: operator--() noexcept 8751: { 8751: --_M_current; 8751: return *this; 8751: } 8751: 8751: __normal_iterator 8751: operator--(int) noexcept 8751: { return __normal_iterator(_M_current--); } 8751: 8751: 8751: reference 8751: operator[](difference_type __n) const noexcept 8751: { return _M_current[__n]; } 8751: 8751: __normal_iterator& 8751: operator+=(difference_type __n) noexcept 8751: { _M_current += __n; return *this; } 8751: 8751: __normal_iterator 8751: operator+(difference_type __n) const noexcept 8751: { return __normal_iterator(_M_current + __n); } 8751: 8751: __normal_iterator& 8751: operator-=(difference_type __n) noexcept 8751: { _M_current -= __n; return *this; } 8751: 8751: __normal_iterator 8751: operator-(difference_type __n) const noexcept 8751: { return __normal_iterator(_M_current - __n); } 8751: 8751: const _Iterator& 8751: base() const noexcept 8751: { return _M_current; } 8751: }; 8751: # 858 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: template 8751: inline bool 8751: operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, 8751: const __normal_iterator<_IteratorR, _Container>& __rhs) 8751: noexcept 8751: { return __lhs.base() == __rhs.base(); } 8751: 8751: template 8751: inline bool 8751: operator==(const __normal_iterator<_Iterator, _Container>& __lhs, 8751: const __normal_iterator<_Iterator, _Container>& __rhs) 8751: noexcept 8751: { return __lhs.base() == __rhs.base(); } 8751: 8751: template 8751: inline bool 8751: operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, 8751: const __normal_iterator<_IteratorR, _Container>& __rhs) 8751: noexcept 8751: { return __lhs.base() != __rhs.base(); } 8751: 8751: template 8751: inline bool 8751: operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, 8751: const __normal_iterator<_Iterator, _Container>& __rhs) 8751: noexcept 8751: { return __lhs.base() != __rhs.base(); } 8751: 8751: 8751: template 8751: inline bool 8751: operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, 8751: const __normal_iterator<_IteratorR, _Container>& __rhs) 8751: noexcept 8751: { return __lhs.base() < __rhs.base(); } 8751: 8751: template 8751: inline bool 8751: operator<(const __normal_iterator<_Iterator, _Container>& __lhs, 8751: const __normal_iterator<_Iterator, _Container>& __rhs) 8751: noexcept 8751: { return __lhs.base() < __rhs.base(); } 8751: 8751: template 8751: inline bool 8751: operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, 8751: const __normal_iterator<_IteratorR, _Container>& __rhs) 8751: noexcept 8751: { return __lhs.base() > __rhs.base(); } 8751: 8751: template 8751: inline bool 8751: operator>(const __normal_iterator<_Iterator, _Container>& __lhs, 8751: const __normal_iterator<_Iterator, _Container>& __rhs) 8751: noexcept 8751: { return __lhs.base() > __rhs.base(); } 8751: 8751: template 8751: inline bool 8751: operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, 8751: const __normal_iterator<_IteratorR, _Container>& __rhs) 8751: noexcept 8751: { return __lhs.base() <= __rhs.base(); } 8751: 8751: template 8751: inline bool 8751: operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, 8751: const __normal_iterator<_Iterator, _Container>& __rhs) 8751: noexcept 8751: { return __lhs.base() <= __rhs.base(); } 8751: 8751: template 8751: inline bool 8751: operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, 8751: const __normal_iterator<_IteratorR, _Container>& __rhs) 8751: noexcept 8751: { return __lhs.base() >= __rhs.base(); } 8751: 8751: template 8751: inline bool 8751: operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, 8751: const __normal_iterator<_Iterator, _Container>& __rhs) 8751: noexcept 8751: { return __lhs.base() >= __rhs.base(); } 8751: 8751: 8751: 8751: 8751: 8751: template 8751: 8751: 8751: inline auto 8751: operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, 8751: const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept 8751: -> decltype(__lhs.base() - __rhs.base()) 8751: 8751: 8751: 8751: 8751: 8751: { return __lhs.base() - __rhs.base(); } 8751: 8751: template 8751: inline typename __normal_iterator<_Iterator, _Container>::difference_type 8751: operator-(const __normal_iterator<_Iterator, _Container>& __lhs, 8751: const __normal_iterator<_Iterator, _Container>& __rhs) 8751: noexcept 8751: { return __lhs.base() - __rhs.base(); } 8751: 8751: template 8751: inline __normal_iterator<_Iterator, _Container> 8751: operator+(typename __normal_iterator<_Iterator, _Container>::difference_type 8751: __n, const __normal_iterator<_Iterator, _Container>& __i) 8751: noexcept 8751: { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } 8751: 8751: 8751: } 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: template 8751: _Iterator 8751: __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it) 8751: { return __it.base(); } 8751: # 1003 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: template 8751: class move_iterator 8751: { 8751: protected: 8751: _Iterator _M_current; 8751: 8751: typedef iterator_traits<_Iterator> __traits_type; 8751: typedef typename __traits_type::reference __base_ref; 8751: 8751: public: 8751: typedef _Iterator iterator_type; 8751: typedef typename __traits_type::iterator_category iterator_category; 8751: typedef typename __traits_type::value_type value_type; 8751: typedef typename __traits_type::difference_type difference_type; 8751: 8751: typedef _Iterator pointer; 8751: 8751: 8751: typedef typename conditional::value, 8751: typename remove_reference<__base_ref>::type&&, 8751: __base_ref>::type reference; 8751: 8751: 8751: move_iterator() 8751: : _M_current() { } 8751: 8751: explicit 8751: move_iterator(iterator_type __i) 8751: : _M_current(__i) { } 8751: 8751: template 8751: 8751: move_iterator(const move_iterator<_Iter>& __i) 8751: : _M_current(__i.base()) { } 8751: 8751: iterator_type 8751: base() const 8751: { return _M_current; } 8751: 8751: reference 8751: operator*() const 8751: { return static_cast(*_M_current); } 8751: 8751: pointer 8751: operator->() const 8751: { return _M_current; } 8751: 8751: move_iterator& 8751: operator++() 8751: { 8751: ++_M_current; 8751: return *this; 8751: } 8751: 8751: move_iterator 8751: operator++(int) 8751: { 8751: move_iterator __tmp = *this; 8751: ++_M_current; 8751: return __tmp; 8751: } 8751: 8751: move_iterator& 8751: operator--() 8751: { 8751: --_M_current; 8751: return *this; 8751: } 8751: 8751: move_iterator 8751: operator--(int) 8751: { 8751: move_iterator __tmp = *this; 8751: --_M_current; 8751: return __tmp; 8751: } 8751: 8751: move_iterator 8751: operator+(difference_type __n) const 8751: { return move_iterator(_M_current + __n); } 8751: 8751: move_iterator& 8751: operator+=(difference_type __n) 8751: { 8751: _M_current += __n; 8751: return *this; 8751: } 8751: 8751: move_iterator 8751: operator-(difference_type __n) const 8751: { return move_iterator(_M_current - __n); } 8751: 8751: move_iterator& 8751: operator-=(difference_type __n) 8751: { 8751: _M_current -= __n; 8751: return *this; 8751: } 8751: 8751: reference 8751: operator[](difference_type __n) const 8751: { return std::move(_M_current[__n]); } 8751: }; 8751: 8751: 8751: 8751: 8751: template 8751: inline bool 8751: operator==(const move_iterator<_IteratorL>& __x, 8751: const move_iterator<_IteratorR>& __y) 8751: { return __x.base() == __y.base(); } 8751: 8751: template 8751: inline bool 8751: operator==(const move_iterator<_Iterator>& __x, 8751: const move_iterator<_Iterator>& __y) 8751: { return __x.base() == __y.base(); } 8751: 8751: template 8751: inline bool 8751: operator!=(const move_iterator<_IteratorL>& __x, 8751: const move_iterator<_IteratorR>& __y) 8751: { return !(__x == __y); } 8751: 8751: template 8751: inline bool 8751: operator!=(const move_iterator<_Iterator>& __x, 8751: const move_iterator<_Iterator>& __y) 8751: { return !(__x == __y); } 8751: 8751: template 8751: inline bool 8751: operator<(const move_iterator<_IteratorL>& __x, 8751: const move_iterator<_IteratorR>& __y) 8751: { return __x.base() < __y.base(); } 8751: 8751: template 8751: inline bool 8751: operator<(const move_iterator<_Iterator>& __x, 8751: const move_iterator<_Iterator>& __y) 8751: { return __x.base() < __y.base(); } 8751: 8751: template 8751: inline bool 8751: operator<=(const move_iterator<_IteratorL>& __x, 8751: const move_iterator<_IteratorR>& __y) 8751: { return !(__y < __x); } 8751: 8751: template 8751: inline bool 8751: operator<=(const move_iterator<_Iterator>& __x, 8751: const move_iterator<_Iterator>& __y) 8751: { return !(__y < __x); } 8751: 8751: template 8751: inline bool 8751: operator>(const move_iterator<_IteratorL>& __x, 8751: const move_iterator<_IteratorR>& __y) 8751: { return __y < __x; } 8751: 8751: template 8751: inline bool 8751: operator>(const move_iterator<_Iterator>& __x, 8751: const move_iterator<_Iterator>& __y) 8751: { return __y < __x; } 8751: 8751: template 8751: inline bool 8751: operator>=(const move_iterator<_IteratorL>& __x, 8751: const move_iterator<_IteratorR>& __y) 8751: { return !(__x < __y); } 8751: 8751: template 8751: inline bool 8751: operator>=(const move_iterator<_Iterator>& __x, 8751: const move_iterator<_Iterator>& __y) 8751: { return !(__x < __y); } 8751: 8751: 8751: template 8751: inline auto 8751: operator-(const move_iterator<_IteratorL>& __x, 8751: const move_iterator<_IteratorR>& __y) 8751: -> decltype(__x.base() - __y.base()) 8751: { return __x.base() - __y.base(); } 8751: 8751: template 8751: inline move_iterator<_Iterator> 8751: operator+(typename move_iterator<_Iterator>::difference_type __n, 8751: const move_iterator<_Iterator>& __x) 8751: { return __x + __n; } 8751: 8751: template 8751: inline move_iterator<_Iterator> 8751: make_move_iterator(_Iterator __i) 8751: { return move_iterator<_Iterator>(__i); } 8751: 8751: template::value_type>::value, 8751: _Iterator, move_iterator<_Iterator>>::type> 8751: inline _ReturnType 8751: __make_move_if_noexcept_iterator(_Iterator __i) 8751: { return _ReturnType(__i); } 8751: 8751: 8751: 8751: template::value, 8751: const _Tp*, move_iterator<_Tp*>>::type> 8751: inline _ReturnType 8751: __make_move_if_noexcept_iterator(_Tp* __i) 8751: { return _ReturnType(__i); } 8751: 8751: 8751: 8751: template 8751: auto 8751: __niter_base(move_iterator<_Iterator> __it) 8751: -> decltype(make_move_iterator(__niter_base(__it.base()))) 8751: { return make_move_iterator(__niter_base(__it.base())); } 8751: 8751: template 8751: struct __is_move_iterator > 8751: { 8751: enum { __value = 1 }; 8751: typedef __true_type __type; 8751: }; 8751: 8751: template 8751: auto 8751: __miter_base(move_iterator<_Iterator> __it) 8751: -> decltype(__miter_base(__it.base())) 8751: { return __miter_base(__it.base()); } 8751: # 1268 "/usr/include/c++/8/bits/stl_iterator.h" 3 8751: 8751: } 8751: # 68 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8751: 8751: # 1 "/usr/include/c++/8/debug/debug.h" 1 3 8751: # 48 "/usr/include/c++/8/debug/debug.h" 3 8751: namespace std 8751: { 8751: namespace __debug { } 8751: } 8751: 8751: 8751: 8751: 8751: namespace __gnu_debug 8751: { 8751: using namespace std::__debug; 8751: } 8751: # 70 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8751: 8751: # 1 "/usr/include/c++/8/bits/predefined_ops.h" 1 3 8751: # 33 "/usr/include/c++/8/bits/predefined_ops.h" 3 8751: namespace __gnu_cxx 8751: { 8751: namespace __ops 8751: { 8751: struct _Iter_less_iter 8751: { 8751: template 8751: 8751: bool 8751: operator()(_Iterator1 __it1, _Iterator2 __it2) const 8751: { return *__it1 < *__it2; } 8751: }; 8751: 8751: 8751: inline _Iter_less_iter 8751: __iter_less_iter() 8751: { return _Iter_less_iter(); } 8751: 8751: struct _Iter_less_val 8751: { 8751: 8751: constexpr _Iter_less_val() = default; 8751: 8751: 8751: 8751: 8751: explicit 8751: _Iter_less_val(_Iter_less_iter) { } 8751: 8751: template 8751: bool 8751: operator()(_Iterator __it, _Value& __val) const 8751: { return *__it < __val; } 8751: }; 8751: 8751: inline _Iter_less_val 8751: __iter_less_val() 8751: { return _Iter_less_val(); } 8751: 8751: inline _Iter_less_val 8751: __iter_comp_val(_Iter_less_iter) 8751: { return _Iter_less_val(); } 8751: 8751: struct _Val_less_iter 8751: { 8751: 8751: constexpr _Val_less_iter() = default; 8751: 8751: 8751: 8751: 8751: explicit 8751: _Val_less_iter(_Iter_less_iter) { } 8751: 8751: template 8751: bool 8751: operator()(_Value& __val, _Iterator __it) const 8751: { return __val < *__it; } 8751: }; 8751: 8751: inline _Val_less_iter 8751: __val_less_iter() 8751: { return _Val_less_iter(); } 8751: 8751: inline _Val_less_iter 8751: __val_comp_iter(_Iter_less_iter) 8751: { return _Val_less_iter(); } 8751: 8751: struct _Iter_equal_to_iter 8751: { 8751: template 8751: bool 8751: operator()(_Iterator1 __it1, _Iterator2 __it2) const 8751: { return *__it1 == *__it2; } 8751: }; 8751: 8751: inline _Iter_equal_to_iter 8751: __iter_equal_to_iter() 8751: { return _Iter_equal_to_iter(); } 8751: 8751: struct _Iter_equal_to_val 8751: { 8751: template 8751: bool 8751: operator()(_Iterator __it, _Value& __val) const 8751: { return *__it == __val; } 8751: }; 8751: 8751: inline _Iter_equal_to_val 8751: __iter_equal_to_val() 8751: { return _Iter_equal_to_val(); } 8751: 8751: inline _Iter_equal_to_val 8751: __iter_comp_val(_Iter_equal_to_iter) 8751: { return _Iter_equal_to_val(); } 8751: 8751: template 8751: struct _Iter_comp_iter 8751: { 8751: _Compare _M_comp; 8751: 8751: explicit 8751: _Iter_comp_iter(_Compare __comp) 8751: : _M_comp(std::move(__comp)) 8751: { } 8751: 8751: template 8751: 8751: bool 8751: operator()(_Iterator1 __it1, _Iterator2 __it2) 8751: { return bool(_M_comp(*__it1, *__it2)); } 8751: }; 8751: 8751: template 8751: 8751: inline _Iter_comp_iter<_Compare> 8751: __iter_comp_iter(_Compare __comp) 8751: { return _Iter_comp_iter<_Compare>(std::move(__comp)); } 8751: 8751: template 8751: struct _Iter_comp_val 8751: { 8751: _Compare _M_comp; 8751: 8751: explicit 8751: _Iter_comp_val(_Compare __comp) 8751: : _M_comp(std::move(__comp)) 8751: { } 8751: 8751: explicit 8751: _Iter_comp_val(const _Iter_comp_iter<_Compare>& __comp) 8751: : _M_comp(__comp._M_comp) 8751: { } 8751: 8751: 8751: explicit 8751: _Iter_comp_val(_Iter_comp_iter<_Compare>&& __comp) 8751: : _M_comp(std::move(__comp._M_comp)) 8751: { } 8751: 8751: 8751: template 8751: bool 8751: operator()(_Iterator __it, _Value& __val) 8751: { return bool(_M_comp(*__it, __val)); } 8751: }; 8751: 8751: template 8751: inline _Iter_comp_val<_Compare> 8751: __iter_comp_val(_Compare __comp) 8751: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 8751: 8751: template 8751: inline _Iter_comp_val<_Compare> 8751: __iter_comp_val(_Iter_comp_iter<_Compare> __comp) 8751: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 8751: 8751: template 8751: struct _Val_comp_iter 8751: { 8751: _Compare _M_comp; 8751: 8751: explicit 8751: _Val_comp_iter(_Compare __comp) 8751: : _M_comp(std::move(__comp)) 8751: { } 8751: 8751: explicit 8751: _Val_comp_iter(const _Iter_comp_iter<_Compare>& __comp) 8751: : _M_comp(__comp._M_comp) 8751: { } 8751: 8751: 8751: explicit 8751: _Val_comp_iter(_Iter_comp_iter<_Compare>&& __comp) 8751: : _M_comp(std::move(__comp._M_comp)) 8751: { } 8751: 8751: 8751: template 8751: bool 8751: operator()(_Value& __val, _Iterator __it) 8751: { return bool(_M_comp(__val, *__it)); } 8751: }; 8751: 8751: template 8751: inline _Val_comp_iter<_Compare> 8751: __val_comp_iter(_Compare __comp) 8751: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 8751: 8751: template 8751: inline _Val_comp_iter<_Compare> 8751: __val_comp_iter(_Iter_comp_iter<_Compare> __comp) 8751: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 8751: 8751: template 8751: struct _Iter_equals_val 8751: { 8751: _Value& _M_value; 8751: 8751: explicit 8751: _Iter_equals_val(_Value& __value) 8751: : _M_value(__value) 8751: { } 8751: 8751: template 8751: bool 8751: operator()(_Iterator __it) 8751: { return *__it == _M_value; } 8751: }; 8751: 8751: template 8751: inline _Iter_equals_val<_Value> 8751: __iter_equals_val(_Value& __val) 8751: { return _Iter_equals_val<_Value>(__val); } 8751: 8751: template 8751: struct _Iter_equals_iter 8751: { 8751: _Iterator1 _M_it1; 8751: 8751: explicit 8751: _Iter_equals_iter(_Iterator1 __it1) 8751: : _M_it1(__it1) 8751: { } 8751: 8751: template 8751: bool 8751: operator()(_Iterator2 __it2) 8751: { return *__it2 == *_M_it1; } 8751: }; 8751: 8751: template 8751: inline _Iter_equals_iter<_Iterator> 8751: __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) 8751: { return _Iter_equals_iter<_Iterator>(__it); } 8751: 8751: template 8751: struct _Iter_pred 8751: { 8751: _Predicate _M_pred; 8751: 8751: explicit 8751: _Iter_pred(_Predicate __pred) 8751: : _M_pred(std::move(__pred)) 8751: { } 8751: 8751: template 8751: bool 8751: operator()(_Iterator __it) 8751: { return bool(_M_pred(*__it)); } 8751: }; 8751: 8751: template 8751: inline _Iter_pred<_Predicate> 8751: __pred_iter(_Predicate __pred) 8751: { return _Iter_pred<_Predicate>(std::move(__pred)); } 8751: 8751: template 8751: struct _Iter_comp_to_val 8751: { 8751: _Compare _M_comp; 8751: _Value& _M_value; 8751: 8751: _Iter_comp_to_val(_Compare __comp, _Value& __value) 8751: : _M_comp(std::move(__comp)), _M_value(__value) 8751: { } 8751: 8751: template 8751: bool 8751: operator()(_Iterator __it) 8751: { return bool(_M_comp(*__it, _M_value)); } 8751: }; 8751: 8751: template 8751: _Iter_comp_to_val<_Compare, _Value> 8751: __iter_comp_val(_Compare __comp, _Value &__val) 8751: { 8751: return _Iter_comp_to_val<_Compare, _Value>(std::move(__comp), __val); 8751: } 8751: 8751: template 8751: struct _Iter_comp_to_iter 8751: { 8751: _Compare _M_comp; 8751: _Iterator1 _M_it1; 8751: 8751: _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) 8751: : _M_comp(std::move(__comp)), _M_it1(__it1) 8751: { } 8751: 8751: template 8751: bool 8751: operator()(_Iterator2 __it2) 8751: { return bool(_M_comp(*__it2, *_M_it1)); } 8751: }; 8751: 8751: template 8751: inline _Iter_comp_to_iter<_Compare, _Iterator> 8751: __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it) 8751: { 8751: return _Iter_comp_to_iter<_Compare, _Iterator>( 8751: std::move(__comp._M_comp), __it); 8751: } 8751: 8751: template 8751: struct _Iter_negate 8751: { 8751: _Predicate _M_pred; 8751: 8751: explicit 8751: _Iter_negate(_Predicate __pred) 8751: : _M_pred(std::move(__pred)) 8751: { } 8751: 8751: template 8751: bool 8751: operator()(_Iterator __it) 8751: { return !bool(_M_pred(*__it)); } 8751: }; 8751: 8751: template 8751: inline _Iter_negate<_Predicate> 8751: __negate(_Iter_pred<_Predicate> __pred) 8751: { return _Iter_negate<_Predicate>(std::move(__pred._M_pred)); } 8751: 8751: } 8751: } 8751: # 72 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 118 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: inline void 8751: iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) 8751: { 8751: 8751: 8751: 8751: 8751: # 148 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: swap(*__a, *__b); 8751: 8751: } 8751: # 164 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: _ForwardIterator2 8751: swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8751: _ForwardIterator2 __first2) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: for (; __first1 != __last1; ++__first1, (void)++__first2) 8751: std::iter_swap(__first1, __first2); 8751: return __first2; 8751: } 8751: # 192 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: 8751: inline const _Tp& 8751: min(const _Tp& __a, const _Tp& __b) 8751: { 8751: 8751: 8751: 8751: if (__b < __a) 8751: return __b; 8751: return __a; 8751: } 8751: # 216 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: 8751: inline const _Tp& 8751: max(const _Tp& __a, const _Tp& __b) 8751: { 8751: 8751: 8751: 8751: if (__a < __b) 8751: return __b; 8751: return __a; 8751: } 8751: # 240 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: 8751: inline const _Tp& 8751: min(const _Tp& __a, const _Tp& __b, _Compare __comp) 8751: { 8751: 8751: if (__comp(__b, __a)) 8751: return __b; 8751: return __a; 8751: } 8751: # 262 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: 8751: inline const _Tp& 8751: max(const _Tp& __a, const _Tp& __b, _Compare __comp) 8751: { 8751: 8751: if (__comp(__a, __b)) 8751: return __b; 8751: return __a; 8751: } 8751: 8751: 8751: 8751: template 8751: inline _Iterator 8751: __niter_base(_Iterator __it) 8751: { return __it; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct __copy_move 8751: { 8751: template 8751: static _OI 8751: __copy_m(_II __first, _II __last, _OI __result) 8751: { 8751: for (; __first != __last; ++__result, (void)++__first) 8751: *__result = *__first; 8751: return __result; 8751: } 8751: }; 8751: 8751: 8751: template 8751: struct __copy_move 8751: { 8751: template 8751: static _OI 8751: __copy_m(_II __first, _II __last, _OI __result) 8751: { 8751: for (; __first != __last; ++__result, (void)++__first) 8751: *__result = std::move(*__first); 8751: return __result; 8751: } 8751: }; 8751: 8751: 8751: template<> 8751: struct __copy_move 8751: { 8751: template 8751: static _OI 8751: __copy_m(_II __first, _II __last, _OI __result) 8751: { 8751: typedef typename iterator_traits<_II>::difference_type _Distance; 8751: for(_Distance __n = __last - __first; __n > 0; --__n) 8751: { 8751: *__result = *__first; 8751: ++__first; 8751: ++__result; 8751: } 8751: return __result; 8751: } 8751: }; 8751: 8751: 8751: template<> 8751: struct __copy_move 8751: { 8751: template 8751: static _OI 8751: __copy_m(_II __first, _II __last, _OI __result) 8751: { 8751: typedef typename iterator_traits<_II>::difference_type _Distance; 8751: for(_Distance __n = __last - __first; __n > 0; --__n) 8751: { 8751: *__result = std::move(*__first); 8751: ++__first; 8751: ++__result; 8751: } 8751: return __result; 8751: } 8751: }; 8751: 8751: 8751: template 8751: struct __copy_move<_IsMove, true, random_access_iterator_tag> 8751: { 8751: template 8751: static _Tp* 8751: __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result) 8751: { 8751: 8751: using __assignable = conditional<_IsMove, 8751: is_move_assignable<_Tp>, 8751: is_copy_assignable<_Tp>>; 8751: 8751: static_assert( __assignable::type::value, "type is not assignable" ); 8751: 8751: const ptrdiff_t _Num = __last - __first; 8751: if (_Num) 8751: __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); 8751: return __result + _Num; 8751: } 8751: }; 8751: 8751: template 8751: inline _OI 8751: __copy_move_a(_II __first, _II __last, _OI __result) 8751: { 8751: typedef typename iterator_traits<_II>::value_type _ValueTypeI; 8751: typedef typename iterator_traits<_OI>::value_type _ValueTypeO; 8751: typedef typename iterator_traits<_II>::iterator_category _Category; 8751: const bool __simple = (__is_trivial(_ValueTypeI) 8751: && __is_pointer<_II>::__value 8751: && __is_pointer<_OI>::__value 8751: && __are_same<_ValueTypeI, _ValueTypeO>::__value); 8751: 8751: return std::__copy_move<_IsMove, __simple, 8751: _Category>::__copy_m(__first, __last, __result); 8751: } 8751: 8751: 8751: 8751: template 8751: struct char_traits; 8751: 8751: template 8751: class istreambuf_iterator; 8751: 8751: template 8751: class ostreambuf_iterator; 8751: 8751: template 8751: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8751: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 8751: __copy_move_a2(_CharT*, _CharT*, 8751: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 8751: 8751: template 8751: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8751: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 8751: __copy_move_a2(const _CharT*, const _CharT*, 8751: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 8751: 8751: template 8751: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8751: _CharT*>::__type 8751: __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, 8751: istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); 8751: 8751: template 8751: inline _OI 8751: __copy_move_a2(_II __first, _II __last, _OI __result) 8751: { 8751: return _OI(std::__copy_move_a<_IsMove>(std::__niter_base(__first), 8751: std::__niter_base(__last), 8751: std::__niter_base(__result))); 8751: } 8751: # 444 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: inline _OI 8751: copy(_II __first, _II __last, _OI __result) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return (std::__copy_move_a2<__is_move_iterator<_II>::__value> 8751: (std::__miter_base(__first), std::__miter_base(__last), 8751: __result)); 8751: } 8751: # 477 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: inline _OI 8751: move(_II __first, _II __last, _OI __result) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__copy_move_a2(std::__miter_base(__first), 8751: std::__miter_base(__last), __result); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct __copy_move_backward 8751: { 8751: template 8751: static _BI2 8751: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8751: { 8751: while (__first != __last) 8751: *--__result = *--__last; 8751: return __result; 8751: } 8751: }; 8751: 8751: 8751: template 8751: struct __copy_move_backward 8751: { 8751: template 8751: static _BI2 8751: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8751: { 8751: while (__first != __last) 8751: *--__result = std::move(*--__last); 8751: return __result; 8751: } 8751: }; 8751: 8751: 8751: template<> 8751: struct __copy_move_backward 8751: { 8751: template 8751: static _BI2 8751: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8751: { 8751: typename iterator_traits<_BI1>::difference_type __n; 8751: for (__n = __last - __first; __n > 0; --__n) 8751: *--__result = *--__last; 8751: return __result; 8751: } 8751: }; 8751: 8751: 8751: template<> 8751: struct __copy_move_backward 8751: { 8751: template 8751: static _BI2 8751: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8751: { 8751: typename iterator_traits<_BI1>::difference_type __n; 8751: for (__n = __last - __first; __n > 0; --__n) 8751: *--__result = std::move(*--__last); 8751: return __result; 8751: } 8751: }; 8751: 8751: 8751: template 8751: struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> 8751: { 8751: template 8751: static _Tp* 8751: __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result) 8751: { 8751: 8751: using __assignable = conditional<_IsMove, 8751: is_move_assignable<_Tp>, 8751: is_copy_assignable<_Tp>>; 8751: 8751: static_assert( __assignable::type::value, "type is not assignable" ); 8751: 8751: const ptrdiff_t _Num = __last - __first; 8751: if (_Num) 8751: __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); 8751: return __result - _Num; 8751: } 8751: }; 8751: 8751: template 8751: inline _BI2 8751: __copy_move_backward_a(_BI1 __first, _BI1 __last, _BI2 __result) 8751: { 8751: typedef typename iterator_traits<_BI1>::value_type _ValueType1; 8751: typedef typename iterator_traits<_BI2>::value_type _ValueType2; 8751: typedef typename iterator_traits<_BI1>::iterator_category _Category; 8751: const bool __simple = (__is_trivial(_ValueType1) 8751: && __is_pointer<_BI1>::__value 8751: && __is_pointer<_BI2>::__value 8751: && __are_same<_ValueType1, _ValueType2>::__value); 8751: 8751: return std::__copy_move_backward<_IsMove, __simple, 8751: _Category>::__copy_move_b(__first, 8751: __last, 8751: __result); 8751: } 8751: 8751: template 8751: inline _BI2 8751: __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) 8751: { 8751: return _BI2(std::__copy_move_backward_a<_IsMove> 8751: (std::__niter_base(__first), std::__niter_base(__last), 8751: std::__niter_base(__result))); 8751: } 8751: # 620 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: inline _BI2 8751: copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return (std::__copy_move_backward_a2<__is_move_iterator<_BI1>::__value> 8751: (std::__miter_base(__first), std::__miter_base(__last), 8751: __result)); 8751: } 8751: # 656 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: inline _BI2 8751: move_backward(_BI1 __first, _BI1 __last, _BI2 __result) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__copy_move_backward_a2(std::__miter_base(__first), 8751: std::__miter_base(__last), 8751: __result); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline typename 8751: __gnu_cxx::__enable_if::__value, void>::__type 8751: __fill_a(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __value) 8751: { 8751: for (; __first != __last; ++__first) 8751: *__first = __value; 8751: } 8751: 8751: template 8751: inline typename 8751: __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type 8751: __fill_a(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __value) 8751: { 8751: const _Tp __tmp = __value; 8751: for (; __first != __last; ++__first) 8751: *__first = __tmp; 8751: } 8751: 8751: 8751: template 8751: inline typename 8751: __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type 8751: __fill_a(_Tp* __first, _Tp* __last, const _Tp& __c) 8751: { 8751: const _Tp __tmp = __c; 8751: if (const size_t __len = __last - __first) 8751: __builtin_memset(__first, static_cast(__tmp), __len); 8751: } 8751: # 722 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: inline void 8751: fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) 8751: { 8751: 8751: 8751: 8751: ; 8751: 8751: std::__fill_a(std::__niter_base(__first), std::__niter_base(__last), 8751: __value); 8751: } 8751: 8751: template 8751: inline typename 8751: __gnu_cxx::__enable_if::__value, _OutputIterator>::__type 8751: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) 8751: { 8751: for (__decltype(__n + 0) __niter = __n; 8751: __niter > 0; --__niter, (void) ++__first) 8751: *__first = __value; 8751: return __first; 8751: } 8751: 8751: template 8751: inline typename 8751: __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type 8751: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) 8751: { 8751: const _Tp __tmp = __value; 8751: for (__decltype(__n + 0) __niter = __n; 8751: __niter > 0; --__niter, (void) ++__first) 8751: *__first = __tmp; 8751: return __first; 8751: } 8751: 8751: template 8751: inline typename 8751: __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, _Tp*>::__type 8751: __fill_n_a(_Tp* __first, _Size __n, const _Tp& __c) 8751: { 8751: std::__fill_a(__first, __first + __n, __c); 8751: return __first + __n; 8751: } 8751: # 782 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: inline _OI 8751: fill_n(_OI __first, _Size __n, const _Tp& __value) 8751: { 8751: 8751: 8751: 8751: return _OI(std::__fill_n_a(std::__niter_base(__first), __n, __value)); 8751: } 8751: 8751: template 8751: struct __equal 8751: { 8751: template 8751: static bool 8751: equal(_II1 __first1, _II1 __last1, _II2 __first2) 8751: { 8751: for (; __first1 != __last1; ++__first1, (void) ++__first2) 8751: if (!(*__first1 == *__first2)) 8751: return false; 8751: return true; 8751: } 8751: }; 8751: 8751: template<> 8751: struct __equal 8751: { 8751: template 8751: static bool 8751: equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) 8751: { 8751: if (const size_t __len = (__last1 - __first1)) 8751: return !__builtin_memcmp(__first1, __first2, sizeof(_Tp) * __len); 8751: return true; 8751: } 8751: }; 8751: 8751: template 8751: inline bool 8751: __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) 8751: { 8751: typedef typename iterator_traits<_II1>::value_type _ValueType1; 8751: typedef typename iterator_traits<_II2>::value_type _ValueType2; 8751: const bool __simple = ((__is_integer<_ValueType1>::__value 8751: || __is_pointer<_ValueType1>::__value) 8751: && __is_pointer<_II1>::__value 8751: && __is_pointer<_II2>::__value 8751: && __are_same<_ValueType1, _ValueType2>::__value); 8751: 8751: return std::__equal<__simple>::equal(__first1, __last1, __first2); 8751: } 8751: 8751: template 8751: struct __lc_rai 8751: { 8751: template 8751: static _II1 8751: __newlast1(_II1, _II1 __last1, _II2, _II2) 8751: { return __last1; } 8751: 8751: template 8751: static bool 8751: __cnd2(_II __first, _II __last) 8751: { return __first != __last; } 8751: }; 8751: 8751: template<> 8751: struct __lc_rai 8751: { 8751: template 8751: static _RAI1 8751: __newlast1(_RAI1 __first1, _RAI1 __last1, 8751: _RAI2 __first2, _RAI2 __last2) 8751: { 8751: const typename iterator_traits<_RAI1>::difference_type 8751: __diff1 = __last1 - __first1; 8751: const typename iterator_traits<_RAI2>::difference_type 8751: __diff2 = __last2 - __first2; 8751: return __diff2 < __diff1 ? __first1 + __diff2 : __last1; 8751: } 8751: 8751: template 8751: static bool 8751: __cnd2(_RAI, _RAI) 8751: { return true; } 8751: }; 8751: 8751: template 8751: bool 8751: __lexicographical_compare_impl(_II1 __first1, _II1 __last1, 8751: _II2 __first2, _II2 __last2, 8751: _Compare __comp) 8751: { 8751: typedef typename iterator_traits<_II1>::iterator_category _Category1; 8751: typedef typename iterator_traits<_II2>::iterator_category _Category2; 8751: typedef std::__lc_rai<_Category1, _Category2> __rai_type; 8751: 8751: __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); 8751: for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); 8751: ++__first1, (void)++__first2) 8751: { 8751: if (__comp(__first1, __first2)) 8751: return true; 8751: if (__comp(__first2, __first1)) 8751: return false; 8751: } 8751: return __first1 == __last1 && __first2 != __last2; 8751: } 8751: 8751: template 8751: struct __lexicographical_compare 8751: { 8751: template 8751: static bool __lc(_II1, _II1, _II2, _II2); 8751: }; 8751: 8751: template 8751: template 8751: bool 8751: __lexicographical_compare<_BoolType>:: 8751: __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 8751: { 8751: return std::__lexicographical_compare_impl(__first1, __last1, 8751: __first2, __last2, 8751: __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: 8751: template<> 8751: struct __lexicographical_compare 8751: { 8751: template 8751: static bool 8751: __lc(const _Tp* __first1, const _Tp* __last1, 8751: const _Up* __first2, const _Up* __last2) 8751: { 8751: const size_t __len1 = __last1 - __first1; 8751: const size_t __len2 = __last2 - __first2; 8751: if (const size_t __len = std::min(__len1, __len2)) 8751: if (int __result = __builtin_memcmp(__first1, __first2, __len)) 8751: return __result < 0; 8751: return __len1 < __len2; 8751: } 8751: }; 8751: 8751: template 8751: inline bool 8751: __lexicographical_compare_aux(_II1 __first1, _II1 __last1, 8751: _II2 __first2, _II2 __last2) 8751: { 8751: typedef typename iterator_traits<_II1>::value_type _ValueType1; 8751: typedef typename iterator_traits<_II2>::value_type _ValueType2; 8751: const bool __simple = 8751: (__is_byte<_ValueType1>::__value && __is_byte<_ValueType2>::__value 8751: && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed 8751: && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed 8751: && __is_pointer<_II1>::__value 8751: && __is_pointer<_II2>::__value); 8751: 8751: return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, 8751: __first2, __last2); 8751: } 8751: 8751: template 8751: _ForwardIterator 8751: __lower_bound(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __val, _Compare __comp) 8751: { 8751: typedef typename iterator_traits<_ForwardIterator>::difference_type 8751: _DistanceType; 8751: 8751: _DistanceType __len = std::distance(__first, __last); 8751: 8751: while (__len > 0) 8751: { 8751: _DistanceType __half = __len >> 1; 8751: _ForwardIterator __middle = __first; 8751: std::advance(__middle, __half); 8751: if (__comp(__middle, __val)) 8751: { 8751: __first = __middle; 8751: ++__first; 8751: __len = __len - __half - 1; 8751: } 8751: else 8751: __len = __half; 8751: } 8751: return __first; 8751: } 8751: # 982 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: inline _ForwardIterator 8751: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __val) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__lower_bound(__first, __last, __val, 8751: __gnu_cxx::__ops::__iter_less_val()); 8751: } 8751: 8751: 8751: 8751: inline constexpr int 8751: __lg(int __n) 8751: { return sizeof(int) * 8 - 1 - __builtin_clz(__n); } 8751: 8751: inline constexpr unsigned 8751: __lg(unsigned __n) 8751: { return sizeof(int) * 8 - 1 - __builtin_clz(__n); } 8751: 8751: inline constexpr long 8751: __lg(long __n) 8751: { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); } 8751: 8751: inline constexpr unsigned long 8751: __lg(unsigned long __n) 8751: { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); } 8751: 8751: inline constexpr long long 8751: __lg(long long __n) 8751: { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } 8751: 8751: inline constexpr unsigned long long 8751: __lg(unsigned long long __n) 8751: { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } 8751: 8751: 8751: # 1037 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: inline bool 8751: equal(_II1 __first1, _II1 __last1, _II2 __first2) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__equal_aux(std::__niter_base(__first1), 8751: std::__niter_base(__last1), 8751: std::__niter_base(__first2)); 8751: } 8751: # 1069 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: inline bool 8751: equal(_IIter1 __first1, _IIter1 __last1, 8751: _IIter2 __first2, _BinaryPredicate __binary_pred) 8751: { 8751: 8751: 8751: 8751: ; 8751: 8751: for (; __first1 != __last1; ++__first1, (void)++__first2) 8751: if (!bool(__binary_pred(*__first1, *__first2))) 8751: return false; 8751: return true; 8751: } 8751: 8751: 8751: 8751: template 8751: inline bool 8751: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 8751: { 8751: using _RATag = random_access_iterator_tag; 8751: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 8751: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 8751: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 8751: if (_RAIters()) 8751: { 8751: auto __d1 = std::distance(__first1, __last1); 8751: auto __d2 = std::distance(__first2, __last2); 8751: if (__d1 != __d2) 8751: return false; 8751: return std::equal(__first1, __last1, __first2); 8751: } 8751: 8751: for (; __first1 != __last1 && __first2 != __last2; 8751: ++__first1, (void)++__first2) 8751: if (!(*__first1 == *__first2)) 8751: return false; 8751: return __first1 == __last1 && __first2 == __last2; 8751: } 8751: 8751: 8751: template 8751: inline bool 8751: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, 8751: _BinaryPredicate __binary_pred) 8751: { 8751: using _RATag = random_access_iterator_tag; 8751: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 8751: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 8751: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 8751: if (_RAIters()) 8751: { 8751: auto __d1 = std::distance(__first1, __last1); 8751: auto __d2 = std::distance(__first2, __last2); 8751: if (__d1 != __d2) 8751: return false; 8751: return std::equal(__first1, __last1, __first2, 8751: __binary_pred); 8751: } 8751: 8751: for (; __first1 != __last1 && __first2 != __last2; 8751: ++__first1, (void)++__first2) 8751: if (!bool(__binary_pred(*__first1, *__first2))) 8751: return false; 8751: return __first1 == __last1 && __first2 == __last2; 8751: } 8751: # 1219 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: inline bool 8751: lexicographical_compare(_II1 __first1, _II1 __last1, 8751: _II2 __first2, _II2 __last2) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__lexicographical_compare_aux(std::__niter_base(__first1), 8751: std::__niter_base(__last1), 8751: std::__niter_base(__first2), 8751: std::__niter_base(__last2)); 8751: } 8751: # 1255 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: inline bool 8751: lexicographical_compare(_II1 __first1, _II1 __last1, 8751: _II2 __first2, _II2 __last2, _Compare __comp) 8751: { 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__lexicographical_compare_impl 8751: (__first1, __last1, __first2, __last2, 8751: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: 8751: template 8751: pair<_InputIterator1, _InputIterator2> 8751: __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 8751: { 8751: while (__first1 != __last1 && __binary_pred(__first1, __first2)) 8751: { 8751: ++__first1; 8751: ++__first2; 8751: } 8751: return pair<_InputIterator1, _InputIterator2>(__first1, __first2); 8751: } 8751: # 1298 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: inline pair<_InputIterator1, _InputIterator2> 8751: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__mismatch(__first1, __last1, __first2, 8751: __gnu_cxx::__ops::__iter_equal_to_iter()); 8751: } 8751: # 1331 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: template 8751: inline pair<_InputIterator1, _InputIterator2> 8751: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 8751: { 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__mismatch(__first1, __last1, __first2, 8751: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 8751: } 8751: # 1431 "/usr/include/c++/8/bits/stl_algobase.h" 3 8751: 8751: 8751: } 8751: # 62 "/usr/include/c++/8/algorithm" 2 3 8751: # 1 "/usr/include/c++/8/bits/stl_algo.h" 1 3 8751: # 59 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: # 1 "/usr/include/c++/8/cstdlib" 1 3 8751: # 39 "/usr/include/c++/8/cstdlib" 3 8751: 8751: # 40 "/usr/include/c++/8/cstdlib" 3 8751: # 75 "/usr/include/c++/8/cstdlib" 3 8751: # 1 "/usr/include/stdlib.h" 1 3 4 8751: # 25 "/usr/include/stdlib.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 8751: # 26 "/usr/include/stdlib.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8751: # 32 "/usr/include/stdlib.h" 2 3 4 8751: 8751: extern "C" { 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/waitflags.h" 1 3 4 8751: # 52 "/usr/include/arm-linux-gnueabihf/bits/waitflags.h" 3 4 8751: typedef enum 8751: { 8751: P_ALL, 8751: P_PID, 8751: P_PGID 8751: } idtype_t; 8751: # 40 "/usr/include/stdlib.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/waitstatus.h" 1 3 4 8751: # 41 "/usr/include/stdlib.h" 2 3 4 8751: # 55 "/usr/include/stdlib.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/floatn.h" 1 3 4 8751: # 56 "/usr/include/stdlib.h" 2 3 4 8751: 8751: 8751: typedef struct 8751: { 8751: int quot; 8751: int rem; 8751: } div_t; 8751: 8751: 8751: 8751: typedef struct 8751: { 8751: long int quot; 8751: long int rem; 8751: } ldiv_t; 8751: 8751: 8751: 8751: 8751: 8751: __extension__ typedef struct 8751: { 8751: long long int quot; 8751: long long int rem; 8751: } lldiv_t; 8751: # 97 "/usr/include/stdlib.h" 3 4 8751: extern size_t __ctype_get_mb_cur_max (void) throw () __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: extern double atof (const char *__nptr) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: 8751: extern int atoi (const char *__nptr) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: 8751: extern long int atol (const char *__nptr) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: __extension__ extern long long int atoll (const char *__nptr) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: extern double strtod (const char *__restrict __nptr, 8751: char **__restrict __endptr) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: extern float strtof (const char *__restrict __nptr, 8751: char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: extern long double strtold (const char *__restrict __nptr, 8751: char **__restrict __endptr) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: # 139 "/usr/include/stdlib.h" 3 4 8751: extern long int strtol (const char *__restrict __nptr, 8751: char **__restrict __endptr, int __base) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: extern unsigned long int strtoul (const char *__restrict __nptr, 8751: char **__restrict __endptr, int __base) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: __extension__ 8751: extern long long int strtoq (const char *__restrict __nptr, 8751: char **__restrict __endptr, int __base) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: __extension__ 8751: extern unsigned long long int strtouq (const char *__restrict __nptr, 8751: char **__restrict __endptr, int __base) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: __extension__ 8751: extern long long int strtoll (const char *__restrict __nptr, 8751: char **__restrict __endptr, int __base) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: __extension__ 8751: extern unsigned long long int strtoull (const char *__restrict __nptr, 8751: char **__restrict __endptr, int __base) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: extern int strfromd (char *__dest, size_t __size, const char *__format, 8751: double __f) 8751: throw () __attribute__ ((__nonnull__ (3))); 8751: 8751: extern int strfromf (char *__dest, size_t __size, const char *__format, 8751: float __f) 8751: throw () __attribute__ ((__nonnull__ (3))); 8751: 8751: extern int strfroml (char *__dest, size_t __size, const char *__format, 8751: long double __f) 8751: throw () __attribute__ ((__nonnull__ (3))); 8751: # 199 "/usr/include/stdlib.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/locale_t.h" 1 3 4 8751: # 22 "/usr/include/arm-linux-gnueabihf/bits/types/locale_t.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/__locale_t.h" 1 3 4 8751: # 28 "/usr/include/arm-linux-gnueabihf/bits/types/__locale_t.h" 3 4 8751: struct __locale_struct 8751: { 8751: 8751: struct __locale_data *__locales[13]; 8751: 8751: 8751: const unsigned short int *__ctype_b; 8751: const int *__ctype_tolower; 8751: const int *__ctype_toupper; 8751: 8751: 8751: const char *__names[13]; 8751: }; 8751: 8751: typedef struct __locale_struct *__locale_t; 8751: # 23 "/usr/include/arm-linux-gnueabihf/bits/types/locale_t.h" 2 3 4 8751: 8751: typedef __locale_t locale_t; 8751: # 200 "/usr/include/stdlib.h" 2 3 4 8751: 8751: extern long int strtol_l (const char *__restrict __nptr, 8751: char **__restrict __endptr, int __base, 8751: locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); 8751: 8751: extern unsigned long int strtoul_l (const char *__restrict __nptr, 8751: char **__restrict __endptr, 8751: int __base, locale_t __loc) 8751: throw () __attribute__ ((__nonnull__ (1, 4))); 8751: 8751: __extension__ 8751: extern long long int strtoll_l (const char *__restrict __nptr, 8751: char **__restrict __endptr, int __base, 8751: locale_t __loc) 8751: throw () __attribute__ ((__nonnull__ (1, 4))); 8751: 8751: __extension__ 8751: extern unsigned long long int strtoull_l (const char *__restrict __nptr, 8751: char **__restrict __endptr, 8751: int __base, locale_t __loc) 8751: throw () __attribute__ ((__nonnull__ (1, 4))); 8751: 8751: extern double strtod_l (const char *__restrict __nptr, 8751: char **__restrict __endptr, locale_t __loc) 8751: throw () __attribute__ ((__nonnull__ (1, 3))); 8751: 8751: extern float strtof_l (const char *__restrict __nptr, 8751: char **__restrict __endptr, locale_t __loc) 8751: throw () __attribute__ ((__nonnull__ (1, 3))); 8751: 8751: extern long double strtold_l (const char *__restrict __nptr, 8751: char **__restrict __endptr, 8751: locale_t __loc) 8751: throw () __attribute__ ((__nonnull__ (1, 3))); 8751: # 245 "/usr/include/stdlib.h" 3 4 8751: extern __inline __attribute__ ((__gnu_inline__)) int 8751: __attribute__ ((__leaf__)) atoi (const char *__nptr) throw () 8751: { 8751: return (int) strtol (__nptr, (char **) __null, 10); 8751: } 8751: extern __inline __attribute__ ((__gnu_inline__)) long int 8751: __attribute__ ((__leaf__)) atol (const char *__nptr) throw () 8751: { 8751: return strtol (__nptr, (char **) __null, 10); 8751: } 8751: 8751: 8751: __extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int 8751: __attribute__ ((__leaf__)) atoll (const char *__nptr) throw () 8751: { 8751: return strtoll (__nptr, (char **) __null, 10); 8751: } 8751: # 270 "/usr/include/stdlib.h" 3 4 8751: extern char *l64a (long int __n) throw () __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: extern long int a64l (const char *__s) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/sys/types.h" 1 3 4 8751: # 27 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4 8751: extern "C" { 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/types.h" 1 3 4 8751: # 27 "/usr/include/arm-linux-gnueabihf/bits/types.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4 8751: # 28 "/usr/include/arm-linux-gnueabihf/bits/types.h" 2 3 4 8751: 8751: 8751: typedef unsigned char __u_char; 8751: typedef unsigned short int __u_short; 8751: typedef unsigned int __u_int; 8751: typedef unsigned long int __u_long; 8751: 8751: 8751: typedef signed char __int8_t; 8751: typedef unsigned char __uint8_t; 8751: typedef signed short int __int16_t; 8751: typedef unsigned short int __uint16_t; 8751: typedef signed int __int32_t; 8751: typedef unsigned int __uint32_t; 8751: 8751: 8751: 8751: 8751: __extension__ typedef signed long long int __int64_t; 8751: __extension__ typedef unsigned long long int __uint64_t; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: __extension__ typedef long long int __quad_t; 8751: __extension__ typedef unsigned long long int __u_quad_t; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: __extension__ typedef long long int __intmax_t; 8751: __extension__ typedef unsigned long long int __uintmax_t; 8751: # 130 "/usr/include/arm-linux-gnueabihf/bits/types.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/typesizes.h" 1 3 4 8751: # 131 "/usr/include/arm-linux-gnueabihf/bits/types.h" 2 3 4 8751: 8751: 8751: __extension__ typedef __u_quad_t __dev_t; 8751: __extension__ typedef unsigned int __uid_t; 8751: __extension__ typedef unsigned int __gid_t; 8751: __extension__ typedef unsigned long int __ino_t; 8751: __extension__ typedef __u_quad_t __ino64_t; 8751: __extension__ typedef unsigned int __mode_t; 8751: __extension__ typedef unsigned int __nlink_t; 8751: __extension__ typedef long int __off_t; 8751: __extension__ typedef __quad_t __off64_t; 8751: __extension__ typedef int __pid_t; 8751: __extension__ typedef struct { int __val[2]; } __fsid_t; 8751: __extension__ typedef long int __clock_t; 8751: __extension__ typedef unsigned long int __rlim_t; 8751: __extension__ typedef __u_quad_t __rlim64_t; 8751: __extension__ typedef unsigned int __id_t; 8751: __extension__ typedef long int __time_t; 8751: __extension__ typedef unsigned int __useconds_t; 8751: __extension__ typedef long int __suseconds_t; 8751: 8751: __extension__ typedef int __daddr_t; 8751: __extension__ typedef int __key_t; 8751: 8751: 8751: __extension__ typedef int __clockid_t; 8751: 8751: 8751: __extension__ typedef void * __timer_t; 8751: 8751: 8751: __extension__ typedef long int __blksize_t; 8751: 8751: 8751: 8751: 8751: __extension__ typedef long int __blkcnt_t; 8751: __extension__ typedef __quad_t __blkcnt64_t; 8751: 8751: 8751: __extension__ typedef unsigned long int __fsblkcnt_t; 8751: __extension__ typedef __u_quad_t __fsblkcnt64_t; 8751: 8751: 8751: __extension__ typedef unsigned long int __fsfilcnt_t; 8751: __extension__ typedef __u_quad_t __fsfilcnt64_t; 8751: 8751: 8751: __extension__ typedef int __fsword_t; 8751: 8751: __extension__ typedef int __ssize_t; 8751: 8751: 8751: __extension__ typedef long int __syscall_slong_t; 8751: 8751: __extension__ typedef unsigned long int __syscall_ulong_t; 8751: 8751: 8751: 8751: typedef __off64_t __loff_t; 8751: typedef __quad_t *__qaddr_t; 8751: typedef char *__caddr_t; 8751: 8751: 8751: __extension__ typedef int __intptr_t; 8751: 8751: 8751: __extension__ typedef unsigned int __socklen_t; 8751: 8751: 8751: 8751: 8751: typedef int __sig_atomic_t; 8751: # 30 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8751: 8751: 8751: 8751: typedef __u_char u_char; 8751: typedef __u_short u_short; 8751: typedef __u_int u_int; 8751: typedef __u_long u_long; 8751: typedef __quad_t quad_t; 8751: typedef __u_quad_t u_quad_t; 8751: typedef __fsid_t fsid_t; 8751: 8751: 8751: 8751: 8751: typedef __loff_t loff_t; 8751: 8751: 8751: 8751: typedef __ino_t ino_t; 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef __ino64_t ino64_t; 8751: 8751: 8751: 8751: 8751: typedef __dev_t dev_t; 8751: 8751: 8751: 8751: 8751: typedef __gid_t gid_t; 8751: 8751: 8751: 8751: 8751: typedef __mode_t mode_t; 8751: 8751: 8751: 8751: 8751: typedef __nlink_t nlink_t; 8751: 8751: 8751: 8751: 8751: typedef __uid_t uid_t; 8751: 8751: 8751: 8751: 8751: 8751: typedef __off_t off_t; 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef __off64_t off64_t; 8751: 8751: 8751: 8751: 8751: typedef __pid_t pid_t; 8751: 8751: 8751: 8751: 8751: 8751: typedef __id_t id_t; 8751: 8751: 8751: 8751: 8751: typedef __ssize_t ssize_t; 8751: 8751: 8751: 8751: 8751: 8751: typedef __daddr_t daddr_t; 8751: typedef __caddr_t caddr_t; 8751: 8751: 8751: 8751: 8751: 8751: typedef __key_t key_t; 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/clock_t.h" 1 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef __clock_t clock_t; 8751: # 128 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/clockid_t.h" 1 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef __clockid_t clockid_t; 8751: # 130 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/time_t.h" 1 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef __time_t time_t; 8751: # 131 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/timer_t.h" 1 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef __timer_t timer_t; 8751: # 132 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8751: 8751: 8751: 8751: typedef __useconds_t useconds_t; 8751: 8751: 8751: 8751: typedef __suseconds_t suseconds_t; 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8751: # 146 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8751: 8751: 8751: 8751: typedef unsigned long int ulong; 8751: typedef unsigned short int ushort; 8751: typedef unsigned int uint; 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdint-intn.h" 1 3 4 8751: # 24 "/usr/include/arm-linux-gnueabihf/bits/stdint-intn.h" 3 4 8751: typedef __int8_t int8_t; 8751: typedef __int16_t int16_t; 8751: typedef __int32_t int32_t; 8751: typedef __int64_t int64_t; 8751: # 157 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8751: # 178 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4 8751: typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); 8751: typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); 8751: typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); 8751: typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); 8751: 8751: typedef int register_t __attribute__ ((__mode__ (__word__))); 8751: # 194 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4 8751: # 1 "/usr/include/endian.h" 1 3 4 8751: # 36 "/usr/include/endian.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/endian.h" 1 3 4 8751: # 37 "/usr/include/endian.h" 2 3 4 8751: # 60 "/usr/include/endian.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/byteswap.h" 1 3 4 8751: # 34 "/usr/include/arm-linux-gnueabihf/bits/byteswap.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/byteswap-16.h" 1 3 4 8751: # 35 "/usr/include/arm-linux-gnueabihf/bits/byteswap.h" 2 3 4 8751: # 43 "/usr/include/arm-linux-gnueabihf/bits/byteswap.h" 3 4 8751: static __inline unsigned int 8751: __bswap_32 (unsigned int __bsx) 8751: { 8751: return __builtin_bswap32 (__bsx); 8751: } 8751: # 74 "/usr/include/arm-linux-gnueabihf/bits/byteswap.h" 3 4 8751: static __inline __uint64_t 8751: __bswap_64 (__uint64_t __bsx) 8751: { 8751: return __builtin_bswap64 (__bsx); 8751: } 8751: # 61 "/usr/include/endian.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/uintn-identity.h" 1 3 4 8751: # 32 "/usr/include/arm-linux-gnueabihf/bits/uintn-identity.h" 3 4 8751: static __inline __uint16_t 8751: __uint16_identity (__uint16_t __x) 8751: { 8751: return __x; 8751: } 8751: 8751: static __inline __uint32_t 8751: __uint32_identity (__uint32_t __x) 8751: { 8751: return __x; 8751: } 8751: 8751: static __inline __uint64_t 8751: __uint64_identity (__uint64_t __x) 8751: { 8751: return __x; 8751: } 8751: # 62 "/usr/include/endian.h" 2 3 4 8751: # 195 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/sys/select.h" 1 3 4 8751: # 30 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/select.h" 1 3 4 8751: # 31 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/sigset_t.h" 1 3 4 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/__sigset_t.h" 1 3 4 8751: 8751: 8751: 8751: 8751: typedef struct 8751: { 8751: unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; 8751: } __sigset_t; 8751: # 5 "/usr/include/arm-linux-gnueabihf/bits/types/sigset_t.h" 2 3 4 8751: 8751: 8751: typedef __sigset_t sigset_t; 8751: # 34 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/struct_timeval.h" 1 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: struct timeval 8751: { 8751: __time_t tv_sec; 8751: __suseconds_t tv_usec; 8751: }; 8751: # 38 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/struct_timespec.h" 1 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: struct timespec 8751: { 8751: __time_t tv_sec; 8751: __syscall_slong_t tv_nsec; 8751: }; 8751: # 40 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4 8751: # 49 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4 8751: typedef long int __fd_mask; 8751: # 59 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4 8751: typedef struct 8751: { 8751: 8751: 8751: 8751: __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; 8751: 8751: 8751: 8751: 8751: 8751: } fd_set; 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef __fd_mask fd_mask; 8751: # 91 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4 8751: extern "C" { 8751: # 101 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4 8751: extern int select (int __nfds, fd_set *__restrict __readfds, 8751: fd_set *__restrict __writefds, 8751: fd_set *__restrict __exceptfds, 8751: struct timeval *__restrict __timeout); 8751: # 113 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4 8751: extern int pselect (int __nfds, fd_set *__restrict __readfds, 8751: fd_set *__restrict __writefds, 8751: fd_set *__restrict __exceptfds, 8751: const struct timespec *__restrict __timeout, 8751: const __sigset_t *__restrict __sigmask); 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/select2.h" 1 3 4 8751: # 24 "/usr/include/arm-linux-gnueabihf/bits/select2.h" 3 4 8751: extern long int __fdelt_chk (long int __d); 8751: extern long int __fdelt_warn (long int __d) 8751: __attribute__((__warning__ ("bit outside of fd_set selected"))); 8751: # 124 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4 8751: 8751: 8751: } 8751: # 198 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/sys/sysmacros.h" 1 3 4 8751: # 41 "/usr/include/arm-linux-gnueabihf/sys/sysmacros.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/sysmacros.h" 1 3 4 8751: # 42 "/usr/include/arm-linux-gnueabihf/sys/sysmacros.h" 2 3 4 8751: # 71 "/usr/include/arm-linux-gnueabihf/sys/sysmacros.h" 3 4 8751: extern "C" { 8751: 8751: extern unsigned int gnu_dev_major (__dev_t __dev) throw () __attribute__ ((__const__)); 8751: extern unsigned int gnu_dev_minor (__dev_t __dev) throw () __attribute__ ((__const__)); 8751: extern __dev_t gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw () __attribute__ ((__const__)); 8751: 8751: 8751: 8751: __extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) unsigned int __attribute__ ((__leaf__)) gnu_dev_major (__dev_t __dev) throw () { unsigned int __major; __major = ((__dev & (__dev_t) 0x00000000000fff00u) >> 8); __major |= ((__dev & (__dev_t) 0xfffff00000000000u) >> 32); return __major; } 8751: __extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) unsigned int __attribute__ ((__leaf__)) gnu_dev_minor (__dev_t __dev) throw () { unsigned int __minor; __minor = ((__dev & (__dev_t) 0x00000000000000ffu) >> 0); __minor |= ((__dev & (__dev_t) 0x00000ffffff00000u) >> 12); return __minor; } 8751: __extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) __dev_t __attribute__ ((__leaf__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw () { __dev_t __dev; __dev = (((__dev_t) (__major & 0x00000fffu)) << 8); __dev |= (((__dev_t) (__major & 0xfffff000u)) << 32); __dev |= (((__dev_t) (__minor & 0x000000ffu)) << 0); __dev |= (((__dev_t) (__minor & 0xffffff00u)) << 12); return __dev; } 8751: 8751: 8751: 8751: } 8751: # 206 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef __blksize_t blksize_t; 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef __blkcnt_t blkcnt_t; 8751: 8751: 8751: 8751: typedef __fsblkcnt_t fsblkcnt_t; 8751: 8751: 8751: 8751: typedef __fsfilcnt_t fsfilcnt_t; 8751: # 246 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4 8751: typedef __blkcnt64_t blkcnt64_t; 8751: typedef __fsblkcnt64_t fsblkcnt64_t; 8751: typedef __fsfilcnt64_t fsfilcnt64_t; 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h" 1 3 4 8751: # 23 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h" 1 3 4 8751: # 58 "/usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes-arch.h" 1 3 4 8751: # 41 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes-arch.h" 3 4 8751: struct __pthread_rwlock_arch_t 8751: { 8751: unsigned int __readers; 8751: unsigned int __writers; 8751: unsigned int __wrphase_futex; 8751: unsigned int __writers_futex; 8751: unsigned int __pad3; 8751: unsigned int __pad4; 8751: # 59 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes-arch.h" 3 4 8751: unsigned char __flags; 8751: unsigned char __shared; 8751: unsigned char __pad1; 8751: unsigned char __pad2; 8751: 8751: int __cur_writer; 8751: }; 8751: # 59 "/usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h" 2 3 4 8751: # 69 "/usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h" 3 4 8751: typedef struct __pthread_internal_slist 8751: { 8751: struct __pthread_internal_slist *__next; 8751: } __pthread_slist_t; 8751: # 99 "/usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h" 3 4 8751: struct __pthread_mutex_s 8751: { 8751: int __lock ; 8751: unsigned int __count; 8751: int __owner; 8751: 8751: 8751: 8751: 8751: 8751: int __kind; 8751: 8751: 8751: 8751: 8751: 8751: 8751: unsigned int __nusers; 8751: __extension__ union 8751: { 8751: int __spins; 8751: __pthread_slist_t __list; 8751: }; 8751: 8751: 8751: }; 8751: 8751: 8751: 8751: 8751: struct __pthread_cond_s 8751: { 8751: __extension__ union 8751: { 8751: __extension__ unsigned long long int __wseq; 8751: struct 8751: { 8751: unsigned int __low; 8751: unsigned int __high; 8751: } __wseq32; 8751: }; 8751: __extension__ union 8751: { 8751: __extension__ unsigned long long int __g1_start; 8751: struct 8751: { 8751: unsigned int __low; 8751: unsigned int __high; 8751: } __g1_start32; 8751: }; 8751: unsigned int __g_refs[2] ; 8751: unsigned int __g_size[2]; 8751: unsigned int __g1_orig_size; 8751: unsigned int __wrefs; 8751: unsigned int __g_signals[2]; 8751: }; 8751: # 24 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h" 2 3 4 8751: 8751: 8751: 8751: typedef unsigned long int pthread_t; 8751: 8751: 8751: 8751: 8751: typedef union 8751: { 8751: char __size[4]; 8751: int __align; 8751: } pthread_mutexattr_t; 8751: 8751: 8751: 8751: 8751: typedef union 8751: { 8751: char __size[4]; 8751: int __align; 8751: } pthread_condattr_t; 8751: 8751: 8751: 8751: typedef unsigned int pthread_key_t; 8751: 8751: 8751: 8751: typedef int pthread_once_t; 8751: 8751: 8751: union pthread_attr_t 8751: { 8751: char __size[36]; 8751: long int __align; 8751: }; 8751: 8751: typedef union pthread_attr_t pthread_attr_t; 8751: 8751: 8751: 8751: 8751: typedef union 8751: { 8751: struct __pthread_mutex_s __data; 8751: char __size[24]; 8751: long int __align; 8751: } pthread_mutex_t; 8751: 8751: 8751: typedef union 8751: { 8751: struct __pthread_cond_s __data; 8751: char __size[48]; 8751: __extension__ long long int __align; 8751: } pthread_cond_t; 8751: 8751: 8751: 8751: 8751: 8751: typedef union 8751: { 8751: struct __pthread_rwlock_arch_t __data; 8751: char __size[32]; 8751: long int __align; 8751: } pthread_rwlock_t; 8751: 8751: typedef union 8751: { 8751: char __size[8]; 8751: long int __align; 8751: } pthread_rwlockattr_t; 8751: 8751: 8751: 8751: 8751: 8751: typedef volatile int pthread_spinlock_t; 8751: 8751: 8751: 8751: 8751: typedef union 8751: { 8751: char __size[20]; 8751: long int __align; 8751: } pthread_barrier_t; 8751: 8751: typedef union 8751: { 8751: char __size[4]; 8751: int __align; 8751: } pthread_barrierattr_t; 8751: # 255 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4 8751: 8751: 8751: } 8751: # 280 "/usr/include/stdlib.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern long int random (void) throw (); 8751: 8751: 8751: extern void srandom (unsigned int __seed) throw (); 8751: 8751: 8751: 8751: 8751: 8751: extern char *initstate (unsigned int __seed, char *__statebuf, 8751: size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); 8751: 8751: 8751: 8751: extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: struct random_data 8751: { 8751: int32_t *fptr; 8751: int32_t *rptr; 8751: int32_t *state; 8751: int rand_type; 8751: int rand_deg; 8751: int rand_sep; 8751: int32_t *end_ptr; 8751: }; 8751: 8751: extern int random_r (struct random_data *__restrict __buf, 8751: int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: extern int srandom_r (unsigned int __seed, struct random_data *__buf) 8751: throw () __attribute__ ((__nonnull__ (2))); 8751: 8751: extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, 8751: size_t __statelen, 8751: struct random_data *__restrict __buf) 8751: throw () __attribute__ ((__nonnull__ (2, 4))); 8751: 8751: extern int setstate_r (char *__restrict __statebuf, 8751: struct random_data *__restrict __buf) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: 8751: 8751: extern int rand (void) throw (); 8751: 8751: extern void srand (unsigned int __seed) throw (); 8751: 8751: 8751: 8751: extern int rand_r (unsigned int *__seed) throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern double drand48 (void) throw (); 8751: extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern long int lrand48 (void) throw (); 8751: extern long int nrand48 (unsigned short int __xsubi[3]) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern long int mrand48 (void) throw (); 8751: extern long int jrand48 (unsigned short int __xsubi[3]) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern void srand48 (long int __seedval) throw (); 8751: extern unsigned short int *seed48 (unsigned short int __seed16v[3]) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: 8751: struct drand48_data 8751: { 8751: unsigned short int __x[3]; 8751: unsigned short int __old_x[3]; 8751: unsigned short int __c; 8751: unsigned short int __init; 8751: __extension__ unsigned long long int __a; 8751: 8751: }; 8751: 8751: 8751: extern int drand48_r (struct drand48_data *__restrict __buffer, 8751: double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 8751: extern int erand48_r (unsigned short int __xsubi[3], 8751: struct drand48_data *__restrict __buffer, 8751: double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int lrand48_r (struct drand48_data *__restrict __buffer, 8751: long int *__restrict __result) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: extern int nrand48_r (unsigned short int __xsubi[3], 8751: struct drand48_data *__restrict __buffer, 8751: long int *__restrict __result) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int mrand48_r (struct drand48_data *__restrict __buffer, 8751: long int *__restrict __result) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: extern int jrand48_r (unsigned short int __xsubi[3], 8751: struct drand48_data *__restrict __buffer, 8751: long int *__restrict __result) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int srand48_r (long int __seedval, struct drand48_data *__buffer) 8751: throw () __attribute__ ((__nonnull__ (2))); 8751: 8751: extern int seed48_r (unsigned short int __seed16v[3], 8751: struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: extern int lcong48_r (unsigned short int __param[7], 8751: struct drand48_data *__buffer) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: 8751: extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8751: 8751: extern void *calloc (size_t __nmemb, size_t __size) 8751: throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern void *realloc (void *__ptr, size_t __size) 8751: throw () __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) 8751: throw () __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: extern void free (void *__ptr) throw (); 8751: 8751: 8751: # 1 "/usr/include/alloca.h" 1 3 4 8751: # 24 "/usr/include/alloca.h" 3 4 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8751: # 25 "/usr/include/alloca.h" 2 3 4 8751: 8751: extern "C" { 8751: 8751: 8751: 8751: 8751: 8751: extern void *alloca (size_t __size) throw (); 8751: 8751: 8751: 8751: 8751: 8751: } 8751: # 452 "/usr/include/stdlib.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) 8751: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: extern void *aligned_alloc (size_t __alignment, size_t __size) 8751: throw () __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: extern void abort (void) throw () __attribute__ ((__noreturn__)); 8751: 8751: 8751: 8751: extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: extern "C++" int at_quick_exit (void (*__func) (void)) 8751: throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); 8751: # 492 "/usr/include/stdlib.h" 3 4 8751: extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: 8751: extern void exit (int __status) throw () __attribute__ ((__noreturn__)); 8751: 8751: 8751: 8751: 8751: 8751: extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__)); 8751: 8751: 8751: 8751: 8751: 8751: extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); 8751: 8751: 8751: 8751: 8751: extern char *getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: extern char *secure_getenv (const char *__name) 8751: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: 8751: extern int setenv (const char *__name, const char *__value, int __replace) 8751: throw () __attribute__ ((__nonnull__ (2))); 8751: 8751: 8751: extern int unsetenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int clearenv (void) throw (); 8751: # 557 "/usr/include/stdlib.h" 3 4 8751: extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); 8751: # 570 "/usr/include/stdlib.h" 3 4 8751: extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: # 580 "/usr/include/stdlib.h" 3 4 8751: extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: # 592 "/usr/include/stdlib.h" 3 4 8751: extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: # 602 "/usr/include/stdlib.h" 3 4 8751: extern int mkstemps64 (char *__template, int __suffixlen) 8751: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: # 613 "/usr/include/stdlib.h" 3 4 8751: extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: # 624 "/usr/include/stdlib.h" 3 4 8751: extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: # 634 "/usr/include/stdlib.h" 3 4 8751: extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: # 644 "/usr/include/stdlib.h" 3 4 8751: extern int mkostemps (char *__template, int __suffixlen, int __flags) 8751: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: # 656 "/usr/include/stdlib.h" 3 4 8751: extern int mkostemps64 (char *__template, int __suffixlen, int __flags) 8751: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: # 666 "/usr/include/stdlib.h" 3 4 8751: extern int system (const char *__command) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: 8751: extern char *canonicalize_file_name (const char *__name) 8751: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: # 682 "/usr/include/stdlib.h" 3 4 8751: extern char *realpath (const char *__restrict __name, 8751: char *__restrict __resolved) throw () __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef int (*__compar_fn_t) (const void *, const void *); 8751: 8751: 8751: typedef __compar_fn_t comparison_fn_t; 8751: 8751: 8751: 8751: typedef int (*__compar_d_fn_t) (const void *, const void *, void *); 8751: 8751: 8751: 8751: 8751: extern void *bsearch (const void *__key, const void *__base, 8751: size_t __nmemb, size_t __size, __compar_fn_t __compar) 8751: __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdlib-bsearch.h" 1 3 4 8751: # 19 "/usr/include/arm-linux-gnueabihf/bits/stdlib-bsearch.h" 3 4 8751: extern __inline __attribute__ ((__gnu_inline__)) void * 8751: bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, 8751: __compar_fn_t __compar) 8751: { 8751: size_t __l, __u, __idx; 8751: const void *__p; 8751: int __comparison; 8751: 8751: __l = 0; 8751: __u = __nmemb; 8751: while (__l < __u) 8751: { 8751: __idx = (__l + __u) / 2; 8751: __p = (void *) (((const char *) __base) + (__idx * __size)); 8751: __comparison = (*__compar) (__key, __p); 8751: if (__comparison < 0) 8751: __u = __idx; 8751: else if (__comparison > 0) 8751: __l = __idx + 1; 8751: else 8751: return (void *) __p; 8751: } 8751: 8751: return __null; 8751: } 8751: # 708 "/usr/include/stdlib.h" 2 3 4 8751: 8751: 8751: 8751: 8751: extern void qsort (void *__base, size_t __nmemb, size_t __size, 8751: __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); 8751: 8751: extern void qsort_r (void *__base, size_t __nmemb, size_t __size, 8751: __compar_d_fn_t __compar, void *__arg) 8751: __attribute__ ((__nonnull__ (1, 4))); 8751: 8751: 8751: 8751: 8751: extern int abs (int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8751: extern long int labs (long int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: __extension__ extern long long int llabs (long long int __x) 8751: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern div_t div (int __numer, int __denom) 8751: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8751: extern ldiv_t ldiv (long int __numer, long int __denom) 8751: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: __extension__ extern lldiv_t lldiv (long long int __numer, 8751: long long int __denom) 8751: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8751: # 754 "/usr/include/stdlib.h" 3 4 8751: extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, 8751: int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, 8751: int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: extern char *gcvt (double __value, int __ndigit, char *__buf) 8751: throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: extern char *qecvt (long double __value, int __ndigit, 8751: int *__restrict __decpt, int *__restrict __sign) 8751: throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8751: extern char *qfcvt (long double __value, int __ndigit, 8751: int *__restrict __decpt, int *__restrict __sign) 8751: throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8751: extern char *qgcvt (long double __value, int __ndigit, char *__buf) 8751: throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, 8751: int *__restrict __sign, char *__restrict __buf, 8751: size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8751: extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, 8751: int *__restrict __sign, char *__restrict __buf, 8751: size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8751: 8751: extern int qecvt_r (long double __value, int __ndigit, 8751: int *__restrict __decpt, int *__restrict __sign, 8751: char *__restrict __buf, size_t __len) 8751: throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8751: extern int qfcvt_r (long double __value, int __ndigit, 8751: int *__restrict __decpt, int *__restrict __sign, 8751: char *__restrict __buf, size_t __len) 8751: throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8751: 8751: 8751: 8751: 8751: 8751: extern int mblen (const char *__s, size_t __n) throw (); 8751: 8751: 8751: extern int mbtowc (wchar_t *__restrict __pwc, 8751: const char *__restrict __s, size_t __n) throw (); 8751: 8751: 8751: extern int wctomb (char *__s, wchar_t __wchar) throw (); 8751: 8751: 8751: 8751: extern size_t mbstowcs (wchar_t *__restrict __pwcs, 8751: const char *__restrict __s, size_t __n) throw (); 8751: 8751: extern size_t wcstombs (char *__restrict __s, 8751: const wchar_t *__restrict __pwcs, size_t __n) 8751: throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int rpmatch (const char *__response) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8751: # 839 "/usr/include/stdlib.h" 3 4 8751: extern int getsubopt (char **__restrict __optionp, 8751: char *const *__restrict __tokens, 8751: char **__restrict __valuep) 8751: throw () __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: 8751: extern void setkey (const char *__key) throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int grantpt (int __fd) throw (); 8751: 8751: 8751: 8751: extern int unlockpt (int __fd) throw (); 8751: 8751: 8751: 8751: 8751: extern char *ptsname (int __fd) throw () __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int ptsname_r (int __fd, char *__buf, size_t __buflen) 8751: throw () __attribute__ ((__nonnull__ (2))); 8751: 8751: 8751: extern int getpt (void); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int getloadavg (double __loadavg[], int __nelem) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: # 901 "/usr/include/stdlib.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdlib-float.h" 1 3 4 8751: # 24 "/usr/include/arm-linux-gnueabihf/bits/stdlib-float.h" 3 4 8751: extern __inline __attribute__ ((__gnu_inline__)) double 8751: __attribute__ ((__leaf__)) atof (const char *__nptr) throw () 8751: { 8751: return strtod (__nptr, (char **) __null); 8751: } 8751: # 902 "/usr/include/stdlib.h" 2 3 4 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdlib.h" 1 3 4 8751: # 23 "/usr/include/arm-linux-gnueabihf/bits/stdlib.h" 3 4 8751: extern char *__realpath_chk (const char *__restrict __name, 8751: char *__restrict __resolved, 8751: size_t __resolvedlen) throw () __attribute__ ((__warn_unused_result__)); 8751: extern char *__realpath_alias (const char *__restrict __name, char *__restrict __resolved) throw () __asm__ ("" "realpath") 8751: 8751: __attribute__ ((__warn_unused_result__)); 8751: extern char *__realpath_chk_warn (const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) throw () __asm__ ("" "__realpath_chk") 8751: 8751: 8751: __attribute__ ((__warn_unused_result__)) 8751: __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer"))) 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8751: __attribute__ ((__leaf__)) realpath (const char *__restrict __name, char *__restrict __resolved) throw () 8751: { 8751: if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1) 8751: { 8751: 8751: 8751: 8751: 8751: return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); 8751: } 8751: 8751: return __realpath_alias (__name, __resolved); 8751: } 8751: 8751: 8751: extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, 8751: size_t __nreal) throw () __attribute__ ((__nonnull__ (2))); 8751: extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) throw () __asm__ ("" "ptsname_r") 8751: 8751: __attribute__ ((__nonnull__ (2))); 8751: extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) throw () __asm__ ("" "__ptsname_r_chk") 8751: 8751: 8751: __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf"))) 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: __attribute__ ((__leaf__)) ptsname_r (int __fd, char *__buf, size_t __buflen) throw () 8751: { 8751: if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__buflen)) 8751: return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 8751: if (__buflen > __builtin_object_size (__buf, 2 > 1)) 8751: return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 8751: } 8751: return __ptsname_r_alias (__fd, __buf, __buflen); 8751: } 8751: 8751: 8751: extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen) 8751: throw () __attribute__ ((__warn_unused_result__)); 8751: extern int __wctomb_alias (char *__s, wchar_t __wchar) throw () __asm__ ("" "wctomb") 8751: __attribute__ ((__warn_unused_result__)); 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int 8751: __attribute__ ((__leaf__)) wctomb (char *__s, wchar_t __wchar) throw () 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) 8751: return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1)); 8751: return __wctomb_alias (__s, __wchar); 8751: } 8751: 8751: 8751: extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, 8751: const char *__restrict __src, 8751: size_t __len, size_t __dstlen) throw (); 8751: extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) throw () __asm__ ("" "mbstowcs") 8751: 8751: 8751: ; 8751: extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__mbstowcs_chk") 8751: 8751: 8751: 8751: __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8751: __attribute__ ((__leaf__)) mbstowcs (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) throw () 8751: 8751: { 8751: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__len)) 8751: return __mbstowcs_chk (__dst, __src, __len, 8751: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8751: 8751: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 8751: return __mbstowcs_chk_warn (__dst, __src, __len, 8751: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8751: } 8751: return __mbstowcs_alias (__dst, __src, __len); 8751: } 8751: 8751: 8751: extern size_t __wcstombs_chk (char *__restrict __dst, 8751: const wchar_t *__restrict __src, 8751: size_t __len, size_t __dstlen) throw (); 8751: extern size_t __wcstombs_alias (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) throw () __asm__ ("" "wcstombs") 8751: 8751: 8751: ; 8751: extern size_t __wcstombs_chk_warn (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__wcstombs_chk") 8751: 8751: 8751: 8751: __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len"))); 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8751: __attribute__ ((__leaf__)) wcstombs (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) throw () 8751: 8751: { 8751: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__len)) 8751: return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); 8751: if (__len > __builtin_object_size (__dst, 2 > 1)) 8751: return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); 8751: } 8751: return __wcstombs_alias (__dst, __src, __len); 8751: } 8751: # 906 "/usr/include/stdlib.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: } 8751: # 76 "/usr/include/c++/8/cstdlib" 2 3 8751: 8751: # 1 "/usr/include/c++/8/bits/std_abs.h" 1 3 8751: # 33 "/usr/include/c++/8/bits/std_abs.h" 3 8751: 8751: # 34 "/usr/include/c++/8/bits/std_abs.h" 3 8751: # 46 "/usr/include/c++/8/bits/std_abs.h" 3 8751: extern "C++" 8751: { 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: using ::abs; 8751: 8751: 8751: inline long 8751: abs(long __i) { return __builtin_labs(__i); } 8751: 8751: 8751: 8751: inline long long 8751: abs(long long __x) { return __builtin_llabs (__x); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: inline constexpr double 8751: abs(double __x) 8751: { return __builtin_fabs(__x); } 8751: 8751: inline constexpr float 8751: abs(float __x) 8751: { return __builtin_fabsf(__x); } 8751: 8751: inline constexpr long double 8751: abs(long double __x) 8751: { return __builtin_fabsl(__x); } 8751: # 106 "/usr/include/c++/8/bits/std_abs.h" 3 8751: 8751: } 8751: } 8751: # 78 "/usr/include/c++/8/cstdlib" 2 3 8751: # 118 "/usr/include/c++/8/cstdlib" 3 8751: extern "C++" 8751: { 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: using ::div_t; 8751: using ::ldiv_t; 8751: 8751: using ::abort; 8751: using ::atexit; 8751: 8751: 8751: using ::at_quick_exit; 8751: 8751: 8751: using ::atof; 8751: using ::atoi; 8751: using ::atol; 8751: using ::bsearch; 8751: using ::calloc; 8751: using ::div; 8751: using ::exit; 8751: using ::free; 8751: using ::getenv; 8751: using ::labs; 8751: using ::ldiv; 8751: using ::malloc; 8751: 8751: using ::mblen; 8751: using ::mbstowcs; 8751: using ::mbtowc; 8751: 8751: using ::qsort; 8751: 8751: 8751: using ::quick_exit; 8751: 8751: 8751: using ::rand; 8751: using ::realloc; 8751: using ::srand; 8751: using ::strtod; 8751: using ::strtol; 8751: using ::strtoul; 8751: using ::system; 8751: 8751: using ::wcstombs; 8751: using ::wctomb; 8751: 8751: 8751: 8751: inline ldiv_t 8751: div(long __i, long __j) { return ldiv(__i, __j); } 8751: 8751: 8751: 8751: 8751: } 8751: # 189 "/usr/include/c++/8/cstdlib" 3 8751: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: using ::lldiv_t; 8751: 8751: 8751: 8751: 8751: 8751: using ::_Exit; 8751: 8751: 8751: 8751: using ::llabs; 8751: 8751: inline lldiv_t 8751: div(long long __n, long long __d) 8751: { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } 8751: 8751: using ::lldiv; 8751: # 221 "/usr/include/c++/8/cstdlib" 3 8751: using ::atoll; 8751: using ::strtoll; 8751: using ::strtoull; 8751: 8751: using ::strtof; 8751: using ::strtold; 8751: 8751: 8751: } 8751: 8751: namespace std 8751: { 8751: 8751: using ::__gnu_cxx::lldiv_t; 8751: 8751: using ::__gnu_cxx::_Exit; 8751: 8751: using ::__gnu_cxx::llabs; 8751: using ::__gnu_cxx::div; 8751: using ::__gnu_cxx::lldiv; 8751: 8751: using ::__gnu_cxx::atoll; 8751: using ::__gnu_cxx::strtof; 8751: using ::__gnu_cxx::strtoll; 8751: using ::__gnu_cxx::strtoull; 8751: using ::__gnu_cxx::strtold; 8751: } 8751: 8751: 8751: 8751: } 8751: # 60 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8751: # 1 "/usr/include/c++/8/bits/algorithmfwd.h" 1 3 8751: # 33 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8751: 8751: # 34 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8751: # 42 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 195 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8751: template 8751: bool 8751: all_of(_IIter, _IIter, _Predicate); 8751: 8751: template 8751: bool 8751: any_of(_IIter, _IIter, _Predicate); 8751: 8751: 8751: template 8751: bool 8751: binary_search(_FIter, _FIter, const _Tp&); 8751: 8751: template 8751: bool 8751: binary_search(_FIter, _FIter, const _Tp&, _Compare); 8751: # 224 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8751: template 8751: _OIter 8751: copy(_IIter, _IIter, _OIter); 8751: 8751: template 8751: _BIter2 8751: copy_backward(_BIter1, _BIter1, _BIter2); 8751: 8751: 8751: template 8751: _OIter 8751: copy_if(_IIter, _IIter, _OIter, _Predicate); 8751: 8751: template 8751: _OIter 8751: copy_n(_IIter, _Size, _OIter); 8751: 8751: 8751: 8751: 8751: 8751: template 8751: pair<_FIter, _FIter> 8751: equal_range(_FIter, _FIter, const _Tp&); 8751: 8751: template 8751: pair<_FIter, _FIter> 8751: equal_range(_FIter, _FIter, const _Tp&, _Compare); 8751: 8751: template 8751: void 8751: fill(_FIter, _FIter, const _Tp&); 8751: 8751: template 8751: _OIter 8751: fill_n(_OIter, _Size, const _Tp&); 8751: 8751: 8751: 8751: template 8751: _FIter1 8751: find_end(_FIter1, _FIter1, _FIter2, _FIter2); 8751: 8751: template 8751: _FIter1 8751: find_end(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 8751: 8751: 8751: 8751: 8751: 8751: template 8751: _IIter 8751: find_if_not(_IIter, _IIter, _Predicate); 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: bool 8751: includes(_IIter1, _IIter1, _IIter2, _IIter2); 8751: 8751: template 8751: bool 8751: includes(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); 8751: 8751: template 8751: void 8751: inplace_merge(_BIter, _BIter, _BIter); 8751: 8751: template 8751: void 8751: inplace_merge(_BIter, _BIter, _BIter, _Compare); 8751: 8751: 8751: template 8751: bool 8751: is_heap(_RAIter, _RAIter); 8751: 8751: template 8751: bool 8751: is_heap(_RAIter, _RAIter, _Compare); 8751: 8751: template 8751: _RAIter 8751: is_heap_until(_RAIter, _RAIter); 8751: 8751: template 8751: _RAIter 8751: is_heap_until(_RAIter, _RAIter, _Compare); 8751: 8751: template 8751: bool 8751: is_partitioned(_IIter, _IIter, _Predicate); 8751: 8751: template 8751: bool 8751: is_permutation(_FIter1, _FIter1, _FIter2); 8751: 8751: template 8751: bool 8751: is_permutation(_FIter1, _FIter1, _FIter2, _BinaryPredicate); 8751: 8751: template 8751: bool 8751: is_sorted(_FIter, _FIter); 8751: 8751: template 8751: bool 8751: is_sorted(_FIter, _FIter, _Compare); 8751: 8751: template 8751: _FIter 8751: is_sorted_until(_FIter, _FIter); 8751: 8751: template 8751: _FIter 8751: is_sorted_until(_FIter, _FIter, _Compare); 8751: 8751: 8751: template 8751: void 8751: iter_swap(_FIter1, _FIter2); 8751: 8751: template 8751: _FIter 8751: lower_bound(_FIter, _FIter, const _Tp&); 8751: 8751: template 8751: _FIter 8751: lower_bound(_FIter, _FIter, const _Tp&, _Compare); 8751: 8751: template 8751: void 8751: make_heap(_RAIter, _RAIter); 8751: 8751: template 8751: void 8751: make_heap(_RAIter, _RAIter, _Compare); 8751: 8751: template 8751: 8751: const _Tp& 8751: max(const _Tp&, const _Tp&); 8751: 8751: template 8751: 8751: const _Tp& 8751: max(const _Tp&, const _Tp&, _Compare); 8751: 8751: 8751: 8751: 8751: template 8751: 8751: const _Tp& 8751: min(const _Tp&, const _Tp&); 8751: 8751: template 8751: 8751: const _Tp& 8751: min(const _Tp&, const _Tp&, _Compare); 8751: 8751: 8751: 8751: 8751: template 8751: 8751: pair 8751: minmax(const _Tp&, const _Tp&); 8751: 8751: template 8751: 8751: pair 8751: minmax(const _Tp&, const _Tp&, _Compare); 8751: 8751: template 8751: 8751: pair<_FIter, _FIter> 8751: minmax_element(_FIter, _FIter); 8751: 8751: template 8751: 8751: pair<_FIter, _FIter> 8751: minmax_element(_FIter, _FIter, _Compare); 8751: 8751: template 8751: 8751: _Tp 8751: min(initializer_list<_Tp>); 8751: 8751: template 8751: 8751: _Tp 8751: min(initializer_list<_Tp>, _Compare); 8751: 8751: template 8751: 8751: _Tp 8751: max(initializer_list<_Tp>); 8751: 8751: template 8751: 8751: _Tp 8751: max(initializer_list<_Tp>, _Compare); 8751: 8751: template 8751: 8751: pair<_Tp, _Tp> 8751: minmax(initializer_list<_Tp>); 8751: 8751: template 8751: 8751: pair<_Tp, _Tp> 8751: minmax(initializer_list<_Tp>, _Compare); 8751: 8751: 8751: 8751: 8751: template 8751: bool 8751: next_permutation(_BIter, _BIter); 8751: 8751: template 8751: bool 8751: next_permutation(_BIter, _BIter, _Compare); 8751: 8751: 8751: template 8751: bool 8751: none_of(_IIter, _IIter, _Predicate); 8751: 8751: 8751: 8751: 8751: 8751: template 8751: _RAIter 8751: partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter); 8751: 8751: template 8751: _RAIter 8751: partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter, _Compare); 8751: 8751: 8751: 8751: 8751: template 8751: pair<_OIter1, _OIter2> 8751: partition_copy(_IIter, _IIter, _OIter1, _OIter2, _Predicate); 8751: 8751: template 8751: _FIter 8751: partition_point(_FIter, _FIter, _Predicate); 8751: 8751: 8751: template 8751: void 8751: pop_heap(_RAIter, _RAIter); 8751: 8751: template 8751: void 8751: pop_heap(_RAIter, _RAIter, _Compare); 8751: 8751: template 8751: bool 8751: prev_permutation(_BIter, _BIter); 8751: 8751: template 8751: bool 8751: prev_permutation(_BIter, _BIter, _Compare); 8751: 8751: template 8751: void 8751: push_heap(_RAIter, _RAIter); 8751: 8751: template 8751: void 8751: push_heap(_RAIter, _RAIter, _Compare); 8751: 8751: 8751: 8751: template 8751: _FIter 8751: remove(_FIter, _FIter, const _Tp&); 8751: 8751: template 8751: _FIter 8751: remove_if(_FIter, _FIter, _Predicate); 8751: 8751: template 8751: _OIter 8751: remove_copy(_IIter, _IIter, _OIter, const _Tp&); 8751: 8751: template 8751: _OIter 8751: remove_copy_if(_IIter, _IIter, _OIter, _Predicate); 8751: 8751: 8751: 8751: template 8751: _OIter 8751: replace_copy(_IIter, _IIter, _OIter, const _Tp&, const _Tp&); 8751: 8751: template 8751: _OIter 8751: replace_copy_if(_Iter, _Iter, _OIter, _Predicate, const _Tp&); 8751: 8751: 8751: 8751: template 8751: void 8751: reverse(_BIter, _BIter); 8751: 8751: template 8751: _OIter 8751: reverse_copy(_BIter, _BIter, _OIter); 8751: 8751: inline namespace _V2 8751: { 8751: template 8751: _FIter 8751: rotate(_FIter, _FIter, _FIter); 8751: } 8751: 8751: template 8751: _OIter 8751: rotate_copy(_FIter, _FIter, _FIter, _OIter); 8751: # 565 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8751: template 8751: void 8751: shuffle(_RAIter, _RAIter, _UGenerator&&); 8751: 8751: 8751: template 8751: void 8751: sort_heap(_RAIter, _RAIter); 8751: 8751: template 8751: void 8751: sort_heap(_RAIter, _RAIter, _Compare); 8751: 8751: template 8751: _BIter 8751: stable_partition(_BIter, _BIter, _Predicate); 8751: # 594 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8751: template 8751: _FIter2 8751: swap_ranges(_FIter1, _FIter1, _FIter2); 8751: 8751: 8751: 8751: template 8751: _FIter 8751: unique(_FIter, _FIter); 8751: 8751: template 8751: _FIter 8751: unique(_FIter, _FIter, _BinaryPredicate); 8751: 8751: 8751: 8751: template 8751: _FIter 8751: upper_bound(_FIter, _FIter, const _Tp&); 8751: 8751: template 8751: _FIter 8751: upper_bound(_FIter, _FIter, const _Tp&, _Compare); 8751: 8751: 8751: 8751: template 8751: _FIter 8751: adjacent_find(_FIter, _FIter); 8751: 8751: template 8751: _FIter 8751: adjacent_find(_FIter, _FIter, _BinaryPredicate); 8751: 8751: template 8751: typename iterator_traits<_IIter>::difference_type 8751: count(_IIter, _IIter, const _Tp&); 8751: 8751: template 8751: typename iterator_traits<_IIter>::difference_type 8751: count_if(_IIter, _IIter, _Predicate); 8751: 8751: template 8751: bool 8751: equal(_IIter1, _IIter1, _IIter2); 8751: 8751: template 8751: bool 8751: equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate); 8751: 8751: template 8751: _IIter 8751: find(_IIter, _IIter, const _Tp&); 8751: 8751: template 8751: _FIter1 8751: find_first_of(_FIter1, _FIter1, _FIter2, _FIter2); 8751: 8751: template 8751: _FIter1 8751: find_first_of(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 8751: 8751: template 8751: _IIter 8751: find_if(_IIter, _IIter, _Predicate); 8751: 8751: template 8751: _Funct 8751: for_each(_IIter, _IIter, _Funct); 8751: 8751: template 8751: void 8751: generate(_FIter, _FIter, _Generator); 8751: 8751: template 8751: _OIter 8751: generate_n(_OIter, _Size, _Generator); 8751: 8751: template 8751: bool 8751: lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2); 8751: 8751: template 8751: bool 8751: lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); 8751: 8751: template 8751: 8751: _FIter 8751: max_element(_FIter, _FIter); 8751: 8751: template 8751: 8751: _FIter 8751: max_element(_FIter, _FIter, _Compare); 8751: 8751: template 8751: _OIter 8751: merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8751: 8751: template 8751: _OIter 8751: merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8751: 8751: template 8751: 8751: _FIter 8751: min_element(_FIter, _FIter); 8751: 8751: template 8751: 8751: _FIter 8751: min_element(_FIter, _FIter, _Compare); 8751: 8751: template 8751: pair<_IIter1, _IIter2> 8751: mismatch(_IIter1, _IIter1, _IIter2); 8751: 8751: template 8751: pair<_IIter1, _IIter2> 8751: mismatch(_IIter1, _IIter1, _IIter2, _BinaryPredicate); 8751: 8751: template 8751: void 8751: nth_element(_RAIter, _RAIter, _RAIter); 8751: 8751: template 8751: void 8751: nth_element(_RAIter, _RAIter, _RAIter, _Compare); 8751: 8751: template 8751: void 8751: partial_sort(_RAIter, _RAIter, _RAIter); 8751: 8751: template 8751: void 8751: partial_sort(_RAIter, _RAIter, _RAIter, _Compare); 8751: 8751: template 8751: _BIter 8751: partition(_BIter, _BIter, _Predicate); 8751: 8751: template 8751: void 8751: random_shuffle(_RAIter, _RAIter); 8751: 8751: template 8751: void 8751: random_shuffle(_RAIter, _RAIter, 8751: 8751: _Generator&&); 8751: 8751: 8751: 8751: 8751: template 8751: void 8751: replace(_FIter, _FIter, const _Tp&, const _Tp&); 8751: 8751: template 8751: void 8751: replace_if(_FIter, _FIter, _Predicate, const _Tp&); 8751: 8751: template 8751: _FIter1 8751: search(_FIter1, _FIter1, _FIter2, _FIter2); 8751: 8751: template 8751: _FIter1 8751: search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 8751: 8751: template 8751: _FIter 8751: search_n(_FIter, _FIter, _Size, const _Tp&); 8751: 8751: template 8751: _FIter 8751: search_n(_FIter, _FIter, _Size, const _Tp&, _BinaryPredicate); 8751: 8751: template 8751: _OIter 8751: set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8751: 8751: template 8751: _OIter 8751: set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8751: 8751: template 8751: _OIter 8751: set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8751: 8751: template 8751: _OIter 8751: set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8751: 8751: template 8751: _OIter 8751: set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8751: 8751: template 8751: _OIter 8751: set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, 8751: _OIter, _Compare); 8751: 8751: template 8751: _OIter 8751: set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8751: 8751: template 8751: _OIter 8751: set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8751: 8751: template 8751: void 8751: sort(_RAIter, _RAIter); 8751: 8751: template 8751: void 8751: sort(_RAIter, _RAIter, _Compare); 8751: 8751: template 8751: void 8751: stable_sort(_RAIter, _RAIter); 8751: 8751: template 8751: void 8751: stable_sort(_RAIter, _RAIter, _Compare); 8751: 8751: template 8751: _OIter 8751: transform(_IIter, _IIter, _OIter, _UnaryOperation); 8751: 8751: template 8751: _OIter 8751: transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation); 8751: 8751: template 8751: _OIter 8751: unique_copy(_IIter, _IIter, _OIter); 8751: 8751: template 8751: _OIter 8751: unique_copy(_IIter, _IIter, _OIter, _BinaryPredicate); 8751: 8751: 8751: 8751: } 8751: # 61 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8751: # 1 "/usr/include/c++/8/bits/stl_heap.h" 1 3 8751: # 62 "/usr/include/c++/8/bits/stl_heap.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: _Distance 8751: __is_heap_until(_RandomAccessIterator __first, _Distance __n, 8751: _Compare& __comp) 8751: { 8751: _Distance __parent = 0; 8751: for (_Distance __child = 1; __child < __n; ++__child) 8751: { 8751: if (__comp(__first + __parent, __first + __child)) 8751: return __child; 8751: if ((__child & 1) == 0) 8751: ++__parent; 8751: } 8751: return __n; 8751: } 8751: 8751: 8751: 8751: template 8751: inline bool 8751: __is_heap(_RandomAccessIterator __first, _Distance __n) 8751: { 8751: __gnu_cxx::__ops::_Iter_less_iter __comp; 8751: return std::__is_heap_until(__first, __n, __comp) == __n; 8751: } 8751: 8751: template 8751: inline bool 8751: __is_heap(_RandomAccessIterator __first, _Compare __comp, _Distance __n) 8751: { 8751: typedef __decltype(__comp) _Cmp; 8751: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8751: return std::__is_heap_until(__first, __n, __cmp) == __n; 8751: } 8751: 8751: template 8751: inline bool 8751: __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8751: { return std::__is_heap(__first, std::distance(__first, __last)); } 8751: 8751: template 8751: inline bool 8751: __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8751: _Compare __comp) 8751: { 8751: return std::__is_heap(__first, std::move(__comp), 8751: std::distance(__first, __last)); 8751: } 8751: 8751: 8751: 8751: 8751: template 8751: void 8751: __push_heap(_RandomAccessIterator __first, 8751: _Distance __holeIndex, _Distance __topIndex, _Tp __value, 8751: _Compare& __comp) 8751: { 8751: _Distance __parent = (__holeIndex - 1) / 2; 8751: while (__holeIndex > __topIndex && __comp(__first + __parent, __value)) 8751: { 8751: *(__first + __holeIndex) = std::move(*(__first + __parent)); 8751: __holeIndex = __parent; 8751: __parent = (__holeIndex - 1) / 2; 8751: } 8751: *(__first + __holeIndex) = std::move(__value); 8751: } 8751: # 152 "/usr/include/c++/8/bits/stl_heap.h" 3 8751: template 8751: inline void 8751: push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8751: { 8751: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8751: _ValueType; 8751: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8751: _DistanceType; 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: 8751: __gnu_cxx::__ops::_Iter_less_val __comp; 8751: _ValueType __value = std::move(*(__last - 1)); 8751: std::__push_heap(__first, _DistanceType((__last - __first) - 1), 8751: _DistanceType(0), std::move(__value), __comp); 8751: } 8751: # 187 "/usr/include/c++/8/bits/stl_heap.h" 3 8751: template 8751: inline void 8751: push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8751: _Compare __comp) 8751: { 8751: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8751: _ValueType; 8751: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8751: _DistanceType; 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: 8751: __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) 8751: __cmp(std::move(__comp)); 8751: _ValueType __value = std::move(*(__last - 1)); 8751: std::__push_heap(__first, _DistanceType((__last - __first) - 1), 8751: _DistanceType(0), std::move(__value), __cmp); 8751: } 8751: 8751: template 8751: void 8751: __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, 8751: _Distance __len, _Tp __value, _Compare __comp) 8751: { 8751: const _Distance __topIndex = __holeIndex; 8751: _Distance __secondChild = __holeIndex; 8751: while (__secondChild < (__len - 1) / 2) 8751: { 8751: __secondChild = 2 * (__secondChild + 1); 8751: if (__comp(__first + __secondChild, 8751: __first + (__secondChild - 1))) 8751: __secondChild--; 8751: *(__first + __holeIndex) = std::move(*(__first + __secondChild)); 8751: __holeIndex = __secondChild; 8751: } 8751: if ((__len & 1) == 0 && __secondChild == (__len - 2) / 2) 8751: { 8751: __secondChild = 2 * (__secondChild + 1); 8751: *(__first + __holeIndex) = std::move(*(__first + (__secondChild - 1))) 8751: ; 8751: __holeIndex = __secondChild - 1; 8751: } 8751: __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) 8751: __cmp(std::move(__comp)); 8751: std::__push_heap(__first, __holeIndex, __topIndex, 8751: std::move(__value), __cmp); 8751: } 8751: 8751: template 8751: inline void 8751: __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8751: _RandomAccessIterator __result, _Compare& __comp) 8751: { 8751: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8751: _ValueType; 8751: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8751: _DistanceType; 8751: 8751: _ValueType __value = std::move(*__result); 8751: *__result = std::move(*__first); 8751: std::__adjust_heap(__first, _DistanceType(0), 8751: _DistanceType(__last - __first), 8751: std::move(__value), __comp); 8751: } 8751: # 269 "/usr/include/c++/8/bits/stl_heap.h" 3 8751: template 8751: inline void 8751: pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: ; 8751: 8751: if (__last - __first > 1) 8751: { 8751: --__last; 8751: __gnu_cxx::__ops::_Iter_less_iter __comp; 8751: std::__pop_heap(__first, __last, __last, __comp); 8751: } 8751: } 8751: # 302 "/usr/include/c++/8/bits/stl_heap.h" 3 8751: template 8751: inline void 8751: pop_heap(_RandomAccessIterator __first, 8751: _RandomAccessIterator __last, _Compare __comp) 8751: { 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: ; 8751: 8751: if (__last - __first > 1) 8751: { 8751: typedef __decltype(__comp) _Cmp; 8751: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8751: --__last; 8751: std::__pop_heap(__first, __last, __last, __cmp); 8751: } 8751: } 8751: 8751: template 8751: void 8751: __make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8751: _Compare& __comp) 8751: { 8751: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8751: _ValueType; 8751: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8751: _DistanceType; 8751: 8751: if (__last - __first < 2) 8751: return; 8751: 8751: const _DistanceType __len = __last - __first; 8751: _DistanceType __parent = (__len - 2) / 2; 8751: while (true) 8751: { 8751: _ValueType __value = std::move(*(__first + __parent)); 8751: std::__adjust_heap(__first, __parent, __len, std::move(__value), 8751: __comp); 8751: if (__parent == 0) 8751: return; 8751: __parent--; 8751: } 8751: } 8751: # 358 "/usr/include/c++/8/bits/stl_heap.h" 3 8751: template 8751: inline void 8751: make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: __gnu_cxx::__ops::_Iter_less_iter __comp; 8751: std::__make_heap(__first, __last, __comp); 8751: } 8751: # 384 "/usr/include/c++/8/bits/stl_heap.h" 3 8751: template 8751: inline void 8751: make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8751: _Compare __comp) 8751: { 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: typedef __decltype(__comp) _Cmp; 8751: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8751: std::__make_heap(__first, __last, __cmp); 8751: } 8751: 8751: template 8751: void 8751: __sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8751: _Compare& __comp) 8751: { 8751: while (__last - __first > 1) 8751: { 8751: --__last; 8751: std::__pop_heap(__first, __last, __last, __comp); 8751: } 8751: } 8751: # 420 "/usr/include/c++/8/bits/stl_heap.h" 3 8751: template 8751: inline void 8751: sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: 8751: __gnu_cxx::__ops::_Iter_less_iter __comp; 8751: std::__sort_heap(__first, __last, __comp); 8751: } 8751: # 447 "/usr/include/c++/8/bits/stl_heap.h" 3 8751: template 8751: inline void 8751: sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8751: _Compare __comp) 8751: { 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: 8751: typedef __decltype(__comp) _Cmp; 8751: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8751: std::__sort_heap(__first, __last, __cmp); 8751: } 8751: # 475 "/usr/include/c++/8/bits/stl_heap.h" 3 8751: template 8751: inline _RandomAccessIterator 8751: is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: __gnu_cxx::__ops::_Iter_less_iter __comp; 8751: return __first + 8751: std::__is_heap_until(__first, std::distance(__first, __last), __comp); 8751: } 8751: # 503 "/usr/include/c++/8/bits/stl_heap.h" 3 8751: template 8751: inline _RandomAccessIterator 8751: is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last, 8751: _Compare __comp) 8751: { 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: typedef __decltype(__comp) _Cmp; 8751: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8751: return __first 8751: + std::__is_heap_until(__first, std::distance(__first, __last), __cmp); 8751: } 8751: # 527 "/usr/include/c++/8/bits/stl_heap.h" 3 8751: template 8751: inline bool 8751: is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8751: { return std::is_heap_until(__first, __last) == __last; } 8751: # 540 "/usr/include/c++/8/bits/stl_heap.h" 3 8751: template 8751: inline bool 8751: is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8751: _Compare __comp) 8751: { 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: const auto __dist = std::distance(__first, __last); 8751: typedef __decltype(__comp) _Cmp; 8751: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8751: return std::__is_heap_until(__first, __dist, __cmp) == __dist; 8751: } 8751: 8751: 8751: 8751: } 8751: # 62 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8751: # 1 "/usr/include/c++/8/bits/stl_tempbuf.h" 1 3 8751: # 60 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8751: # 1 "/usr/include/c++/8/bits/stl_construct.h" 1 3 8751: # 59 "/usr/include/c++/8/bits/stl_construct.h" 3 8751: # 1 "/usr/include/c++/8/new" 1 3 8751: # 37 "/usr/include/c++/8/new" 3 8751: 8751: # 38 "/usr/include/c++/8/new" 3 8751: 8751: 8751: # 1 "/usr/include/c++/8/exception" 1 3 8751: # 33 "/usr/include/c++/8/exception" 3 8751: 8751: # 34 "/usr/include/c++/8/exception" 3 8751: 8751: #pragma GCC visibility push(default) 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/exception.h" 1 3 8751: # 34 "/usr/include/c++/8/bits/exception.h" 3 8751: 8751: # 35 "/usr/include/c++/8/bits/exception.h" 3 8751: 8751: #pragma GCC visibility push(default) 8751: 8751: 8751: 8751: extern "C++" { 8751: 8751: namespace std 8751: { 8751: # 60 "/usr/include/c++/8/bits/exception.h" 3 8751: class exception 8751: { 8751: public: 8751: exception() noexcept { } 8751: virtual ~exception() noexcept; 8751: 8751: 8751: 8751: virtual const char* 8751: what() const noexcept; 8751: }; 8751: 8751: } 8751: 8751: } 8751: 8751: #pragma GCC visibility pop 8751: # 39 "/usr/include/c++/8/exception" 2 3 8751: 8751: extern "C++" { 8751: 8751: namespace std 8751: { 8751: 8751: 8751: class bad_exception : public exception 8751: { 8751: public: 8751: bad_exception() noexcept { } 8751: 8751: 8751: 8751: virtual ~bad_exception() noexcept; 8751: 8751: 8751: virtual const char* 8751: what() const noexcept; 8751: }; 8751: 8751: 8751: typedef void (*terminate_handler) (); 8751: 8751: 8751: typedef void (*unexpected_handler) (); 8751: 8751: 8751: terminate_handler set_terminate(terminate_handler) noexcept; 8751: 8751: 8751: 8751: terminate_handler get_terminate() noexcept; 8751: 8751: 8751: 8751: 8751: void terminate() noexcept __attribute__ ((__noreturn__)); 8751: 8751: 8751: unexpected_handler set_unexpected(unexpected_handler) noexcept; 8751: 8751: 8751: 8751: unexpected_handler get_unexpected() noexcept; 8751: 8751: 8751: 8751: 8751: void unexpected() __attribute__ ((__noreturn__)); 8751: # 101 "/usr/include/c++/8/exception" 3 8751: 8751: bool uncaught_exception() noexcept __attribute__ ((__pure__)); 8751: 8751: 8751: 8751: 8751: int uncaught_exceptions() noexcept __attribute__ ((__pure__)); 8751: 8751: 8751: 8751: } 8751: 8751: namespace __gnu_cxx 8751: { 8751: 8751: # 133 "/usr/include/c++/8/exception" 3 8751: void __verbose_terminate_handler(); 8751: 8751: 8751: } 8751: 8751: } 8751: 8751: #pragma GCC visibility pop 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/exception_ptr.h" 1 3 8751: # 34 "/usr/include/c++/8/bits/exception_ptr.h" 3 8751: #pragma GCC visibility push(default) 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 1 3 8751: # 34 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 3 8751: 8751: # 35 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 3 8751: 8751: #pragma GCC visibility push(default) 8751: 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8751: # 39 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 2 3 8751: # 50 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 3 8751: namespace std 8751: { 8751: class type_info; 8751: } 8751: 8751: namespace __cxxabiv1 8751: { 8751: struct __cxa_refcounted_exception; 8751: 8751: extern "C" 8751: { 8751: 8751: void* 8751: __cxa_allocate_exception(size_t) noexcept; 8751: 8751: 8751: __cxa_refcounted_exception* 8751: __cxa_init_primary_exception(void *object, std::type_info *tinfo, 8751: void ( *dest) (void *)) noexcept; 8751: 8751: } 8751: } 8751: 8751: 8751: 8751: #pragma GCC visibility pop 8751: # 39 "/usr/include/c++/8/bits/exception_ptr.h" 2 3 8751: # 1 "/usr/include/c++/8/typeinfo" 1 3 8751: # 32 "/usr/include/c++/8/typeinfo" 3 8751: 8751: # 33 "/usr/include/c++/8/typeinfo" 3 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/hash_bytes.h" 1 3 8751: # 33 "/usr/include/c++/8/bits/hash_bytes.h" 3 8751: 8751: # 34 "/usr/include/c++/8/bits/hash_bytes.h" 3 8751: 8751: 8751: 8751: namespace std 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: size_t 8751: _Hash_bytes(const void* __ptr, size_t __len, size_t __seed); 8751: 8751: 8751: 8751: 8751: 8751: size_t 8751: _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed); 8751: 8751: 8751: } 8751: # 37 "/usr/include/c++/8/typeinfo" 2 3 8751: 8751: 8751: #pragma GCC visibility push(default) 8751: 8751: extern "C++" { 8751: 8751: namespace __cxxabiv1 8751: { 8751: class __class_type_info; 8751: } 8751: # 80 "/usr/include/c++/8/typeinfo" 3 8751: namespace std 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: class type_info 8751: { 8751: public: 8751: 8751: 8751: 8751: 8751: virtual ~type_info(); 8751: 8751: 8751: 8751: const char* name() const noexcept 8751: { return __name[0] == '*' ? __name + 1 : __name; } 8751: 8751: 8751: 8751: 8751: 8751: bool before(const type_info& __arg) const noexcept; 8751: bool operator==(const type_info& __arg) const noexcept; 8751: # 136 "/usr/include/c++/8/typeinfo" 3 8751: bool operator!=(const type_info& __arg) const noexcept 8751: { return !operator==(__arg); } 8751: 8751: 8751: size_t hash_code() const noexcept 8751: { 8751: 8751: return _Hash_bytes(name(), __builtin_strlen(name()), 8751: static_cast(0xc70f6907UL)); 8751: 8751: 8751: 8751: } 8751: 8751: 8751: 8751: virtual bool __is_pointer_p() const; 8751: 8751: 8751: virtual bool __is_function_p() const; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj, 8751: unsigned __outer) const; 8751: 8751: 8751: virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target, 8751: void **__obj_ptr) const; 8751: 8751: protected: 8751: const char *__name; 8751: 8751: explicit type_info(const char *__n): __name(__n) { } 8751: 8751: private: 8751: 8751: type_info& operator=(const type_info&); 8751: type_info(const type_info&); 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: class bad_cast : public exception 8751: { 8751: public: 8751: bad_cast() noexcept { } 8751: 8751: 8751: 8751: virtual ~bad_cast() noexcept; 8751: 8751: 8751: virtual const char* what() const noexcept; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: class bad_typeid : public exception 8751: { 8751: public: 8751: bad_typeid () noexcept { } 8751: 8751: 8751: 8751: virtual ~bad_typeid() noexcept; 8751: 8751: 8751: virtual const char* what() const noexcept; 8751: }; 8751: } 8751: 8751: } 8751: 8751: #pragma GCC visibility pop 8751: # 40 "/usr/include/c++/8/bits/exception_ptr.h" 2 3 8751: # 1 "/usr/include/c++/8/new" 1 3 8751: # 41 "/usr/include/c++/8/bits/exception_ptr.h" 2 3 8751: 8751: extern "C++" { 8751: 8751: namespace std 8751: { 8751: class type_info; 8751: 8751: 8751: 8751: 8751: 8751: namespace __exception_ptr 8751: { 8751: class exception_ptr; 8751: } 8751: 8751: using __exception_ptr::exception_ptr; 8751: 8751: 8751: 8751: 8751: 8751: exception_ptr current_exception() noexcept; 8751: 8751: template 8751: exception_ptr make_exception_ptr(_Ex) noexcept; 8751: 8751: 8751: void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__)); 8751: 8751: namespace __exception_ptr 8751: { 8751: using std::rethrow_exception; 8751: 8751: 8751: 8751: 8751: 8751: class exception_ptr 8751: { 8751: void* _M_exception_object; 8751: 8751: explicit exception_ptr(void* __e) noexcept; 8751: 8751: void _M_addref() noexcept; 8751: void _M_release() noexcept; 8751: 8751: void *_M_get() const noexcept __attribute__ ((__pure__)); 8751: 8751: friend exception_ptr std::current_exception() noexcept; 8751: friend void std::rethrow_exception(exception_ptr); 8751: template 8751: friend exception_ptr std::make_exception_ptr(_Ex) noexcept; 8751: 8751: public: 8751: exception_ptr() noexcept; 8751: 8751: exception_ptr(const exception_ptr&) noexcept; 8751: 8751: 8751: exception_ptr(nullptr_t) noexcept 8751: : _M_exception_object(0) 8751: { } 8751: 8751: exception_ptr(exception_ptr&& __o) noexcept 8751: : _M_exception_object(__o._M_exception_object) 8751: { __o._M_exception_object = 0; } 8751: # 117 "/usr/include/c++/8/bits/exception_ptr.h" 3 8751: exception_ptr& 8751: operator=(const exception_ptr&) noexcept; 8751: 8751: 8751: exception_ptr& 8751: operator=(exception_ptr&& __o) noexcept 8751: { 8751: exception_ptr(static_cast(__o)).swap(*this); 8751: return *this; 8751: } 8751: 8751: 8751: ~exception_ptr() noexcept; 8751: 8751: void 8751: swap(exception_ptr&) noexcept; 8751: # 144 "/usr/include/c++/8/bits/exception_ptr.h" 3 8751: explicit operator bool() const 8751: { return _M_exception_object; } 8751: 8751: 8751: friend bool 8751: operator==(const exception_ptr&, const exception_ptr&) 8751: noexcept __attribute__ ((__pure__)); 8751: 8751: const class std::type_info* 8751: __cxa_exception_type() const noexcept 8751: __attribute__ ((__pure__)); 8751: }; 8751: 8751: bool 8751: operator==(const exception_ptr&, const exception_ptr&) 8751: noexcept __attribute__ ((__pure__)); 8751: 8751: bool 8751: operator!=(const exception_ptr&, const exception_ptr&) 8751: noexcept __attribute__ ((__pure__)); 8751: 8751: inline void 8751: swap(exception_ptr& __lhs, exception_ptr& __rhs) 8751: { __lhs.swap(__rhs); } 8751: 8751: template 8751: inline void 8751: __dest_thunk(void* __x) 8751: { static_cast<_Ex*>(__x)->~_Ex(); } 8751: 8751: } 8751: 8751: 8751: template 8751: exception_ptr 8751: make_exception_ptr(_Ex __ex) noexcept 8751: { 8751: 8751: try 8751: { 8751: 8751: void *__e = __cxxabiv1::__cxa_allocate_exception(sizeof(_Ex)); 8751: (void)__cxxabiv1::__cxa_init_primary_exception( 8751: __e, const_cast(&typeid(__ex)), 8751: __exception_ptr::__dest_thunk<_Ex>); 8751: ::new (__e) _Ex(__ex); 8751: return exception_ptr(__e); 8751: 8751: 8751: 8751: } 8751: catch(...) 8751: { 8751: return current_exception(); 8751: } 8751: 8751: 8751: 8751: } 8751: 8751: 8751: } 8751: 8751: } 8751: 8751: #pragma GCC visibility pop 8751: # 144 "/usr/include/c++/8/exception" 2 3 8751: # 1 "/usr/include/c++/8/bits/nested_exception.h" 1 3 8751: # 33 "/usr/include/c++/8/bits/nested_exception.h" 3 8751: #pragma GCC visibility push(default) 8751: # 42 "/usr/include/c++/8/bits/nested_exception.h" 3 8751: extern "C++" { 8751: 8751: namespace std 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: class nested_exception 8751: { 8751: exception_ptr _M_ptr; 8751: 8751: public: 8751: nested_exception() noexcept : _M_ptr(current_exception()) { } 8751: 8751: nested_exception(const nested_exception&) noexcept = default; 8751: 8751: nested_exception& operator=(const nested_exception&) noexcept = default; 8751: 8751: virtual ~nested_exception() noexcept; 8751: 8751: [[noreturn]] 8751: void 8751: rethrow_nested() const 8751: { 8751: if (_M_ptr) 8751: rethrow_exception(_M_ptr); 8751: std::terminate(); 8751: } 8751: 8751: exception_ptr 8751: nested_ptr() const noexcept 8751: { return _M_ptr; } 8751: }; 8751: 8751: template 8751: struct _Nested_exception : public _Except, public nested_exception 8751: { 8751: explicit _Nested_exception(const _Except& __ex) 8751: : _Except(__ex) 8751: { } 8751: 8751: explicit _Nested_exception(_Except&& __ex) 8751: : _Except(static_cast<_Except&&>(__ex)) 8751: { } 8751: }; 8751: 8751: 8751: 8751: 8751: template 8751: [[noreturn]] 8751: inline void 8751: __throw_with_nested_impl(_Tp&& __t, true_type) 8751: { 8751: using _Up = typename remove_reference<_Tp>::type; 8751: throw _Nested_exception<_Up>{std::forward<_Tp>(__t)}; 8751: } 8751: 8751: template 8751: [[noreturn]] 8751: inline void 8751: __throw_with_nested_impl(_Tp&& __t, false_type) 8751: { throw std::forward<_Tp>(__t); } 8751: 8751: 8751: 8751: template 8751: [[noreturn]] 8751: inline void 8751: throw_with_nested(_Tp&& __t) 8751: { 8751: using _Up = typename decay<_Tp>::type; 8751: using _CopyConstructible 8751: = __and_, is_move_constructible<_Up>>; 8751: static_assert(_CopyConstructible::value, 8751: "throw_with_nested argument must be CopyConstructible"); 8751: using __nest = __and_, __bool_constant, 8751: __not_>>; 8751: std::__throw_with_nested_impl(std::forward<_Tp>(__t), __nest{}); 8751: } 8751: 8751: 8751: template 8751: using __rethrow_if_nested_cond = typename enable_if< 8751: __and_, 8751: __or_<__not_>, 8751: is_convertible<_Tp*, nested_exception*>>>::value 8751: >::type; 8751: 8751: 8751: template 8751: inline __rethrow_if_nested_cond<_Ex> 8751: __rethrow_if_nested_impl(const _Ex* __ptr) 8751: { 8751: if (auto __ne_ptr = dynamic_cast(__ptr)) 8751: __ne_ptr->rethrow_nested(); 8751: } 8751: 8751: 8751: inline void 8751: __rethrow_if_nested_impl(const void*) 8751: { } 8751: 8751: 8751: template 8751: inline void 8751: rethrow_if_nested(const _Ex& __ex) 8751: { std::__rethrow_if_nested_impl(std::__addressof(__ex)); } 8751: 8751: 8751: } 8751: 8751: } 8751: 8751: 8751: 8751: #pragma GCC visibility pop 8751: # 145 "/usr/include/c++/8/exception" 2 3 8751: # 41 "/usr/include/c++/8/new" 2 3 8751: 8751: #pragma GCC visibility push(default) 8751: 8751: extern "C++" { 8751: 8751: namespace std 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: class bad_alloc : public exception 8751: { 8751: public: 8751: bad_alloc() throw() { } 8751: 8751: 8751: 8751: virtual ~bad_alloc() throw(); 8751: 8751: 8751: virtual const char* what() const throw(); 8751: }; 8751: 8751: 8751: class bad_array_new_length : public bad_alloc 8751: { 8751: public: 8751: bad_array_new_length() throw() { } 8751: 8751: 8751: 8751: virtual ~bad_array_new_length() throw(); 8751: 8751: 8751: virtual const char* what() const throw(); 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: struct nothrow_t 8751: { 8751: 8751: explicit nothrow_t() = default; 8751: 8751: }; 8751: 8751: extern const nothrow_t nothrow; 8751: 8751: 8751: 8751: typedef void (*new_handler)(); 8751: 8751: 8751: 8751: new_handler set_new_handler(new_handler) throw(); 8751: 8751: 8751: 8751: new_handler get_new_handler() noexcept; 8751: 8751: } 8751: # 120 "/usr/include/c++/8/new" 3 8751: void* operator new(std::size_t) 8751: __attribute__((__externally_visible__)); 8751: void* operator new[](std::size_t) 8751: __attribute__((__externally_visible__)); 8751: void operator delete(void*) noexcept 8751: __attribute__((__externally_visible__)); 8751: void operator delete[](void*) noexcept 8751: __attribute__((__externally_visible__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: void* operator new(std::size_t, const std::nothrow_t&) noexcept 8751: __attribute__((__externally_visible__)); 8751: void* operator new[](std::size_t, const std::nothrow_t&) noexcept 8751: __attribute__((__externally_visible__)); 8751: void operator delete(void*, const std::nothrow_t&) noexcept 8751: __attribute__((__externally_visible__)); 8751: void operator delete[](void*, const std::nothrow_t&) noexcept 8751: __attribute__((__externally_visible__)); 8751: # 168 "/usr/include/c++/8/new" 3 8751: inline void* operator new(std::size_t, void* __p) noexcept 8751: { return __p; } 8751: inline void* operator new[](std::size_t, void* __p) noexcept 8751: { return __p; } 8751: 8751: 8751: inline void operator delete (void*, void*) noexcept { } 8751: inline void operator delete[](void*, void*) noexcept { } 8751: 8751: } 8751: # 216 "/usr/include/c++/8/new" 3 8751: #pragma GCC visibility pop 8751: # 60 "/usr/include/c++/8/bits/stl_construct.h" 2 3 8751: 8751: # 1 "/usr/include/c++/8/ext/alloc_traits.h" 1 3 8751: # 32 "/usr/include/c++/8/ext/alloc_traits.h" 3 8751: 8751: # 33 "/usr/include/c++/8/ext/alloc_traits.h" 3 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/alloc_traits.h" 1 3 8751: # 35 "/usr/include/c++/8/bits/alloc_traits.h" 3 8751: # 1 "/usr/include/c++/8/bits/memoryfwd.h" 1 3 8751: # 46 "/usr/include/c++/8/bits/memoryfwd.h" 3 8751: 8751: # 47 "/usr/include/c++/8/bits/memoryfwd.h" 3 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 63 "/usr/include/c++/8/bits/memoryfwd.h" 3 8751: template 8751: class allocator; 8751: 8751: template<> 8751: class allocator; 8751: 8751: 8751: template 8751: struct uses_allocator; 8751: 8751: 8751: 8751: 8751: } 8751: # 36 "/usr/include/c++/8/bits/alloc_traits.h" 2 3 8751: 8751: 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: struct __allocator_traits_base 8751: { 8751: template 8751: struct __rebind : __replace_first_arg<_Tp, _Up> { }; 8751: 8751: template 8751: struct __rebind<_Tp, _Up, 8751: __void_t::other>> 8751: { using type = typename _Tp::template rebind<_Up>::other; }; 8751: 8751: protected: 8751: template 8751: using __pointer = typename _Tp::pointer; 8751: template 8751: using __c_pointer = typename _Tp::const_pointer; 8751: template 8751: using __v_pointer = typename _Tp::void_pointer; 8751: template 8751: using __cv_pointer = typename _Tp::const_void_pointer; 8751: template 8751: using __pocca = typename _Tp::propagate_on_container_copy_assignment; 8751: template 8751: using __pocma = typename _Tp::propagate_on_container_move_assignment; 8751: template 8751: using __pocs = typename _Tp::propagate_on_container_swap; 8751: template 8751: using __equal = typename _Tp::is_always_equal; 8751: }; 8751: 8751: template 8751: using __alloc_rebind 8751: = typename __allocator_traits_base::template __rebind<_Alloc, _Up>::type; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct allocator_traits : __allocator_traits_base 8751: { 8751: 8751: typedef _Alloc allocator_type; 8751: 8751: typedef typename _Alloc::value_type value_type; 8751: 8751: 8751: 8751: 8751: 8751: 8751: using pointer = __detected_or_t; 8751: 8751: private: 8751: 8751: template class _Func, typename _Tp, typename = void> 8751: struct _Ptr 8751: { 8751: using type = typename pointer_traits::template rebind<_Tp>; 8751: }; 8751: 8751: template class _Func, typename _Tp> 8751: struct _Ptr<_Func, _Tp, __void_t<_Func<_Alloc>>> 8751: { 8751: using type = _Func<_Alloc>; 8751: }; 8751: 8751: 8751: template 8751: struct _Diff 8751: { using type = typename pointer_traits<_PtrT>::difference_type; }; 8751: 8751: template 8751: struct _Diff<_A2, _PtrT, __void_t> 8751: { using type = typename _A2::difference_type; }; 8751: 8751: 8751: template 8751: struct _Size : make_unsigned<_DiffT> { }; 8751: 8751: template 8751: struct _Size<_A2, _DiffT, __void_t> 8751: { using type = typename _A2::size_type; }; 8751: 8751: public: 8751: 8751: 8751: 8751: 8751: 8751: 8751: using const_pointer = typename _Ptr<__c_pointer, const value_type>::type; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: using void_pointer = typename _Ptr<__v_pointer, void>::type; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: using const_void_pointer = typename _Ptr<__cv_pointer, const void>::type; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: using difference_type = typename _Diff<_Alloc, pointer>::type; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: using size_type = typename _Size<_Alloc, difference_type>::type; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: using propagate_on_container_copy_assignment 8751: = __detected_or_t; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: using propagate_on_container_move_assignment 8751: = __detected_or_t; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: using propagate_on_container_swap 8751: = __detected_or_t; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: using is_always_equal 8751: = __detected_or_t::type, __equal, _Alloc>; 8751: 8751: template 8751: using rebind_alloc = __alloc_rebind<_Alloc, _Tp>; 8751: template 8751: using rebind_traits = allocator_traits>; 8751: 8751: private: 8751: template 8751: static auto 8751: _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint, int) 8751: -> decltype(__a.allocate(__n, __hint)) 8751: { return __a.allocate(__n, __hint); } 8751: 8751: template 8751: static pointer 8751: _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer, ...) 8751: { return __a.allocate(__n); } 8751: 8751: template 8751: struct __construct_helper 8751: { 8751: template()->construct( 8751: std::declval<_Tp*>(), std::declval<_Args>()...))> 8751: static true_type __test(int); 8751: 8751: template 8751: static false_type __test(...); 8751: 8751: using type = decltype(__test<_Alloc>(0)); 8751: }; 8751: 8751: template 8751: using __has_construct 8751: = typename __construct_helper<_Tp, _Args...>::type; 8751: 8751: template 8751: static _Require<__has_construct<_Tp, _Args...>> 8751: _S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 8751: { __a.construct(__p, std::forward<_Args>(__args)...); } 8751: 8751: template 8751: static 8751: _Require<__and_<__not_<__has_construct<_Tp, _Args...>>, 8751: is_constructible<_Tp, _Args...>>> 8751: _S_construct(_Alloc&, _Tp* __p, _Args&&... __args) 8751: { ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); } 8751: 8751: template 8751: static auto 8751: _S_destroy(_Alloc2& __a, _Tp* __p, int) 8751: -> decltype(__a.destroy(__p)) 8751: { __a.destroy(__p); } 8751: 8751: template 8751: static void 8751: _S_destroy(_Alloc2&, _Tp* __p, ...) 8751: { __p->~_Tp(); } 8751: 8751: template 8751: static auto 8751: _S_max_size(_Alloc2& __a, int) 8751: -> decltype(__a.max_size()) 8751: { return __a.max_size(); } 8751: 8751: template 8751: static size_type 8751: _S_max_size(_Alloc2&, ...) 8751: { 8751: 8751: 8751: return __gnu_cxx::__numeric_traits::__max 8751: / sizeof(value_type); 8751: } 8751: 8751: template 8751: static auto 8751: _S_select(_Alloc2& __a, int) 8751: -> decltype(__a.select_on_container_copy_construction()) 8751: { return __a.select_on_container_copy_construction(); } 8751: 8751: template 8751: static _Alloc2 8751: _S_select(_Alloc2& __a, ...) 8751: { return __a; } 8751: 8751: public: 8751: # 299 "/usr/include/c++/8/bits/alloc_traits.h" 3 8751: static pointer 8751: allocate(_Alloc& __a, size_type __n) 8751: { return __a.allocate(__n); } 8751: # 314 "/usr/include/c++/8/bits/alloc_traits.h" 3 8751: static pointer 8751: allocate(_Alloc& __a, size_type __n, const_void_pointer __hint) 8751: { return _S_allocate(__a, __n, __hint, 0); } 8751: # 326 "/usr/include/c++/8/bits/alloc_traits.h" 3 8751: static void 8751: deallocate(_Alloc& __a, pointer __p, size_type __n) 8751: { __a.deallocate(__p, __n); } 8751: # 341 "/usr/include/c++/8/bits/alloc_traits.h" 3 8751: template 8751: static auto construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 8751: -> decltype(_S_construct(__a, __p, std::forward<_Args>(__args)...)) 8751: { _S_construct(__a, __p, std::forward<_Args>(__args)...); } 8751: # 354 "/usr/include/c++/8/bits/alloc_traits.h" 3 8751: template 8751: static void destroy(_Alloc& __a, _Tp* __p) 8751: { _S_destroy(__a, __p, 0); } 8751: # 366 "/usr/include/c++/8/bits/alloc_traits.h" 3 8751: static size_type max_size(const _Alloc& __a) noexcept 8751: { return _S_max_size(__a, 0); } 8751: # 377 "/usr/include/c++/8/bits/alloc_traits.h" 3 8751: static _Alloc 8751: select_on_container_copy_construction(const _Alloc& __rhs) 8751: { return _S_select(__rhs, 0); } 8751: }; 8751: 8751: 8751: template 8751: struct allocator_traits> 8751: { 8751: 8751: using allocator_type = allocator<_Tp>; 8751: 8751: using value_type = _Tp; 8751: 8751: 8751: using pointer = _Tp*; 8751: 8751: 8751: using const_pointer = const _Tp*; 8751: 8751: 8751: using void_pointer = void*; 8751: 8751: 8751: using const_void_pointer = const void*; 8751: 8751: 8751: using difference_type = std::ptrdiff_t; 8751: 8751: 8751: using size_type = std::size_t; 8751: 8751: 8751: using propagate_on_container_copy_assignment = false_type; 8751: 8751: 8751: using propagate_on_container_move_assignment = true_type; 8751: 8751: 8751: using propagate_on_container_swap = false_type; 8751: 8751: 8751: using is_always_equal = true_type; 8751: 8751: template 8751: using rebind_alloc = allocator<_Up>; 8751: 8751: template 8751: using rebind_traits = allocator_traits>; 8751: # 434 "/usr/include/c++/8/bits/alloc_traits.h" 3 8751: static pointer 8751: allocate(allocator_type& __a, size_type __n) 8751: { return __a.allocate(__n); } 8751: # 448 "/usr/include/c++/8/bits/alloc_traits.h" 3 8751: static pointer 8751: allocate(allocator_type& __a, size_type __n, const_void_pointer __hint) 8751: { return __a.allocate(__n, __hint); } 8751: # 460 "/usr/include/c++/8/bits/alloc_traits.h" 3 8751: static void 8751: deallocate(allocator_type& __a, pointer __p, size_type __n) 8751: { __a.deallocate(__p, __n); } 8751: # 472 "/usr/include/c++/8/bits/alloc_traits.h" 3 8751: template 8751: static void 8751: construct(allocator_type& __a, _Up* __p, _Args&&... __args) 8751: { __a.construct(__p, std::forward<_Args>(__args)...); } 8751: # 484 "/usr/include/c++/8/bits/alloc_traits.h" 3 8751: template 8751: static void 8751: destroy(allocator_type& __a, _Up* __p) 8751: { __a.destroy(__p); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: static size_type 8751: max_size(const allocator_type& __a) noexcept 8751: { return __a.max_size(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: static allocator_type 8751: select_on_container_copy_construction(const allocator_type& __rhs) 8751: { return __rhs; } 8751: }; 8751: 8751: 8751: template 8751: inline void 8751: __do_alloc_on_copy(_Alloc& __one, const _Alloc& __two, true_type) 8751: { __one = __two; } 8751: 8751: template 8751: inline void 8751: __do_alloc_on_copy(_Alloc&, const _Alloc&, false_type) 8751: { } 8751: 8751: template 8751: inline void __alloc_on_copy(_Alloc& __one, const _Alloc& __two) 8751: { 8751: typedef allocator_traits<_Alloc> __traits; 8751: typedef typename __traits::propagate_on_container_copy_assignment __pocca; 8751: __do_alloc_on_copy(__one, __two, __pocca()); 8751: } 8751: 8751: template 8751: inline _Alloc __alloc_on_copy(const _Alloc& __a) 8751: { 8751: typedef allocator_traits<_Alloc> __traits; 8751: return __traits::select_on_container_copy_construction(__a); 8751: } 8751: 8751: template 8751: inline void __do_alloc_on_move(_Alloc& __one, _Alloc& __two, true_type) 8751: { __one = std::move(__two); } 8751: 8751: template 8751: inline void __do_alloc_on_move(_Alloc&, _Alloc&, false_type) 8751: { } 8751: 8751: template 8751: inline void __alloc_on_move(_Alloc& __one, _Alloc& __two) 8751: { 8751: typedef allocator_traits<_Alloc> __traits; 8751: typedef typename __traits::propagate_on_container_move_assignment __pocma; 8751: __do_alloc_on_move(__one, __two, __pocma()); 8751: } 8751: 8751: template 8751: inline void __do_alloc_on_swap(_Alloc& __one, _Alloc& __two, true_type) 8751: { 8751: using std::swap; 8751: swap(__one, __two); 8751: } 8751: 8751: template 8751: inline void __do_alloc_on_swap(_Alloc&, _Alloc&, false_type) 8751: { } 8751: 8751: template 8751: inline void __alloc_on_swap(_Alloc& __one, _Alloc& __two) 8751: { 8751: typedef allocator_traits<_Alloc> __traits; 8751: typedef typename __traits::propagate_on_container_swap __pocs; 8751: __do_alloc_on_swap(__one, __two, __pocs()); 8751: } 8751: 8751: template 8751: class __is_copy_insertable_impl 8751: { 8751: typedef allocator_traits<_Alloc> _Traits; 8751: 8751: template(), 8751: std::declval<_Up*>(), 8751: std::declval()))> 8751: static true_type 8751: _M_select(int); 8751: 8751: template 8751: static false_type 8751: _M_select(...); 8751: 8751: public: 8751: typedef decltype(_M_select(0)) type; 8751: }; 8751: 8751: 8751: template 8751: struct __is_copy_insertable 8751: : __is_copy_insertable_impl<_Alloc>::type 8751: { }; 8751: 8751: 8751: template 8751: struct __is_copy_insertable> 8751: : is_copy_constructible<_Tp> 8751: { }; 8751: 8751: 8751: 8751: template 8751: struct __is_allocator : false_type { }; 8751: 8751: template 8751: struct __is_allocator<_Alloc, 8751: __void_t().allocate(size_t{}))>> 8751: : true_type { }; 8751: 8751: template 8751: using _RequireAllocator 8751: = typename enable_if<__is_allocator<_Alloc>::value, _Alloc>::type; 8751: 8751: 8751: 8751: } 8751: # 37 "/usr/include/c++/8/ext/alloc_traits.h" 2 3 8751: 8751: 8751: 8751: 8751: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct __alloc_traits 8751: 8751: : std::allocator_traits<_Alloc> 8751: 8751: { 8751: typedef _Alloc allocator_type; 8751: 8751: typedef std::allocator_traits<_Alloc> _Base_type; 8751: typedef typename _Base_type::value_type value_type; 8751: typedef typename _Base_type::pointer pointer; 8751: typedef typename _Base_type::const_pointer const_pointer; 8751: typedef typename _Base_type::size_type size_type; 8751: typedef typename _Base_type::difference_type difference_type; 8751: 8751: typedef value_type& reference; 8751: typedef const value_type& const_reference; 8751: using _Base_type::allocate; 8751: using _Base_type::deallocate; 8751: using _Base_type::construct; 8751: using _Base_type::destroy; 8751: using _Base_type::max_size; 8751: 8751: private: 8751: template 8751: using __is_custom_pointer 8751: = std::__and_, 8751: std::__not_>>; 8751: 8751: public: 8751: 8751: template 8751: static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type 8751: construct(_Alloc& __a, _Ptr __p, _Args&&... __args) 8751: { 8751: _Base_type::construct(__a, std::__to_address(__p), 8751: std::forward<_Args>(__args)...); 8751: } 8751: 8751: 8751: template 8751: static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type 8751: destroy(_Alloc& __a, _Ptr __p) 8751: { _Base_type::destroy(__a, std::__to_address(__p)); } 8751: 8751: static _Alloc _S_select_on_copy(const _Alloc& __a) 8751: { return _Base_type::select_on_container_copy_construction(__a); } 8751: 8751: static void _S_on_swap(_Alloc& __a, _Alloc& __b) 8751: { std::__alloc_on_swap(__a, __b); } 8751: 8751: static constexpr bool _S_propagate_on_copy_assign() 8751: { return _Base_type::propagate_on_container_copy_assignment::value; } 8751: 8751: static constexpr bool _S_propagate_on_move_assign() 8751: { return _Base_type::propagate_on_container_move_assignment::value; } 8751: 8751: static constexpr bool _S_propagate_on_swap() 8751: { return _Base_type::propagate_on_container_swap::value; } 8751: 8751: static constexpr bool _S_always_equal() 8751: { return _Base_type::is_always_equal::value; } 8751: 8751: static constexpr bool _S_nothrow_move() 8751: { return _S_propagate_on_move_assign() || _S_always_equal(); } 8751: 8751: template 8751: struct rebind 8751: { typedef typename _Base_type::template rebind_alloc<_Tp> other; }; 8751: # 158 "/usr/include/c++/8/ext/alloc_traits.h" 3 8751: }; 8751: 8751: 8751: } 8751: # 62 "/usr/include/c++/8/bits/stl_construct.h" 2 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline void 8751: _Construct(_T1* __p, _Args&&... __args) 8751: { ::new(static_cast(__p)) _T1(std::forward<_Args>(__args)...); } 8751: # 87 "/usr/include/c++/8/bits/stl_construct.h" 3 8751: template 8751: inline void 8751: _Construct_novalue(_T1* __p) 8751: { ::new(static_cast(__p)) _T1; } 8751: 8751: 8751: 8751: 8751: template 8751: inline void 8751: _Destroy(_Tp* __pointer) 8751: { __pointer->~_Tp(); } 8751: 8751: template 8751: struct _Destroy_aux 8751: { 8751: template 8751: static void 8751: __destroy(_ForwardIterator __first, _ForwardIterator __last) 8751: { 8751: for (; __first != __last; ++__first) 8751: std::_Destroy(std::__addressof(*__first)); 8751: } 8751: }; 8751: 8751: template<> 8751: struct _Destroy_aux 8751: { 8751: template 8751: static void 8751: __destroy(_ForwardIterator, _ForwardIterator) { } 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline void 8751: _Destroy(_ForwardIterator __first, _ForwardIterator __last) 8751: { 8751: typedef typename iterator_traits<_ForwardIterator>::value_type 8751: _Value_type; 8751: 8751: 8751: static_assert(is_destructible<_Value_type>::value, 8751: "value type is destructible"); 8751: 8751: std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: 8751: __destroy(__first, __last); 8751: } 8751: 8751: template 8751: struct _Destroy_n_aux 8751: { 8751: template 8751: static _ForwardIterator 8751: __destroy_n(_ForwardIterator __first, _Size __count) 8751: { 8751: for (; __count > 0; (void)++__first, --__count) 8751: std::_Destroy(std::__addressof(*__first)); 8751: return __first; 8751: } 8751: }; 8751: 8751: template<> 8751: struct _Destroy_n_aux 8751: { 8751: template 8751: static _ForwardIterator 8751: __destroy_n(_ForwardIterator __first, _Size __count) 8751: { 8751: std::advance(__first, __count); 8751: return __first; 8751: } 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline _ForwardIterator 8751: _Destroy_n(_ForwardIterator __first, _Size __count) 8751: { 8751: typedef typename iterator_traits<_ForwardIterator>::value_type 8751: _Value_type; 8751: 8751: 8751: static_assert(is_destructible<_Value_type>::value, 8751: "value type is destructible"); 8751: 8751: return std::_Destroy_n_aux<__has_trivial_destructor(_Value_type)>:: 8751: __destroy_n(__first, __count); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: void 8751: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 8751: _Allocator& __alloc) 8751: { 8751: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8751: for (; __first != __last; ++__first) 8751: __traits::destroy(__alloc, std::__addressof(*__first)); 8751: } 8751: 8751: template 8751: inline void 8751: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 8751: allocator<_Tp>&) 8751: { 8751: _Destroy(__first, __last); 8751: } 8751: # 232 "/usr/include/c++/8/bits/stl_construct.h" 3 8751: 8751: } 8751: # 61 "/usr/include/c++/8/bits/stl_tempbuf.h" 2 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 83 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8751: template 8751: pair<_Tp*, ptrdiff_t> 8751: get_temporary_buffer(ptrdiff_t __len) noexcept 8751: { 8751: const ptrdiff_t __max = 8751: __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); 8751: if (__len > __max) 8751: __len = __max; 8751: 8751: while (__len > 0) 8751: { 8751: _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp), 8751: std::nothrow)); 8751: if (__tmp != 0) 8751: return std::pair<_Tp*, ptrdiff_t>(__tmp, __len); 8751: __len /= 2; 8751: } 8751: return std::pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0); 8751: } 8751: # 110 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8751: template 8751: inline void 8751: return_temporary_buffer(_Tp* __p) 8751: { ::operator delete(__p, std::nothrow); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: class _Temporary_buffer 8751: { 8751: 8751: 8751: 8751: public: 8751: typedef _Tp value_type; 8751: typedef value_type* pointer; 8751: typedef pointer iterator; 8751: typedef ptrdiff_t size_type; 8751: 8751: protected: 8751: size_type _M_original_len; 8751: size_type _M_len; 8751: pointer _M_buffer; 8751: 8751: public: 8751: 8751: size_type 8751: size() const 8751: { return _M_len; } 8751: 8751: 8751: size_type 8751: requested_size() const 8751: { return _M_original_len; } 8751: 8751: 8751: iterator 8751: begin() 8751: { return _M_buffer; } 8751: 8751: 8751: iterator 8751: end() 8751: { return _M_buffer + _M_len; } 8751: 8751: 8751: 8751: 8751: 8751: _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last); 8751: 8751: ~_Temporary_buffer() 8751: { 8751: std::_Destroy(_M_buffer, _M_buffer + _M_len); 8751: std::return_temporary_buffer(_M_buffer); 8751: } 8751: 8751: private: 8751: 8751: _Temporary_buffer(const _Temporary_buffer&); 8751: 8751: void 8751: operator=(const _Temporary_buffer&); 8751: }; 8751: 8751: 8751: template 8751: struct __uninitialized_construct_buf_dispatch 8751: { 8751: template 8751: static void 8751: __ucr(_Pointer __first, _Pointer __last, 8751: _ForwardIterator __seed) 8751: { 8751: if(__first == __last) 8751: return; 8751: 8751: _Pointer __cur = __first; 8751: try 8751: { 8751: std::_Construct(std::__addressof(*__first), 8751: std::move(*__seed)); 8751: _Pointer __prev = __cur; 8751: ++__cur; 8751: for(; __cur != __last; ++__cur, ++__prev) 8751: std::_Construct(std::__addressof(*__cur), 8751: std::move(*__prev)); 8751: *__seed = std::move(*__prev); 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__first, __cur); 8751: throw; 8751: } 8751: } 8751: }; 8751: 8751: template<> 8751: struct __uninitialized_construct_buf_dispatch 8751: { 8751: template 8751: static void 8751: __ucr(_Pointer, _Pointer, _ForwardIterator) { } 8751: }; 8751: # 229 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8751: template 8751: inline void 8751: __uninitialized_construct_buf(_Pointer __first, _Pointer __last, 8751: _ForwardIterator __seed) 8751: { 8751: typedef typename std::iterator_traits<_Pointer>::value_type 8751: _ValueType; 8751: 8751: std::__uninitialized_construct_buf_dispatch< 8751: __has_trivial_constructor(_ValueType)>:: 8751: __ucr(__first, __last, __seed); 8751: } 8751: 8751: template 8751: _Temporary_buffer<_ForwardIterator, _Tp>:: 8751: _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) 8751: : _M_original_len(std::distance(__first, __last)), 8751: _M_len(0), _M_buffer(0) 8751: { 8751: try 8751: { 8751: std::pair __p(std::get_temporary_buffer< 8751: value_type>(_M_original_len)); 8751: _M_buffer = __p.first; 8751: _M_len = __p.second; 8751: if (_M_buffer) 8751: std::__uninitialized_construct_buf(_M_buffer, _M_buffer + _M_len, 8751: __first); 8751: } 8751: catch(...) 8751: { 8751: std::return_temporary_buffer(_M_buffer); 8751: _M_buffer = 0; 8751: _M_len = 0; 8751: throw; 8751: } 8751: } 8751: 8751: 8751: } 8751: # 63 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/uniform_int_dist.h" 1 3 8751: # 35 "/usr/include/c++/8/bits/uniform_int_dist.h" 3 8751: # 1 "/usr/include/c++/8/limits" 1 3 8751: # 40 "/usr/include/c++/8/limits" 3 8751: 8751: # 41 "/usr/include/c++/8/limits" 3 8751: # 158 "/usr/include/c++/8/limits" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: enum float_round_style 8751: { 8751: round_indeterminate = -1, 8751: round_toward_zero = 0, 8751: round_to_nearest = 1, 8751: round_toward_infinity = 2, 8751: round_toward_neg_infinity = 3 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: enum float_denorm_style 8751: { 8751: 8751: denorm_indeterminate = -1, 8751: 8751: denorm_absent = 0, 8751: 8751: denorm_present = 1 8751: }; 8751: # 202 "/usr/include/c++/8/limits" 3 8751: struct __numeric_limits_base 8751: { 8751: 8751: 8751: static constexpr bool is_specialized = false; 8751: 8751: 8751: 8751: 8751: static constexpr int digits = 0; 8751: 8751: 8751: static constexpr int digits10 = 0; 8751: 8751: 8751: 8751: 8751: static constexpr int max_digits10 = 0; 8751: 8751: 8751: 8751: static constexpr bool is_signed = false; 8751: 8751: 8751: static constexpr bool is_integer = false; 8751: 8751: 8751: 8751: 8751: static constexpr bool is_exact = false; 8751: 8751: 8751: 8751: static constexpr int radix = 0; 8751: 8751: 8751: 8751: static constexpr int min_exponent = 0; 8751: 8751: 8751: 8751: static constexpr int min_exponent10 = 0; 8751: 8751: 8751: 8751: 8751: static constexpr int max_exponent = 0; 8751: 8751: 8751: 8751: static constexpr int max_exponent10 = 0; 8751: 8751: 8751: static constexpr bool has_infinity = false; 8751: 8751: 8751: 8751: static constexpr bool has_quiet_NaN = false; 8751: 8751: 8751: 8751: static constexpr bool has_signaling_NaN = false; 8751: 8751: 8751: static constexpr float_denorm_style has_denorm = denorm_absent; 8751: 8751: 8751: 8751: static constexpr bool has_denorm_loss = false; 8751: 8751: 8751: 8751: static constexpr bool is_iec559 = false; 8751: 8751: 8751: 8751: 8751: static constexpr bool is_bounded = false; 8751: # 288 "/usr/include/c++/8/limits" 3 8751: static constexpr bool is_modulo = false; 8751: 8751: 8751: static constexpr bool traps = false; 8751: 8751: 8751: static constexpr bool tinyness_before = false; 8751: 8751: 8751: 8751: 8751: static constexpr float_round_style round_style = 8751: round_toward_zero; 8751: }; 8751: # 311 "/usr/include/c++/8/limits" 3 8751: template 8751: struct numeric_limits : public __numeric_limits_base 8751: { 8751: 8751: 8751: static constexpr _Tp 8751: min() noexcept { return _Tp(); } 8751: 8751: 8751: static constexpr _Tp 8751: max() noexcept { return _Tp(); } 8751: 8751: 8751: 8751: 8751: static constexpr _Tp 8751: lowest() noexcept { return _Tp(); } 8751: 8751: 8751: 8751: 8751: static constexpr _Tp 8751: epsilon() noexcept { return _Tp(); } 8751: 8751: 8751: static constexpr _Tp 8751: round_error() noexcept { return _Tp(); } 8751: 8751: 8751: static constexpr _Tp 8751: infinity() noexcept { return _Tp(); } 8751: 8751: 8751: 8751: static constexpr _Tp 8751: quiet_NaN() noexcept { return _Tp(); } 8751: 8751: 8751: 8751: static constexpr _Tp 8751: signaling_NaN() noexcept { return _Tp(); } 8751: 8751: 8751: 8751: 8751: static constexpr _Tp 8751: denorm_min() noexcept { return _Tp(); } 8751: }; 8751: 8751: 8751: 8751: 8751: template 8751: struct numeric_limits 8751: : public numeric_limits<_Tp> { }; 8751: 8751: template 8751: struct numeric_limits 8751: : public numeric_limits<_Tp> { }; 8751: 8751: template 8751: struct numeric_limits 8751: : public numeric_limits<_Tp> { }; 8751: # 382 "/usr/include/c++/8/limits" 3 8751: template<> 8751: struct numeric_limits 8751: { 8751: static constexpr bool is_specialized = true; 8751: 8751: static constexpr bool 8751: min() noexcept { return false; } 8751: 8751: static constexpr bool 8751: max() noexcept { return true; } 8751: 8751: 8751: static constexpr bool 8751: lowest() noexcept { return min(); } 8751: 8751: static constexpr int digits = 1; 8751: static constexpr int digits10 = 0; 8751: 8751: static constexpr int max_digits10 = 0; 8751: 8751: static constexpr bool is_signed = false; 8751: static constexpr bool is_integer = true; 8751: static constexpr bool is_exact = true; 8751: static constexpr int radix = 2; 8751: 8751: static constexpr bool 8751: epsilon() noexcept { return false; } 8751: 8751: static constexpr bool 8751: round_error() noexcept { return false; } 8751: 8751: static constexpr int min_exponent = 0; 8751: static constexpr int min_exponent10 = 0; 8751: static constexpr int max_exponent = 0; 8751: static constexpr int max_exponent10 = 0; 8751: 8751: static constexpr bool has_infinity = false; 8751: static constexpr bool has_quiet_NaN = false; 8751: static constexpr bool has_signaling_NaN = false; 8751: static constexpr float_denorm_style has_denorm 8751: = denorm_absent; 8751: static constexpr bool has_denorm_loss = false; 8751: 8751: static constexpr bool 8751: infinity() noexcept { return false; } 8751: 8751: static constexpr bool 8751: quiet_NaN() noexcept { return false; } 8751: 8751: static constexpr bool 8751: signaling_NaN() noexcept { return false; } 8751: 8751: static constexpr bool 8751: denorm_min() noexcept { return false; } 8751: 8751: static constexpr bool is_iec559 = false; 8751: static constexpr bool is_bounded = true; 8751: static constexpr bool is_modulo = false; 8751: 8751: 8751: 8751: 8751: static constexpr bool traps = true; 8751: static constexpr bool tinyness_before = false; 8751: static constexpr float_round_style round_style 8751: = round_toward_zero; 8751: }; 8751: 8751: 8751: template<> 8751: struct numeric_limits 8751: { 8751: static constexpr bool is_specialized = true; 8751: 8751: static constexpr char 8751: 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); } 8751: 8751: static constexpr char 8751: max() noexcept { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); } 8751: 8751: 8751: static constexpr char 8751: lowest() noexcept { return min(); } 8751: 8751: 8751: static constexpr int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); 8751: static constexpr int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643L / 2136); 8751: 8751: static constexpr int max_digits10 = 0; 8751: 8751: static constexpr bool is_signed = ((char)(-1) < 0); 8751: static constexpr bool is_integer = true; 8751: static constexpr bool is_exact = true; 8751: static constexpr int radix = 2; 8751: 8751: static constexpr char 8751: epsilon() noexcept { return 0; } 8751: 8751: static constexpr char 8751: round_error() noexcept { return 0; } 8751: 8751: static constexpr int min_exponent = 0; 8751: static constexpr int min_exponent10 = 0; 8751: static constexpr int max_exponent = 0; 8751: static constexpr int max_exponent10 = 0; 8751: 8751: static constexpr bool has_infinity = false; 8751: static constexpr bool has_quiet_NaN = false; 8751: static constexpr bool has_signaling_NaN = false; 8751: static constexpr float_denorm_style has_denorm 8751: = denorm_absent; 8751: static constexpr bool has_denorm_loss = false; 8751: 8751: static constexpr 8751: char infinity() noexcept { return char(); } 8751: 8751: static constexpr char 8751: quiet_NaN() noexcept { return char(); } 8751: 8751: static constexpr char 8751: signaling_NaN() noexcept { return char(); } 8751: 8751: static constexpr char 8751: denorm_min() noexcept { return static_cast(0); } 8751: 8751: static constexpr bool is_iec559 = false; 8751: static constexpr bool is_bounded = true; 8751: static constexpr bool is_modulo = !is_signed; 8751: 8751: static constexpr bool traps = true; 8751: static constexpr bool tinyness_before = false; 8751: static constexpr float_round_style round_style 8751: = round_toward_zero; 8751: }; 8751: 8751: 8751: template<> 8751: struct numeric_limits 8751: { 8751: static constexpr bool is_specialized = true; 8751: 8751: static constexpr signed char 8751: min() noexcept { return -0x7f - 1; } 8751: 8751: static constexpr signed char 8751: max() noexcept { return 0x7f; } 8751: 8751: 8751: static constexpr signed char 8751: lowest() noexcept { return min(); } 8751: 8751: 8751: static constexpr int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); 8751: static constexpr int digits10 8751: = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643L / 2136); 8751: 8751: static constexpr int max_digits10 = 0; 8751: 8751: static constexpr bool is_signed = true; 8751: static constexpr bool is_integer = true; 8751: static constexpr bool is_exact = true; 8751: static constexpr int radix = 2; 8751: 8751: static constexpr signed char 8751: epsilon() noexcept { return 0; } 8751: 8751: static constexpr signed char 8751: round_error() noexcept { return 0; } 8751: 8751: static constexpr int min_exponent = 0; 8751: static constexpr int min_exponent10 = 0; 8751: static constexpr int max_exponent = 0; 8751: static constexpr int max_exponent10 = 0; 8751: 8751: static constexpr bool has_infinity = false; 8751: static constexpr bool has_quiet_NaN = false; 8751: static constexpr bool has_signaling_NaN = false; 8751: static constexpr float_denorm_style has_denorm 8751: = denorm_absent; 8751: static constexpr bool has_denorm_loss = false; 8751: 8751: static constexpr signed char 8751: infinity() noexcept { return static_cast(0); } 8751: 8751: static constexpr signed char 8751: quiet_NaN() noexcept { return static_cast(0); } 8751: 8751: static constexpr signed char 8751: signaling_NaN() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr signed char 8751: denorm_min() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr bool is_iec559 = false; 8751: static constexpr bool is_bounded = true; 8751: static constexpr bool is_modulo = false; 8751: 8751: static constexpr bool traps = true; 8751: static constexpr bool tinyness_before = false; 8751: static constexpr float_round_style round_style 8751: = round_toward_zero; 8751: }; 8751: 8751: 8751: template<> 8751: struct numeric_limits 8751: { 8751: static constexpr bool is_specialized = true; 8751: 8751: static constexpr unsigned char 8751: min() noexcept { return 0; } 8751: 8751: static constexpr unsigned char 8751: max() noexcept { return 0x7f * 2U + 1; } 8751: 8751: 8751: static constexpr unsigned char 8751: lowest() noexcept { return min(); } 8751: 8751: 8751: static constexpr int digits 8751: = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); 8751: static constexpr int digits10 8751: = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643L / 2136); 8751: 8751: static constexpr int max_digits10 = 0; 8751: 8751: static constexpr bool is_signed = false; 8751: static constexpr bool is_integer = true; 8751: static constexpr bool is_exact = true; 8751: static constexpr int radix = 2; 8751: 8751: static constexpr unsigned char 8751: epsilon() noexcept { return 0; } 8751: 8751: static constexpr unsigned char 8751: round_error() noexcept { return 0; } 8751: 8751: static constexpr int min_exponent = 0; 8751: static constexpr int min_exponent10 = 0; 8751: static constexpr int max_exponent = 0; 8751: static constexpr int max_exponent10 = 0; 8751: 8751: static constexpr bool has_infinity = false; 8751: static constexpr bool has_quiet_NaN = false; 8751: static constexpr bool has_signaling_NaN = false; 8751: static constexpr float_denorm_style has_denorm 8751: = denorm_absent; 8751: static constexpr bool has_denorm_loss = false; 8751: 8751: static constexpr unsigned char 8751: infinity() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr unsigned char 8751: quiet_NaN() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr unsigned char 8751: signaling_NaN() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr unsigned char 8751: denorm_min() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr bool is_iec559 = false; 8751: static constexpr bool is_bounded = true; 8751: static constexpr bool is_modulo = true; 8751: 8751: static constexpr bool traps = true; 8751: static constexpr bool tinyness_before = false; 8751: static constexpr float_round_style round_style 8751: = round_toward_zero; 8751: }; 8751: 8751: 8751: template<> 8751: struct numeric_limits 8751: { 8751: static constexpr bool is_specialized = true; 8751: 8751: static constexpr wchar_t 8751: 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); } 8751: 8751: static constexpr wchar_t 8751: 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); } 8751: 8751: 8751: static constexpr wchar_t 8751: lowest() noexcept { return min(); } 8751: 8751: 8751: static constexpr int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); 8751: static constexpr int digits10 8751: = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643L / 2136); 8751: 8751: static constexpr int max_digits10 = 0; 8751: 8751: static constexpr bool is_signed = ((wchar_t)(-1) < 0); 8751: static constexpr bool is_integer = true; 8751: static constexpr bool is_exact = true; 8751: static constexpr int radix = 2; 8751: 8751: static constexpr wchar_t 8751: epsilon() noexcept { return 0; } 8751: 8751: static constexpr wchar_t 8751: round_error() noexcept { return 0; } 8751: 8751: static constexpr int min_exponent = 0; 8751: static constexpr int min_exponent10 = 0; 8751: static constexpr int max_exponent = 0; 8751: static constexpr int max_exponent10 = 0; 8751: 8751: static constexpr bool has_infinity = false; 8751: static constexpr bool has_quiet_NaN = false; 8751: static constexpr bool has_signaling_NaN = false; 8751: static constexpr float_denorm_style has_denorm 8751: = denorm_absent; 8751: static constexpr bool has_denorm_loss = false; 8751: 8751: static constexpr wchar_t 8751: infinity() noexcept { return wchar_t(); } 8751: 8751: static constexpr wchar_t 8751: quiet_NaN() noexcept { return wchar_t(); } 8751: 8751: static constexpr wchar_t 8751: signaling_NaN() noexcept { return wchar_t(); } 8751: 8751: static constexpr wchar_t 8751: denorm_min() noexcept { return wchar_t(); } 8751: 8751: static constexpr bool is_iec559 = false; 8751: static constexpr bool is_bounded = true; 8751: static constexpr bool is_modulo = !is_signed; 8751: 8751: static constexpr bool traps = true; 8751: static constexpr bool tinyness_before = false; 8751: static constexpr float_round_style round_style 8751: = round_toward_zero; 8751: }; 8751: 8751: 8751: 8751: template<> 8751: struct numeric_limits 8751: { 8751: static constexpr bool is_specialized = true; 8751: 8751: static constexpr char16_t 8751: 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); } 8751: 8751: static constexpr char16_t 8751: 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); } 8751: 8751: static constexpr char16_t 8751: lowest() noexcept { return min(); } 8751: 8751: static constexpr int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)); 8751: static constexpr int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136); 8751: static constexpr int max_digits10 = 0; 8751: static constexpr bool is_signed = ((char16_t)(-1) < 0); 8751: static constexpr bool is_integer = true; 8751: static constexpr bool is_exact = true; 8751: static constexpr int radix = 2; 8751: 8751: static constexpr char16_t 8751: epsilon() noexcept { return 0; } 8751: 8751: static constexpr char16_t 8751: round_error() noexcept { return 0; } 8751: 8751: static constexpr int min_exponent = 0; 8751: static constexpr int min_exponent10 = 0; 8751: static constexpr int max_exponent = 0; 8751: static constexpr int max_exponent10 = 0; 8751: 8751: static constexpr bool has_infinity = false; 8751: static constexpr bool has_quiet_NaN = false; 8751: static constexpr bool has_signaling_NaN = false; 8751: static constexpr float_denorm_style has_denorm = denorm_absent; 8751: static constexpr bool has_denorm_loss = false; 8751: 8751: static constexpr char16_t 8751: infinity() noexcept { return char16_t(); } 8751: 8751: static constexpr char16_t 8751: quiet_NaN() noexcept { return char16_t(); } 8751: 8751: static constexpr char16_t 8751: signaling_NaN() noexcept { return char16_t(); } 8751: 8751: static constexpr char16_t 8751: denorm_min() noexcept { return char16_t(); } 8751: 8751: static constexpr bool is_iec559 = false; 8751: static constexpr bool is_bounded = true; 8751: static constexpr bool is_modulo = !is_signed; 8751: 8751: static constexpr bool traps = true; 8751: static constexpr bool tinyness_before = false; 8751: static constexpr float_round_style round_style = round_toward_zero; 8751: }; 8751: 8751: 8751: template<> 8751: struct numeric_limits 8751: { 8751: static constexpr bool is_specialized = true; 8751: 8751: static constexpr char32_t 8751: 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); } 8751: 8751: static constexpr char32_t 8751: 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); } 8751: 8751: static constexpr char32_t 8751: lowest() noexcept { return min(); } 8751: 8751: static constexpr int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)); 8751: static constexpr int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136); 8751: static constexpr int max_digits10 = 0; 8751: static constexpr bool is_signed = ((char32_t)(-1) < 0); 8751: static constexpr bool is_integer = true; 8751: static constexpr bool is_exact = true; 8751: static constexpr int radix = 2; 8751: 8751: static constexpr char32_t 8751: epsilon() noexcept { return 0; } 8751: 8751: static constexpr char32_t 8751: round_error() noexcept { return 0; } 8751: 8751: static constexpr int min_exponent = 0; 8751: static constexpr int min_exponent10 = 0; 8751: static constexpr int max_exponent = 0; 8751: static constexpr int max_exponent10 = 0; 8751: 8751: static constexpr bool has_infinity = false; 8751: static constexpr bool has_quiet_NaN = false; 8751: static constexpr bool has_signaling_NaN = false; 8751: static constexpr float_denorm_style has_denorm = denorm_absent; 8751: static constexpr bool has_denorm_loss = false; 8751: 8751: static constexpr char32_t 8751: infinity() noexcept { return char32_t(); } 8751: 8751: static constexpr char32_t 8751: quiet_NaN() noexcept { return char32_t(); } 8751: 8751: static constexpr char32_t 8751: signaling_NaN() noexcept { return char32_t(); } 8751: 8751: static constexpr char32_t 8751: denorm_min() noexcept { return char32_t(); } 8751: 8751: static constexpr bool is_iec559 = false; 8751: static constexpr bool is_bounded = true; 8751: static constexpr bool is_modulo = !is_signed; 8751: 8751: static constexpr bool traps = true; 8751: static constexpr bool tinyness_before = false; 8751: static constexpr float_round_style round_style = round_toward_zero; 8751: }; 8751: 8751: 8751: 8751: template<> 8751: struct numeric_limits 8751: { 8751: static constexpr bool is_specialized = true; 8751: 8751: static constexpr short 8751: min() noexcept { return -0x7fff - 1; } 8751: 8751: static constexpr short 8751: max() noexcept { return 0x7fff; } 8751: 8751: 8751: static constexpr short 8751: lowest() noexcept { return min(); } 8751: 8751: 8751: static constexpr int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); 8751: static constexpr int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643L / 2136); 8751: 8751: static constexpr int max_digits10 = 0; 8751: 8751: static constexpr bool is_signed = true; 8751: static constexpr bool is_integer = true; 8751: static constexpr bool is_exact = true; 8751: static constexpr int radix = 2; 8751: 8751: static constexpr short 8751: epsilon() noexcept { return 0; } 8751: 8751: static constexpr short 8751: round_error() noexcept { return 0; } 8751: 8751: static constexpr int min_exponent = 0; 8751: static constexpr int min_exponent10 = 0; 8751: static constexpr int max_exponent = 0; 8751: static constexpr int max_exponent10 = 0; 8751: 8751: static constexpr bool has_infinity = false; 8751: static constexpr bool has_quiet_NaN = false; 8751: static constexpr bool has_signaling_NaN = false; 8751: static constexpr float_denorm_style has_denorm 8751: = denorm_absent; 8751: static constexpr bool has_denorm_loss = false; 8751: 8751: static constexpr short 8751: infinity() noexcept { return short(); } 8751: 8751: static constexpr short 8751: quiet_NaN() noexcept { return short(); } 8751: 8751: static constexpr short 8751: signaling_NaN() noexcept { return short(); } 8751: 8751: static constexpr short 8751: denorm_min() noexcept { return short(); } 8751: 8751: static constexpr bool is_iec559 = false; 8751: static constexpr bool is_bounded = true; 8751: static constexpr bool is_modulo = false; 8751: 8751: static constexpr bool traps = true; 8751: static constexpr bool tinyness_before = false; 8751: static constexpr float_round_style round_style 8751: = round_toward_zero; 8751: }; 8751: 8751: 8751: template<> 8751: struct numeric_limits 8751: { 8751: static constexpr bool is_specialized = true; 8751: 8751: static constexpr unsigned short 8751: min() noexcept { return 0; } 8751: 8751: static constexpr unsigned short 8751: max() noexcept { return 0x7fff * 2U + 1; } 8751: 8751: 8751: static constexpr unsigned short 8751: lowest() noexcept { return min(); } 8751: 8751: 8751: static constexpr int digits 8751: = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); 8751: static constexpr int digits10 8751: = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643L / 2136); 8751: 8751: static constexpr int max_digits10 = 0; 8751: 8751: static constexpr bool is_signed = false; 8751: static constexpr bool is_integer = true; 8751: static constexpr bool is_exact = true; 8751: static constexpr int radix = 2; 8751: 8751: static constexpr unsigned short 8751: epsilon() noexcept { return 0; } 8751: 8751: static constexpr unsigned short 8751: round_error() noexcept { return 0; } 8751: 8751: static constexpr int min_exponent = 0; 8751: static constexpr int min_exponent10 = 0; 8751: static constexpr int max_exponent = 0; 8751: static constexpr int max_exponent10 = 0; 8751: 8751: static constexpr bool has_infinity = false; 8751: static constexpr bool has_quiet_NaN = false; 8751: static constexpr bool has_signaling_NaN = false; 8751: static constexpr float_denorm_style has_denorm 8751: = denorm_absent; 8751: static constexpr bool has_denorm_loss = false; 8751: 8751: static constexpr unsigned short 8751: infinity() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr unsigned short 8751: quiet_NaN() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr unsigned short 8751: signaling_NaN() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr unsigned short 8751: denorm_min() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr bool is_iec559 = false; 8751: static constexpr bool is_bounded = true; 8751: static constexpr bool is_modulo = true; 8751: 8751: static constexpr bool traps = true; 8751: static constexpr bool tinyness_before = false; 8751: static constexpr float_round_style round_style 8751: = round_toward_zero; 8751: }; 8751: 8751: 8751: template<> 8751: struct numeric_limits 8751: { 8751: static constexpr bool is_specialized = true; 8751: 8751: static constexpr int 8751: min() noexcept { return -0x7fffffff - 1; } 8751: 8751: static constexpr int 8751: max() noexcept { return 0x7fffffff; } 8751: 8751: 8751: static constexpr int 8751: lowest() noexcept { return min(); } 8751: 8751: 8751: static constexpr int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); 8751: static constexpr int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643L / 2136); 8751: 8751: static constexpr int max_digits10 = 0; 8751: 8751: static constexpr bool is_signed = true; 8751: static constexpr bool is_integer = true; 8751: static constexpr bool is_exact = true; 8751: static constexpr int radix = 2; 8751: 8751: static constexpr int 8751: epsilon() noexcept { return 0; } 8751: 8751: static constexpr int 8751: round_error() noexcept { return 0; } 8751: 8751: static constexpr int min_exponent = 0; 8751: static constexpr int min_exponent10 = 0; 8751: static constexpr int max_exponent = 0; 8751: static constexpr int max_exponent10 = 0; 8751: 8751: static constexpr bool has_infinity = false; 8751: static constexpr bool has_quiet_NaN = false; 8751: static constexpr bool has_signaling_NaN = false; 8751: static constexpr float_denorm_style has_denorm 8751: = denorm_absent; 8751: static constexpr bool has_denorm_loss = false; 8751: 8751: static constexpr int 8751: infinity() noexcept { return static_cast(0); } 8751: 8751: static constexpr int 8751: quiet_NaN() noexcept { return static_cast(0); } 8751: 8751: static constexpr int 8751: signaling_NaN() noexcept { return static_cast(0); } 8751: 8751: static constexpr int 8751: denorm_min() noexcept { return static_cast(0); } 8751: 8751: static constexpr bool is_iec559 = false; 8751: static constexpr bool is_bounded = true; 8751: static constexpr bool is_modulo = false; 8751: 8751: static constexpr bool traps = true; 8751: static constexpr bool tinyness_before = false; 8751: static constexpr float_round_style round_style 8751: = round_toward_zero; 8751: }; 8751: 8751: 8751: template<> 8751: struct numeric_limits 8751: { 8751: static constexpr bool is_specialized = true; 8751: 8751: static constexpr unsigned int 8751: min() noexcept { return 0; } 8751: 8751: static constexpr unsigned int 8751: max() noexcept { return 0x7fffffff * 2U + 1; } 8751: 8751: 8751: static constexpr unsigned int 8751: lowest() noexcept { return min(); } 8751: 8751: 8751: static constexpr int digits 8751: = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); 8751: static constexpr int digits10 8751: = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643L / 2136); 8751: 8751: static constexpr int max_digits10 = 0; 8751: 8751: static constexpr bool is_signed = false; 8751: static constexpr bool is_integer = true; 8751: static constexpr bool is_exact = true; 8751: static constexpr int radix = 2; 8751: 8751: static constexpr unsigned int 8751: epsilon() noexcept { return 0; } 8751: 8751: static constexpr unsigned int 8751: round_error() noexcept { return 0; } 8751: 8751: static constexpr int min_exponent = 0; 8751: static constexpr int min_exponent10 = 0; 8751: static constexpr int max_exponent = 0; 8751: static constexpr int max_exponent10 = 0; 8751: 8751: static constexpr bool has_infinity = false; 8751: static constexpr bool has_quiet_NaN = false; 8751: static constexpr bool has_signaling_NaN = false; 8751: static constexpr float_denorm_style has_denorm 8751: = denorm_absent; 8751: static constexpr bool has_denorm_loss = false; 8751: 8751: static constexpr unsigned int 8751: infinity() noexcept { return static_cast(0); } 8751: 8751: static constexpr unsigned int 8751: quiet_NaN() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr unsigned int 8751: signaling_NaN() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr unsigned int 8751: denorm_min() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr bool is_iec559 = false; 8751: static constexpr bool is_bounded = true; 8751: static constexpr bool is_modulo = true; 8751: 8751: static constexpr bool traps = true; 8751: static constexpr bool tinyness_before = false; 8751: static constexpr float_round_style round_style 8751: = round_toward_zero; 8751: }; 8751: 8751: 8751: template<> 8751: struct numeric_limits 8751: { 8751: static constexpr bool is_specialized = true; 8751: 8751: static constexpr long 8751: min() noexcept { return -0x7fffffffL - 1; } 8751: 8751: static constexpr long 8751: max() noexcept { return 0x7fffffffL; } 8751: 8751: 8751: static constexpr long 8751: lowest() noexcept { return min(); } 8751: 8751: 8751: static constexpr int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); 8751: static constexpr int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643L / 2136); 8751: 8751: static constexpr int max_digits10 = 0; 8751: 8751: static constexpr bool is_signed = true; 8751: static constexpr bool is_integer = true; 8751: static constexpr bool is_exact = true; 8751: static constexpr int radix = 2; 8751: 8751: static constexpr long 8751: epsilon() noexcept { return 0; } 8751: 8751: static constexpr long 8751: round_error() noexcept { return 0; } 8751: 8751: static constexpr int min_exponent = 0; 8751: static constexpr int min_exponent10 = 0; 8751: static constexpr int max_exponent = 0; 8751: static constexpr int max_exponent10 = 0; 8751: 8751: static constexpr bool has_infinity = false; 8751: static constexpr bool has_quiet_NaN = false; 8751: static constexpr bool has_signaling_NaN = false; 8751: static constexpr float_denorm_style has_denorm 8751: = denorm_absent; 8751: static constexpr bool has_denorm_loss = false; 8751: 8751: static constexpr long 8751: infinity() noexcept { return static_cast(0); } 8751: 8751: static constexpr long 8751: quiet_NaN() noexcept { return static_cast(0); } 8751: 8751: static constexpr long 8751: signaling_NaN() noexcept { return static_cast(0); } 8751: 8751: static constexpr long 8751: denorm_min() noexcept { return static_cast(0); } 8751: 8751: static constexpr bool is_iec559 = false; 8751: static constexpr bool is_bounded = true; 8751: static constexpr bool is_modulo = false; 8751: 8751: static constexpr bool traps = true; 8751: static constexpr bool tinyness_before = false; 8751: static constexpr float_round_style round_style 8751: = round_toward_zero; 8751: }; 8751: 8751: 8751: template<> 8751: struct numeric_limits 8751: { 8751: static constexpr bool is_specialized = true; 8751: 8751: static constexpr unsigned long 8751: min() noexcept { return 0; } 8751: 8751: static constexpr unsigned long 8751: max() noexcept { return 0x7fffffffL * 2UL + 1; } 8751: 8751: 8751: static constexpr unsigned long 8751: lowest() noexcept { return min(); } 8751: 8751: 8751: static constexpr int digits 8751: = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); 8751: static constexpr int digits10 8751: = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643L / 2136); 8751: 8751: static constexpr int max_digits10 = 0; 8751: 8751: static constexpr bool is_signed = false; 8751: static constexpr bool is_integer = true; 8751: static constexpr bool is_exact = true; 8751: static constexpr int radix = 2; 8751: 8751: static constexpr unsigned long 8751: epsilon() noexcept { return 0; } 8751: 8751: static constexpr unsigned long 8751: round_error() noexcept { return 0; } 8751: 8751: static constexpr int min_exponent = 0; 8751: static constexpr int min_exponent10 = 0; 8751: static constexpr int max_exponent = 0; 8751: static constexpr int max_exponent10 = 0; 8751: 8751: static constexpr bool has_infinity = false; 8751: static constexpr bool has_quiet_NaN = false; 8751: static constexpr bool has_signaling_NaN = false; 8751: static constexpr float_denorm_style has_denorm 8751: = denorm_absent; 8751: static constexpr bool has_denorm_loss = false; 8751: 8751: static constexpr unsigned long 8751: infinity() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr unsigned long 8751: quiet_NaN() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr unsigned long 8751: signaling_NaN() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr unsigned long 8751: denorm_min() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr bool is_iec559 = false; 8751: static constexpr bool is_bounded = true; 8751: static constexpr bool is_modulo = true; 8751: 8751: static constexpr bool traps = true; 8751: static constexpr bool tinyness_before = false; 8751: static constexpr float_round_style round_style 8751: = round_toward_zero; 8751: }; 8751: 8751: 8751: template<> 8751: struct numeric_limits 8751: { 8751: static constexpr bool is_specialized = true; 8751: 8751: static constexpr long long 8751: min() noexcept { return -0x7fffffffffffffffLL - 1; } 8751: 8751: static constexpr long long 8751: max() noexcept { return 0x7fffffffffffffffLL; } 8751: 8751: 8751: static constexpr long long 8751: lowest() noexcept { return min(); } 8751: 8751: 8751: static constexpr int digits 8751: = (sizeof(long long) * 8 - ((long long)(-1) < 0)); 8751: static constexpr int digits10 8751: = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643L / 2136); 8751: 8751: static constexpr int max_digits10 = 0; 8751: 8751: static constexpr bool is_signed = true; 8751: static constexpr bool is_integer = true; 8751: static constexpr bool is_exact = true; 8751: static constexpr int radix = 2; 8751: 8751: static constexpr long long 8751: epsilon() noexcept { return 0; } 8751: 8751: static constexpr long long 8751: round_error() noexcept { return 0; } 8751: 8751: static constexpr int min_exponent = 0; 8751: static constexpr int min_exponent10 = 0; 8751: static constexpr int max_exponent = 0; 8751: static constexpr int max_exponent10 = 0; 8751: 8751: static constexpr bool has_infinity = false; 8751: static constexpr bool has_quiet_NaN = false; 8751: static constexpr bool has_signaling_NaN = false; 8751: static constexpr float_denorm_style has_denorm 8751: = denorm_absent; 8751: static constexpr bool has_denorm_loss = false; 8751: 8751: static constexpr long long 8751: infinity() noexcept { return static_cast(0); } 8751: 8751: static constexpr long long 8751: quiet_NaN() noexcept { return static_cast(0); } 8751: 8751: static constexpr long long 8751: signaling_NaN() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr long long 8751: denorm_min() noexcept { return static_cast(0); } 8751: 8751: static constexpr bool is_iec559 = false; 8751: static constexpr bool is_bounded = true; 8751: static constexpr bool is_modulo = false; 8751: 8751: static constexpr bool traps = true; 8751: static constexpr bool tinyness_before = false; 8751: static constexpr float_round_style round_style 8751: = round_toward_zero; 8751: }; 8751: 8751: 8751: template<> 8751: struct numeric_limits 8751: { 8751: static constexpr bool is_specialized = true; 8751: 8751: static constexpr unsigned long long 8751: min() noexcept { return 0; } 8751: 8751: static constexpr unsigned long long 8751: max() noexcept { return 0x7fffffffffffffffLL * 2ULL + 1; } 8751: 8751: 8751: static constexpr unsigned long long 8751: lowest() noexcept { return min(); } 8751: 8751: 8751: static constexpr int digits 8751: = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); 8751: static constexpr int digits10 8751: = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643L / 2136); 8751: 8751: static constexpr int max_digits10 = 0; 8751: 8751: static constexpr bool is_signed = false; 8751: static constexpr bool is_integer = true; 8751: static constexpr bool is_exact = true; 8751: static constexpr int radix = 2; 8751: 8751: static constexpr unsigned long long 8751: epsilon() noexcept { return 0; } 8751: 8751: static constexpr unsigned long long 8751: round_error() noexcept { return 0; } 8751: 8751: static constexpr int min_exponent = 0; 8751: static constexpr int min_exponent10 = 0; 8751: static constexpr int max_exponent = 0; 8751: static constexpr int max_exponent10 = 0; 8751: 8751: static constexpr bool has_infinity = false; 8751: static constexpr bool has_quiet_NaN = false; 8751: static constexpr bool has_signaling_NaN = false; 8751: static constexpr float_denorm_style has_denorm 8751: = denorm_absent; 8751: static constexpr bool has_denorm_loss = false; 8751: 8751: static constexpr unsigned long long 8751: infinity() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr unsigned long long 8751: quiet_NaN() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr unsigned long long 8751: signaling_NaN() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr unsigned long long 8751: denorm_min() noexcept 8751: { return static_cast(0); } 8751: 8751: static constexpr bool is_iec559 = false; 8751: static constexpr bool is_bounded = true; 8751: static constexpr bool is_modulo = true; 8751: 8751: static constexpr bool traps = true; 8751: static constexpr bool tinyness_before = false; 8751: static constexpr float_round_style round_style 8751: = round_toward_zero; 8751: }; 8751: # 1593 "/usr/include/c++/8/limits" 3 8751: template<> 8751: struct numeric_limits 8751: { 8751: static constexpr bool is_specialized = true; 8751: 8751: static constexpr float 8751: min() noexcept { return 1.1754943508222875e-38F; } 8751: 8751: static constexpr float 8751: max() noexcept { return 3.4028234663852886e+38F; } 8751: 8751: 8751: static constexpr float 8751: lowest() noexcept { return -3.4028234663852886e+38F; } 8751: 8751: 8751: static constexpr int digits = 24; 8751: static constexpr int digits10 = 6; 8751: 8751: static constexpr int max_digits10 8751: = (2 + (24) * 643L / 2136); 8751: 8751: static constexpr bool is_signed = true; 8751: static constexpr bool is_integer = false; 8751: static constexpr bool is_exact = false; 8751: static constexpr int radix = 2; 8751: 8751: static constexpr float 8751: epsilon() noexcept { return 1.1920928955078125e-7F; } 8751: 8751: static constexpr float 8751: round_error() noexcept { return 0.5F; } 8751: 8751: static constexpr int min_exponent = (-125); 8751: static constexpr int min_exponent10 = (-37); 8751: static constexpr int max_exponent = 128; 8751: static constexpr int max_exponent10 = 38; 8751: 8751: static constexpr bool has_infinity = 1; 8751: static constexpr bool has_quiet_NaN = 1; 8751: static constexpr bool has_signaling_NaN = has_quiet_NaN; 8751: static constexpr float_denorm_style has_denorm 8751: = bool(1) ? denorm_present : denorm_absent; 8751: static constexpr bool has_denorm_loss 8751: = false; 8751: 8751: static constexpr float 8751: infinity() noexcept { return __builtin_huge_valf(); } 8751: 8751: static constexpr float 8751: quiet_NaN() noexcept { return __builtin_nanf(""); } 8751: 8751: static constexpr float 8751: signaling_NaN() noexcept { return __builtin_nansf(""); } 8751: 8751: static constexpr float 8751: denorm_min() noexcept { return 1.4012984643248171e-45F; } 8751: 8751: static constexpr bool is_iec559 8751: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 8751: static constexpr bool is_bounded = true; 8751: static constexpr bool is_modulo = false; 8751: 8751: static constexpr bool traps = false; 8751: static constexpr bool tinyness_before 8751: = false; 8751: static constexpr float_round_style round_style 8751: = round_to_nearest; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template<> 8751: struct numeric_limits 8751: { 8751: static constexpr bool is_specialized = true; 8751: 8751: static constexpr double 8751: min() noexcept { return double(2.2250738585072014e-308L); } 8751: 8751: static constexpr double 8751: max() noexcept { return double(1.7976931348623157e+308L); } 8751: 8751: 8751: static constexpr double 8751: lowest() noexcept { return -double(1.7976931348623157e+308L); } 8751: 8751: 8751: static constexpr int digits = 53; 8751: static constexpr int digits10 = 15; 8751: 8751: static constexpr int max_digits10 8751: = (2 + (53) * 643L / 2136); 8751: 8751: static constexpr bool is_signed = true; 8751: static constexpr bool is_integer = false; 8751: static constexpr bool is_exact = false; 8751: static constexpr int radix = 2; 8751: 8751: static constexpr double 8751: epsilon() noexcept { return double(2.2204460492503131e-16L); } 8751: 8751: static constexpr double 8751: round_error() noexcept { return 0.5; } 8751: 8751: static constexpr int min_exponent = (-1021); 8751: static constexpr int min_exponent10 = (-307); 8751: static constexpr int max_exponent = 1024; 8751: static constexpr int max_exponent10 = 308; 8751: 8751: static constexpr bool has_infinity = 1; 8751: static constexpr bool has_quiet_NaN = 1; 8751: static constexpr bool has_signaling_NaN = has_quiet_NaN; 8751: static constexpr float_denorm_style has_denorm 8751: = bool(1) ? denorm_present : denorm_absent; 8751: static constexpr bool has_denorm_loss 8751: = false; 8751: 8751: static constexpr double 8751: infinity() noexcept { return __builtin_huge_val(); } 8751: 8751: static constexpr double 8751: quiet_NaN() noexcept { return __builtin_nan(""); } 8751: 8751: static constexpr double 8751: signaling_NaN() noexcept { return __builtin_nans(""); } 8751: 8751: static constexpr double 8751: denorm_min() noexcept { return double(4.9406564584124654e-324L); } 8751: 8751: static constexpr bool is_iec559 8751: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 8751: static constexpr bool is_bounded = true; 8751: static constexpr bool is_modulo = false; 8751: 8751: static constexpr bool traps = false; 8751: static constexpr bool tinyness_before 8751: = false; 8751: static constexpr float_round_style round_style 8751: = round_to_nearest; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template<> 8751: struct numeric_limits 8751: { 8751: static constexpr bool is_specialized = true; 8751: 8751: static constexpr long double 8751: min() noexcept { return 2.2250738585072014e-308L; } 8751: 8751: static constexpr long double 8751: max() noexcept { return 1.7976931348623157e+308L; } 8751: 8751: 8751: static constexpr long double 8751: lowest() noexcept { return -1.7976931348623157e+308L; } 8751: 8751: 8751: static constexpr int digits = 53; 8751: static constexpr int digits10 = 15; 8751: 8751: static constexpr int max_digits10 8751: = (2 + (53) * 643L / 2136); 8751: 8751: static constexpr bool is_signed = true; 8751: static constexpr bool is_integer = false; 8751: static constexpr bool is_exact = false; 8751: static constexpr int radix = 2; 8751: 8751: static constexpr long double 8751: epsilon() noexcept { return 2.2204460492503131e-16L; } 8751: 8751: static constexpr long double 8751: round_error() noexcept { return 0.5L; } 8751: 8751: static constexpr int min_exponent = (-1021); 8751: static constexpr int min_exponent10 = (-307); 8751: static constexpr int max_exponent = 1024; 8751: static constexpr int max_exponent10 = 308; 8751: 8751: static constexpr bool has_infinity = 1; 8751: static constexpr bool has_quiet_NaN = 1; 8751: static constexpr bool has_signaling_NaN = has_quiet_NaN; 8751: static constexpr float_denorm_style has_denorm 8751: = bool(1) ? denorm_present : denorm_absent; 8751: static constexpr bool has_denorm_loss 8751: = false; 8751: 8751: static constexpr long double 8751: infinity() noexcept { return __builtin_huge_vall(); } 8751: 8751: static constexpr long double 8751: quiet_NaN() noexcept { return __builtin_nanl(""); } 8751: 8751: static constexpr long double 8751: signaling_NaN() noexcept { return __builtin_nansl(""); } 8751: 8751: static constexpr long double 8751: denorm_min() noexcept { return 4.9406564584124654e-324L; } 8751: 8751: static constexpr bool is_iec559 8751: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 8751: static constexpr bool is_bounded = true; 8751: static constexpr bool is_modulo = false; 8751: 8751: static constexpr bool traps = false; 8751: static constexpr bool tinyness_before = 8751: false; 8751: static constexpr float_round_style round_style = 8751: round_to_nearest; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: } 8751: # 36 "/usr/include/c++/8/bits/uniform_int_dist.h" 2 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: namespace __detail 8751: { 8751: 8751: template 8751: inline bool 8751: _Power_of_2(_Tp __x) 8751: { 8751: return ((__x - 1) & __x) == 0; 8751: } 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: class uniform_int_distribution 8751: { 8751: static_assert(std::is_integral<_IntType>::value, 8751: "template argument must be an integral type"); 8751: 8751: public: 8751: 8751: typedef _IntType result_type; 8751: 8751: struct param_type 8751: { 8751: typedef uniform_int_distribution<_IntType> distribution_type; 8751: 8751: explicit 8751: param_type(_IntType __a = 0, 8751: _IntType __b = std::numeric_limits<_IntType>::max()) 8751: : _M_a(__a), _M_b(__b) 8751: { 8751: ; 8751: } 8751: 8751: result_type 8751: a() const 8751: { return _M_a; } 8751: 8751: result_type 8751: b() const 8751: { return _M_b; } 8751: 8751: friend bool 8751: operator==(const param_type& __p1, const param_type& __p2) 8751: { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } 8751: 8751: friend bool 8751: operator!=(const param_type& __p1, const param_type& __p2) 8751: { return !(__p1 == __p2); } 8751: 8751: private: 8751: _IntType _M_a; 8751: _IntType _M_b; 8751: }; 8751: 8751: public: 8751: 8751: 8751: 8751: explicit 8751: uniform_int_distribution(_IntType __a = 0, 8751: _IntType __b = std::numeric_limits<_IntType>::max()) 8751: : _M_param(__a, __b) 8751: { } 8751: 8751: explicit 8751: uniform_int_distribution(const param_type& __p) 8751: : _M_param(__p) 8751: { } 8751: 8751: 8751: 8751: 8751: 8751: 8751: void 8751: reset() { } 8751: 8751: result_type 8751: a() const 8751: { return _M_param.a(); } 8751: 8751: result_type 8751: b() const 8751: { return _M_param.b(); } 8751: 8751: 8751: 8751: 8751: param_type 8751: param() const 8751: { return _M_param; } 8751: 8751: 8751: 8751: 8751: 8751: void 8751: param(const param_type& __param) 8751: { _M_param = __param; } 8751: 8751: 8751: 8751: 8751: result_type 8751: min() const 8751: { return this->a(); } 8751: 8751: 8751: 8751: 8751: result_type 8751: max() const 8751: { return this->b(); } 8751: 8751: 8751: 8751: 8751: template 8751: result_type 8751: operator()(_UniformRandomNumberGenerator& __urng) 8751: { return this->operator()(__urng, _M_param); } 8751: 8751: template 8751: result_type 8751: operator()(_UniformRandomNumberGenerator& __urng, 8751: const param_type& __p); 8751: 8751: template 8751: void 8751: __generate(_ForwardIterator __f, _ForwardIterator __t, 8751: _UniformRandomNumberGenerator& __urng) 8751: { this->__generate(__f, __t, __urng, _M_param); } 8751: 8751: template 8751: void 8751: __generate(_ForwardIterator __f, _ForwardIterator __t, 8751: _UniformRandomNumberGenerator& __urng, 8751: const param_type& __p) 8751: { this->__generate_impl(__f, __t, __urng, __p); } 8751: 8751: template 8751: void 8751: __generate(result_type* __f, result_type* __t, 8751: _UniformRandomNumberGenerator& __urng, 8751: const param_type& __p) 8751: { this->__generate_impl(__f, __t, __urng, __p); } 8751: 8751: 8751: 8751: 8751: 8751: friend bool 8751: operator==(const uniform_int_distribution& __d1, 8751: const uniform_int_distribution& __d2) 8751: { return __d1._M_param == __d2._M_param; } 8751: 8751: private: 8751: template 8751: void 8751: __generate_impl(_ForwardIterator __f, _ForwardIterator __t, 8751: _UniformRandomNumberGenerator& __urng, 8751: const param_type& __p); 8751: 8751: param_type _M_param; 8751: }; 8751: 8751: template 8751: template 8751: typename uniform_int_distribution<_IntType>::result_type 8751: uniform_int_distribution<_IntType>:: 8751: operator()(_UniformRandomNumberGenerator& __urng, 8751: const param_type& __param) 8751: { 8751: typedef typename _UniformRandomNumberGenerator::result_type 8751: _Gresult_type; 8751: typedef typename std::make_unsigned::type __utype; 8751: typedef typename std::common_type<_Gresult_type, __utype>::type 8751: __uctype; 8751: 8751: const __uctype __urngmin = __urng.min(); 8751: const __uctype __urngmax = __urng.max(); 8751: const __uctype __urngrange = __urngmax - __urngmin; 8751: const __uctype __urange 8751: = __uctype(__param.b()) - __uctype(__param.a()); 8751: 8751: __uctype __ret; 8751: 8751: if (__urngrange > __urange) 8751: { 8751: 8751: const __uctype __uerange = __urange + 1; 8751: const __uctype __scaling = __urngrange / __uerange; 8751: const __uctype __past = __uerange * __scaling; 8751: do 8751: __ret = __uctype(__urng()) - __urngmin; 8751: while (__ret >= __past); 8751: __ret /= __scaling; 8751: } 8751: else if (__urngrange < __urange) 8751: { 8751: # 264 "/usr/include/c++/8/bits/uniform_int_dist.h" 3 8751: __uctype __tmp; 8751: do 8751: { 8751: const __uctype __uerngrange = __urngrange + 1; 8751: __tmp = (__uerngrange * operator() 8751: (__urng, param_type(0, __urange / __uerngrange))); 8751: __ret = __tmp + (__uctype(__urng()) - __urngmin); 8751: } 8751: while (__ret > __urange || __ret < __tmp); 8751: } 8751: else 8751: __ret = __uctype(__urng()) - __urngmin; 8751: 8751: return __ret + __param.a(); 8751: } 8751: 8751: 8751: template 8751: template 8751: void 8751: uniform_int_distribution<_IntType>:: 8751: __generate_impl(_ForwardIterator __f, _ForwardIterator __t, 8751: _UniformRandomNumberGenerator& __urng, 8751: const param_type& __param) 8751: { 8751: 8751: typedef typename _UniformRandomNumberGenerator::result_type 8751: _Gresult_type; 8751: typedef typename std::make_unsigned::type __utype; 8751: typedef typename std::common_type<_Gresult_type, __utype>::type 8751: __uctype; 8751: 8751: const __uctype __urngmin = __urng.min(); 8751: const __uctype __urngmax = __urng.max(); 8751: const __uctype __urngrange = __urngmax - __urngmin; 8751: const __uctype __urange 8751: = __uctype(__param.b()) - __uctype(__param.a()); 8751: 8751: __uctype __ret; 8751: 8751: if (__urngrange > __urange) 8751: { 8751: if (__detail::_Power_of_2(__urngrange + 1) 8751: && __detail::_Power_of_2(__urange + 1)) 8751: { 8751: while (__f != __t) 8751: { 8751: __ret = __uctype(__urng()) - __urngmin; 8751: *__f++ = (__ret & __urange) + __param.a(); 8751: } 8751: } 8751: else 8751: { 8751: 8751: const __uctype __uerange = __urange + 1; 8751: const __uctype __scaling = __urngrange / __uerange; 8751: const __uctype __past = __uerange * __scaling; 8751: while (__f != __t) 8751: { 8751: do 8751: __ret = __uctype(__urng()) - __urngmin; 8751: while (__ret >= __past); 8751: *__f++ = __ret / __scaling + __param.a(); 8751: } 8751: } 8751: } 8751: else if (__urngrange < __urange) 8751: { 8751: # 348 "/usr/include/c++/8/bits/uniform_int_dist.h" 3 8751: __uctype __tmp; 8751: while (__f != __t) 8751: { 8751: do 8751: { 8751: const __uctype __uerngrange = __urngrange + 1; 8751: __tmp = (__uerngrange * operator() 8751: (__urng, param_type(0, __urange / __uerngrange))); 8751: __ret = __tmp + (__uctype(__urng()) - __urngmin); 8751: } 8751: while (__ret > __urange || __ret < __tmp); 8751: *__f++ = __ret; 8751: } 8751: } 8751: else 8751: while (__f != __t) 8751: *__f++ = __uctype(__urng()) - __urngmin + __param.a(); 8751: } 8751: 8751: 8751: 8751: 8751: } 8751: # 67 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8751: 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: template 8751: void 8751: __move_median_to_first(_Iterator __result,_Iterator __a, _Iterator __b, 8751: _Iterator __c, _Compare __comp) 8751: { 8751: if (__comp(__a, __b)) 8751: { 8751: if (__comp(__b, __c)) 8751: std::iter_swap(__result, __b); 8751: else if (__comp(__a, __c)) 8751: std::iter_swap(__result, __c); 8751: else 8751: std::iter_swap(__result, __a); 8751: } 8751: else if (__comp(__a, __c)) 8751: std::iter_swap(__result, __a); 8751: else if (__comp(__b, __c)) 8751: std::iter_swap(__result, __c); 8751: else 8751: std::iter_swap(__result, __b); 8751: } 8751: 8751: 8751: template 8751: inline _InputIterator 8751: __find_if(_InputIterator __first, _InputIterator __last, 8751: _Predicate __pred, input_iterator_tag) 8751: { 8751: while (__first != __last && !__pred(__first)) 8751: ++__first; 8751: return __first; 8751: } 8751: 8751: 8751: template 8751: _RandomAccessIterator 8751: __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, 8751: _Predicate __pred, random_access_iterator_tag) 8751: { 8751: typename iterator_traits<_RandomAccessIterator>::difference_type 8751: __trip_count = (__last - __first) >> 2; 8751: 8751: for (; __trip_count > 0; --__trip_count) 8751: { 8751: if (__pred(__first)) 8751: return __first; 8751: ++__first; 8751: 8751: if (__pred(__first)) 8751: return __first; 8751: ++__first; 8751: 8751: if (__pred(__first)) 8751: return __first; 8751: ++__first; 8751: 8751: if (__pred(__first)) 8751: return __first; 8751: ++__first; 8751: } 8751: 8751: switch (__last - __first) 8751: { 8751: case 3: 8751: if (__pred(__first)) 8751: return __first; 8751: ++__first; 8751: case 2: 8751: if (__pred(__first)) 8751: return __first; 8751: ++__first; 8751: case 1: 8751: if (__pred(__first)) 8751: return __first; 8751: ++__first; 8751: case 0: 8751: default: 8751: return __last; 8751: } 8751: } 8751: 8751: template 8751: inline _Iterator 8751: __find_if(_Iterator __first, _Iterator __last, _Predicate __pred) 8751: { 8751: return __find_if(__first, __last, __pred, 8751: std::__iterator_category(__first)); 8751: } 8751: 8751: 8751: template 8751: inline _InputIterator 8751: __find_if_not(_InputIterator __first, _InputIterator __last, 8751: _Predicate __pred) 8751: { 8751: return std::__find_if(__first, __last, 8751: __gnu_cxx::__ops::__negate(__pred), 8751: std::__iterator_category(__first)); 8751: } 8751: 8751: 8751: 8751: 8751: template 8751: _InputIterator 8751: __find_if_not_n(_InputIterator __first, _Distance& __len, _Predicate __pred) 8751: { 8751: for (; __len; --__len, (void) ++__first) 8751: if (!__pred(__first)) 8751: break; 8751: return __first; 8751: } 8751: # 202 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: _ForwardIterator1 8751: __search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8751: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8751: _BinaryPredicate __predicate) 8751: { 8751: 8751: if (__first1 == __last1 || __first2 == __last2) 8751: return __first1; 8751: 8751: 8751: _ForwardIterator2 __p1(__first2); 8751: if (++__p1 == __last2) 8751: return std::__find_if(__first1, __last1, 8751: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 8751: 8751: 8751: _ForwardIterator2 __p; 8751: _ForwardIterator1 __current = __first1; 8751: 8751: for (;;) 8751: { 8751: __first1 = 8751: std::__find_if(__first1, __last1, 8751: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 8751: 8751: if (__first1 == __last1) 8751: return __last1; 8751: 8751: __p = __p1; 8751: __current = __first1; 8751: if (++__current == __last1) 8751: return __last1; 8751: 8751: while (__predicate(__current, __p)) 8751: { 8751: if (++__p == __last2) 8751: return __first1; 8751: if (++__current == __last1) 8751: return __last1; 8751: } 8751: ++__first1; 8751: } 8751: return __first1; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: _ForwardIterator 8751: __search_n_aux(_ForwardIterator __first, _ForwardIterator __last, 8751: _Integer __count, _UnaryPredicate __unary_pred, 8751: std::forward_iterator_tag) 8751: { 8751: __first = std::__find_if(__first, __last, __unary_pred); 8751: while (__first != __last) 8751: { 8751: typename iterator_traits<_ForwardIterator>::difference_type 8751: __n = __count; 8751: _ForwardIterator __i = __first; 8751: ++__i; 8751: while (__i != __last && __n != 1 && __unary_pred(__i)) 8751: { 8751: ++__i; 8751: --__n; 8751: } 8751: if (__n == 1) 8751: return __first; 8751: if (__i == __last) 8751: return __last; 8751: __first = std::__find_if(++__i, __last, __unary_pred); 8751: } 8751: return __last; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: template 8751: _RandomAccessIter 8751: __search_n_aux(_RandomAccessIter __first, _RandomAccessIter __last, 8751: _Integer __count, _UnaryPredicate __unary_pred, 8751: std::random_access_iterator_tag) 8751: { 8751: typedef typename std::iterator_traits<_RandomAccessIter>::difference_type 8751: _DistanceType; 8751: 8751: _DistanceType __tailSize = __last - __first; 8751: _DistanceType __remainder = __count; 8751: 8751: while (__remainder <= __tailSize) 8751: { 8751: __first += __remainder; 8751: __tailSize -= __remainder; 8751: 8751: 8751: _RandomAccessIter __backTrack = __first; 8751: while (__unary_pred(--__backTrack)) 8751: { 8751: if (--__remainder == 0) 8751: return (__first - __count); 8751: } 8751: __remainder = __count + 1 - (__first - __backTrack); 8751: } 8751: return __last; 8751: } 8751: 8751: template 8751: _ForwardIterator 8751: __search_n(_ForwardIterator __first, _ForwardIterator __last, 8751: _Integer __count, 8751: _UnaryPredicate __unary_pred) 8751: { 8751: if (__count <= 0) 8751: return __first; 8751: 8751: if (__count == 1) 8751: return std::__find_if(__first, __last, __unary_pred); 8751: 8751: return std::__search_n_aux(__first, __last, __count, __unary_pred, 8751: std::__iterator_category(__first)); 8751: } 8751: 8751: 8751: template 8751: _ForwardIterator1 8751: __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8751: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8751: forward_iterator_tag, forward_iterator_tag, 8751: _BinaryPredicate __comp) 8751: { 8751: if (__first2 == __last2) 8751: return __last1; 8751: 8751: _ForwardIterator1 __result = __last1; 8751: while (1) 8751: { 8751: _ForwardIterator1 __new_result 8751: = std::__search(__first1, __last1, __first2, __last2, __comp); 8751: if (__new_result == __last1) 8751: return __result; 8751: else 8751: { 8751: __result = __new_result; 8751: __first1 = __new_result; 8751: ++__first1; 8751: } 8751: } 8751: } 8751: 8751: 8751: template 8751: _BidirectionalIterator1 8751: __find_end(_BidirectionalIterator1 __first1, 8751: _BidirectionalIterator1 __last1, 8751: _BidirectionalIterator2 __first2, 8751: _BidirectionalIterator2 __last2, 8751: bidirectional_iterator_tag, bidirectional_iterator_tag, 8751: _BinaryPredicate __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1; 8751: typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2; 8751: 8751: _RevIterator1 __rlast1(__first1); 8751: _RevIterator2 __rlast2(__first2); 8751: _RevIterator1 __rresult = std::__search(_RevIterator1(__last1), __rlast1, 8751: _RevIterator2(__last2), __rlast2, 8751: __comp); 8751: 8751: if (__rresult == __rlast1) 8751: return __last1; 8751: else 8751: { 8751: _BidirectionalIterator1 __result = __rresult.base(); 8751: std::advance(__result, -std::distance(__first2, __last2)); 8751: return __result; 8751: } 8751: } 8751: # 423 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator1 8751: find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8751: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__find_end(__first1, __last1, __first2, __last2, 8751: std::__iterator_category(__first1), 8751: std::__iterator_category(__first2), 8751: __gnu_cxx::__ops::__iter_equal_to_iter()); 8751: } 8751: # 471 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator1 8751: find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8751: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8751: _BinaryPredicate __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__find_end(__first1, __last1, __first2, __last2, 8751: std::__iterator_category(__first1), 8751: std::__iterator_category(__first2), 8751: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: # 506 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline bool 8751: all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8751: { return __last == std::find_if_not(__first, __last, __pred); } 8751: # 523 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline bool 8751: none_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8751: { return __last == std::find_if(__first, __last, __pred); } 8751: # 541 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline bool 8751: any_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8751: { return !std::none_of(__first, __last, __pred); } 8751: # 556 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _InputIterator 8751: find_if_not(_InputIterator __first, _InputIterator __last, 8751: _Predicate __pred) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: return std::__find_if_not(__first, __last, 8751: __gnu_cxx::__ops::__pred_iter(__pred)); 8751: } 8751: # 580 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline bool 8751: is_partitioned(_InputIterator __first, _InputIterator __last, 8751: _Predicate __pred) 8751: { 8751: __first = std::find_if_not(__first, __last, __pred); 8751: if (__first == __last) 8751: return true; 8751: ++__first; 8751: return std::none_of(__first, __last, __pred); 8751: } 8751: # 601 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: _ForwardIterator 8751: partition_point(_ForwardIterator __first, _ForwardIterator __last, 8751: _Predicate __pred) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: typedef typename iterator_traits<_ForwardIterator>::difference_type 8751: _DistanceType; 8751: 8751: _DistanceType __len = std::distance(__first, __last); 8751: _DistanceType __half; 8751: _ForwardIterator __middle; 8751: 8751: while (__len > 0) 8751: { 8751: __half = __len >> 1; 8751: __middle = __first; 8751: std::advance(__middle, __half); 8751: if (__pred(*__middle)) 8751: { 8751: __first = __middle; 8751: ++__first; 8751: __len = __len - __half - 1; 8751: } 8751: else 8751: __len = __half; 8751: } 8751: return __first; 8751: } 8751: 8751: 8751: template 8751: _OutputIterator 8751: __remove_copy_if(_InputIterator __first, _InputIterator __last, 8751: _OutputIterator __result, _Predicate __pred) 8751: { 8751: for (; __first != __last; ++__first) 8751: if (!__pred(__first)) 8751: { 8751: *__result = *__first; 8751: ++__result; 8751: } 8751: return __result; 8751: } 8751: # 668 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _OutputIterator 8751: remove_copy(_InputIterator __first, _InputIterator __last, 8751: _OutputIterator __result, const _Tp& __value) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__remove_copy_if(__first, __last, __result, 8751: __gnu_cxx::__ops::__iter_equals_val(__value)); 8751: } 8751: # 700 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _OutputIterator 8751: remove_copy_if(_InputIterator __first, _InputIterator __last, 8751: _OutputIterator __result, _Predicate __pred) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__remove_copy_if(__first, __last, __result, 8751: __gnu_cxx::__ops::__pred_iter(__pred)); 8751: } 8751: # 734 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: _OutputIterator 8751: copy_if(_InputIterator __first, _InputIterator __last, 8751: _OutputIterator __result, _Predicate __pred) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: for (; __first != __last; ++__first) 8751: if (__pred(*__first)) 8751: { 8751: *__result = *__first; 8751: ++__result; 8751: } 8751: return __result; 8751: } 8751: 8751: template 8751: _OutputIterator 8751: __copy_n(_InputIterator __first, _Size __n, 8751: _OutputIterator __result, input_iterator_tag) 8751: { 8751: if (__n > 0) 8751: { 8751: while (true) 8751: { 8751: *__result = *__first; 8751: ++__result; 8751: if (--__n > 0) 8751: ++__first; 8751: else 8751: break; 8751: } 8751: } 8751: return __result; 8751: } 8751: 8751: template 8751: inline _OutputIterator 8751: __copy_n(_RandomAccessIterator __first, _Size __n, 8751: _OutputIterator __result, random_access_iterator_tag) 8751: { return std::copy(__first, __first + __n, __result); } 8751: # 797 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _OutputIterator 8751: copy_n(_InputIterator __first, _Size __n, _OutputIterator __result) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: return std::__copy_n(__first, __n, __result, 8751: std::__iterator_category(__first)); 8751: } 8751: # 825 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: pair<_OutputIterator1, _OutputIterator2> 8751: partition_copy(_InputIterator __first, _InputIterator __last, 8751: _OutputIterator1 __out_true, _OutputIterator2 __out_false, 8751: _Predicate __pred) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: for (; __first != __last; ++__first) 8751: if (__pred(*__first)) 8751: { 8751: *__out_true = *__first; 8751: ++__out_true; 8751: } 8751: else 8751: { 8751: *__out_false = *__first; 8751: ++__out_false; 8751: } 8751: 8751: return pair<_OutputIterator1, _OutputIterator2>(__out_true, __out_false); 8751: } 8751: 8751: 8751: template 8751: _ForwardIterator 8751: __remove_if(_ForwardIterator __first, _ForwardIterator __last, 8751: _Predicate __pred) 8751: { 8751: __first = std::__find_if(__first, __last, __pred); 8751: if (__first == __last) 8751: return __first; 8751: _ForwardIterator __result = __first; 8751: ++__first; 8751: for (; __first != __last; ++__first) 8751: if (!__pred(__first)) 8751: { 8751: *__result = std::move(*__first); 8751: ++__result; 8751: } 8751: return __result; 8751: } 8751: # 894 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator 8751: remove(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __value) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__remove_if(__first, __last, 8751: __gnu_cxx::__ops::__iter_equals_val(__value)); 8751: } 8751: # 927 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator 8751: remove_if(_ForwardIterator __first, _ForwardIterator __last, 8751: _Predicate __pred) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__remove_if(__first, __last, 8751: __gnu_cxx::__ops::__pred_iter(__pred)); 8751: } 8751: 8751: template 8751: _ForwardIterator 8751: __adjacent_find(_ForwardIterator __first, _ForwardIterator __last, 8751: _BinaryPredicate __binary_pred) 8751: { 8751: if (__first == __last) 8751: return __last; 8751: _ForwardIterator __next = __first; 8751: while (++__next != __last) 8751: { 8751: if (__binary_pred(__first, __next)) 8751: return __first; 8751: __first = __next; 8751: } 8751: return __last; 8751: } 8751: 8751: template 8751: _ForwardIterator 8751: __unique(_ForwardIterator __first, _ForwardIterator __last, 8751: _BinaryPredicate __binary_pred) 8751: { 8751: 8751: __first = std::__adjacent_find(__first, __last, __binary_pred); 8751: if (__first == __last) 8751: return __last; 8751: 8751: 8751: _ForwardIterator __dest = __first; 8751: ++__first; 8751: while (++__first != __last) 8751: if (!__binary_pred(__dest, __first)) 8751: *++__dest = std::move(*__first); 8751: return ++__dest; 8751: } 8751: # 993 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator 8751: unique(_ForwardIterator __first, _ForwardIterator __last) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__unique(__first, __last, 8751: __gnu_cxx::__ops::__iter_equal_to_iter()); 8751: } 8751: # 1023 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator 8751: unique(_ForwardIterator __first, _ForwardIterator __last, 8751: _BinaryPredicate __binary_pred) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__unique(__first, __last, 8751: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: _OutputIterator 8751: __unique_copy(_ForwardIterator __first, _ForwardIterator __last, 8751: _OutputIterator __result, _BinaryPredicate __binary_pred, 8751: forward_iterator_tag, output_iterator_tag) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: _ForwardIterator __next = __first; 8751: *__result = *__first; 8751: while (++__next != __last) 8751: if (!__binary_pred(__first, __next)) 8751: { 8751: __first = __next; 8751: *++__result = *__first; 8751: } 8751: return ++__result; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: _OutputIterator 8751: __unique_copy(_InputIterator __first, _InputIterator __last, 8751: _OutputIterator __result, _BinaryPredicate __binary_pred, 8751: input_iterator_tag, output_iterator_tag) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: typename iterator_traits<_InputIterator>::value_type __value = *__first; 8751: __decltype(__gnu_cxx::__ops::__iter_comp_val(__binary_pred)) 8751: __rebound_pred 8751: = __gnu_cxx::__ops::__iter_comp_val(__binary_pred); 8751: *__result = __value; 8751: while (++__first != __last) 8751: if (!__rebound_pred(__first, __value)) 8751: { 8751: __value = *__first; 8751: *++__result = __value; 8751: } 8751: return ++__result; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: _ForwardIterator 8751: __unique_copy(_InputIterator __first, _InputIterator __last, 8751: _ForwardIterator __result, _BinaryPredicate __binary_pred, 8751: input_iterator_tag, forward_iterator_tag) 8751: { 8751: 8751: 8751: 8751: 8751: *__result = *__first; 8751: while (++__first != __last) 8751: if (!__binary_pred(__result, __first)) 8751: *++__result = *__first; 8751: return ++__result; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: void 8751: __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last, 8751: bidirectional_iterator_tag) 8751: { 8751: while (true) 8751: if (__first == __last || __first == --__last) 8751: return; 8751: else 8751: { 8751: std::iter_swap(__first, __last); 8751: ++__first; 8751: } 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: void 8751: __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last, 8751: random_access_iterator_tag) 8751: { 8751: if (__first == __last) 8751: return; 8751: --__last; 8751: while (__first < __last) 8751: { 8751: std::iter_swap(__first, __last); 8751: ++__first; 8751: --__last; 8751: } 8751: } 8751: # 1178 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline void 8751: reverse(_BidirectionalIterator __first, _BidirectionalIterator __last) 8751: { 8751: 8751: 8751: 8751: ; 8751: std::__reverse(__first, __last, std::__iterator_category(__first)); 8751: } 8751: # 1205 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: _OutputIterator 8751: reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last, 8751: _OutputIterator __result) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: while (__first != __last) 8751: { 8751: --__last; 8751: *__result = *__last; 8751: ++__result; 8751: } 8751: return __result; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: template 8751: _EuclideanRingElement 8751: __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) 8751: { 8751: while (__n != 0) 8751: { 8751: _EuclideanRingElement __t = __m % __n; 8751: __m = __n; 8751: __n = __t; 8751: } 8751: return __m; 8751: } 8751: 8751: inline namespace _V2 8751: { 8751: 8751: 8751: template 8751: _ForwardIterator 8751: __rotate(_ForwardIterator __first, 8751: _ForwardIterator __middle, 8751: _ForwardIterator __last, 8751: forward_iterator_tag) 8751: { 8751: if (__first == __middle) 8751: return __last; 8751: else if (__last == __middle) 8751: return __first; 8751: 8751: _ForwardIterator __first2 = __middle; 8751: do 8751: { 8751: std::iter_swap(__first, __first2); 8751: ++__first; 8751: ++__first2; 8751: if (__first == __middle) 8751: __middle = __first2; 8751: } 8751: while (__first2 != __last); 8751: 8751: _ForwardIterator __ret = __first; 8751: 8751: __first2 = __middle; 8751: 8751: while (__first2 != __last) 8751: { 8751: std::iter_swap(__first, __first2); 8751: ++__first; 8751: ++__first2; 8751: if (__first == __middle) 8751: __middle = __first2; 8751: else if (__first2 == __last) 8751: __first2 = __middle; 8751: } 8751: return __ret; 8751: } 8751: 8751: 8751: template 8751: _BidirectionalIterator 8751: __rotate(_BidirectionalIterator __first, 8751: _BidirectionalIterator __middle, 8751: _BidirectionalIterator __last, 8751: bidirectional_iterator_tag) 8751: { 8751: 8751: 8751: 8751: 8751: if (__first == __middle) 8751: return __last; 8751: else if (__last == __middle) 8751: return __first; 8751: 8751: std::__reverse(__first, __middle, bidirectional_iterator_tag()); 8751: std::__reverse(__middle, __last, bidirectional_iterator_tag()); 8751: 8751: while (__first != __middle && __middle != __last) 8751: { 8751: std::iter_swap(__first, --__last); 8751: ++__first; 8751: } 8751: 8751: if (__first == __middle) 8751: { 8751: std::__reverse(__middle, __last, bidirectional_iterator_tag()); 8751: return __last; 8751: } 8751: else 8751: { 8751: std::__reverse(__first, __middle, bidirectional_iterator_tag()); 8751: return __first; 8751: } 8751: } 8751: 8751: 8751: template 8751: _RandomAccessIterator 8751: __rotate(_RandomAccessIterator __first, 8751: _RandomAccessIterator __middle, 8751: _RandomAccessIterator __last, 8751: random_access_iterator_tag) 8751: { 8751: 8751: 8751: 8751: 8751: if (__first == __middle) 8751: return __last; 8751: else if (__last == __middle) 8751: return __first; 8751: 8751: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8751: _Distance; 8751: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8751: _ValueType; 8751: 8751: _Distance __n = __last - __first; 8751: _Distance __k = __middle - __first; 8751: 8751: if (__k == __n - __k) 8751: { 8751: std::swap_ranges(__first, __middle, __middle); 8751: return __middle; 8751: } 8751: 8751: _RandomAccessIterator __p = __first; 8751: _RandomAccessIterator __ret = __first + (__last - __middle); 8751: 8751: for (;;) 8751: { 8751: if (__k < __n - __k) 8751: { 8751: if (__is_pod(_ValueType) && __k == 1) 8751: { 8751: _ValueType __t = std::move(*__p); 8751: std::move(__p + 1, __p + __n, __p); 8751: *(__p + __n - 1) = std::move(__t); 8751: return __ret; 8751: } 8751: _RandomAccessIterator __q = __p + __k; 8751: for (_Distance __i = 0; __i < __n - __k; ++ __i) 8751: { 8751: std::iter_swap(__p, __q); 8751: ++__p; 8751: ++__q; 8751: } 8751: __n %= __k; 8751: if (__n == 0) 8751: return __ret; 8751: std::swap(__n, __k); 8751: __k = __n - __k; 8751: } 8751: else 8751: { 8751: __k = __n - __k; 8751: if (__is_pod(_ValueType) && __k == 1) 8751: { 8751: _ValueType __t = std::move(*(__p + __n - 1)); 8751: std::move_backward(__p, __p + __n - 1, __p + __n); 8751: *__p = std::move(__t); 8751: return __ret; 8751: } 8751: _RandomAccessIterator __q = __p + __n; 8751: __p = __q - __k; 8751: for (_Distance __i = 0; __i < __n - __k; ++ __i) 8751: { 8751: --__p; 8751: --__q; 8751: std::iter_swap(__p, __q); 8751: } 8751: __n %= __k; 8751: if (__n == 0) 8751: return __ret; 8751: std::swap(__n, __k); 8751: } 8751: } 8751: } 8751: # 1432 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator 8751: rotate(_ForwardIterator __first, _ForwardIterator __middle, 8751: _ForwardIterator __last) 8751: { 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__rotate(__first, __middle, __last, 8751: std::__iterator_category(__first)); 8751: } 8751: 8751: } 8751: # 1469 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _OutputIterator 8751: rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, 8751: _ForwardIterator __last, _OutputIterator __result) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::copy(__first, __middle, 8751: std::copy(__middle, __last, __result)); 8751: } 8751: 8751: 8751: template 8751: _ForwardIterator 8751: __partition(_ForwardIterator __first, _ForwardIterator __last, 8751: _Predicate __pred, forward_iterator_tag) 8751: { 8751: if (__first == __last) 8751: return __first; 8751: 8751: while (__pred(*__first)) 8751: if (++__first == __last) 8751: return __first; 8751: 8751: _ForwardIterator __next = __first; 8751: 8751: while (++__next != __last) 8751: if (__pred(*__next)) 8751: { 8751: std::iter_swap(__first, __next); 8751: ++__first; 8751: } 8751: 8751: return __first; 8751: } 8751: 8751: 8751: template 8751: _BidirectionalIterator 8751: __partition(_BidirectionalIterator __first, _BidirectionalIterator __last, 8751: _Predicate __pred, bidirectional_iterator_tag) 8751: { 8751: while (true) 8751: { 8751: while (true) 8751: if (__first == __last) 8751: return __first; 8751: else if (__pred(*__first)) 8751: ++__first; 8751: else 8751: break; 8751: --__last; 8751: while (true) 8751: if (__first == __last) 8751: return __first; 8751: else if (!bool(__pred(*__last))) 8751: --__last; 8751: else 8751: break; 8751: std::iter_swap(__first, __last); 8751: ++__first; 8751: } 8751: } 8751: # 1546 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: _ForwardIterator 8751: __stable_partition_adaptive(_ForwardIterator __first, 8751: _ForwardIterator __last, 8751: _Predicate __pred, _Distance __len, 8751: _Pointer __buffer, 8751: _Distance __buffer_size) 8751: { 8751: if (__len == 1) 8751: return __first; 8751: 8751: if (__len <= __buffer_size) 8751: { 8751: _ForwardIterator __result1 = __first; 8751: _Pointer __result2 = __buffer; 8751: 8751: 8751: 8751: 8751: *__result2 = std::move(*__first); 8751: ++__result2; 8751: ++__first; 8751: for (; __first != __last; ++__first) 8751: if (__pred(__first)) 8751: { 8751: *__result1 = std::move(*__first); 8751: ++__result1; 8751: } 8751: else 8751: { 8751: *__result2 = std::move(*__first); 8751: ++__result2; 8751: } 8751: 8751: std::move(__buffer, __result2, __result1); 8751: return __result1; 8751: } 8751: 8751: _ForwardIterator __middle = __first; 8751: std::advance(__middle, __len / 2); 8751: _ForwardIterator __left_split = 8751: std::__stable_partition_adaptive(__first, __middle, __pred, 8751: __len / 2, __buffer, 8751: __buffer_size); 8751: 8751: 8751: 8751: _Distance __right_len = __len - __len / 2; 8751: _ForwardIterator __right_split = 8751: std::__find_if_not_n(__middle, __right_len, __pred); 8751: 8751: if (__right_len) 8751: __right_split = 8751: std::__stable_partition_adaptive(__right_split, __last, __pred, 8751: __right_len, 8751: __buffer, __buffer_size); 8751: 8751: std::rotate(__left_split, __middle, __right_split); 8751: std::advance(__left_split, std::distance(__middle, __right_split)); 8751: return __left_split; 8751: } 8751: 8751: template 8751: _ForwardIterator 8751: __stable_partition(_ForwardIterator __first, _ForwardIterator __last, 8751: _Predicate __pred) 8751: { 8751: __first = std::__find_if_not(__first, __last, __pred); 8751: 8751: if (__first == __last) 8751: return __first; 8751: 8751: typedef typename iterator_traits<_ForwardIterator>::value_type 8751: _ValueType; 8751: typedef typename iterator_traits<_ForwardIterator>::difference_type 8751: _DistanceType; 8751: 8751: _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first, __last); 8751: return 8751: std::__stable_partition_adaptive(__first, __last, __pred, 8751: _DistanceType(__buf.requested_size()), 8751: __buf.begin(), 8751: _DistanceType(__buf.size())); 8751: } 8751: # 1649 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator 8751: stable_partition(_ForwardIterator __first, _ForwardIterator __last, 8751: _Predicate __pred) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__stable_partition(__first, __last, 8751: __gnu_cxx::__ops::__pred_iter(__pred)); 8751: } 8751: 8751: 8751: template 8751: void 8751: __heap_select(_RandomAccessIterator __first, 8751: _RandomAccessIterator __middle, 8751: _RandomAccessIterator __last, _Compare __comp) 8751: { 8751: std::__make_heap(__first, __middle, __comp); 8751: for (_RandomAccessIterator __i = __middle; __i < __last; ++__i) 8751: if (__comp(__i, __first)) 8751: std::__pop_heap(__first, __middle, __i, __comp); 8751: } 8751: 8751: 8751: 8751: template 8751: _RandomAccessIterator 8751: __partial_sort_copy(_InputIterator __first, _InputIterator __last, 8751: _RandomAccessIterator __result_first, 8751: _RandomAccessIterator __result_last, 8751: _Compare __comp) 8751: { 8751: typedef typename iterator_traits<_InputIterator>::value_type 8751: _InputValueType; 8751: typedef iterator_traits<_RandomAccessIterator> _RItTraits; 8751: typedef typename _RItTraits::difference_type _DistanceType; 8751: 8751: if (__result_first == __result_last) 8751: return __result_last; 8751: _RandomAccessIterator __result_real_last = __result_first; 8751: while (__first != __last && __result_real_last != __result_last) 8751: { 8751: *__result_real_last = *__first; 8751: ++__result_real_last; 8751: ++__first; 8751: } 8751: 8751: std::__make_heap(__result_first, __result_real_last, __comp); 8751: while (__first != __last) 8751: { 8751: if (__comp(__first, __result_first)) 8751: std::__adjust_heap(__result_first, _DistanceType(0), 8751: _DistanceType(__result_real_last 8751: - __result_first), 8751: _InputValueType(*__first), __comp); 8751: ++__first; 8751: } 8751: std::__sort_heap(__result_first, __result_real_last, __comp); 8751: return __result_real_last; 8751: } 8751: # 1735 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _RandomAccessIterator 8751: partial_sort_copy(_InputIterator __first, _InputIterator __last, 8751: _RandomAccessIterator __result_first, 8751: _RandomAccessIterator __result_last) 8751: { 8751: # 1749 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: 8751: return std::__partial_sort_copy(__first, __last, 8751: __result_first, __result_last, 8751: __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: # 1784 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _RandomAccessIterator 8751: partial_sort_copy(_InputIterator __first, _InputIterator __last, 8751: _RandomAccessIterator __result_first, 8751: _RandomAccessIterator __result_last, 8751: _Compare __comp) 8751: { 8751: # 1800 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: 8751: return std::__partial_sort_copy(__first, __last, 8751: __result_first, __result_last, 8751: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: 8751: 8751: template 8751: void 8751: __unguarded_linear_insert(_RandomAccessIterator __last, 8751: _Compare __comp) 8751: { 8751: typename iterator_traits<_RandomAccessIterator>::value_type 8751: __val = std::move(*__last); 8751: _RandomAccessIterator __next = __last; 8751: --__next; 8751: while (__comp(__val, __next)) 8751: { 8751: *__last = std::move(*__next); 8751: __last = __next; 8751: --__next; 8751: } 8751: *__last = std::move(__val); 8751: } 8751: 8751: 8751: template 8751: void 8751: __insertion_sort(_RandomAccessIterator __first, 8751: _RandomAccessIterator __last, _Compare __comp) 8751: { 8751: if (__first == __last) return; 8751: 8751: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8751: { 8751: if (__comp(__i, __first)) 8751: { 8751: typename iterator_traits<_RandomAccessIterator>::value_type 8751: __val = std::move(*__i); 8751: std::move_backward(__first, __i, __i + 1); 8751: *__first = std::move(__val); 8751: } 8751: else 8751: std::__unguarded_linear_insert(__i, 8751: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8751: } 8751: } 8751: 8751: 8751: template 8751: inline void 8751: __unguarded_insertion_sort(_RandomAccessIterator __first, 8751: _RandomAccessIterator __last, _Compare __comp) 8751: { 8751: for (_RandomAccessIterator __i = __first; __i != __last; ++__i) 8751: std::__unguarded_linear_insert(__i, 8751: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: enum { _S_threshold = 16 }; 8751: 8751: 8751: template 8751: void 8751: __final_insertion_sort(_RandomAccessIterator __first, 8751: _RandomAccessIterator __last, _Compare __comp) 8751: { 8751: if (__last - __first > int(_S_threshold)) 8751: { 8751: std::__insertion_sort(__first, __first + int(_S_threshold), __comp); 8751: std::__unguarded_insertion_sort(__first + int(_S_threshold), __last, 8751: __comp); 8751: } 8751: else 8751: std::__insertion_sort(__first, __last, __comp); 8751: } 8751: 8751: 8751: template 8751: _RandomAccessIterator 8751: __unguarded_partition(_RandomAccessIterator __first, 8751: _RandomAccessIterator __last, 8751: _RandomAccessIterator __pivot, _Compare __comp) 8751: { 8751: while (true) 8751: { 8751: while (__comp(__first, __pivot)) 8751: ++__first; 8751: --__last; 8751: while (__comp(__pivot, __last)) 8751: --__last; 8751: if (!(__first < __last)) 8751: return __first; 8751: std::iter_swap(__first, __last); 8751: ++__first; 8751: } 8751: } 8751: 8751: 8751: template 8751: inline _RandomAccessIterator 8751: __unguarded_partition_pivot(_RandomAccessIterator __first, 8751: _RandomAccessIterator __last, _Compare __comp) 8751: { 8751: _RandomAccessIterator __mid = __first + (__last - __first) / 2; 8751: std::__move_median_to_first(__first, __first + 1, __mid, __last - 1, 8751: __comp); 8751: return std::__unguarded_partition(__first + 1, __last, __first, __comp); 8751: } 8751: 8751: template 8751: inline void 8751: __partial_sort(_RandomAccessIterator __first, 8751: _RandomAccessIterator __middle, 8751: _RandomAccessIterator __last, 8751: _Compare __comp) 8751: { 8751: std::__heap_select(__first, __middle, __last, __comp); 8751: std::__sort_heap(__first, __middle, __comp); 8751: } 8751: 8751: 8751: template 8751: void 8751: __introsort_loop(_RandomAccessIterator __first, 8751: _RandomAccessIterator __last, 8751: _Size __depth_limit, _Compare __comp) 8751: { 8751: while (__last - __first > int(_S_threshold)) 8751: { 8751: if (__depth_limit == 0) 8751: { 8751: std::__partial_sort(__first, __last, __last, __comp); 8751: return; 8751: } 8751: --__depth_limit; 8751: _RandomAccessIterator __cut = 8751: std::__unguarded_partition_pivot(__first, __last, __comp); 8751: std::__introsort_loop(__cut, __last, __depth_limit, __comp); 8751: __last = __cut; 8751: } 8751: } 8751: 8751: 8751: 8751: template 8751: inline void 8751: __sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8751: _Compare __comp) 8751: { 8751: if (__first != __last) 8751: { 8751: std::__introsort_loop(__first, __last, 8751: std::__lg(__last - __first) * 2, 8751: __comp); 8751: std::__final_insertion_sort(__first, __last, __comp); 8751: } 8751: } 8751: 8751: template 8751: void 8751: __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth, 8751: _RandomAccessIterator __last, _Size __depth_limit, 8751: _Compare __comp) 8751: { 8751: while (__last - __first > 3) 8751: { 8751: if (__depth_limit == 0) 8751: { 8751: std::__heap_select(__first, __nth + 1, __last, __comp); 8751: 8751: std::iter_swap(__first, __nth); 8751: return; 8751: } 8751: --__depth_limit; 8751: _RandomAccessIterator __cut = 8751: std::__unguarded_partition_pivot(__first, __last, __comp); 8751: if (__cut <= __nth) 8751: __first = __cut; 8751: else 8751: __last = __cut; 8751: } 8751: std::__insertion_sort(__first, __last, __comp); 8751: } 8751: # 2021 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator 8751: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __val, _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__lower_bound(__first, __last, __val, 8751: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8751: } 8751: 8751: template 8751: _ForwardIterator 8751: __upper_bound(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __val, _Compare __comp) 8751: { 8751: typedef typename iterator_traits<_ForwardIterator>::difference_type 8751: _DistanceType; 8751: 8751: _DistanceType __len = std::distance(__first, __last); 8751: 8751: while (__len > 0) 8751: { 8751: _DistanceType __half = __len >> 1; 8751: _ForwardIterator __middle = __first; 8751: std::advance(__middle, __half); 8751: if (__comp(__val, __middle)) 8751: __len = __half; 8751: else 8751: { 8751: __first = __middle; 8751: ++__first; 8751: __len = __len - __half - 1; 8751: } 8751: } 8751: return __first; 8751: } 8751: # 2075 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator 8751: upper_bound(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __val) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__upper_bound(__first, __last, __val, 8751: __gnu_cxx::__ops::__val_less_iter()); 8751: } 8751: # 2105 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator 8751: upper_bound(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __val, _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__upper_bound(__first, __last, __val, 8751: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8751: } 8751: 8751: template 8751: pair<_ForwardIterator, _ForwardIterator> 8751: __equal_range(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __val, 8751: _CompareItTp __comp_it_val, _CompareTpIt __comp_val_it) 8751: { 8751: typedef typename iterator_traits<_ForwardIterator>::difference_type 8751: _DistanceType; 8751: 8751: _DistanceType __len = std::distance(__first, __last); 8751: 8751: while (__len > 0) 8751: { 8751: _DistanceType __half = __len >> 1; 8751: _ForwardIterator __middle = __first; 8751: std::advance(__middle, __half); 8751: if (__comp_it_val(__middle, __val)) 8751: { 8751: __first = __middle; 8751: ++__first; 8751: __len = __len - __half - 1; 8751: } 8751: else if (__comp_val_it(__val, __middle)) 8751: __len = __half; 8751: else 8751: { 8751: _ForwardIterator __left 8751: = std::__lower_bound(__first, __middle, __val, __comp_it_val); 8751: std::advance(__first, __len); 8751: _ForwardIterator __right 8751: = std::__upper_bound(++__middle, __first, __val, __comp_val_it); 8751: return pair<_ForwardIterator, _ForwardIterator>(__left, __right); 8751: } 8751: } 8751: return pair<_ForwardIterator, _ForwardIterator>(__first, __first); 8751: } 8751: # 2176 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline pair<_ForwardIterator, _ForwardIterator> 8751: equal_range(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __val) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__equal_range(__first, __last, __val, 8751: __gnu_cxx::__ops::__iter_less_val(), 8751: __gnu_cxx::__ops::__val_less_iter()); 8751: } 8751: # 2212 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline pair<_ForwardIterator, _ForwardIterator> 8751: equal_range(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __val, _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: ; 8751: 8751: return std::__equal_range(__first, __last, __val, 8751: __gnu_cxx::__ops::__iter_comp_val(__comp), 8751: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8751: } 8751: # 2245 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: bool 8751: binary_search(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __val) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: _ForwardIterator __i 8751: = std::__lower_bound(__first, __last, __val, 8751: __gnu_cxx::__ops::__iter_less_val()); 8751: return __i != __last && !(__val < *__i); 8751: } 8751: # 2278 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: bool 8751: binary_search(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __val, _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: ; 8751: 8751: _ForwardIterator __i 8751: = std::__lower_bound(__first, __last, __val, 8751: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8751: return __i != __last && !bool(__comp(__val, *__i)); 8751: } 8751: 8751: 8751: 8751: 8751: template 8751: void 8751: __move_merge_adaptive(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _InputIterator2 __last2, 8751: _OutputIterator __result, _Compare __comp) 8751: { 8751: while (__first1 != __last1 && __first2 != __last2) 8751: { 8751: if (__comp(__first2, __first1)) 8751: { 8751: *__result = std::move(*__first2); 8751: ++__first2; 8751: } 8751: else 8751: { 8751: *__result = std::move(*__first1); 8751: ++__first1; 8751: } 8751: ++__result; 8751: } 8751: if (__first1 != __last1) 8751: std::move(__first1, __last1, __result); 8751: } 8751: 8751: 8751: template 8751: void 8751: __move_merge_adaptive_backward(_BidirectionalIterator1 __first1, 8751: _BidirectionalIterator1 __last1, 8751: _BidirectionalIterator2 __first2, 8751: _BidirectionalIterator2 __last2, 8751: _BidirectionalIterator3 __result, 8751: _Compare __comp) 8751: { 8751: if (__first1 == __last1) 8751: { 8751: std::move_backward(__first2, __last2, __result); 8751: return; 8751: } 8751: else if (__first2 == __last2) 8751: return; 8751: 8751: --__last1; 8751: --__last2; 8751: while (true) 8751: { 8751: if (__comp(__last2, __last1)) 8751: { 8751: *--__result = std::move(*__last1); 8751: if (__first1 == __last1) 8751: { 8751: std::move_backward(__first2, ++__last2, __result); 8751: return; 8751: } 8751: --__last1; 8751: } 8751: else 8751: { 8751: *--__result = std::move(*__last2); 8751: if (__first2 == __last2) 8751: return; 8751: --__last2; 8751: } 8751: } 8751: } 8751: 8751: 8751: template 8751: _BidirectionalIterator1 8751: __rotate_adaptive(_BidirectionalIterator1 __first, 8751: _BidirectionalIterator1 __middle, 8751: _BidirectionalIterator1 __last, 8751: _Distance __len1, _Distance __len2, 8751: _BidirectionalIterator2 __buffer, 8751: _Distance __buffer_size) 8751: { 8751: _BidirectionalIterator2 __buffer_end; 8751: if (__len1 > __len2 && __len2 <= __buffer_size) 8751: { 8751: if (__len2) 8751: { 8751: __buffer_end = std::move(__middle, __last, __buffer); 8751: std::move_backward(__first, __middle, __last); 8751: return std::move(__buffer, __buffer_end, __first); 8751: } 8751: else 8751: return __first; 8751: } 8751: else if (__len1 <= __buffer_size) 8751: { 8751: if (__len1) 8751: { 8751: __buffer_end = std::move(__first, __middle, __buffer); 8751: std::move(__middle, __last, __first); 8751: return std::move_backward(__buffer, __buffer_end, __last); 8751: } 8751: else 8751: return __last; 8751: } 8751: else 8751: { 8751: std::rotate(__first, __middle, __last); 8751: std::advance(__first, std::distance(__middle, __last)); 8751: return __first; 8751: } 8751: } 8751: 8751: 8751: template 8751: void 8751: __merge_adaptive(_BidirectionalIterator __first, 8751: _BidirectionalIterator __middle, 8751: _BidirectionalIterator __last, 8751: _Distance __len1, _Distance __len2, 8751: _Pointer __buffer, _Distance __buffer_size, 8751: _Compare __comp) 8751: { 8751: if (__len1 <= __len2 && __len1 <= __buffer_size) 8751: { 8751: _Pointer __buffer_end = std::move(__first, __middle, __buffer); 8751: std::__move_merge_adaptive(__buffer, __buffer_end, __middle, __last, 8751: __first, __comp); 8751: } 8751: else if (__len2 <= __buffer_size) 8751: { 8751: _Pointer __buffer_end = std::move(__middle, __last, __buffer); 8751: std::__move_merge_adaptive_backward(__first, __middle, __buffer, 8751: __buffer_end, __last, __comp); 8751: } 8751: else 8751: { 8751: _BidirectionalIterator __first_cut = __first; 8751: _BidirectionalIterator __second_cut = __middle; 8751: _Distance __len11 = 0; 8751: _Distance __len22 = 0; 8751: if (__len1 > __len2) 8751: { 8751: __len11 = __len1 / 2; 8751: std::advance(__first_cut, __len11); 8751: __second_cut 8751: = std::__lower_bound(__middle, __last, *__first_cut, 8751: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8751: __len22 = std::distance(__middle, __second_cut); 8751: } 8751: else 8751: { 8751: __len22 = __len2 / 2; 8751: std::advance(__second_cut, __len22); 8751: __first_cut 8751: = std::__upper_bound(__first, __middle, *__second_cut, 8751: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8751: __len11 = std::distance(__first, __first_cut); 8751: } 8751: 8751: _BidirectionalIterator __new_middle 8751: = std::__rotate_adaptive(__first_cut, __middle, __second_cut, 8751: __len1 - __len11, __len22, __buffer, 8751: __buffer_size); 8751: std::__merge_adaptive(__first, __first_cut, __new_middle, __len11, 8751: __len22, __buffer, __buffer_size, __comp); 8751: std::__merge_adaptive(__new_middle, __second_cut, __last, 8751: __len1 - __len11, 8751: __len2 - __len22, __buffer, 8751: __buffer_size, __comp); 8751: } 8751: } 8751: 8751: 8751: template 8751: void 8751: __merge_without_buffer(_BidirectionalIterator __first, 8751: _BidirectionalIterator __middle, 8751: _BidirectionalIterator __last, 8751: _Distance __len1, _Distance __len2, 8751: _Compare __comp) 8751: { 8751: if (__len1 == 0 || __len2 == 0) 8751: return; 8751: 8751: if (__len1 + __len2 == 2) 8751: { 8751: if (__comp(__middle, __first)) 8751: std::iter_swap(__first, __middle); 8751: return; 8751: } 8751: 8751: _BidirectionalIterator __first_cut = __first; 8751: _BidirectionalIterator __second_cut = __middle; 8751: _Distance __len11 = 0; 8751: _Distance __len22 = 0; 8751: if (__len1 > __len2) 8751: { 8751: __len11 = __len1 / 2; 8751: std::advance(__first_cut, __len11); 8751: __second_cut 8751: = std::__lower_bound(__middle, __last, *__first_cut, 8751: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8751: __len22 = std::distance(__middle, __second_cut); 8751: } 8751: else 8751: { 8751: __len22 = __len2 / 2; 8751: std::advance(__second_cut, __len22); 8751: __first_cut 8751: = std::__upper_bound(__first, __middle, *__second_cut, 8751: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8751: __len11 = std::distance(__first, __first_cut); 8751: } 8751: 8751: std::rotate(__first_cut, __middle, __second_cut); 8751: _BidirectionalIterator __new_middle = __first_cut; 8751: std::advance(__new_middle, std::distance(__middle, __second_cut)); 8751: std::__merge_without_buffer(__first, __first_cut, __new_middle, 8751: __len11, __len22, __comp); 8751: std::__merge_without_buffer(__new_middle, __second_cut, __last, 8751: __len1 - __len11, __len2 - __len22, __comp); 8751: } 8751: 8751: template 8751: void 8751: __inplace_merge(_BidirectionalIterator __first, 8751: _BidirectionalIterator __middle, 8751: _BidirectionalIterator __last, 8751: _Compare __comp) 8751: { 8751: typedef typename iterator_traits<_BidirectionalIterator>::value_type 8751: _ValueType; 8751: typedef typename iterator_traits<_BidirectionalIterator>::difference_type 8751: _DistanceType; 8751: 8751: if (__first == __middle || __middle == __last) 8751: return; 8751: 8751: const _DistanceType __len1 = std::distance(__first, __middle); 8751: const _DistanceType __len2 = std::distance(__middle, __last); 8751: 8751: typedef _Temporary_buffer<_BidirectionalIterator, _ValueType> _TmpBuf; 8751: _TmpBuf __buf(__first, __last); 8751: 8751: if (__buf.begin() == 0) 8751: std::__merge_without_buffer 8751: (__first, __middle, __last, __len1, __len2, __comp); 8751: else 8751: std::__merge_adaptive 8751: (__first, __middle, __last, __len1, __len2, __buf.begin(), 8751: _DistanceType(__buf.size()), __comp); 8751: } 8751: # 2572 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline void 8751: inplace_merge(_BidirectionalIterator __first, 8751: _BidirectionalIterator __middle, 8751: _BidirectionalIterator __last) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: 8751: std::__inplace_merge(__first, __middle, __last, 8751: __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: # 2613 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline void 8751: inplace_merge(_BidirectionalIterator __first, 8751: _BidirectionalIterator __middle, 8751: _BidirectionalIterator __last, 8751: _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: 8751: std::__inplace_merge(__first, __middle, __last, 8751: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: 8751: 8751: 8751: template 8751: _OutputIterator 8751: __move_merge(_InputIterator __first1, _InputIterator __last1, 8751: _InputIterator __first2, _InputIterator __last2, 8751: _OutputIterator __result, _Compare __comp) 8751: { 8751: while (__first1 != __last1 && __first2 != __last2) 8751: { 8751: if (__comp(__first2, __first1)) 8751: { 8751: *__result = std::move(*__first2); 8751: ++__first2; 8751: } 8751: else 8751: { 8751: *__result = std::move(*__first1); 8751: ++__first1; 8751: } 8751: ++__result; 8751: } 8751: return std::move(__first2, __last2, std::move(__first1, __last1, __result)) 8751: 8751: ; 8751: } 8751: 8751: template 8751: void 8751: __merge_sort_loop(_RandomAccessIterator1 __first, 8751: _RandomAccessIterator1 __last, 8751: _RandomAccessIterator2 __result, _Distance __step_size, 8751: _Compare __comp) 8751: { 8751: const _Distance __two_step = 2 * __step_size; 8751: 8751: while (__last - __first >= __two_step) 8751: { 8751: __result = std::__move_merge(__first, __first + __step_size, 8751: __first + __step_size, 8751: __first + __two_step, 8751: __result, __comp); 8751: __first += __two_step; 8751: } 8751: __step_size = std::min(_Distance(__last - __first), __step_size); 8751: 8751: std::__move_merge(__first, __first + __step_size, 8751: __first + __step_size, __last, __result, __comp); 8751: } 8751: 8751: template 8751: void 8751: __chunk_insertion_sort(_RandomAccessIterator __first, 8751: _RandomAccessIterator __last, 8751: _Distance __chunk_size, _Compare __comp) 8751: { 8751: while (__last - __first >= __chunk_size) 8751: { 8751: std::__insertion_sort(__first, __first + __chunk_size, __comp); 8751: __first += __chunk_size; 8751: } 8751: std::__insertion_sort(__first, __last, __comp); 8751: } 8751: 8751: enum { _S_chunk_size = 7 }; 8751: 8751: template 8751: void 8751: __merge_sort_with_buffer(_RandomAccessIterator __first, 8751: _RandomAccessIterator __last, 8751: _Pointer __buffer, _Compare __comp) 8751: { 8751: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8751: _Distance; 8751: 8751: const _Distance __len = __last - __first; 8751: const _Pointer __buffer_last = __buffer + __len; 8751: 8751: _Distance __step_size = _S_chunk_size; 8751: std::__chunk_insertion_sort(__first, __last, __step_size, __comp); 8751: 8751: while (__step_size < __len) 8751: { 8751: std::__merge_sort_loop(__first, __last, __buffer, 8751: __step_size, __comp); 8751: __step_size *= 2; 8751: std::__merge_sort_loop(__buffer, __buffer_last, __first, 8751: __step_size, __comp); 8751: __step_size *= 2; 8751: } 8751: } 8751: 8751: template 8751: void 8751: __stable_sort_adaptive(_RandomAccessIterator __first, 8751: _RandomAccessIterator __last, 8751: _Pointer __buffer, _Distance __buffer_size, 8751: _Compare __comp) 8751: { 8751: const _Distance __len = (__last - __first + 1) / 2; 8751: const _RandomAccessIterator __middle = __first + __len; 8751: if (__len > __buffer_size) 8751: { 8751: std::__stable_sort_adaptive(__first, __middle, __buffer, 8751: __buffer_size, __comp); 8751: std::__stable_sort_adaptive(__middle, __last, __buffer, 8751: __buffer_size, __comp); 8751: } 8751: else 8751: { 8751: std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp); 8751: std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp); 8751: } 8751: std::__merge_adaptive(__first, __middle, __last, 8751: _Distance(__middle - __first), 8751: _Distance(__last - __middle), 8751: __buffer, __buffer_size, 8751: __comp); 8751: } 8751: 8751: 8751: template 8751: void 8751: __inplace_stable_sort(_RandomAccessIterator __first, 8751: _RandomAccessIterator __last, _Compare __comp) 8751: { 8751: if (__last - __first < 15) 8751: { 8751: std::__insertion_sort(__first, __last, __comp); 8751: return; 8751: } 8751: _RandomAccessIterator __middle = __first + (__last - __first) / 2; 8751: std::__inplace_stable_sort(__first, __middle, __comp); 8751: std::__inplace_stable_sort(__middle, __last, __comp); 8751: std::__merge_without_buffer(__first, __middle, __last, 8751: __middle - __first, 8751: __last - __middle, 8751: __comp); 8751: } 8751: # 2785 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: bool 8751: __includes(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _InputIterator2 __last2, 8751: _Compare __comp) 8751: { 8751: while (__first1 != __last1 && __first2 != __last2) 8751: if (__comp(__first2, __first1)) 8751: return false; 8751: else if (__comp(__first1, __first2)) 8751: ++__first1; 8751: else 8751: { 8751: ++__first1; 8751: ++__first2; 8751: } 8751: 8751: return __first2 == __last2; 8751: } 8751: # 2824 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline bool 8751: includes(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _InputIterator2 __last2) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: ; 8751: 8751: return std::__includes(__first1, __last1, __first2, __last2, 8751: __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: # 2868 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline bool 8751: includes(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _InputIterator2 __last2, 8751: _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: ; 8751: 8751: return std::__includes(__first1, __last1, __first2, __last2, 8751: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: # 2903 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: bool 8751: __next_permutation(_BidirectionalIterator __first, 8751: _BidirectionalIterator __last, _Compare __comp) 8751: { 8751: if (__first == __last) 8751: return false; 8751: _BidirectionalIterator __i = __first; 8751: ++__i; 8751: if (__i == __last) 8751: return false; 8751: __i = __last; 8751: --__i; 8751: 8751: for(;;) 8751: { 8751: _BidirectionalIterator __ii = __i; 8751: --__i; 8751: if (__comp(__i, __ii)) 8751: { 8751: _BidirectionalIterator __j = __last; 8751: while (!__comp(__i, --__j)) 8751: {} 8751: std::iter_swap(__i, __j); 8751: std::__reverse(__ii, __last, 8751: std::__iterator_category(__first)); 8751: return true; 8751: } 8751: if (__i == __first) 8751: { 8751: std::__reverse(__first, __last, 8751: std::__iterator_category(__first)); 8751: return false; 8751: } 8751: } 8751: } 8751: # 2952 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline bool 8751: next_permutation(_BidirectionalIterator __first, 8751: _BidirectionalIterator __last) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__next_permutation 8751: (__first, __last, __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: # 2984 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline bool 8751: next_permutation(_BidirectionalIterator __first, 8751: _BidirectionalIterator __last, _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__next_permutation 8751: (__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: 8751: template 8751: bool 8751: __prev_permutation(_BidirectionalIterator __first, 8751: _BidirectionalIterator __last, _Compare __comp) 8751: { 8751: if (__first == __last) 8751: return false; 8751: _BidirectionalIterator __i = __first; 8751: ++__i; 8751: if (__i == __last) 8751: return false; 8751: __i = __last; 8751: --__i; 8751: 8751: for(;;) 8751: { 8751: _BidirectionalIterator __ii = __i; 8751: --__i; 8751: if (__comp(__ii, __i)) 8751: { 8751: _BidirectionalIterator __j = __last; 8751: while (!__comp(--__j, __i)) 8751: {} 8751: std::iter_swap(__i, __j); 8751: std::__reverse(__ii, __last, 8751: std::__iterator_category(__first)); 8751: return true; 8751: } 8751: if (__i == __first) 8751: { 8751: std::__reverse(__first, __last, 8751: std::__iterator_category(__first)); 8751: return false; 8751: } 8751: } 8751: } 8751: # 3052 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline bool 8751: prev_permutation(_BidirectionalIterator __first, 8751: _BidirectionalIterator __last) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__prev_permutation(__first, __last, 8751: __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: # 3084 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline bool 8751: prev_permutation(_BidirectionalIterator __first, 8751: _BidirectionalIterator __last, _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__prev_permutation(__first, __last, 8751: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: 8751: 8751: 8751: 8751: template 8751: _OutputIterator 8751: __replace_copy_if(_InputIterator __first, _InputIterator __last, 8751: _OutputIterator __result, 8751: _Predicate __pred, const _Tp& __new_value) 8751: { 8751: for (; __first != __last; ++__first, (void)++__result) 8751: if (__pred(__first)) 8751: *__result = __new_value; 8751: else 8751: *__result = *__first; 8751: return __result; 8751: } 8751: # 3134 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _OutputIterator 8751: replace_copy(_InputIterator __first, _InputIterator __last, 8751: _OutputIterator __result, 8751: const _Tp& __old_value, const _Tp& __new_value) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__replace_copy_if(__first, __last, __result, 8751: __gnu_cxx::__ops::__iter_equals_val(__old_value), 8751: __new_value); 8751: } 8751: # 3168 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _OutputIterator 8751: replace_copy_if(_InputIterator __first, _InputIterator __last, 8751: _OutputIterator __result, 8751: _Predicate __pred, const _Tp& __new_value) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__replace_copy_if(__first, __last, __result, 8751: __gnu_cxx::__ops::__pred_iter(__pred), 8751: __new_value); 8751: } 8751: 8751: template 8751: typename iterator_traits<_InputIterator>::difference_type 8751: __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8751: { 8751: typename iterator_traits<_InputIterator>::difference_type __n = 0; 8751: for (; __first != __last; ++__first) 8751: if (__pred(__first)) 8751: ++__n; 8751: return __n; 8751: } 8751: # 3207 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline bool 8751: is_sorted(_ForwardIterator __first, _ForwardIterator __last) 8751: { return std::is_sorted_until(__first, __last) == __last; } 8751: # 3221 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline bool 8751: is_sorted(_ForwardIterator __first, _ForwardIterator __last, 8751: _Compare __comp) 8751: { return std::is_sorted_until(__first, __last, __comp) == __last; } 8751: 8751: template 8751: _ForwardIterator 8751: __is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, 8751: _Compare __comp) 8751: { 8751: if (__first == __last) 8751: return __last; 8751: 8751: _ForwardIterator __next = __first; 8751: for (++__next; __next != __last; __first = __next, (void)++__next) 8751: if (__comp(__next, __first)) 8751: return __next; 8751: return __next; 8751: } 8751: # 3250 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator 8751: is_sorted_until(_ForwardIterator __first, _ForwardIterator __last) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__is_sorted_until(__first, __last, 8751: __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: # 3274 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator 8751: is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, 8751: _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__is_sorted_until(__first, __last, 8751: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: # 3299 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: 8751: inline pair 8751: minmax(const _Tp& __a, const _Tp& __b) 8751: { 8751: 8751: 8751: 8751: return __b < __a ? pair(__b, __a) 8751: : pair(__a, __b); 8751: } 8751: # 3320 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: 8751: inline pair 8751: minmax(const _Tp& __a, const _Tp& __b, _Compare __comp) 8751: { 8751: return __comp(__b, __a) ? pair(__b, __a) 8751: : pair(__a, __b); 8751: } 8751: 8751: template 8751: 8751: pair<_ForwardIterator, _ForwardIterator> 8751: __minmax_element(_ForwardIterator __first, _ForwardIterator __last, 8751: _Compare __comp) 8751: { 8751: _ForwardIterator __next = __first; 8751: if (__first == __last 8751: || ++__next == __last) 8751: return std::make_pair(__first, __first); 8751: 8751: _ForwardIterator __min{}, __max{}; 8751: if (__comp(__next, __first)) 8751: { 8751: __min = __next; 8751: __max = __first; 8751: } 8751: else 8751: { 8751: __min = __first; 8751: __max = __next; 8751: } 8751: 8751: __first = __next; 8751: ++__first; 8751: 8751: while (__first != __last) 8751: { 8751: __next = __first; 8751: if (++__next == __last) 8751: { 8751: if (__comp(__first, __min)) 8751: __min = __first; 8751: else if (!__comp(__first, __max)) 8751: __max = __first; 8751: break; 8751: } 8751: 8751: if (__comp(__next, __first)) 8751: { 8751: if (__comp(__next, __min)) 8751: __min = __next; 8751: if (!__comp(__first, __max)) 8751: __max = __first; 8751: } 8751: else 8751: { 8751: if (__comp(__first, __min)) 8751: __min = __first; 8751: if (!__comp(__next, __max)) 8751: __max = __next; 8751: } 8751: 8751: __first = __next; 8751: ++__first; 8751: } 8751: 8751: return std::make_pair(__min, __max); 8751: } 8751: # 3400 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: 8751: inline pair<_ForwardIterator, _ForwardIterator> 8751: minmax_element(_ForwardIterator __first, _ForwardIterator __last) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__minmax_element(__first, __last, 8751: __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: # 3428 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: 8751: inline pair<_ForwardIterator, _ForwardIterator> 8751: minmax_element(_ForwardIterator __first, _ForwardIterator __last, 8751: _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__minmax_element(__first, __last, 8751: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: 8751: 8751: template 8751: 8751: inline _Tp 8751: min(initializer_list<_Tp> __l) 8751: { return *std::min_element(__l.begin(), __l.end()); } 8751: 8751: template 8751: 8751: inline _Tp 8751: min(initializer_list<_Tp> __l, _Compare __comp) 8751: { return *std::min_element(__l.begin(), __l.end(), __comp); } 8751: 8751: template 8751: 8751: inline _Tp 8751: max(initializer_list<_Tp> __l) 8751: { return *std::max_element(__l.begin(), __l.end()); } 8751: 8751: template 8751: 8751: inline _Tp 8751: max(initializer_list<_Tp> __l, _Compare __comp) 8751: { return *std::max_element(__l.begin(), __l.end(), __comp); } 8751: 8751: template 8751: 8751: inline pair<_Tp, _Tp> 8751: minmax(initializer_list<_Tp> __l) 8751: { 8751: pair __p = 8751: std::minmax_element(__l.begin(), __l.end()); 8751: return std::make_pair(*__p.first, *__p.second); 8751: } 8751: 8751: template 8751: 8751: inline pair<_Tp, _Tp> 8751: minmax(initializer_list<_Tp> __l, _Compare __comp) 8751: { 8751: pair __p = 8751: std::minmax_element(__l.begin(), __l.end(), __comp); 8751: return std::make_pair(*__p.first, *__p.second); 8751: } 8751: 8751: template 8751: bool 8751: __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8751: _ForwardIterator2 __first2, _BinaryPredicate __pred) 8751: { 8751: 8751: 8751: for (; __first1 != __last1; ++__first1, (void)++__first2) 8751: if (!__pred(__first1, __first2)) 8751: break; 8751: 8751: if (__first1 == __last1) 8751: return true; 8751: 8751: 8751: 8751: _ForwardIterator2 __last2 = __first2; 8751: std::advance(__last2, std::distance(__first1, __last1)); 8751: for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) 8751: { 8751: if (__scan != std::__find_if(__first1, __scan, 8751: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) 8751: continue; 8751: 8751: auto __matches 8751: = std::__count_if(__first2, __last2, 8751: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); 8751: if (0 == __matches || 8751: std::__count_if(__scan, __last1, 8751: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) 8751: != __matches) 8751: return false; 8751: } 8751: return true; 8751: } 8751: # 3540 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline bool 8751: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8751: _ForwardIterator2 __first2) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__is_permutation(__first1, __last1, __first2, 8751: __gnu_cxx::__ops::__iter_equal_to_iter()); 8751: } 8751: # 3571 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline bool 8751: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8751: _ForwardIterator2 __first2, _BinaryPredicate __pred) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__is_permutation(__first1, __last1, __first2, 8751: __gnu_cxx::__ops::__iter_comp_iter(__pred)); 8751: } 8751: # 3767 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: pair<_IntType, _IntType> 8751: __gen_two_uniform_ints(_IntType __b0, _IntType __b1, 8751: _UniformRandomBitGenerator&& __g) 8751: { 8751: _IntType __x 8751: = uniform_int_distribution<_IntType>{0, (__b0 * __b1) - 1}(__g); 8751: return std::make_pair(__x / __b1, __x % __b1); 8751: } 8751: # 3789 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: void 8751: shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, 8751: _UniformRandomNumberGenerator&& __g) 8751: { 8751: 8751: 8751: 8751: ; 8751: 8751: if (__first == __last) 8751: return; 8751: 8751: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8751: _DistanceType; 8751: 8751: typedef typename std::make_unsigned<_DistanceType>::type __ud_type; 8751: typedef typename std::uniform_int_distribution<__ud_type> __distr_type; 8751: typedef typename __distr_type::param_type __p_type; 8751: 8751: typedef typename remove_reference<_UniformRandomNumberGenerator>::type 8751: _Gen; 8751: typedef typename common_type::type 8751: __uc_type; 8751: 8751: const __uc_type __urngrange = __g.max() - __g.min(); 8751: const __uc_type __urange = __uc_type(__last - __first); 8751: 8751: if (__urngrange / __urange >= __urange) 8751: 8751: { 8751: _RandomAccessIterator __i = __first + 1; 8751: 8751: 8751: 8751: 8751: 8751: if ((__urange % 2) == 0) 8751: { 8751: __distr_type __d{0, 1}; 8751: std::iter_swap(__i++, __first + __d(__g)); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: while (__i != __last) 8751: { 8751: const __uc_type __swap_range = __uc_type(__i - __first) + 1; 8751: 8751: const pair<__uc_type, __uc_type> __pospos = 8751: __gen_two_uniform_ints(__swap_range, __swap_range + 1, __g); 8751: 8751: std::iter_swap(__i++, __first + __pospos.first); 8751: std::iter_swap(__i++, __first + __pospos.second); 8751: } 8751: 8751: return; 8751: } 8751: 8751: __distr_type __d; 8751: 8751: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8751: std::iter_swap(__i, __first + __d(__g, __p_type(0, __i - __first))); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: # 3874 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: _Function 8751: for_each(_InputIterator __first, _InputIterator __last, _Function __f) 8751: { 8751: 8751: 8751: ; 8751: for (; __first != __last; ++__first) 8751: __f(*__first); 8751: return __f; 8751: } 8751: # 3895 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _InputIterator 8751: find(_InputIterator __first, _InputIterator __last, 8751: const _Tp& __val) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: return std::__find_if(__first, __last, 8751: __gnu_cxx::__ops::__iter_equals_val(__val)); 8751: } 8751: # 3919 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _InputIterator 8751: find_if(_InputIterator __first, _InputIterator __last, 8751: _Predicate __pred) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__find_if(__first, __last, 8751: __gnu_cxx::__ops::__pred_iter(__pred)); 8751: } 8751: # 3950 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: _InputIterator 8751: find_first_of(_InputIterator __first1, _InputIterator __last1, 8751: _ForwardIterator __first2, _ForwardIterator __last2) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: for (; __first1 != __last1; ++__first1) 8751: for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) 8751: if (*__first1 == *__iter) 8751: return __first1; 8751: return __last1; 8751: } 8751: # 3990 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: _InputIterator 8751: find_first_of(_InputIterator __first1, _InputIterator __last1, 8751: _ForwardIterator __first2, _ForwardIterator __last2, 8751: _BinaryPredicate __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: for (; __first1 != __last1; ++__first1) 8751: for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) 8751: if (__comp(*__first1, *__iter)) 8751: return __first1; 8751: return __last1; 8751: } 8751: # 4022 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator 8751: adjacent_find(_ForwardIterator __first, _ForwardIterator __last) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__adjacent_find(__first, __last, 8751: __gnu_cxx::__ops::__iter_equal_to_iter()); 8751: } 8751: # 4047 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator 8751: adjacent_find(_ForwardIterator __first, _ForwardIterator __last, 8751: _BinaryPredicate __binary_pred) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__adjacent_find(__first, __last, 8751: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 8751: } 8751: # 4072 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline typename iterator_traits<_InputIterator>::difference_type 8751: count(_InputIterator __first, _InputIterator __last, const _Tp& __value) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__count_if(__first, __last, 8751: __gnu_cxx::__ops::__iter_equals_val(__value)); 8751: } 8751: # 4095 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline typename iterator_traits<_InputIterator>::difference_type 8751: count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__count_if(__first, __last, 8751: __gnu_cxx::__ops::__pred_iter(__pred)); 8751: } 8751: # 4135 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator1 8751: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8751: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__search(__first1, __last1, __first2, __last2, 8751: __gnu_cxx::__ops::__iter_equal_to_iter()); 8751: } 8751: # 4174 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator1 8751: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8751: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8751: _BinaryPredicate __predicate) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__search(__first1, __last1, __first2, __last2, 8751: __gnu_cxx::__ops::__iter_comp_iter(__predicate)); 8751: } 8751: # 4209 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator 8751: search_n(_ForwardIterator __first, _ForwardIterator __last, 8751: _Integer __count, const _Tp& __val) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__search_n(__first, __last, __count, 8751: __gnu_cxx::__ops::__iter_equals_val(__val)); 8751: } 8751: # 4242 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator 8751: search_n(_ForwardIterator __first, _ForwardIterator __last, 8751: _Integer __count, const _Tp& __val, 8751: _BinaryPredicate __binary_pred) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__search_n(__first, __last, __count, 8751: __gnu_cxx::__ops::__iter_comp_val(__binary_pred, __val)); 8751: } 8751: # 4290 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: _OutputIterator 8751: transform(_InputIterator __first, _InputIterator __last, 8751: _OutputIterator __result, _UnaryOperation __unary_op) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: for (; __first != __last; ++__first, (void)++__result) 8751: *__result = __unary_op(*__first); 8751: return __result; 8751: } 8751: # 4327 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: _OutputIterator 8751: transform(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _OutputIterator __result, 8751: _BinaryOperation __binary_op) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: for (; __first1 != __last1; ++__first1, (void)++__first2, ++__result) 8751: *__result = __binary_op(*__first1, *__first2); 8751: return __result; 8751: } 8751: # 4360 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: void 8751: replace(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __old_value, const _Tp& __new_value) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: for (; __first != __last; ++__first) 8751: if (*__first == __old_value) 8751: *__first = __new_value; 8751: } 8751: # 4392 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: void 8751: replace_if(_ForwardIterator __first, _ForwardIterator __last, 8751: _Predicate __pred, const _Tp& __new_value) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: for (; __first != __last; ++__first) 8751: if (__pred(*__first)) 8751: *__first = __new_value; 8751: } 8751: # 4424 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: void 8751: generate(_ForwardIterator __first, _ForwardIterator __last, 8751: _Generator __gen) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: for (; __first != __last; ++__first) 8751: *__first = __gen(); 8751: } 8751: # 4455 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: _OutputIterator 8751: generate_n(_OutputIterator __first, _Size __n, _Generator __gen) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: for (__decltype(__n + 0) __niter = __n; 8751: __niter > 0; --__niter, (void) ++__first) 8751: *__first = __gen(); 8751: return __first; 8751: } 8751: # 4491 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _OutputIterator 8751: unique_copy(_InputIterator __first, _InputIterator __last, 8751: _OutputIterator __result) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: if (__first == __last) 8751: return __result; 8751: return std::__unique_copy(__first, __last, __result, 8751: __gnu_cxx::__ops::__iter_equal_to_iter(), 8751: std::__iterator_category(__first), 8751: std::__iterator_category(__result)); 8751: } 8751: # 4531 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _OutputIterator 8751: unique_copy(_InputIterator __first, _InputIterator __last, 8751: _OutputIterator __result, 8751: _BinaryPredicate __binary_pred) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: if (__first == __last) 8751: return __result; 8751: return std::__unique_copy(__first, __last, __result, 8751: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred), 8751: std::__iterator_category(__first), 8751: std::__iterator_category(__result)); 8751: } 8751: # 4564 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline void 8751: random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last) 8751: { 8751: 8751: 8751: 8751: ; 8751: 8751: if (__first != __last) 8751: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8751: { 8751: 8751: _RandomAccessIterator __j = __first 8751: + std::rand() % ((__i - __first) + 1); 8751: if (__i != __j) 8751: std::iter_swap(__i, __j); 8751: } 8751: } 8751: # 4599 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: void 8751: random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, 8751: 8751: _RandomNumberGenerator&& __rand) 8751: 8751: 8751: 8751: { 8751: 8751: 8751: 8751: ; 8751: 8751: if (__first == __last) 8751: return; 8751: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8751: { 8751: _RandomAccessIterator __j = __first + __rand((__i - __first) + 1); 8751: if (__i != __j) 8751: std::iter_swap(__i, __j); 8751: } 8751: } 8751: # 4639 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _ForwardIterator 8751: partition(_ForwardIterator __first, _ForwardIterator __last, 8751: _Predicate __pred) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: return std::__partition(__first, __last, __pred, 8751: std::__iterator_category(__first)); 8751: } 8751: # 4672 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline void 8751: partial_sort(_RandomAccessIterator __first, 8751: _RandomAccessIterator __middle, 8751: _RandomAccessIterator __last) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: 8751: std::__partial_sort(__first, __middle, __last, 8751: __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: # 4710 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline void 8751: partial_sort(_RandomAccessIterator __first, 8751: _RandomAccessIterator __middle, 8751: _RandomAccessIterator __last, 8751: _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: 8751: std::__partial_sort(__first, __middle, __last, 8751: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: # 4746 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline void 8751: nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, 8751: _RandomAccessIterator __last) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: 8751: if (__first == __last || __nth == __last) 8751: return; 8751: 8751: std::__introselect(__first, __nth, __last, 8751: std::__lg(__last - __first) * 2, 8751: __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: # 4785 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline void 8751: nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, 8751: _RandomAccessIterator __last, _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: 8751: if (__first == __last || __nth == __last) 8751: return; 8751: 8751: std::__introselect(__first, __nth, __last, 8751: std::__lg(__last - __first) * 2, 8751: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: # 4822 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline void 8751: sort(_RandomAccessIterator __first, _RandomAccessIterator __last) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: # 4852 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline void 8751: sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8751: _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: 8751: template 8751: _OutputIterator 8751: __merge(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _InputIterator2 __last2, 8751: _OutputIterator __result, _Compare __comp) 8751: { 8751: while (__first1 != __last1 && __first2 != __last2) 8751: { 8751: if (__comp(__first2, __first1)) 8751: { 8751: *__result = *__first2; 8751: ++__first2; 8751: } 8751: else 8751: { 8751: *__result = *__first1; 8751: ++__first1; 8751: } 8751: ++__result; 8751: } 8751: return std::copy(__first2, __last2, 8751: std::copy(__first1, __last1, __result)); 8751: } 8751: # 4913 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _OutputIterator 8751: merge(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _InputIterator2 __last2, 8751: _OutputIterator __result) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: ; 8751: 8751: return std::__merge(__first1, __last1, 8751: __first2, __last2, __result, 8751: __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: # 4963 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _OutputIterator 8751: merge(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _InputIterator2 __last2, 8751: _OutputIterator __result, _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: ; 8751: 8751: return std::__merge(__first1, __last1, 8751: __first2, __last2, __result, 8751: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: 8751: template 8751: inline void 8751: __stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8751: _Compare __comp) 8751: { 8751: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8751: _ValueType; 8751: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8751: _DistanceType; 8751: 8751: typedef _Temporary_buffer<_RandomAccessIterator, _ValueType> _TmpBuf; 8751: _TmpBuf __buf(__first, __last); 8751: 8751: if (__buf.begin() == 0) 8751: std::__inplace_stable_sort(__first, __last, __comp); 8751: else 8751: std::__stable_sort_adaptive(__first, __last, __buf.begin(), 8751: _DistanceType(__buf.size()), __comp); 8751: } 8751: # 5027 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline void 8751: stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: std::__stable_sort(__first, __last, 8751: __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: # 5061 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline void 8751: stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8751: _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: std::__stable_sort(__first, __last, 8751: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: 8751: template 8751: _OutputIterator 8751: __set_union(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _InputIterator2 __last2, 8751: _OutputIterator __result, _Compare __comp) 8751: { 8751: while (__first1 != __last1 && __first2 != __last2) 8751: { 8751: if (__comp(__first1, __first2)) 8751: { 8751: *__result = *__first1; 8751: ++__first1; 8751: } 8751: else if (__comp(__first2, __first1)) 8751: { 8751: *__result = *__first2; 8751: ++__first2; 8751: } 8751: else 8751: { 8751: *__result = *__first1; 8751: ++__first1; 8751: ++__first2; 8751: } 8751: ++__result; 8751: } 8751: return std::copy(__first2, __last2, 8751: std::copy(__first1, __last1, __result)); 8751: } 8751: # 5130 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _OutputIterator 8751: set_union(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _InputIterator2 __last2, 8751: _OutputIterator __result) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: ; 8751: 8751: return std::__set_union(__first1, __last1, 8751: __first2, __last2, __result, 8751: __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: # 5180 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _OutputIterator 8751: set_union(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _InputIterator2 __last2, 8751: _OutputIterator __result, _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: ; 8751: 8751: return std::__set_union(__first1, __last1, 8751: __first2, __last2, __result, 8751: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: 8751: template 8751: _OutputIterator 8751: __set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _InputIterator2 __last2, 8751: _OutputIterator __result, _Compare __comp) 8751: { 8751: while (__first1 != __last1 && __first2 != __last2) 8751: if (__comp(__first1, __first2)) 8751: ++__first1; 8751: else if (__comp(__first2, __first1)) 8751: ++__first2; 8751: else 8751: { 8751: *__result = *__first1; 8751: ++__first1; 8751: ++__first2; 8751: ++__result; 8751: } 8751: return __result; 8751: } 8751: # 5251 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _OutputIterator 8751: set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _InputIterator2 __last2, 8751: _OutputIterator __result) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: ; 8751: 8751: return std::__set_intersection(__first1, __last1, 8751: __first2, __last2, __result, 8751: __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: # 5300 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _OutputIterator 8751: set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _InputIterator2 __last2, 8751: _OutputIterator __result, _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: ; 8751: 8751: return std::__set_intersection(__first1, __last1, 8751: __first2, __last2, __result, 8751: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: 8751: template 8751: _OutputIterator 8751: __set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _InputIterator2 __last2, 8751: _OutputIterator __result, _Compare __comp) 8751: { 8751: while (__first1 != __last1 && __first2 != __last2) 8751: if (__comp(__first1, __first2)) 8751: { 8751: *__result = *__first1; 8751: ++__first1; 8751: ++__result; 8751: } 8751: else if (__comp(__first2, __first1)) 8751: ++__first2; 8751: else 8751: { 8751: ++__first1; 8751: ++__first2; 8751: } 8751: return std::copy(__first1, __last1, __result); 8751: } 8751: # 5373 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _OutputIterator 8751: set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _InputIterator2 __last2, 8751: _OutputIterator __result) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: ; 8751: 8751: return std::__set_difference(__first1, __last1, 8751: __first2, __last2, __result, 8751: __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: # 5424 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _OutputIterator 8751: set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _InputIterator2 __last2, 8751: _OutputIterator __result, _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: ; 8751: 8751: return std::__set_difference(__first1, __last1, 8751: __first2, __last2, __result, 8751: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: 8751: template 8751: _OutputIterator 8751: __set_symmetric_difference(_InputIterator1 __first1, 8751: _InputIterator1 __last1, 8751: _InputIterator2 __first2, 8751: _InputIterator2 __last2, 8751: _OutputIterator __result, 8751: _Compare __comp) 8751: { 8751: while (__first1 != __last1 && __first2 != __last2) 8751: if (__comp(__first1, __first2)) 8751: { 8751: *__result = *__first1; 8751: ++__first1; 8751: ++__result; 8751: } 8751: else if (__comp(__first2, __first1)) 8751: { 8751: *__result = *__first2; 8751: ++__first2; 8751: ++__result; 8751: } 8751: else 8751: { 8751: ++__first1; 8751: ++__first2; 8751: } 8751: return std::copy(__first2, __last2, 8751: std::copy(__first1, __last1, __result)); 8751: } 8751: # 5503 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _OutputIterator 8751: set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _InputIterator2 __last2, 8751: _OutputIterator __result) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: ; 8751: 8751: return std::__set_symmetric_difference(__first1, __last1, 8751: __first2, __last2, __result, 8751: __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: # 5554 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: inline _OutputIterator 8751: set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _InputIterator2 __last2, 8751: _OutputIterator __result, 8751: _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: ; 8751: ; 8751: 8751: return std::__set_symmetric_difference(__first1, __last1, 8751: __first2, __last2, __result, 8751: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: 8751: template 8751: 8751: _ForwardIterator 8751: __min_element(_ForwardIterator __first, _ForwardIterator __last, 8751: _Compare __comp) 8751: { 8751: if (__first == __last) 8751: return __first; 8751: _ForwardIterator __result = __first; 8751: while (++__first != __last) 8751: if (__comp(__first, __result)) 8751: __result = __first; 8751: return __result; 8751: } 8751: # 5607 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: 8751: _ForwardIterator 8751: inline min_element(_ForwardIterator __first, _ForwardIterator __last) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__min_element(__first, __last, 8751: __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: # 5632 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: 8751: inline _ForwardIterator 8751: min_element(_ForwardIterator __first, _ForwardIterator __last, 8751: _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__min_element(__first, __last, 8751: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: 8751: template 8751: 8751: _ForwardIterator 8751: __max_element(_ForwardIterator __first, _ForwardIterator __last, 8751: _Compare __comp) 8751: { 8751: if (__first == __last) return __first; 8751: _ForwardIterator __result = __first; 8751: while (++__first != __last) 8751: if (__comp(__result, __first)) 8751: __result = __first; 8751: return __result; 8751: } 8751: # 5671 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: 8751: inline _ForwardIterator 8751: max_element(_ForwardIterator __first, _ForwardIterator __last) 8751: { 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__max_element(__first, __last, 8751: __gnu_cxx::__ops::__iter_less_iter()); 8751: } 8751: # 5696 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: template 8751: 8751: inline _ForwardIterator 8751: max_element(_ForwardIterator __first, _ForwardIterator __last, 8751: _Compare __comp) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: ; 8751: 8751: return std::__max_element(__first, __last, 8751: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8751: } 8751: # 5839 "/usr/include/c++/8/bits/stl_algo.h" 3 8751: 8751: 8751: } 8751: # 63 "/usr/include/c++/8/algorithm" 2 3 8751: # 110 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8751: # 191 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef signed char qint8; 8751: typedef unsigned char quint8; 8751: typedef short qint16; 8751: typedef unsigned short quint16; 8751: typedef int qint32; 8751: typedef unsigned int quint32; 8751: # 213 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: typedef long long qint64; 8751: typedef unsigned long long quint64; 8751: 8751: 8751: typedef qint64 qlonglong; 8751: typedef quint64 qulonglong; 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef unsigned char uchar; 8751: typedef unsigned short ushort; 8751: typedef unsigned int uint; 8751: typedef unsigned long ulong; 8751: 8751: 8751: 8751: 8751: 8751: typedef double qreal; 8751: # 356 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: extern "C" 8751: 8751: __attribute__((visibility("default"))) const char *qVersion(void) noexcept; 8751: # 384 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: namespace QtPrivate { 8751: template 8751: struct AlignOfHelper 8751: { 8751: char c; 8751: T type; 8751: 8751: AlignOfHelper(); 8751: ~AlignOfHelper(); 8751: }; 8751: 8751: template 8751: struct AlignOf_Default 8751: { 8751: enum { Value = sizeof(AlignOfHelper) - sizeof(T) }; 8751: }; 8751: 8751: template struct AlignOf : AlignOf_Default { }; 8751: template struct AlignOf : AlignOf {}; 8751: template struct AlignOf : AlignOf {}; 8751: 8751: 8751: template struct AlignOf : AlignOf {}; 8751: # 424 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: } 8751: # 440 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: template struct QIntegerForSize; 8751: template <> struct QIntegerForSize<1> { typedef quint8 Unsigned; typedef qint8 Signed; }; 8751: template <> struct QIntegerForSize<2> { typedef quint16 Unsigned; typedef qint16 Signed; }; 8751: template <> struct QIntegerForSize<4> { typedef quint32 Unsigned; typedef qint32 Signed; }; 8751: template <> struct QIntegerForSize<8> { typedef quint64 Unsigned; typedef qint64 Signed; }; 8751: 8751: 8751: 8751: template struct QIntegerForSizeof: QIntegerForSize { }; 8751: typedef QIntegerForSize<4>::Signed qregisterint; 8751: typedef QIntegerForSize<4>::Unsigned qregisteruint; 8751: typedef QIntegerForSizeof::Unsigned quintptr; 8751: typedef QIntegerForSizeof::Signed qptrdiff; 8751: typedef qptrdiff qintptr; 8751: # 516 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: typedef int QNoImplicitBoolCast; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: constexpr inline T qAbs(const T &t) { return t >= 0 ? t : -t; } 8751: 8751: constexpr inline int qRound(double d) 8751: { return d >= 0.0 ? int(d + 0.5) : int(d - double(int(d-1)) + 0.5) + int(d-1); } 8751: constexpr inline int qRound(float d) 8751: { return d >= 0.0f ? int(d + 0.5f) : int(d - float(int(d-1)) + 0.5f) + int(d-1); } 8751: 8751: constexpr inline qint64 qRound64(double d) 8751: { return d >= 0.0 ? qint64(d + 0.5) : qint64(d - double(qint64(d-1)) + 0.5) + qint64(d-1); } 8751: constexpr inline qint64 qRound64(float d) 8751: { return d >= 0.0f ? qint64(d + 0.5f) : qint64(d - float(qint64(d-1)) + 0.5f) + qint64(d-1); } 8751: 8751: template 8751: constexpr inline const T &qMin(const T &a, const T &b) { return (a < b) ? a : b; } 8751: template 8751: constexpr inline const T &qMax(const T &a, const T &b) { return (a < b) ? b : a; } 8751: template 8751: constexpr inline const T &qBound(const T &min, const T &val, const T &max) 8751: { return qMax(min, qMin(max, val)); } 8751: # 621 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: class QDataStream; 8751: 8751: inline void qt_noop(void) {} 8751: # 655 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: __attribute__((__noreturn__)) __attribute__((visibility("default"))) void qTerminate() noexcept; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) bool qSharedBuild() noexcept; 8751: # 702 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: class QString; 8751: __attribute__((visibility("default"))) QString qt_error_string(int errorCode = -1); 8751: 8751: 8751: __attribute__((__noreturn__)) 8751: 8751: __attribute__((visibility("default"))) void qt_assert(const char *assertion, const char *file, int line) noexcept; 8751: # 723 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: __attribute__((__noreturn__)) 8751: 8751: __attribute__((visibility("default"))) void qt_assert_x(const char *where, const char *what, const char *file, int line) noexcept; 8751: # 756 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: __attribute__((__noreturn__)) __attribute__((visibility("default"))) void qt_check_pointer(const char *, int) noexcept; 8751: __attribute__((visibility("default"))) void qBadAlloc(); 8751: # 769 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: template 8751: inline T *q_check_ptr(T *p) { do { if (!(p)) qBadAlloc(); } while (false); return p; } 8751: 8751: typedef void (*QFunctionPointer)(); 8751: 8751: 8751: 8751: 8751: 8751: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyCompare(double p1, double p2) 8751: { 8751: return (qAbs(p1 - p2) * 1000000000000. <= qMin(qAbs(p1), qAbs(p2))); 8751: } 8751: 8751: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyCompare(float p1, float p2) 8751: { 8751: return (qAbs(p1 - p2) * 100000.f <= qMin(qAbs(p1), qAbs(p2))); 8751: } 8751: 8751: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyIsNull(double d) 8751: { 8751: return qAbs(d) <= 0.000000000001; 8751: } 8751: 8751: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyIsNull(float f) 8751: { 8751: return qAbs(f) <= 0.00001f; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: [[nodiscard]] static inline __attribute__((__unused__)) bool qIsNull(double d) 8751: { 8751: union U { 8751: double d; 8751: quint64 u; 8751: }; 8751: U val; 8751: val.d = d; 8751: return (val.u & static_cast(0x7fffffffffffffffULL)) == 0; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: [[nodiscard]] static inline __attribute__((__unused__)) bool qIsNull(float f) 8751: { 8751: union U { 8751: float f; 8751: quint32 u; 8751: }; 8751: U val; 8751: val.f = f; 8751: return (val.u & 0x7fffffff) == 0; 8751: } 8751: # 850 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: namespace QtPrivate 8751: { 8751: namespace SwapExceptionTester { 8751: using std::swap; 8751: template 8751: void checkSwap(T &t) 8751: noexcept(noexcept(swap(t, t))); 8751: 8751: } 8751: } 8751: 8751: template 8751: inline void qSwap(T &value1, T &value2) 8751: noexcept(noexcept(QtPrivate::SwapExceptionTester::checkSwap(value1))) 8751: { 8751: using std::swap; 8751: swap(value1, value2); 8751: } 8751: # 876 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: __attribute__((visibility("default"))) void *qMallocAligned(size_t size, size_t alignment) __attribute__((alloc_size(1))); 8751: __attribute__((visibility("default"))) void *qReallocAligned(void *ptr, size_t size, size_t oldsize, size_t alignment) __attribute__((alloc_size(2))); 8751: __attribute__((visibility("default"))) void qFreeAligned(void *ptr); 8751: # 918 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: namespace QtPrivate { 8751: template struct QAddConst { typedef const T Type; }; 8751: } 8751: 8751: 8751: template 8751: constexpr typename QtPrivate::QAddConst::Type &qAsConst(T &t) noexcept { return t; } 8751: 8751: template 8751: void qAsConst(const T &&) = delete; 8751: 8751: 8751: 8751: namespace QtPrivate { 8751: 8751: template 8751: class QForeachContainer { 8751: QForeachContainer(const QForeachContainer &) = delete; QForeachContainer &operator=(const QForeachContainer &) = delete; 8751: public: 8751: QForeachContainer(const T &t) : c(t), i(qAsConst(c).begin()), e(qAsConst(c).end()) {} 8751: QForeachContainer(T &&t) : c(std::move(t)), i(qAsConst(c).begin()), e(qAsConst(c).end()) {} 8751: 8751: QForeachContainer(QForeachContainer &&other) 8751: : c(std::move(other.c)), 8751: i(qAsConst(c).begin()), 8751: e(qAsConst(c).end()), 8751: control(std::move(other.control)) 8751: { 8751: } 8751: 8751: QForeachContainer &operator=(QForeachContainer &&other) 8751: { 8751: c = std::move(other.c); 8751: i = qAsConst(c).begin(); 8751: e = qAsConst(c).end(); 8751: control = std::move(other.control); 8751: return *this; 8751: } 8751: 8751: T c; 8751: typename T::const_iterator i, e; 8751: int control = 1; 8751: }; 8751: 8751: template 8751: QForeachContainer::type> qMakeForeachContainer(T &&t) 8751: { 8751: return QForeachContainer::type>(std::forward(t)); 8751: } 8751: 8751: } 8751: # 998 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: template static inline T *qGetPtrHelper(T *ptr) { return ptr; } 8751: template static inline typename Wrapper::pointer qGetPtrHelper(const Wrapper &p) { return p.data(); } 8751: # 1031 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: __attribute__((visibility("default"))) QString qtTrId(const char *id, int n = -1); 8751: # 1063 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: template 8751: struct QNonConstOverload 8751: { 8751: template 8751: constexpr auto operator()(R (T::*ptr)(Args...)) const noexcept -> decltype(ptr) 8751: { return ptr; } 8751: 8751: template 8751: static constexpr auto of(R (T::*ptr)(Args...)) noexcept -> decltype(ptr) 8751: { return ptr; } 8751: }; 8751: 8751: template 8751: struct QConstOverload 8751: { 8751: template 8751: constexpr auto operator()(R (T::*ptr)(Args...) const) const noexcept -> decltype(ptr) 8751: { return ptr; } 8751: 8751: template 8751: static constexpr auto of(R (T::*ptr)(Args...) const) noexcept -> decltype(ptr) 8751: { return ptr; } 8751: }; 8751: 8751: template 8751: struct QOverload : QConstOverload, QNonConstOverload 8751: { 8751: using QConstOverload::of; 8751: using QConstOverload::operator(); 8751: using QNonConstOverload::of; 8751: using QNonConstOverload::operator(); 8751: 8751: template 8751: constexpr auto operator()(R (*ptr)(Args...)) const noexcept -> decltype(ptr) 8751: { return ptr; } 8751: 8751: template 8751: static constexpr auto of(R (*ptr)(Args...)) noexcept -> decltype(ptr) 8751: { return ptr; } 8751: }; 8751: # 1113 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: class QByteArray; 8751: __attribute__((visibility("default"))) QByteArray qgetenv(const char *varName); 8751: __attribute__((visibility("default"))) bool qputenv(const char *varName, const QByteArray& value); 8751: __attribute__((visibility("default"))) bool qunsetenv(const char *varName); 8751: 8751: __attribute__((visibility("default"))) bool qEnvironmentVariableIsEmpty(const char *varName) noexcept; 8751: __attribute__((visibility("default"))) bool qEnvironmentVariableIsSet(const char *varName) noexcept; 8751: __attribute__((visibility("default"))) int qEnvironmentVariableIntValue(const char *varName, bool *ok=nullptr) noexcept; 8751: 8751: inline int qIntCast(double f) { return int(f); } 8751: inline int qIntCast(float f) { return int(f); } 8751: 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) void qsrand(uint seed); 8751: __attribute__((visibility("default"))) int qrand(); 8751: # 1139 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 3 4 8751: namespace QtPrivate { 8751: 8751: template struct QEnableIf; 8751: template struct QEnableIf { typedef T Type; }; 8751: 8751: template struct QConditional { typedef T Type; }; 8751: template struct QConditional { typedef F Type; }; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 1 3 4 8751: # 41 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 1 3 4 8751: # 42 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: # 56 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8751: template 8751: class QTypeInfo 8751: { 8751: public: 8751: enum { 8751: isSpecialized = std::is_enum::value, 8751: isPointer = false, 8751: isIntegral = std::is_integral::value, 8751: isComplex = !isIntegral && !std::is_enum::value, 8751: isStatic = true, 8751: isRelocatable = std::is_enum::value, 8751: isLarge = (sizeof(T)>sizeof(void*)), 8751: isDummy = false, 8751: sizeOf = sizeof(T) 8751: }; 8751: }; 8751: 8751: template<> 8751: class QTypeInfo 8751: { 8751: public: 8751: enum { 8751: isSpecialized = true, 8751: isPointer = false, 8751: isIntegral = false, 8751: isComplex = false, 8751: isStatic = false, 8751: isRelocatable = false, 8751: isLarge = false, 8751: isDummy = false, 8751: sizeOf = 0 8751: }; 8751: }; 8751: 8751: template 8751: class QTypeInfo 8751: { 8751: public: 8751: enum { 8751: isSpecialized = true, 8751: isPointer = true, 8751: isIntegral = false, 8751: isComplex = false, 8751: isStatic = false, 8751: isRelocatable = true, 8751: isLarge = false, 8751: isDummy = false, 8751: sizeOf = sizeof(T*) 8751: }; 8751: }; 8751: # 122 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8751: template 8751: struct QTypeInfoQuery : public QTypeInfo 8751: { 8751: enum { isRelocatable = !QTypeInfo::isStatic }; 8751: }; 8751: 8751: 8751: template 8751: struct QTypeInfoQuery::isRelocatable || true>::type> : public QTypeInfo 8751: {}; 8751: # 153 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8751: template 8751: class QTypeInfoMerger 8751: { 8751: public: 8751: enum { 8751: isSpecialized = true, 8751: isComplex = QTypeInfoQuery::isComplex || QTypeInfoQuery::isComplex 8751: || QTypeInfoQuery::isComplex || QTypeInfoQuery::isComplex, 8751: isStatic = QTypeInfoQuery::isStatic || QTypeInfoQuery::isStatic 8751: || QTypeInfoQuery::isStatic || QTypeInfoQuery::isStatic, 8751: isRelocatable = QTypeInfoQuery::isRelocatable && QTypeInfoQuery::isRelocatable 8751: && QTypeInfoQuery::isRelocatable && QTypeInfoQuery::isRelocatable, 8751: isLarge = sizeof(T) > sizeof(void*), 8751: isPointer = false, 8751: isIntegral = false, 8751: isDummy = false, 8751: sizeOf = sizeof(T) 8751: }; 8751: }; 8751: # 192 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8751: template class QList; template class QTypeInfo< QList > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isRelocatable = true, isStatic = false, isLarge = (sizeof(QList) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QList) }; }; 8751: template class QVector; template class QTypeInfo< QVector > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isRelocatable = true, isStatic = false, isLarge = (sizeof(QVector) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QVector) }; }; 8751: template class QQueue; template class QTypeInfo< QQueue > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isRelocatable = true, isStatic = false, isLarge = (sizeof(QQueue) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QQueue) }; }; 8751: template class QStack; template class QTypeInfo< QStack > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isRelocatable = true, isStatic = false, isLarge = (sizeof(QStack) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QStack) }; }; 8751: template class QLinkedList; template class QTypeInfo< QLinkedList > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isRelocatable = true, isStatic = false, isLarge = (sizeof(QLinkedList) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QLinkedList) }; }; 8751: template class QSet; template class QTypeInfo< QSet > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isRelocatable = true, isStatic = false, isLarge = (sizeof(QSet) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QSet) }; }; 8751: # 221 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8751: template class QMap; template class QTypeInfo< QMap > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isStatic = (((5<<16)|(9<<8)|(3)) < ((6<<16)|(0<<8)|(0))), isRelocatable = true, isLarge = (sizeof(QMap) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QMap) }; }; 8751: template class QMultiMap; template class QTypeInfo< QMultiMap > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isStatic = (((5<<16)|(9<<8)|(3)) < ((6<<16)|(0<<8)|(0))), isRelocatable = true, isLarge = (sizeof(QMultiMap) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QMultiMap) }; }; 8751: template class QHash; template class QTypeInfo< QHash > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isStatic = (((5<<16)|(9<<8)|(3)) < ((6<<16)|(0<<8)|(0))), isRelocatable = true, isLarge = (sizeof(QHash) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QHash) }; }; 8751: template class QMultiHash; template class QTypeInfo< QMultiHash > { public: enum { isSpecialized = true, isPointer = false, isIntegral = false, isComplex = true, isStatic = (((5<<16)|(9<<8)|(3)) < ((6<<16)|(0<<8)|(0))), isRelocatable = true, isLarge = (sizeof(QMultiHash) > sizeof(void*)), isDummy = false, sizeOf = sizeof(QMultiHash) }; }; 8751: # 236 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8751: enum { 8751: Q_COMPLEX_TYPE = 0, 8751: Q_PRIMITIVE_TYPE = 0x1, 8751: Q_STATIC_TYPE = 0, 8751: Q_MOVABLE_TYPE = 0x2, 8751: Q_DUMMY_TYPE = 0x4, 8751: Q_RELOCATABLE_TYPE = 0x8 8751: }; 8751: # 268 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8751: template class QFlags; 8751: template 8751: class QTypeInfo > { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QFlags)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QFlags >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QFlags) }; static inline const char *name() { return "QFlags"; } }; 8751: # 300 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(bool)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< bool >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(bool) }; static inline const char *name() { return "bool"; } }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(char)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< char >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(char) }; static inline const char *name() { return "char"; } }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(signed char)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< signed char >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(signed char) }; static inline const char *name() { return "signed char"; } }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(uchar)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< uchar >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(uchar) }; static inline const char *name() { return "uchar"; } }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(short)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< short >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(short) }; static inline const char *name() { return "short"; } }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(ushort)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< ushort >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(ushort) }; static inline const char *name() { return "ushort"; } }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(int)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< int >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(int) }; static inline const char *name() { return "int"; } }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(uint)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< uint >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(uint) }; static inline const char *name() { return "uint"; } }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(long)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< long >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(long) }; static inline const char *name() { return "long"; } }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(ulong)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< ulong >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(ulong) }; static inline const char *name() { return "ulong"; } }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(qint64)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< qint64 >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(qint64) }; static inline const char *name() { return "qint64"; } }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(quint64)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< quint64 >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(quint64) }; static inline const char *name() { return "quint64"; } }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(float)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< float >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(float) }; static inline const char *name() { return "float"; } }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(double)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< double >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(double) }; static inline const char *name() { return "double"; } }; 8751: 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(long double)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< long double >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(long double) }; static inline const char *name() { return "long double"; } }; 8751: # 331 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 3 4 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_RELOCATABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_RELOCATABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_RELOCATABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(char16_t)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< char16_t >::value, isDummy = (((Q_RELOCATABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(char16_t) }; static inline const char *name() { return "char16_t"; } }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_RELOCATABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_RELOCATABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_RELOCATABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(char32_t)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< char32_t >::value, isDummy = (((Q_RELOCATABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(char32_t) }; static inline const char *name() { return "char32_t"; } }; 8751: 8751: 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_RELOCATABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_RELOCATABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_RELOCATABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(wchar_t)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< wchar_t >::value, isDummy = (((Q_RELOCATABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(wchar_t) }; static inline const char *name() { return "wchar_t"; } }; 8751: 8751: 8751: 8751: 8751: # 1153 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 1 3 4 8751: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 3 4 8751: 8751: # 69 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 3 4 8751: class QString; 8751: class __attribute__((visibility("default"))) QSysInfo { 8751: public: 8751: enum Sizes { 8751: WordSize = (sizeof(void *)<<3) 8751: }; 8751: # 84 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 3 4 8751: enum Endian { 8751: BigEndian, 8751: LittleEndian 8751: 8751: 8751: 8751: 8751: 8751: 8751: , ByteOrder = LittleEndian 8751: 8751: 8751: 8751: }; 8751: 8751: 8751: enum WinVersion { 8751: WV_None = 0x0000, 8751: 8751: WV_32s = 0x0001, 8751: WV_95 = 0x0002, 8751: WV_98 = 0x0003, 8751: WV_Me = 0x0004, 8751: WV_DOS_based= 0x000f, 8751: 8751: 8751: WV_NT = 0x0010, 8751: WV_2000 = 0x0020, 8751: WV_XP = 0x0030, 8751: WV_2003 = 0x0040, 8751: WV_VISTA = 0x0080, 8751: WV_WINDOWS7 = 0x0090, 8751: WV_WINDOWS8 = 0x00a0, 8751: WV_WINDOWS8_1 = 0x00b0, 8751: WV_WINDOWS10 = 0x00c0, 8751: WV_NT_based = 0x00f0, 8751: 8751: 8751: WV_4_0 = WV_NT, 8751: WV_5_0 = WV_2000, 8751: WV_5_1 = WV_XP, 8751: WV_5_2 = WV_2003, 8751: WV_6_0 = WV_VISTA, 8751: WV_6_1 = WV_WINDOWS7, 8751: WV_6_2 = WV_WINDOWS8, 8751: WV_6_3 = WV_WINDOWS8_1, 8751: WV_10_0 = WV_WINDOWS10, 8751: 8751: WV_CE = 0x0100, 8751: WV_CENET = 0x0200, 8751: WV_CE_5 = 0x0300, 8751: WV_CE_6 = 0x0400, 8751: WV_CE_based = 0x0f00 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: enum MacVersion { 8751: MV_None = 0xffff, 8751: MV_Unknown = 0x0000, 8751: 8751: 8751: MV_9 = (9 == 10 ? 0 + 2 : (9 == 9 ? 1 : 0)), 8751: MV_10_0 = (10 == 10 ? 0 + 2 : (10 == 9 ? 1 : 0)), 8751: MV_10_1 = (10 == 10 ? 1 + 2 : (10 == 9 ? 1 : 0)), 8751: MV_10_2 = (10 == 10 ? 2 + 2 : (10 == 9 ? 1 : 0)), 8751: MV_10_3 = (10 == 10 ? 3 + 2 : (10 == 9 ? 1 : 0)), 8751: MV_10_4 = (10 == 10 ? 4 + 2 : (10 == 9 ? 1 : 0)), 8751: MV_10_5 = (10 == 10 ? 5 + 2 : (10 == 9 ? 1 : 0)), 8751: MV_10_6 = (10 == 10 ? 6 + 2 : (10 == 9 ? 1 : 0)), 8751: MV_10_7 = (10 == 10 ? 7 + 2 : (10 == 9 ? 1 : 0)), 8751: MV_10_8 = (10 == 10 ? 8 + 2 : (10 == 9 ? 1 : 0)), 8751: MV_10_9 = (10 == 10 ? 9 + 2 : (10 == 9 ? 1 : 0)), 8751: MV_10_10 = (10 == 10 ? 10 + 2 : (10 == 9 ? 1 : 0)), 8751: MV_10_11 = (10 == 10 ? 11 + 2 : (10 == 9 ? 1 : 0)), 8751: MV_10_12 = (10 == 10 ? 12 + 2 : (10 == 9 ? 1 : 0)), 8751: 8751: 8751: MV_CHEETAH = MV_10_0, 8751: MV_PUMA = MV_10_1, 8751: MV_JAGUAR = MV_10_2, 8751: MV_PANTHER = MV_10_3, 8751: MV_TIGER = MV_10_4, 8751: MV_LEOPARD = MV_10_5, 8751: MV_SNOWLEOPARD = MV_10_6, 8751: MV_LION = MV_10_7, 8751: MV_MOUNTAINLION = MV_10_8, 8751: MV_MAVERICKS = MV_10_9, 8751: MV_YOSEMITE = MV_10_10, 8751: MV_ELCAPITAN = MV_10_11, 8751: MV_SIERRA = MV_10_12, 8751: 8751: 8751: MV_IOS = 1 << 8, 8751: MV_IOS_4_3 = (QSysInfo::MV_IOS | 4 << 4 | 3), 8751: MV_IOS_5_0 = (QSysInfo::MV_IOS | 5 << 4 | 0), 8751: MV_IOS_5_1 = (QSysInfo::MV_IOS | 5 << 4 | 1), 8751: MV_IOS_6_0 = (QSysInfo::MV_IOS | 6 << 4 | 0), 8751: MV_IOS_6_1 = (QSysInfo::MV_IOS | 6 << 4 | 1), 8751: MV_IOS_7_0 = (QSysInfo::MV_IOS | 7 << 4 | 0), 8751: MV_IOS_7_1 = (QSysInfo::MV_IOS | 7 << 4 | 1), 8751: MV_IOS_8_0 = (QSysInfo::MV_IOS | 8 << 4 | 0), 8751: MV_IOS_8_1 = (QSysInfo::MV_IOS | 8 << 4 | 1), 8751: MV_IOS_8_2 = (QSysInfo::MV_IOS | 8 << 4 | 2), 8751: MV_IOS_8_3 = (QSysInfo::MV_IOS | 8 << 4 | 3), 8751: MV_IOS_8_4 = (QSysInfo::MV_IOS | 8 << 4 | 4), 8751: MV_IOS_9_0 = (QSysInfo::MV_IOS | 9 << 4 | 0), 8751: MV_IOS_9_1 = (QSysInfo::MV_IOS | 9 << 4 | 1), 8751: MV_IOS_9_2 = (QSysInfo::MV_IOS | 9 << 4 | 2), 8751: MV_IOS_9_3 = (QSysInfo::MV_IOS | 9 << 4 | 3), 8751: MV_IOS_10_0 = (QSysInfo::MV_IOS | 10 << 4 | 0), 8751: 8751: 8751: MV_TVOS = 1 << 9, 8751: MV_TVOS_9_0 = (QSysInfo::MV_TVOS | 9 << 4 | 0), 8751: MV_TVOS_9_1 = (QSysInfo::MV_TVOS | 9 << 4 | 1), 8751: MV_TVOS_9_2 = (QSysInfo::MV_TVOS | 9 << 4 | 2), 8751: MV_TVOS_10_0 = (QSysInfo::MV_TVOS | 10 << 4 | 0), 8751: 8751: 8751: MV_WATCHOS = 1 << 10, 8751: MV_WATCHOS_2_0 = (QSysInfo::MV_WATCHOS | 2 << 4 | 0), 8751: MV_WATCHOS_2_1 = (QSysInfo::MV_WATCHOS | 2 << 4 | 1), 8751: MV_WATCHOS_2_2 = (QSysInfo::MV_WATCHOS | 2 << 4 | 2), 8751: MV_WATCHOS_3_0 = (QSysInfo::MV_WATCHOS | 3 << 4 | 0) 8751: }; 8751: 8751: 8751: # 213 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 3 4 8751: #pragma GCC diagnostic push 8751: # 213 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 3 4 8751: 8751: 8751: # 214 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 3 4 8751: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8751: # 214 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 3 4 8751: 8751: 8751: 8751: 8751: 8751: static const WinVersion WindowsVersion = WV_None; 8751: static WinVersion windowsVersion() { return WV_None; } 8751: 8751: 8751: 8751: 8751: 8751: static const MacVersion MacintoshVersion = MV_None; 8751: static MacVersion macVersion() { return MV_None; } 8751: 8751: 8751: # 229 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 3 4 8751: #pragma GCC diagnostic pop 8751: # 229 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsysinfo.h" 3 4 8751: 8751: 8751: 8751: static QString buildCpuArchitecture(); 8751: static QString currentCpuArchitecture(); 8751: static QString buildAbi(); 8751: 8751: static QString kernelType(); 8751: static QString kernelVersion(); 8751: static QString productType(); 8751: static QString productVersion(); 8751: static QString prettyProductName(); 8751: 8751: static QString machineHostName(); 8751: }; 8751: 8751: 8751: 8751: 8751: # 1154 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlogging.h" 1 3 4 8751: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlogging.h" 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: class QDebug; 8751: class QNoDebug; 8751: 8751: enum QtMsgType { QtDebugMsg, QtWarningMsg, QtCriticalMsg, QtFatalMsg, QtInfoMsg, QtSystemMsg = QtCriticalMsg }; 8751: 8751: class QMessageLogContext 8751: { 8751: QMessageLogContext(const QMessageLogContext &) = delete; QMessageLogContext &operator=(const QMessageLogContext &) = delete; 8751: public: 8751: constexpr QMessageLogContext() 8751: : version(2), line(0), file(nullptr), function(nullptr), category(nullptr) {} 8751: constexpr QMessageLogContext(const char *fileName, int lineNumber, const char *functionName, const char *categoryName) 8751: : version(2), line(lineNumber), file(fileName), function(functionName), category(categoryName) {} 8751: 8751: void copy(const QMessageLogContext &logContext); 8751: 8751: int version; 8751: int line; 8751: const char *file; 8751: const char *function; 8751: const char *category; 8751: 8751: private: 8751: friend class QMessageLogger; 8751: friend class QDebug; 8751: }; 8751: 8751: class QLoggingCategory; 8751: 8751: class __attribute__((visibility("default"))) QMessageLogger 8751: { 8751: QMessageLogger(const QMessageLogger &) = delete; QMessageLogger &operator=(const QMessageLogger &) = delete; 8751: public: 8751: constexpr QMessageLogger() : context() {} 8751: constexpr QMessageLogger(const char *file, int line, const char *function) 8751: : context(file, line, function, "default") {} 8751: constexpr QMessageLogger(const char *file, int line, const char *function, const char *category) 8751: : context(file, line, function, category) {} 8751: 8751: void debug(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8751: void noDebug(const char *, ...) const __attribute__((format(printf, (2), (3)))) 8751: {} 8751: void info(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8751: void warning(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8751: void critical(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8751: 8751: typedef const QLoggingCategory &(*CategoryFunction)(); 8751: 8751: void debug(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8751: void debug(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8751: void info(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8751: void info(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8751: void warning(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8751: void warning(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8751: void critical(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8751: void critical(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8751: 8751: 8751: __attribute__((__noreturn__)) 8751: 8751: void fatal(const char *msg, ...) const noexcept __attribute__((format(printf, (2), (3)))); 8751: 8751: 8751: QDebug debug() const; 8751: QDebug debug(const QLoggingCategory &cat) const; 8751: QDebug debug(CategoryFunction catFunc) const; 8751: QDebug info() const; 8751: QDebug info(const QLoggingCategory &cat) const; 8751: QDebug info(CategoryFunction catFunc) const; 8751: QDebug warning() const; 8751: QDebug warning(const QLoggingCategory &cat) const; 8751: QDebug warning(CategoryFunction catFunc) const; 8751: QDebug critical() const; 8751: QDebug critical(const QLoggingCategory &cat) const; 8751: QDebug critical(CategoryFunction catFunc) const; 8751: 8751: QNoDebug noDebug() const noexcept; 8751: 8751: 8751: private: 8751: QMessageLogContext context; 8751: }; 8751: # 179 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlogging.h" 3 4 8751: __attribute__((visibility("default"))) void qt_message_output(QtMsgType, const QMessageLogContext &context, 8751: const QString &message); 8751: 8751: __attribute__((visibility("default"))) void qErrnoWarning(int code, const char *msg, ...); 8751: __attribute__((visibility("default"))) void qErrnoWarning(const char *msg, ...); 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef void (*QtMessageHandler)(QtMsgType, const QMessageLogContext &, const QString &); 8751: __attribute__((visibility("default"))) QtMessageHandler qInstallMessageHandler(QtMessageHandler); 8751: 8751: __attribute__((visibility("default"))) void qSetMessagePattern(const QString &messagePattern); 8751: __attribute__((visibility("default"))) QString qFormatLogMessage(QtMsgType type, const QMessageLogContext &context, 8751: const QString &buf); 8751: 8751: 8751: # 1155 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qflags.h" 1 3 4 8751: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qflags.h" 3 4 8751: 8751: 8751: class QDataStream; 8751: 8751: class QFlag 8751: { 8751: int i; 8751: public: 8751: constexpr inline QFlag(int ai) noexcept : i(ai) {} 8751: constexpr inline operator int() const noexcept { return i; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: constexpr inline QFlag(long ai) noexcept : i(int(ai)) {} 8751: constexpr inline QFlag(ulong ai) noexcept : i(int(long(ai))) {} 8751: 8751: constexpr inline QFlag(uint ai) noexcept : i(int(ai)) {} 8751: constexpr inline QFlag(short ai) noexcept : i(int(ai)) {} 8751: constexpr inline QFlag(ushort ai) noexcept : i(int(uint(ai))) {} 8751: constexpr inline operator uint() const noexcept { return uint(i); } 8751: 8751: }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QFlag)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QFlag >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QFlag) }; static inline const char *name() { return "QFlag"; } }; 8751: 8751: class QIncompatibleFlag 8751: { 8751: int i; 8751: public: 8751: constexpr inline explicit QIncompatibleFlag(int i) noexcept; 8751: constexpr inline operator int() const noexcept { return i; } 8751: }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QIncompatibleFlag)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QIncompatibleFlag >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QIncompatibleFlag) }; static inline const char *name() { return "QIncompatibleFlag"; } }; 8751: 8751: constexpr inline QIncompatibleFlag::QIncompatibleFlag(int ai) noexcept : i(ai) {} 8751: 8751: 8751: 8751: 8751: template 8751: class QFlags 8751: { 8751: static_assert(bool((sizeof(Enum) <= sizeof(int))), "QFlags uses an int as storage, so an enum with underlying " "long long will overflow.") 8751: 8751: ; 8751: static_assert(bool((std::is_enum::value)), "QFlags is only usable on enumeration types."); 8751: 8751: struct Private; 8751: typedef int (Private::*Zero); 8751: template friend QDataStream &operator>>(QDataStream &, QFlags &); 8751: template friend QDataStream &operator<<(QDataStream &, QFlags); 8751: public: 8751: 8751: 8751: 8751: 8751: 8751: typedef typename std::conditional< 8751: std::is_unsigned::type>::value, 8751: unsigned int, 8751: signed int 8751: >::type Int; 8751: 8751: typedef Enum enum_type; 8751: 8751: 8751: 8751: 8751: 8751: constexpr inline QFlags(Enum f) noexcept : i(Int(f)) {} 8751: constexpr inline QFlags(Zero = nullptr) noexcept : i(0) {} 8751: constexpr inline QFlags(QFlag f) noexcept : i(f) {} 8751: 8751: 8751: constexpr inline QFlags(std::initializer_list flags) noexcept 8751: : i(initializer_list_helper(flags.begin(), flags.end())) {} 8751: 8751: 8751: inline QFlags &operator&=(int mask) noexcept { i &= mask; return *this; } 8751: inline QFlags &operator&=(uint mask) noexcept { i &= mask; return *this; } 8751: inline QFlags &operator&=(Enum mask) noexcept { i &= Int(mask); return *this; } 8751: inline QFlags &operator|=(QFlags f) noexcept { i |= f.i; return *this; } 8751: inline QFlags &operator|=(Enum f) noexcept { i |= Int(f); return *this; } 8751: inline QFlags &operator^=(QFlags f) noexcept { i ^= f.i; return *this; } 8751: inline QFlags &operator^=(Enum f) noexcept { i ^= Int(f); return *this; } 8751: 8751: constexpr inline operator Int() const noexcept { return i; } 8751: 8751: constexpr inline QFlags operator|(QFlags f) const noexcept { return QFlags(QFlag(i | f.i)); } 8751: constexpr inline QFlags operator|(Enum f) const noexcept { return QFlags(QFlag(i | Int(f))); } 8751: constexpr inline QFlags operator^(QFlags f) const noexcept { return QFlags(QFlag(i ^ f.i)); } 8751: constexpr inline QFlags operator^(Enum f) const noexcept { return QFlags(QFlag(i ^ Int(f))); } 8751: constexpr inline QFlags operator&(int mask) const noexcept { return QFlags(QFlag(i & mask)); } 8751: constexpr inline QFlags operator&(uint mask) const noexcept { return QFlags(QFlag(i & mask)); } 8751: constexpr inline QFlags operator&(Enum f) const noexcept { return QFlags(QFlag(i & Int(f))); } 8751: constexpr inline QFlags operator~() const noexcept { return QFlags(QFlag(~i)); } 8751: 8751: constexpr inline bool operator!() const noexcept { return !i; } 8751: 8751: constexpr inline bool testFlag(Enum f) const noexcept { return (i & Int(f)) == Int(f) && (Int(f) != 0 || i == Int(f) ); } 8751: inline QFlags &setFlag(Enum f, bool on = true) noexcept 8751: { 8751: return on ? (*this |= f) : (*this &= ~f); 8751: } 8751: 8751: private: 8751: 8751: constexpr static inline Int initializer_list_helper(typename std::initializer_list::const_iterator it, 8751: typename std::initializer_list::const_iterator end) 8751: noexcept 8751: { 8751: return (it == end ? Int(0) : (Int(*it) | initializer_list_helper(it + 1, end))); 8751: } 8751: 8751: 8751: Int i; 8751: }; 8751: # 196 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qflags.h" 3 4 8751: 8751: # 1157 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 1 3 4 8751: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 1 3 4 8751: # 41 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 1 3 4 8751: # 42 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 2 3 4 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 1 3 4 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qgenericatomic.h" 1 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qgenericatomic.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtypeinfo.h" 1 3 4 8751: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qgenericatomic.h" 2 3 4 8751: 8751: 8751: # 56 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qgenericatomic.h" 3 4 8751: template struct QAtomicOpsSupport { enum { IsSupported = 0 }; }; 8751: template<> struct QAtomicOpsSupport<4> { enum { IsSupported = 1 }; }; 8751: 8751: template struct QAtomicAdditiveType 8751: { 8751: typedef T AdditiveT; 8751: static const int AddScale = 1; 8751: }; 8751: template struct QAtomicAdditiveType 8751: { 8751: typedef qptrdiff AdditiveT; 8751: static const int AddScale = sizeof(T); 8751: }; 8751: 8751: 8751: template struct QGenericAtomicOps 8751: { 8751: template struct AtomicType { typedef T Type; typedef T *PointerType; }; 8751: 8751: template static void acquireMemoryFence(const T &_q_value) noexcept 8751: { 8751: BaseClass::orderedMemoryFence(_q_value); 8751: } 8751: template static void releaseMemoryFence(const T &_q_value) noexcept 8751: { 8751: BaseClass::orderedMemoryFence(_q_value); 8751: } 8751: template static void orderedMemoryFence(const T &) noexcept 8751: { 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T load(const T &_q_value) noexcept 8751: { 8751: return _q_value; 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: void store(T &_q_value, X newValue) noexcept 8751: { 8751: _q_value = newValue; 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T loadAcquire(const T &_q_value) noexcept 8751: { 8751: T tmp = *static_cast(&_q_value); 8751: BaseClass::acquireMemoryFence(_q_value); 8751: return tmp; 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: void storeRelease(T &_q_value, X newValue) noexcept 8751: { 8751: BaseClass::releaseMemoryFence(_q_value); 8751: *static_cast(&_q_value) = newValue; 8751: } 8751: 8751: static inline constexpr bool isReferenceCountingNative() noexcept 8751: { return BaseClass::isFetchAndAddNative(); } 8751: static inline constexpr bool isReferenceCountingWaitFree() noexcept 8751: { return BaseClass::isFetchAndAddWaitFree(); } 8751: template static inline __attribute__((always_inline)) 8751: bool ref(T &_q_value) noexcept 8751: { 8751: return BaseClass::fetchAndAddRelaxed(_q_value, 1) != T(-1); 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: bool deref(T &_q_value) noexcept 8751: { 8751: return BaseClass::fetchAndAddRelaxed(_q_value, -1) != 1; 8751: } 8751: # 141 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qgenericatomic.h" 3 4 8751: template static inline __attribute__((always_inline)) 8751: bool testAndSetAcquire(T &_q_value, X expectedValue, X newValue) noexcept 8751: { 8751: bool tmp = BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue); 8751: BaseClass::acquireMemoryFence(_q_value); 8751: return tmp; 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: bool testAndSetRelease(T &_q_value, X expectedValue, X newValue) noexcept 8751: { 8751: BaseClass::releaseMemoryFence(_q_value); 8751: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue); 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: bool testAndSetOrdered(T &_q_value, X expectedValue, X newValue) noexcept 8751: { 8751: BaseClass::orderedMemoryFence(_q_value); 8751: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue); 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: bool testAndSetAcquire(T &_q_value, X expectedValue, X newValue, X *currentValue) noexcept 8751: { 8751: bool tmp = BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue, currentValue); 8751: BaseClass::acquireMemoryFence(_q_value); 8751: return tmp; 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: bool testAndSetRelease(T &_q_value, X expectedValue, X newValue, X *currentValue) noexcept 8751: { 8751: BaseClass::releaseMemoryFence(_q_value); 8751: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue, currentValue); 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: bool testAndSetOrdered(T &_q_value, X expectedValue, X newValue, X *currentValue) noexcept 8751: { 8751: BaseClass::orderedMemoryFence(_q_value); 8751: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue, currentValue); 8751: } 8751: 8751: static inline constexpr bool isFetchAndStoreNative() noexcept { return false; } 8751: static inline constexpr bool isFetchAndStoreWaitFree() noexcept { return false; } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndStoreRelaxed(T &_q_value, X newValue) noexcept 8751: { 8751: 8751: for(;;) { 8751: T tmp = load(_q_value); 8751: if (BaseClass::testAndSetRelaxed(_q_value, tmp, newValue)) 8751: return tmp; 8751: } 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndStoreAcquire(T &_q_value, X newValue) noexcept 8751: { 8751: T tmp = BaseClass::fetchAndStoreRelaxed(_q_value, newValue); 8751: BaseClass::acquireMemoryFence(_q_value); 8751: return tmp; 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndStoreRelease(T &_q_value, X newValue) noexcept 8751: { 8751: BaseClass::releaseMemoryFence(_q_value); 8751: return BaseClass::fetchAndStoreRelaxed(_q_value, newValue); 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndStoreOrdered(T &_q_value, X newValue) noexcept 8751: { 8751: BaseClass::orderedMemoryFence(_q_value); 8751: return BaseClass::fetchAndStoreRelaxed(_q_value, newValue); 8751: } 8751: 8751: static inline constexpr bool isFetchAndAddNative() noexcept { return false; } 8751: static inline constexpr bool isFetchAndAddWaitFree() noexcept { return false; } 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: 8751: for(;;) { 8751: T tmp = BaseClass::load(_q_value); 8751: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp + valueToAdd))) 8751: return tmp; 8751: } 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndAddAcquire(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: T tmp = BaseClass::fetchAndAddRelaxed(_q_value, valueToAdd); 8751: BaseClass::acquireMemoryFence(_q_value); 8751: return tmp; 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndAddRelease(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: BaseClass::releaseMemoryFence(_q_value); 8751: return BaseClass::fetchAndAddRelaxed(_q_value, valueToAdd); 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndAddOrdered(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: BaseClass::orderedMemoryFence(_q_value); 8751: return BaseClass::fetchAndAddRelaxed(_q_value, valueToAdd); 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndSubRelaxed(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8751: { 8751: 8751: return fetchAndAddRelaxed(_q_value, -operand); 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndSubAcquire(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8751: { 8751: T tmp = BaseClass::fetchAndSubRelaxed(_q_value, operand); 8751: BaseClass::acquireMemoryFence(_q_value); 8751: return tmp; 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndSubRelease(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8751: { 8751: BaseClass::releaseMemoryFence(_q_value); 8751: return BaseClass::fetchAndSubRelaxed(_q_value, operand); 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndSubOrdered(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8751: { 8751: BaseClass::orderedMemoryFence(_q_value); 8751: return BaseClass::fetchAndSubRelaxed(_q_value, operand); 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndAndRelaxed(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8751: { 8751: 8751: T tmp = BaseClass::load(_q_value); 8751: for(;;) { 8751: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp & operand), &tmp)) 8751: return tmp; 8751: } 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndAndAcquire(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8751: { 8751: T tmp = BaseClass::fetchAndAndRelaxed(_q_value, operand); 8751: BaseClass::acquireMemoryFence(_q_value); 8751: return tmp; 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndAndRelease(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8751: { 8751: BaseClass::releaseMemoryFence(_q_value); 8751: return BaseClass::fetchAndAndRelaxed(_q_value, operand); 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndAndOrdered(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8751: { 8751: BaseClass::orderedMemoryFence(_q_value); 8751: return BaseClass::fetchAndAndRelaxed(_q_value, operand); 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndOrRelaxed(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8751: { 8751: 8751: T tmp = BaseClass::load(_q_value); 8751: for(;;) { 8751: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp | operand), &tmp)) 8751: return tmp; 8751: } 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndOrAcquire(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8751: { 8751: T tmp = BaseClass::fetchAndOrRelaxed(_q_value, operand); 8751: BaseClass::acquireMemoryFence(_q_value); 8751: return tmp; 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndOrRelease(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8751: { 8751: BaseClass::releaseMemoryFence(_q_value); 8751: return BaseClass::fetchAndOrRelaxed(_q_value, operand); 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndOrOrdered(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8751: { 8751: BaseClass::orderedMemoryFence(_q_value); 8751: return BaseClass::fetchAndOrRelaxed(_q_value, operand); 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndXorRelaxed(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8751: { 8751: 8751: T tmp = BaseClass::load(_q_value); 8751: for(;;) { 8751: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp ^ operand), &tmp)) 8751: return tmp; 8751: } 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndXorAcquire(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8751: { 8751: T tmp = BaseClass::fetchAndXorRelaxed(_q_value, operand); 8751: BaseClass::acquireMemoryFence(_q_value); 8751: return tmp; 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndXorRelease(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8751: { 8751: BaseClass::releaseMemoryFence(_q_value); 8751: return BaseClass::fetchAndXorRelaxed(_q_value, operand); 8751: } 8751: 8751: template static inline __attribute__((always_inline)) 8751: T fetchAndXorOrdered(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8751: { 8751: BaseClass::orderedMemoryFence(_q_value); 8751: return BaseClass::fetchAndXorRelaxed(_q_value, operand); 8751: } 8751: }; 8751: 8751: 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 2 3 4 8751: # 1 "/usr/include/c++/8/atomic" 1 3 4 8751: # 35 "/usr/include/c++/8/atomic" 3 4 8751: 8751: # 36 "/usr/include/c++/8/atomic" 3 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/atomic_base.h" 1 3 8751: # 33 "/usr/include/c++/8/bits/atomic_base.h" 3 8751: 8751: # 34 "/usr/include/c++/8/bits/atomic_base.h" 3 8751: 8751: 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stdint.h" 1 3 4 8751: # 9 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stdint.h" 3 4 8751: # 1 "/usr/include/stdint.h" 1 3 4 8751: # 26 "/usr/include/stdint.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 8751: # 27 "/usr/include/stdint.h" 2 3 4 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/wchar.h" 1 3 4 8751: # 29 "/usr/include/stdint.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4 8751: # 30 "/usr/include/stdint.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdint-uintn.h" 1 3 4 8751: # 24 "/usr/include/arm-linux-gnueabihf/bits/stdint-uintn.h" 3 4 8751: typedef __uint8_t uint8_t; 8751: typedef __uint16_t uint16_t; 8751: typedef __uint32_t uint32_t; 8751: typedef __uint64_t uint64_t; 8751: # 38 "/usr/include/stdint.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: typedef signed char int_least8_t; 8751: typedef short int int_least16_t; 8751: typedef int int_least32_t; 8751: 8751: 8751: 8751: __extension__ 8751: typedef long long int int_least64_t; 8751: 8751: 8751: 8751: typedef unsigned char uint_least8_t; 8751: typedef unsigned short int uint_least16_t; 8751: typedef unsigned int uint_least32_t; 8751: 8751: 8751: 8751: __extension__ 8751: typedef unsigned long long int uint_least64_t; 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef signed char int_fast8_t; 8751: 8751: 8751: 8751: 8751: 8751: typedef int int_fast16_t; 8751: typedef int int_fast32_t; 8751: __extension__ 8751: typedef long long int int_fast64_t; 8751: 8751: 8751: 8751: typedef unsigned char uint_fast8_t; 8751: 8751: 8751: 8751: 8751: 8751: typedef unsigned int uint_fast16_t; 8751: typedef unsigned int uint_fast32_t; 8751: __extension__ 8751: typedef unsigned long long int uint_fast64_t; 8751: # 103 "/usr/include/stdint.h" 3 4 8751: typedef int intptr_t; 8751: 8751: 8751: typedef unsigned int uintptr_t; 8751: 8751: 8751: 8751: 8751: typedef __intmax_t intmax_t; 8751: typedef __uintmax_t uintmax_t; 8751: # 10 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stdint.h" 2 3 4 8751: # 37 "/usr/include/c++/8/bits/atomic_base.h" 2 3 8751: # 1 "/usr/include/c++/8/bits/atomic_lockfree_defines.h" 1 3 8751: # 33 "/usr/include/c++/8/bits/atomic_lockfree_defines.h" 3 8751: 8751: # 34 "/usr/include/c++/8/bits/atomic_lockfree_defines.h" 3 8751: # 38 "/usr/include/c++/8/bits/atomic_base.h" 2 3 8751: 8751: 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 55 "/usr/include/c++/8/bits/atomic_base.h" 3 8751: typedef enum memory_order 8751: { 8751: memory_order_relaxed, 8751: memory_order_consume, 8751: memory_order_acquire, 8751: memory_order_release, 8751: memory_order_acq_rel, 8751: memory_order_seq_cst 8751: } memory_order; 8751: 8751: enum __memory_order_modifier 8751: { 8751: __memory_order_mask = 0x0ffff, 8751: __memory_order_modifier_mask = 0xffff0000, 8751: __memory_order_hle_acquire = 0x10000, 8751: __memory_order_hle_release = 0x20000 8751: }; 8751: 8751: constexpr memory_order 8751: operator|(memory_order __m, __memory_order_modifier __mod) 8751: { 8751: return memory_order(__m | int(__mod)); 8751: } 8751: 8751: constexpr memory_order 8751: operator&(memory_order __m, __memory_order_modifier __mod) 8751: { 8751: return memory_order(__m & int(__mod)); 8751: } 8751: 8751: 8751: constexpr memory_order 8751: __cmpexch_failure_order2(memory_order __m) noexcept 8751: { 8751: return __m == memory_order_acq_rel ? memory_order_acquire 8751: : __m == memory_order_release ? memory_order_relaxed : __m; 8751: } 8751: 8751: constexpr memory_order 8751: __cmpexch_failure_order(memory_order __m) noexcept 8751: { 8751: return memory_order(__cmpexch_failure_order2(__m & __memory_order_mask) 8751: | (__m & __memory_order_modifier_mask)); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) void 8751: atomic_thread_fence(memory_order __m) noexcept 8751: { __atomic_thread_fence(__m); } 8751: 8751: inline __attribute__((__always_inline__)) void 8751: atomic_signal_fence(memory_order __m) noexcept 8751: { __atomic_signal_fence(__m); } 8751: 8751: 8751: template 8751: inline _Tp 8751: kill_dependency(_Tp __y) noexcept 8751: { 8751: _Tp __ret(__y); 8751: return __ret; 8751: } 8751: 8751: 8751: 8751: template 8751: struct __atomic_base; 8751: 8751: 8751: 8751: 8751: template 8751: struct atomic; 8751: 8751: template 8751: struct atomic<_Tp*>; 8751: 8751: 8751: 8751: typedef bool __atomic_flag_data_type; 8751: # 148 "/usr/include/c++/8/bits/atomic_base.h" 3 8751: extern "C" { 8751: 8751: struct __atomic_flag_base 8751: { 8751: __atomic_flag_data_type _M_i; 8751: }; 8751: 8751: } 8751: 8751: 8751: 8751: 8751: struct atomic_flag : public __atomic_flag_base 8751: { 8751: atomic_flag() noexcept = default; 8751: ~atomic_flag() noexcept = default; 8751: atomic_flag(const atomic_flag&) = delete; 8751: atomic_flag& operator=(const atomic_flag&) = delete; 8751: atomic_flag& operator=(const atomic_flag&) volatile = delete; 8751: 8751: 8751: constexpr atomic_flag(bool __i) noexcept 8751: : __atomic_flag_base{ _S_init(__i) } 8751: { } 8751: 8751: inline __attribute__((__always_inline__)) bool 8751: test_and_set(memory_order __m = memory_order_seq_cst) noexcept 8751: { 8751: return __atomic_test_and_set (&_M_i, __m); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) bool 8751: test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { 8751: return __atomic_test_and_set (&_M_i, __m); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) void 8751: clear(memory_order __m = memory_order_seq_cst) noexcept 8751: { 8751: memory_order __b = __m & __memory_order_mask; 8751: ; 8751: ; 8751: ; 8751: 8751: __atomic_clear (&_M_i, __m); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) void 8751: clear(memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { 8751: memory_order __b = __m & __memory_order_mask; 8751: ; 8751: ; 8751: ; 8751: 8751: __atomic_clear (&_M_i, __m); 8751: } 8751: 8751: private: 8751: static constexpr __atomic_flag_data_type 8751: _S_init(bool __i) 8751: { return __i ? 1 : 0; } 8751: }; 8751: # 237 "/usr/include/c++/8/bits/atomic_base.h" 3 8751: template 8751: struct __atomic_base 8751: { 8751: private: 8751: typedef _ITp __int_type; 8751: 8751: static constexpr int _S_alignment = 8751: sizeof(_ITp) > alignof(_ITp) ? sizeof(_ITp) : alignof(_ITp); 8751: 8751: alignas(_S_alignment) __int_type _M_i; 8751: 8751: public: 8751: __atomic_base() noexcept = default; 8751: ~__atomic_base() noexcept = default; 8751: __atomic_base(const __atomic_base&) = delete; 8751: __atomic_base& operator=(const __atomic_base&) = delete; 8751: __atomic_base& operator=(const __atomic_base&) volatile = delete; 8751: 8751: 8751: constexpr __atomic_base(__int_type __i) noexcept : _M_i (__i) { } 8751: 8751: operator __int_type() const noexcept 8751: { return load(); } 8751: 8751: operator __int_type() const volatile noexcept 8751: { return load(); } 8751: 8751: __int_type 8751: operator=(__int_type __i) noexcept 8751: { 8751: store(__i); 8751: return __i; 8751: } 8751: 8751: __int_type 8751: operator=(__int_type __i) volatile noexcept 8751: { 8751: store(__i); 8751: return __i; 8751: } 8751: 8751: __int_type 8751: operator++(int) noexcept 8751: { return fetch_add(1); } 8751: 8751: __int_type 8751: operator++(int) volatile noexcept 8751: { return fetch_add(1); } 8751: 8751: __int_type 8751: operator--(int) noexcept 8751: { return fetch_sub(1); } 8751: 8751: __int_type 8751: operator--(int) volatile noexcept 8751: { return fetch_sub(1); } 8751: 8751: __int_type 8751: operator++() noexcept 8751: { return __atomic_add_fetch(&_M_i, 1, memory_order_seq_cst); } 8751: 8751: __int_type 8751: operator++() volatile noexcept 8751: { return __atomic_add_fetch(&_M_i, 1, memory_order_seq_cst); } 8751: 8751: __int_type 8751: operator--() noexcept 8751: { return __atomic_sub_fetch(&_M_i, 1, memory_order_seq_cst); } 8751: 8751: __int_type 8751: operator--() volatile noexcept 8751: { return __atomic_sub_fetch(&_M_i, 1, memory_order_seq_cst); } 8751: 8751: __int_type 8751: operator+=(__int_type __i) noexcept 8751: { return __atomic_add_fetch(&_M_i, __i, memory_order_seq_cst); } 8751: 8751: __int_type 8751: operator+=(__int_type __i) volatile noexcept 8751: { return __atomic_add_fetch(&_M_i, __i, memory_order_seq_cst); } 8751: 8751: __int_type 8751: operator-=(__int_type __i) noexcept 8751: { return __atomic_sub_fetch(&_M_i, __i, memory_order_seq_cst); } 8751: 8751: __int_type 8751: operator-=(__int_type __i) volatile noexcept 8751: { return __atomic_sub_fetch(&_M_i, __i, memory_order_seq_cst); } 8751: 8751: __int_type 8751: operator&=(__int_type __i) noexcept 8751: { return __atomic_and_fetch(&_M_i, __i, memory_order_seq_cst); } 8751: 8751: __int_type 8751: operator&=(__int_type __i) volatile noexcept 8751: { return __atomic_and_fetch(&_M_i, __i, memory_order_seq_cst); } 8751: 8751: __int_type 8751: operator|=(__int_type __i) noexcept 8751: { return __atomic_or_fetch(&_M_i, __i, memory_order_seq_cst); } 8751: 8751: __int_type 8751: operator|=(__int_type __i) volatile noexcept 8751: { return __atomic_or_fetch(&_M_i, __i, memory_order_seq_cst); } 8751: 8751: __int_type 8751: operator^=(__int_type __i) noexcept 8751: { return __atomic_xor_fetch(&_M_i, __i, memory_order_seq_cst); } 8751: 8751: __int_type 8751: operator^=(__int_type __i) volatile noexcept 8751: { return __atomic_xor_fetch(&_M_i, __i, memory_order_seq_cst); } 8751: 8751: bool 8751: is_lock_free() const noexcept 8751: { 8751: 8751: return __atomic_is_lock_free(sizeof(_M_i), 8751: reinterpret_cast(-__alignof(_M_i))); 8751: } 8751: 8751: bool 8751: is_lock_free() const volatile noexcept 8751: { 8751: 8751: return __atomic_is_lock_free(sizeof(_M_i), 8751: reinterpret_cast(-__alignof(_M_i))); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) void 8751: store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept 8751: { 8751: memory_order __b = __m & __memory_order_mask; 8751: ; 8751: ; 8751: ; 8751: 8751: __atomic_store_n(&_M_i, __i, __m); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) void 8751: store(__int_type __i, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { 8751: memory_order __b = __m & __memory_order_mask; 8751: ; 8751: ; 8751: ; 8751: 8751: __atomic_store_n(&_M_i, __i, __m); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) __int_type 8751: load(memory_order __m = memory_order_seq_cst) const noexcept 8751: { 8751: memory_order __b = __m & __memory_order_mask; 8751: ; 8751: ; 8751: 8751: return __atomic_load_n(&_M_i, __m); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) __int_type 8751: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8751: { 8751: memory_order __b = __m & __memory_order_mask; 8751: ; 8751: ; 8751: 8751: return __atomic_load_n(&_M_i, __m); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) __int_type 8751: exchange(__int_type __i, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { 8751: return __atomic_exchange_n(&_M_i, __i, __m); 8751: } 8751: 8751: 8751: inline __attribute__((__always_inline__)) __int_type 8751: exchange(__int_type __i, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { 8751: return __atomic_exchange_n(&_M_i, __i, __m); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) bool 8751: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8751: memory_order __m1, memory_order __m2) noexcept 8751: { 8751: memory_order __b2 = __m2 & __memory_order_mask; 8751: memory_order __b1 = __m1 & __memory_order_mask; 8751: ; 8751: ; 8751: ; 8751: 8751: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) bool 8751: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8751: memory_order __m1, 8751: memory_order __m2) volatile noexcept 8751: { 8751: memory_order __b2 = __m2 & __memory_order_mask; 8751: memory_order __b1 = __m1 & __memory_order_mask; 8751: ; 8751: ; 8751: ; 8751: 8751: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) bool 8751: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { 8751: return compare_exchange_weak(__i1, __i2, __m, 8751: __cmpexch_failure_order(__m)); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) bool 8751: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { 8751: return compare_exchange_weak(__i1, __i2, __m, 8751: __cmpexch_failure_order(__m)); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) bool 8751: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8751: memory_order __m1, memory_order __m2) noexcept 8751: { 8751: memory_order __b2 = __m2 & __memory_order_mask; 8751: memory_order __b1 = __m1 & __memory_order_mask; 8751: ; 8751: ; 8751: ; 8751: 8751: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) bool 8751: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8751: memory_order __m1, 8751: memory_order __m2) volatile noexcept 8751: { 8751: memory_order __b2 = __m2 & __memory_order_mask; 8751: memory_order __b1 = __m1 & __memory_order_mask; 8751: 8751: ; 8751: ; 8751: ; 8751: 8751: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) bool 8751: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { 8751: return compare_exchange_strong(__i1, __i2, __m, 8751: __cmpexch_failure_order(__m)); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) bool 8751: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { 8751: return compare_exchange_strong(__i1, __i2, __m, 8751: __cmpexch_failure_order(__m)); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) __int_type 8751: fetch_add(__int_type __i, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { return __atomic_fetch_add(&_M_i, __i, __m); } 8751: 8751: inline __attribute__((__always_inline__)) __int_type 8751: fetch_add(__int_type __i, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { return __atomic_fetch_add(&_M_i, __i, __m); } 8751: 8751: inline __attribute__((__always_inline__)) __int_type 8751: fetch_sub(__int_type __i, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { return __atomic_fetch_sub(&_M_i, __i, __m); } 8751: 8751: inline __attribute__((__always_inline__)) __int_type 8751: fetch_sub(__int_type __i, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { return __atomic_fetch_sub(&_M_i, __i, __m); } 8751: 8751: inline __attribute__((__always_inline__)) __int_type 8751: fetch_and(__int_type __i, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { return __atomic_fetch_and(&_M_i, __i, __m); } 8751: 8751: inline __attribute__((__always_inline__)) __int_type 8751: fetch_and(__int_type __i, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { return __atomic_fetch_and(&_M_i, __i, __m); } 8751: 8751: inline __attribute__((__always_inline__)) __int_type 8751: fetch_or(__int_type __i, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { return __atomic_fetch_or(&_M_i, __i, __m); } 8751: 8751: inline __attribute__((__always_inline__)) __int_type 8751: fetch_or(__int_type __i, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { return __atomic_fetch_or(&_M_i, __i, __m); } 8751: 8751: inline __attribute__((__always_inline__)) __int_type 8751: fetch_xor(__int_type __i, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { return __atomic_fetch_xor(&_M_i, __i, __m); } 8751: 8751: inline __attribute__((__always_inline__)) __int_type 8751: fetch_xor(__int_type __i, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { return __atomic_fetch_xor(&_M_i, __i, __m); } 8751: }; 8751: 8751: 8751: 8751: template 8751: struct __atomic_base<_PTp*> 8751: { 8751: private: 8751: typedef _PTp* __pointer_type; 8751: 8751: __pointer_type _M_p; 8751: 8751: 8751: constexpr ptrdiff_t 8751: _M_type_size(ptrdiff_t __d) const { return __d * sizeof(_PTp); } 8751: 8751: constexpr ptrdiff_t 8751: _M_type_size(ptrdiff_t __d) const volatile { return __d * sizeof(_PTp); } 8751: 8751: public: 8751: __atomic_base() noexcept = default; 8751: ~__atomic_base() noexcept = default; 8751: __atomic_base(const __atomic_base&) = delete; 8751: __atomic_base& operator=(const __atomic_base&) = delete; 8751: __atomic_base& operator=(const __atomic_base&) volatile = delete; 8751: 8751: 8751: constexpr __atomic_base(__pointer_type __p) noexcept : _M_p (__p) { } 8751: 8751: operator __pointer_type() const noexcept 8751: { return load(); } 8751: 8751: operator __pointer_type() const volatile noexcept 8751: { return load(); } 8751: 8751: __pointer_type 8751: operator=(__pointer_type __p) noexcept 8751: { 8751: store(__p); 8751: return __p; 8751: } 8751: 8751: __pointer_type 8751: operator=(__pointer_type __p) volatile noexcept 8751: { 8751: store(__p); 8751: return __p; 8751: } 8751: 8751: __pointer_type 8751: operator++(int) noexcept 8751: { return fetch_add(1); } 8751: 8751: __pointer_type 8751: operator++(int) volatile noexcept 8751: { return fetch_add(1); } 8751: 8751: __pointer_type 8751: operator--(int) noexcept 8751: { return fetch_sub(1); } 8751: 8751: __pointer_type 8751: operator--(int) volatile noexcept 8751: { return fetch_sub(1); } 8751: 8751: __pointer_type 8751: operator++() noexcept 8751: { return __atomic_add_fetch(&_M_p, _M_type_size(1), 8751: memory_order_seq_cst); } 8751: 8751: __pointer_type 8751: operator++() volatile noexcept 8751: { return __atomic_add_fetch(&_M_p, _M_type_size(1), 8751: memory_order_seq_cst); } 8751: 8751: __pointer_type 8751: operator--() noexcept 8751: { return __atomic_sub_fetch(&_M_p, _M_type_size(1), 8751: memory_order_seq_cst); } 8751: 8751: __pointer_type 8751: operator--() volatile noexcept 8751: { return __atomic_sub_fetch(&_M_p, _M_type_size(1), 8751: memory_order_seq_cst); } 8751: 8751: __pointer_type 8751: operator+=(ptrdiff_t __d) noexcept 8751: { return __atomic_add_fetch(&_M_p, _M_type_size(__d), 8751: memory_order_seq_cst); } 8751: 8751: __pointer_type 8751: operator+=(ptrdiff_t __d) volatile noexcept 8751: { return __atomic_add_fetch(&_M_p, _M_type_size(__d), 8751: memory_order_seq_cst); } 8751: 8751: __pointer_type 8751: operator-=(ptrdiff_t __d) noexcept 8751: { return __atomic_sub_fetch(&_M_p, _M_type_size(__d), 8751: memory_order_seq_cst); } 8751: 8751: __pointer_type 8751: operator-=(ptrdiff_t __d) volatile noexcept 8751: { return __atomic_sub_fetch(&_M_p, _M_type_size(__d), 8751: memory_order_seq_cst); } 8751: 8751: bool 8751: is_lock_free() const noexcept 8751: { 8751: 8751: return __atomic_is_lock_free(sizeof(_M_p), 8751: reinterpret_cast(-__alignof(_M_p))); 8751: } 8751: 8751: bool 8751: is_lock_free() const volatile noexcept 8751: { 8751: 8751: return __atomic_is_lock_free(sizeof(_M_p), 8751: reinterpret_cast(-__alignof(_M_p))); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) void 8751: store(__pointer_type __p, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { 8751: memory_order __b = __m & __memory_order_mask; 8751: 8751: ; 8751: ; 8751: ; 8751: 8751: __atomic_store_n(&_M_p, __p, __m); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) void 8751: store(__pointer_type __p, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { 8751: memory_order __b = __m & __memory_order_mask; 8751: ; 8751: ; 8751: ; 8751: 8751: __atomic_store_n(&_M_p, __p, __m); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) __pointer_type 8751: load(memory_order __m = memory_order_seq_cst) const noexcept 8751: { 8751: memory_order __b = __m & __memory_order_mask; 8751: ; 8751: ; 8751: 8751: return __atomic_load_n(&_M_p, __m); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) __pointer_type 8751: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8751: { 8751: memory_order __b = __m & __memory_order_mask; 8751: ; 8751: ; 8751: 8751: return __atomic_load_n(&_M_p, __m); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) __pointer_type 8751: exchange(__pointer_type __p, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { 8751: return __atomic_exchange_n(&_M_p, __p, __m); 8751: } 8751: 8751: 8751: inline __attribute__((__always_inline__)) __pointer_type 8751: exchange(__pointer_type __p, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { 8751: return __atomic_exchange_n(&_M_p, __p, __m); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) bool 8751: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8751: memory_order __m1, 8751: memory_order __m2) noexcept 8751: { 8751: memory_order __b2 = __m2 & __memory_order_mask; 8751: memory_order __b1 = __m1 & __memory_order_mask; 8751: ; 8751: ; 8751: ; 8751: 8751: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) bool 8751: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8751: memory_order __m1, 8751: memory_order __m2) volatile noexcept 8751: { 8751: memory_order __b2 = __m2 & __memory_order_mask; 8751: memory_order __b1 = __m1 & __memory_order_mask; 8751: 8751: ; 8751: ; 8751: ; 8751: 8751: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2); 8751: } 8751: 8751: inline __attribute__((__always_inline__)) __pointer_type 8751: fetch_add(ptrdiff_t __d, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { return __atomic_fetch_add(&_M_p, _M_type_size(__d), __m); } 8751: 8751: inline __attribute__((__always_inline__)) __pointer_type 8751: fetch_add(ptrdiff_t __d, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { return __atomic_fetch_add(&_M_p, _M_type_size(__d), __m); } 8751: 8751: inline __attribute__((__always_inline__)) __pointer_type 8751: fetch_sub(ptrdiff_t __d, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), __m); } 8751: 8751: inline __attribute__((__always_inline__)) __pointer_type 8751: fetch_sub(ptrdiff_t __d, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), __m); } 8751: }; 8751: 8751: 8751: 8751: 8751: } 8751: # 42 "/usr/include/c++/8/atomic" 2 3 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 57 "/usr/include/c++/8/atomic" 3 8751: template 8751: struct atomic; 8751: 8751: 8751: 8751: template<> 8751: struct atomic 8751: { 8751: private: 8751: __atomic_base _M_base; 8751: 8751: public: 8751: atomic() noexcept = default; 8751: ~atomic() noexcept = default; 8751: atomic(const atomic&) = delete; 8751: atomic& operator=(const atomic&) = delete; 8751: atomic& operator=(const atomic&) volatile = delete; 8751: 8751: constexpr atomic(bool __i) noexcept : _M_base(__i) { } 8751: 8751: bool 8751: operator=(bool __i) noexcept 8751: { return _M_base.operator=(__i); } 8751: 8751: bool 8751: operator=(bool __i) volatile noexcept 8751: { return _M_base.operator=(__i); } 8751: 8751: operator bool() const noexcept 8751: { return _M_base.load(); } 8751: 8751: operator bool() const volatile noexcept 8751: { return _M_base.load(); } 8751: 8751: bool 8751: is_lock_free() const noexcept { return _M_base.is_lock_free(); } 8751: 8751: bool 8751: is_lock_free() const volatile noexcept { return _M_base.is_lock_free(); } 8751: 8751: 8751: 8751: 8751: 8751: void 8751: store(bool __i, memory_order __m = memory_order_seq_cst) noexcept 8751: { _M_base.store(__i, __m); } 8751: 8751: void 8751: store(bool __i, memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { _M_base.store(__i, __m); } 8751: 8751: bool 8751: load(memory_order __m = memory_order_seq_cst) const noexcept 8751: { return _M_base.load(__m); } 8751: 8751: bool 8751: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8751: { return _M_base.load(__m); } 8751: 8751: bool 8751: exchange(bool __i, memory_order __m = memory_order_seq_cst) noexcept 8751: { return _M_base.exchange(__i, __m); } 8751: 8751: bool 8751: exchange(bool __i, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { return _M_base.exchange(__i, __m); } 8751: 8751: bool 8751: compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1, 8751: memory_order __m2) noexcept 8751: { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); } 8751: 8751: bool 8751: compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1, 8751: memory_order __m2) volatile noexcept 8751: { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); } 8751: 8751: bool 8751: compare_exchange_weak(bool& __i1, bool __i2, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { return _M_base.compare_exchange_weak(__i1, __i2, __m); } 8751: 8751: bool 8751: compare_exchange_weak(bool& __i1, bool __i2, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { return _M_base.compare_exchange_weak(__i1, __i2, __m); } 8751: 8751: bool 8751: compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1, 8751: memory_order __m2) noexcept 8751: { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); } 8751: 8751: bool 8751: compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1, 8751: memory_order __m2) volatile noexcept 8751: { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); } 8751: 8751: bool 8751: compare_exchange_strong(bool& __i1, bool __i2, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { return _M_base.compare_exchange_strong(__i1, __i2, __m); } 8751: 8751: bool 8751: compare_exchange_strong(bool& __i1, bool __i2, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { return _M_base.compare_exchange_strong(__i1, __i2, __m); } 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct atomic 8751: { 8751: private: 8751: 8751: static constexpr int _S_min_alignment 8751: = (sizeof(_Tp) & (sizeof(_Tp) - 1)) || sizeof(_Tp) > 16 8751: ? 0 : sizeof(_Tp); 8751: 8751: static constexpr int _S_alignment 8751: = _S_min_alignment > alignof(_Tp) ? _S_min_alignment : alignof(_Tp); 8751: 8751: alignas(_S_alignment) _Tp _M_i; 8751: 8751: static_assert(__is_trivially_copyable(_Tp), 8751: "std::atomic requires a trivially copyable type"); 8751: 8751: static_assert(sizeof(_Tp) > 0, 8751: "Incomplete or zero-sized types are not supported"); 8751: 8751: public: 8751: atomic() noexcept = default; 8751: ~atomic() noexcept = default; 8751: atomic(const atomic&) = delete; 8751: atomic& operator=(const atomic&) = delete; 8751: atomic& operator=(const atomic&) volatile = delete; 8751: 8751: constexpr atomic(_Tp __i) noexcept : _M_i(__i) { } 8751: 8751: operator _Tp() const noexcept 8751: { return load(); } 8751: 8751: operator _Tp() const volatile noexcept 8751: { return load(); } 8751: 8751: _Tp 8751: operator=(_Tp __i) noexcept 8751: { store(__i); return __i; } 8751: 8751: _Tp 8751: operator=(_Tp __i) volatile noexcept 8751: { store(__i); return __i; } 8751: 8751: bool 8751: is_lock_free() const noexcept 8751: { 8751: 8751: return __atomic_is_lock_free(sizeof(_M_i), 8751: reinterpret_cast(-__alignof(_M_i))); 8751: } 8751: 8751: bool 8751: is_lock_free() const volatile noexcept 8751: { 8751: 8751: return __atomic_is_lock_free(sizeof(_M_i), 8751: reinterpret_cast(-__alignof(_M_i))); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: void 8751: store(_Tp __i, memory_order __m = memory_order_seq_cst) noexcept 8751: { __atomic_store(std::__addressof(_M_i), std::__addressof(__i), __m); } 8751: 8751: void 8751: store(_Tp __i, memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { __atomic_store(std::__addressof(_M_i), std::__addressof(__i), __m); } 8751: 8751: _Tp 8751: load(memory_order __m = memory_order_seq_cst) const noexcept 8751: { 8751: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8751: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8751: __atomic_load(std::__addressof(_M_i), __ptr, __m); 8751: return *__ptr; 8751: } 8751: 8751: _Tp 8751: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8751: { 8751: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8751: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8751: __atomic_load(std::__addressof(_M_i), __ptr, __m); 8751: return *__ptr; 8751: } 8751: 8751: _Tp 8751: exchange(_Tp __i, memory_order __m = memory_order_seq_cst) noexcept 8751: { 8751: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8751: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8751: __atomic_exchange(std::__addressof(_M_i), std::__addressof(__i), 8751: __ptr, __m); 8751: return *__ptr; 8751: } 8751: 8751: _Tp 8751: exchange(_Tp __i, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { 8751: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8751: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8751: __atomic_exchange(std::__addressof(_M_i), std::__addressof(__i), 8751: __ptr, __m); 8751: return *__ptr; 8751: } 8751: 8751: bool 8751: compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 8751: memory_order __f) noexcept 8751: { 8751: return __atomic_compare_exchange(std::__addressof(_M_i), 8751: std::__addressof(__e), 8751: std::__addressof(__i), 8751: true, __s, __f); 8751: } 8751: 8751: bool 8751: compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 8751: memory_order __f) volatile noexcept 8751: { 8751: return __atomic_compare_exchange(std::__addressof(_M_i), 8751: std::__addressof(__e), 8751: std::__addressof(__i), 8751: true, __s, __f); 8751: } 8751: 8751: bool 8751: compare_exchange_weak(_Tp& __e, _Tp __i, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { return compare_exchange_weak(__e, __i, __m, 8751: __cmpexch_failure_order(__m)); } 8751: 8751: bool 8751: compare_exchange_weak(_Tp& __e, _Tp __i, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { return compare_exchange_weak(__e, __i, __m, 8751: __cmpexch_failure_order(__m)); } 8751: 8751: bool 8751: compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 8751: memory_order __f) noexcept 8751: { 8751: return __atomic_compare_exchange(std::__addressof(_M_i), 8751: std::__addressof(__e), 8751: std::__addressof(__i), 8751: false, __s, __f); 8751: } 8751: 8751: bool 8751: compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 8751: memory_order __f) volatile noexcept 8751: { 8751: return __atomic_compare_exchange(std::__addressof(_M_i), 8751: std::__addressof(__e), 8751: std::__addressof(__i), 8751: false, __s, __f); 8751: } 8751: 8751: bool 8751: compare_exchange_strong(_Tp& __e, _Tp __i, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { return compare_exchange_strong(__e, __i, __m, 8751: __cmpexch_failure_order(__m)); } 8751: 8751: bool 8751: compare_exchange_strong(_Tp& __e, _Tp __i, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { return compare_exchange_strong(__e, __i, __m, 8751: __cmpexch_failure_order(__m)); } 8751: }; 8751: 8751: 8751: 8751: template 8751: struct atomic<_Tp*> 8751: { 8751: typedef _Tp* __pointer_type; 8751: typedef __atomic_base<_Tp*> __base_type; 8751: __base_type _M_b; 8751: 8751: atomic() noexcept = default; 8751: ~atomic() noexcept = default; 8751: atomic(const atomic&) = delete; 8751: atomic& operator=(const atomic&) = delete; 8751: atomic& operator=(const atomic&) volatile = delete; 8751: 8751: constexpr atomic(__pointer_type __p) noexcept : _M_b(__p) { } 8751: 8751: operator __pointer_type() const noexcept 8751: { return __pointer_type(_M_b); } 8751: 8751: operator __pointer_type() const volatile noexcept 8751: { return __pointer_type(_M_b); } 8751: 8751: __pointer_type 8751: operator=(__pointer_type __p) noexcept 8751: { return _M_b.operator=(__p); } 8751: 8751: __pointer_type 8751: operator=(__pointer_type __p) volatile noexcept 8751: { return _M_b.operator=(__p); } 8751: 8751: __pointer_type 8751: operator++(int) noexcept 8751: { return _M_b++; } 8751: 8751: __pointer_type 8751: operator++(int) volatile noexcept 8751: { return _M_b++; } 8751: 8751: __pointer_type 8751: operator--(int) noexcept 8751: { return _M_b--; } 8751: 8751: __pointer_type 8751: operator--(int) volatile noexcept 8751: { return _M_b--; } 8751: 8751: __pointer_type 8751: operator++() noexcept 8751: { return ++_M_b; } 8751: 8751: __pointer_type 8751: operator++() volatile noexcept 8751: { return ++_M_b; } 8751: 8751: __pointer_type 8751: operator--() noexcept 8751: { return --_M_b; } 8751: 8751: __pointer_type 8751: operator--() volatile noexcept 8751: { return --_M_b; } 8751: 8751: __pointer_type 8751: operator+=(ptrdiff_t __d) noexcept 8751: { return _M_b.operator+=(__d); } 8751: 8751: __pointer_type 8751: operator+=(ptrdiff_t __d) volatile noexcept 8751: { return _M_b.operator+=(__d); } 8751: 8751: __pointer_type 8751: operator-=(ptrdiff_t __d) noexcept 8751: { return _M_b.operator-=(__d); } 8751: 8751: __pointer_type 8751: operator-=(ptrdiff_t __d) volatile noexcept 8751: { return _M_b.operator-=(__d); } 8751: 8751: bool 8751: is_lock_free() const noexcept 8751: { return _M_b.is_lock_free(); } 8751: 8751: bool 8751: is_lock_free() const volatile noexcept 8751: { return _M_b.is_lock_free(); } 8751: 8751: 8751: 8751: 8751: 8751: void 8751: store(__pointer_type __p, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { return _M_b.store(__p, __m); } 8751: 8751: void 8751: store(__pointer_type __p, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { return _M_b.store(__p, __m); } 8751: 8751: __pointer_type 8751: load(memory_order __m = memory_order_seq_cst) const noexcept 8751: { return _M_b.load(__m); } 8751: 8751: __pointer_type 8751: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8751: { return _M_b.load(__m); } 8751: 8751: __pointer_type 8751: exchange(__pointer_type __p, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { return _M_b.exchange(__p, __m); } 8751: 8751: __pointer_type 8751: exchange(__pointer_type __p, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { return _M_b.exchange(__p, __m); } 8751: 8751: bool 8751: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8751: memory_order __m1, memory_order __m2) noexcept 8751: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8751: 8751: bool 8751: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8751: memory_order __m1, 8751: memory_order __m2) volatile noexcept 8751: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8751: 8751: bool 8751: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { 8751: return compare_exchange_weak(__p1, __p2, __m, 8751: __cmpexch_failure_order(__m)); 8751: } 8751: 8751: bool 8751: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { 8751: return compare_exchange_weak(__p1, __p2, __m, 8751: __cmpexch_failure_order(__m)); 8751: } 8751: 8751: bool 8751: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8751: memory_order __m1, memory_order __m2) noexcept 8751: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8751: 8751: bool 8751: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8751: memory_order __m1, 8751: memory_order __m2) volatile noexcept 8751: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8751: 8751: bool 8751: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { 8751: return _M_b.compare_exchange_strong(__p1, __p2, __m, 8751: __cmpexch_failure_order(__m)); 8751: } 8751: 8751: bool 8751: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { 8751: return _M_b.compare_exchange_strong(__p1, __p2, __m, 8751: __cmpexch_failure_order(__m)); 8751: } 8751: 8751: __pointer_type 8751: fetch_add(ptrdiff_t __d, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { return _M_b.fetch_add(__d, __m); } 8751: 8751: __pointer_type 8751: fetch_add(ptrdiff_t __d, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { return _M_b.fetch_add(__d, __m); } 8751: 8751: __pointer_type 8751: fetch_sub(ptrdiff_t __d, 8751: memory_order __m = memory_order_seq_cst) noexcept 8751: { return _M_b.fetch_sub(__d, __m); } 8751: 8751: __pointer_type 8751: fetch_sub(ptrdiff_t __d, 8751: memory_order __m = memory_order_seq_cst) volatile noexcept 8751: { return _M_b.fetch_sub(__d, __m); } 8751: }; 8751: 8751: 8751: 8751: template<> 8751: struct atomic : __atomic_base 8751: { 8751: typedef char __integral_type; 8751: typedef __atomic_base __base_type; 8751: 8751: atomic() noexcept = default; 8751: ~atomic() noexcept = default; 8751: atomic(const atomic&) = delete; 8751: atomic& operator=(const atomic&) = delete; 8751: atomic& operator=(const atomic&) volatile = delete; 8751: 8751: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8751: 8751: using __base_type::operator __integral_type; 8751: using __base_type::operator=; 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: 8751: template<> 8751: struct atomic : __atomic_base 8751: { 8751: typedef signed char __integral_type; 8751: typedef __atomic_base __base_type; 8751: 8751: atomic() noexcept= default; 8751: ~atomic() noexcept = default; 8751: atomic(const atomic&) = delete; 8751: atomic& operator=(const atomic&) = delete; 8751: atomic& operator=(const atomic&) volatile = delete; 8751: 8751: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8751: 8751: using __base_type::operator __integral_type; 8751: using __base_type::operator=; 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: 8751: template<> 8751: struct atomic : __atomic_base 8751: { 8751: typedef unsigned char __integral_type; 8751: typedef __atomic_base __base_type; 8751: 8751: atomic() noexcept= default; 8751: ~atomic() noexcept = default; 8751: atomic(const atomic&) = delete; 8751: atomic& operator=(const atomic&) = delete; 8751: atomic& operator=(const atomic&) volatile = delete; 8751: 8751: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8751: 8751: using __base_type::operator __integral_type; 8751: using __base_type::operator=; 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: 8751: template<> 8751: struct atomic : __atomic_base 8751: { 8751: typedef short __integral_type; 8751: typedef __atomic_base __base_type; 8751: 8751: atomic() noexcept = default; 8751: ~atomic() noexcept = default; 8751: atomic(const atomic&) = delete; 8751: atomic& operator=(const atomic&) = delete; 8751: atomic& operator=(const atomic&) volatile = delete; 8751: 8751: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8751: 8751: using __base_type::operator __integral_type; 8751: using __base_type::operator=; 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: 8751: template<> 8751: struct atomic : __atomic_base 8751: { 8751: typedef unsigned short __integral_type; 8751: typedef __atomic_base __base_type; 8751: 8751: atomic() noexcept = default; 8751: ~atomic() noexcept = default; 8751: atomic(const atomic&) = delete; 8751: atomic& operator=(const atomic&) = delete; 8751: atomic& operator=(const atomic&) volatile = delete; 8751: 8751: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8751: 8751: using __base_type::operator __integral_type; 8751: using __base_type::operator=; 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: 8751: template<> 8751: struct atomic : __atomic_base 8751: { 8751: typedef int __integral_type; 8751: typedef __atomic_base __base_type; 8751: 8751: atomic() noexcept = default; 8751: ~atomic() noexcept = default; 8751: atomic(const atomic&) = delete; 8751: atomic& operator=(const atomic&) = delete; 8751: atomic& operator=(const atomic&) volatile = delete; 8751: 8751: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8751: 8751: using __base_type::operator __integral_type; 8751: using __base_type::operator=; 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: 8751: template<> 8751: struct atomic : __atomic_base 8751: { 8751: typedef unsigned int __integral_type; 8751: typedef __atomic_base __base_type; 8751: 8751: atomic() noexcept = default; 8751: ~atomic() noexcept = default; 8751: atomic(const atomic&) = delete; 8751: atomic& operator=(const atomic&) = delete; 8751: atomic& operator=(const atomic&) volatile = delete; 8751: 8751: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8751: 8751: using __base_type::operator __integral_type; 8751: using __base_type::operator=; 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: 8751: template<> 8751: struct atomic : __atomic_base 8751: { 8751: typedef long __integral_type; 8751: typedef __atomic_base __base_type; 8751: 8751: atomic() noexcept = default; 8751: ~atomic() noexcept = default; 8751: atomic(const atomic&) = delete; 8751: atomic& operator=(const atomic&) = delete; 8751: atomic& operator=(const atomic&) volatile = delete; 8751: 8751: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8751: 8751: using __base_type::operator __integral_type; 8751: using __base_type::operator=; 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: 8751: template<> 8751: struct atomic : __atomic_base 8751: { 8751: typedef unsigned long __integral_type; 8751: typedef __atomic_base __base_type; 8751: 8751: atomic() noexcept = default; 8751: ~atomic() noexcept = default; 8751: atomic(const atomic&) = delete; 8751: atomic& operator=(const atomic&) = delete; 8751: atomic& operator=(const atomic&) volatile = delete; 8751: 8751: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8751: 8751: using __base_type::operator __integral_type; 8751: using __base_type::operator=; 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: 8751: template<> 8751: struct atomic : __atomic_base 8751: { 8751: typedef long long __integral_type; 8751: typedef __atomic_base __base_type; 8751: 8751: atomic() noexcept = default; 8751: ~atomic() noexcept = default; 8751: atomic(const atomic&) = delete; 8751: atomic& operator=(const atomic&) = delete; 8751: atomic& operator=(const atomic&) volatile = delete; 8751: 8751: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8751: 8751: using __base_type::operator __integral_type; 8751: using __base_type::operator=; 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: 8751: template<> 8751: struct atomic : __atomic_base 8751: { 8751: typedef unsigned long long __integral_type; 8751: typedef __atomic_base __base_type; 8751: 8751: atomic() noexcept = default; 8751: ~atomic() noexcept = default; 8751: atomic(const atomic&) = delete; 8751: atomic& operator=(const atomic&) = delete; 8751: atomic& operator=(const atomic&) volatile = delete; 8751: 8751: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8751: 8751: using __base_type::operator __integral_type; 8751: using __base_type::operator=; 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: 8751: template<> 8751: struct atomic : __atomic_base 8751: { 8751: typedef wchar_t __integral_type; 8751: typedef __atomic_base __base_type; 8751: 8751: atomic() noexcept = default; 8751: ~atomic() noexcept = default; 8751: atomic(const atomic&) = delete; 8751: atomic& operator=(const atomic&) = delete; 8751: atomic& operator=(const atomic&) volatile = delete; 8751: 8751: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8751: 8751: using __base_type::operator __integral_type; 8751: using __base_type::operator=; 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: 8751: template<> 8751: struct atomic : __atomic_base 8751: { 8751: typedef char16_t __integral_type; 8751: typedef __atomic_base __base_type; 8751: 8751: atomic() noexcept = default; 8751: ~atomic() noexcept = default; 8751: atomic(const atomic&) = delete; 8751: atomic& operator=(const atomic&) = delete; 8751: atomic& operator=(const atomic&) volatile = delete; 8751: 8751: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8751: 8751: using __base_type::operator __integral_type; 8751: using __base_type::operator=; 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: 8751: template<> 8751: struct atomic : __atomic_base 8751: { 8751: typedef char32_t __integral_type; 8751: typedef __atomic_base __base_type; 8751: 8751: atomic() noexcept = default; 8751: ~atomic() noexcept = default; 8751: atomic(const atomic&) = delete; 8751: atomic& operator=(const atomic&) = delete; 8751: atomic& operator=(const atomic&) volatile = delete; 8751: 8751: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8751: 8751: using __base_type::operator __integral_type; 8751: using __base_type::operator=; 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: 8751: 8751: typedef atomic atomic_bool; 8751: 8751: 8751: typedef atomic atomic_char; 8751: 8751: 8751: typedef atomic atomic_schar; 8751: 8751: 8751: typedef atomic atomic_uchar; 8751: 8751: 8751: typedef atomic atomic_short; 8751: 8751: 8751: typedef atomic atomic_ushort; 8751: 8751: 8751: typedef atomic atomic_int; 8751: 8751: 8751: typedef atomic atomic_uint; 8751: 8751: 8751: typedef atomic atomic_long; 8751: 8751: 8751: typedef atomic atomic_ulong; 8751: 8751: 8751: typedef atomic atomic_llong; 8751: 8751: 8751: typedef atomic atomic_ullong; 8751: 8751: 8751: typedef atomic atomic_wchar_t; 8751: 8751: 8751: typedef atomic atomic_char16_t; 8751: 8751: 8751: typedef atomic atomic_char32_t; 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef atomic atomic_int8_t; 8751: 8751: 8751: typedef atomic atomic_uint8_t; 8751: 8751: 8751: typedef atomic atomic_int16_t; 8751: 8751: 8751: typedef atomic atomic_uint16_t; 8751: 8751: 8751: typedef atomic atomic_int32_t; 8751: 8751: 8751: typedef atomic atomic_uint32_t; 8751: 8751: 8751: typedef atomic atomic_int64_t; 8751: 8751: 8751: typedef atomic atomic_uint64_t; 8751: 8751: 8751: 8751: typedef atomic atomic_int_least8_t; 8751: 8751: 8751: typedef atomic atomic_uint_least8_t; 8751: 8751: 8751: typedef atomic atomic_int_least16_t; 8751: 8751: 8751: typedef atomic atomic_uint_least16_t; 8751: 8751: 8751: typedef atomic atomic_int_least32_t; 8751: 8751: 8751: typedef atomic atomic_uint_least32_t; 8751: 8751: 8751: typedef atomic atomic_int_least64_t; 8751: 8751: 8751: typedef atomic atomic_uint_least64_t; 8751: 8751: 8751: 8751: typedef atomic atomic_int_fast8_t; 8751: 8751: 8751: typedef atomic atomic_uint_fast8_t; 8751: 8751: 8751: typedef atomic atomic_int_fast16_t; 8751: 8751: 8751: typedef atomic atomic_uint_fast16_t; 8751: 8751: 8751: typedef atomic atomic_int_fast32_t; 8751: 8751: 8751: typedef atomic atomic_uint_fast32_t; 8751: 8751: 8751: typedef atomic atomic_int_fast64_t; 8751: 8751: 8751: typedef atomic atomic_uint_fast64_t; 8751: 8751: 8751: 8751: 8751: typedef atomic atomic_intptr_t; 8751: 8751: 8751: typedef atomic atomic_uintptr_t; 8751: 8751: 8751: typedef atomic atomic_size_t; 8751: 8751: 8751: typedef atomic atomic_ptrdiff_t; 8751: 8751: 8751: 8751: typedef atomic atomic_intmax_t; 8751: 8751: 8751: typedef atomic atomic_uintmax_t; 8751: 8751: 8751: 8751: inline bool 8751: atomic_flag_test_and_set_explicit(atomic_flag* __a, 8751: memory_order __m) noexcept 8751: { return __a->test_and_set(__m); } 8751: 8751: inline bool 8751: atomic_flag_test_and_set_explicit(volatile atomic_flag* __a, 8751: memory_order __m) noexcept 8751: { return __a->test_and_set(__m); } 8751: 8751: inline void 8751: atomic_flag_clear_explicit(atomic_flag* __a, memory_order __m) noexcept 8751: { __a->clear(__m); } 8751: 8751: inline void 8751: atomic_flag_clear_explicit(volatile atomic_flag* __a, 8751: memory_order __m) noexcept 8751: { __a->clear(__m); } 8751: 8751: inline bool 8751: atomic_flag_test_and_set(atomic_flag* __a) noexcept 8751: { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); } 8751: 8751: inline bool 8751: atomic_flag_test_and_set(volatile atomic_flag* __a) noexcept 8751: { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); } 8751: 8751: inline void 8751: atomic_flag_clear(atomic_flag* __a) noexcept 8751: { atomic_flag_clear_explicit(__a, memory_order_seq_cst); } 8751: 8751: inline void 8751: atomic_flag_clear(volatile atomic_flag* __a) noexcept 8751: { atomic_flag_clear_explicit(__a, memory_order_seq_cst); } 8751: 8751: 8751: 8751: template 8751: inline bool 8751: atomic_is_lock_free(const atomic<_ITp>* __a) noexcept 8751: { return __a->is_lock_free(); } 8751: 8751: template 8751: inline bool 8751: atomic_is_lock_free(const volatile atomic<_ITp>* __a) noexcept 8751: { return __a->is_lock_free(); } 8751: 8751: template 8751: inline void 8751: atomic_init(atomic<_ITp>* __a, _ITp __i) noexcept 8751: { __a->store(__i, memory_order_relaxed); } 8751: 8751: template 8751: inline void 8751: atomic_init(volatile atomic<_ITp>* __a, _ITp __i) noexcept 8751: { __a->store(__i, memory_order_relaxed); } 8751: 8751: template 8751: inline void 8751: atomic_store_explicit(atomic<_ITp>* __a, _ITp __i, 8751: memory_order __m) noexcept 8751: { __a->store(__i, __m); } 8751: 8751: template 8751: inline void 8751: atomic_store_explicit(volatile atomic<_ITp>* __a, _ITp __i, 8751: memory_order __m) noexcept 8751: { __a->store(__i, __m); } 8751: 8751: template 8751: inline _ITp 8751: atomic_load_explicit(const atomic<_ITp>* __a, memory_order __m) noexcept 8751: { return __a->load(__m); } 8751: 8751: template 8751: inline _ITp 8751: atomic_load_explicit(const volatile atomic<_ITp>* __a, 8751: memory_order __m) noexcept 8751: { return __a->load(__m); } 8751: 8751: template 8751: inline _ITp 8751: atomic_exchange_explicit(atomic<_ITp>* __a, _ITp __i, 8751: memory_order __m) noexcept 8751: { return __a->exchange(__i, __m); } 8751: 8751: template 8751: inline _ITp 8751: atomic_exchange_explicit(volatile atomic<_ITp>* __a, _ITp __i, 8751: memory_order __m) noexcept 8751: { return __a->exchange(__i, __m); } 8751: 8751: template 8751: inline bool 8751: atomic_compare_exchange_weak_explicit(atomic<_ITp>* __a, 8751: _ITp* __i1, _ITp __i2, 8751: memory_order __m1, 8751: memory_order __m2) noexcept 8751: { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); } 8751: 8751: template 8751: inline bool 8751: atomic_compare_exchange_weak_explicit(volatile atomic<_ITp>* __a, 8751: _ITp* __i1, _ITp __i2, 8751: memory_order __m1, 8751: memory_order __m2) noexcept 8751: { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); } 8751: 8751: template 8751: inline bool 8751: atomic_compare_exchange_strong_explicit(atomic<_ITp>* __a, 8751: _ITp* __i1, _ITp __i2, 8751: memory_order __m1, 8751: memory_order __m2) noexcept 8751: { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); } 8751: 8751: template 8751: inline bool 8751: atomic_compare_exchange_strong_explicit(volatile atomic<_ITp>* __a, 8751: _ITp* __i1, _ITp __i2, 8751: memory_order __m1, 8751: memory_order __m2) noexcept 8751: { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); } 8751: 8751: 8751: template 8751: inline void 8751: atomic_store(atomic<_ITp>* __a, _ITp __i) noexcept 8751: { atomic_store_explicit(__a, __i, memory_order_seq_cst); } 8751: 8751: template 8751: inline void 8751: atomic_store(volatile atomic<_ITp>* __a, _ITp __i) noexcept 8751: { atomic_store_explicit(__a, __i, memory_order_seq_cst); } 8751: 8751: template 8751: inline _ITp 8751: atomic_load(const atomic<_ITp>* __a) noexcept 8751: { return atomic_load_explicit(__a, memory_order_seq_cst); } 8751: 8751: template 8751: inline _ITp 8751: atomic_load(const volatile atomic<_ITp>* __a) noexcept 8751: { return atomic_load_explicit(__a, memory_order_seq_cst); } 8751: 8751: template 8751: inline _ITp 8751: atomic_exchange(atomic<_ITp>* __a, _ITp __i) noexcept 8751: { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); } 8751: 8751: template 8751: inline _ITp 8751: atomic_exchange(volatile atomic<_ITp>* __a, _ITp __i) noexcept 8751: { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); } 8751: 8751: template 8751: inline bool 8751: atomic_compare_exchange_weak(atomic<_ITp>* __a, 8751: _ITp* __i1, _ITp __i2) noexcept 8751: { 8751: return atomic_compare_exchange_weak_explicit(__a, __i1, __i2, 8751: memory_order_seq_cst, 8751: memory_order_seq_cst); 8751: } 8751: 8751: template 8751: inline bool 8751: atomic_compare_exchange_weak(volatile atomic<_ITp>* __a, 8751: _ITp* __i1, _ITp __i2) noexcept 8751: { 8751: return atomic_compare_exchange_weak_explicit(__a, __i1, __i2, 8751: memory_order_seq_cst, 8751: memory_order_seq_cst); 8751: } 8751: 8751: template 8751: inline bool 8751: atomic_compare_exchange_strong(atomic<_ITp>* __a, 8751: _ITp* __i1, _ITp __i2) noexcept 8751: { 8751: return atomic_compare_exchange_strong_explicit(__a, __i1, __i2, 8751: memory_order_seq_cst, 8751: memory_order_seq_cst); 8751: } 8751: 8751: template 8751: inline bool 8751: atomic_compare_exchange_strong(volatile atomic<_ITp>* __a, 8751: _ITp* __i1, _ITp __i2) noexcept 8751: { 8751: return atomic_compare_exchange_strong_explicit(__a, __i1, __i2, 8751: memory_order_seq_cst, 8751: memory_order_seq_cst); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_add_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8751: memory_order __m) noexcept 8751: { return __a->fetch_add(__i, __m); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_add_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8751: memory_order __m) noexcept 8751: { return __a->fetch_add(__i, __m); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_sub_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8751: memory_order __m) noexcept 8751: { return __a->fetch_sub(__i, __m); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_sub_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8751: memory_order __m) noexcept 8751: { return __a->fetch_sub(__i, __m); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_and_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8751: memory_order __m) noexcept 8751: { return __a->fetch_and(__i, __m); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_and_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8751: memory_order __m) noexcept 8751: { return __a->fetch_and(__i, __m); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_or_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8751: memory_order __m) noexcept 8751: { return __a->fetch_or(__i, __m); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_or_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8751: memory_order __m) noexcept 8751: { return __a->fetch_or(__i, __m); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_xor_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8751: memory_order __m) noexcept 8751: { return __a->fetch_xor(__i, __m); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_xor_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8751: memory_order __m) noexcept 8751: { return __a->fetch_xor(__i, __m); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_add(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8751: { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_add(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8751: { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_sub(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8751: { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_sub(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8751: { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_and(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8751: { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_and(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8751: { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_or(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8751: { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_or(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8751: { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_xor(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8751: { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); } 8751: 8751: template 8751: inline _ITp 8751: atomic_fetch_xor(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8751: { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); } 8751: 8751: 8751: 8751: template 8751: inline _ITp* 8751: atomic_fetch_add_explicit(atomic<_ITp*>* __a, ptrdiff_t __d, 8751: memory_order __m) noexcept 8751: { return __a->fetch_add(__d, __m); } 8751: 8751: template 8751: inline _ITp* 8751: atomic_fetch_add_explicit(volatile atomic<_ITp*>* __a, ptrdiff_t __d, 8751: memory_order __m) noexcept 8751: { return __a->fetch_add(__d, __m); } 8751: 8751: template 8751: inline _ITp* 8751: atomic_fetch_add(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8751: { return __a->fetch_add(__d); } 8751: 8751: template 8751: inline _ITp* 8751: atomic_fetch_add(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8751: { return __a->fetch_add(__d); } 8751: 8751: template 8751: inline _ITp* 8751: atomic_fetch_sub_explicit(volatile atomic<_ITp*>* __a, 8751: ptrdiff_t __d, memory_order __m) noexcept 8751: { return __a->fetch_sub(__d, __m); } 8751: 8751: template 8751: inline _ITp* 8751: atomic_fetch_sub_explicit(atomic<_ITp*>* __a, ptrdiff_t __d, 8751: memory_order __m) noexcept 8751: { return __a->fetch_sub(__d, __m); } 8751: 8751: template 8751: inline _ITp* 8751: atomic_fetch_sub(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8751: { return __a->fetch_sub(__d); } 8751: 8751: template 8751: inline _ITp* 8751: atomic_fetch_sub(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8751: { return __a->fetch_sub(__d); } 8751: 8751: 8751: 8751: } 8751: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 2 3 4 8751: 8751: 8751: # 75 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 3 4 8751: template struct QAtomicTraits 8751: { static constexpr inline bool isLockFree(); }; 8751: # 89 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 3 4 8751: template <> constexpr inline bool QAtomicTraits<4>::isLockFree() 8751: { return true; } 8751: # 134 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 3 4 8751: template<> struct QAtomicOpsSupport<1> { enum { IsSupported = 1 }; }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template <> constexpr inline bool QAtomicTraits<1>::isLockFree() 8751: { return true; } 8751: # 162 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 3 4 8751: template<> struct QAtomicOpsSupport<2> { enum { IsSupported = 1 }; }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template <> constexpr inline bool QAtomicTraits<2>::isLockFree() 8751: { return false; } 8751: # 191 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 3 4 8751: template<> struct QAtomicOpsSupport<8> { enum { IsSupported = 1 }; }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template <> constexpr inline bool QAtomicTraits<8>::isLockFree() 8751: { return true; } 8751: # 220 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic_cxx11.h" 3 4 8751: template struct QAtomicOps 8751: { 8751: typedef std::atomic Type; 8751: 8751: template static inline 8751: T load(const std::atomic &_q_value) noexcept 8751: { 8751: return _q_value.load(std::memory_order_relaxed); 8751: } 8751: 8751: template static inline 8751: T load(const volatile std::atomic &_q_value) noexcept 8751: { 8751: return _q_value.load(std::memory_order_relaxed); 8751: } 8751: 8751: template static inline 8751: T loadAcquire(const std::atomic &_q_value) noexcept 8751: { 8751: return _q_value.load(std::memory_order_acquire); 8751: } 8751: 8751: template static inline 8751: T loadAcquire(const volatile std::atomic &_q_value) noexcept 8751: { 8751: return _q_value.load(std::memory_order_acquire); 8751: } 8751: 8751: template static inline 8751: void store(std::atomic &_q_value, T newValue) noexcept 8751: { 8751: _q_value.store(newValue, std::memory_order_relaxed); 8751: } 8751: 8751: template static inline 8751: void storeRelease(std::atomic &_q_value, T newValue) noexcept 8751: { 8751: _q_value.store(newValue, std::memory_order_release); 8751: } 8751: 8751: static inline constexpr bool isReferenceCountingNative() noexcept { return isTestAndSetNative(); } 8751: static inline constexpr bool isReferenceCountingWaitFree() noexcept { return false; } 8751: template 8751: static inline bool ref(std::atomic &_q_value) 8751: { 8751: return ++_q_value != 0; 8751: } 8751: 8751: template 8751: static inline bool deref(std::atomic &_q_value) noexcept 8751: { 8751: return --_q_value != 0; 8751: } 8751: 8751: static inline constexpr bool isTestAndSetNative() noexcept 8751: { return QAtomicTraits::isLockFree(); } 8751: static inline constexpr bool isTestAndSetWaitFree() noexcept { return false; } 8751: 8751: template 8751: static bool testAndSetRelaxed(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8751: { 8751: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_relaxed, std::memory_order_relaxed); 8751: if (currentValue) 8751: *currentValue = expectedValue; 8751: return tmp; 8751: } 8751: 8751: template 8751: static bool testAndSetAcquire(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8751: { 8751: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_acquire, std::memory_order_acquire); 8751: if (currentValue) 8751: *currentValue = expectedValue; 8751: return tmp; 8751: } 8751: 8751: template 8751: static bool testAndSetRelease(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8751: { 8751: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_release, std::memory_order_relaxed); 8751: if (currentValue) 8751: *currentValue = expectedValue; 8751: return tmp; 8751: } 8751: 8751: template 8751: static bool testAndSetOrdered(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8751: { 8751: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_acq_rel, std::memory_order_acquire); 8751: if (currentValue) 8751: *currentValue = expectedValue; 8751: return tmp; 8751: } 8751: 8751: static inline constexpr bool isFetchAndStoreNative() noexcept { return isTestAndSetNative(); } 8751: static inline constexpr bool isFetchAndStoreWaitFree() noexcept { return false; } 8751: 8751: template 8751: static T fetchAndStoreRelaxed(std::atomic &_q_value, T newValue) noexcept 8751: { 8751: return _q_value.exchange(newValue, std::memory_order_relaxed); 8751: } 8751: 8751: template 8751: static T fetchAndStoreAcquire(std::atomic &_q_value, T newValue) noexcept 8751: { 8751: return _q_value.exchange(newValue, std::memory_order_acquire); 8751: } 8751: 8751: template 8751: static T fetchAndStoreRelease(std::atomic &_q_value, T newValue) noexcept 8751: { 8751: return _q_value.exchange(newValue, std::memory_order_release); 8751: } 8751: 8751: template 8751: static T fetchAndStoreOrdered(std::atomic &_q_value, T newValue) noexcept 8751: { 8751: return _q_value.exchange(newValue, std::memory_order_acq_rel); 8751: } 8751: 8751: static inline constexpr bool isFetchAndAddNative() noexcept { return isTestAndSetNative(); } 8751: static inline constexpr bool isFetchAndAddWaitFree() noexcept { return false; } 8751: 8751: template static inline 8751: T fetchAndAddRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_add(valueToAdd, std::memory_order_relaxed); 8751: } 8751: 8751: template static inline 8751: T fetchAndAddAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_add(valueToAdd, std::memory_order_acquire); 8751: } 8751: 8751: template static inline 8751: T fetchAndAddRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_add(valueToAdd, std::memory_order_release); 8751: } 8751: 8751: template static inline 8751: T fetchAndAddOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_add(valueToAdd, std::memory_order_acq_rel); 8751: } 8751: 8751: template static inline 8751: T fetchAndSubRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_sub(valueToAdd, std::memory_order_relaxed); 8751: } 8751: 8751: template static inline 8751: T fetchAndSubAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_sub(valueToAdd, std::memory_order_acquire); 8751: } 8751: 8751: template static inline 8751: T fetchAndSubRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_sub(valueToAdd, std::memory_order_release); 8751: } 8751: 8751: template static inline 8751: T fetchAndSubOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_sub(valueToAdd, std::memory_order_acq_rel); 8751: } 8751: 8751: template static inline 8751: T fetchAndAndRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_and(valueToAdd, std::memory_order_relaxed); 8751: } 8751: 8751: template static inline 8751: T fetchAndAndAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_and(valueToAdd, std::memory_order_acquire); 8751: } 8751: 8751: template static inline 8751: T fetchAndAndRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_and(valueToAdd, std::memory_order_release); 8751: } 8751: 8751: template static inline 8751: T fetchAndAndOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_and(valueToAdd, std::memory_order_acq_rel); 8751: } 8751: 8751: template static inline 8751: T fetchAndOrRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_or(valueToAdd, std::memory_order_relaxed); 8751: } 8751: 8751: template static inline 8751: T fetchAndOrAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_or(valueToAdd, std::memory_order_acquire); 8751: } 8751: 8751: template static inline 8751: T fetchAndOrRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_or(valueToAdd, std::memory_order_release); 8751: } 8751: 8751: template static inline 8751: T fetchAndOrOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_or(valueToAdd, std::memory_order_acq_rel); 8751: } 8751: 8751: template static inline 8751: T fetchAndXorRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_xor(valueToAdd, std::memory_order_relaxed); 8751: } 8751: 8751: template static inline 8751: T fetchAndXorAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_xor(valueToAdd, std::memory_order_acquire); 8751: } 8751: 8751: template static inline 8751: T fetchAndXorRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_xor(valueToAdd, std::memory_order_release); 8751: } 8751: 8751: template static inline 8751: T fetchAndXorOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8751: { 8751: return _q_value.fetch_xor(valueToAdd, std::memory_order_acq_rel); 8751: } 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: # 54 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 2 3 4 8751: # 64 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 3 4 8751: 8751: # 64 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 3 4 8751: #pragma GCC diagnostic push 8751: # 64 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 3 4 8751: 8751: 8751: 8751: 8751: # 89 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 3 4 8751: template 8751: class QBasicAtomicInteger 8751: { 8751: public: 8751: typedef QAtomicOps Ops; 8751: 8751: static_assert(bool(QTypeInfo::isIntegral), "template parameter is not an integral type"); 8751: static_assert(bool(QAtomicOpsSupport::IsSupported), "template parameter is an integral of a size not supported on this platform"); 8751: 8751: typename Ops::Type _q_value; 8751: 8751: 8751: 8751: T load() const noexcept { return Ops::load(_q_value); } 8751: void store(T newValue) noexcept { Ops::store(_q_value, newValue); } 8751: 8751: T loadAcquire() const noexcept { return Ops::loadAcquire(_q_value); } 8751: void storeRelease(T newValue) noexcept { Ops::storeRelease(_q_value, newValue); } 8751: operator T() const noexcept { return loadAcquire(); } 8751: T operator=(T newValue) noexcept { storeRelease(newValue); return newValue; } 8751: 8751: static constexpr bool isReferenceCountingNative() noexcept { return Ops::isReferenceCountingNative(); } 8751: static constexpr bool isReferenceCountingWaitFree() noexcept { return Ops::isReferenceCountingWaitFree(); } 8751: 8751: bool ref() noexcept { return Ops::ref(_q_value); } 8751: bool deref() noexcept { return Ops::deref(_q_value); } 8751: 8751: static constexpr bool isTestAndSetNative() noexcept { return Ops::isTestAndSetNative(); } 8751: static constexpr bool isTestAndSetWaitFree() noexcept { return Ops::isTestAndSetWaitFree(); } 8751: 8751: bool testAndSetRelaxed(T expectedValue, T newValue) noexcept 8751: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue); } 8751: bool testAndSetAcquire(T expectedValue, T newValue) noexcept 8751: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue); } 8751: bool testAndSetRelease(T expectedValue, T newValue) noexcept 8751: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue); } 8751: bool testAndSetOrdered(T expectedValue, T newValue) noexcept 8751: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue); } 8751: 8751: bool testAndSetRelaxed(T expectedValue, T newValue, T ¤tValue) noexcept 8751: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue, ¤tValue); } 8751: bool testAndSetAcquire(T expectedValue, T newValue, T ¤tValue) noexcept 8751: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue, ¤tValue); } 8751: bool testAndSetRelease(T expectedValue, T newValue, T ¤tValue) noexcept 8751: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue, ¤tValue); } 8751: bool testAndSetOrdered(T expectedValue, T newValue, T ¤tValue) noexcept 8751: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue, ¤tValue); } 8751: 8751: static constexpr bool isFetchAndStoreNative() noexcept { return Ops::isFetchAndStoreNative(); } 8751: static constexpr bool isFetchAndStoreWaitFree() noexcept { return Ops::isFetchAndStoreWaitFree(); } 8751: 8751: T fetchAndStoreRelaxed(T newValue) noexcept 8751: { return Ops::fetchAndStoreRelaxed(_q_value, newValue); } 8751: T fetchAndStoreAcquire(T newValue) noexcept 8751: { return Ops::fetchAndStoreAcquire(_q_value, newValue); } 8751: T fetchAndStoreRelease(T newValue) noexcept 8751: { return Ops::fetchAndStoreRelease(_q_value, newValue); } 8751: T fetchAndStoreOrdered(T newValue) noexcept 8751: { return Ops::fetchAndStoreOrdered(_q_value, newValue); } 8751: 8751: static constexpr bool isFetchAndAddNative() noexcept { return Ops::isFetchAndAddNative(); } 8751: static constexpr bool isFetchAndAddWaitFree() noexcept { return Ops::isFetchAndAddWaitFree(); } 8751: 8751: T fetchAndAddRelaxed(T valueToAdd) noexcept 8751: { return Ops::fetchAndAddRelaxed(_q_value, valueToAdd); } 8751: T fetchAndAddAcquire(T valueToAdd) noexcept 8751: { return Ops::fetchAndAddAcquire(_q_value, valueToAdd); } 8751: T fetchAndAddRelease(T valueToAdd) noexcept 8751: { return Ops::fetchAndAddRelease(_q_value, valueToAdd); } 8751: T fetchAndAddOrdered(T valueToAdd) noexcept 8751: { return Ops::fetchAndAddOrdered(_q_value, valueToAdd); } 8751: 8751: T fetchAndSubRelaxed(T valueToAdd) noexcept 8751: { return Ops::fetchAndSubRelaxed(_q_value, valueToAdd); } 8751: T fetchAndSubAcquire(T valueToAdd) noexcept 8751: { return Ops::fetchAndSubAcquire(_q_value, valueToAdd); } 8751: T fetchAndSubRelease(T valueToAdd) noexcept 8751: { return Ops::fetchAndSubRelease(_q_value, valueToAdd); } 8751: T fetchAndSubOrdered(T valueToAdd) noexcept 8751: { return Ops::fetchAndSubOrdered(_q_value, valueToAdd); } 8751: 8751: T fetchAndAndRelaxed(T valueToAdd) noexcept 8751: { return Ops::fetchAndAndRelaxed(_q_value, valueToAdd); } 8751: T fetchAndAndAcquire(T valueToAdd) noexcept 8751: { return Ops::fetchAndAndAcquire(_q_value, valueToAdd); } 8751: T fetchAndAndRelease(T valueToAdd) noexcept 8751: { return Ops::fetchAndAndRelease(_q_value, valueToAdd); } 8751: T fetchAndAndOrdered(T valueToAdd) noexcept 8751: { return Ops::fetchAndAndOrdered(_q_value, valueToAdd); } 8751: 8751: T fetchAndOrRelaxed(T valueToAdd) noexcept 8751: { return Ops::fetchAndOrRelaxed(_q_value, valueToAdd); } 8751: T fetchAndOrAcquire(T valueToAdd) noexcept 8751: { return Ops::fetchAndOrAcquire(_q_value, valueToAdd); } 8751: T fetchAndOrRelease(T valueToAdd) noexcept 8751: { return Ops::fetchAndOrRelease(_q_value, valueToAdd); } 8751: T fetchAndOrOrdered(T valueToAdd) noexcept 8751: { return Ops::fetchAndOrOrdered(_q_value, valueToAdd); } 8751: 8751: T fetchAndXorRelaxed(T valueToAdd) noexcept 8751: { return Ops::fetchAndXorRelaxed(_q_value, valueToAdd); } 8751: T fetchAndXorAcquire(T valueToAdd) noexcept 8751: { return Ops::fetchAndXorAcquire(_q_value, valueToAdd); } 8751: T fetchAndXorRelease(T valueToAdd) noexcept 8751: { return Ops::fetchAndXorRelease(_q_value, valueToAdd); } 8751: T fetchAndXorOrdered(T valueToAdd) noexcept 8751: { return Ops::fetchAndXorOrdered(_q_value, valueToAdd); } 8751: 8751: T operator++() noexcept 8751: { return fetchAndAddOrdered(1) + 1; } 8751: T operator++(int) noexcept 8751: { return fetchAndAddOrdered(1); } 8751: T operator--() noexcept 8751: { return fetchAndSubOrdered(1) - 1; } 8751: T operator--(int) noexcept 8751: { return fetchAndSubOrdered(1); } 8751: 8751: T operator+=(T v) noexcept 8751: { return fetchAndAddOrdered(v) + v; } 8751: T operator-=(T v) noexcept 8751: { return fetchAndSubOrdered(v) - v; } 8751: T operator&=(T v) noexcept 8751: { return fetchAndAndOrdered(v) & v; } 8751: T operator|=(T v) noexcept 8751: { return fetchAndOrOrdered(v) | v; } 8751: T operator^=(T v) noexcept 8751: { return fetchAndXorOrdered(v) ^ v; } 8751: 8751: 8751: 8751: QBasicAtomicInteger() = default; 8751: constexpr QBasicAtomicInteger(T value) noexcept : _q_value(value) {} 8751: QBasicAtomicInteger(const QBasicAtomicInteger &) = delete; 8751: QBasicAtomicInteger &operator=(const QBasicAtomicInteger &) = delete; 8751: QBasicAtomicInteger &operator=(const QBasicAtomicInteger &) volatile = delete; 8751: 8751: }; 8751: typedef QBasicAtomicInteger QBasicAtomicInt; 8751: 8751: template 8751: class QBasicAtomicPointer 8751: { 8751: public: 8751: typedef X *Type; 8751: typedef QAtomicOps Ops; 8751: typedef typename Ops::Type AtomicType; 8751: 8751: AtomicType _q_value; 8751: 8751: Type load() const noexcept { return Ops::load(_q_value); } 8751: void store(Type newValue) noexcept { Ops::store(_q_value, newValue); } 8751: operator Type() const noexcept { return loadAcquire(); } 8751: Type operator=(Type newValue) noexcept { storeRelease(newValue); return newValue; } 8751: 8751: 8751: Type loadAcquire() const noexcept { return Ops::loadAcquire(_q_value); } 8751: void storeRelease(Type newValue) noexcept { Ops::storeRelease(_q_value, newValue); } 8751: 8751: static constexpr bool isTestAndSetNative() noexcept { return Ops::isTestAndSetNative(); } 8751: static constexpr bool isTestAndSetWaitFree() noexcept { return Ops::isTestAndSetWaitFree(); } 8751: 8751: bool testAndSetRelaxed(Type expectedValue, Type newValue) noexcept 8751: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue); } 8751: bool testAndSetAcquire(Type expectedValue, Type newValue) noexcept 8751: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue); } 8751: bool testAndSetRelease(Type expectedValue, Type newValue) noexcept 8751: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue); } 8751: bool testAndSetOrdered(Type expectedValue, Type newValue) noexcept 8751: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue); } 8751: 8751: bool testAndSetRelaxed(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8751: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue, ¤tValue); } 8751: bool testAndSetAcquire(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8751: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue, ¤tValue); } 8751: bool testAndSetRelease(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8751: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue, ¤tValue); } 8751: bool testAndSetOrdered(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8751: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue, ¤tValue); } 8751: 8751: static constexpr bool isFetchAndStoreNative() noexcept { return Ops::isFetchAndStoreNative(); } 8751: static constexpr bool isFetchAndStoreWaitFree() noexcept { return Ops::isFetchAndStoreWaitFree(); } 8751: 8751: Type fetchAndStoreRelaxed(Type newValue) noexcept 8751: { return Ops::fetchAndStoreRelaxed(_q_value, newValue); } 8751: Type fetchAndStoreAcquire(Type newValue) noexcept 8751: { return Ops::fetchAndStoreAcquire(_q_value, newValue); } 8751: Type fetchAndStoreRelease(Type newValue) noexcept 8751: { return Ops::fetchAndStoreRelease(_q_value, newValue); } 8751: Type fetchAndStoreOrdered(Type newValue) noexcept 8751: { return Ops::fetchAndStoreOrdered(_q_value, newValue); } 8751: 8751: static constexpr bool isFetchAndAddNative() noexcept { return Ops::isFetchAndAddNative(); } 8751: static constexpr bool isFetchAndAddWaitFree() noexcept { return Ops::isFetchAndAddWaitFree(); } 8751: 8751: Type fetchAndAddRelaxed(qptrdiff valueToAdd) noexcept 8751: { return Ops::fetchAndAddRelaxed(_q_value, valueToAdd); } 8751: Type fetchAndAddAcquire(qptrdiff valueToAdd) noexcept 8751: { return Ops::fetchAndAddAcquire(_q_value, valueToAdd); } 8751: Type fetchAndAddRelease(qptrdiff valueToAdd) noexcept 8751: { return Ops::fetchAndAddRelease(_q_value, valueToAdd); } 8751: Type fetchAndAddOrdered(qptrdiff valueToAdd) noexcept 8751: { return Ops::fetchAndAddOrdered(_q_value, valueToAdd); } 8751: 8751: Type fetchAndSubRelaxed(qptrdiff valueToAdd) noexcept 8751: { return Ops::fetchAndSubRelaxed(_q_value, valueToAdd); } 8751: Type fetchAndSubAcquire(qptrdiff valueToAdd) noexcept 8751: { return Ops::fetchAndSubAcquire(_q_value, valueToAdd); } 8751: Type fetchAndSubRelease(qptrdiff valueToAdd) noexcept 8751: { return Ops::fetchAndSubRelease(_q_value, valueToAdd); } 8751: Type fetchAndSubOrdered(qptrdiff valueToAdd) noexcept 8751: { return Ops::fetchAndSubOrdered(_q_value, valueToAdd); } 8751: 8751: Type operator++() noexcept 8751: { return fetchAndAddOrdered(1) + 1; } 8751: Type operator++(int) noexcept 8751: { return fetchAndAddOrdered(1); } 8751: Type operator--() noexcept 8751: { return fetchAndSubOrdered(1) - 1; } 8751: Type operator--(int) noexcept 8751: { return fetchAndSubOrdered(1); } 8751: Type operator+=(qptrdiff valueToAdd) noexcept 8751: { return fetchAndAddOrdered(valueToAdd) + valueToAdd; } 8751: Type operator-=(qptrdiff valueToSub) noexcept 8751: { return fetchAndSubOrdered(valueToSub) - valueToSub; } 8751: 8751: 8751: QBasicAtomicPointer() = default; 8751: constexpr QBasicAtomicPointer(Type value) noexcept : _q_value(value) {} 8751: QBasicAtomicPointer(const QBasicAtomicPointer &) = delete; 8751: QBasicAtomicPointer &operator=(const QBasicAtomicPointer &) = delete; 8751: QBasicAtomicPointer &operator=(const QBasicAtomicPointer &) volatile = delete; 8751: 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: # 329 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 3 4 8751: #pragma GCC diagnostic pop 8751: # 329 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbasicatomic.h" 3 4 8751: 8751: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 2 3 4 8751: 8751: 8751: 8751: 8751: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8751: #pragma GCC diagnostic push 8751: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8751: 8751: 8751: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8751: #pragma GCC diagnostic ignored "-Wextra" 8751: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8751: 8751: 8751: 8751: template 8751: class QAtomicInteger : public QBasicAtomicInteger 8751: { 8751: public: 8751: 8751: 8751: constexpr QAtomicInteger(T value = 0) noexcept : QBasicAtomicInteger(value) {} 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: inline QAtomicInteger(const QAtomicInteger &other) noexcept 8751: 8751: : QBasicAtomicInteger() 8751: 8751: { 8751: this->storeRelease(other.loadAcquire()); 8751: } 8751: 8751: inline QAtomicInteger &operator=(const QAtomicInteger &other) noexcept 8751: { 8751: this->storeRelease(other.loadAcquire()); 8751: return *this; 8751: } 8751: # 151 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8751: }; 8751: 8751: class QAtomicInt : public QAtomicInteger 8751: { 8751: public: 8751: 8751: 8751: 8751: 8751: constexpr 8751: 8751: QAtomicInt(int value = 0) noexcept : QAtomicInteger(value) {} 8751: }; 8751: 8751: 8751: template 8751: class QAtomicPointer : public QBasicAtomicPointer 8751: { 8751: public: 8751: 8751: constexpr QAtomicPointer(T *value = 0) noexcept : QBasicAtomicPointer(value) {} 8751: 8751: 8751: 8751: 8751: 8751: 8751: inline QAtomicPointer(const QAtomicPointer &other) noexcept 8751: 8751: : QBasicAtomicPointer() 8751: 8751: { 8751: this->storeRelease(other.loadAcquire()); 8751: } 8751: 8751: inline QAtomicPointer &operator=(const QAtomicPointer &other) noexcept 8751: { 8751: this->storeRelease(other.loadAcquire()); 8751: return *this; 8751: } 8751: # 222 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8751: }; 8751: 8751: 8751: # 224 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8751: #pragma GCC diagnostic pop 8751: # 224 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8751: 8751: # 236 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8751: template 8751: inline void qAtomicAssign(T *&d, T *x) 8751: { 8751: if (d == x) 8751: return; 8751: x->ref.ref(); 8751: if (!d->ref.deref()) 8751: delete d; 8751: d = x; 8751: } 8751: # 255 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 3 4 8751: template 8751: inline void qAtomicDetach(T *&d) 8751: { 8751: if (d->ref.load() == 1) 8751: return; 8751: T *x = d; 8751: d = new T(*d); 8751: if (!x->ref.deref()) 8751: delete x; 8751: } 8751: 8751: 8751: # 1159 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobalstatic.h" 1 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobalstatic.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 1 3 4 8751: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobalstatic.h" 2 3 4 8751: 8751: 8751: 8751: namespace QtGlobalStatic { 8751: enum GuardValues { 8751: Destroyed = -2, 8751: Initialized = -1, 8751: Uninitialized = 0, 8751: Initializing = 1 8751: }; 8751: } 8751: # 127 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobalstatic.h" 3 4 8751: template 8751: struct QGlobalStatic 8751: { 8751: typedef T Type; 8751: 8751: bool isDestroyed() const { return guard.load() <= QtGlobalStatic::Destroyed; } 8751: bool exists() const { return guard.load() == QtGlobalStatic::Initialized; } 8751: operator Type *() { if (isDestroyed()) return 0; return innerFunction(); } 8751: Type *operator()() { if (isDestroyed()) return 0; return innerFunction(); } 8751: Type *operator->() 8751: { 8751: do { } while ((false) && (!isDestroyed())); 8751: return innerFunction(); 8751: } 8751: Type &operator*() 8751: { 8751: do { } while ((false) && (!isDestroyed())); 8751: return *innerFunction(); 8751: } 8751: }; 8751: # 161 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobalstatic.h" 3 4 8751: 8751: # 1160 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qnumeric.h" 1 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qnumeric.h" 3 4 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) bool qIsInf(double d); 8751: __attribute__((visibility("default"))) bool qIsNaN(double d); 8751: __attribute__((visibility("default"))) bool qIsFinite(double d); 8751: __attribute__((visibility("default"))) bool qIsInf(float f); 8751: __attribute__((visibility("default"))) bool qIsNaN(float f); 8751: __attribute__((visibility("default"))) bool qIsFinite(float f); 8751: __attribute__((visibility("default"))) double qSNaN(); 8751: __attribute__((visibility("default"))) double qQNaN(); 8751: __attribute__((visibility("default"))) double qInf(); 8751: 8751: __attribute__((visibility("default"))) quint32 qFloatDistance(float a, float b); 8751: __attribute__((visibility("default"))) quint64 qFloatDistance(double a, double b); 8751: 8751: 8751: 8751: 8751: 8751: 8751: # 1161 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qversiontagging.h" 1 3 4 8751: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qversiontagging.h" 3 4 8751: 8751: # 88 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qversiontagging.h" 3 4 8751: 8751: # 1162 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qglobal.h" 2 3 4 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qchar.h" 2 3 4 8751: 8751: 8751: 8751: 8751: class QString; 8751: 8751: struct QLatin1Char 8751: { 8751: public: 8751: constexpr inline explicit QLatin1Char(char c) noexcept : ch(c) {} 8751: constexpr inline char toLatin1() const noexcept { return ch; } 8751: constexpr inline ushort unicode() const noexcept { return ushort(uchar(ch)); } 8751: 8751: private: 8751: char ch; 8751: }; 8751: 8751: 8751: class __attribute__((visibility("default"))) QChar { 8751: public: 8751: enum SpecialCharacter { 8751: Null = 0x0000, 8751: Tabulation = 0x0009, 8751: LineFeed = 0x000a, 8751: CarriageReturn = 0x000d, 8751: Space = 0x0020, 8751: Nbsp = 0x00a0, 8751: SoftHyphen = 0x00ad, 8751: ReplacementCharacter = 0xfffd, 8751: ObjectReplacementCharacter = 0xfffc, 8751: ByteOrderMark = 0xfeff, 8751: ByteOrderSwapped = 0xfffe, 8751: ParagraphSeparator = 0x2029, 8751: LineSeparator = 0x2028, 8751: LastValidCodePoint = 0x10ffff 8751: }; 8751: 8751: constexpr QChar() noexcept : ucs(0) {} 8751: constexpr QChar(ushort rc) noexcept : ucs(rc) {} 8751: constexpr QChar(uchar c, uchar r) noexcept : ucs(ushort((r << 8) | c)) {} 8751: constexpr QChar(short rc) noexcept : ucs(ushort(rc)) {} 8751: constexpr QChar(uint rc) noexcept : ucs(ushort(rc & 0xffff)) {} 8751: constexpr QChar(int rc) noexcept : ucs(ushort(rc & 0xffff)) {} 8751: constexpr QChar(SpecialCharacter s) noexcept : ucs(ushort(s)) {} 8751: constexpr QChar(QLatin1Char ch) noexcept : ucs(ch.unicode()) {} 8751: # 98 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qchar.h" 3 4 8751: enum Category 8751: { 8751: Mark_NonSpacing, 8751: Mark_SpacingCombining, 8751: Mark_Enclosing, 8751: 8751: Number_DecimalDigit, 8751: Number_Letter, 8751: Number_Other, 8751: 8751: Separator_Space, 8751: Separator_Line, 8751: Separator_Paragraph, 8751: 8751: Other_Control, 8751: Other_Format, 8751: Other_Surrogate, 8751: Other_PrivateUse, 8751: Other_NotAssigned, 8751: 8751: Letter_Uppercase, 8751: Letter_Lowercase, 8751: Letter_Titlecase, 8751: Letter_Modifier, 8751: Letter_Other, 8751: 8751: Punctuation_Connector, 8751: Punctuation_Dash, 8751: Punctuation_Open, 8751: Punctuation_Close, 8751: Punctuation_InitialQuote, 8751: Punctuation_FinalQuote, 8751: Punctuation_Other, 8751: 8751: Symbol_Math, 8751: Symbol_Currency, 8751: Symbol_Modifier, 8751: Symbol_Other 8751: }; 8751: 8751: enum Script 8751: { 8751: Script_Unknown, 8751: Script_Inherited, 8751: Script_Common, 8751: 8751: Script_Latin, 8751: Script_Greek, 8751: Script_Cyrillic, 8751: Script_Armenian, 8751: Script_Hebrew, 8751: Script_Arabic, 8751: Script_Syriac, 8751: Script_Thaana, 8751: Script_Devanagari, 8751: Script_Bengali, 8751: Script_Gurmukhi, 8751: Script_Gujarati, 8751: Script_Oriya, 8751: Script_Tamil, 8751: Script_Telugu, 8751: Script_Kannada, 8751: Script_Malayalam, 8751: Script_Sinhala, 8751: Script_Thai, 8751: Script_Lao, 8751: Script_Tibetan, 8751: Script_Myanmar, 8751: Script_Georgian, 8751: Script_Hangul, 8751: Script_Ethiopic, 8751: Script_Cherokee, 8751: Script_CanadianAboriginal, 8751: Script_Ogham, 8751: Script_Runic, 8751: Script_Khmer, 8751: Script_Mongolian, 8751: Script_Hiragana, 8751: Script_Katakana, 8751: Script_Bopomofo, 8751: Script_Han, 8751: Script_Yi, 8751: Script_OldItalic, 8751: Script_Gothic, 8751: Script_Deseret, 8751: Script_Tagalog, 8751: Script_Hanunoo, 8751: Script_Buhid, 8751: Script_Tagbanwa, 8751: Script_Coptic, 8751: 8751: 8751: Script_Limbu, 8751: Script_TaiLe, 8751: Script_LinearB, 8751: Script_Ugaritic, 8751: Script_Shavian, 8751: Script_Osmanya, 8751: Script_Cypriot, 8751: Script_Braille, 8751: 8751: 8751: Script_Buginese, 8751: Script_NewTaiLue, 8751: Script_Glagolitic, 8751: Script_Tifinagh, 8751: Script_SylotiNagri, 8751: Script_OldPersian, 8751: Script_Kharoshthi, 8751: 8751: 8751: Script_Balinese, 8751: Script_Cuneiform, 8751: Script_Phoenician, 8751: Script_PhagsPa, 8751: Script_Nko, 8751: 8751: 8751: Script_Sundanese, 8751: Script_Lepcha, 8751: Script_OlChiki, 8751: Script_Vai, 8751: Script_Saurashtra, 8751: Script_KayahLi, 8751: Script_Rejang, 8751: Script_Lycian, 8751: Script_Carian, 8751: Script_Lydian, 8751: Script_Cham, 8751: 8751: 8751: Script_TaiTham, 8751: Script_TaiViet, 8751: Script_Avestan, 8751: Script_EgyptianHieroglyphs, 8751: Script_Samaritan, 8751: Script_Lisu, 8751: Script_Bamum, 8751: Script_Javanese, 8751: Script_MeeteiMayek, 8751: Script_ImperialAramaic, 8751: Script_OldSouthArabian, 8751: Script_InscriptionalParthian, 8751: Script_InscriptionalPahlavi, 8751: Script_OldTurkic, 8751: Script_Kaithi, 8751: 8751: 8751: Script_Batak, 8751: Script_Brahmi, 8751: Script_Mandaic, 8751: 8751: 8751: Script_Chakma, 8751: Script_MeroiticCursive, 8751: Script_MeroiticHieroglyphs, 8751: Script_Miao, 8751: Script_Sharada, 8751: Script_SoraSompeng, 8751: Script_Takri, 8751: 8751: 8751: Script_CaucasianAlbanian, 8751: Script_BassaVah, 8751: Script_Duployan, 8751: Script_Elbasan, 8751: Script_Grantha, 8751: Script_PahawhHmong, 8751: Script_Khojki, 8751: Script_LinearA, 8751: Script_Mahajani, 8751: Script_Manichaean, 8751: Script_MendeKikakui, 8751: Script_Modi, 8751: Script_Mro, 8751: Script_OldNorthArabian, 8751: Script_Nabataean, 8751: Script_Palmyrene, 8751: Script_PauCinHau, 8751: Script_OldPermic, 8751: Script_PsalterPahlavi, 8751: Script_Siddham, 8751: Script_Khudawadi, 8751: Script_Tirhuta, 8751: Script_WarangCiti, 8751: 8751: 8751: Script_Ahom, 8751: Script_AnatolianHieroglyphs, 8751: Script_Hatran, 8751: Script_Multani, 8751: Script_OldHungarian, 8751: Script_SignWriting, 8751: 8751: ScriptCount 8751: }; 8751: 8751: enum Direction 8751: { 8751: DirL, DirR, DirEN, DirES, DirET, DirAN, DirCS, DirB, DirS, DirWS, DirON, 8751: DirLRE, DirLRO, DirAL, DirRLE, DirRLO, DirPDF, DirNSM, DirBN, 8751: DirLRI, DirRLI, DirFSI, DirPDI 8751: }; 8751: 8751: enum Decomposition 8751: { 8751: NoDecomposition, 8751: Canonical, 8751: Font, 8751: NoBreak, 8751: Initial, 8751: Medial, 8751: Final, 8751: Isolated, 8751: Circle, 8751: Super, 8751: Sub, 8751: Vertical, 8751: Wide, 8751: Narrow, 8751: Small, 8751: Square, 8751: Compat, 8751: Fraction 8751: }; 8751: 8751: enum JoiningType { 8751: Joining_None, 8751: Joining_Causing, 8751: Joining_Dual, 8751: Joining_Right, 8751: Joining_Left, 8751: Joining_Transparent 8751: }; 8751: 8751: 8751: enum Joining 8751: { 8751: OtherJoining, Dual, Right, Center 8751: }; 8751: 8751: 8751: enum CombiningClass 8751: { 8751: Combining_BelowLeftAttached = 200, 8751: Combining_BelowAttached = 202, 8751: Combining_BelowRightAttached = 204, 8751: Combining_LeftAttached = 208, 8751: Combining_RightAttached = 210, 8751: Combining_AboveLeftAttached = 212, 8751: Combining_AboveAttached = 214, 8751: Combining_AboveRightAttached = 216, 8751: 8751: Combining_BelowLeft = 218, 8751: Combining_Below = 220, 8751: Combining_BelowRight = 222, 8751: Combining_Left = 224, 8751: Combining_Right = 226, 8751: Combining_AboveLeft = 228, 8751: Combining_Above = 230, 8751: Combining_AboveRight = 232, 8751: 8751: Combining_DoubleBelow = 233, 8751: Combining_DoubleAbove = 234, 8751: Combining_IotaSubscript = 240 8751: }; 8751: 8751: enum UnicodeVersion { 8751: Unicode_Unassigned, 8751: Unicode_1_1, 8751: Unicode_2_0, 8751: Unicode_2_1_2, 8751: Unicode_3_0, 8751: Unicode_3_1, 8751: Unicode_3_2, 8751: Unicode_4_0, 8751: Unicode_4_1, 8751: Unicode_5_0, 8751: Unicode_5_1, 8751: Unicode_5_2, 8751: Unicode_6_0, 8751: Unicode_6_1, 8751: Unicode_6_2, 8751: Unicode_6_3, 8751: Unicode_7_0, 8751: Unicode_8_0 8751: }; 8751: 8751: 8751: inline Category category() const noexcept { return QChar::category(ucs); } 8751: inline Direction direction() const noexcept { return QChar::direction(ucs); } 8751: inline JoiningType joiningType() const noexcept { return QChar::joiningType(ucs); } 8751: 8751: inline Joining joining() const noexcept 8751: { 8751: switch (QChar::joiningType(ucs)) { 8751: case QChar::Joining_Causing: return QChar::Center; 8751: case QChar::Joining_Dual: return QChar::Dual; 8751: case QChar::Joining_Right: return QChar::Right; 8751: case QChar::Joining_None: 8751: case QChar::Joining_Left: 8751: case QChar::Joining_Transparent: 8751: default: return QChar::OtherJoining; 8751: } 8751: } 8751: 8751: inline unsigned char combiningClass() const noexcept { return QChar::combiningClass(ucs); } 8751: 8751: inline QChar mirroredChar() const noexcept { return QChar::mirroredChar(ucs); } 8751: inline bool hasMirrored() const noexcept { return QChar::hasMirrored(ucs); } 8751: 8751: QString decomposition() const; 8751: inline Decomposition decompositionTag() const noexcept { return QChar::decompositionTag(ucs); } 8751: 8751: inline int digitValue() const noexcept { return QChar::digitValue(ucs); } 8751: inline QChar toLower() const noexcept { return QChar::toLower(ucs); } 8751: inline QChar toUpper() const noexcept { return QChar::toUpper(ucs); } 8751: inline QChar toTitleCase() const noexcept { return QChar::toTitleCase(ucs); } 8751: inline QChar toCaseFolded() const noexcept { return QChar::toCaseFolded(ucs); } 8751: 8751: inline Script script() const noexcept { return QChar::script(ucs); } 8751: 8751: inline UnicodeVersion unicodeVersion() const noexcept { return QChar::unicodeVersion(ucs); } 8751: 8751: 8751: 8751: 8751: constexpr inline char toLatin1() const noexcept { return ucs > 0xff ? '\0' : char(ucs); } 8751: constexpr inline ushort unicode() const noexcept { return ucs; } 8751: inline ushort &unicode() noexcept { return ucs; } 8751: 8751: 8751: 8751: 8751: 8751: static constexpr inline QChar fromLatin1(char c) noexcept { return QChar(ushort(uchar(c))); } 8751: 8751: constexpr inline bool isNull() const noexcept { return ucs == 0; } 8751: 8751: inline bool isPrint() const noexcept { return QChar::isPrint(ucs); } 8751: constexpr inline bool isSpace() const noexcept { return QChar::isSpace(ucs); } 8751: inline bool isMark() const noexcept { return QChar::isMark(ucs); } 8751: inline bool isPunct() const noexcept { return QChar::isPunct(ucs); } 8751: inline bool isSymbol() const noexcept { return QChar::isSymbol(ucs); } 8751: constexpr inline bool isLetter() const noexcept { return QChar::isLetter(ucs); } 8751: constexpr inline bool isNumber() const noexcept { return QChar::isNumber(ucs); } 8751: constexpr inline bool isLetterOrNumber() const noexcept { return QChar::isLetterOrNumber(ucs); } 8751: constexpr inline bool isDigit() const noexcept { return QChar::isDigit(ucs); } 8751: constexpr inline bool isLower() const noexcept { return QChar::isLower(ucs); } 8751: constexpr inline bool isUpper() const noexcept { return QChar::isUpper(ucs); } 8751: constexpr inline bool isTitleCase() const noexcept { return QChar::isTitleCase(ucs); } 8751: 8751: constexpr inline bool isNonCharacter() const noexcept { return QChar::isNonCharacter(ucs); } 8751: constexpr inline bool isHighSurrogate() const noexcept { return QChar::isHighSurrogate(ucs); } 8751: constexpr inline bool isLowSurrogate() const noexcept { return QChar::isLowSurrogate(ucs); } 8751: constexpr inline bool isSurrogate() const noexcept { return QChar::isSurrogate(ucs); } 8751: 8751: constexpr inline uchar cell() const noexcept { return uchar(ucs & 0xff); } 8751: constexpr inline uchar row() const noexcept { return uchar((ucs>>8)&0xff); } 8751: inline void setCell(uchar acell) noexcept { ucs = ushort((ucs & 0xff00) + acell); } 8751: inline void setRow(uchar arow) noexcept { ucs = ushort((ushort(arow)<<8) + (ucs&0xff)); } 8751: 8751: static constexpr inline bool isNonCharacter(uint ucs4) noexcept 8751: { 8751: return ucs4 >= 0xfdd0 && (ucs4 <= 0xfdef || (ucs4 & 0xfffe) == 0xfffe); 8751: } 8751: static constexpr inline bool isHighSurrogate(uint ucs4) noexcept 8751: { 8751: return ((ucs4 & 0xfffffc00) == 0xd800); 8751: } 8751: static constexpr inline bool isLowSurrogate(uint ucs4) noexcept 8751: { 8751: return ((ucs4 & 0xfffffc00) == 0xdc00); 8751: } 8751: static constexpr inline bool isSurrogate(uint ucs4) noexcept 8751: { 8751: return (ucs4 - 0xd800u < 2048u); 8751: } 8751: static constexpr inline bool requiresSurrogates(uint ucs4) noexcept 8751: { 8751: return (ucs4 >= 0x10000); 8751: } 8751: static constexpr inline uint surrogateToUcs4(ushort high, ushort low) noexcept 8751: { 8751: return (uint(high)<<10) + low - 0x35fdc00; 8751: } 8751: static constexpr inline uint surrogateToUcs4(QChar high, QChar low) noexcept 8751: { 8751: return surrogateToUcs4(high.ucs, low.ucs); 8751: } 8751: static constexpr inline ushort highSurrogate(uint ucs4) noexcept 8751: { 8751: return ushort((ucs4>>10) + 0xd7c0); 8751: } 8751: static constexpr inline ushort lowSurrogate(uint ucs4) noexcept 8751: { 8751: return ushort(ucs4%0x400 + 0xdc00); 8751: } 8751: 8751: static Category category(uint ucs4) noexcept __attribute__((const)); 8751: static Direction direction(uint ucs4) noexcept __attribute__((const)); 8751: static JoiningType joiningType(uint ucs4) noexcept __attribute__((const)); 8751: 8751: static Joining joining(uint ucs4) noexcept __attribute__((const)); 8751: 8751: static unsigned char combiningClass(uint ucs4) noexcept __attribute__((const)); 8751: 8751: static uint mirroredChar(uint ucs4) noexcept __attribute__((const)); 8751: static bool hasMirrored(uint ucs4) noexcept __attribute__((const)); 8751: 8751: static QString decomposition(uint ucs4); 8751: static Decomposition decompositionTag(uint ucs4) noexcept __attribute__((const)); 8751: 8751: static int digitValue(uint ucs4) noexcept __attribute__((const)); 8751: static uint toLower(uint ucs4) noexcept __attribute__((const)); 8751: static uint toUpper(uint ucs4) noexcept __attribute__((const)); 8751: static uint toTitleCase(uint ucs4) noexcept __attribute__((const)); 8751: static uint toCaseFolded(uint ucs4) noexcept __attribute__((const)); 8751: 8751: static Script script(uint ucs4) noexcept __attribute__((const)); 8751: 8751: static UnicodeVersion unicodeVersion(uint ucs4) noexcept __attribute__((const)); 8751: 8751: static UnicodeVersion currentUnicodeVersion() noexcept __attribute__((const)); 8751: 8751: static bool isPrint(uint ucs4) noexcept __attribute__((const)); 8751: static constexpr inline bool isSpace(uint ucs4) noexcept __attribute__((const)) 8751: { 8751: 8751: return ucs4 == 0x20 || (ucs4 <= 0x0d && ucs4 >= 0x09) 8751: || (ucs4 > 127 && (ucs4 == 0x85 || ucs4 == 0xa0 || QChar::isSpace_helper(ucs4))); 8751: } 8751: static bool isMark(uint ucs4) noexcept __attribute__((const)); 8751: static bool isPunct(uint ucs4) noexcept __attribute__((const)); 8751: static bool isSymbol(uint ucs4) noexcept __attribute__((const)); 8751: static constexpr inline bool isLetter(uint ucs4) noexcept __attribute__((const)) 8751: { 8751: return (ucs4 >= 'A' && ucs4 <= 'z' && (ucs4 >= 'a' || ucs4 <= 'Z')) 8751: || (ucs4 > 127 && QChar::isLetter_helper(ucs4)); 8751: } 8751: static constexpr inline bool isNumber(uint ucs4) noexcept __attribute__((const)) 8751: { return (ucs4 <= '9' && ucs4 >= '0') || (ucs4 > 127 && QChar::isNumber_helper(ucs4)); } 8751: static constexpr inline bool isLetterOrNumber(uint ucs4) noexcept __attribute__((const)) 8751: { 8751: return (ucs4 >= 'A' && ucs4 <= 'z' && (ucs4 >= 'a' || ucs4 <= 'Z')) 8751: || (ucs4 >= '0' && ucs4 <= '9') 8751: || (ucs4 > 127 && QChar::isLetterOrNumber_helper(ucs4)); 8751: } 8751: static constexpr inline bool isDigit(uint ucs4) noexcept __attribute__((const)) 8751: { return (ucs4 <= '9' && ucs4 >= '0') || (ucs4 > 127 && QChar::category(ucs4) == Number_DecimalDigit); } 8751: static constexpr inline bool isLower(uint ucs4) noexcept __attribute__((const)) 8751: { return (ucs4 <= 'z' && ucs4 >= 'a') || (ucs4 > 127 && QChar::category(ucs4) == Letter_Lowercase); } 8751: static constexpr inline bool isUpper(uint ucs4) noexcept __attribute__((const)) 8751: { return (ucs4 <= 'Z' && ucs4 >= 'A') || (ucs4 > 127 && QChar::category(ucs4) == Letter_Uppercase); } 8751: static constexpr inline bool isTitleCase(uint ucs4) noexcept __attribute__((const)) 8751: { return ucs4 > 127 && QChar::category(ucs4) == Letter_Titlecase; } 8751: 8751: private: 8751: static bool isSpace_helper(uint ucs4) noexcept __attribute__((const)); 8751: static bool isLetter_helper(uint ucs4) noexcept __attribute__((const)); 8751: static bool isNumber_helper(uint ucs4) noexcept __attribute__((const)); 8751: static bool isLetterOrNumber_helper(uint ucs4) noexcept __attribute__((const)); 8751: 8751: 8751: QChar(char c) noexcept; 8751: QChar(uchar c) noexcept; 8751: 8751: 8751: friend constexpr bool operator==(QChar, QChar) noexcept; 8751: friend constexpr bool operator< (QChar, QChar) noexcept; 8751: ushort ucs; 8751: }; 8751: 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QChar)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QChar >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QChar) }; static inline const char *name() { return "QChar"; } }; 8751: 8751: constexpr inline bool operator==(QChar c1, QChar c2) noexcept { return c1.ucs == c2.ucs; } 8751: constexpr inline bool operator< (QChar c1, QChar c2) noexcept { return c1.ucs < c2.ucs; } 8751: 8751: constexpr inline bool operator!=(QChar c1, QChar c2) noexcept { return !operator==(c1, c2); } 8751: constexpr inline bool operator>=(QChar c1, QChar c2) noexcept { return !operator< (c1, c2); } 8751: constexpr inline bool operator> (QChar c1, QChar c2) noexcept { return operator< (c2, c1); } 8751: constexpr inline bool operator<=(QChar c1, QChar c2) noexcept { return !operator< (c2, c1); } 8751: 8751: 8751: constexpr inline bool operator==(QChar lhs, std::nullptr_t) noexcept { return lhs.isNull(); } 8751: constexpr inline bool operator< (QChar, std::nullptr_t) noexcept { return false; } 8751: constexpr inline bool operator==(std::nullptr_t, QChar rhs) noexcept { return rhs.isNull(); } 8751: constexpr inline bool operator< (std::nullptr_t, QChar rhs) noexcept { return !rhs.isNull(); } 8751: 8751: constexpr inline bool operator!=(QChar lhs, std::nullptr_t) noexcept { return !operator==(lhs, nullptr); } 8751: constexpr inline bool operator>=(QChar lhs, std::nullptr_t) noexcept { return !operator< (lhs, nullptr); } 8751: constexpr inline bool operator> (QChar lhs, std::nullptr_t) noexcept { return operator< (nullptr, lhs); } 8751: constexpr inline bool operator<=(QChar lhs, std::nullptr_t) noexcept { return !operator< (nullptr, lhs); } 8751: 8751: constexpr inline bool operator!=(std::nullptr_t, QChar rhs) noexcept { return !operator==(nullptr, rhs); } 8751: constexpr inline bool operator>=(std::nullptr_t, QChar rhs) noexcept { return !operator< (nullptr, rhs); } 8751: constexpr inline bool operator> (std::nullptr_t, QChar rhs) noexcept { return operator< (rhs, nullptr); } 8751: constexpr inline bool operator<=(std::nullptr_t, QChar rhs) noexcept { return !operator< (rhs, nullptr); } 8751: 8751: 8751: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, QChar); 8751: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QChar &); 8751: 8751: 8751: 8751: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 1 3 4 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrefcount.h" 1 3 4 8751: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrefcount.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 1 3 4 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrefcount.h" 2 3 4 8751: 8751: 8751: 8751: 8751: namespace QtPrivate 8751: { 8751: 8751: class RefCount 8751: { 8751: public: 8751: inline bool ref() noexcept { 8751: int count = atomic.load(); 8751: 8751: if (count == 0) 8751: return false; 8751: 8751: if (count != -1) 8751: atomic.ref(); 8751: return true; 8751: } 8751: 8751: inline bool deref() noexcept { 8751: int count = atomic.load(); 8751: 8751: if (count == 0) 8751: return false; 8751: 8751: if (count == -1) 8751: return true; 8751: return atomic.deref(); 8751: } 8751: 8751: 8751: bool setSharable(bool sharable) noexcept 8751: { 8751: do { } while ((false) && (!isShared())); 8751: if (sharable) 8751: return atomic.testAndSetRelaxed(0, 1); 8751: else 8751: return atomic.testAndSetRelaxed(1, 0); 8751: } 8751: 8751: bool isSharable() const noexcept 8751: { 8751: 8751: return atomic.load() != 0; 8751: } 8751: 8751: 8751: bool isStatic() const noexcept 8751: { 8751: 8751: return atomic.load() == -1; 8751: } 8751: 8751: bool isShared() const noexcept 8751: { 8751: int count = atomic.load(); 8751: return (count != 1) && (count != 0); 8751: } 8751: 8751: void initializeOwned() noexcept { atomic.store(1); } 8751: void initializeUnsharable() noexcept { atomic.store(0); } 8751: 8751: QBasicAtomicInt atomic; 8751: }; 8751: 8751: } 8751: 8751: 8751: 8751: 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qnamespace.h" 1 3 4 8751: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qnamespace.h" 3 4 8751: 8751: 8751: 8751: struct QMetaObject; 8751: const QMetaObject *qt_getQtMetaObject() noexcept; 8751: # 64 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qnamespace.h" 3 4 8751: namespace 8751: 8751: 8751: 8751: Qt { 8751: 8751: 8751: 8751: 8751: 8751: 8751: enum GlobalColor { 8751: color0, 8751: color1, 8751: black, 8751: white, 8751: darkGray, 8751: gray, 8751: lightGray, 8751: red, 8751: green, 8751: blue, 8751: cyan, 8751: magenta, 8751: yellow, 8751: darkRed, 8751: darkGreen, 8751: darkBlue, 8751: darkCyan, 8751: darkMagenta, 8751: darkYellow, 8751: transparent 8751: }; 8751: 8751: enum KeyboardModifier { 8751: NoModifier = 0x00000000, 8751: ShiftModifier = 0x02000000, 8751: ControlModifier = 0x04000000, 8751: AltModifier = 0x08000000, 8751: MetaModifier = 0x10000000, 8751: KeypadModifier = 0x20000000, 8751: GroupSwitchModifier = 0x40000000, 8751: 8751: KeyboardModifierMask = 0xfe000000 8751: }; 8751: typedef QFlags KeyboardModifiers; 8751: 8751: 8751: 8751: 8751: 8751: 8751: enum Modifier { 8751: META = Qt::MetaModifier, 8751: SHIFT = Qt::ShiftModifier, 8751: CTRL = Qt::ControlModifier, 8751: ALT = Qt::AltModifier, 8751: MODIFIER_MASK = KeyboardModifierMask, 8751: UNICODE_ACCEL = 0x00000000 8751: }; 8751: 8751: enum MouseButton { 8751: NoButton = 0x00000000, 8751: LeftButton = 0x00000001, 8751: RightButton = 0x00000002, 8751: MidButton = 0x00000004, 8751: MiddleButton = MidButton, 8751: BackButton = 0x00000008, 8751: XButton1 = BackButton, 8751: ExtraButton1 = XButton1, 8751: ForwardButton = 0x00000010, 8751: XButton2 = ForwardButton, 8751: ExtraButton2 = ForwardButton, 8751: TaskButton = 0x00000020, 8751: ExtraButton3 = TaskButton, 8751: ExtraButton4 = 0x00000040, 8751: ExtraButton5 = 0x00000080, 8751: ExtraButton6 = 0x00000100, 8751: ExtraButton7 = 0x00000200, 8751: ExtraButton8 = 0x00000400, 8751: ExtraButton9 = 0x00000800, 8751: ExtraButton10 = 0x00001000, 8751: ExtraButton11 = 0x00002000, 8751: ExtraButton12 = 0x00004000, 8751: ExtraButton13 = 0x00008000, 8751: ExtraButton14 = 0x00010000, 8751: ExtraButton15 = 0x00020000, 8751: ExtraButton16 = 0x00040000, 8751: ExtraButton17 = 0x00080000, 8751: ExtraButton18 = 0x00100000, 8751: ExtraButton19 = 0x00200000, 8751: ExtraButton20 = 0x00400000, 8751: ExtraButton21 = 0x00800000, 8751: ExtraButton22 = 0x01000000, 8751: ExtraButton23 = 0x02000000, 8751: ExtraButton24 = 0x04000000, 8751: AllButtons = 0x07ffffff, 8751: MaxMouseButton = ExtraButton24, 8751: 8751: MouseButtonMask = 0xffffffff 8751: }; 8751: typedef QFlags MouseButtons; 8751: 8751: enum Orientation { 8751: Horizontal = 0x1, 8751: Vertical = 0x2 8751: }; 8751: 8751: typedef QFlags Orientations; 8751: 8751: enum FocusPolicy { 8751: NoFocus = 0, 8751: TabFocus = 0x1, 8751: ClickFocus = 0x2, 8751: StrongFocus = TabFocus | ClickFocus | 0x8, 8751: WheelFocus = StrongFocus | 0x4 8751: }; 8751: 8751: enum TabFocusBehavior { 8751: NoTabFocus = 0x00, 8751: TabFocusTextControls = 0x01, 8751: TabFocusListControls = 0x02, 8751: TabFocusAllControls = 0xff 8751: }; 8751: 8751: enum SortOrder { 8751: AscendingOrder, 8751: DescendingOrder 8751: }; 8751: 8751: enum TileRule { 8751: StretchTile, 8751: RepeatTile, 8751: RoundTile 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: enum AlignmentFlag { 8751: AlignLeft = 0x0001, 8751: AlignLeading = AlignLeft, 8751: AlignRight = 0x0002, 8751: AlignTrailing = AlignRight, 8751: AlignHCenter = 0x0004, 8751: AlignJustify = 0x0008, 8751: AlignAbsolute = 0x0010, 8751: AlignHorizontal_Mask = AlignLeft | AlignRight | AlignHCenter | AlignJustify | AlignAbsolute, 8751: 8751: AlignTop = 0x0020, 8751: AlignBottom = 0x0040, 8751: AlignVCenter = 0x0080, 8751: AlignBaseline = 0x0100, 8751: 8751: 8751: 8751: 8751: AlignVertical_Mask = AlignTop | AlignBottom | AlignVCenter | AlignBaseline, 8751: 8751: AlignCenter = AlignVCenter | AlignHCenter 8751: }; 8751: 8751: typedef QFlags Alignment; 8751: 8751: enum TextFlag { 8751: TextSingleLine = 0x0100, 8751: TextDontClip = 0x0200, 8751: TextExpandTabs = 0x0400, 8751: TextShowMnemonic = 0x0800, 8751: TextWordWrap = 0x1000, 8751: TextWrapAnywhere = 0x2000, 8751: TextDontPrint = 0x4000, 8751: TextIncludeTrailingSpaces = 0x08000000, 8751: TextHideMnemonic = 0x8000, 8751: TextJustificationForced = 0x10000, 8751: TextForceLeftToRight = 0x20000, 8751: TextForceRightToLeft = 0x40000, 8751: 8751: 8751: TextLongestVariant = 0x80000, 8751: TextBypassShaping = 0x100000 8751: }; 8751: 8751: enum TextElideMode { 8751: ElideLeft, 8751: ElideRight, 8751: ElideMiddle, 8751: ElideNone 8751: }; 8751: 8751: enum WhiteSpaceMode { 8751: WhiteSpaceNormal, 8751: WhiteSpacePre, 8751: WhiteSpaceNoWrap, 8751: WhiteSpaceModeUndefined = -1 8751: }; 8751: 8751: enum HitTestAccuracy { ExactHit, FuzzyHit }; 8751: 8751: enum WindowType { 8751: Widget = 0x00000000, 8751: Window = 0x00000001, 8751: Dialog = 0x00000002 | Window, 8751: Sheet = 0x00000004 | Window, 8751: Drawer = Sheet | Dialog, 8751: Popup = 0x00000008 | Window, 8751: Tool = Popup | Dialog, 8751: ToolTip = Popup | Sheet, 8751: SplashScreen = ToolTip | Dialog, 8751: Desktop = 0x00000010 | Window, 8751: SubWindow = 0x00000012, 8751: ForeignWindow = 0x00000020 | Window, 8751: CoverWindow = 0x00000040 | Window, 8751: 8751: WindowType_Mask = 0x000000ff, 8751: MSWindowsFixedSizeDialogHint = 0x00000100, 8751: MSWindowsOwnDC = 0x00000200, 8751: BypassWindowManagerHint = 0x00000400, 8751: X11BypassWindowManagerHint = BypassWindowManagerHint, 8751: FramelessWindowHint = 0x00000800, 8751: WindowTitleHint = 0x00001000, 8751: WindowSystemMenuHint = 0x00002000, 8751: WindowMinimizeButtonHint = 0x00004000, 8751: WindowMaximizeButtonHint = 0x00008000, 8751: WindowMinMaxButtonsHint = WindowMinimizeButtonHint | WindowMaximizeButtonHint, 8751: WindowContextHelpButtonHint = 0x00010000, 8751: WindowShadeButtonHint = 0x00020000, 8751: WindowStaysOnTopHint = 0x00040000, 8751: WindowTransparentForInput = 0x00080000, 8751: WindowOverridesSystemGestures = 0x00100000, 8751: WindowDoesNotAcceptFocus = 0x00200000, 8751: MaximizeUsingFullscreenGeometryHint = 0x00400000, 8751: 8751: CustomizeWindowHint = 0x02000000, 8751: WindowStaysOnBottomHint = 0x04000000, 8751: WindowCloseButtonHint = 0x08000000, 8751: MacWindowToolBarButtonHint = 0x10000000, 8751: BypassGraphicsProxyWidget = 0x20000000, 8751: NoDropShadowWindowHint = 0x40000000, 8751: WindowFullscreenButtonHint = 0x80000000 8751: }; 8751: 8751: typedef QFlags WindowFlags; 8751: 8751: enum WindowState { 8751: WindowNoState = 0x00000000, 8751: WindowMinimized = 0x00000001, 8751: WindowMaximized = 0x00000002, 8751: WindowFullScreen = 0x00000004, 8751: WindowActive = 0x00000008 8751: }; 8751: 8751: typedef QFlags WindowStates; 8751: 8751: enum ApplicationState { 8751: ApplicationSuspended = 0x00000000, 8751: ApplicationHidden = 0x00000001, 8751: ApplicationInactive = 0x00000002, 8751: ApplicationActive = 0x00000004 8751: }; 8751: 8751: typedef QFlags ApplicationStates; 8751: 8751: enum ScreenOrientation { 8751: PrimaryOrientation = 0x00000000, 8751: PortraitOrientation = 0x00000001, 8751: LandscapeOrientation = 0x00000002, 8751: InvertedPortraitOrientation = 0x00000004, 8751: InvertedLandscapeOrientation = 0x00000008 8751: }; 8751: 8751: typedef QFlags ScreenOrientations; 8751: 8751: enum WidgetAttribute { 8751: WA_Disabled = 0, 8751: WA_UnderMouse = 1, 8751: WA_MouseTracking = 2, 8751: WA_ContentsPropagated = 3, 8751: WA_OpaquePaintEvent = 4, 8751: WA_NoBackground = WA_OpaquePaintEvent, 8751: WA_StaticContents = 5, 8751: WA_LaidOut = 7, 8751: WA_PaintOnScreen = 8, 8751: WA_NoSystemBackground = 9, 8751: WA_UpdatesDisabled = 10, 8751: WA_Mapped = 11, 8751: WA_MacNoClickThrough = 12, 8751: WA_InputMethodEnabled = 14, 8751: WA_WState_Visible = 15, 8751: WA_WState_Hidden = 16, 8751: 8751: WA_ForceDisabled = 32, 8751: WA_KeyCompression = 33, 8751: WA_PendingMoveEvent = 34, 8751: WA_PendingResizeEvent = 35, 8751: WA_SetPalette = 36, 8751: WA_SetFont = 37, 8751: WA_SetCursor = 38, 8751: WA_NoChildEventsFromChildren = 39, 8751: WA_WindowModified = 41, 8751: WA_Resized = 42, 8751: WA_Moved = 43, 8751: WA_PendingUpdate = 44, 8751: WA_InvalidSize = 45, 8751: WA_MacBrushedMetal = 46, 8751: WA_MacMetalStyle = WA_MacBrushedMetal, 8751: WA_CustomWhatsThis = 47, 8751: WA_LayoutOnEntireRect = 48, 8751: WA_OutsideWSRange = 49, 8751: WA_GrabbedShortcut = 50, 8751: WA_TransparentForMouseEvents = 51, 8751: WA_PaintUnclipped = 52, 8751: WA_SetWindowIcon = 53, 8751: WA_NoMouseReplay = 54, 8751: WA_DeleteOnClose = 55, 8751: WA_RightToLeft = 56, 8751: WA_SetLayoutDirection = 57, 8751: WA_NoChildEventsForParent = 58, 8751: WA_ForceUpdatesDisabled = 59, 8751: 8751: WA_WState_Created = 60, 8751: WA_WState_CompressKeys = 61, 8751: WA_WState_InPaintEvent = 62, 8751: WA_WState_Reparented = 63, 8751: WA_WState_ConfigPending = 64, 8751: WA_WState_Polished = 66, 8751: WA_WState_DND = 67, 8751: WA_WState_OwnSizePolicy = 68, 8751: WA_WState_ExplicitShowHide = 69, 8751: 8751: WA_ShowModal = 70, 8751: WA_MouseNoMask = 71, 8751: WA_GroupLeader = 72, 8751: WA_NoMousePropagation = 73, 8751: WA_Hover = 74, 8751: WA_InputMethodTransparent = 75, 8751: WA_QuitOnClose = 76, 8751: 8751: WA_KeyboardFocusChange = 77, 8751: 8751: WA_AcceptDrops = 78, 8751: WA_DropSiteRegistered = 79, 8751: WA_ForceAcceptDrops = WA_DropSiteRegistered, 8751: 8751: WA_WindowPropagation = 80, 8751: 8751: WA_NoX11EventCompression = 81, 8751: WA_TintedBackground = 82, 8751: WA_X11OpenGLOverlay = 83, 8751: WA_AlwaysShowToolTips = 84, 8751: WA_MacOpaqueSizeGrip = 85, 8751: WA_SetStyle = 86, 8751: 8751: WA_SetLocale = 87, 8751: WA_MacShowFocusRect = 88, 8751: 8751: WA_MacNormalSize = 89, 8751: WA_MacSmallSize = 90, 8751: WA_MacMiniSize = 91, 8751: 8751: WA_LayoutUsesWidgetRect = 92, 8751: WA_StyledBackground = 93, 8751: WA_MSWindowsUseDirect3D = 94, 8751: WA_CanHostQMdiSubWindowTitleBar = 95, 8751: 8751: WA_MacAlwaysShowToolWindow = 96, 8751: 8751: WA_StyleSheet = 97, 8751: 8751: WA_ShowWithoutActivating = 98, 8751: 8751: WA_X11BypassTransientForHint = 99, 8751: 8751: WA_NativeWindow = 100, 8751: WA_DontCreateNativeAncestors = 101, 8751: 8751: WA_MacVariableSize = 102, 8751: 8751: WA_DontShowOnScreen = 103, 8751: 8751: 8751: WA_X11NetWmWindowTypeDesktop = 104, 8751: WA_X11NetWmWindowTypeDock = 105, 8751: WA_X11NetWmWindowTypeToolBar = 106, 8751: WA_X11NetWmWindowTypeMenu = 107, 8751: WA_X11NetWmWindowTypeUtility = 108, 8751: WA_X11NetWmWindowTypeSplash = 109, 8751: WA_X11NetWmWindowTypeDialog = 110, 8751: WA_X11NetWmWindowTypeDropDownMenu = 111, 8751: WA_X11NetWmWindowTypePopupMenu = 112, 8751: WA_X11NetWmWindowTypeToolTip = 113, 8751: WA_X11NetWmWindowTypeNotification = 114, 8751: WA_X11NetWmWindowTypeCombo = 115, 8751: WA_X11NetWmWindowTypeDND = 116, 8751: 8751: WA_MacFrameworkScaled = 117, 8751: 8751: WA_SetWindowModality = 118, 8751: WA_WState_WindowOpacitySet = 119, 8751: WA_TranslucentBackground = 120, 8751: 8751: WA_AcceptTouchEvents = 121, 8751: WA_WState_AcceptedTouchBeginEvent = 122, 8751: WA_TouchPadAcceptSingleTouchEvents = 123, 8751: 8751: WA_X11DoNotAcceptFocus = 126, 8751: WA_MacNoShadow = 127, 8751: 8751: WA_AlwaysStackOnTop = 128, 8751: 8751: WA_TabletTracking = 129, 8751: 8751: 8751: WA_AttributeCount 8751: }; 8751: 8751: enum ApplicationAttribute 8751: { 8751: AA_ImmediateWidgetCreation = 0, 8751: AA_MSWindowsUseDirect3DByDefault = 1, 8751: AA_DontShowIconsInMenus = 2, 8751: AA_NativeWindows = 3, 8751: AA_DontCreateNativeWidgetSiblings = 4, 8751: AA_PluginApplication = 5, 8751: AA_MacPluginApplication = AA_PluginApplication, 8751: AA_DontUseNativeMenuBar = 6, 8751: AA_MacDontSwapCtrlAndMeta = 7, 8751: AA_Use96Dpi = 8, 8751: AA_X11InitThreads = 10, 8751: AA_SynthesizeTouchForUnhandledMouseEvents = 11, 8751: AA_SynthesizeMouseForUnhandledTouchEvents = 12, 8751: AA_UseHighDpiPixmaps = 13, 8751: AA_ForceRasterWidgets = 14, 8751: AA_UseDesktopOpenGL = 15, 8751: AA_UseOpenGLES = 16, 8751: AA_UseSoftwareOpenGL = 17, 8751: AA_ShareOpenGLContexts = 18, 8751: AA_SetPalette = 19, 8751: AA_EnableHighDpiScaling = 20, 8751: AA_DisableHighDpiScaling = 21, 8751: AA_UseStyleSheetPropagationInWidgetStyles = 22, 8751: AA_DontUseNativeDialogs = 23, 8751: AA_SynthesizeMouseForUnhandledTabletEvents = 24, 8751: AA_CompressHighFrequencyEvents = 25, 8751: AA_DontCheckOpenGLContextThreadAffinity = 26, 8751: AA_DisableShaderDiskCache = 27, 8751: 8751: 8751: AA_AttributeCount 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: enum ImageConversionFlag { 8751: ColorMode_Mask = 0x00000003, 8751: AutoColor = 0x00000000, 8751: ColorOnly = 0x00000003, 8751: MonoOnly = 0x00000002, 8751: 8751: 8751: AlphaDither_Mask = 0x0000000c, 8751: ThresholdAlphaDither = 0x00000000, 8751: OrderedAlphaDither = 0x00000004, 8751: DiffuseAlphaDither = 0x00000008, 8751: NoAlpha = 0x0000000c, 8751: 8751: Dither_Mask = 0x00000030, 8751: DiffuseDither = 0x00000000, 8751: OrderedDither = 0x00000010, 8751: ThresholdDither = 0x00000020, 8751: 8751: 8751: DitherMode_Mask = 0x000000c0, 8751: AutoDither = 0x00000000, 8751: PreferDither = 0x00000040, 8751: AvoidDither = 0x00000080, 8751: 8751: NoOpaqueDetection = 0x00000100, 8751: NoFormatConversion = 0x00000200 8751: }; 8751: typedef QFlags ImageConversionFlags; 8751: 8751: enum BGMode { 8751: TransparentMode, 8751: OpaqueMode 8751: }; 8751: 8751: enum Key { 8751: Key_Escape = 0x01000000, 8751: Key_Tab = 0x01000001, 8751: Key_Backtab = 0x01000002, 8751: Key_Backspace = 0x01000003, 8751: Key_Return = 0x01000004, 8751: Key_Enter = 0x01000005, 8751: Key_Insert = 0x01000006, 8751: Key_Delete = 0x01000007, 8751: Key_Pause = 0x01000008, 8751: Key_Print = 0x01000009, 8751: Key_SysReq = 0x0100000a, 8751: Key_Clear = 0x0100000b, 8751: Key_Home = 0x01000010, 8751: Key_End = 0x01000011, 8751: Key_Left = 0x01000012, 8751: Key_Up = 0x01000013, 8751: Key_Right = 0x01000014, 8751: Key_Down = 0x01000015, 8751: Key_PageUp = 0x01000016, 8751: Key_PageDown = 0x01000017, 8751: Key_Shift = 0x01000020, 8751: Key_Control = 0x01000021, 8751: Key_Meta = 0x01000022, 8751: Key_Alt = 0x01000023, 8751: Key_CapsLock = 0x01000024, 8751: Key_NumLock = 0x01000025, 8751: Key_ScrollLock = 0x01000026, 8751: Key_F1 = 0x01000030, 8751: Key_F2 = 0x01000031, 8751: Key_F3 = 0x01000032, 8751: Key_F4 = 0x01000033, 8751: Key_F5 = 0x01000034, 8751: Key_F6 = 0x01000035, 8751: Key_F7 = 0x01000036, 8751: Key_F8 = 0x01000037, 8751: Key_F9 = 0x01000038, 8751: Key_F10 = 0x01000039, 8751: Key_F11 = 0x0100003a, 8751: Key_F12 = 0x0100003b, 8751: Key_F13 = 0x0100003c, 8751: Key_F14 = 0x0100003d, 8751: Key_F15 = 0x0100003e, 8751: Key_F16 = 0x0100003f, 8751: Key_F17 = 0x01000040, 8751: Key_F18 = 0x01000041, 8751: Key_F19 = 0x01000042, 8751: Key_F20 = 0x01000043, 8751: Key_F21 = 0x01000044, 8751: Key_F22 = 0x01000045, 8751: Key_F23 = 0x01000046, 8751: Key_F24 = 0x01000047, 8751: Key_F25 = 0x01000048, 8751: Key_F26 = 0x01000049, 8751: Key_F27 = 0x0100004a, 8751: Key_F28 = 0x0100004b, 8751: Key_F29 = 0x0100004c, 8751: Key_F30 = 0x0100004d, 8751: Key_F31 = 0x0100004e, 8751: Key_F32 = 0x0100004f, 8751: Key_F33 = 0x01000050, 8751: Key_F34 = 0x01000051, 8751: Key_F35 = 0x01000052, 8751: Key_Super_L = 0x01000053, 8751: Key_Super_R = 0x01000054, 8751: Key_Menu = 0x01000055, 8751: Key_Hyper_L = 0x01000056, 8751: Key_Hyper_R = 0x01000057, 8751: Key_Help = 0x01000058, 8751: Key_Direction_L = 0x01000059, 8751: Key_Direction_R = 0x01000060, 8751: Key_Space = 0x20, 8751: Key_Any = Key_Space, 8751: Key_Exclam = 0x21, 8751: Key_QuoteDbl = 0x22, 8751: Key_NumberSign = 0x23, 8751: Key_Dollar = 0x24, 8751: Key_Percent = 0x25, 8751: Key_Ampersand = 0x26, 8751: Key_Apostrophe = 0x27, 8751: Key_ParenLeft = 0x28, 8751: Key_ParenRight = 0x29, 8751: Key_Asterisk = 0x2a, 8751: Key_Plus = 0x2b, 8751: Key_Comma = 0x2c, 8751: Key_Minus = 0x2d, 8751: Key_Period = 0x2e, 8751: Key_Slash = 0x2f, 8751: Key_0 = 0x30, 8751: Key_1 = 0x31, 8751: Key_2 = 0x32, 8751: Key_3 = 0x33, 8751: Key_4 = 0x34, 8751: Key_5 = 0x35, 8751: Key_6 = 0x36, 8751: Key_7 = 0x37, 8751: Key_8 = 0x38, 8751: Key_9 = 0x39, 8751: Key_Colon = 0x3a, 8751: Key_Semicolon = 0x3b, 8751: Key_Less = 0x3c, 8751: Key_Equal = 0x3d, 8751: Key_Greater = 0x3e, 8751: Key_Question = 0x3f, 8751: Key_At = 0x40, 8751: Key_A = 0x41, 8751: Key_B = 0x42, 8751: Key_C = 0x43, 8751: Key_D = 0x44, 8751: Key_E = 0x45, 8751: Key_F = 0x46, 8751: Key_G = 0x47, 8751: Key_H = 0x48, 8751: Key_I = 0x49, 8751: Key_J = 0x4a, 8751: Key_K = 0x4b, 8751: Key_L = 0x4c, 8751: Key_M = 0x4d, 8751: Key_N = 0x4e, 8751: Key_O = 0x4f, 8751: Key_P = 0x50, 8751: Key_Q = 0x51, 8751: Key_R = 0x52, 8751: Key_S = 0x53, 8751: Key_T = 0x54, 8751: Key_U = 0x55, 8751: Key_V = 0x56, 8751: Key_W = 0x57, 8751: Key_X = 0x58, 8751: Key_Y = 0x59, 8751: Key_Z = 0x5a, 8751: Key_BracketLeft = 0x5b, 8751: Key_Backslash = 0x5c, 8751: Key_BracketRight = 0x5d, 8751: Key_AsciiCircum = 0x5e, 8751: Key_Underscore = 0x5f, 8751: Key_QuoteLeft = 0x60, 8751: Key_BraceLeft = 0x7b, 8751: Key_Bar = 0x7c, 8751: Key_BraceRight = 0x7d, 8751: Key_AsciiTilde = 0x7e, 8751: 8751: Key_nobreakspace = 0x0a0, 8751: Key_exclamdown = 0x0a1, 8751: Key_cent = 0x0a2, 8751: Key_sterling = 0x0a3, 8751: Key_currency = 0x0a4, 8751: Key_yen = 0x0a5, 8751: Key_brokenbar = 0x0a6, 8751: Key_section = 0x0a7, 8751: Key_diaeresis = 0x0a8, 8751: Key_copyright = 0x0a9, 8751: Key_ordfeminine = 0x0aa, 8751: Key_guillemotleft = 0x0ab, 8751: Key_notsign = 0x0ac, 8751: Key_hyphen = 0x0ad, 8751: Key_registered = 0x0ae, 8751: Key_macron = 0x0af, 8751: Key_degree = 0x0b0, 8751: Key_plusminus = 0x0b1, 8751: Key_twosuperior = 0x0b2, 8751: Key_threesuperior = 0x0b3, 8751: Key_acute = 0x0b4, 8751: Key_mu = 0x0b5, 8751: Key_paragraph = 0x0b6, 8751: Key_periodcentered = 0x0b7, 8751: Key_cedilla = 0x0b8, 8751: Key_onesuperior = 0x0b9, 8751: Key_masculine = 0x0ba, 8751: Key_guillemotright = 0x0bb, 8751: Key_onequarter = 0x0bc, 8751: Key_onehalf = 0x0bd, 8751: Key_threequarters = 0x0be, 8751: Key_questiondown = 0x0bf, 8751: Key_Agrave = 0x0c0, 8751: Key_Aacute = 0x0c1, 8751: Key_Acircumflex = 0x0c2, 8751: Key_Atilde = 0x0c3, 8751: Key_Adiaeresis = 0x0c4, 8751: Key_Aring = 0x0c5, 8751: Key_AE = 0x0c6, 8751: Key_Ccedilla = 0x0c7, 8751: Key_Egrave = 0x0c8, 8751: Key_Eacute = 0x0c9, 8751: Key_Ecircumflex = 0x0ca, 8751: Key_Ediaeresis = 0x0cb, 8751: Key_Igrave = 0x0cc, 8751: Key_Iacute = 0x0cd, 8751: Key_Icircumflex = 0x0ce, 8751: Key_Idiaeresis = 0x0cf, 8751: Key_ETH = 0x0d0, 8751: Key_Ntilde = 0x0d1, 8751: Key_Ograve = 0x0d2, 8751: Key_Oacute = 0x0d3, 8751: Key_Ocircumflex = 0x0d4, 8751: Key_Otilde = 0x0d5, 8751: Key_Odiaeresis = 0x0d6, 8751: Key_multiply = 0x0d7, 8751: Key_Ooblique = 0x0d8, 8751: Key_Ugrave = 0x0d9, 8751: Key_Uacute = 0x0da, 8751: Key_Ucircumflex = 0x0db, 8751: Key_Udiaeresis = 0x0dc, 8751: Key_Yacute = 0x0dd, 8751: Key_THORN = 0x0de, 8751: Key_ssharp = 0x0df, 8751: Key_division = 0x0f7, 8751: Key_ydiaeresis = 0x0ff, 8751: 8751: 8751: 8751: 8751: 8751: 8751: Key_AltGr = 0x01001103, 8751: Key_Multi_key = 0x01001120, 8751: Key_Codeinput = 0x01001137, 8751: Key_SingleCandidate = 0x0100113c, 8751: Key_MultipleCandidate = 0x0100113d, 8751: Key_PreviousCandidate = 0x0100113e, 8751: 8751: 8751: Key_Mode_switch = 0x0100117e, 8751: 8751: 8751: 8751: Key_Kanji = 0x01001121, 8751: Key_Muhenkan = 0x01001122, 8751: 8751: Key_Henkan = 0x01001123, 8751: Key_Romaji = 0x01001124, 8751: Key_Hiragana = 0x01001125, 8751: Key_Katakana = 0x01001126, 8751: Key_Hiragana_Katakana = 0x01001127, 8751: Key_Zenkaku = 0x01001128, 8751: Key_Hankaku = 0x01001129, 8751: Key_Zenkaku_Hankaku = 0x0100112a, 8751: Key_Touroku = 0x0100112b, 8751: Key_Massyo = 0x0100112c, 8751: Key_Kana_Lock = 0x0100112d, 8751: Key_Kana_Shift = 0x0100112e, 8751: Key_Eisu_Shift = 0x0100112f, 8751: Key_Eisu_toggle = 0x01001130, 8751: # 806 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qnamespace.h" 3 4 8751: Key_Hangul = 0x01001131, 8751: Key_Hangul_Start = 0x01001132, 8751: Key_Hangul_End = 0x01001133, 8751: Key_Hangul_Hanja = 0x01001134, 8751: Key_Hangul_Jamo = 0x01001135, 8751: Key_Hangul_Romaja = 0x01001136, 8751: 8751: Key_Hangul_Jeonja = 0x01001138, 8751: Key_Hangul_Banja = 0x01001139, 8751: Key_Hangul_PreHanja = 0x0100113a, 8751: Key_Hangul_PostHanja = 0x0100113b, 8751: 8751: 8751: 8751: Key_Hangul_Special = 0x0100113f, 8751: 8751: 8751: 8751: Key_Dead_Grave = 0x01001250, 8751: Key_Dead_Acute = 0x01001251, 8751: Key_Dead_Circumflex = 0x01001252, 8751: Key_Dead_Tilde = 0x01001253, 8751: Key_Dead_Macron = 0x01001254, 8751: Key_Dead_Breve = 0x01001255, 8751: Key_Dead_Abovedot = 0x01001256, 8751: Key_Dead_Diaeresis = 0x01001257, 8751: Key_Dead_Abovering = 0x01001258, 8751: Key_Dead_Doubleacute = 0x01001259, 8751: Key_Dead_Caron = 0x0100125a, 8751: Key_Dead_Cedilla = 0x0100125b, 8751: Key_Dead_Ogonek = 0x0100125c, 8751: Key_Dead_Iota = 0x0100125d, 8751: Key_Dead_Voiced_Sound = 0x0100125e, 8751: Key_Dead_Semivoiced_Sound = 0x0100125f, 8751: Key_Dead_Belowdot = 0x01001260, 8751: Key_Dead_Hook = 0x01001261, 8751: Key_Dead_Horn = 0x01001262, 8751: 8751: 8751: Key_Back = 0x01000061, 8751: Key_Forward = 0x01000062, 8751: Key_Stop = 0x01000063, 8751: Key_Refresh = 0x01000064, 8751: Key_VolumeDown = 0x01000070, 8751: Key_VolumeMute = 0x01000071, 8751: Key_VolumeUp = 0x01000072, 8751: Key_BassBoost = 0x01000073, 8751: Key_BassUp = 0x01000074, 8751: Key_BassDown = 0x01000075, 8751: Key_TrebleUp = 0x01000076, 8751: Key_TrebleDown = 0x01000077, 8751: Key_MediaPlay = 0x01000080, 8751: Key_MediaStop = 0x01000081, 8751: Key_MediaPrevious = 0x01000082, 8751: Key_MediaNext = 0x01000083, 8751: Key_MediaRecord = 0x01000084, 8751: Key_MediaPause = 0x1000085, 8751: Key_MediaTogglePlayPause = 0x1000086, 8751: Key_HomePage = 0x01000090, 8751: Key_Favorites = 0x01000091, 8751: Key_Search = 0x01000092, 8751: Key_Standby = 0x01000093, 8751: Key_OpenUrl = 0x01000094, 8751: Key_LaunchMail = 0x010000a0, 8751: Key_LaunchMedia = 0x010000a1, 8751: Key_Launch0 = 0x010000a2, 8751: Key_Launch1 = 0x010000a3, 8751: Key_Launch2 = 0x010000a4, 8751: Key_Launch3 = 0x010000a5, 8751: Key_Launch4 = 0x010000a6, 8751: Key_Launch5 = 0x010000a7, 8751: Key_Launch6 = 0x010000a8, 8751: Key_Launch7 = 0x010000a9, 8751: Key_Launch8 = 0x010000aa, 8751: Key_Launch9 = 0x010000ab, 8751: Key_LaunchA = 0x010000ac, 8751: Key_LaunchB = 0x010000ad, 8751: Key_LaunchC = 0x010000ae, 8751: Key_LaunchD = 0x010000af, 8751: Key_LaunchE = 0x010000b0, 8751: Key_LaunchF = 0x010000b1, 8751: Key_MonBrightnessUp = 0x010000b2, 8751: Key_MonBrightnessDown = 0x010000b3, 8751: Key_KeyboardLightOnOff = 0x010000b4, 8751: Key_KeyboardBrightnessUp = 0x010000b5, 8751: Key_KeyboardBrightnessDown = 0x010000b6, 8751: Key_PowerOff = 0x010000b7, 8751: Key_WakeUp = 0x010000b8, 8751: Key_Eject = 0x010000b9, 8751: Key_ScreenSaver = 0x010000ba, 8751: Key_WWW = 0x010000bb, 8751: Key_Memo = 0x010000bc, 8751: Key_LightBulb = 0x010000bd, 8751: Key_Shop = 0x010000be, 8751: Key_History = 0x010000bf, 8751: Key_AddFavorite = 0x010000c0, 8751: Key_HotLinks = 0x010000c1, 8751: Key_BrightnessAdjust = 0x010000c2, 8751: Key_Finance = 0x010000c3, 8751: Key_Community = 0x010000c4, 8751: Key_AudioRewind = 0x010000c5, 8751: Key_BackForward = 0x010000c6, 8751: Key_ApplicationLeft = 0x010000c7, 8751: Key_ApplicationRight = 0x010000c8, 8751: Key_Book = 0x010000c9, 8751: Key_CD = 0x010000ca, 8751: Key_Calculator = 0x010000cb, 8751: Key_ToDoList = 0x010000cc, 8751: Key_ClearGrab = 0x010000cd, 8751: Key_Close = 0x010000ce, 8751: Key_Copy = 0x010000cf, 8751: Key_Cut = 0x010000d0, 8751: Key_Display = 0x010000d1, 8751: Key_DOS = 0x010000d2, 8751: Key_Documents = 0x010000d3, 8751: Key_Excel = 0x010000d4, 8751: Key_Explorer = 0x010000d5, 8751: Key_Game = 0x010000d6, 8751: Key_Go = 0x010000d7, 8751: Key_iTouch = 0x010000d8, 8751: Key_LogOff = 0x010000d9, 8751: Key_Market = 0x010000da, 8751: Key_Meeting = 0x010000db, 8751: Key_MenuKB = 0x010000dc, 8751: Key_MenuPB = 0x010000dd, 8751: Key_MySites = 0x010000de, 8751: Key_News = 0x010000df, 8751: Key_OfficeHome = 0x010000e0, 8751: Key_Option = 0x010000e1, 8751: Key_Paste = 0x010000e2, 8751: Key_Phone = 0x010000e3, 8751: Key_Calendar = 0x010000e4, 8751: Key_Reply = 0x010000e5, 8751: Key_Reload = 0x010000e6, 8751: Key_RotateWindows = 0x010000e7, 8751: Key_RotationPB = 0x010000e8, 8751: Key_RotationKB = 0x010000e9, 8751: Key_Save = 0x010000ea, 8751: Key_Send = 0x010000eb, 8751: Key_Spell = 0x010000ec, 8751: Key_SplitScreen = 0x010000ed, 8751: Key_Support = 0x010000ee, 8751: Key_TaskPane = 0x010000ef, 8751: Key_Terminal = 0x010000f0, 8751: Key_Tools = 0x010000f1, 8751: Key_Travel = 0x010000f2, 8751: Key_Video = 0x010000f3, 8751: Key_Word = 0x010000f4, 8751: Key_Xfer = 0x010000f5, 8751: Key_ZoomIn = 0x010000f6, 8751: Key_ZoomOut = 0x010000f7, 8751: Key_Away = 0x010000f8, 8751: Key_Messenger = 0x010000f9, 8751: Key_WebCam = 0x010000fa, 8751: Key_MailForward = 0x010000fb, 8751: Key_Pictures = 0x010000fc, 8751: Key_Music = 0x010000fd, 8751: Key_Battery = 0x010000fe, 8751: Key_Bluetooth = 0x010000ff, 8751: Key_WLAN = 0x01000100, 8751: Key_UWB = 0x01000101, 8751: Key_AudioForward = 0x01000102, 8751: Key_AudioRepeat = 0x01000103, 8751: Key_AudioRandomPlay = 0x01000104, 8751: Key_Subtitle = 0x01000105, 8751: Key_AudioCycleTrack = 0x01000106, 8751: Key_Time = 0x01000107, 8751: Key_Hibernate = 0x01000108, 8751: Key_View = 0x01000109, 8751: Key_TopMenu = 0x0100010a, 8751: Key_PowerDown = 0x0100010b, 8751: Key_Suspend = 0x0100010c, 8751: Key_ContrastAdjust = 0x0100010d, 8751: 8751: Key_LaunchG = 0x0100010e, 8751: Key_LaunchH = 0x0100010f, 8751: 8751: Key_TouchpadToggle = 0x01000110, 8751: Key_TouchpadOn = 0x01000111, 8751: Key_TouchpadOff = 0x01000112, 8751: 8751: Key_MicMute = 0x01000113, 8751: 8751: Key_Red = 0x01000114, 8751: Key_Green = 0x01000115, 8751: Key_Yellow = 0x01000116, 8751: Key_Blue = 0x01000117, 8751: 8751: Key_ChannelUp = 0x01000118, 8751: Key_ChannelDown = 0x01000119, 8751: 8751: Key_Guide = 0x0100011a, 8751: Key_Info = 0x0100011b, 8751: Key_Settings = 0x0100011c, 8751: 8751: Key_MicVolumeUp = 0x0100011d, 8751: Key_MicVolumeDown = 0x0100011e, 8751: 8751: Key_New = 0x01000120, 8751: Key_Open = 0x01000121, 8751: Key_Find = 0x01000122, 8751: Key_Undo = 0x01000123, 8751: Key_Redo = 0x01000124, 8751: 8751: Key_MediaLast = 0x0100ffff, 8751: 8751: 8751: Key_Select = 0x01010000, 8751: Key_Yes = 0x01010001, 8751: Key_No = 0x01010002, 8751: 8751: 8751: Key_Cancel = 0x01020001, 8751: Key_Printer = 0x01020002, 8751: Key_Execute = 0x01020003, 8751: Key_Sleep = 0x01020004, 8751: Key_Play = 0x01020005, 8751: Key_Zoom = 0x01020006, 8751: 8751: 8751: 8751: Key_Exit = 0x0102000a, 8751: 8751: 8751: Key_Context1 = 0x01100000, 8751: Key_Context2 = 0x01100001, 8751: Key_Context3 = 0x01100002, 8751: Key_Context4 = 0x01100003, 8751: Key_Call = 0x01100004, 8751: Key_Hangup = 0x01100005, 8751: Key_Flip = 0x01100006, 8751: Key_ToggleCallHangup = 0x01100007, 8751: Key_VoiceDial = 0x01100008, 8751: Key_LastNumberRedial = 0x01100009, 8751: 8751: Key_Camera = 0x01100020, 8751: Key_CameraFocus = 0x01100021, 8751: 8751: Key_unknown = 0x01ffffff 8751: }; 8751: 8751: enum ArrowType { 8751: NoArrow, 8751: UpArrow, 8751: DownArrow, 8751: LeftArrow, 8751: RightArrow 8751: }; 8751: 8751: enum PenStyle { 8751: NoPen, 8751: SolidLine, 8751: DashLine, 8751: DotLine, 8751: DashDotLine, 8751: DashDotDotLine, 8751: CustomDashLine 8751: 8751: , MPenStyle = 0x0f 8751: 8751: }; 8751: 8751: enum PenCapStyle { 8751: FlatCap = 0x00, 8751: SquareCap = 0x10, 8751: RoundCap = 0x20, 8751: MPenCapStyle = 0x30 8751: }; 8751: 8751: enum PenJoinStyle { 8751: MiterJoin = 0x00, 8751: BevelJoin = 0x40, 8751: RoundJoin = 0x80, 8751: SvgMiterJoin = 0x100, 8751: MPenJoinStyle = 0x1c0 8751: }; 8751: 8751: enum BrushStyle { 8751: NoBrush, 8751: SolidPattern, 8751: Dense1Pattern, 8751: Dense2Pattern, 8751: Dense3Pattern, 8751: Dense4Pattern, 8751: Dense5Pattern, 8751: Dense6Pattern, 8751: Dense7Pattern, 8751: HorPattern, 8751: VerPattern, 8751: CrossPattern, 8751: BDiagPattern, 8751: FDiagPattern, 8751: DiagCrossPattern, 8751: LinearGradientPattern, 8751: RadialGradientPattern, 8751: ConicalGradientPattern, 8751: TexturePattern = 24 8751: }; 8751: 8751: enum SizeMode { 8751: AbsoluteSize, 8751: RelativeSize 8751: }; 8751: 8751: enum UIEffect { 8751: UI_General, 8751: UI_AnimateMenu, 8751: UI_FadeMenu, 8751: UI_AnimateCombo, 8751: UI_AnimateTooltip, 8751: UI_FadeTooltip, 8751: UI_AnimateToolBox 8751: }; 8751: 8751: enum CursorShape { 8751: ArrowCursor, 8751: UpArrowCursor, 8751: CrossCursor, 8751: WaitCursor, 8751: IBeamCursor, 8751: SizeVerCursor, 8751: SizeHorCursor, 8751: SizeBDiagCursor, 8751: SizeFDiagCursor, 8751: SizeAllCursor, 8751: BlankCursor, 8751: SplitVCursor, 8751: SplitHCursor, 8751: PointingHandCursor, 8751: ForbiddenCursor, 8751: WhatsThisCursor, 8751: BusyCursor, 8751: OpenHandCursor, 8751: ClosedHandCursor, 8751: DragCopyCursor, 8751: DragMoveCursor, 8751: DragLinkCursor, 8751: LastCursor = DragLinkCursor, 8751: BitmapCursor = 24, 8751: CustomCursor = 25 8751: }; 8751: 8751: enum TextFormat { 8751: PlainText, 8751: RichText, 8751: AutoText 8751: }; 8751: 8751: enum AspectRatioMode { 8751: IgnoreAspectRatio, 8751: KeepAspectRatio, 8751: KeepAspectRatioByExpanding 8751: }; 8751: 8751: enum DockWidgetArea { 8751: LeftDockWidgetArea = 0x1, 8751: RightDockWidgetArea = 0x2, 8751: TopDockWidgetArea = 0x4, 8751: BottomDockWidgetArea = 0x8, 8751: 8751: DockWidgetArea_Mask = 0xf, 8751: AllDockWidgetAreas = DockWidgetArea_Mask, 8751: NoDockWidgetArea = 0 8751: }; 8751: enum DockWidgetAreaSizes { 8751: NDockWidgetAreas = 4 8751: }; 8751: 8751: typedef QFlags DockWidgetAreas; 8751: 8751: enum ToolBarArea { 8751: LeftToolBarArea = 0x1, 8751: RightToolBarArea = 0x2, 8751: TopToolBarArea = 0x4, 8751: BottomToolBarArea = 0x8, 8751: 8751: ToolBarArea_Mask = 0xf, 8751: AllToolBarAreas = ToolBarArea_Mask, 8751: NoToolBarArea = 0 8751: }; 8751: 8751: enum ToolBarAreaSizes { 8751: NToolBarAreas = 4 8751: }; 8751: 8751: typedef QFlags ToolBarAreas; 8751: 8751: enum DateFormat { 8751: TextDate, 8751: ISODate, 8751: SystemLocaleDate, 8751: LocalDate = SystemLocaleDate, 8751: LocaleDate, 8751: SystemLocaleShortDate, 8751: SystemLocaleLongDate, 8751: DefaultLocaleShortDate, 8751: DefaultLocaleLongDate, 8751: RFC2822Date, 8751: ISODateWithMs 8751: }; 8751: 8751: enum TimeSpec { 8751: LocalTime, 8751: UTC, 8751: OffsetFromUTC, 8751: TimeZone 8751: }; 8751: 8751: enum DayOfWeek { 8751: Monday = 1, 8751: Tuesday = 2, 8751: Wednesday = 3, 8751: Thursday = 4, 8751: Friday = 5, 8751: Saturday = 6, 8751: Sunday = 7 8751: }; 8751: 8751: enum ScrollBarPolicy { 8751: ScrollBarAsNeeded, 8751: ScrollBarAlwaysOff, 8751: ScrollBarAlwaysOn 8751: }; 8751: 8751: enum CaseSensitivity { 8751: CaseInsensitive, 8751: CaseSensitive 8751: }; 8751: 8751: enum Corner { 8751: TopLeftCorner = 0x00000, 8751: TopRightCorner = 0x00001, 8751: BottomLeftCorner = 0x00002, 8751: BottomRightCorner = 0x00003 8751: }; 8751: 8751: enum Edge { 8751: TopEdge = 0x00001, 8751: LeftEdge = 0x00002, 8751: RightEdge = 0x00004, 8751: BottomEdge = 0x00008 8751: }; 8751: 8751: typedef QFlags Edges; 8751: 8751: enum ConnectionType { 8751: AutoConnection, 8751: DirectConnection, 8751: QueuedConnection, 8751: BlockingQueuedConnection, 8751: UniqueConnection = 0x80 8751: }; 8751: 8751: enum ShortcutContext { 8751: WidgetShortcut, 8751: WindowShortcut, 8751: ApplicationShortcut, 8751: WidgetWithChildrenShortcut 8751: }; 8751: 8751: enum FillRule { 8751: OddEvenFill, 8751: WindingFill 8751: }; 8751: 8751: enum MaskMode { 8751: MaskInColor, 8751: MaskOutColor 8751: }; 8751: 8751: enum ClipOperation { 8751: NoClip, 8751: ReplaceClip, 8751: IntersectClip 8751: }; 8751: 8751: 8751: enum ItemSelectionMode { 8751: ContainsItemShape = 0x0, 8751: IntersectsItemShape = 0x1, 8751: ContainsItemBoundingRect = 0x2, 8751: IntersectsItemBoundingRect = 0x3 8751: }; 8751: 8751: enum ItemSelectionOperation { 8751: ReplaceSelection, 8751: AddToSelection 8751: }; 8751: 8751: enum TransformationMode { 8751: FastTransformation, 8751: SmoothTransformation 8751: }; 8751: 8751: enum Axis { 8751: XAxis, 8751: YAxis, 8751: ZAxis 8751: }; 8751: 8751: enum FocusReason { 8751: MouseFocusReason, 8751: TabFocusReason, 8751: BacktabFocusReason, 8751: ActiveWindowFocusReason, 8751: PopupFocusReason, 8751: ShortcutFocusReason, 8751: MenuBarFocusReason, 8751: OtherFocusReason, 8751: NoFocusReason 8751: }; 8751: 8751: enum ContextMenuPolicy { 8751: NoContextMenu, 8751: DefaultContextMenu, 8751: ActionsContextMenu, 8751: CustomContextMenu, 8751: PreventContextMenu 8751: }; 8751: 8751: enum InputMethodQuery { 8751: ImEnabled = 0x1, 8751: ImCursorRectangle = 0x2, 8751: ImMicroFocus = 0x2, 8751: ImFont = 0x4, 8751: ImCursorPosition = 0x8, 8751: ImSurroundingText = 0x10, 8751: ImCurrentSelection = 0x20, 8751: ImMaximumTextLength = 0x40, 8751: ImAnchorPosition = 0x80, 8751: ImHints = 0x100, 8751: ImPreferredLanguage = 0x200, 8751: 8751: ImAbsolutePosition = 0x400, 8751: ImTextBeforeCursor = 0x800, 8751: ImTextAfterCursor = 0x1000, 8751: ImEnterKeyType = 0x2000, 8751: ImAnchorRectangle = 0x4000, 8751: ImInputItemClipRectangle = 0x8000, 8751: 8751: ImPlatformData = 0x80000000, 8751: ImQueryInput = ImCursorRectangle | ImCursorPosition | ImSurroundingText | 8751: ImCurrentSelection | ImAnchorRectangle | ImAnchorPosition, 8751: ImQueryAll = 0xffffffff 8751: }; 8751: typedef QFlags InputMethodQueries; 8751: 8751: enum InputMethodHint { 8751: ImhNone = 0x0, 8751: 8751: ImhHiddenText = 0x1, 8751: ImhSensitiveData = 0x2, 8751: ImhNoAutoUppercase = 0x4, 8751: ImhPreferNumbers = 0x8, 8751: ImhPreferUppercase = 0x10, 8751: ImhPreferLowercase = 0x20, 8751: ImhNoPredictiveText = 0x40, 8751: 8751: ImhDate = 0x80, 8751: ImhTime = 0x100, 8751: 8751: ImhPreferLatin = 0x200, 8751: 8751: ImhMultiLine = 0x400, 8751: 8751: ImhDigitsOnly = 0x10000, 8751: ImhFormattedNumbersOnly = 0x20000, 8751: ImhUppercaseOnly = 0x40000, 8751: ImhLowercaseOnly = 0x80000, 8751: ImhDialableCharactersOnly = 0x100000, 8751: ImhEmailCharactersOnly = 0x200000, 8751: ImhUrlCharactersOnly = 0x400000, 8751: ImhLatinOnly = 0x800000, 8751: 8751: ImhExclusiveInputMask = 0xffff0000 8751: }; 8751: typedef QFlags InputMethodHints; 8751: 8751: enum EnterKeyType { 8751: EnterKeyDefault, 8751: EnterKeyReturn, 8751: EnterKeyDone, 8751: EnterKeyGo, 8751: EnterKeySend, 8751: EnterKeySearch, 8751: EnterKeyNext, 8751: EnterKeyPrevious 8751: }; 8751: 8751: enum ToolButtonStyle { 8751: ToolButtonIconOnly, 8751: ToolButtonTextOnly, 8751: ToolButtonTextBesideIcon, 8751: ToolButtonTextUnderIcon, 8751: ToolButtonFollowStyle 8751: }; 8751: 8751: enum LayoutDirection { 8751: LeftToRight, 8751: RightToLeft, 8751: LayoutDirectionAuto 8751: }; 8751: 8751: enum AnchorPoint { 8751: AnchorLeft = 0, 8751: AnchorHorizontalCenter, 8751: AnchorRight, 8751: AnchorTop, 8751: AnchorVerticalCenter, 8751: AnchorBottom 8751: }; 8751: 8751: enum FindChildOption { 8751: FindDirectChildrenOnly = 0x0, 8751: FindChildrenRecursively = 0x1 8751: }; 8751: typedef QFlags FindChildOptions; 8751: 8751: enum DropAction { 8751: CopyAction = 0x1, 8751: MoveAction = 0x2, 8751: LinkAction = 0x4, 8751: ActionMask = 0xff, 8751: TargetMoveAction = 0x8002, 8751: IgnoreAction = 0x0 8751: }; 8751: typedef QFlags DropActions; 8751: 8751: enum CheckState { 8751: Unchecked, 8751: PartiallyChecked, 8751: Checked 8751: }; 8751: 8751: enum ItemDataRole { 8751: DisplayRole = 0, 8751: DecorationRole = 1, 8751: EditRole = 2, 8751: ToolTipRole = 3, 8751: StatusTipRole = 4, 8751: WhatsThisRole = 5, 8751: 8751: FontRole = 6, 8751: TextAlignmentRole = 7, 8751: BackgroundColorRole = 8, 8751: BackgroundRole = 8, 8751: TextColorRole = 9, 8751: ForegroundRole = 9, 8751: CheckStateRole = 10, 8751: 8751: AccessibleTextRole = 11, 8751: AccessibleDescriptionRole = 12, 8751: 8751: SizeHintRole = 13, 8751: InitialSortOrderRole = 14, 8751: 8751: DisplayPropertyRole = 27, 8751: DecorationPropertyRole = 28, 8751: ToolTipPropertyRole = 29, 8751: StatusTipPropertyRole = 30, 8751: WhatsThisPropertyRole = 31, 8751: 8751: UserRole = 0x0100 8751: }; 8751: 8751: enum ItemFlag { 8751: NoItemFlags = 0, 8751: ItemIsSelectable = 1, 8751: ItemIsEditable = 2, 8751: ItemIsDragEnabled = 4, 8751: ItemIsDropEnabled = 8, 8751: ItemIsUserCheckable = 16, 8751: ItemIsEnabled = 32, 8751: ItemIsAutoTristate = 64, 8751: 8751: ItemIsTristate = ItemIsAutoTristate, 8751: 8751: ItemNeverHasChildren = 128, 8751: ItemIsUserTristate = 256 8751: }; 8751: typedef QFlags ItemFlags; 8751: 8751: enum MatchFlag { 8751: MatchExactly = 0, 8751: MatchContains = 1, 8751: MatchStartsWith = 2, 8751: MatchEndsWith = 3, 8751: MatchRegExp = 4, 8751: MatchWildcard = 5, 8751: MatchFixedString = 8, 8751: MatchCaseSensitive = 16, 8751: MatchWrap = 32, 8751: MatchRecursive = 64 8751: }; 8751: typedef QFlags MatchFlags; 8751: 8751: typedef void * HANDLE; 8751: 8751: 8751: 8751: 8751: enum WindowModality { 8751: NonModal, 8751: WindowModal, 8751: ApplicationModal 8751: }; 8751: 8751: enum TextInteractionFlag { 8751: NoTextInteraction = 0, 8751: TextSelectableByMouse = 1, 8751: TextSelectableByKeyboard = 2, 8751: LinksAccessibleByMouse = 4, 8751: LinksAccessibleByKeyboard = 8, 8751: TextEditable = 16, 8751: 8751: TextEditorInteraction = TextSelectableByMouse | TextSelectableByKeyboard | TextEditable, 8751: TextBrowserInteraction = TextSelectableByMouse | LinksAccessibleByMouse | LinksAccessibleByKeyboard 8751: }; 8751: typedef QFlags TextInteractionFlags; 8751: 8751: enum EventPriority { 8751: HighEventPriority = 1, 8751: NormalEventPriority = 0, 8751: LowEventPriority = -1 8751: }; 8751: 8751: enum SizeHint { 8751: MinimumSize, 8751: PreferredSize, 8751: MaximumSize, 8751: MinimumDescent, 8751: NSizeHints 8751: }; 8751: 8751: enum WindowFrameSection { 8751: NoSection, 8751: LeftSection, 8751: TopLeftSection, 8751: TopSection, 8751: TopRightSection, 8751: RightSection, 8751: BottomRightSection, 8751: BottomSection, 8751: BottomLeftSection, 8751: TitleBarArea 8751: }; 8751: 8751: 8751: enum class Initialization { 8751: Uninitialized 8751: }; 8751: static constexpr __attribute__((__unused__)) Initialization Uninitialized = Initialization::Uninitialized; 8751: 8751: 8751: 8751: 8751: 8751: 8751: enum CoordinateSystem { 8751: DeviceCoordinates, 8751: LogicalCoordinates 8751: }; 8751: 8751: enum TouchPointState { 8751: TouchPointPressed = 0x01, 8751: TouchPointMoved = 0x02, 8751: TouchPointStationary = 0x04, 8751: TouchPointReleased = 0x08 8751: }; 8751: typedef QFlags TouchPointStates; 8751: 8751: 8751: enum GestureState 8751: { 8751: NoGesture, 8751: GestureStarted = 1, 8751: GestureUpdated = 2, 8751: GestureFinished = 3, 8751: GestureCanceled = 4 8751: }; 8751: 8751: enum GestureType 8751: { 8751: TapGesture = 1, 8751: TapAndHoldGesture = 2, 8751: PanGesture = 3, 8751: PinchGesture = 4, 8751: SwipeGesture = 5, 8751: 8751: CustomGesture = 0x0100, 8751: 8751: LastGestureType = ~0u 8751: }; 8751: 8751: enum GestureFlag 8751: { 8751: DontStartGestureOnChildren = 0x01, 8751: ReceivePartialGestures = 0x02, 8751: IgnoredGesturesPropagateToParent = 0x04 8751: }; 8751: typedef QFlags GestureFlags; 8751: 8751: enum NativeGestureType 8751: { 8751: BeginNativeGesture, 8751: EndNativeGesture, 8751: PanNativeGesture, 8751: ZoomNativeGesture, 8751: SmartZoomNativeGesture, 8751: RotateNativeGesture, 8751: SwipeNativeGesture 8751: }; 8751: 8751: 8751: 8751: enum NavigationMode 8751: { 8751: NavigationModeNone, 8751: NavigationModeKeypadTabOrder, 8751: NavigationModeKeypadDirectional, 8751: NavigationModeCursorAuto, 8751: NavigationModeCursorForceVisible 8751: }; 8751: 8751: enum CursorMoveStyle { 8751: LogicalMoveStyle, 8751: VisualMoveStyle 8751: }; 8751: 8751: enum TimerType { 8751: PreciseTimer, 8751: CoarseTimer, 8751: VeryCoarseTimer 8751: }; 8751: 8751: enum ScrollPhase { 8751: NoScrollPhase = 0, 8751: ScrollBegin, 8751: ScrollUpdate, 8751: ScrollEnd 8751: }; 8751: 8751: enum MouseEventSource { 8751: MouseEventNotSynthesized, 8751: MouseEventSynthesizedBySystem, 8751: MouseEventSynthesizedByQt, 8751: MouseEventSynthesizedByApplication 8751: }; 8751: 8751: enum MouseEventFlag { 8751: MouseEventCreatedDoubleClick = 0x01, 8751: MouseEventFlagMask = 0xFF 8751: }; 8751: typedef QFlags MouseEventFlags; 8751: 8751: enum ChecksumType { 8751: ChecksumIso3309, 8751: ChecksumItuV41 8751: }; 8751: 8751: 8751: 8751: inline const QMetaObject *qt_getEnumMetaObject(ScrollBarPolicy) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScrollBarPolicy) noexcept { return "ScrollBarPolicy"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(FocusPolicy) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(FocusPolicy) noexcept { return "FocusPolicy"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ContextMenuPolicy) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ContextMenuPolicy) noexcept { return "ContextMenuPolicy"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ArrowType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ArrowType) noexcept { return "ArrowType"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ToolButtonStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ToolButtonStyle) noexcept { return "ToolButtonStyle"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(PenStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(PenStyle) noexcept { return "PenStyle"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(PenCapStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(PenCapStyle) noexcept { return "PenCapStyle"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(PenJoinStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(PenJoinStyle) noexcept { return "PenJoinStyle"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(BrushStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(BrushStyle) noexcept { return "BrushStyle"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(FillRule) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(FillRule) noexcept { return "FillRule"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(MaskMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MaskMode) noexcept { return "MaskMode"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(BGMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(BGMode) noexcept { return "BGMode"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ClipOperation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ClipOperation) noexcept { return "ClipOperation"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(SizeMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(SizeMode) noexcept { return "SizeMode"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(Axis) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Axis) noexcept { return "Axis"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(Corner) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Corner) noexcept { return "Corner"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(Edge) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Edge) noexcept { return "Edge"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(LayoutDirection) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(LayoutDirection) noexcept { return "LayoutDirection"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(SizeHint) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(SizeHint) noexcept { return "SizeHint"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(Orientation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Orientation) noexcept { return "Orientation"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(DropAction) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DropAction) noexcept { return "DropAction"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(Alignment) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Alignment) noexcept { return "Alignment"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(TextFlag) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextFlag) noexcept { return "TextFlag"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(Orientations) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Orientations) noexcept { return "Orientations"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(DropActions) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DropActions) noexcept { return "DropActions"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(Edges) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Edges) noexcept { return "Edges"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(DockWidgetAreas) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DockWidgetAreas) noexcept { return "DockWidgetAreas"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ToolBarAreas) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ToolBarAreas) noexcept { return "ToolBarAreas"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(DockWidgetArea) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DockWidgetArea) noexcept { return "DockWidgetArea"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ToolBarArea) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ToolBarArea) noexcept { return "ToolBarArea"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(TextFormat) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextFormat) noexcept { return "TextFormat"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(TextElideMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextElideMode) noexcept { return "TextElideMode"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(DateFormat) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DateFormat) noexcept { return "DateFormat"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(TimeSpec) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TimeSpec) noexcept { return "TimeSpec"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(DayOfWeek) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DayOfWeek) noexcept { return "DayOfWeek"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(CursorShape) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CursorShape) noexcept { return "CursorShape"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(GlobalColor) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(GlobalColor) noexcept { return "GlobalColor"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(AspectRatioMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(AspectRatioMode) noexcept { return "AspectRatioMode"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(TransformationMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TransformationMode) noexcept { return "TransformationMode"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ImageConversionFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ImageConversionFlags) noexcept { return "ImageConversionFlags"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(Key) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Key) noexcept { return "Key"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ShortcutContext) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ShortcutContext) noexcept { return "ShortcutContext"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(TextInteractionFlag) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextInteractionFlag) noexcept { return "TextInteractionFlag"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(TextInteractionFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextInteractionFlags) noexcept { return "TextInteractionFlags"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ItemSelectionMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemSelectionMode) noexcept { return "ItemSelectionMode"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ItemSelectionOperation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemSelectionOperation) noexcept { return "ItemSelectionOperation"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ItemFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemFlags) noexcept { return "ItemFlags"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(CheckState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CheckState) noexcept { return "CheckState"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ItemDataRole) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemDataRole) noexcept { return "ItemDataRole"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(SortOrder) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(SortOrder) noexcept { return "SortOrder"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(CaseSensitivity) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CaseSensitivity) noexcept { return "CaseSensitivity"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(MatchFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MatchFlags) noexcept { return "MatchFlags"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(KeyboardModifiers) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(KeyboardModifiers) noexcept { return "KeyboardModifiers"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(MouseButtons) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MouseButtons) noexcept { return "MouseButtons"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(WindowType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowType) noexcept { return "WindowType"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(WindowState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowState) noexcept { return "WindowState"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(WindowModality) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowModality) noexcept { return "WindowModality"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(WidgetAttribute) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WidgetAttribute) noexcept { return "WidgetAttribute"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ApplicationAttribute) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ApplicationAttribute) noexcept { return "ApplicationAttribute"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(WindowFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowFlags) noexcept { return "WindowFlags"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(WindowStates) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowStates) noexcept { return "WindowStates"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(FocusReason) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(FocusReason) noexcept { return "FocusReason"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(InputMethodHint) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodHint) noexcept { return "InputMethodHint"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(InputMethodQuery) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodQuery) noexcept { return "InputMethodQuery"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(InputMethodHints) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodHints) noexcept { return "InputMethodHints"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(EnterKeyType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(EnterKeyType) noexcept { return "EnterKeyType"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(InputMethodQueries) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodQueries) noexcept { return "InputMethodQueries"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(TouchPointStates) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TouchPointStates) noexcept { return "TouchPointStates"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ScreenOrientation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScreenOrientation) noexcept { return "ScreenOrientation"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ScreenOrientations) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScreenOrientations) noexcept { return "ScreenOrientations"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ConnectionType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ConnectionType) noexcept { return "ConnectionType"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ApplicationState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ApplicationState) noexcept { return "ApplicationState"; } 8751: 8751: inline const QMetaObject *qt_getEnumMetaObject(GestureState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(GestureState) noexcept { return "GestureState"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(GestureType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(GestureType) noexcept { return "GestureType"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(NativeGestureType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(NativeGestureType) noexcept { return "NativeGestureType"; } 8751: 8751: inline const QMetaObject *qt_getEnumMetaObject(CursorMoveStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CursorMoveStyle) noexcept { return "CursorMoveStyle"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(TimerType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TimerType) noexcept { return "TimerType"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ScrollPhase) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScrollPhase) noexcept { return "ScrollPhase"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(MouseEventSource) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MouseEventSource) noexcept { return "MouseEventSource"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(MouseEventFlag) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MouseEventFlag) noexcept { return "MouseEventFlag"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(ChecksumType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ChecksumType) noexcept { return "ChecksumType"; } 8751: inline const QMetaObject *qt_getEnumMetaObject(TabFocusBehavior) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TabFocusBehavior) noexcept { return "TabFocusBehavior"; } 8751: 8751: 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: constexpr inline QFlags operator|(Qt::MouseButtons::enum_type f1, Qt::MouseButtons::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::MouseButtons::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::MouseButtons::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(Qt::Orientations::enum_type f1, Qt::Orientations::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::Orientations::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::Orientations::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(Qt::KeyboardModifiers::enum_type f1, Qt::KeyboardModifiers::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::KeyboardModifiers::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::KeyboardModifiers::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(Qt::WindowFlags::enum_type f1, Qt::WindowFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::WindowFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::WindowFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(Qt::Alignment::enum_type f1, Qt::Alignment::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::Alignment::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::Alignment::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(Qt::Edges::enum_type f1, Qt::Edges::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::Edges::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::Edges::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(Qt::ImageConversionFlags::enum_type f1, Qt::ImageConversionFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::ImageConversionFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::ImageConversionFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(Qt::DockWidgetAreas::enum_type f1, Qt::DockWidgetAreas::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::DockWidgetAreas::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::DockWidgetAreas::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(Qt::ToolBarAreas::enum_type f1, Qt::ToolBarAreas::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::ToolBarAreas::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::ToolBarAreas::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(Qt::WindowStates::enum_type f1, Qt::WindowStates::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::WindowStates::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::WindowStates::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(Qt::ScreenOrientations::enum_type f1, Qt::ScreenOrientations::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::ScreenOrientations::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::ScreenOrientations::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(Qt::DropActions::enum_type f1, Qt::DropActions::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::DropActions::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::DropActions::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(Qt::ItemFlags::enum_type f1, Qt::ItemFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::ItemFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::ItemFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(Qt::MatchFlags::enum_type f1, Qt::MatchFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::MatchFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::MatchFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(Qt::TextInteractionFlags::enum_type f1, Qt::TextInteractionFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::TextInteractionFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::TextInteractionFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(Qt::InputMethodQueries::enum_type f1, Qt::InputMethodQueries::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::InputMethodQueries::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::InputMethodQueries::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(Qt::InputMethodHints::enum_type f1, Qt::InputMethodHints::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::InputMethodHints::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::InputMethodHints::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(Qt::TouchPointStates::enum_type f1, Qt::TouchPointStates::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::TouchPointStates::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::TouchPointStates::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(Qt::MouseEventFlags::enum_type f1, Qt::MouseEventFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::MouseEventFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::MouseEventFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: 8751: constexpr inline QFlags operator|(Qt::GestureFlags::enum_type f1, Qt::GestureFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(Qt::GestureFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(Qt::GestureFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: 8751: 8751: typedef bool (*qInternalCallback)(void **); 8751: 8751: class __attribute__((visibility("default"))) QInternal { 8751: public: 8751: enum PaintDeviceFlags { 8751: UnknownDevice = 0x00, 8751: Widget = 0x01, 8751: Pixmap = 0x02, 8751: Image = 0x03, 8751: Printer = 0x04, 8751: Picture = 0x05, 8751: Pbuffer = 0x06, 8751: FramebufferObject = 0x07, 8751: CustomRaster = 0x08, 8751: MacQuartz = 0x09, 8751: PaintBuffer = 0x0a, 8751: OpenGL = 0x0b 8751: }; 8751: enum RelayoutType { 8751: RelayoutNormal, 8751: RelayoutDragging, 8751: RelayoutDropped 8751: }; 8751: 8751: enum DockPosition { 8751: LeftDock, 8751: RightDock, 8751: TopDock, 8751: BottomDock, 8751: DockCount 8751: }; 8751: 8751: enum Callback { 8751: EventNotifyCallback, 8751: LastCallback 8751: }; 8751: static bool registerCallback(Callback, qInternalCallback); 8751: static bool unregisterCallback(Callback, qInternalCallback); 8751: static bool activateCallbacks(Callback, void **); 8751: }; 8751: 8751: 8751: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qarraydata.h" 1 3 4 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qarraydata.h" 3 4 8751: # 1 "/usr/include/string.h" 1 3 4 8751: # 26 "/usr/include/string.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 8751: # 27 "/usr/include/string.h" 2 3 4 8751: 8751: extern "C" { 8751: 8751: 8751: 8751: 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8751: # 34 "/usr/include/string.h" 2 3 4 8751: # 42 "/usr/include/string.h" 3 4 8751: extern void *memcpy (void *__restrict __dest, const void *__restrict __src, 8751: size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern void *memmove (void *__dest, const void *__src, size_t __n) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: 8751: 8751: extern void *memccpy (void *__restrict __dest, const void *__restrict __src, 8751: int __c, size_t __n) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: 8751: extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int memcmp (const void *__s1, const void *__s2, size_t __n) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: extern "C++" 8751: { 8751: extern void *memchr (void *__s, int __c, size_t __n) 8751: throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8751: extern const void *memchr (const void *__s, int __c, size_t __n) 8751: throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void * 8751: memchr (void *__s, int __c, size_t __n) throw () 8751: { 8751: return __builtin_memchr (__s, __c, __n); 8751: } 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const void * 8751: memchr (const void *__s, int __c, size_t __n) throw () 8751: { 8751: return __builtin_memchr (__s, __c, __n); 8751: } 8751: 8751: } 8751: # 98 "/usr/include/string.h" 3 4 8751: extern "C++" void *rawmemchr (void *__s, int __c) 8751: throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8751: extern "C++" const void *rawmemchr (const void *__s, int __c) 8751: throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern "C++" void *memrchr (void *__s, int __c, size_t __n) 8751: throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8751: extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) 8751: throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8751: # 121 "/usr/include/string.h" 3 4 8751: extern char *strcpy (char *__restrict __dest, const char *__restrict __src) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: extern char *strncpy (char *__restrict __dest, 8751: const char *__restrict __src, size_t __n) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern char *strcat (char *__restrict __dest, const char *__restrict __src) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: extern char *strncat (char *__restrict __dest, const char *__restrict __src, 8751: size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int strcmp (const char *__s1, const char *__s2) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: extern int strncmp (const char *__s1, const char *__s2, size_t __n) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int strcoll (const char *__s1, const char *__s2) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: extern size_t strxfrm (char *__restrict __dest, 8751: const char *__restrict __src, size_t __n) 8751: throw () __attribute__ ((__nonnull__ (2))); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 8751: 8751: 8751: extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, 8751: locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); 8751: 8751: 8751: 8751: 8751: 8751: extern char *strdup (const char *__s) 8751: throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern char *strndup (const char *__string, size_t __n) 8751: throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 8751: # 203 "/usr/include/string.h" 3 4 8751: extern "C++" 8751: { 8751: extern char *strchr (char *__s, int __c) 8751: throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8751: extern const char *strchr (const char *__s, int __c) 8751: throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8751: strchr (char *__s, int __c) throw () 8751: { 8751: return __builtin_strchr (__s, __c); 8751: } 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8751: strchr (const char *__s, int __c) throw () 8751: { 8751: return __builtin_strchr (__s, __c); 8751: } 8751: 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern "C++" 8751: { 8751: extern char *strrchr (char *__s, int __c) 8751: throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8751: extern const char *strrchr (const char *__s, int __c) 8751: throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8751: strrchr (char *__s, int __c) throw () 8751: { 8751: return __builtin_strrchr (__s, __c); 8751: } 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8751: strrchr (const char *__s, int __c) throw () 8751: { 8751: return __builtin_strrchr (__s, __c); 8751: } 8751: 8751: } 8751: # 260 "/usr/include/string.h" 3 4 8751: extern "C++" char *strchrnul (char *__s, int __c) 8751: throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8751: extern "C++" const char *strchrnul (const char *__s, int __c) 8751: throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8751: # 272 "/usr/include/string.h" 3 4 8751: extern size_t strcspn (const char *__s, const char *__reject) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern size_t strspn (const char *__s, const char *__accept) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern "C++" 8751: { 8751: extern char *strpbrk (char *__s, const char *__accept) 8751: throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8751: extern const char *strpbrk (const char *__s, const char *__accept) 8751: throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8751: strpbrk (char *__s, const char *__accept) throw () 8751: { 8751: return __builtin_strpbrk (__s, __accept); 8751: } 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8751: strpbrk (const char *__s, const char *__accept) throw () 8751: { 8751: return __builtin_strpbrk (__s, __accept); 8751: } 8751: 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern "C++" 8751: { 8751: extern char *strstr (char *__haystack, const char *__needle) 8751: throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8751: extern const char *strstr (const char *__haystack, const char *__needle) 8751: throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8751: strstr (char *__haystack, const char *__needle) throw () 8751: { 8751: return __builtin_strstr (__haystack, __needle); 8751: } 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8751: strstr (const char *__haystack, const char *__needle) throw () 8751: { 8751: return __builtin_strstr (__haystack, __needle); 8751: } 8751: 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern char *strtok (char *__restrict __s, const char *__restrict __delim) 8751: throw () __attribute__ ((__nonnull__ (2))); 8751: 8751: 8751: 8751: extern char *__strtok_r (char *__restrict __s, 8751: const char *__restrict __delim, 8751: char **__restrict __save_ptr) 8751: throw () __attribute__ ((__nonnull__ (2, 3))); 8751: 8751: extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, 8751: char **__restrict __save_ptr) 8751: throw () __attribute__ ((__nonnull__ (2, 3))); 8751: 8751: 8751: 8751: 8751: 8751: extern "C++" char *strcasestr (char *__haystack, const char *__needle) 8751: throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8751: extern "C++" const char *strcasestr (const char *__haystack, 8751: const char *__needle) 8751: throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8751: # 368 "/usr/include/string.h" 3 4 8751: extern void *memmem (const void *__haystack, size_t __haystacklen, 8751: const void *__needle, size_t __needlelen) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); 8751: 8751: 8751: 8751: extern void *__mempcpy (void *__restrict __dest, 8751: const void *__restrict __src, size_t __n) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: extern void *mempcpy (void *__restrict __dest, 8751: const void *__restrict __src, size_t __n) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: 8751: extern size_t strlen (const char *__s) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: extern size_t strnlen (const char *__string, size_t __maxlen) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: extern char *strerror (int __errnum) throw (); 8751: # 420 "/usr/include/string.h" 3 4 8751: extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) 8751: throw () __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: 8751: extern char *strerror_l (int __errnum, locale_t __l) throw (); 8751: 8751: 8751: 8751: # 1 "/usr/include/strings.h" 1 3 4 8751: # 23 "/usr/include/strings.h" 3 4 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8751: # 24 "/usr/include/strings.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern "C" { 8751: 8751: 8751: 8751: extern int bcmp (const void *__s1, const void *__s2, size_t __n) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern void bcopy (const void *__src, void *__dest, size_t __n) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: extern "C++" 8751: { 8751: extern char *index (char *__s, int __c) 8751: throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8751: extern const char *index (const char *__s, int __c) 8751: throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8751: index (char *__s, int __c) throw () 8751: { 8751: return __builtin_index (__s, __c); 8751: } 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8751: index (const char *__s, int __c) throw () 8751: { 8751: return __builtin_index (__s, __c); 8751: } 8751: 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern "C++" 8751: { 8751: extern char *rindex (char *__s, int __c) 8751: throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8751: extern const char *rindex (const char *__s, int __c) 8751: throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8751: rindex (char *__s, int __c) throw () 8751: { 8751: return __builtin_rindex (__s, __c); 8751: } 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8751: rindex (const char *__s, int __c) throw () 8751: { 8751: return __builtin_rindex (__s, __c); 8751: } 8751: 8751: } 8751: # 104 "/usr/include/strings.h" 3 4 8751: extern int ffs (int __i) throw () __attribute__ ((__const__)); 8751: 8751: 8751: 8751: 8751: 8751: extern int ffsl (long int __l) throw () __attribute__ ((__const__)); 8751: __extension__ extern int ffsll (long long int __ll) 8751: throw () __attribute__ ((__const__)); 8751: 8751: 8751: 8751: extern int strcasecmp (const char *__s1, const char *__s2) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 8751: 8751: 8751: 8751: extern int strncasecmp_l (const char *__s1, const char *__s2, 8751: size_t __n, locale_t __loc) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); 8751: 8751: 8751: } 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/strings_fortified.h" 1 3 4 8751: # 22 "/usr/include/arm-linux-gnueabihf/bits/strings_fortified.h" 3 4 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 8751: __attribute__ ((__leaf__)) bcopy (const void *__src, void *__dest, size_t __len) throw () 8751: { 8751: (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8751: } 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 8751: __attribute__ ((__leaf__)) bzero (void *__dest, size_t __len) throw () 8751: { 8751: (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0)); 8751: } 8751: # 145 "/usr/include/strings.h" 2 3 4 8751: # 432 "/usr/include/string.h" 2 3 4 8751: 8751: 8751: 8751: extern void explicit_bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: extern char *strsep (char **__restrict __stringp, 8751: const char *__restrict __delim) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: 8751: extern char *strsignal (int __sig) throw (); 8751: 8751: 8751: extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: extern char *__stpncpy (char *__restrict __dest, 8751: const char *__restrict __src, size_t __n) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: extern char *stpncpy (char *__restrict __dest, 8751: const char *__restrict __src, size_t __n) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: 8751: extern int strverscmp (const char *__s1, const char *__s2) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern "C++" char *basename (char *__filename) 8751: throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); 8751: extern "C++" const char *basename (const char *__filename) 8751: throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); 8751: # 494 "/usr/include/string.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/string_fortified.h" 1 3 4 8751: # 30 "/usr/include/arm-linux-gnueabihf/bits/string_fortified.h" 3 4 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8751: __attribute__ ((__leaf__)) memcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) throw () 8751: 8751: { 8751: return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8751: } 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8751: __attribute__ ((__leaf__)) memmove (void *__dest, const void *__src, size_t __len) throw () 8751: { 8751: return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8751: } 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8751: __attribute__ ((__leaf__)) mempcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) throw () 8751: 8751: { 8751: return __builtin___mempcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8751: } 8751: # 58 "/usr/include/arm-linux-gnueabihf/bits/string_fortified.h" 3 4 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8751: __attribute__ ((__leaf__)) memset (void *__dest, int __ch, size_t __len) throw () 8751: { 8751: # 71 "/usr/include/arm-linux-gnueabihf/bits/string_fortified.h" 3 4 8751: return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0)); 8751: } 8751: 8751: 8751: 8751: 8751: void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 8751: __attribute__ ((__leaf__)) explicit_bzero (void *__dest, size_t __len) throw () 8751: { 8751: __explicit_bzero_chk (__dest, __len, __builtin_object_size (__dest, 0)); 8751: } 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8751: __attribute__ ((__leaf__)) strcpy (char *__restrict __dest, const char *__restrict __src) throw () 8751: { 8751: return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 8751: } 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8751: __attribute__ ((__leaf__)) stpcpy (char *__restrict __dest, const char *__restrict __src) throw () 8751: { 8751: return __builtin___stpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 8751: } 8751: 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8751: __attribute__ ((__leaf__)) strncpy (char *__restrict __dest, const char *__restrict __src, size_t __len) throw () 8751: 8751: { 8751: return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); 8751: } 8751: 8751: 8751: extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n, 8751: size_t __destlen) throw (); 8751: extern char *__stpncpy_alias (char *__dest, const char *__src, size_t __n) throw () __asm__ ("" "stpncpy") 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8751: __attribute__ ((__leaf__)) stpncpy (char *__dest, const char *__src, size_t __n) throw () 8751: { 8751: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 8751: && (!__builtin_constant_p (__n) || __n > __builtin_object_size (__dest, 2 > 1))) 8751: return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1)); 8751: return __stpncpy_alias (__dest, __src, __n); 8751: } 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8751: __attribute__ ((__leaf__)) strcat (char *__restrict __dest, const char *__restrict __src) throw () 8751: { 8751: return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 8751: } 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8751: __attribute__ ((__leaf__)) strncat (char *__restrict __dest, const char *__restrict __src, size_t __len) throw () 8751: 8751: { 8751: return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); 8751: } 8751: # 495 "/usr/include/string.h" 2 3 4 8751: 8751: 8751: 8751: } 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qarraydata.h" 2 3 4 8751: 8751: 8751: 8751: struct __attribute__((visibility("default"))) QArrayData 8751: { 8751: QtPrivate::RefCount ref; 8751: int size; 8751: uint alloc : 31; 8751: uint capacityReserved : 1; 8751: 8751: qptrdiff offset; 8751: 8751: void *data() 8751: { 8751: do { } while ((false) && (size == 0 || offset < 0 || size_t(offset) >= sizeof(QArrayData))) 8751: ; 8751: return reinterpret_cast(this) + offset; 8751: } 8751: 8751: const void *data() const 8751: { 8751: do { } while ((false) && (size == 0 || offset < 0 || size_t(offset) >= sizeof(QArrayData))) 8751: ; 8751: return reinterpret_cast(this) + offset; 8751: } 8751: 8751: 8751: 8751: 8751: bool isMutable() const 8751: { 8751: return alloc != 0; 8751: } 8751: 8751: enum AllocationOption { 8751: CapacityReserved = 0x1, 8751: 8751: Unsharable = 0x2, 8751: 8751: RawData = 0x4, 8751: Grow = 0x8, 8751: 8751: Default = 0 8751: }; 8751: 8751: typedef QFlags AllocationOptions; 8751: 8751: size_t detachCapacity(size_t newSize) const 8751: { 8751: if (capacityReserved && newSize < alloc) 8751: return alloc; 8751: return newSize; 8751: } 8751: 8751: AllocationOptions detachFlags() const 8751: { 8751: AllocationOptions result; 8751: if (capacityReserved) 8751: result |= CapacityReserved; 8751: return result; 8751: } 8751: 8751: AllocationOptions cloneFlags() const 8751: { 8751: AllocationOptions result; 8751: if (capacityReserved) 8751: result |= CapacityReserved; 8751: return result; 8751: } 8751: 8751: [[nodiscard]] static QArrayData *allocate(size_t objectSize, size_t alignment, 8751: size_t capacity, AllocationOptions options = Default) noexcept; 8751: [[nodiscard]] static QArrayData *reallocateUnaligned(QArrayData *data, size_t objectSize, 8751: size_t newCapacity, AllocationOptions newOptions = Default) noexcept; 8751: static void deallocate(QArrayData *data, size_t objectSize, 8751: size_t alignment) noexcept; 8751: 8751: static const QArrayData shared_null[2]; 8751: static QArrayData *sharedNull() noexcept { return const_cast(shared_null); } 8751: }; 8751: 8751: constexpr inline QFlags operator|(QArrayData::AllocationOptions::enum_type f1, QArrayData::AllocationOptions::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QArrayData::AllocationOptions::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QArrayData::AllocationOptions::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: 8751: template 8751: struct QTypedArrayData 8751: : QArrayData 8751: { 8751: 8751: class iterator { 8751: public: 8751: T *i; 8751: typedef std::random_access_iterator_tag iterator_category; 8751: typedef int difference_type; 8751: typedef T value_type; 8751: typedef T *pointer; 8751: typedef T &reference; 8751: 8751: inline iterator() : i(nullptr) {} 8751: inline iterator(T *n) : i(n) {} 8751: inline iterator(const iterator &o): i(o.i){} 8751: inline T &operator*() const { return *i; } 8751: inline T *operator->() const { return i; } 8751: inline T &operator[](int j) const { return *(i + j); } 8751: inline bool operator==(const iterator &o) const { return i == o.i; } 8751: inline bool operator!=(const iterator &o) const { return i != o.i; } 8751: inline bool operator<(const iterator& other) const { return i < other.i; } 8751: inline bool operator<=(const iterator& other) const { return i <= other.i; } 8751: inline bool operator>(const iterator& other) const { return i > other.i; } 8751: inline bool operator>=(const iterator& other) const { return i >= other.i; } 8751: inline iterator &operator++() { ++i; return *this; } 8751: inline iterator operator++(int) { T *n = i; ++i; return n; } 8751: inline iterator &operator--() { i--; return *this; } 8751: inline iterator operator--(int) { T *n = i; i--; return n; } 8751: inline iterator &operator+=(int j) { i+=j; return *this; } 8751: inline iterator &operator-=(int j) { i-=j; return *this; } 8751: inline iterator operator+(int j) const { return iterator(i+j); } 8751: inline iterator operator-(int j) const { return iterator(i-j); } 8751: inline int operator-(iterator j) const { return i - j.i; } 8751: inline operator T*() const { return i; } 8751: }; 8751: friend class iterator; 8751: 8751: class const_iterator { 8751: public: 8751: const T *i; 8751: typedef std::random_access_iterator_tag iterator_category; 8751: typedef int difference_type; 8751: typedef T value_type; 8751: typedef const T *pointer; 8751: typedef const T &reference; 8751: 8751: inline const_iterator() : i(nullptr) {} 8751: inline const_iterator(const T *n) : i(n) {} 8751: inline const_iterator(const const_iterator &o): i(o.i) {} 8751: inline explicit const_iterator(const iterator &o): i(o.i) {} 8751: inline const T &operator*() const { return *i; } 8751: inline const T *operator->() const { return i; } 8751: inline const T &operator[](int j) const { return *(i + j); } 8751: inline bool operator==(const const_iterator &o) const { return i == o.i; } 8751: inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8751: inline bool operator<(const const_iterator& other) const { return i < other.i; } 8751: inline bool operator<=(const const_iterator& other) const { return i <= other.i; } 8751: inline bool operator>(const const_iterator& other) const { return i > other.i; } 8751: inline bool operator>=(const const_iterator& other) const { return i >= other.i; } 8751: inline const_iterator &operator++() { ++i; return *this; } 8751: inline const_iterator operator++(int) { const T *n = i; ++i; return n; } 8751: inline const_iterator &operator--() { i--; return *this; } 8751: inline const_iterator operator--(int) { const T *n = i; i--; return n; } 8751: inline const_iterator &operator+=(int j) { i+=j; return *this; } 8751: inline const_iterator &operator-=(int j) { i-=j; return *this; } 8751: inline const_iterator operator+(int j) const { return const_iterator(i+j); } 8751: inline const_iterator operator-(int j) const { return const_iterator(i-j); } 8751: inline int operator-(const_iterator j) const { return i - j.i; } 8751: inline operator const T*() const { return i; } 8751: }; 8751: friend class const_iterator; 8751: 8751: 8751: 8751: 8751: 8751: T *data() { return static_cast(QArrayData::data()); } 8751: const T *data() const { return static_cast(QArrayData::data()); } 8751: 8751: iterator begin(iterator = iterator()) { return data(); } 8751: iterator end(iterator = iterator()) { return data() + size; } 8751: const_iterator begin(const_iterator = const_iterator()) const { return data(); } 8751: const_iterator end(const_iterator = const_iterator()) const { return data() + size; } 8751: const_iterator constBegin(const_iterator = const_iterator()) const { return data(); } 8751: const_iterator constEnd(const_iterator = const_iterator()) const { return data() + size; } 8751: 8751: class AlignmentDummy { QArrayData header; T data; }; 8751: 8751: [[nodiscard]] static QTypedArrayData *allocate(size_t capacity, 8751: AllocationOptions options = Default) 8751: { 8751: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8751: return static_cast(QArrayData::allocate(sizeof(T), 8751: alignof(AlignmentDummy), capacity, options)); 8751: } 8751: 8751: static QTypedArrayData *reallocateUnaligned(QTypedArrayData *data, size_t capacity, 8751: AllocationOptions options = Default) 8751: { 8751: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8751: return static_cast(QArrayData::reallocateUnaligned(data, sizeof(T), 8751: capacity, options)); 8751: } 8751: 8751: static void deallocate(QArrayData *data) 8751: { 8751: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8751: QArrayData::deallocate(data, sizeof(T), alignof(AlignmentDummy)); 8751: } 8751: 8751: static QTypedArrayData *fromRawData(const T *data, size_t n, 8751: AllocationOptions options = Default) 8751: { 8751: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8751: QTypedArrayData *result = allocate(0, options | RawData); 8751: if (result) { 8751: do { } while ((false) && (!result->ref.isShared())); 8751: 8751: result->offset = reinterpret_cast(data) 8751: - reinterpret_cast(result); 8751: result->size = int(n); 8751: } 8751: return result; 8751: } 8751: 8751: static QTypedArrayData *sharedNull() noexcept 8751: { 8751: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8751: return static_cast(QArrayData::sharedNull()); 8751: } 8751: 8751: static QTypedArrayData *sharedEmpty() 8751: { 8751: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8751: return allocate( 0); 8751: } 8751: 8751: 8751: static QTypedArrayData *unsharableEmpty() 8751: { 8751: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8751: return allocate( 0, Unsharable); 8751: } 8751: 8751: }; 8751: 8751: template 8751: struct QStaticArrayData 8751: { 8751: QArrayData header; 8751: T data[N]; 8751: }; 8751: 8751: 8751: template 8751: struct QArrayDataPointerRef 8751: { 8751: QTypedArrayData *ptr; 8751: }; 8751: # 369 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qarraydata.h" 3 4 8751: namespace QtPrivate { 8751: struct __attribute__((visibility("default"))) QContainerImplHelper 8751: { 8751: enum CutResult { Null, Empty, Full, Subset }; 8751: static CutResult mid(int originalLength, int *position, int *length); 8751: }; 8751: } 8751: 8751: 8751: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 2 3 4 8751: 8751: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8751: # 36 "/usr/include/c++/8/stdlib.h" 3 4 8751: # 1 "/usr/include/c++/8/cstdlib" 1 3 4 8751: # 39 "/usr/include/c++/8/cstdlib" 3 4 8751: 8751: # 40 "/usr/include/c++/8/cstdlib" 3 8751: # 37 "/usr/include/c++/8/stdlib.h" 2 3 4 8751: 8751: using std::abort; 8751: using std::atexit; 8751: using std::exit; 8751: 8751: 8751: using std::at_quick_exit; 8751: 8751: 8751: using std::quick_exit; 8751: 8751: 8751: 8751: 8751: using std::div_t; 8751: using std::ldiv_t; 8751: 8751: using std::abs; 8751: using std::atof; 8751: using std::atoi; 8751: using std::atol; 8751: using std::bsearch; 8751: using std::calloc; 8751: using std::div; 8751: using std::free; 8751: using std::getenv; 8751: using std::labs; 8751: using std::ldiv; 8751: using std::malloc; 8751: 8751: using std::mblen; 8751: using std::mbstowcs; 8751: using std::mbtowc; 8751: 8751: using std::qsort; 8751: using std::rand; 8751: using std::realloc; 8751: using std::srand; 8751: using std::strtod; 8751: using std::strtol; 8751: using std::strtoul; 8751: using std::system; 8751: 8751: using std::wcstombs; 8751: using std::wctomb; 8751: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 2 3 4 8751: 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h" 1 3 4 8751: # 40 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h" 3 4 8751: typedef __builtin_va_list __gnuc_va_list; 8751: # 99 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h" 3 4 8751: typedef __gnuc_va_list va_list; 8751: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 2 3 4 8751: 8751: # 1 "/usr/include/c++/8/string" 1 3 4 8751: # 36 "/usr/include/c++/8/string" 3 4 8751: 8751: # 37 "/usr/include/c++/8/string" 3 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/stringfwd.h" 1 3 8751: # 37 "/usr/include/c++/8/bits/stringfwd.h" 3 8751: 8751: # 38 "/usr/include/c++/8/bits/stringfwd.h" 3 8751: 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct char_traits; 8751: 8751: template<> struct char_traits; 8751: 8751: 8751: template<> struct char_traits; 8751: 8751: 8751: 8751: 8751: template<> struct char_traits; 8751: template<> struct char_traits; 8751: 8751: 8751: namespace __cxx11 { 8751: 8751: template, 8751: typename _Alloc = allocator<_CharT> > 8751: class basic_string; 8751: 8751: 8751: typedef basic_string string; 8751: 8751: 8751: 8751: typedef basic_string wstring; 8751: 8751: 8751: 8751: 8751: 8751: typedef basic_string u16string; 8751: 8751: 8751: typedef basic_string u32string; 8751: 8751: 8751: } 8751: 8751: 8751: 8751: 8751: } 8751: # 40 "/usr/include/c++/8/string" 2 3 8751: # 1 "/usr/include/c++/8/bits/char_traits.h" 1 3 8751: # 37 "/usr/include/c++/8/bits/char_traits.h" 3 8751: 8751: # 38 "/usr/include/c++/8/bits/char_traits.h" 3 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/postypes.h" 1 3 8751: # 38 "/usr/include/c++/8/bits/postypes.h" 3 8751: 8751: # 39 "/usr/include/c++/8/bits/postypes.h" 3 8751: 8751: # 1 "/usr/include/c++/8/cwchar" 1 3 8751: # 39 "/usr/include/c++/8/cwchar" 3 8751: 8751: # 40 "/usr/include/c++/8/cwchar" 3 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/wchar.h" 1 3 4 8751: # 27 "/usr/include/wchar.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 8751: # 28 "/usr/include/wchar.h" 2 3 4 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/floatn.h" 1 3 4 8751: # 31 "/usr/include/wchar.h" 2 3 4 8751: 8751: 8751: 8751: 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8751: # 36 "/usr/include/wchar.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/wint_t.h" 1 3 4 8751: # 20 "/usr/include/arm-linux-gnueabihf/bits/types/wint_t.h" 3 4 8751: typedef unsigned int wint_t; 8751: # 42 "/usr/include/wchar.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/mbstate_t.h" 1 3 4 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/__mbstate_t.h" 1 3 4 8751: # 13 "/usr/include/arm-linux-gnueabihf/bits/types/__mbstate_t.h" 3 4 8751: typedef struct 8751: { 8751: int __count; 8751: union 8751: { 8751: unsigned int __wch; 8751: char __wchb[4]; 8751: } __value; 8751: } __mbstate_t; 8751: # 5 "/usr/include/arm-linux-gnueabihf/bits/types/mbstate_t.h" 2 3 4 8751: 8751: typedef __mbstate_t mbstate_t; 8751: # 43 "/usr/include/wchar.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/__FILE.h" 1 3 4 8751: 8751: 8751: 8751: struct _IO_FILE; 8751: typedef struct _IO_FILE __FILE; 8751: # 44 "/usr/include/wchar.h" 2 3 4 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/FILE.h" 1 3 4 8751: 8751: 8751: 8751: struct _IO_FILE; 8751: 8751: 8751: typedef struct _IO_FILE FILE; 8751: # 47 "/usr/include/wchar.h" 2 3 4 8751: # 79 "/usr/include/wchar.h" 3 4 8751: extern "C" { 8751: 8751: 8751: 8751: struct tm; 8751: 8751: 8751: 8751: extern wchar_t *wcscpy (wchar_t *__restrict __dest, 8751: const wchar_t *__restrict __src) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern wchar_t *wcsncpy (wchar_t *__restrict __dest, 8751: const wchar_t *__restrict __src, size_t __n) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern wchar_t *wcscat (wchar_t *__restrict __dest, 8751: const wchar_t *__restrict __src) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: extern wchar_t *wcsncat (wchar_t *__restrict __dest, 8751: const wchar_t *__restrict __src, size_t __n) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 8751: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) throw (); 8751: 8751: 8751: extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2, 8751: size_t __n) throw (); 8751: 8751: 8751: 8751: extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 8751: locale_t __loc) throw (); 8751: 8751: extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 8751: size_t __n, locale_t __loc) throw (); 8751: 8751: 8751: 8751: 8751: extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) throw (); 8751: 8751: 8751: 8751: extern size_t wcsxfrm (wchar_t *__restrict __s1, 8751: const wchar_t *__restrict __s2, size_t __n) throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2, 8751: locale_t __loc) throw (); 8751: 8751: 8751: 8751: 8751: extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2, 8751: size_t __n, locale_t __loc) throw (); 8751: 8751: 8751: extern wchar_t *wcsdup (const wchar_t *__s) throw () __attribute__ ((__malloc__)); 8751: 8751: 8751: 8751: 8751: extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc) 8751: throw () __asm ("wcschr") __attribute__ ((__pure__)); 8751: extern "C++" const wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc) 8751: throw () __asm ("wcschr") __attribute__ ((__pure__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc) 8751: throw () __asm ("wcsrchr") __attribute__ ((__pure__)); 8751: extern "C++" const wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc) 8751: throw () __asm ("wcsrchr") __attribute__ ((__pure__)); 8751: # 181 "/usr/include/wchar.h" 3 4 8751: extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc) 8751: throw () __attribute__ ((__pure__)); 8751: 8751: 8751: 8751: 8751: extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject) 8751: throw () __attribute__ ((__pure__)); 8751: 8751: 8751: extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept) 8751: throw () __attribute__ ((__pure__)); 8751: 8751: 8751: extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, const wchar_t *__accept) 8751: throw () __asm ("wcspbrk") __attribute__ ((__pure__)); 8751: extern "C++" const wchar_t *wcspbrk (const wchar_t *__wcs, 8751: const wchar_t *__accept) 8751: throw () __asm ("wcspbrk") __attribute__ ((__pure__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern "C++" wchar_t *wcsstr (wchar_t *__haystack, const wchar_t *__needle) 8751: throw () __asm ("wcsstr") __attribute__ ((__pure__)); 8751: extern "C++" const wchar_t *wcsstr (const wchar_t *__haystack, 8751: const wchar_t *__needle) 8751: throw () __asm ("wcsstr") __attribute__ ((__pure__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern wchar_t *wcstok (wchar_t *__restrict __s, 8751: const wchar_t *__restrict __delim, 8751: wchar_t **__restrict __ptr) throw (); 8751: 8751: 8751: extern size_t wcslen (const wchar_t *__s) throw () __attribute__ ((__pure__)); 8751: 8751: 8751: 8751: 8751: extern "C++" wchar_t *wcswcs (wchar_t *__haystack, const wchar_t *__needle) 8751: throw () __asm ("wcswcs") __attribute__ ((__pure__)); 8751: extern "C++" const wchar_t *wcswcs (const wchar_t *__haystack, 8751: const wchar_t *__needle) 8751: throw () __asm ("wcswcs") __attribute__ ((__pure__)); 8751: # 240 "/usr/include/wchar.h" 3 4 8751: extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen) 8751: throw () __attribute__ ((__pure__)); 8751: 8751: 8751: 8751: 8751: 8751: extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n) 8751: throw () __asm ("wmemchr") __attribute__ ((__pure__)); 8751: extern "C++" const wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, 8751: size_t __n) 8751: throw () __asm ("wmemchr") __attribute__ ((__pure__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 8751: throw () __attribute__ ((__pure__)); 8751: 8751: 8751: extern wchar_t *wmemcpy (wchar_t *__restrict __s1, 8751: const wchar_t *__restrict __s2, size_t __n) throw (); 8751: 8751: 8751: 8751: extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) 8751: throw (); 8751: 8751: 8751: extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); 8751: 8751: 8751: 8751: 8751: extern wchar_t *wmempcpy (wchar_t *__restrict __s1, 8751: const wchar_t *__restrict __s2, size_t __n) 8751: throw (); 8751: 8751: 8751: 8751: 8751: 8751: extern wint_t btowc (int __c) throw (); 8751: 8751: 8751: 8751: extern int wctob (wint_t __c) throw (); 8751: 8751: 8751: 8751: extern int mbsinit (const mbstate_t *__ps) throw () __attribute__ ((__pure__)); 8751: 8751: 8751: 8751: extern size_t mbrtowc (wchar_t *__restrict __pwc, 8751: const char *__restrict __s, size_t __n, 8751: mbstate_t *__restrict __p) throw (); 8751: 8751: 8751: extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, 8751: mbstate_t *__restrict __ps) throw (); 8751: 8751: 8751: extern size_t __mbrlen (const char *__restrict __s, size_t __n, 8751: mbstate_t *__restrict __ps) throw (); 8751: extern size_t mbrlen (const char *__restrict __s, size_t __n, 8751: mbstate_t *__restrict __ps) throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern wint_t __btowc_alias (int __c) __asm ("btowc"); 8751: extern __inline __attribute__ ((__gnu_inline__)) wint_t 8751: __attribute__ ((__leaf__)) btowc (int __c) throw () 8751: { return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f' 8751: ? (wint_t) __c : __btowc_alias (__c)); } 8751: 8751: extern int __wctob_alias (wint_t __c) __asm ("wctob"); 8751: extern __inline __attribute__ ((__gnu_inline__)) int 8751: __attribute__ ((__leaf__)) wctob (wint_t __wc) throw () 8751: { return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f' 8751: ? (int) __wc : __wctob_alias (__wc)); } 8751: 8751: extern __inline __attribute__ ((__gnu_inline__)) size_t 8751: __attribute__ ((__leaf__)) mbrlen (const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw () 8751: 8751: { return (__ps != __null 8751: ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); } 8751: 8751: 8751: 8751: 8751: extern size_t mbsrtowcs (wchar_t *__restrict __dst, 8751: const char **__restrict __src, size_t __len, 8751: mbstate_t *__restrict __ps) throw (); 8751: 8751: 8751: 8751: extern size_t wcsrtombs (char *__restrict __dst, 8751: const wchar_t **__restrict __src, size_t __len, 8751: mbstate_t *__restrict __ps) throw (); 8751: 8751: 8751: 8751: 8751: 8751: extern size_t mbsnrtowcs (wchar_t *__restrict __dst, 8751: const char **__restrict __src, size_t __nmc, 8751: size_t __len, mbstate_t *__restrict __ps) throw (); 8751: 8751: 8751: 8751: extern size_t wcsnrtombs (char *__restrict __dst, 8751: const wchar_t **__restrict __src, 8751: size_t __nwc, size_t __len, 8751: mbstate_t *__restrict __ps) throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int wcwidth (wchar_t __c) throw (); 8751: 8751: 8751: 8751: extern int wcswidth (const wchar_t *__s, size_t __n) throw (); 8751: 8751: 8751: 8751: 8751: 8751: extern double wcstod (const wchar_t *__restrict __nptr, 8751: wchar_t **__restrict __endptr) throw (); 8751: 8751: 8751: 8751: extern float wcstof (const wchar_t *__restrict __nptr, 8751: wchar_t **__restrict __endptr) throw (); 8751: extern long double wcstold (const wchar_t *__restrict __nptr, 8751: wchar_t **__restrict __endptr) throw (); 8751: # 397 "/usr/include/wchar.h" 3 4 8751: extern long int wcstol (const wchar_t *__restrict __nptr, 8751: wchar_t **__restrict __endptr, int __base) throw (); 8751: 8751: 8751: 8751: extern unsigned long int wcstoul (const wchar_t *__restrict __nptr, 8751: wchar_t **__restrict __endptr, int __base) 8751: throw (); 8751: 8751: 8751: 8751: 8751: __extension__ 8751: extern long long int wcstoll (const wchar_t *__restrict __nptr, 8751: wchar_t **__restrict __endptr, int __base) 8751: throw (); 8751: 8751: 8751: 8751: __extension__ 8751: extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr, 8751: wchar_t **__restrict __endptr, 8751: int __base) throw (); 8751: 8751: 8751: 8751: 8751: 8751: __extension__ 8751: extern long long int wcstoq (const wchar_t *__restrict __nptr, 8751: wchar_t **__restrict __endptr, int __base) 8751: throw (); 8751: 8751: 8751: 8751: __extension__ 8751: extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr, 8751: wchar_t **__restrict __endptr, 8751: int __base) throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern long int wcstol_l (const wchar_t *__restrict __nptr, 8751: wchar_t **__restrict __endptr, int __base, 8751: locale_t __loc) throw (); 8751: 8751: extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr, 8751: wchar_t **__restrict __endptr, 8751: int __base, locale_t __loc) throw (); 8751: 8751: __extension__ 8751: extern long long int wcstoll_l (const wchar_t *__restrict __nptr, 8751: wchar_t **__restrict __endptr, 8751: int __base, locale_t __loc) throw (); 8751: 8751: __extension__ 8751: extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr, 8751: wchar_t **__restrict __endptr, 8751: int __base, locale_t __loc) 8751: throw (); 8751: 8751: extern double wcstod_l (const wchar_t *__restrict __nptr, 8751: wchar_t **__restrict __endptr, locale_t __loc) 8751: throw (); 8751: 8751: extern float wcstof_l (const wchar_t *__restrict __nptr, 8751: wchar_t **__restrict __endptr, locale_t __loc) 8751: throw (); 8751: 8751: extern long double wcstold_l (const wchar_t *__restrict __nptr, 8751: wchar_t **__restrict __endptr, 8751: locale_t __loc) throw (); 8751: # 484 "/usr/include/wchar.h" 3 4 8751: extern wchar_t *wcpcpy (wchar_t *__restrict __dest, 8751: const wchar_t *__restrict __src) throw (); 8751: 8751: 8751: 8751: extern wchar_t *wcpncpy (wchar_t *__restrict __dest, 8751: const wchar_t *__restrict __src, size_t __n) 8751: throw (); 8751: # 500 "/usr/include/wchar.h" 3 4 8751: extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw (); 8751: 8751: 8751: 8751: 8751: 8751: extern int fwide (__FILE *__fp, int __mode) throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int fwprintf (__FILE *__restrict __stream, 8751: const wchar_t *__restrict __format, ...) 8751: ; 8751: 8751: 8751: 8751: 8751: extern int wprintf (const wchar_t *__restrict __format, ...) 8751: ; 8751: 8751: extern int swprintf (wchar_t *__restrict __s, size_t __n, 8751: const wchar_t *__restrict __format, ...) 8751: throw () ; 8751: 8751: 8751: 8751: 8751: 8751: extern int vfwprintf (__FILE *__restrict __s, 8751: const wchar_t *__restrict __format, 8751: __gnuc_va_list __arg) 8751: ; 8751: 8751: 8751: 8751: 8751: extern int vwprintf (const wchar_t *__restrict __format, 8751: __gnuc_va_list __arg) 8751: ; 8751: 8751: 8751: extern int vswprintf (wchar_t *__restrict __s, size_t __n, 8751: const wchar_t *__restrict __format, 8751: __gnuc_va_list __arg) 8751: throw () ; 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int fwscanf (__FILE *__restrict __stream, 8751: const wchar_t *__restrict __format, ...) 8751: ; 8751: 8751: 8751: 8751: 8751: extern int wscanf (const wchar_t *__restrict __format, ...) 8751: ; 8751: 8751: extern int swscanf (const wchar_t *__restrict __s, 8751: const wchar_t *__restrict __format, ...) 8751: throw () ; 8751: # 606 "/usr/include/wchar.h" 3 4 8751: extern int vfwscanf (__FILE *__restrict __s, 8751: const wchar_t *__restrict __format, 8751: __gnuc_va_list __arg) 8751: ; 8751: 8751: 8751: 8751: 8751: extern int vwscanf (const wchar_t *__restrict __format, 8751: __gnuc_va_list __arg) 8751: ; 8751: 8751: extern int vswscanf (const wchar_t *__restrict __s, 8751: const wchar_t *__restrict __format, 8751: __gnuc_va_list __arg) 8751: throw () ; 8751: # 660 "/usr/include/wchar.h" 3 4 8751: extern wint_t fgetwc (__FILE *__stream); 8751: extern wint_t getwc (__FILE *__stream); 8751: 8751: 8751: 8751: 8751: 8751: extern wint_t getwchar (void); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern wint_t fputwc (wchar_t __wc, __FILE *__stream); 8751: extern wint_t putwc (wchar_t __wc, __FILE *__stream); 8751: 8751: 8751: 8751: 8751: 8751: extern wint_t putwchar (wchar_t __wc); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, 8751: __FILE *__restrict __stream); 8751: 8751: 8751: 8751: 8751: 8751: extern int fputws (const wchar_t *__restrict __ws, 8751: __FILE *__restrict __stream); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern wint_t ungetwc (wint_t __wc, __FILE *__stream); 8751: # 715 "/usr/include/wchar.h" 3 4 8751: extern wint_t getwc_unlocked (__FILE *__stream); 8751: extern wint_t getwchar_unlocked (void); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern wint_t fgetwc_unlocked (__FILE *__stream); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); 8751: # 741 "/usr/include/wchar.h" 3 4 8751: extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); 8751: extern wint_t putwchar_unlocked (wchar_t __wc); 8751: # 751 "/usr/include/wchar.h" 3 4 8751: extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, 8751: __FILE *__restrict __stream); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int fputws_unlocked (const wchar_t *__restrict __ws, 8751: __FILE *__restrict __stream); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, 8751: const wchar_t *__restrict __format, 8751: const struct tm *__restrict __tp) throw (); 8751: 8751: 8751: 8751: 8751: extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, 8751: const wchar_t *__restrict __format, 8751: const struct tm *__restrict __tp, 8751: locale_t __loc) throw (); 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/wchar2.h" 1 3 4 8751: # 24 "/usr/include/arm-linux-gnueabihf/bits/wchar2.h" 3 4 8751: extern wchar_t *__wmemcpy_chk (wchar_t *__restrict __s1, 8751: const wchar_t *__restrict __s2, size_t __n, 8751: size_t __ns1) throw (); 8751: extern wchar_t *__wmemcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () __asm__ ("" "wmemcpy") 8751: 8751: 8751: ; 8751: 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") 8751: 8751: 8751: 8751: __attribute__((__warning__ ("wmemcpy called with length bigger than size of destination " "buffer"))) 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8751: __attribute__ ((__leaf__)) wmemcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () 8751: 8751: { 8751: if (__builtin_object_size (__s1, 0) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__n)) 8751: return __wmemcpy_chk (__s1, __s2, __n, 8751: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8751: 8751: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 8751: return __wmemcpy_chk_warn (__s1, __s2, __n, 8751: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8751: } 8751: return __wmemcpy_alias (__s1, __s2, __n); 8751: } 8751: 8751: 8751: extern wchar_t *__wmemmove_chk (wchar_t *__s1, const wchar_t *__s2, 8751: size_t __n, size_t __ns1) throw (); 8751: extern wchar_t *__wmemmove_alias (wchar_t *__s1, const wchar_t *__s2, size_t __n) throw () __asm__ ("" "wmemmove") 8751: 8751: ; 8751: extern wchar_t *__wmemmove_chk_warn (wchar_t *__s1, const wchar_t *__s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmemmove_chk") 8751: 8751: 8751: __attribute__((__warning__ ("wmemmove called with length bigger than size of destination " "buffer"))) 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8751: __attribute__ ((__leaf__)) wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) throw () 8751: { 8751: if (__builtin_object_size (__s1, 0) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__n)) 8751: return __wmemmove_chk (__s1, __s2, __n, 8751: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8751: 8751: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 8751: return __wmemmove_chk_warn (__s1, __s2, __n, 8751: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8751: } 8751: return __wmemmove_alias (__s1, __s2, __n); 8751: } 8751: 8751: 8751: 8751: extern wchar_t *__wmempcpy_chk (wchar_t *__restrict __s1, 8751: const wchar_t *__restrict __s2, size_t __n, 8751: size_t __ns1) throw (); 8751: extern wchar_t *__wmempcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () __asm__ ("" "wmempcpy") 8751: 8751: 8751: ; 8751: 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") 8751: 8751: 8751: 8751: __attribute__((__warning__ ("wmempcpy called with length bigger than size of destination " "buffer"))) 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8751: __attribute__ ((__leaf__)) wmempcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () 8751: 8751: { 8751: if (__builtin_object_size (__s1, 0) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__n)) 8751: return __wmempcpy_chk (__s1, __s2, __n, 8751: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8751: 8751: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 8751: return __wmempcpy_chk_warn (__s1, __s2, __n, 8751: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8751: } 8751: return __wmempcpy_alias (__s1, __s2, __n); 8751: } 8751: 8751: 8751: 8751: extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n, 8751: size_t __ns) throw (); 8751: extern wchar_t *__wmemset_alias (wchar_t *__s, wchar_t __c, size_t __n) throw () __asm__ ("" "wmemset") 8751: ; 8751: extern wchar_t *__wmemset_chk_warn (wchar_t *__s, wchar_t __c, size_t __n, size_t __ns) throw () __asm__ ("" "__wmemset_chk") 8751: 8751: 8751: __attribute__((__warning__ ("wmemset called with length bigger than size of destination " "buffer"))) 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8751: __attribute__ ((__leaf__)) wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw () 8751: { 8751: if (__builtin_object_size (__s, 0) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__n)) 8751: return __wmemset_chk (__s, __c, __n, __builtin_object_size (__s, 0) / sizeof (wchar_t)); 8751: 8751: if (__n > __builtin_object_size (__s, 0) / sizeof (wchar_t)) 8751: return __wmemset_chk_warn (__s, __c, __n, 8751: __builtin_object_size (__s, 0) / sizeof (wchar_t)); 8751: } 8751: return __wmemset_alias (__s, __c, __n); 8751: } 8751: 8751: 8751: extern wchar_t *__wcscpy_chk (wchar_t *__restrict __dest, 8751: const wchar_t *__restrict __src, 8751: size_t __n) throw (); 8751: extern wchar_t *__wcscpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcscpy") 8751: 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8751: __attribute__ ((__leaf__)) wcscpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 8751: { 8751: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8751: return __wcscpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8751: return __wcscpy_alias (__dest, __src); 8751: } 8751: 8751: 8751: extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest, 8751: const wchar_t *__restrict __src, 8751: size_t __destlen) throw (); 8751: extern wchar_t *__wcpcpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcpcpy") 8751: 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8751: __attribute__ ((__leaf__)) wcpcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 8751: { 8751: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8751: return __wcpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8751: return __wcpcpy_alias (__dest, __src); 8751: } 8751: 8751: 8751: extern wchar_t *__wcsncpy_chk (wchar_t *__restrict __dest, 8751: const wchar_t *__restrict __src, size_t __n, 8751: size_t __destlen) throw (); 8751: extern wchar_t *__wcsncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcsncpy") 8751: 8751: 8751: ; 8751: 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") 8751: 8751: 8751: 8751: __attribute__((__warning__ ("wcsncpy called with length bigger than size of destination " "buffer"))) 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8751: __attribute__ ((__leaf__)) wcsncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 8751: 8751: { 8751: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__n)) 8751: return __wcsncpy_chk (__dest, __src, __n, 8751: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8751: if (__n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) 8751: return __wcsncpy_chk_warn (__dest, __src, __n, 8751: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8751: } 8751: return __wcsncpy_alias (__dest, __src, __n); 8751: } 8751: 8751: 8751: extern wchar_t *__wcpncpy_chk (wchar_t *__restrict __dest, 8751: const wchar_t *__restrict __src, size_t __n, 8751: size_t __destlen) throw (); 8751: extern wchar_t *__wcpncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcpncpy") 8751: 8751: 8751: ; 8751: 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") 8751: 8751: 8751: 8751: __attribute__((__warning__ ("wcpncpy called with length bigger than size of destination " "buffer"))) 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8751: __attribute__ ((__leaf__)) wcpncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 8751: 8751: { 8751: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__n)) 8751: return __wcpncpy_chk (__dest, __src, __n, 8751: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8751: if (__n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) 8751: return __wcpncpy_chk_warn (__dest, __src, __n, 8751: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8751: } 8751: return __wcpncpy_alias (__dest, __src, __n); 8751: } 8751: 8751: 8751: extern wchar_t *__wcscat_chk (wchar_t *__restrict __dest, 8751: const wchar_t *__restrict __src, 8751: size_t __destlen) throw (); 8751: extern wchar_t *__wcscat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcscat") 8751: 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8751: __attribute__ ((__leaf__)) wcscat (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 8751: { 8751: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8751: return __wcscat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8751: return __wcscat_alias (__dest, __src); 8751: } 8751: 8751: 8751: extern wchar_t *__wcsncat_chk (wchar_t *__restrict __dest, 8751: const wchar_t *__restrict __src, 8751: size_t __n, size_t __destlen) throw (); 8751: extern wchar_t *__wcsncat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcsncat") 8751: 8751: 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8751: __attribute__ ((__leaf__)) wcsncat (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 8751: 8751: { 8751: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8751: return __wcsncat_chk (__dest, __src, __n, 8751: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8751: return __wcsncat_alias (__dest, __src, __n); 8751: } 8751: 8751: 8751: extern int __swprintf_chk (wchar_t *__restrict __s, size_t __n, 8751: int __flag, size_t __s_len, 8751: const wchar_t *__restrict __format, ...) 8751: throw () ; 8751: 8751: extern int __swprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) throw () __asm__ ("" "swprintf") 8751: 8751: 8751: ; 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: __attribute__ ((__leaf__)) swprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) throw () 8751: 8751: { 8751: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 || 2 > 1) 8751: return __swprintf_chk (__s, __n, 2 - 1, 8751: __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8751: __fmt, __builtin_va_arg_pack ()); 8751: return __swprintf_alias (__s, __n, __fmt, __builtin_va_arg_pack ()); 8751: } 8751: # 303 "/usr/include/arm-linux-gnueabihf/bits/wchar2.h" 3 4 8751: extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n, 8751: int __flag, size_t __s_len, 8751: const wchar_t *__restrict __format, 8751: __gnuc_va_list __arg) 8751: throw () ; 8751: 8751: extern int __vswprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) throw () __asm__ ("" "vswprintf") 8751: 8751: 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: __attribute__ ((__leaf__)) vswprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) throw () 8751: 8751: { 8751: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 || 2 > 1) 8751: return __vswprintf_chk (__s, __n, 2 - 1, 8751: __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), __fmt, __ap); 8751: return __vswprintf_alias (__s, __n, __fmt, __ap); 8751: } 8751: 8751: 8751: 8751: 8751: extern int __fwprintf_chk (__FILE *__restrict __stream, int __flag, 8751: const wchar_t *__restrict __format, ...); 8751: extern int __wprintf_chk (int __flag, const wchar_t *__restrict __format, 8751: ...); 8751: extern int __vfwprintf_chk (__FILE *__restrict __stream, int __flag, 8751: const wchar_t *__restrict __format, 8751: __gnuc_va_list __ap); 8751: extern int __vwprintf_chk (int __flag, const wchar_t *__restrict __format, 8751: __gnuc_va_list __ap); 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: wprintf (const wchar_t *__restrict __fmt, ...) 8751: { 8751: return __wprintf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 8751: } 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: fwprintf (__FILE *__restrict __stream, const wchar_t *__restrict __fmt, ...) 8751: { 8751: return __fwprintf_chk (__stream, 2 - 1, __fmt, 8751: __builtin_va_arg_pack ()); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: vwprintf (const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 8751: { 8751: return __vwprintf_chk (2 - 1, __fmt, __ap); 8751: } 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: vfwprintf (__FILE *__restrict __stream, 8751: const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 8751: { 8751: return __vfwprintf_chk (__stream, 2 - 1, __fmt, __ap); 8751: } 8751: 8751: 8751: 8751: extern wchar_t *__fgetws_chk (wchar_t *__restrict __s, size_t __size, int __n, 8751: __FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8751: extern wchar_t *__fgetws_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws") 8751: 8751: __attribute__ ((__warn_unused_result__)); 8751: extern wchar_t *__fgetws_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_chk") 8751: 8751: 8751: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws called with bigger size than length " "of destination buffer"))) 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 8751: fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) 8751: { 8751: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__n) || __n <= 0) 8751: return __fgetws_chk (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8751: __n, __stream); 8751: 8751: if ((size_t) __n > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t)) 8751: return __fgetws_chk_warn (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8751: __n, __stream); 8751: } 8751: return __fgetws_alias (__s, __n, __stream); 8751: } 8751: 8751: 8751: extern wchar_t *__fgetws_unlocked_chk (wchar_t *__restrict __s, size_t __size, 8751: int __n, __FILE *__restrict __stream) 8751: __attribute__ ((__warn_unused_result__)); 8751: extern wchar_t *__fgetws_unlocked_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws_unlocked") 8751: 8751: 8751: __attribute__ ((__warn_unused_result__)); 8751: extern wchar_t *__fgetws_unlocked_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_unlocked_chk") 8751: 8751: 8751: 8751: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws_unlocked called with bigger size than length " "of destination buffer"))) 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 8751: fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) 8751: { 8751: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__n) || __n <= 0) 8751: return __fgetws_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8751: __n, __stream); 8751: 8751: if ((size_t) __n > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t)) 8751: return __fgetws_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8751: __n, __stream); 8751: } 8751: return __fgetws_unlocked_alias (__s, __n, __stream); 8751: } 8751: 8751: 8751: 8751: extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar, 8751: mbstate_t *__restrict __p, 8751: size_t __buflen) throw () __attribute__ ((__warn_unused_result__)); 8751: extern size_t __wcrtomb_alias (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcrtomb") 8751: 8751: __attribute__ ((__warn_unused_result__)); 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 8751: __attribute__ ((__leaf__)) wcrtomb (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) throw () 8751: 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) 8751: return __wcrtomb_chk (__s, __wchar, __ps, __builtin_object_size (__s, 2 > 1)); 8751: return __wcrtomb_alias (__s, __wchar, __ps); 8751: } 8751: 8751: 8751: extern size_t __mbsrtowcs_chk (wchar_t *__restrict __dst, 8751: const char **__restrict __src, 8751: size_t __len, mbstate_t *__restrict __ps, 8751: size_t __dstlen) throw (); 8751: extern size_t __mbsrtowcs_alias (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "mbsrtowcs") 8751: 8751: 8751: 8751: ; 8751: 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") 8751: 8751: 8751: 8751: 8751: __attribute__((__warning__ ("mbsrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8751: __attribute__ ((__leaf__)) mbsrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () 8751: 8751: { 8751: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__len)) 8751: return __mbsrtowcs_chk (__dst, __src, __len, __ps, 8751: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8751: 8751: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 8751: return __mbsrtowcs_chk_warn (__dst, __src, __len, __ps, 8751: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8751: } 8751: return __mbsrtowcs_alias (__dst, __src, __len, __ps); 8751: } 8751: 8751: 8751: extern size_t __wcsrtombs_chk (char *__restrict __dst, 8751: const wchar_t **__restrict __src, 8751: size_t __len, mbstate_t *__restrict __ps, 8751: size_t __dstlen) throw (); 8751: extern size_t __wcsrtombs_alias (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcsrtombs") 8751: 8751: 8751: 8751: ; 8751: 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") 8751: 8751: 8751: 8751: 8751: __attribute__((__warning__ ("wcsrtombs called with dst buffer smaller than len"))); 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8751: __attribute__ ((__leaf__)) wcsrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () 8751: 8751: { 8751: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__len)) 8751: return __wcsrtombs_chk (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)); 8751: 8751: if (__len > __builtin_object_size (__dst, 2 > 1)) 8751: return __wcsrtombs_chk_warn (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)); 8751: } 8751: return __wcsrtombs_alias (__dst, __src, __len, __ps); 8751: } 8751: 8751: 8751: 8751: extern size_t __mbsnrtowcs_chk (wchar_t *__restrict __dst, 8751: const char **__restrict __src, size_t __nmc, 8751: size_t __len, mbstate_t *__restrict __ps, 8751: size_t __dstlen) throw (); 8751: 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") 8751: 8751: 8751: 8751: ; 8751: 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") 8751: 8751: 8751: 8751: 8751: __attribute__((__warning__ ("mbsnrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8751: __attribute__ ((__leaf__)) mbsnrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw () 8751: 8751: { 8751: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__len)) 8751: return __mbsnrtowcs_chk (__dst, __src, __nmc, __len, __ps, 8751: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8751: 8751: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 8751: return __mbsnrtowcs_chk_warn (__dst, __src, __nmc, __len, __ps, 8751: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8751: } 8751: return __mbsnrtowcs_alias (__dst, __src, __nmc, __len, __ps); 8751: } 8751: 8751: 8751: extern size_t __wcsnrtombs_chk (char *__restrict __dst, 8751: const wchar_t **__restrict __src, 8751: size_t __nwc, size_t __len, 8751: mbstate_t *__restrict __ps, size_t __dstlen) 8751: throw (); 8751: 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") 8751: 8751: 8751: 8751: ; 8751: 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") 8751: 8751: 8751: 8751: 8751: 8751: __attribute__((__warning__ ("wcsnrtombs called with dst buffer smaller than len"))); 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8751: __attribute__ ((__leaf__)) wcsnrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw () 8751: 8751: { 8751: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__len)) 8751: return __wcsnrtombs_chk (__dst, __src, __nwc, __len, __ps, 8751: __builtin_object_size (__dst, 2 > 1)); 8751: 8751: if (__len > __builtin_object_size (__dst, 2 > 1)) 8751: return __wcsnrtombs_chk_warn (__dst, __src, __nwc, __len, __ps, 8751: __builtin_object_size (__dst, 2 > 1)); 8751: } 8751: return __wcsnrtombs_alias (__dst, __src, __nwc, __len, __ps); 8751: } 8751: # 784 "/usr/include/wchar.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: } 8751: # 45 "/usr/include/c++/8/cwchar" 2 3 8751: # 62 "/usr/include/c++/8/cwchar" 3 8751: namespace std 8751: { 8751: using ::mbstate_t; 8751: } 8751: # 135 "/usr/include/c++/8/cwchar" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: using ::wint_t; 8751: 8751: using ::btowc; 8751: using ::fgetwc; 8751: using ::fgetws; 8751: using ::fputwc; 8751: using ::fputws; 8751: using ::fwide; 8751: using ::fwprintf; 8751: using ::fwscanf; 8751: using ::getwc; 8751: using ::getwchar; 8751: using ::mbrlen; 8751: using ::mbrtowc; 8751: using ::mbsinit; 8751: using ::mbsrtowcs; 8751: using ::putwc; 8751: using ::putwchar; 8751: 8751: using ::swprintf; 8751: 8751: using ::swscanf; 8751: using ::ungetwc; 8751: using ::vfwprintf; 8751: 8751: using ::vfwscanf; 8751: 8751: 8751: using ::vswprintf; 8751: 8751: 8751: using ::vswscanf; 8751: 8751: using ::vwprintf; 8751: 8751: using ::vwscanf; 8751: 8751: using ::wcrtomb; 8751: using ::wcscat; 8751: using ::wcscmp; 8751: using ::wcscoll; 8751: using ::wcscpy; 8751: using ::wcscspn; 8751: using ::wcsftime; 8751: using ::wcslen; 8751: using ::wcsncat; 8751: using ::wcsncmp; 8751: using ::wcsncpy; 8751: using ::wcsrtombs; 8751: using ::wcsspn; 8751: using ::wcstod; 8751: 8751: using ::wcstof; 8751: 8751: using ::wcstok; 8751: using ::wcstol; 8751: using ::wcstoul; 8751: using ::wcsxfrm; 8751: using ::wctob; 8751: using ::wmemcmp; 8751: using ::wmemcpy; 8751: using ::wmemmove; 8751: using ::wmemset; 8751: using ::wprintf; 8751: using ::wscanf; 8751: using ::wcschr; 8751: using ::wcspbrk; 8751: using ::wcsrchr; 8751: using ::wcsstr; 8751: using ::wmemchr; 8751: # 232 "/usr/include/c++/8/cwchar" 3 8751: 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: namespace __gnu_cxx 8751: { 8751: 8751: 8751: 8751: 8751: 8751: using ::wcstold; 8751: # 257 "/usr/include/c++/8/cwchar" 3 8751: using ::wcstoll; 8751: using ::wcstoull; 8751: 8751: } 8751: 8751: namespace std 8751: { 8751: using ::__gnu_cxx::wcstold; 8751: using ::__gnu_cxx::wcstoll; 8751: using ::__gnu_cxx::wcstoull; 8751: } 8751: # 277 "/usr/include/c++/8/cwchar" 3 8751: namespace std 8751: { 8751: 8751: using std::wcstof; 8751: 8751: 8751: using std::vfwscanf; 8751: 8751: 8751: using std::vswscanf; 8751: 8751: 8751: using std::vwscanf; 8751: 8751: 8751: 8751: using std::wcstold; 8751: using std::wcstoll; 8751: using std::wcstoull; 8751: 8751: } 8751: # 41 "/usr/include/c++/8/bits/postypes.h" 2 3 8751: # 68 "/usr/include/c++/8/bits/postypes.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 90 "/usr/include/c++/8/bits/postypes.h" 3 8751: typedef long long streamoff; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef ptrdiff_t streamsize; 8751: # 111 "/usr/include/c++/8/bits/postypes.h" 3 8751: template 8751: class fpos 8751: { 8751: private: 8751: streamoff _M_off; 8751: _StateT _M_state; 8751: 8751: public: 8751: 8751: 8751: 8751: 8751: fpos() 8751: : _M_off(0), _M_state() { } 8751: # 133 "/usr/include/c++/8/bits/postypes.h" 3 8751: fpos(streamoff __off) 8751: : _M_off(__off), _M_state() { } 8751: 8751: 8751: operator streamoff() const { return _M_off; } 8751: 8751: 8751: void 8751: state(_StateT __st) 8751: { _M_state = __st; } 8751: 8751: 8751: _StateT 8751: state() const 8751: { return _M_state; } 8751: 8751: 8751: 8751: 8751: 8751: fpos& 8751: operator+=(streamoff __off) 8751: { 8751: _M_off += __off; 8751: return *this; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: fpos& 8751: operator-=(streamoff __off) 8751: { 8751: _M_off -= __off; 8751: return *this; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: fpos 8751: operator+(streamoff __off) const 8751: { 8751: fpos __pos(*this); 8751: __pos += __off; 8751: return __pos; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: fpos 8751: operator-(streamoff __off) const 8751: { 8751: fpos __pos(*this); 8751: __pos -= __off; 8751: return __pos; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: streamoff 8751: operator-(const fpos& __other) const 8751: { return _M_off - __other._M_off; } 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline bool 8751: operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 8751: { return streamoff(__lhs) == streamoff(__rhs); } 8751: 8751: template 8751: inline bool 8751: operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 8751: { return streamoff(__lhs) != streamoff(__rhs); } 8751: 8751: 8751: 8751: 8751: 8751: typedef fpos streampos; 8751: 8751: typedef fpos wstreampos; 8751: 8751: 8751: 8751: typedef fpos u16streampos; 8751: 8751: typedef fpos u32streampos; 8751: 8751: 8751: 8751: } 8751: # 41 "/usr/include/c++/8/bits/char_traits.h" 2 3 8751: # 1 "/usr/include/c++/8/cwchar" 1 3 8751: # 39 "/usr/include/c++/8/cwchar" 3 8751: 8751: # 40 "/usr/include/c++/8/cwchar" 3 8751: # 42 "/usr/include/c++/8/bits/char_traits.h" 2 3 8751: 8751: 8751: 8751: 8751: 8751: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 61 "/usr/include/c++/8/bits/char_traits.h" 3 8751: template 8751: struct _Char_types 8751: { 8751: typedef unsigned long int_type; 8751: typedef std::streampos pos_type; 8751: typedef std::streamoff off_type; 8751: typedef std::mbstate_t state_type; 8751: }; 8751: # 86 "/usr/include/c++/8/bits/char_traits.h" 3 8751: template 8751: struct char_traits 8751: { 8751: typedef _CharT char_type; 8751: typedef typename _Char_types<_CharT>::int_type int_type; 8751: typedef typename _Char_types<_CharT>::pos_type pos_type; 8751: typedef typename _Char_types<_CharT>::off_type off_type; 8751: typedef typename _Char_types<_CharT>::state_type state_type; 8751: 8751: static void 8751: assign(char_type& __c1, const char_type& __c2) 8751: { __c1 = __c2; } 8751: 8751: static constexpr bool 8751: eq(const char_type& __c1, const char_type& __c2) 8751: { return __c1 == __c2; } 8751: 8751: static constexpr bool 8751: lt(const char_type& __c1, const char_type& __c2) 8751: { return __c1 < __c2; } 8751: 8751: static int 8751: compare(const char_type* __s1, const char_type* __s2, std::size_t __n); 8751: 8751: static std::size_t 8751: length(const char_type* __s); 8751: 8751: static const char_type* 8751: find(const char_type* __s, std::size_t __n, const char_type& __a); 8751: 8751: static char_type* 8751: move(char_type* __s1, const char_type* __s2, std::size_t __n); 8751: 8751: static char_type* 8751: copy(char_type* __s1, const char_type* __s2, std::size_t __n); 8751: 8751: static char_type* 8751: assign(char_type* __s, std::size_t __n, char_type __a); 8751: 8751: static constexpr char_type 8751: to_char_type(const int_type& __c) 8751: { return static_cast(__c); } 8751: 8751: static constexpr int_type 8751: to_int_type(const char_type& __c) 8751: { return static_cast(__c); } 8751: 8751: static constexpr bool 8751: eq_int_type(const int_type& __c1, const int_type& __c2) 8751: { return __c1 == __c2; } 8751: 8751: static constexpr int_type 8751: eof() 8751: { return static_cast(-1); } 8751: 8751: static constexpr int_type 8751: not_eof(const int_type& __c) 8751: { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); } 8751: }; 8751: 8751: 8751: 8751: template 8751: int 8751: char_traits<_CharT>:: 8751: compare(const char_type* __s1, const char_type* __s2, std::size_t __n) 8751: { 8751: for (std::size_t __i = 0; __i < __n; ++__i) 8751: if (lt(__s1[__i], __s2[__i])) 8751: return -1; 8751: else if (lt(__s2[__i], __s1[__i])) 8751: return 1; 8751: return 0; 8751: } 8751: 8751: template 8751: std::size_t 8751: char_traits<_CharT>:: 8751: length(const char_type* __p) 8751: { 8751: std::size_t __i = 0; 8751: while (!eq(__p[__i], char_type())) 8751: ++__i; 8751: return __i; 8751: } 8751: 8751: template 8751: const typename char_traits<_CharT>::char_type* 8751: char_traits<_CharT>:: 8751: find(const char_type* __s, std::size_t __n, const char_type& __a) 8751: { 8751: for (std::size_t __i = 0; __i < __n; ++__i) 8751: if (eq(__s[__i], __a)) 8751: return __s + __i; 8751: return 0; 8751: } 8751: 8751: template 8751: typename char_traits<_CharT>::char_type* 8751: char_traits<_CharT>:: 8751: move(char_type* __s1, const char_type* __s2, std::size_t __n) 8751: { 8751: return static_cast<_CharT*>(__builtin_memmove(__s1, __s2, 8751: __n * sizeof(char_type))); 8751: } 8751: 8751: template 8751: typename char_traits<_CharT>::char_type* 8751: char_traits<_CharT>:: 8751: copy(char_type* __s1, const char_type* __s2, std::size_t __n) 8751: { 8751: 8751: std::copy(__s2, __s2 + __n, __s1); 8751: return __s1; 8751: } 8751: 8751: template 8751: typename char_traits<_CharT>::char_type* 8751: char_traits<_CharT>:: 8751: assign(char_type* __s, std::size_t __n, char_type __a) 8751: { 8751: 8751: std::fill_n(__s, __n, __a); 8751: return __s; 8751: } 8751: 8751: 8751: } 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 268 "/usr/include/c++/8/bits/char_traits.h" 3 8751: template 8751: struct char_traits : public __gnu_cxx::char_traits<_CharT> 8751: { }; 8751: 8751: 8751: 8751: template<> 8751: struct char_traits 8751: { 8751: typedef char char_type; 8751: typedef int int_type; 8751: typedef streampos pos_type; 8751: typedef streamoff off_type; 8751: typedef mbstate_t state_type; 8751: 8751: static void 8751: assign(char_type& __c1, const char_type& __c2) noexcept 8751: { __c1 = __c2; } 8751: 8751: static constexpr bool 8751: eq(const char_type& __c1, const char_type& __c2) noexcept 8751: { return __c1 == __c2; } 8751: 8751: static constexpr bool 8751: lt(const char_type& __c1, const char_type& __c2) noexcept 8751: { 8751: 8751: return (static_cast(__c1) 8751: < static_cast(__c2)); 8751: } 8751: 8751: static int 8751: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: if (__n == 0) 8751: return 0; 8751: return __builtin_memcmp(__s1, __s2, __n); 8751: } 8751: 8751: static size_t 8751: length(const char_type* __s) 8751: { 8751: 8751: 8751: 8751: 8751: return __builtin_strlen(__s); 8751: } 8751: 8751: static const char_type* 8751: find(const char_type* __s, size_t __n, const char_type& __a) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: if (__n == 0) 8751: return 0; 8751: return static_cast(__builtin_memchr(__s, __a, __n)); 8751: } 8751: 8751: static char_type* 8751: move(char_type* __s1, const char_type* __s2, size_t __n) 8751: { 8751: if (__n == 0) 8751: return __s1; 8751: return static_cast(__builtin_memmove(__s1, __s2, __n)); 8751: } 8751: 8751: static char_type* 8751: copy(char_type* __s1, const char_type* __s2, size_t __n) 8751: { 8751: if (__n == 0) 8751: return __s1; 8751: return static_cast(__builtin_memcpy(__s1, __s2, __n)); 8751: } 8751: 8751: static char_type* 8751: assign(char_type* __s, size_t __n, char_type __a) 8751: { 8751: if (__n == 0) 8751: return __s; 8751: return static_cast(__builtin_memset(__s, __a, __n)); 8751: } 8751: 8751: static constexpr char_type 8751: to_char_type(const int_type& __c) noexcept 8751: { return static_cast(__c); } 8751: 8751: 8751: 8751: static constexpr int_type 8751: to_int_type(const char_type& __c) noexcept 8751: { return static_cast(static_cast(__c)); } 8751: 8751: static constexpr bool 8751: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8751: { return __c1 == __c2; } 8751: 8751: static constexpr int_type 8751: eof() noexcept 8751: { return static_cast(-1); } 8751: 8751: static constexpr int_type 8751: not_eof(const int_type& __c) noexcept 8751: { return (__c == eof()) ? 0 : __c; } 8751: }; 8751: 8751: 8751: 8751: 8751: template<> 8751: struct char_traits 8751: { 8751: typedef wchar_t char_type; 8751: typedef wint_t int_type; 8751: typedef streamoff off_type; 8751: typedef wstreampos pos_type; 8751: typedef mbstate_t state_type; 8751: 8751: static void 8751: assign(char_type& __c1, const char_type& __c2) noexcept 8751: { __c1 = __c2; } 8751: 8751: static constexpr bool 8751: eq(const char_type& __c1, const char_type& __c2) noexcept 8751: { return __c1 == __c2; } 8751: 8751: static constexpr bool 8751: lt(const char_type& __c1, const char_type& __c2) noexcept 8751: { return __c1 < __c2; } 8751: 8751: static int 8751: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: if (__n == 0) 8751: return 0; 8751: else 8751: return wmemcmp(__s1, __s2, __n); 8751: } 8751: 8751: static size_t 8751: length(const char_type* __s) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: return wcslen(__s); 8751: } 8751: 8751: static const char_type* 8751: find(const char_type* __s, size_t __n, const char_type& __a) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: if (__n == 0) 8751: return 0; 8751: else 8751: return wmemchr(__s, __a, __n); 8751: } 8751: 8751: static char_type* 8751: move(char_type* __s1, const char_type* __s2, size_t __n) 8751: { 8751: if (__n == 0) 8751: return __s1; 8751: return wmemmove(__s1, __s2, __n); 8751: } 8751: 8751: static char_type* 8751: copy(char_type* __s1, const char_type* __s2, size_t __n) 8751: { 8751: if (__n == 0) 8751: return __s1; 8751: return wmemcpy(__s1, __s2, __n); 8751: } 8751: 8751: static char_type* 8751: assign(char_type* __s, size_t __n, char_type __a) 8751: { 8751: if (__n == 0) 8751: return __s; 8751: return wmemset(__s, __a, __n); 8751: } 8751: 8751: static constexpr char_type 8751: to_char_type(const int_type& __c) noexcept 8751: { return char_type(__c); } 8751: 8751: static constexpr int_type 8751: to_int_type(const char_type& __c) noexcept 8751: { return int_type(__c); } 8751: 8751: static constexpr bool 8751: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8751: { return __c1 == __c2; } 8751: 8751: static constexpr int_type 8751: eof() noexcept 8751: { return static_cast((0xffffffffu)); } 8751: 8751: static constexpr int_type 8751: not_eof(const int_type& __c) noexcept 8751: { return eq_int_type(__c, eof()) ? 0 : __c; } 8751: }; 8751: 8751: 8751: 8751: } 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/cstdint" 1 3 8751: # 32 "/usr/include/c++/8/cstdint" 3 8751: 8751: # 33 "/usr/include/c++/8/cstdint" 3 8751: # 46 "/usr/include/c++/8/cstdint" 3 8751: namespace std 8751: { 8751: using ::int8_t; 8751: using ::int16_t; 8751: using ::int32_t; 8751: using ::int64_t; 8751: 8751: using ::int_fast8_t; 8751: using ::int_fast16_t; 8751: using ::int_fast32_t; 8751: using ::int_fast64_t; 8751: 8751: using ::int_least8_t; 8751: using ::int_least16_t; 8751: using ::int_least32_t; 8751: using ::int_least64_t; 8751: 8751: using ::intmax_t; 8751: using ::intptr_t; 8751: 8751: using ::uint8_t; 8751: using ::uint16_t; 8751: using ::uint32_t; 8751: using ::uint64_t; 8751: 8751: using ::uint_fast8_t; 8751: using ::uint_fast16_t; 8751: using ::uint_fast32_t; 8751: using ::uint_fast64_t; 8751: 8751: using ::uint_least8_t; 8751: using ::uint_least16_t; 8751: using ::uint_least32_t; 8751: using ::uint_least64_t; 8751: 8751: using ::uintmax_t; 8751: using ::uintptr_t; 8751: } 8751: # 502 "/usr/include/c++/8/bits/char_traits.h" 2 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: template<> 8751: struct char_traits 8751: { 8751: typedef char16_t char_type; 8751: typedef uint_least16_t int_type; 8751: typedef streamoff off_type; 8751: typedef u16streampos pos_type; 8751: typedef mbstate_t state_type; 8751: 8751: static void 8751: assign(char_type& __c1, const char_type& __c2) noexcept 8751: { __c1 = __c2; } 8751: 8751: static constexpr bool 8751: eq(const char_type& __c1, const char_type& __c2) noexcept 8751: { return __c1 == __c2; } 8751: 8751: static constexpr bool 8751: lt(const char_type& __c1, const char_type& __c2) noexcept 8751: { return __c1 < __c2; } 8751: 8751: static int 8751: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8751: { 8751: for (size_t __i = 0; __i < __n; ++__i) 8751: if (lt(__s1[__i], __s2[__i])) 8751: return -1; 8751: else if (lt(__s2[__i], __s1[__i])) 8751: return 1; 8751: return 0; 8751: } 8751: 8751: static size_t 8751: length(const char_type* __s) 8751: { 8751: size_t __i = 0; 8751: while (!eq(__s[__i], char_type())) 8751: ++__i; 8751: return __i; 8751: } 8751: 8751: static const char_type* 8751: find(const char_type* __s, size_t __n, const char_type& __a) 8751: { 8751: for (size_t __i = 0; __i < __n; ++__i) 8751: if (eq(__s[__i], __a)) 8751: return __s + __i; 8751: return 0; 8751: } 8751: 8751: static char_type* 8751: move(char_type* __s1, const char_type* __s2, size_t __n) 8751: { 8751: if (__n == 0) 8751: return __s1; 8751: return (static_cast 8751: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 8751: } 8751: 8751: static char_type* 8751: copy(char_type* __s1, const char_type* __s2, size_t __n) 8751: { 8751: if (__n == 0) 8751: return __s1; 8751: return (static_cast 8751: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 8751: } 8751: 8751: static char_type* 8751: assign(char_type* __s, size_t __n, char_type __a) 8751: { 8751: for (size_t __i = 0; __i < __n; ++__i) 8751: assign(__s[__i], __a); 8751: return __s; 8751: } 8751: 8751: static constexpr char_type 8751: to_char_type(const int_type& __c) noexcept 8751: { return char_type(__c); } 8751: 8751: static constexpr int_type 8751: to_int_type(const char_type& __c) noexcept 8751: { return __c == eof() ? int_type(0xfffd) : int_type(__c); } 8751: 8751: static constexpr bool 8751: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8751: { return __c1 == __c2; } 8751: 8751: static constexpr int_type 8751: eof() noexcept 8751: { return static_cast(-1); } 8751: 8751: static constexpr int_type 8751: not_eof(const int_type& __c) noexcept 8751: { return eq_int_type(__c, eof()) ? 0 : __c; } 8751: }; 8751: 8751: template<> 8751: struct char_traits 8751: { 8751: typedef char32_t char_type; 8751: typedef uint_least32_t int_type; 8751: typedef streamoff off_type; 8751: typedef u32streampos pos_type; 8751: typedef mbstate_t state_type; 8751: 8751: static void 8751: assign(char_type& __c1, const char_type& __c2) noexcept 8751: { __c1 = __c2; } 8751: 8751: static constexpr bool 8751: eq(const char_type& __c1, const char_type& __c2) noexcept 8751: { return __c1 == __c2; } 8751: 8751: static constexpr bool 8751: lt(const char_type& __c1, const char_type& __c2) noexcept 8751: { return __c1 < __c2; } 8751: 8751: static int 8751: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8751: { 8751: for (size_t __i = 0; __i < __n; ++__i) 8751: if (lt(__s1[__i], __s2[__i])) 8751: return -1; 8751: else if (lt(__s2[__i], __s1[__i])) 8751: return 1; 8751: return 0; 8751: } 8751: 8751: static size_t 8751: length(const char_type* __s) 8751: { 8751: size_t __i = 0; 8751: while (!eq(__s[__i], char_type())) 8751: ++__i; 8751: return __i; 8751: } 8751: 8751: static const char_type* 8751: find(const char_type* __s, size_t __n, const char_type& __a) 8751: { 8751: for (size_t __i = 0; __i < __n; ++__i) 8751: if (eq(__s[__i], __a)) 8751: return __s + __i; 8751: return 0; 8751: } 8751: 8751: static char_type* 8751: move(char_type* __s1, const char_type* __s2, size_t __n) 8751: { 8751: if (__n == 0) 8751: return __s1; 8751: return (static_cast 8751: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 8751: } 8751: 8751: static char_type* 8751: copy(char_type* __s1, const char_type* __s2, size_t __n) 8751: { 8751: if (__n == 0) 8751: return __s1; 8751: return (static_cast 8751: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 8751: } 8751: 8751: static char_type* 8751: assign(char_type* __s, size_t __n, char_type __a) 8751: { 8751: for (size_t __i = 0; __i < __n; ++__i) 8751: assign(__s[__i], __a); 8751: return __s; 8751: } 8751: 8751: static constexpr char_type 8751: to_char_type(const int_type& __c) noexcept 8751: { return char_type(__c); } 8751: 8751: static constexpr int_type 8751: to_int_type(const char_type& __c) noexcept 8751: { return int_type(__c); } 8751: 8751: static constexpr bool 8751: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8751: { return __c1 == __c2; } 8751: 8751: static constexpr int_type 8751: eof() noexcept 8751: { return static_cast(-1); } 8751: 8751: static constexpr int_type 8751: not_eof(const int_type& __c) noexcept 8751: { return eq_int_type(__c, eof()) ? 0 : __c; } 8751: }; 8751: 8751: 8751: } 8751: # 41 "/usr/include/c++/8/string" 2 3 8751: # 1 "/usr/include/c++/8/bits/allocator.h" 1 3 8751: # 46 "/usr/include/c++/8/bits/allocator.h" 3 8751: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++allocator.h" 1 3 8751: # 33 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++allocator.h" 3 8751: # 1 "/usr/include/c++/8/ext/new_allocator.h" 1 3 8751: # 40 "/usr/include/c++/8/ext/new_allocator.h" 3 8751: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: using std::size_t; 8751: using std::ptrdiff_t; 8751: # 57 "/usr/include/c++/8/ext/new_allocator.h" 3 8751: template 8751: class new_allocator 8751: { 8751: public: 8751: typedef size_t size_type; 8751: typedef ptrdiff_t difference_type; 8751: typedef _Tp* pointer; 8751: typedef const _Tp* const_pointer; 8751: typedef _Tp& reference; 8751: typedef const _Tp& const_reference; 8751: typedef _Tp value_type; 8751: 8751: template 8751: struct rebind 8751: { typedef new_allocator<_Tp1> other; }; 8751: 8751: 8751: 8751: 8751: typedef std::true_type propagate_on_container_move_assignment; 8751: 8751: 8751: new_allocator() noexcept { } 8751: 8751: new_allocator(const new_allocator&) noexcept { } 8751: 8751: template 8751: new_allocator(const new_allocator<_Tp1>&) noexcept { } 8751: 8751: ~new_allocator() noexcept { } 8751: 8751: pointer 8751: address(reference __x) const noexcept 8751: { return std::__addressof(__x); } 8751: 8751: const_pointer 8751: address(const_reference __x) const noexcept 8751: { return std::__addressof(__x); } 8751: 8751: 8751: 8751: pointer 8751: allocate(size_type __n, const void* = static_cast(0)) 8751: { 8751: if (__n > this->max_size()) 8751: std::__throw_bad_alloc(); 8751: # 111 "/usr/include/c++/8/ext/new_allocator.h" 3 8751: return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 8751: } 8751: 8751: 8751: void 8751: deallocate(pointer __p, size_type) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ::operator delete(__p); 8751: } 8751: 8751: size_type 8751: max_size() const noexcept 8751: { return size_t(-1) / sizeof(_Tp); } 8751: 8751: 8751: template 8751: void 8751: construct(_Up* __p, _Args&&... __args) 8751: { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } 8751: 8751: template 8751: void 8751: destroy(_Up* __p) { __p->~_Up(); } 8751: # 151 "/usr/include/c++/8/ext/new_allocator.h" 3 8751: }; 8751: 8751: template 8751: inline bool 8751: operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&) 8751: { return true; } 8751: 8751: template 8751: inline bool 8751: operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&) 8751: { return false; } 8751: 8751: 8751: } 8751: # 34 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++allocator.h" 2 3 8751: 8751: 8751: namespace std 8751: { 8751: # 47 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++allocator.h" 3 8751: template 8751: using __allocator_base = __gnu_cxx::new_allocator<_Tp>; 8751: } 8751: # 47 "/usr/include/c++/8/bits/allocator.h" 2 3 8751: # 57 "/usr/include/c++/8/bits/allocator.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template<> 8751: class allocator 8751: { 8751: public: 8751: typedef size_t size_type; 8751: typedef ptrdiff_t difference_type; 8751: typedef void* pointer; 8751: typedef const void* const_pointer; 8751: typedef void value_type; 8751: 8751: template 8751: struct rebind 8751: { typedef allocator<_Tp1> other; }; 8751: 8751: 8751: 8751: 8751: typedef true_type propagate_on_container_move_assignment; 8751: 8751: typedef true_type is_always_equal; 8751: 8751: template 8751: void 8751: construct(_Up* __p, _Args&&... __args) 8751: { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } 8751: 8751: template 8751: void 8751: destroy(_Up* __p) { __p->~_Up(); } 8751: 8751: }; 8751: # 107 "/usr/include/c++/8/bits/allocator.h" 3 8751: template 8751: class allocator : public __allocator_base<_Tp> 8751: { 8751: public: 8751: typedef size_t size_type; 8751: typedef ptrdiff_t difference_type; 8751: typedef _Tp* pointer; 8751: typedef const _Tp* const_pointer; 8751: typedef _Tp& reference; 8751: typedef const _Tp& const_reference; 8751: typedef _Tp value_type; 8751: 8751: template 8751: struct rebind 8751: { typedef allocator<_Tp1> other; }; 8751: 8751: 8751: 8751: 8751: typedef true_type propagate_on_container_move_assignment; 8751: 8751: typedef true_type is_always_equal; 8751: 8751: 8751: allocator() throw() { } 8751: 8751: allocator(const allocator& __a) throw() 8751: : __allocator_base<_Tp>(__a) { } 8751: 8751: template 8751: allocator(const allocator<_Tp1>&) throw() { } 8751: 8751: ~allocator() throw() { } 8751: 8751: 8751: }; 8751: 8751: template 8751: inline bool 8751: operator==(const allocator<_T1>&, const allocator<_T2>&) 8751: noexcept 8751: { return true; } 8751: 8751: template 8751: inline bool 8751: operator==(const allocator<_Tp>&, const allocator<_Tp>&) 8751: noexcept 8751: { return true; } 8751: 8751: template 8751: inline bool 8751: operator!=(const allocator<_T1>&, const allocator<_T2>&) 8751: noexcept 8751: { return false; } 8751: 8751: template 8751: inline bool 8751: operator!=(const allocator<_Tp>&, const allocator<_Tp>&) 8751: noexcept 8751: { return false; } 8751: 8751: 8751: 8751: template 8751: class allocator 8751: { 8751: public: 8751: typedef _Tp value_type; 8751: template allocator(const allocator<_Up>&) { } 8751: }; 8751: 8751: template 8751: class allocator 8751: { 8751: public: 8751: typedef _Tp value_type; 8751: template allocator(const allocator<_Up>&) { } 8751: }; 8751: 8751: template 8751: class allocator 8751: { 8751: public: 8751: typedef _Tp value_type; 8751: template allocator(const allocator<_Up>&) { } 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern template class allocator; 8751: extern template class allocator; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct __alloc_swap 8751: { static void _S_do_it(_Alloc&, _Alloc&) noexcept { } }; 8751: 8751: template 8751: struct __alloc_swap<_Alloc, false> 8751: { 8751: static void 8751: _S_do_it(_Alloc& __one, _Alloc& __two) noexcept 8751: { 8751: 8751: if (__one != __two) 8751: swap(__one, __two); 8751: } 8751: }; 8751: 8751: 8751: template 8751: struct __alloc_neq 8751: { 8751: static bool 8751: _S_do_it(const _Alloc&, const _Alloc&) 8751: { return false; } 8751: }; 8751: 8751: template 8751: struct __alloc_neq<_Alloc, false> 8751: { 8751: static bool 8751: _S_do_it(const _Alloc& __one, const _Alloc& __two) 8751: { return __one != __two; } 8751: }; 8751: 8751: 8751: template, 8751: is_nothrow_move_constructible>::value> 8751: struct __shrink_to_fit_aux 8751: { static bool _S_do_it(_Tp&) noexcept { return false; } }; 8751: 8751: template 8751: struct __shrink_to_fit_aux<_Tp, true> 8751: { 8751: static bool 8751: _S_do_it(_Tp& __c) noexcept 8751: { 8751: 8751: try 8751: { 8751: _Tp(__make_move_if_noexcept_iterator(__c.begin()), 8751: __make_move_if_noexcept_iterator(__c.end()), 8751: __c.get_allocator()).swap(__c); 8751: return true; 8751: } 8751: catch(...) 8751: { return false; } 8751: 8751: 8751: 8751: } 8751: }; 8751: 8751: 8751: 8751: } 8751: # 42 "/usr/include/c++/8/string" 2 3 8751: 8751: # 1 "/usr/include/c++/8/bits/localefwd.h" 1 3 8751: # 37 "/usr/include/c++/8/bits/localefwd.h" 3 8751: 8751: # 38 "/usr/include/c++/8/bits/localefwd.h" 3 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++locale.h" 1 3 8751: # 39 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++locale.h" 3 8751: 8751: # 40 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++locale.h" 3 8751: 8751: # 1 "/usr/include/c++/8/clocale" 1 3 8751: # 39 "/usr/include/c++/8/clocale" 3 8751: 8751: # 40 "/usr/include/c++/8/clocale" 3 8751: 8751: 8751: # 1 "/usr/include/locale.h" 1 3 4 8751: # 28 "/usr/include/locale.h" 3 4 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8751: # 29 "/usr/include/locale.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/locale.h" 1 3 4 8751: # 30 "/usr/include/locale.h" 2 3 4 8751: 8751: extern "C" { 8751: # 51 "/usr/include/locale.h" 3 4 8751: struct lconv 8751: { 8751: 8751: 8751: char *decimal_point; 8751: char *thousands_sep; 8751: 8751: 8751: 8751: 8751: 8751: char *grouping; 8751: 8751: 8751: 8751: 8751: 8751: char *int_curr_symbol; 8751: char *currency_symbol; 8751: char *mon_decimal_point; 8751: char *mon_thousands_sep; 8751: char *mon_grouping; 8751: char *positive_sign; 8751: char *negative_sign; 8751: char int_frac_digits; 8751: char frac_digits; 8751: 8751: char p_cs_precedes; 8751: 8751: char p_sep_by_space; 8751: 8751: char n_cs_precedes; 8751: 8751: char n_sep_by_space; 8751: 8751: 8751: 8751: 8751: 8751: 8751: char p_sign_posn; 8751: char n_sign_posn; 8751: 8751: 8751: char int_p_cs_precedes; 8751: 8751: char int_p_sep_by_space; 8751: 8751: char int_n_cs_precedes; 8751: 8751: char int_n_sep_by_space; 8751: 8751: 8751: 8751: 8751: 8751: 8751: char int_p_sign_posn; 8751: char int_n_sign_posn; 8751: # 118 "/usr/include/locale.h" 3 4 8751: }; 8751: 8751: 8751: 8751: extern char *setlocale (int __category, const char *__locale) throw (); 8751: 8751: 8751: extern struct lconv *localeconv (void) throw (); 8751: # 141 "/usr/include/locale.h" 3 4 8751: extern locale_t newlocale (int __category_mask, const char *__locale, 8751: locale_t __base) throw (); 8751: # 176 "/usr/include/locale.h" 3 4 8751: extern locale_t duplocale (locale_t __dataset) throw (); 8751: 8751: 8751: 8751: extern void freelocale (locale_t __dataset) throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern locale_t uselocale (locale_t __dataset) throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: } 8751: # 43 "/usr/include/c++/8/clocale" 2 3 8751: # 51 "/usr/include/c++/8/clocale" 3 8751: namespace std 8751: { 8751: using ::lconv; 8751: using ::setlocale; 8751: using ::localeconv; 8751: } 8751: # 42 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++locale.h" 2 3 8751: 8751: 8751: 8751: 8751: 8751: 8751: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: extern "C" __typeof(uselocale) __uselocale; 8751: 8751: 8751: } 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: typedef __locale_t __c_locale; 8751: 8751: 8751: 8751: 8751: 8751: inline int 8751: __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)), 8751: char* __out, 8751: const int __size __attribute__ ((__unused__)), 8751: const char* __fmt, ...) 8751: { 8751: 8751: __c_locale __old = __gnu_cxx::__uselocale(__cloc); 8751: # 88 "/usr/include/arm-linux-gnueabihf/c++/8/bits/c++locale.h" 3 8751: __builtin_va_list __args; 8751: __builtin_va_start(__args, __fmt); 8751: 8751: 8751: const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); 8751: 8751: 8751: 8751: 8751: __builtin_va_end(__args); 8751: 8751: 8751: __gnu_cxx::__uselocale(__old); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: return __ret; 8751: } 8751: 8751: 8751: } 8751: # 41 "/usr/include/c++/8/bits/localefwd.h" 2 3 8751: # 1 "/usr/include/c++/8/iosfwd" 1 3 8751: # 36 "/usr/include/c++/8/iosfwd" 3 8751: 8751: # 37 "/usr/include/c++/8/iosfwd" 3 8751: 8751: 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 74 "/usr/include/c++/8/iosfwd" 3 8751: class ios_base; 8751: 8751: template > 8751: class basic_ios; 8751: 8751: template > 8751: class basic_streambuf; 8751: 8751: template > 8751: class basic_istream; 8751: 8751: template > 8751: class basic_ostream; 8751: 8751: template > 8751: class basic_iostream; 8751: 8751: 8751: namespace __cxx11 { 8751: 8751: template, 8751: typename _Alloc = allocator<_CharT> > 8751: class basic_stringbuf; 8751: 8751: template, 8751: typename _Alloc = allocator<_CharT> > 8751: class basic_istringstream; 8751: 8751: template, 8751: typename _Alloc = allocator<_CharT> > 8751: class basic_ostringstream; 8751: 8751: template, 8751: typename _Alloc = allocator<_CharT> > 8751: class basic_stringstream; 8751: 8751: } 8751: 8751: template > 8751: class basic_filebuf; 8751: 8751: template > 8751: class basic_ifstream; 8751: 8751: template > 8751: class basic_ofstream; 8751: 8751: template > 8751: class basic_fstream; 8751: 8751: template > 8751: class istreambuf_iterator; 8751: 8751: template > 8751: class ostreambuf_iterator; 8751: 8751: 8751: 8751: typedef basic_ios ios; 8751: 8751: 8751: typedef basic_streambuf streambuf; 8751: 8751: 8751: typedef basic_istream istream; 8751: 8751: 8751: typedef basic_ostream ostream; 8751: 8751: 8751: typedef basic_iostream iostream; 8751: 8751: 8751: typedef basic_stringbuf stringbuf; 8751: 8751: 8751: typedef basic_istringstream istringstream; 8751: 8751: 8751: typedef basic_ostringstream ostringstream; 8751: 8751: 8751: typedef basic_stringstream stringstream; 8751: 8751: 8751: typedef basic_filebuf filebuf; 8751: 8751: 8751: typedef basic_ifstream ifstream; 8751: 8751: 8751: typedef basic_ofstream ofstream; 8751: 8751: 8751: typedef basic_fstream fstream; 8751: 8751: 8751: 8751: typedef basic_ios wios; 8751: 8751: 8751: typedef basic_streambuf wstreambuf; 8751: 8751: 8751: typedef basic_istream wistream; 8751: 8751: 8751: typedef basic_ostream wostream; 8751: 8751: 8751: typedef basic_iostream wiostream; 8751: 8751: 8751: typedef basic_stringbuf wstringbuf; 8751: 8751: 8751: typedef basic_istringstream wistringstream; 8751: 8751: 8751: typedef basic_ostringstream wostringstream; 8751: 8751: 8751: typedef basic_stringstream wstringstream; 8751: 8751: 8751: typedef basic_filebuf wfilebuf; 8751: 8751: 8751: typedef basic_ifstream wifstream; 8751: 8751: 8751: typedef basic_ofstream wofstream; 8751: 8751: 8751: typedef basic_fstream wfstream; 8751: 8751: 8751: 8751: 8751: } 8751: # 42 "/usr/include/c++/8/bits/localefwd.h" 2 3 8751: # 1 "/usr/include/c++/8/cctype" 1 3 8751: # 39 "/usr/include/c++/8/cctype" 3 8751: 8751: # 40 "/usr/include/c++/8/cctype" 3 8751: 8751: 8751: # 1 "/usr/include/ctype.h" 1 3 4 8751: # 28 "/usr/include/ctype.h" 3 4 8751: extern "C" { 8751: # 46 "/usr/include/ctype.h" 3 4 8751: enum 8751: { 8751: _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), 8751: _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), 8751: _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), 8751: _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), 8751: _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), 8751: _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), 8751: _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), 8751: _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), 8751: _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), 8751: _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), 8751: _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), 8751: _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) 8751: }; 8751: # 79 "/usr/include/ctype.h" 3 4 8751: extern const unsigned short int **__ctype_b_loc (void) 8751: throw () __attribute__ ((__const__)); 8751: extern const __int32_t **__ctype_tolower_loc (void) 8751: throw () __attribute__ ((__const__)); 8751: extern const __int32_t **__ctype_toupper_loc (void) 8751: throw () __attribute__ ((__const__)); 8751: # 108 "/usr/include/ctype.h" 3 4 8751: extern int isalnum (int) throw (); 8751: extern int isalpha (int) throw (); 8751: extern int iscntrl (int) throw (); 8751: extern int isdigit (int) throw (); 8751: extern int islower (int) throw (); 8751: extern int isgraph (int) throw (); 8751: extern int isprint (int) throw (); 8751: extern int ispunct (int) throw (); 8751: extern int isspace (int) throw (); 8751: extern int isupper (int) throw (); 8751: extern int isxdigit (int) throw (); 8751: 8751: 8751: 8751: extern int tolower (int __c) throw (); 8751: 8751: 8751: extern int toupper (int __c) throw (); 8751: 8751: 8751: 8751: 8751: extern int isblank (int) throw (); 8751: 8751: 8751: 8751: 8751: extern int isctype (int __c, int __mask) throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int isascii (int __c) throw (); 8751: 8751: 8751: 8751: extern int toascii (int __c) throw (); 8751: 8751: 8751: 8751: extern int _toupper (int) throw (); 8751: extern int _tolower (int) throw (); 8751: # 251 "/usr/include/ctype.h" 3 4 8751: extern int isalnum_l (int, locale_t) throw (); 8751: extern int isalpha_l (int, locale_t) throw (); 8751: extern int iscntrl_l (int, locale_t) throw (); 8751: extern int isdigit_l (int, locale_t) throw (); 8751: extern int islower_l (int, locale_t) throw (); 8751: extern int isgraph_l (int, locale_t) throw (); 8751: extern int isprint_l (int, locale_t) throw (); 8751: extern int ispunct_l (int, locale_t) throw (); 8751: extern int isspace_l (int, locale_t) throw (); 8751: extern int isupper_l (int, locale_t) throw (); 8751: extern int isxdigit_l (int, locale_t) throw (); 8751: 8751: extern int isblank_l (int, locale_t) throw (); 8751: 8751: 8751: 8751: extern int __tolower_l (int __c, locale_t __l) throw (); 8751: extern int tolower_l (int __c, locale_t __l) throw (); 8751: 8751: 8751: extern int __toupper_l (int __c, locale_t __l) throw (); 8751: extern int toupper_l (int __c, locale_t __l) throw (); 8751: # 327 "/usr/include/ctype.h" 3 4 8751: } 8751: # 43 "/usr/include/c++/8/cctype" 2 3 8751: # 62 "/usr/include/c++/8/cctype" 3 8751: namespace std 8751: { 8751: using ::isalnum; 8751: using ::isalpha; 8751: using ::iscntrl; 8751: using ::isdigit; 8751: using ::isgraph; 8751: using ::islower; 8751: using ::isprint; 8751: using ::ispunct; 8751: using ::isspace; 8751: using ::isupper; 8751: using ::isxdigit; 8751: using ::tolower; 8751: using ::toupper; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: namespace std 8751: { 8751: using ::isblank; 8751: } 8751: # 43 "/usr/include/c++/8/bits/localefwd.h" 2 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 55 "/usr/include/c++/8/bits/localefwd.h" 3 8751: class locale; 8751: 8751: template 8751: bool 8751: has_facet(const locale&) throw(); 8751: 8751: template 8751: const _Facet& 8751: use_facet(const locale&); 8751: 8751: 8751: template 8751: bool 8751: isspace(_CharT, const locale&); 8751: 8751: template 8751: bool 8751: isprint(_CharT, const locale&); 8751: 8751: template 8751: bool 8751: iscntrl(_CharT, const locale&); 8751: 8751: template 8751: bool 8751: isupper(_CharT, const locale&); 8751: 8751: template 8751: bool 8751: islower(_CharT, const locale&); 8751: 8751: template 8751: bool 8751: isalpha(_CharT, const locale&); 8751: 8751: template 8751: bool 8751: isdigit(_CharT, const locale&); 8751: 8751: template 8751: bool 8751: ispunct(_CharT, const locale&); 8751: 8751: template 8751: bool 8751: isxdigit(_CharT, const locale&); 8751: 8751: template 8751: bool 8751: isalnum(_CharT, const locale&); 8751: 8751: template 8751: bool 8751: isgraph(_CharT, const locale&); 8751: 8751: 8751: template 8751: bool 8751: isblank(_CharT, const locale&); 8751: 8751: 8751: template 8751: _CharT 8751: toupper(_CharT, const locale&); 8751: 8751: template 8751: _CharT 8751: tolower(_CharT, const locale&); 8751: 8751: 8751: class ctype_base; 8751: template 8751: class ctype; 8751: template<> class ctype; 8751: 8751: template<> class ctype; 8751: 8751: template 8751: class ctype_byname; 8751: 8751: 8751: class codecvt_base; 8751: template 8751: class codecvt; 8751: template<> class codecvt; 8751: 8751: template<> class codecvt; 8751: 8751: template 8751: class codecvt_byname; 8751: 8751: 8751: 8751: template > 8751: class num_get; 8751: template > 8751: class num_put; 8751: 8751: namespace __cxx11 { 8751: template class numpunct; 8751: template class numpunct_byname; 8751: } 8751: 8751: namespace __cxx11 { 8751: 8751: template 8751: class collate; 8751: template 8751: class collate_byname; 8751: } 8751: 8751: 8751: class time_base; 8751: namespace __cxx11 { 8751: template > 8751: class time_get; 8751: template > 8751: class time_get_byname; 8751: } 8751: template > 8751: class time_put; 8751: template > 8751: class time_put_byname; 8751: 8751: 8751: class money_base; 8751: namespace __cxx11 { 8751: template > 8751: class money_get; 8751: template > 8751: class money_put; 8751: } 8751: namespace __cxx11 { 8751: template 8751: class moneypunct; 8751: template 8751: class moneypunct_byname; 8751: } 8751: 8751: 8751: class messages_base; 8751: namespace __cxx11 { 8751: template 8751: class messages; 8751: template 8751: class messages_byname; 8751: } 8751: 8751: 8751: } 8751: # 44 "/usr/include/c++/8/string" 2 3 8751: # 1 "/usr/include/c++/8/bits/ostream_insert.h" 1 3 8751: # 33 "/usr/include/c++/8/bits/ostream_insert.h" 3 8751: 8751: # 34 "/usr/include/c++/8/bits/ostream_insert.h" 3 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/cxxabi_forced.h" 1 3 8751: # 34 "/usr/include/c++/8/bits/cxxabi_forced.h" 3 8751: 8751: # 35 "/usr/include/c++/8/bits/cxxabi_forced.h" 3 8751: 8751: #pragma GCC visibility push(default) 8751: 8751: 8751: namespace __cxxabiv1 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: class __forced_unwind 8751: { 8751: virtual ~__forced_unwind() throw(); 8751: 8751: 8751: virtual void __pure_dummy() = 0; 8751: }; 8751: } 8751: 8751: 8751: #pragma GCC visibility pop 8751: # 37 "/usr/include/c++/8/bits/ostream_insert.h" 2 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: template 8751: inline void 8751: __ostream_write(basic_ostream<_CharT, _Traits>& __out, 8751: const _CharT* __s, streamsize __n) 8751: { 8751: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8751: typedef typename __ostream_type::ios_base __ios_base; 8751: 8751: const streamsize __put = __out.rdbuf()->sputn(__s, __n); 8751: if (__put != __n) 8751: __out.setstate(__ios_base::badbit); 8751: } 8751: 8751: template 8751: inline void 8751: __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n) 8751: { 8751: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8751: typedef typename __ostream_type::ios_base __ios_base; 8751: 8751: const _CharT __c = __out.fill(); 8751: for (; __n > 0; --__n) 8751: { 8751: const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c); 8751: if (_Traits::eq_int_type(__put, _Traits::eof())) 8751: { 8751: __out.setstate(__ios_base::badbit); 8751: break; 8751: } 8751: } 8751: } 8751: 8751: template 8751: basic_ostream<_CharT, _Traits>& 8751: __ostream_insert(basic_ostream<_CharT, _Traits>& __out, 8751: const _CharT* __s, streamsize __n) 8751: { 8751: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8751: typedef typename __ostream_type::ios_base __ios_base; 8751: 8751: typename __ostream_type::sentry __cerb(__out); 8751: if (__cerb) 8751: { 8751: try 8751: { 8751: const streamsize __w = __out.width(); 8751: if (__w > __n) 8751: { 8751: const bool __left = ((__out.flags() 8751: & __ios_base::adjustfield) 8751: == __ios_base::left); 8751: if (!__left) 8751: __ostream_fill(__out, __w - __n); 8751: if (__out.good()) 8751: __ostream_write(__out, __s, __n); 8751: if (__left && __out.good()) 8751: __ostream_fill(__out, __w - __n); 8751: } 8751: else 8751: __ostream_write(__out, __s, __n); 8751: __out.width(0); 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: __out._M_setstate(__ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { __out._M_setstate(__ios_base::badbit); } 8751: } 8751: return __out; 8751: } 8751: 8751: 8751: 8751: 8751: extern template ostream& __ostream_insert(ostream&, const char*, streamsize); 8751: 8751: 8751: extern template wostream& __ostream_insert(wostream&, const wchar_t*, 8751: streamsize); 8751: 8751: 8751: 8751: 8751: } 8751: # 45 "/usr/include/c++/8/string" 2 3 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/stl_function.h" 1 3 8751: # 63 "/usr/include/c++/8/bits/stl_function.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 104 "/usr/include/c++/8/bits/stl_function.h" 3 8751: template 8751: struct unary_function 8751: { 8751: 8751: typedef _Arg argument_type; 8751: 8751: 8751: typedef _Result result_type; 8751: }; 8751: 8751: 8751: 8751: 8751: template 8751: struct binary_function 8751: { 8751: 8751: typedef _Arg1 first_argument_type; 8751: 8751: 8751: typedef _Arg2 second_argument_type; 8751: 8751: 8751: typedef _Result result_type; 8751: }; 8751: # 166 "/usr/include/c++/8/bits/stl_function.h" 3 8751: template 8751: struct plus : public binary_function<_Tp, _Tp, _Tp> 8751: { 8751: 8751: _Tp 8751: operator()(const _Tp& __x, const _Tp& __y) const 8751: { return __x + __y; } 8751: }; 8751: 8751: 8751: template 8751: struct minus : public binary_function<_Tp, _Tp, _Tp> 8751: { 8751: 8751: _Tp 8751: operator()(const _Tp& __x, const _Tp& __y) const 8751: { return __x - __y; } 8751: }; 8751: 8751: 8751: template 8751: struct multiplies : public binary_function<_Tp, _Tp, _Tp> 8751: { 8751: 8751: _Tp 8751: operator()(const _Tp& __x, const _Tp& __y) const 8751: { return __x * __y; } 8751: }; 8751: 8751: 8751: template 8751: struct divides : public binary_function<_Tp, _Tp, _Tp> 8751: { 8751: 8751: _Tp 8751: operator()(const _Tp& __x, const _Tp& __y) const 8751: { return __x / __y; } 8751: }; 8751: 8751: 8751: template 8751: struct modulus : public binary_function<_Tp, _Tp, _Tp> 8751: { 8751: 8751: _Tp 8751: operator()(const _Tp& __x, const _Tp& __y) const 8751: { return __x % __y; } 8751: }; 8751: 8751: 8751: template 8751: struct negate : public unary_function<_Tp, _Tp> 8751: { 8751: 8751: _Tp 8751: operator()(const _Tp& __x) const 8751: { return -__x; } 8751: }; 8751: # 350 "/usr/include/c++/8/bits/stl_function.h" 3 8751: template 8751: struct equal_to : public binary_function<_Tp, _Tp, bool> 8751: { 8751: 8751: bool 8751: operator()(const _Tp& __x, const _Tp& __y) const 8751: { return __x == __y; } 8751: }; 8751: 8751: 8751: template 8751: struct not_equal_to : public binary_function<_Tp, _Tp, bool> 8751: { 8751: 8751: bool 8751: operator()(const _Tp& __x, const _Tp& __y) const 8751: { return __x != __y; } 8751: }; 8751: 8751: 8751: template 8751: struct greater : public binary_function<_Tp, _Tp, bool> 8751: { 8751: 8751: bool 8751: operator()(const _Tp& __x, const _Tp& __y) const 8751: { return __x > __y; } 8751: }; 8751: 8751: 8751: template 8751: struct less : public binary_function<_Tp, _Tp, bool> 8751: { 8751: 8751: bool 8751: operator()(const _Tp& __x, const _Tp& __y) const 8751: { return __x < __y; } 8751: }; 8751: 8751: 8751: template 8751: struct greater_equal : public binary_function<_Tp, _Tp, bool> 8751: { 8751: 8751: bool 8751: operator()(const _Tp& __x, const _Tp& __y) const 8751: { return __x >= __y; } 8751: }; 8751: 8751: 8751: template 8751: struct less_equal : public binary_function<_Tp, _Tp, bool> 8751: { 8751: 8751: bool 8751: operator()(const _Tp& __x, const _Tp& __y) const 8751: { return __x <= __y; } 8751: }; 8751: # 523 "/usr/include/c++/8/bits/stl_function.h" 3 8751: template 8751: struct logical_and : public binary_function<_Tp, _Tp, bool> 8751: { 8751: 8751: bool 8751: operator()(const _Tp& __x, const _Tp& __y) const 8751: { return __x && __y; } 8751: }; 8751: 8751: 8751: template 8751: struct logical_or : public binary_function<_Tp, _Tp, bool> 8751: { 8751: 8751: bool 8751: operator()(const _Tp& __x, const _Tp& __y) const 8751: { return __x || __y; } 8751: }; 8751: 8751: 8751: template 8751: struct logical_not : public unary_function<_Tp, bool> 8751: { 8751: 8751: bool 8751: operator()(const _Tp& __x) const 8751: { return !__x; } 8751: }; 8751: # 616 "/usr/include/c++/8/bits/stl_function.h" 3 8751: template 8751: struct bit_and : public binary_function<_Tp, _Tp, _Tp> 8751: { 8751: 8751: _Tp 8751: operator()(const _Tp& __x, const _Tp& __y) const 8751: { return __x & __y; } 8751: }; 8751: 8751: template 8751: struct bit_or : public binary_function<_Tp, _Tp, _Tp> 8751: { 8751: 8751: _Tp 8751: operator()(const _Tp& __x, const _Tp& __y) const 8751: { return __x | __y; } 8751: }; 8751: 8751: template 8751: struct bit_xor : public binary_function<_Tp, _Tp, _Tp> 8751: { 8751: 8751: _Tp 8751: operator()(const _Tp& __x, const _Tp& __y) const 8751: { return __x ^ __y; } 8751: }; 8751: 8751: template 8751: struct bit_not : public unary_function<_Tp, _Tp> 8751: { 8751: 8751: _Tp 8751: operator()(const _Tp& __x) const 8751: { return ~__x; } 8751: }; 8751: # 740 "/usr/include/c++/8/bits/stl_function.h" 3 8751: template 8751: class unary_negate 8751: : public unary_function 8751: { 8751: protected: 8751: _Predicate _M_pred; 8751: 8751: public: 8751: 8751: explicit 8751: unary_negate(const _Predicate& __x) : _M_pred(__x) { } 8751: 8751: 8751: bool 8751: operator()(const typename _Predicate::argument_type& __x) const 8751: { return !_M_pred(__x); } 8751: }; 8751: 8751: 8751: template 8751: 8751: inline unary_negate<_Predicate> 8751: not1(const _Predicate& __pred) 8751: { return unary_negate<_Predicate>(__pred); } 8751: 8751: 8751: template 8751: class binary_negate 8751: : public binary_function 8751: { 8751: protected: 8751: _Predicate _M_pred; 8751: 8751: public: 8751: 8751: explicit 8751: binary_negate(const _Predicate& __x) : _M_pred(__x) { } 8751: 8751: 8751: bool 8751: operator()(const typename _Predicate::first_argument_type& __x, 8751: const typename _Predicate::second_argument_type& __y) const 8751: { return !_M_pred(__x, __y); } 8751: }; 8751: 8751: 8751: template 8751: 8751: inline binary_negate<_Predicate> 8751: not2(const _Predicate& __pred) 8751: { return binary_negate<_Predicate>(__pred); } 8751: # 817 "/usr/include/c++/8/bits/stl_function.h" 3 8751: template 8751: class pointer_to_unary_function : public unary_function<_Arg, _Result> 8751: { 8751: protected: 8751: _Result (*_M_ptr)(_Arg); 8751: 8751: public: 8751: pointer_to_unary_function() { } 8751: 8751: explicit 8751: pointer_to_unary_function(_Result (*__x)(_Arg)) 8751: : _M_ptr(__x) { } 8751: 8751: _Result 8751: operator()(_Arg __x) const 8751: { return _M_ptr(__x); } 8751: }; 8751: 8751: 8751: template 8751: inline pointer_to_unary_function<_Arg, _Result> 8751: ptr_fun(_Result (*__x)(_Arg)) 8751: { return pointer_to_unary_function<_Arg, _Result>(__x); } 8751: 8751: 8751: template 8751: class pointer_to_binary_function 8751: : public binary_function<_Arg1, _Arg2, _Result> 8751: { 8751: protected: 8751: _Result (*_M_ptr)(_Arg1, _Arg2); 8751: 8751: public: 8751: pointer_to_binary_function() { } 8751: 8751: explicit 8751: pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) 8751: : _M_ptr(__x) { } 8751: 8751: _Result 8751: operator()(_Arg1 __x, _Arg2 __y) const 8751: { return _M_ptr(__x, __y); } 8751: }; 8751: 8751: 8751: template 8751: inline pointer_to_binary_function<_Arg1, _Arg2, _Result> 8751: ptr_fun(_Result (*__x)(_Arg1, _Arg2)) 8751: { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); } 8751: 8751: 8751: template 8751: struct _Identity 8751: : public unary_function<_Tp, _Tp> 8751: { 8751: _Tp& 8751: operator()(_Tp& __x) const 8751: { return __x; } 8751: 8751: const _Tp& 8751: operator()(const _Tp& __x) const 8751: { return __x; } 8751: }; 8751: 8751: 8751: template struct _Identity : _Identity<_Tp> { }; 8751: 8751: template 8751: struct _Select1st 8751: : public unary_function<_Pair, typename _Pair::first_type> 8751: { 8751: typename _Pair::first_type& 8751: operator()(_Pair& __x) const 8751: { return __x.first; } 8751: 8751: const typename _Pair::first_type& 8751: operator()(const _Pair& __x) const 8751: { return __x.first; } 8751: 8751: 8751: template 8751: typename _Pair2::first_type& 8751: operator()(_Pair2& __x) const 8751: { return __x.first; } 8751: 8751: template 8751: const typename _Pair2::first_type& 8751: operator()(const _Pair2& __x) const 8751: { return __x.first; } 8751: 8751: }; 8751: 8751: template 8751: struct _Select2nd 8751: : public unary_function<_Pair, typename _Pair::second_type> 8751: { 8751: typename _Pair::second_type& 8751: operator()(_Pair& __x) const 8751: { return __x.second; } 8751: 8751: const typename _Pair::second_type& 8751: operator()(const _Pair& __x) const 8751: { return __x.second; } 8751: }; 8751: # 940 "/usr/include/c++/8/bits/stl_function.h" 3 8751: template 8751: class mem_fun_t : public unary_function<_Tp*, _Ret> 8751: { 8751: public: 8751: explicit 8751: mem_fun_t(_Ret (_Tp::*__pf)()) 8751: : _M_f(__pf) { } 8751: 8751: _Ret 8751: operator()(_Tp* __p) const 8751: { return (__p->*_M_f)(); } 8751: 8751: private: 8751: _Ret (_Tp::*_M_f)(); 8751: }; 8751: 8751: 8751: 8751: template 8751: class const_mem_fun_t : public unary_function 8751: { 8751: public: 8751: explicit 8751: const_mem_fun_t(_Ret (_Tp::*__pf)() const) 8751: : _M_f(__pf) { } 8751: 8751: _Ret 8751: operator()(const _Tp* __p) const 8751: { return (__p->*_M_f)(); } 8751: 8751: private: 8751: _Ret (_Tp::*_M_f)() const; 8751: }; 8751: 8751: 8751: 8751: template 8751: class mem_fun_ref_t : public unary_function<_Tp, _Ret> 8751: { 8751: public: 8751: explicit 8751: mem_fun_ref_t(_Ret (_Tp::*__pf)()) 8751: : _M_f(__pf) { } 8751: 8751: _Ret 8751: operator()(_Tp& __r) const 8751: { return (__r.*_M_f)(); } 8751: 8751: private: 8751: _Ret (_Tp::*_M_f)(); 8751: }; 8751: 8751: 8751: 8751: template 8751: class const_mem_fun_ref_t : public unary_function<_Tp, _Ret> 8751: { 8751: public: 8751: explicit 8751: const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) 8751: : _M_f(__pf) { } 8751: 8751: _Ret 8751: operator()(const _Tp& __r) const 8751: { return (__r.*_M_f)(); } 8751: 8751: private: 8751: _Ret (_Tp::*_M_f)() const; 8751: }; 8751: 8751: 8751: 8751: template 8751: class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret> 8751: { 8751: public: 8751: explicit 8751: mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) 8751: : _M_f(__pf) { } 8751: 8751: _Ret 8751: operator()(_Tp* __p, _Arg __x) const 8751: { return (__p->*_M_f)(__x); } 8751: 8751: private: 8751: _Ret (_Tp::*_M_f)(_Arg); 8751: }; 8751: 8751: 8751: 8751: template 8751: class const_mem_fun1_t : public binary_function 8751: { 8751: public: 8751: explicit 8751: const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) 8751: : _M_f(__pf) { } 8751: 8751: _Ret 8751: operator()(const _Tp* __p, _Arg __x) const 8751: { return (__p->*_M_f)(__x); } 8751: 8751: private: 8751: _Ret (_Tp::*_M_f)(_Arg) const; 8751: }; 8751: 8751: 8751: 8751: template 8751: class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 8751: { 8751: public: 8751: explicit 8751: mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) 8751: : _M_f(__pf) { } 8751: 8751: _Ret 8751: operator()(_Tp& __r, _Arg __x) const 8751: { return (__r.*_M_f)(__x); } 8751: 8751: private: 8751: _Ret (_Tp::*_M_f)(_Arg); 8751: }; 8751: 8751: 8751: 8751: template 8751: class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 8751: { 8751: public: 8751: explicit 8751: const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) 8751: : _M_f(__pf) { } 8751: 8751: _Ret 8751: operator()(const _Tp& __r, _Arg __x) const 8751: { return (__r.*_M_f)(__x); } 8751: 8751: private: 8751: _Ret (_Tp::*_M_f)(_Arg) const; 8751: }; 8751: 8751: 8751: 8751: template 8751: inline mem_fun_t<_Ret, _Tp> 8751: mem_fun(_Ret (_Tp::*__f)()) 8751: { return mem_fun_t<_Ret, _Tp>(__f); } 8751: 8751: template 8751: inline const_mem_fun_t<_Ret, _Tp> 8751: mem_fun(_Ret (_Tp::*__f)() const) 8751: { return const_mem_fun_t<_Ret, _Tp>(__f); } 8751: 8751: template 8751: inline mem_fun_ref_t<_Ret, _Tp> 8751: mem_fun_ref(_Ret (_Tp::*__f)()) 8751: { return mem_fun_ref_t<_Ret, _Tp>(__f); } 8751: 8751: template 8751: inline const_mem_fun_ref_t<_Ret, _Tp> 8751: mem_fun_ref(_Ret (_Tp::*__f)() const) 8751: { return const_mem_fun_ref_t<_Ret, _Tp>(__f); } 8751: 8751: template 8751: inline mem_fun1_t<_Ret, _Tp, _Arg> 8751: mem_fun(_Ret (_Tp::*__f)(_Arg)) 8751: { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 8751: 8751: template 8751: inline const_mem_fun1_t<_Ret, _Tp, _Arg> 8751: mem_fun(_Ret (_Tp::*__f)(_Arg) const) 8751: { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 8751: 8751: template 8751: inline mem_fun1_ref_t<_Ret, _Tp, _Arg> 8751: mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) 8751: { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 8751: 8751: template 8751: inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> 8751: mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) 8751: { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 8751: 8751: 8751: 8751: 8751: } 8751: 8751: 8751: # 1 "/usr/include/c++/8/backward/binders.h" 1 3 8751: # 60 "/usr/include/c++/8/backward/binders.h" 3 8751: #pragma GCC diagnostic push 8751: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 107 "/usr/include/c++/8/backward/binders.h" 3 8751: template 8751: class binder1st 8751: : public unary_function 8751: { 8751: protected: 8751: _Operation op; 8751: typename _Operation::first_argument_type value; 8751: 8751: public: 8751: binder1st(const _Operation& __x, 8751: const typename _Operation::first_argument_type& __y) 8751: : op(__x), value(__y) { } 8751: 8751: typename _Operation::result_type 8751: operator()(const typename _Operation::second_argument_type& __x) const 8751: { return op(value, __x); } 8751: 8751: 8751: 8751: typename _Operation::result_type 8751: operator()(typename _Operation::second_argument_type& __x) const 8751: { return op(value, __x); } 8751: } __attribute__ ((__deprecated__)); 8751: 8751: 8751: template 8751: inline binder1st<_Operation> 8751: bind1st(const _Operation& __fn, const _Tp& __x) 8751: { 8751: typedef typename _Operation::first_argument_type _Arg1_type; 8751: return binder1st<_Operation>(__fn, _Arg1_type(__x)); 8751: } 8751: 8751: 8751: template 8751: class binder2nd 8751: : public unary_function 8751: { 8751: protected: 8751: _Operation op; 8751: typename _Operation::second_argument_type value; 8751: 8751: public: 8751: binder2nd(const _Operation& __x, 8751: const typename _Operation::second_argument_type& __y) 8751: : op(__x), value(__y) { } 8751: 8751: typename _Operation::result_type 8751: operator()(const typename _Operation::first_argument_type& __x) const 8751: { return op(__x, value); } 8751: 8751: 8751: 8751: typename _Operation::result_type 8751: operator()(typename _Operation::first_argument_type& __x) const 8751: { return op(__x, value); } 8751: } __attribute__ ((__deprecated__)); 8751: 8751: 8751: template 8751: inline binder2nd<_Operation> 8751: bind2nd(const _Operation& __fn, const _Tp& __x) 8751: { 8751: typedef typename _Operation::second_argument_type _Arg2_type; 8751: return binder2nd<_Operation>(__fn, _Arg2_type(__x)); 8751: } 8751: 8751: 8751: 8751: } 8751: 8751: #pragma GCC diagnostic pop 8751: # 1131 "/usr/include/c++/8/bits/stl_function.h" 2 3 8751: # 49 "/usr/include/c++/8/string" 2 3 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/range_access.h" 1 3 8751: # 33 "/usr/include/c++/8/bits/range_access.h" 3 8751: 8751: # 34 "/usr/include/c++/8/bits/range_access.h" 3 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline auto 8751: begin(_Container& __cont) -> decltype(__cont.begin()) 8751: { return __cont.begin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline auto 8751: begin(const _Container& __cont) -> decltype(__cont.begin()) 8751: { return __cont.begin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline auto 8751: end(_Container& __cont) -> decltype(__cont.end()) 8751: { return __cont.end(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline auto 8751: end(const _Container& __cont) -> decltype(__cont.end()) 8751: { return __cont.end(); } 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline _Tp* 8751: begin(_Tp (&__arr)[_Nm]) 8751: { return __arr; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline _Tp* 8751: end(_Tp (&__arr)[_Nm]) 8751: { return __arr + _Nm; } 8751: # 323 "/usr/include/c++/8/bits/range_access.h" 3 8751: 8751: } 8751: # 52 "/usr/include/c++/8/string" 2 3 8751: # 1 "/usr/include/c++/8/bits/basic_string.h" 1 3 8751: # 37 "/usr/include/c++/8/bits/basic_string.h" 3 8751: 8751: # 38 "/usr/include/c++/8/bits/basic_string.h" 3 8751: 8751: # 1 "/usr/include/c++/8/ext/atomicity.h" 1 3 8751: # 32 "/usr/include/c++/8/ext/atomicity.h" 3 8751: 8751: # 33 "/usr/include/c++/8/ext/atomicity.h" 3 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr.h" 1 3 8751: # 30 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr.h" 3 8751: #pragma GCC visibility push(default) 8751: # 148 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr.h" 3 8751: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 1 3 8751: # 35 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 8751: # 1 "/usr/include/pthread.h" 1 3 4 8751: # 23 "/usr/include/pthread.h" 3 4 8751: # 1 "/usr/include/sched.h" 1 3 4 8751: # 29 "/usr/include/sched.h" 3 4 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8751: # 30 "/usr/include/sched.h" 2 3 4 8751: # 43 "/usr/include/sched.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/sched.h" 1 3 4 8751: # 75 "/usr/include/arm-linux-gnueabihf/bits/sched.h" 3 4 8751: struct sched_param 8751: { 8751: int sched_priority; 8751: }; 8751: 8751: extern "C" { 8751: 8751: 8751: 8751: extern int clone (int (*__fn) (void *__arg), void *__child_stack, 8751: int __flags, void *__arg, ...) throw (); 8751: 8751: 8751: extern int unshare (int __flags) throw (); 8751: 8751: 8751: extern int sched_getcpu (void) throw (); 8751: 8751: 8751: extern int setns (int __fd, int __nstype) throw (); 8751: 8751: 8751: } 8751: # 44 "/usr/include/sched.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/cpu-set.h" 1 3 4 8751: # 32 "/usr/include/arm-linux-gnueabihf/bits/cpu-set.h" 3 4 8751: typedef unsigned long int __cpu_mask; 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef struct 8751: { 8751: __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; 8751: } cpu_set_t; 8751: # 115 "/usr/include/arm-linux-gnueabihf/bits/cpu-set.h" 3 4 8751: extern "C" { 8751: 8751: extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) 8751: throw (); 8751: extern cpu_set_t *__sched_cpualloc (size_t __count) throw () __attribute__ ((__warn_unused_result__)); 8751: extern void __sched_cpufree (cpu_set_t *__set) throw (); 8751: 8751: } 8751: # 45 "/usr/include/sched.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern "C" { 8751: 8751: 8751: extern int sched_setparam (__pid_t __pid, const struct sched_param *__param) 8751: throw (); 8751: 8751: 8751: extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw (); 8751: 8751: 8751: extern int sched_setscheduler (__pid_t __pid, int __policy, 8751: const struct sched_param *__param) throw (); 8751: 8751: 8751: extern int sched_getscheduler (__pid_t __pid) throw (); 8751: 8751: 8751: extern int sched_yield (void) throw (); 8751: 8751: 8751: extern int sched_get_priority_max (int __algorithm) throw (); 8751: 8751: 8751: extern int sched_get_priority_min (int __algorithm) throw (); 8751: 8751: 8751: extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw (); 8751: # 121 "/usr/include/sched.h" 3 4 8751: extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, 8751: const cpu_set_t *__cpuset) throw (); 8751: 8751: 8751: extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, 8751: cpu_set_t *__cpuset) throw (); 8751: 8751: 8751: } 8751: # 24 "/usr/include/pthread.h" 2 3 4 8751: # 1 "/usr/include/time.h" 1 3 4 8751: # 29 "/usr/include/time.h" 3 4 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8751: # 30 "/usr/include/time.h" 2 3 4 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/time.h" 1 3 4 8751: # 73 "/usr/include/arm-linux-gnueabihf/bits/time.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/timex.h" 1 3 4 8751: # 26 "/usr/include/arm-linux-gnueabihf/bits/timex.h" 3 4 8751: struct timex 8751: { 8751: unsigned int modes; 8751: __syscall_slong_t offset; 8751: __syscall_slong_t freq; 8751: __syscall_slong_t maxerror; 8751: __syscall_slong_t esterror; 8751: int status; 8751: __syscall_slong_t constant; 8751: __syscall_slong_t precision; 8751: __syscall_slong_t tolerance; 8751: struct timeval time; 8751: __syscall_slong_t tick; 8751: __syscall_slong_t ppsfreq; 8751: __syscall_slong_t jitter; 8751: int shift; 8751: __syscall_slong_t stabil; 8751: __syscall_slong_t jitcnt; 8751: __syscall_slong_t calcnt; 8751: __syscall_slong_t errcnt; 8751: __syscall_slong_t stbcnt; 8751: 8751: int tai; 8751: 8751: 8751: int :32; int :32; int :32; int :32; 8751: int :32; int :32; int :32; int :32; 8751: int :32; int :32; int :32; 8751: }; 8751: # 74 "/usr/include/arm-linux-gnueabihf/bits/time.h" 2 3 4 8751: 8751: extern "C" { 8751: 8751: 8751: extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) throw (); 8751: 8751: } 8751: # 34 "/usr/include/time.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/struct_tm.h" 1 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: struct tm 8751: { 8751: int tm_sec; 8751: int tm_min; 8751: int tm_hour; 8751: int tm_mday; 8751: int tm_mon; 8751: int tm_year; 8751: int tm_wday; 8751: int tm_yday; 8751: int tm_isdst; 8751: 8751: 8751: long int tm_gmtoff; 8751: const char *tm_zone; 8751: 8751: 8751: 8751: 8751: }; 8751: # 40 "/usr/include/time.h" 2 3 4 8751: # 48 "/usr/include/time.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/types/struct_itimerspec.h" 1 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: struct itimerspec 8751: { 8751: struct timespec it_interval; 8751: struct timespec it_value; 8751: }; 8751: # 49 "/usr/include/time.h" 2 3 4 8751: struct sigevent; 8751: # 68 "/usr/include/time.h" 3 4 8751: extern "C" { 8751: 8751: 8751: 8751: extern clock_t clock (void) throw (); 8751: 8751: 8751: extern time_t time (time_t *__timer) throw (); 8751: 8751: 8751: extern double difftime (time_t __time1, time_t __time0) 8751: throw () __attribute__ ((__const__)); 8751: 8751: 8751: extern time_t mktime (struct tm *__tp) throw (); 8751: 8751: 8751: 8751: 8751: 8751: extern size_t strftime (char *__restrict __s, size_t __maxsize, 8751: const char *__restrict __format, 8751: const struct tm *__restrict __tp) throw (); 8751: 8751: 8751: 8751: 8751: extern char *strptime (const char *__restrict __s, 8751: const char *__restrict __fmt, struct tm *__tp) 8751: throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern size_t strftime_l (char *__restrict __s, size_t __maxsize, 8751: const char *__restrict __format, 8751: const struct tm *__restrict __tp, 8751: locale_t __loc) throw (); 8751: 8751: 8751: 8751: extern char *strptime_l (const char *__restrict __s, 8751: const char *__restrict __fmt, struct tm *__tp, 8751: locale_t __loc) throw (); 8751: 8751: 8751: 8751: 8751: 8751: extern struct tm *gmtime (const time_t *__timer) throw (); 8751: 8751: 8751: 8751: extern struct tm *localtime (const time_t *__timer) throw (); 8751: 8751: 8751: 8751: 8751: extern struct tm *gmtime_r (const time_t *__restrict __timer, 8751: struct tm *__restrict __tp) throw (); 8751: 8751: 8751: 8751: extern struct tm *localtime_r (const time_t *__restrict __timer, 8751: struct tm *__restrict __tp) throw (); 8751: 8751: 8751: 8751: 8751: extern char *asctime (const struct tm *__tp) throw (); 8751: 8751: 8751: extern char *ctime (const time_t *__timer) throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern char *asctime_r (const struct tm *__restrict __tp, 8751: char *__restrict __buf) throw (); 8751: 8751: 8751: extern char *ctime_r (const time_t *__restrict __timer, 8751: char *__restrict __buf) throw (); 8751: 8751: 8751: 8751: 8751: extern char *__tzname[2]; 8751: extern int __daylight; 8751: extern long int __timezone; 8751: 8751: 8751: 8751: 8751: extern char *tzname[2]; 8751: 8751: 8751: 8751: extern void tzset (void) throw (); 8751: 8751: 8751: 8751: extern int daylight; 8751: extern long int timezone; 8751: 8751: 8751: 8751: 8751: 8751: extern int stime (const time_t *__when) throw (); 8751: # 196 "/usr/include/time.h" 3 4 8751: extern time_t timegm (struct tm *__tp) throw (); 8751: 8751: 8751: extern time_t timelocal (struct tm *__tp) throw (); 8751: 8751: 8751: extern int dysize (int __year) throw () __attribute__ ((__const__)); 8751: # 211 "/usr/include/time.h" 3 4 8751: extern int nanosleep (const struct timespec *__requested_time, 8751: struct timespec *__remaining); 8751: 8751: 8751: 8751: extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); 8751: 8751: 8751: extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); 8751: 8751: 8751: extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) 8751: throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int clock_nanosleep (clockid_t __clock_id, int __flags, 8751: const struct timespec *__req, 8751: struct timespec *__rem); 8751: 8751: 8751: extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); 8751: 8751: 8751: 8751: 8751: extern int timer_create (clockid_t __clock_id, 8751: struct sigevent *__restrict __evp, 8751: timer_t *__restrict __timerid) throw (); 8751: 8751: 8751: extern int timer_delete (timer_t __timerid) throw (); 8751: 8751: 8751: extern int timer_settime (timer_t __timerid, int __flags, 8751: const struct itimerspec *__restrict __value, 8751: struct itimerspec *__restrict __ovalue) throw (); 8751: 8751: 8751: extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) 8751: throw (); 8751: 8751: 8751: extern int timer_getoverrun (timer_t __timerid) throw (); 8751: 8751: 8751: 8751: 8751: 8751: extern int timespec_get (struct timespec *__ts, int __base) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: # 280 "/usr/include/time.h" 3 4 8751: extern int getdate_err; 8751: # 289 "/usr/include/time.h" 3 4 8751: extern struct tm *getdate (const char *__string); 8751: # 303 "/usr/include/time.h" 3 4 8751: extern int getdate_r (const char *__restrict __string, 8751: struct tm *__restrict __resbufp); 8751: 8751: 8751: } 8751: # 25 "/usr/include/pthread.h" 2 3 4 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/setjmp.h" 1 3 4 8751: # 33 "/usr/include/arm-linux-gnueabihf/bits/setjmp.h" 3 4 8751: typedef int __jmp_buf[64] __attribute__((__aligned__ (8))); 8751: # 28 "/usr/include/pthread.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4 8751: # 29 "/usr/include/pthread.h" 2 3 4 8751: 8751: 8751: 8751: 8751: enum 8751: { 8751: PTHREAD_CREATE_JOINABLE, 8751: 8751: PTHREAD_CREATE_DETACHED 8751: 8751: }; 8751: 8751: 8751: 8751: enum 8751: { 8751: PTHREAD_MUTEX_TIMED_NP, 8751: PTHREAD_MUTEX_RECURSIVE_NP, 8751: PTHREAD_MUTEX_ERRORCHECK_NP, 8751: PTHREAD_MUTEX_ADAPTIVE_NP 8751: 8751: , 8751: PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, 8751: PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, 8751: PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, 8751: PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL 8751: 8751: 8751: 8751: , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP 8751: 8751: }; 8751: 8751: 8751: 8751: 8751: enum 8751: { 8751: PTHREAD_MUTEX_STALLED, 8751: PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, 8751: PTHREAD_MUTEX_ROBUST, 8751: PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: enum 8751: { 8751: PTHREAD_PRIO_NONE, 8751: PTHREAD_PRIO_INHERIT, 8751: PTHREAD_PRIO_PROTECT 8751: }; 8751: # 115 "/usr/include/pthread.h" 3 4 8751: enum 8751: { 8751: PTHREAD_RWLOCK_PREFER_READER_NP, 8751: PTHREAD_RWLOCK_PREFER_WRITER_NP, 8751: PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, 8751: PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP 8751: }; 8751: # 156 "/usr/include/pthread.h" 3 4 8751: enum 8751: { 8751: PTHREAD_INHERIT_SCHED, 8751: 8751: PTHREAD_EXPLICIT_SCHED 8751: 8751: }; 8751: 8751: 8751: 8751: enum 8751: { 8751: PTHREAD_SCOPE_SYSTEM, 8751: 8751: PTHREAD_SCOPE_PROCESS 8751: 8751: }; 8751: 8751: 8751: 8751: enum 8751: { 8751: PTHREAD_PROCESS_PRIVATE, 8751: 8751: PTHREAD_PROCESS_SHARED 8751: 8751: }; 8751: # 191 "/usr/include/pthread.h" 3 4 8751: struct _pthread_cleanup_buffer 8751: { 8751: void (*__routine) (void *); 8751: void *__arg; 8751: int __canceltype; 8751: struct _pthread_cleanup_buffer *__prev; 8751: }; 8751: 8751: 8751: enum 8751: { 8751: PTHREAD_CANCEL_ENABLE, 8751: 8751: PTHREAD_CANCEL_DISABLE 8751: 8751: }; 8751: enum 8751: { 8751: PTHREAD_CANCEL_DEFERRED, 8751: 8751: PTHREAD_CANCEL_ASYNCHRONOUS 8751: 8751: }; 8751: # 229 "/usr/include/pthread.h" 3 4 8751: extern "C" { 8751: 8751: 8751: 8751: 8751: extern int pthread_create (pthread_t *__restrict __newthread, 8751: const pthread_attr_t *__restrict __attr, 8751: void *(*__start_routine) (void *), 8751: void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3))); 8751: 8751: 8751: 8751: 8751: 8751: extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int pthread_join (pthread_t __th, void **__thread_return); 8751: 8751: 8751: 8751: 8751: extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, 8751: const struct timespec *__abstime); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int pthread_detach (pthread_t __th) throw (); 8751: 8751: 8751: 8751: extern pthread_t pthread_self (void) throw () __attribute__ ((__const__)); 8751: 8751: 8751: extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) 8751: throw () __attribute__ ((__const__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_attr_destroy (pthread_attr_t *__attr) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr, 8751: int *__detachstate) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, 8751: int __detachstate) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: extern int pthread_attr_getguardsize (const pthread_attr_t *__attr, 8751: size_t *__guardsize) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int pthread_attr_setguardsize (pthread_attr_t *__attr, 8751: size_t __guardsize) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr, 8751: struct sched_param *__restrict __param) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, 8751: const struct sched_param *__restrict 8751: __param) throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict 8751: __attr, int *__restrict __policy) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict 8751: __attr, int *__restrict __inherit) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, 8751: int __inherit) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr, 8751: int *__restrict __scope) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict 8751: __attr, void **__restrict __stackaddr) 8751: throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); 8751: 8751: 8751: 8751: 8751: 8751: extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, 8751: void *__stackaddr) 8751: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); 8751: 8751: 8751: extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict 8751: __attr, size_t *__restrict __stacksize) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: 8751: extern int pthread_attr_setstacksize (pthread_attr_t *__attr, 8751: size_t __stacksize) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr, 8751: void **__restrict __stackaddr, 8751: size_t *__restrict __stacksize) 8751: throw () __attribute__ ((__nonnull__ (1, 2, 3))); 8751: 8751: 8751: 8751: 8751: extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, 8751: size_t __stacksize) throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: 8751: extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, 8751: size_t __cpusetsize, 8751: const cpu_set_t *__cpuset) 8751: throw () __attribute__ ((__nonnull__ (1, 3))); 8751: 8751: 8751: 8751: extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, 8751: size_t __cpusetsize, 8751: cpu_set_t *__cpuset) 8751: throw () __attribute__ ((__nonnull__ (1, 3))); 8751: 8751: 8751: extern int pthread_getattr_default_np (pthread_attr_t *__attr) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: extern int pthread_setattr_default_np (const pthread_attr_t *__attr) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) 8751: throw () __attribute__ ((__nonnull__ (2))); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int pthread_setschedparam (pthread_t __target_thread, int __policy, 8751: const struct sched_param *__param) 8751: throw () __attribute__ ((__nonnull__ (3))); 8751: 8751: 8751: extern int pthread_getschedparam (pthread_t __target_thread, 8751: int *__restrict __policy, 8751: struct sched_param *__restrict __param) 8751: throw () __attribute__ ((__nonnull__ (2, 3))); 8751: 8751: 8751: extern int pthread_setschedprio (pthread_t __target_thread, int __prio) 8751: throw (); 8751: 8751: 8751: 8751: 8751: extern int pthread_getname_np (pthread_t __target_thread, char *__buf, 8751: size_t __buflen) 8751: throw () __attribute__ ((__nonnull__ (2))); 8751: 8751: 8751: extern int pthread_setname_np (pthread_t __target_thread, const char *__name) 8751: throw () __attribute__ ((__nonnull__ (2))); 8751: 8751: 8751: 8751: 8751: 8751: extern int pthread_getconcurrency (void) throw (); 8751: 8751: 8751: extern int pthread_setconcurrency (int __level) throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int pthread_yield (void) throw (); 8751: 8751: 8751: 8751: 8751: extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, 8751: const cpu_set_t *__cpuset) 8751: throw () __attribute__ ((__nonnull__ (3))); 8751: 8751: 8751: extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, 8751: cpu_set_t *__cpuset) 8751: throw () __attribute__ ((__nonnull__ (3))); 8751: # 495 "/usr/include/pthread.h" 3 4 8751: extern int pthread_once (pthread_once_t *__once_control, 8751: void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); 8751: # 507 "/usr/include/pthread.h" 3 4 8751: extern int pthread_setcancelstate (int __state, int *__oldstate); 8751: 8751: 8751: 8751: extern int pthread_setcanceltype (int __type, int *__oldtype); 8751: 8751: 8751: extern int pthread_cancel (pthread_t __th); 8751: 8751: 8751: 8751: 8751: extern void pthread_testcancel (void); 8751: 8751: 8751: 8751: 8751: typedef struct 8751: { 8751: struct 8751: { 8751: __jmp_buf __cancel_jmp_buf; 8751: int __mask_was_saved; 8751: } __cancel_jmp_buf[1]; 8751: void *__pad[4]; 8751: } __pthread_unwind_buf_t __attribute__ ((__aligned__)); 8751: # 541 "/usr/include/pthread.h" 3 4 8751: struct __pthread_cleanup_frame 8751: { 8751: void (*__cancel_routine) (void *); 8751: void *__cancel_arg; 8751: int __do_it; 8751: int __cancel_type; 8751: }; 8751: 8751: 8751: 8751: 8751: class __pthread_cleanup_class 8751: { 8751: void (*__cancel_routine) (void *); 8751: void *__cancel_arg; 8751: int __do_it; 8751: int __cancel_type; 8751: 8751: public: 8751: __pthread_cleanup_class (void (*__fct) (void *), void *__arg) 8751: : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { } 8751: ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); } 8751: void __setdoit (int __newval) { __do_it = __newval; } 8751: void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, 8751: &__cancel_type); } 8751: void __restore () const { pthread_setcanceltype (__cancel_type, 0); } 8751: }; 8751: # 743 "/usr/include/pthread.h" 3 4 8751: struct __jmp_buf_tag; 8751: extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw (); 8751: 8751: 8751: 8751: 8751: 8751: extern int pthread_mutex_init (pthread_mutex_t *__mutex, 8751: const pthread_mutexattr_t *__mutexattr) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_mutex_lock (pthread_mutex_t *__mutex) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, 8751: const struct timespec *__restrict 8751: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: extern int pthread_mutex_getprioceiling (const pthread_mutex_t * 8751: __restrict __mutex, 8751: int *__restrict __prioceiling) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, 8751: int __prioceiling, 8751: int *__restrict __old_ceiling) 8751: throw () __attribute__ ((__nonnull__ (1, 3))); 8751: 8751: 8751: 8751: 8751: extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: # 807 "/usr/include/pthread.h" 3 4 8751: extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t * 8751: __restrict __attr, 8751: int *__restrict __pshared) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, 8751: int __pshared) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict 8751: __attr, int *__restrict __kind) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: 8751: extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t * 8751: __restrict __attr, 8751: int *__restrict __protocol) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, 8751: int __protocol) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t * 8751: __restrict __attr, 8751: int *__restrict __prioceiling) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, 8751: int __prioceiling) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr, 8751: int *__robustness) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr, 8751: int *__robustness) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, 8751: int __robustness) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, 8751: int __robustness) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: # 889 "/usr/include/pthread.h" 3 4 8751: extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, 8751: const pthread_rwlockattr_t *__restrict 8751: __attr) throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, 8751: const struct timespec *__restrict 8751: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, 8751: const struct timespec *__restrict 8751: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: 8751: extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: 8751: extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * 8751: __restrict __attr, 8751: int *__restrict __pshared) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, 8751: int __pshared) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t * 8751: __restrict __attr, 8751: int *__restrict __pref) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, 8751: int __pref) throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int pthread_cond_init (pthread_cond_t *__restrict __cond, 8751: const pthread_condattr_t *__restrict __cond_attr) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_cond_destroy (pthread_cond_t *__cond) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_cond_signal (pthread_cond_t *__cond) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_cond_broadcast (pthread_cond_t *__cond) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, 8751: pthread_mutex_t *__restrict __mutex) 8751: __attribute__ ((__nonnull__ (1, 2))); 8751: # 1001 "/usr/include/pthread.h" 3 4 8751: extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, 8751: pthread_mutex_t *__restrict __mutex, 8751: const struct timespec *__restrict __abstime) 8751: __attribute__ ((__nonnull__ (1, 2, 3))); 8751: 8751: 8751: 8751: 8751: extern int pthread_condattr_init (pthread_condattr_t *__attr) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_condattr_destroy (pthread_condattr_t *__attr) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_condattr_getpshared (const pthread_condattr_t * 8751: __restrict __attr, 8751: int *__restrict __pshared) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, 8751: int __pshared) throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: extern int pthread_condattr_getclock (const pthread_condattr_t * 8751: __restrict __attr, 8751: __clockid_t *__restrict __clock_id) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int pthread_condattr_setclock (pthread_condattr_t *__attr, 8751: __clockid_t __clock_id) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: # 1045 "/usr/include/pthread.h" 3 4 8751: extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_spin_destroy (pthread_spinlock_t *__lock) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_spin_lock (pthread_spinlock_t *__lock) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_spin_trylock (pthread_spinlock_t *__lock) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_spin_unlock (pthread_spinlock_t *__lock) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, 8751: const pthread_barrierattr_t *__restrict 8751: __attr, unsigned int __count) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_barrier_wait (pthread_barrier_t *__barrier) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: 8751: extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t * 8751: __restrict __attr, 8751: int *__restrict __pshared) 8751: throw () __attribute__ ((__nonnull__ (1, 2))); 8751: 8751: 8751: extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, 8751: int __pshared) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: # 1112 "/usr/include/pthread.h" 3 4 8751: extern int pthread_key_create (pthread_key_t *__key, 8751: void (*__destr_function) (void *)) 8751: throw () __attribute__ ((__nonnull__ (1))); 8751: 8751: 8751: extern int pthread_key_delete (pthread_key_t __key) throw (); 8751: 8751: 8751: extern void *pthread_getspecific (pthread_key_t __key) throw (); 8751: 8751: 8751: extern int pthread_setspecific (pthread_key_t __key, 8751: const void *__pointer) throw () ; 8751: 8751: 8751: 8751: 8751: extern int pthread_getcpuclockid (pthread_t __thread_id, 8751: __clockid_t *__clock_id) 8751: throw () __attribute__ ((__nonnull__ (2))); 8751: # 1146 "/usr/include/pthread.h" 3 4 8751: extern int pthread_atfork (void (*__prepare) (void), 8751: void (*__parent) (void), 8751: void (*__child) (void)) throw (); 8751: 8751: 8751: 8751: 8751: extern __inline __attribute__ ((__gnu_inline__)) int 8751: __attribute__ ((__leaf__)) pthread_equal (pthread_t __thread1, pthread_t __thread2) throw () 8751: { 8751: return __thread1 == __thread2; 8751: } 8751: 8751: 8751: } 8751: # 36 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 2 3 8751: # 47 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 8751: typedef pthread_t __gthread_t; 8751: typedef pthread_key_t __gthread_key_t; 8751: typedef pthread_once_t __gthread_once_t; 8751: typedef pthread_mutex_t __gthread_mutex_t; 8751: typedef pthread_mutex_t __gthread_recursive_mutex_t; 8751: typedef pthread_cond_t __gthread_cond_t; 8751: typedef struct timespec __gthread_time_t; 8751: # 101 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 8751: static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once"))); 8751: static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific"))); 8751: static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific"))); 8751: 8751: static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create"))); 8751: static __typeof(pthread_join) __gthrw_pthread_join __attribute__ ((__weakref__("pthread_join"))); 8751: static __typeof(pthread_equal) __gthrw_pthread_equal __attribute__ ((__weakref__("pthread_equal"))); 8751: static __typeof(pthread_self) __gthrw_pthread_self __attribute__ ((__weakref__("pthread_self"))); 8751: static __typeof(pthread_detach) __gthrw_pthread_detach __attribute__ ((__weakref__("pthread_detach"))); 8751: 8751: static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel"))); 8751: 8751: static __typeof(sched_yield) __gthrw_sched_yield __attribute__ ((__weakref__("sched_yield"))); 8751: 8751: static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock"))); 8751: static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock"))); 8751: 8751: static __typeof(pthread_mutex_timedlock) __gthrw_pthread_mutex_timedlock __attribute__ ((__weakref__("pthread_mutex_timedlock"))); 8751: 8751: static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock"))); 8751: static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init"))); 8751: static __typeof(pthread_mutex_destroy) __gthrw_pthread_mutex_destroy __attribute__ ((__weakref__("pthread_mutex_destroy"))); 8751: 8751: static __typeof(pthread_cond_init) __gthrw_pthread_cond_init __attribute__ ((__weakref__("pthread_cond_init"))); 8751: static __typeof(pthread_cond_broadcast) __gthrw_pthread_cond_broadcast __attribute__ ((__weakref__("pthread_cond_broadcast"))); 8751: static __typeof(pthread_cond_signal) __gthrw_pthread_cond_signal __attribute__ ((__weakref__("pthread_cond_signal"))); 8751: static __typeof(pthread_cond_wait) __gthrw_pthread_cond_wait __attribute__ ((__weakref__("pthread_cond_wait"))); 8751: static __typeof(pthread_cond_timedwait) __gthrw_pthread_cond_timedwait __attribute__ ((__weakref__("pthread_cond_timedwait"))); 8751: static __typeof(pthread_cond_destroy) __gthrw_pthread_cond_destroy __attribute__ ((__weakref__("pthread_cond_destroy"))); 8751: 8751: static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create"))); 8751: static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete"))); 8751: static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init"))); 8751: static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype"))); 8751: static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy"))); 8751: # 236 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 8751: static __typeof(pthread_key_create) __gthrw___pthread_key_create __attribute__ ((__weakref__("__pthread_key_create"))); 8751: # 246 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 8751: static inline int 8751: __gthread_active_p (void) 8751: { 8751: static void *const __gthread_active_ptr 8751: = __extension__ (void *) &__gthrw___pthread_key_create; 8751: return __gthread_active_ptr != 0; 8751: } 8751: # 658 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 8751: static inline int 8751: __gthread_create (__gthread_t *__threadid, void *(*__func) (void*), 8751: void *__args) 8751: { 8751: return __gthrw_pthread_create (__threadid, __null, __func, __args); 8751: } 8751: 8751: static inline int 8751: __gthread_join (__gthread_t __threadid, void **__value_ptr) 8751: { 8751: return __gthrw_pthread_join (__threadid, __value_ptr); 8751: } 8751: 8751: static inline int 8751: __gthread_detach (__gthread_t __threadid) 8751: { 8751: return __gthrw_pthread_detach (__threadid); 8751: } 8751: 8751: static inline int 8751: __gthread_equal (__gthread_t __t1, __gthread_t __t2) 8751: { 8751: return __gthrw_pthread_equal (__t1, __t2); 8751: } 8751: 8751: static inline __gthread_t 8751: __gthread_self (void) 8751: { 8751: return __gthrw_pthread_self (); 8751: } 8751: 8751: static inline int 8751: __gthread_yield (void) 8751: { 8751: return __gthrw_sched_yield (); 8751: } 8751: 8751: static inline int 8751: __gthread_once (__gthread_once_t *__once, void (*__func) (void)) 8751: { 8751: if (__gthread_active_p ()) 8751: return __gthrw_pthread_once (__once, __func); 8751: else 8751: return -1; 8751: } 8751: 8751: static inline int 8751: __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) 8751: { 8751: return __gthrw_pthread_key_create (__key, __dtor); 8751: } 8751: 8751: static inline int 8751: __gthread_key_delete (__gthread_key_t __key) 8751: { 8751: return __gthrw_pthread_key_delete (__key); 8751: } 8751: 8751: static inline void * 8751: __gthread_getspecific (__gthread_key_t __key) 8751: { 8751: return __gthrw_pthread_getspecific (__key); 8751: } 8751: 8751: static inline int 8751: __gthread_setspecific (__gthread_key_t __key, const void *__ptr) 8751: { 8751: return __gthrw_pthread_setspecific (__key, __ptr); 8751: } 8751: 8751: static inline void 8751: __gthread_mutex_init_function (__gthread_mutex_t *__mutex) 8751: { 8751: if (__gthread_active_p ()) 8751: __gthrw_pthread_mutex_init (__mutex, __null); 8751: } 8751: 8751: static inline int 8751: __gthread_mutex_destroy (__gthread_mutex_t *__mutex) 8751: { 8751: if (__gthread_active_p ()) 8751: return __gthrw_pthread_mutex_destroy (__mutex); 8751: else 8751: return 0; 8751: } 8751: 8751: static inline int 8751: __gthread_mutex_lock (__gthread_mutex_t *__mutex) 8751: { 8751: if (__gthread_active_p ()) 8751: return __gthrw_pthread_mutex_lock (__mutex); 8751: else 8751: return 0; 8751: } 8751: 8751: static inline int 8751: __gthread_mutex_trylock (__gthread_mutex_t *__mutex) 8751: { 8751: if (__gthread_active_p ()) 8751: return __gthrw_pthread_mutex_trylock (__mutex); 8751: else 8751: return 0; 8751: } 8751: 8751: 8751: static inline int 8751: __gthread_mutex_timedlock (__gthread_mutex_t *__mutex, 8751: const __gthread_time_t *__abs_timeout) 8751: { 8751: if (__gthread_active_p ()) 8751: return __gthrw_pthread_mutex_timedlock (__mutex, __abs_timeout); 8751: else 8751: return 0; 8751: } 8751: 8751: 8751: static inline int 8751: __gthread_mutex_unlock (__gthread_mutex_t *__mutex) 8751: { 8751: if (__gthread_active_p ()) 8751: return __gthrw_pthread_mutex_unlock (__mutex); 8751: else 8751: return 0; 8751: } 8751: # 807 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 8751: static inline int 8751: __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) 8751: { 8751: return __gthread_mutex_lock (__mutex); 8751: } 8751: 8751: static inline int 8751: __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) 8751: { 8751: return __gthread_mutex_trylock (__mutex); 8751: } 8751: 8751: 8751: static inline int 8751: __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, 8751: const __gthread_time_t *__abs_timeout) 8751: { 8751: return __gthread_mutex_timedlock (__mutex, __abs_timeout); 8751: } 8751: 8751: 8751: static inline int 8751: __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) 8751: { 8751: return __gthread_mutex_unlock (__mutex); 8751: } 8751: 8751: static inline int 8751: __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex) 8751: { 8751: return __gthread_mutex_destroy (__mutex); 8751: } 8751: # 849 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr-default.h" 3 8751: static inline int 8751: __gthread_cond_broadcast (__gthread_cond_t *__cond) 8751: { 8751: return __gthrw_pthread_cond_broadcast (__cond); 8751: } 8751: 8751: static inline int 8751: __gthread_cond_signal (__gthread_cond_t *__cond) 8751: { 8751: return __gthrw_pthread_cond_signal (__cond); 8751: } 8751: 8751: static inline int 8751: __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex) 8751: { 8751: return __gthrw_pthread_cond_wait (__cond, __mutex); 8751: } 8751: 8751: static inline int 8751: __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex, 8751: const __gthread_time_t *__abs_timeout) 8751: { 8751: return __gthrw_pthread_cond_timedwait (__cond, __mutex, __abs_timeout); 8751: } 8751: 8751: static inline int 8751: __gthread_cond_wait_recursive (__gthread_cond_t *__cond, 8751: __gthread_recursive_mutex_t *__mutex) 8751: { 8751: return __gthread_cond_wait (__cond, __mutex); 8751: } 8751: 8751: static inline int 8751: __gthread_cond_destroy (__gthread_cond_t* __cond) 8751: { 8751: return __gthrw_pthread_cond_destroy (__cond); 8751: } 8751: # 149 "/usr/include/arm-linux-gnueabihf/c++/8/bits/gthr.h" 2 3 8751: 8751: 8751: #pragma GCC visibility pop 8751: # 36 "/usr/include/c++/8/ext/atomicity.h" 2 3 8751: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/atomic_word.h" 1 3 8751: # 32 "/usr/include/arm-linux-gnueabihf/c++/8/bits/atomic_word.h" 3 8751: typedef int _Atomic_word; 8751: # 37 "/usr/include/c++/8/ext/atomicity.h" 2 3 8751: 8751: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: static inline _Atomic_word 8751: __exchange_and_add(volatile _Atomic_word* __mem, int __val) 8751: { return __atomic_fetch_add(__mem, __val, 4); } 8751: 8751: static inline void 8751: __atomic_add(volatile _Atomic_word* __mem, int __val) 8751: { __atomic_fetch_add(__mem, __val, 4); } 8751: # 64 "/usr/include/c++/8/ext/atomicity.h" 3 8751: static inline _Atomic_word 8751: __exchange_and_add_single(_Atomic_word* __mem, int __val) 8751: { 8751: _Atomic_word __result = *__mem; 8751: *__mem += __val; 8751: return __result; 8751: } 8751: 8751: static inline void 8751: __atomic_add_single(_Atomic_word* __mem, int __val) 8751: { *__mem += __val; } 8751: 8751: static inline _Atomic_word 8751: __attribute__ ((__unused__)) 8751: __exchange_and_add_dispatch(_Atomic_word* __mem, int __val) 8751: { 8751: 8751: if (__gthread_active_p()) 8751: return __exchange_and_add(__mem, __val); 8751: else 8751: return __exchange_and_add_single(__mem, __val); 8751: 8751: 8751: 8751: } 8751: 8751: static inline void 8751: __attribute__ ((__unused__)) 8751: __atomic_add_dispatch(_Atomic_word* __mem, int __val) 8751: { 8751: 8751: if (__gthread_active_p()) 8751: __atomic_add(__mem, __val); 8751: else 8751: __atomic_add_single(__mem, __val); 8751: 8751: 8751: 8751: } 8751: 8751: 8751: } 8751: # 40 "/usr/include/c++/8/bits/basic_string.h" 2 3 8751: # 52 "/usr/include/c++/8/bits/basic_string.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: namespace __cxx11 { 8751: # 76 "/usr/include/c++/8/bits/basic_string.h" 3 8751: template 8751: class basic_string 8751: { 8751: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8751: rebind<_CharT>::other _Char_alloc_type; 8751: typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; 8751: 8751: 8751: public: 8751: typedef _Traits traits_type; 8751: typedef typename _Traits::char_type value_type; 8751: typedef _Char_alloc_type allocator_type; 8751: typedef typename _Alloc_traits::size_type size_type; 8751: typedef typename _Alloc_traits::difference_type difference_type; 8751: typedef typename _Alloc_traits::reference reference; 8751: typedef typename _Alloc_traits::const_reference const_reference; 8751: typedef typename _Alloc_traits::pointer pointer; 8751: typedef typename _Alloc_traits::const_pointer const_pointer; 8751: typedef __gnu_cxx::__normal_iterator iterator; 8751: typedef __gnu_cxx::__normal_iterator 8751: const_iterator; 8751: typedef std::reverse_iterator const_reverse_iterator; 8751: typedef std::reverse_iterator reverse_iterator; 8751: 8751: 8751: static const size_type npos = static_cast(-1); 8751: 8751: private: 8751: 8751: 8751: 8751: 8751: typedef const_iterator __const_iterator; 8751: # 139 "/usr/include/c++/8/bits/basic_string.h" 3 8751: struct _Alloc_hider : allocator_type 8751: { 8751: 8751: 8751: 8751: 8751: _Alloc_hider(pointer __dat, const _Alloc& __a) 8751: : allocator_type(__a), _M_p(__dat) { } 8751: 8751: _Alloc_hider(pointer __dat, _Alloc&& __a = _Alloc()) 8751: : allocator_type(std::move(__a)), _M_p(__dat) { } 8751: 8751: 8751: pointer _M_p; 8751: }; 8751: 8751: _Alloc_hider _M_dataplus; 8751: size_type _M_string_length; 8751: 8751: enum { _S_local_capacity = 15 / sizeof(_CharT) }; 8751: 8751: union 8751: { 8751: _CharT _M_local_buf[_S_local_capacity + 1]; 8751: size_type _M_allocated_capacity; 8751: }; 8751: 8751: void 8751: _M_data(pointer __p) 8751: { _M_dataplus._M_p = __p; } 8751: 8751: void 8751: _M_length(size_type __length) 8751: { _M_string_length = __length; } 8751: 8751: pointer 8751: _M_data() const 8751: { return _M_dataplus._M_p; } 8751: 8751: pointer 8751: _M_local_data() 8751: { 8751: 8751: return std::pointer_traits::pointer_to(*_M_local_buf); 8751: 8751: 8751: 8751: } 8751: 8751: const_pointer 8751: _M_local_data() const 8751: { 8751: 8751: return std::pointer_traits::pointer_to(*_M_local_buf); 8751: 8751: 8751: 8751: } 8751: 8751: void 8751: _M_capacity(size_type __capacity) 8751: { _M_allocated_capacity = __capacity; } 8751: 8751: void 8751: _M_set_length(size_type __n) 8751: { 8751: _M_length(__n); 8751: traits_type::assign(_M_data()[__n], _CharT()); 8751: } 8751: 8751: bool 8751: _M_is_local() const 8751: { return _M_data() == _M_local_data(); } 8751: 8751: 8751: pointer 8751: _M_create(size_type&, size_type); 8751: 8751: void 8751: _M_dispose() 8751: { 8751: if (!_M_is_local()) 8751: _M_destroy(_M_allocated_capacity); 8751: } 8751: 8751: void 8751: _M_destroy(size_type __size) throw() 8751: { _Alloc_traits::deallocate(_M_get_allocator(), _M_data(), __size + 1); } 8751: 8751: 8751: 8751: template 8751: void 8751: _M_construct_aux(_InIterator __beg, _InIterator __end, 8751: std::__false_type) 8751: { 8751: typedef typename iterator_traits<_InIterator>::iterator_category _Tag; 8751: _M_construct(__beg, __end, _Tag()); 8751: } 8751: 8751: 8751: 8751: template 8751: void 8751: _M_construct_aux(_Integer __beg, _Integer __end, std::__true_type) 8751: { _M_construct_aux_2(static_cast(__beg), __end); } 8751: 8751: void 8751: _M_construct_aux_2(size_type __req, _CharT __c) 8751: { _M_construct(__req, __c); } 8751: 8751: template 8751: void 8751: _M_construct(_InIterator __beg, _InIterator __end) 8751: { 8751: typedef typename std::__is_integer<_InIterator>::__type _Integral; 8751: _M_construct_aux(__beg, __end, _Integral()); 8751: } 8751: 8751: 8751: template 8751: void 8751: _M_construct(_InIterator __beg, _InIterator __end, 8751: std::input_iterator_tag); 8751: 8751: 8751: 8751: template 8751: void 8751: _M_construct(_FwdIterator __beg, _FwdIterator __end, 8751: std::forward_iterator_tag); 8751: 8751: void 8751: _M_construct(size_type __req, _CharT __c); 8751: 8751: allocator_type& 8751: _M_get_allocator() 8751: { return _M_dataplus; } 8751: 8751: const allocator_type& 8751: _M_get_allocator() const 8751: { return _M_dataplus; } 8751: 8751: private: 8751: # 298 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: _M_check(size_type __pos, const char* __s) const 8751: { 8751: if (__pos > this->size()) 8751: __throw_out_of_range_fmt(("%s: __pos (which is %zu) > " "this->size() (which is %zu)") 8751: , 8751: __s, __pos, this->size()); 8751: return __pos; 8751: } 8751: 8751: void 8751: _M_check_length(size_type __n1, size_type __n2, const char* __s) const 8751: { 8751: if (this->max_size() - (this->size() - __n1) < __n2) 8751: __throw_length_error((__s)); 8751: } 8751: 8751: 8751: 8751: size_type 8751: _M_limit(size_type __pos, size_type __off) const noexcept 8751: { 8751: const bool __testoff = __off < this->size() - __pos; 8751: return __testoff ? __off : this->size() - __pos; 8751: } 8751: 8751: 8751: bool 8751: _M_disjunct(const _CharT* __s) const noexcept 8751: { 8751: return (less()(__s, _M_data()) 8751: || less()(_M_data() + this->size(), __s)); 8751: } 8751: 8751: 8751: 8751: static void 8751: _S_copy(_CharT* __d, const _CharT* __s, size_type __n) 8751: { 8751: if (__n == 1) 8751: traits_type::assign(*__d, *__s); 8751: else 8751: traits_type::copy(__d, __s, __n); 8751: } 8751: 8751: static void 8751: _S_move(_CharT* __d, const _CharT* __s, size_type __n) 8751: { 8751: if (__n == 1) 8751: traits_type::assign(*__d, *__s); 8751: else 8751: traits_type::move(__d, __s, __n); 8751: } 8751: 8751: static void 8751: _S_assign(_CharT* __d, size_type __n, _CharT __c) 8751: { 8751: if (__n == 1) 8751: traits_type::assign(*__d, __c); 8751: else 8751: traits_type::assign(__d, __n, __c); 8751: } 8751: 8751: 8751: 8751: template 8751: static void 8751: _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) 8751: { 8751: for (; __k1 != __k2; ++__k1, (void)++__p) 8751: traits_type::assign(*__p, *__k1); 8751: } 8751: 8751: static void 8751: _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) noexcept 8751: { _S_copy_chars(__p, __k1.base(), __k2.base()); } 8751: 8751: static void 8751: _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) 8751: noexcept 8751: { _S_copy_chars(__p, __k1.base(), __k2.base()); } 8751: 8751: static void 8751: _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) noexcept 8751: { _S_copy(__p, __k1, __k2 - __k1); } 8751: 8751: static void 8751: _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) 8751: noexcept 8751: { _S_copy(__p, __k1, __k2 - __k1); } 8751: 8751: static int 8751: _S_compare(size_type __n1, size_type __n2) noexcept 8751: { 8751: const difference_type __d = difference_type(__n1 - __n2); 8751: 8751: if (__d > __gnu_cxx::__numeric_traits::__max) 8751: return __gnu_cxx::__numeric_traits::__max; 8751: else if (__d < __gnu_cxx::__numeric_traits::__min) 8751: return __gnu_cxx::__numeric_traits::__min; 8751: else 8751: return int(__d); 8751: } 8751: 8751: void 8751: _M_assign(const basic_string&); 8751: 8751: void 8751: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 8751: size_type __len2); 8751: 8751: void 8751: _M_erase(size_type __pos, size_type __n); 8751: 8751: public: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: basic_string() 8751: noexcept(is_nothrow_default_constructible<_Alloc>::value) 8751: : _M_dataplus(_M_local_data()) 8751: { _M_set_length(0); } 8751: 8751: 8751: 8751: 8751: explicit 8751: basic_string(const _Alloc& __a) noexcept 8751: : _M_dataplus(_M_local_data(), __a) 8751: { _M_set_length(0); } 8751: 8751: 8751: 8751: 8751: 8751: basic_string(const basic_string& __str) 8751: : _M_dataplus(_M_local_data(), 8751: _Alloc_traits::_S_select_on_copy(__str._M_get_allocator())) 8751: { _M_construct(__str._M_data(), __str._M_data() + __str.length()); } 8751: # 450 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string(const basic_string& __str, size_type __pos, 8751: const _Alloc& __a = _Alloc()) 8751: : _M_dataplus(_M_local_data(), __a) 8751: { 8751: const _CharT* __start = __str._M_data() 8751: + __str._M_check(__pos, "basic_string::basic_string"); 8751: _M_construct(__start, __start + __str._M_limit(__pos, npos)); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: basic_string(const basic_string& __str, size_type __pos, 8751: size_type __n) 8751: : _M_dataplus(_M_local_data()) 8751: { 8751: const _CharT* __start = __str._M_data() 8751: + __str._M_check(__pos, "basic_string::basic_string"); 8751: _M_construct(__start, __start + __str._M_limit(__pos, __n)); 8751: } 8751: # 481 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string(const basic_string& __str, size_type __pos, 8751: size_type __n, const _Alloc& __a) 8751: : _M_dataplus(_M_local_data(), __a) 8751: { 8751: const _CharT* __start 8751: = __str._M_data() + __str._M_check(__pos, "string::string"); 8751: _M_construct(__start, __start + __str._M_limit(__pos, __n)); 8751: } 8751: # 499 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string(const _CharT* __s, size_type __n, 8751: const _Alloc& __a = _Alloc()) 8751: : _M_dataplus(_M_local_data(), __a) 8751: { _M_construct(__s, __s + __n); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()) 8751: : _M_dataplus(_M_local_data(), __a) 8751: { _M_construct(__s, __s ? __s + traits_type::length(__s) : __s+npos); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()) 8751: : _M_dataplus(_M_local_data(), __a) 8751: { _M_construct(__n, __c); } 8751: # 531 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string(basic_string&& __str) noexcept 8751: : _M_dataplus(_M_local_data(), std::move(__str._M_get_allocator())) 8751: { 8751: if (__str._M_is_local()) 8751: { 8751: traits_type::copy(_M_local_buf, __str._M_local_buf, 8751: _S_local_capacity + 1); 8751: } 8751: else 8751: { 8751: _M_data(__str._M_data()); 8751: _M_capacity(__str._M_allocated_capacity); 8751: } 8751: 8751: 8751: 8751: 8751: _M_length(__str.length()); 8751: __str._M_data(__str._M_local_data()); 8751: __str._M_set_length(0); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc()) 8751: : _M_dataplus(_M_local_data(), __a) 8751: { _M_construct(__l.begin(), __l.end()); } 8751: 8751: basic_string(const basic_string& __str, const _Alloc& __a) 8751: : _M_dataplus(_M_local_data(), __a) 8751: { _M_construct(__str.begin(), __str.end()); } 8751: 8751: basic_string(basic_string&& __str, const _Alloc& __a) 8751: noexcept(_Alloc_traits::_S_always_equal()) 8751: : _M_dataplus(_M_local_data(), __a) 8751: { 8751: if (__str._M_is_local()) 8751: { 8751: traits_type::copy(_M_local_buf, __str._M_local_buf, 8751: _S_local_capacity + 1); 8751: _M_length(__str.length()); 8751: __str._M_set_length(0); 8751: } 8751: else if (_Alloc_traits::_S_always_equal() 8751: || __str.get_allocator() == __a) 8751: { 8751: _M_data(__str._M_data()); 8751: _M_length(__str.length()); 8751: _M_capacity(__str._M_allocated_capacity); 8751: __str._M_data(__str._M_local_buf); 8751: __str._M_set_length(0); 8751: } 8751: else 8751: _M_construct(__str.begin(), __str.end()); 8751: } 8751: # 599 "/usr/include/c++/8/bits/basic_string.h" 3 8751: template> 8751: 8751: 8751: 8751: basic_string(_InputIterator __beg, _InputIterator __end, 8751: const _Alloc& __a = _Alloc()) 8751: : _M_dataplus(_M_local_data(), __a) 8751: { _M_construct(__beg, __end); } 8751: # 646 "/usr/include/c++/8/bits/basic_string.h" 3 8751: ~basic_string() 8751: { _M_dispose(); } 8751: 8751: 8751: 8751: 8751: 8751: basic_string& 8751: operator=(const basic_string& __str) 8751: { 8751: 8751: if (_Alloc_traits::_S_propagate_on_copy_assign()) 8751: { 8751: if (!_Alloc_traits::_S_always_equal() && !_M_is_local() 8751: && _M_get_allocator() != __str._M_get_allocator()) 8751: { 8751: 8751: 8751: if (__str.size() <= _S_local_capacity) 8751: { 8751: _M_destroy(_M_allocated_capacity); 8751: _M_data(_M_local_data()); 8751: _M_set_length(0); 8751: } 8751: else 8751: { 8751: const auto __len = __str.size(); 8751: auto __alloc = __str._M_get_allocator(); 8751: 8751: auto __ptr = _Alloc_traits::allocate(__alloc, __len + 1); 8751: _M_destroy(_M_allocated_capacity); 8751: _M_data(__ptr); 8751: _M_capacity(__len); 8751: _M_set_length(__len); 8751: } 8751: } 8751: std::__alloc_on_copy(_M_get_allocator(), __str._M_get_allocator()); 8751: } 8751: 8751: return this->assign(__str); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: basic_string& 8751: operator=(const _CharT* __s) 8751: { return this->assign(__s); } 8751: # 703 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: operator=(_CharT __c) 8751: { 8751: this->assign(1, __c); 8751: return *this; 8751: } 8751: # 721 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: operator=(basic_string&& __str) 8751: noexcept(_Alloc_traits::_S_nothrow_move()) 8751: { 8751: if (!_M_is_local() && _Alloc_traits::_S_propagate_on_move_assign() 8751: && !_Alloc_traits::_S_always_equal() 8751: && _M_get_allocator() != __str._M_get_allocator()) 8751: { 8751: 8751: _M_destroy(_M_allocated_capacity); 8751: _M_data(_M_local_data()); 8751: _M_set_length(0); 8751: } 8751: 8751: std::__alloc_on_move(_M_get_allocator(), __str._M_get_allocator()); 8751: 8751: if (!__str._M_is_local() 8751: && (_Alloc_traits::_S_propagate_on_move_assign() 8751: || _Alloc_traits::_S_always_equal())) 8751: { 8751: pointer __data = nullptr; 8751: size_type __capacity; 8751: if (!_M_is_local()) 8751: { 8751: if (_Alloc_traits::_S_always_equal()) 8751: { 8751: __data = _M_data(); 8751: __capacity = _M_allocated_capacity; 8751: } 8751: else 8751: _M_destroy(_M_allocated_capacity); 8751: } 8751: 8751: _M_data(__str._M_data()); 8751: _M_length(__str.length()); 8751: _M_capacity(__str._M_allocated_capacity); 8751: if (__data) 8751: { 8751: __str._M_data(__data); 8751: __str._M_capacity(__capacity); 8751: } 8751: else 8751: __str._M_data(__str._M_local_buf); 8751: } 8751: else 8751: assign(__str); 8751: __str.clear(); 8751: return *this; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: basic_string& 8751: operator=(initializer_list<_CharT> __l) 8751: { 8751: this->assign(__l.begin(), __l.size()); 8751: return *this; 8751: } 8751: # 806 "/usr/include/c++/8/bits/basic_string.h" 3 8751: iterator 8751: begin() noexcept 8751: { return iterator(_M_data()); } 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: begin() const noexcept 8751: { return const_iterator(_M_data()); } 8751: 8751: 8751: 8751: 8751: 8751: iterator 8751: end() noexcept 8751: { return iterator(_M_data() + this->size()); } 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: end() const noexcept 8751: { return const_iterator(_M_data() + this->size()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: rbegin() noexcept 8751: { return reverse_iterator(this->end()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: rbegin() const noexcept 8751: { return const_reverse_iterator(this->end()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: rend() noexcept 8751: { return reverse_iterator(this->begin()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: rend() const noexcept 8751: { return const_reverse_iterator(this->begin()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: cbegin() const noexcept 8751: { return const_iterator(this->_M_data()); } 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: cend() const noexcept 8751: { return const_iterator(this->_M_data() + this->size()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: crbegin() const noexcept 8751: { return const_reverse_iterator(this->end()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: crend() const noexcept 8751: { return const_reverse_iterator(this->begin()); } 8751: 8751: 8751: public: 8751: 8751: 8751: 8751: size_type 8751: size() const noexcept 8751: { return _M_string_length; } 8751: 8751: 8751: 8751: size_type 8751: length() const noexcept 8751: { return _M_string_length; } 8751: 8751: 8751: size_type 8751: max_size() const noexcept 8751: { return (_Alloc_traits::max_size(_M_get_allocator()) - 1) / 2; } 8751: # 935 "/usr/include/c++/8/bits/basic_string.h" 3 8751: void 8751: resize(size_type __n, _CharT __c); 8751: # 948 "/usr/include/c++/8/bits/basic_string.h" 3 8751: void 8751: resize(size_type __n) 8751: { this->resize(__n, _CharT()); } 8751: 8751: 8751: 8751: void 8751: shrink_to_fit() noexcept 8751: { 8751: 8751: if (capacity() > size()) 8751: { 8751: try 8751: { reserve(0); } 8751: catch(...) 8751: { } 8751: } 8751: 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: size_type 8751: capacity() const noexcept 8751: { 8751: return _M_is_local() ? size_type(_S_local_capacity) 8751: : _M_allocated_capacity; 8751: } 8751: # 997 "/usr/include/c++/8/bits/basic_string.h" 3 8751: void 8751: reserve(size_type __res_arg = 0); 8751: 8751: 8751: 8751: 8751: void 8751: clear() noexcept 8751: { _M_set_length(0); } 8751: 8751: 8751: 8751: 8751: 8751: bool 8751: empty() const noexcept 8751: { return this->size() == 0; } 8751: # 1026 "/usr/include/c++/8/bits/basic_string.h" 3 8751: const_reference 8751: operator[] (size_type __pos) const noexcept 8751: { 8751: ; 8751: return _M_data()[__pos]; 8751: } 8751: # 1043 "/usr/include/c++/8/bits/basic_string.h" 3 8751: reference 8751: operator[](size_type __pos) 8751: { 8751: 8751: 8751: ; 8751: 8751: ; 8751: return _M_data()[__pos]; 8751: } 8751: # 1064 "/usr/include/c++/8/bits/basic_string.h" 3 8751: const_reference 8751: at(size_type __n) const 8751: { 8751: if (__n >= this->size()) 8751: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8751: 8751: , 8751: __n, this->size()); 8751: return _M_data()[__n]; 8751: } 8751: # 1085 "/usr/include/c++/8/bits/basic_string.h" 3 8751: reference 8751: at(size_type __n) 8751: { 8751: if (__n >= size()) 8751: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8751: 8751: , 8751: __n, this->size()); 8751: return _M_data()[__n]; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reference 8751: front() noexcept 8751: { 8751: ; 8751: return operator[](0); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: const_reference 8751: front() const noexcept 8751: { 8751: ; 8751: return operator[](0); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: reference 8751: back() noexcept 8751: { 8751: ; 8751: return operator[](this->size() - 1); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: const_reference 8751: back() const noexcept 8751: { 8751: ; 8751: return operator[](this->size() - 1); 8751: } 8751: # 1148 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: operator+=(const basic_string& __str) 8751: { return this->append(__str); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: basic_string& 8751: operator+=(const _CharT* __s) 8751: { return this->append(__s); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: basic_string& 8751: operator+=(_CharT __c) 8751: { 8751: this->push_back(__c); 8751: return *this; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: basic_string& 8751: operator+=(initializer_list<_CharT> __l) 8751: { return this->append(__l.begin(), __l.size()); } 8751: # 1201 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: append(const basic_string& __str) 8751: { return _M_append(__str._M_data(), __str.size()); } 8751: # 1218 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: append(const basic_string& __str, size_type __pos, size_type __n) 8751: { return _M_append(__str._M_data() 8751: + __str._M_check(__pos, "basic_string::append"), 8751: __str._M_limit(__pos, __n)); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: basic_string& 8751: append(const _CharT* __s, size_type __n) 8751: { 8751: ; 8751: _M_check_length(size_type(0), __n, "basic_string::append"); 8751: return _M_append(__s, __n); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: basic_string& 8751: append(const _CharT* __s) 8751: { 8751: ; 8751: const size_type __n = traits_type::length(__s); 8751: _M_check_length(size_type(0), __n, "basic_string::append"); 8751: return _M_append(__s, __n); 8751: } 8751: # 1260 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: append(size_type __n, _CharT __c) 8751: { return _M_replace_aux(this->size(), size_type(0), __n, __c); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: basic_string& 8751: append(initializer_list<_CharT> __l) 8751: { return this->append(__l.begin(), __l.size()); } 8751: # 1284 "/usr/include/c++/8/bits/basic_string.h" 3 8751: template> 8751: 8751: 8751: 8751: basic_string& 8751: append(_InputIterator __first, _InputIterator __last) 8751: { return this->replace(end(), end(), __first, __last); } 8751: # 1329 "/usr/include/c++/8/bits/basic_string.h" 3 8751: void 8751: push_back(_CharT __c) 8751: { 8751: const size_type __size = this->size(); 8751: if (__size + 1 > this->capacity()) 8751: this->_M_mutate(__size, size_type(0), 0, size_type(1)); 8751: traits_type::assign(this->_M_data()[__size], __c); 8751: this->_M_set_length(__size + 1); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: basic_string& 8751: assign(const basic_string& __str) 8751: { 8751: this->_M_assign(__str); 8751: return *this; 8751: } 8751: # 1360 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: assign(basic_string&& __str) 8751: noexcept(_Alloc_traits::_S_nothrow_move()) 8751: { 8751: 8751: 8751: return *this = std::move(__str); 8751: } 8751: # 1383 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: assign(const basic_string& __str, size_type __pos, size_type __n) 8751: { return _M_replace(size_type(0), this->size(), __str._M_data() 8751: + __str._M_check(__pos, "basic_string::assign"), 8751: __str._M_limit(__pos, __n)); } 8751: # 1399 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: assign(const _CharT* __s, size_type __n) 8751: { 8751: ; 8751: return _M_replace(size_type(0), this->size(), __s, __n); 8751: } 8751: # 1415 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: assign(const _CharT* __s) 8751: { 8751: ; 8751: return _M_replace(size_type(0), this->size(), __s, 8751: traits_type::length(__s)); 8751: } 8751: # 1432 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: assign(size_type __n, _CharT __c) 8751: { return _M_replace_aux(size_type(0), this->size(), __n, __c); } 8751: # 1445 "/usr/include/c++/8/bits/basic_string.h" 3 8751: template> 8751: 8751: 8751: 8751: basic_string& 8751: assign(_InputIterator __first, _InputIterator __last) 8751: { return this->replace(begin(), end(), __first, __last); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: basic_string& 8751: assign(initializer_list<_CharT> __l) 8751: { return this->assign(__l.begin(), __l.size()); } 8751: # 1513 "/usr/include/c++/8/bits/basic_string.h" 3 8751: iterator 8751: insert(const_iterator __p, size_type __n, _CharT __c) 8751: { 8751: ; 8751: const size_type __pos = __p - begin(); 8751: this->replace(__p, __p, __n, __c); 8751: return iterator(this->_M_data() + __pos); 8751: } 8751: # 1555 "/usr/include/c++/8/bits/basic_string.h" 3 8751: template> 8751: iterator 8751: insert(const_iterator __p, _InputIterator __beg, _InputIterator __end) 8751: { 8751: ; 8751: const size_type __pos = __p - begin(); 8751: this->replace(__p, __p, __beg, __end); 8751: return iterator(this->_M_data() + __pos); 8751: } 8751: # 1591 "/usr/include/c++/8/bits/basic_string.h" 3 8751: void 8751: insert(iterator __p, initializer_list<_CharT> __l) 8751: { 8751: ; 8751: this->insert(__p - begin(), __l.begin(), __l.size()); 8751: } 8751: # 1611 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: insert(size_type __pos1, const basic_string& __str) 8751: { return this->replace(__pos1, size_type(0), 8751: __str._M_data(), __str.size()); } 8751: # 1634 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: insert(size_type __pos1, const basic_string& __str, 8751: size_type __pos2, size_type __n) 8751: { return this->replace(__pos1, size_type(0), __str._M_data() 8751: + __str._M_check(__pos2, "basic_string::insert"), 8751: __str._M_limit(__pos2, __n)); } 8751: # 1657 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: insert(size_type __pos, const _CharT* __s, size_type __n) 8751: { return this->replace(__pos, size_type(0), __s, __n); } 8751: # 1676 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: insert(size_type __pos, const _CharT* __s) 8751: { 8751: ; 8751: return this->replace(__pos, size_type(0), __s, 8751: traits_type::length(__s)); 8751: } 8751: # 1700 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: insert(size_type __pos, size_type __n, _CharT __c) 8751: { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), 8751: size_type(0), __n, __c); } 8751: # 1718 "/usr/include/c++/8/bits/basic_string.h" 3 8751: iterator 8751: insert(__const_iterator __p, _CharT __c) 8751: { 8751: ; 8751: const size_type __pos = __p - begin(); 8751: _M_replace_aux(__pos, size_type(0), size_type(1), __c); 8751: return iterator(_M_data() + __pos); 8751: } 8751: # 1778 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: erase(size_type __pos = 0, size_type __n = npos) 8751: { 8751: _M_check(__pos, "basic_string::erase"); 8751: if (__n == npos) 8751: this->_M_set_length(__pos); 8751: else if (__n != 0) 8751: this->_M_erase(__pos, _M_limit(__pos, __n)); 8751: return *this; 8751: } 8751: # 1797 "/usr/include/c++/8/bits/basic_string.h" 3 8751: iterator 8751: erase(__const_iterator __position) 8751: { 8751: 8751: ; 8751: const size_type __pos = __position - begin(); 8751: this->_M_erase(__pos, size_type(1)); 8751: return iterator(_M_data() + __pos); 8751: } 8751: # 1816 "/usr/include/c++/8/bits/basic_string.h" 3 8751: iterator 8751: erase(__const_iterator __first, __const_iterator __last) 8751: { 8751: 8751: ; 8751: const size_type __pos = __first - begin(); 8751: if (__last == end()) 8751: this->_M_set_length(__pos); 8751: else 8751: this->_M_erase(__pos, __last - __first); 8751: return iterator(this->_M_data() + __pos); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: void 8751: pop_back() noexcept 8751: { 8751: ; 8751: _M_erase(size() - 1, 1); 8751: } 8751: # 1860 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: replace(size_type __pos, size_type __n, const basic_string& __str) 8751: { return this->replace(__pos, __n, __str._M_data(), __str.size()); } 8751: # 1882 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: replace(size_type __pos1, size_type __n1, const basic_string& __str, 8751: size_type __pos2, size_type __n2) 8751: { return this->replace(__pos1, __n1, __str._M_data() 8751: + __str._M_check(__pos2, "basic_string::replace"), 8751: __str._M_limit(__pos2, __n2)); } 8751: # 1907 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: replace(size_type __pos, size_type __n1, const _CharT* __s, 8751: size_type __n2) 8751: { 8751: ; 8751: return _M_replace(_M_check(__pos, "basic_string::replace"), 8751: _M_limit(__pos, __n1), __s, __n2); 8751: } 8751: # 1932 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: replace(size_type __pos, size_type __n1, const _CharT* __s) 8751: { 8751: ; 8751: return this->replace(__pos, __n1, __s, traits_type::length(__s)); 8751: } 8751: # 1956 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) 8751: { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), 8751: _M_limit(__pos, __n1), __n2, __c); } 8751: # 1974 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: replace(__const_iterator __i1, __const_iterator __i2, 8751: const basic_string& __str) 8751: { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } 8751: # 1994 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: replace(__const_iterator __i1, __const_iterator __i2, 8751: const _CharT* __s, size_type __n) 8751: { 8751: 8751: ; 8751: return this->replace(__i1 - begin(), __i2 - __i1, __s, __n); 8751: } 8751: # 2016 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: replace(__const_iterator __i1, __const_iterator __i2, const _CharT* __s) 8751: { 8751: ; 8751: return this->replace(__i1, __i2, __s, traits_type::length(__s)); 8751: } 8751: # 2037 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: replace(__const_iterator __i1, __const_iterator __i2, size_type __n, 8751: _CharT __c) 8751: { 8751: 8751: ; 8751: return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __c); 8751: } 8751: # 2062 "/usr/include/c++/8/bits/basic_string.h" 3 8751: template> 8751: basic_string& 8751: replace(const_iterator __i1, const_iterator __i2, 8751: _InputIterator __k1, _InputIterator __k2) 8751: { 8751: 8751: ; 8751: ; 8751: return this->_M_replace_dispatch(__i1, __i2, __k1, __k2, 8751: std::__false_type()); 8751: } 8751: # 2094 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& 8751: replace(__const_iterator __i1, __const_iterator __i2, 8751: _CharT* __k1, _CharT* __k2) 8751: { 8751: 8751: ; 8751: ; 8751: return this->replace(__i1 - begin(), __i2 - __i1, 8751: __k1, __k2 - __k1); 8751: } 8751: 8751: basic_string& 8751: replace(__const_iterator __i1, __const_iterator __i2, 8751: const _CharT* __k1, const _CharT* __k2) 8751: { 8751: 8751: ; 8751: ; 8751: return this->replace(__i1 - begin(), __i2 - __i1, 8751: __k1, __k2 - __k1); 8751: } 8751: 8751: basic_string& 8751: replace(__const_iterator __i1, __const_iterator __i2, 8751: iterator __k1, iterator __k2) 8751: { 8751: 8751: ; 8751: ; 8751: return this->replace(__i1 - begin(), __i2 - __i1, 8751: __k1.base(), __k2 - __k1); 8751: } 8751: 8751: basic_string& 8751: replace(__const_iterator __i1, __const_iterator __i2, 8751: const_iterator __k1, const_iterator __k2) 8751: { 8751: 8751: ; 8751: ; 8751: return this->replace(__i1 - begin(), __i2 - __i1, 8751: __k1.base(), __k2 - __k1); 8751: } 8751: # 2153 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string& replace(const_iterator __i1, const_iterator __i2, 8751: initializer_list<_CharT> __l) 8751: { return this->replace(__i1, __i2, __l.begin(), __l.size()); } 8751: # 2212 "/usr/include/c++/8/bits/basic_string.h" 3 8751: private: 8751: template 8751: basic_string& 8751: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 8751: _Integer __n, _Integer __val, __true_type) 8751: { return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __val); } 8751: 8751: template 8751: basic_string& 8751: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 8751: _InputIterator __k1, _InputIterator __k2, 8751: __false_type); 8751: 8751: basic_string& 8751: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 8751: _CharT __c); 8751: 8751: basic_string& 8751: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 8751: const size_type __len2); 8751: 8751: basic_string& 8751: _M_append(const _CharT* __s, size_type __n); 8751: 8751: public: 8751: # 2250 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: copy(_CharT* __s, size_type __n, size_type __pos = 0) const; 8751: # 2260 "/usr/include/c++/8/bits/basic_string.h" 3 8751: void 8751: swap(basic_string& __s) noexcept; 8751: # 2270 "/usr/include/c++/8/bits/basic_string.h" 3 8751: const _CharT* 8751: c_str() const noexcept 8751: { return _M_data(); } 8751: # 2282 "/usr/include/c++/8/bits/basic_string.h" 3 8751: const _CharT* 8751: data() const noexcept 8751: { return _M_data(); } 8751: # 2301 "/usr/include/c++/8/bits/basic_string.h" 3 8751: allocator_type 8751: get_allocator() const noexcept 8751: { return _M_get_allocator(); } 8751: # 2317 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find(const _CharT* __s, size_type __pos, size_type __n) const 8751: noexcept; 8751: # 2331 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find(const basic_string& __str, size_type __pos = 0) const 8751: noexcept 8751: { return this->find(__str.data(), __pos, __str.size()); } 8751: # 2363 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find(const _CharT* __s, size_type __pos = 0) const noexcept 8751: { 8751: ; 8751: return this->find(__s, __pos, traits_type::length(__s)); 8751: } 8751: # 2380 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find(_CharT __c, size_type __pos = 0) const noexcept; 8751: # 2393 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: rfind(const basic_string& __str, size_type __pos = npos) const 8751: noexcept 8751: { return this->rfind(__str.data(), __pos, __str.size()); } 8751: # 2427 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: rfind(const _CharT* __s, size_type __pos, size_type __n) const 8751: noexcept; 8751: # 2441 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: rfind(const _CharT* __s, size_type __pos = npos) const 8751: { 8751: ; 8751: return this->rfind(__s, __pos, traits_type::length(__s)); 8751: } 8751: # 2458 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: rfind(_CharT __c, size_type __pos = npos) const noexcept; 8751: # 2472 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find_first_of(const basic_string& __str, size_type __pos = 0) const 8751: noexcept 8751: { return this->find_first_of(__str.data(), __pos, __str.size()); } 8751: # 2507 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 8751: noexcept; 8751: # 2521 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find_first_of(const _CharT* __s, size_type __pos = 0) const 8751: noexcept 8751: { 8751: ; 8751: return this->find_first_of(__s, __pos, traits_type::length(__s)); 8751: } 8751: # 2541 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find_first_of(_CharT __c, size_type __pos = 0) const noexcept 8751: { return this->find(__c, __pos); } 8751: # 2556 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find_last_of(const basic_string& __str, size_type __pos = npos) const 8751: noexcept 8751: { return this->find_last_of(__str.data(), __pos, __str.size()); } 8751: # 2591 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 8751: noexcept; 8751: # 2605 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find_last_of(const _CharT* __s, size_type __pos = npos) const 8751: noexcept 8751: { 8751: ; 8751: return this->find_last_of(__s, __pos, traits_type::length(__s)); 8751: } 8751: # 2625 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find_last_of(_CharT __c, size_type __pos = npos) const noexcept 8751: { return this->rfind(__c, __pos); } 8751: # 2639 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find_first_not_of(const basic_string& __str, size_type __pos = 0) const 8751: noexcept 8751: { return this->find_first_not_of(__str.data(), __pos, __str.size()); } 8751: # 2674 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find_first_not_of(const _CharT* __s, size_type __pos, 8751: size_type __n) const noexcept; 8751: # 2688 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find_first_not_of(const _CharT* __s, size_type __pos = 0) const 8751: noexcept 8751: { 8751: ; 8751: return this->find_first_not_of(__s, __pos, traits_type::length(__s)); 8751: } 8751: # 2706 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find_first_not_of(_CharT __c, size_type __pos = 0) const 8751: noexcept; 8751: # 2721 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find_last_not_of(const basic_string& __str, size_type __pos = npos) const 8751: noexcept 8751: { return this->find_last_not_of(__str.data(), __pos, __str.size()); } 8751: # 2756 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find_last_not_of(const _CharT* __s, size_type __pos, 8751: size_type __n) const noexcept; 8751: # 2770 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find_last_not_of(const _CharT* __s, size_type __pos = npos) const 8751: noexcept 8751: { 8751: ; 8751: return this->find_last_not_of(__s, __pos, traits_type::length(__s)); 8751: } 8751: # 2788 "/usr/include/c++/8/bits/basic_string.h" 3 8751: size_type 8751: find_last_not_of(_CharT __c, size_type __pos = npos) const 8751: noexcept; 8751: # 2804 "/usr/include/c++/8/bits/basic_string.h" 3 8751: basic_string 8751: substr(size_type __pos = 0, size_type __n = npos) const 8751: { return basic_string(*this, 8751: _M_check(__pos, "basic_string::substr"), __n); } 8751: # 2823 "/usr/include/c++/8/bits/basic_string.h" 3 8751: int 8751: compare(const basic_string& __str) const 8751: { 8751: const size_type __size = this->size(); 8751: const size_type __osize = __str.size(); 8751: const size_type __len = std::min(__size, __osize); 8751: 8751: int __r = traits_type::compare(_M_data(), __str.data(), __len); 8751: if (!__r) 8751: __r = _S_compare(__size, __osize); 8751: return __r; 8751: } 8751: # 2916 "/usr/include/c++/8/bits/basic_string.h" 3 8751: int 8751: compare(size_type __pos, size_type __n, const basic_string& __str) const; 8751: # 2942 "/usr/include/c++/8/bits/basic_string.h" 3 8751: int 8751: compare(size_type __pos1, size_type __n1, const basic_string& __str, 8751: size_type __pos2, size_type __n2) const; 8751: # 2960 "/usr/include/c++/8/bits/basic_string.h" 3 8751: int 8751: compare(const _CharT* __s) const noexcept; 8751: # 2984 "/usr/include/c++/8/bits/basic_string.h" 3 8751: int 8751: compare(size_type __pos, size_type __n1, const _CharT* __s) const; 8751: # 3011 "/usr/include/c++/8/bits/basic_string.h" 3 8751: int 8751: compare(size_type __pos, size_type __n1, const _CharT* __s, 8751: size_type __n2) const; 8751: 8751: 8751: template friend class basic_stringbuf; 8751: }; 8751: } 8751: # 5886 "/usr/include/c++/8/bits/basic_string.h" 3 8751: template 8751: basic_string<_CharT, _Traits, _Alloc> 8751: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8751: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8751: { 8751: basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 8751: __str.append(__rhs); 8751: return __str; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: basic_string<_CharT,_Traits,_Alloc> 8751: operator+(const _CharT* __lhs, 8751: const basic_string<_CharT,_Traits,_Alloc>& __rhs); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: basic_string<_CharT,_Traits,_Alloc> 8751: operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline basic_string<_CharT, _Traits, _Alloc> 8751: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8751: const _CharT* __rhs) 8751: { 8751: basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 8751: __str.append(__rhs); 8751: return __str; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline basic_string<_CharT, _Traits, _Alloc> 8751: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) 8751: { 8751: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8751: typedef typename __string_type::size_type __size_type; 8751: __string_type __str(__lhs); 8751: __str.append(__size_type(1), __rhs); 8751: return __str; 8751: } 8751: 8751: 8751: template 8751: inline basic_string<_CharT, _Traits, _Alloc> 8751: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8751: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8751: { return std::move(__lhs.append(__rhs)); } 8751: 8751: template 8751: inline basic_string<_CharT, _Traits, _Alloc> 8751: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8751: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8751: { return std::move(__rhs.insert(0, __lhs)); } 8751: 8751: template 8751: inline basic_string<_CharT, _Traits, _Alloc> 8751: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8751: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8751: { 8751: const auto __size = __lhs.size() + __rhs.size(); 8751: const bool __cond = (__size > __lhs.capacity() 8751: && __size <= __rhs.capacity()); 8751: return __cond ? std::move(__rhs.insert(0, __lhs)) 8751: : std::move(__lhs.append(__rhs)); 8751: } 8751: 8751: template 8751: inline basic_string<_CharT, _Traits, _Alloc> 8751: operator+(const _CharT* __lhs, 8751: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8751: { return std::move(__rhs.insert(0, __lhs)); } 8751: 8751: template 8751: inline basic_string<_CharT, _Traits, _Alloc> 8751: operator+(_CharT __lhs, 8751: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8751: { return std::move(__rhs.insert(0, 1, __lhs)); } 8751: 8751: template 8751: inline basic_string<_CharT, _Traits, _Alloc> 8751: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8751: const _CharT* __rhs) 8751: { return std::move(__lhs.append(__rhs)); } 8751: 8751: template 8751: inline basic_string<_CharT, _Traits, _Alloc> 8751: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8751: _CharT __rhs) 8751: { return std::move(__lhs.append(1, __rhs)); } 8751: # 6007 "/usr/include/c++/8/bits/basic_string.h" 3 8751: template 8751: inline bool 8751: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8751: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8751: noexcept 8751: { return __lhs.compare(__rhs) == 0; } 8751: 8751: template 8751: inline 8751: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type 8751: operator==(const basic_string<_CharT>& __lhs, 8751: const basic_string<_CharT>& __rhs) noexcept 8751: { return (__lhs.size() == __rhs.size() 8751: && !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(), 8751: __lhs.size())); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline bool 8751: operator==(const _CharT* __lhs, 8751: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8751: { return __rhs.compare(__lhs) == 0; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline bool 8751: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8751: const _CharT* __rhs) 8751: { return __lhs.compare(__rhs) == 0; } 8751: # 6054 "/usr/include/c++/8/bits/basic_string.h" 3 8751: template 8751: inline bool 8751: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8751: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8751: noexcept 8751: { return !(__lhs == __rhs); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline bool 8751: operator!=(const _CharT* __lhs, 8751: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8751: { return !(__lhs == __rhs); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline bool 8751: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8751: const _CharT* __rhs) 8751: { return !(__lhs == __rhs); } 8751: # 6092 "/usr/include/c++/8/bits/basic_string.h" 3 8751: template 8751: inline bool 8751: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8751: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8751: noexcept 8751: { return __lhs.compare(__rhs) < 0; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline bool 8751: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8751: const _CharT* __rhs) 8751: { return __lhs.compare(__rhs) < 0; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline bool 8751: operator<(const _CharT* __lhs, 8751: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8751: { return __rhs.compare(__lhs) > 0; } 8751: # 6130 "/usr/include/c++/8/bits/basic_string.h" 3 8751: template 8751: inline bool 8751: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8751: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8751: noexcept 8751: { return __lhs.compare(__rhs) > 0; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline bool 8751: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8751: const _CharT* __rhs) 8751: { return __lhs.compare(__rhs) > 0; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline bool 8751: operator>(const _CharT* __lhs, 8751: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8751: { return __rhs.compare(__lhs) < 0; } 8751: # 6168 "/usr/include/c++/8/bits/basic_string.h" 3 8751: template 8751: inline bool 8751: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8751: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8751: noexcept 8751: { return __lhs.compare(__rhs) <= 0; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline bool 8751: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8751: const _CharT* __rhs) 8751: { return __lhs.compare(__rhs) <= 0; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline bool 8751: operator<=(const _CharT* __lhs, 8751: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8751: { return __rhs.compare(__lhs) >= 0; } 8751: # 6206 "/usr/include/c++/8/bits/basic_string.h" 3 8751: template 8751: inline bool 8751: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8751: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8751: noexcept 8751: { return __lhs.compare(__rhs) >= 0; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline bool 8751: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8751: const _CharT* __rhs) 8751: { return __lhs.compare(__rhs) >= 0; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline bool 8751: operator>=(const _CharT* __lhs, 8751: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8751: { return __rhs.compare(__lhs) <= 0; } 8751: # 6244 "/usr/include/c++/8/bits/basic_string.h" 3 8751: template 8751: inline void 8751: swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, 8751: basic_string<_CharT, _Traits, _Alloc>& __rhs) 8751: noexcept(noexcept(__lhs.swap(__rhs))) 8751: { __lhs.swap(__rhs); } 8751: # 6264 "/usr/include/c++/8/bits/basic_string.h" 3 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: operator>>(basic_istream<_CharT, _Traits>& __is, 8751: basic_string<_CharT, _Traits, _Alloc>& __str); 8751: 8751: template<> 8751: basic_istream& 8751: operator>>(basic_istream& __is, basic_string& __str); 8751: # 6282 "/usr/include/c++/8/bits/basic_string.h" 3 8751: template 8751: inline basic_ostream<_CharT, _Traits>& 8751: operator<<(basic_ostream<_CharT, _Traits>& __os, 8751: const basic_string<_CharT, _Traits, _Alloc>& __str) 8751: { 8751: 8751: 8751: return __ostream_insert(__os, __str.data(), __str.size()); 8751: } 8751: # 6305 "/usr/include/c++/8/bits/basic_string.h" 3 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: getline(basic_istream<_CharT, _Traits>& __is, 8751: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); 8751: # 6322 "/usr/include/c++/8/bits/basic_string.h" 3 8751: template 8751: inline basic_istream<_CharT, _Traits>& 8751: getline(basic_istream<_CharT, _Traits>& __is, 8751: basic_string<_CharT, _Traits, _Alloc>& __str) 8751: { return std::getline(__is, __str, __is.widen('\n')); } 8751: 8751: 8751: 8751: template 8751: inline basic_istream<_CharT, _Traits>& 8751: getline(basic_istream<_CharT, _Traits>&& __is, 8751: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 8751: { return std::getline(__is, __str, __delim); } 8751: 8751: 8751: template 8751: inline basic_istream<_CharT, _Traits>& 8751: getline(basic_istream<_CharT, _Traits>&& __is, 8751: basic_string<_CharT, _Traits, _Alloc>& __str) 8751: { return std::getline(__is, __str); } 8751: 8751: 8751: template<> 8751: basic_istream& 8751: getline(basic_istream& __in, basic_string& __str, 8751: char __delim); 8751: 8751: 8751: template<> 8751: basic_istream& 8751: getline(basic_istream& __in, basic_string& __str, 8751: wchar_t __delim); 8751: 8751: 8751: 8751: } 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/ext/string_conversions.h" 1 3 8751: # 32 "/usr/include/c++/8/ext/string_conversions.h" 3 8751: 8751: # 33 "/usr/include/c++/8/ext/string_conversions.h" 3 8751: # 41 "/usr/include/c++/8/ext/string_conversions.h" 3 8751: # 1 "/usr/include/c++/8/cstdlib" 1 3 8751: # 39 "/usr/include/c++/8/cstdlib" 3 8751: 8751: # 40 "/usr/include/c++/8/cstdlib" 3 8751: # 42 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8751: # 1 "/usr/include/c++/8/cwchar" 1 3 8751: # 39 "/usr/include/c++/8/cwchar" 3 8751: 8751: # 40 "/usr/include/c++/8/cwchar" 3 8751: # 43 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8751: # 1 "/usr/include/c++/8/cstdio" 1 3 8751: # 39 "/usr/include/c++/8/cstdio" 3 8751: 8751: # 40 "/usr/include/c++/8/cstdio" 3 8751: 8751: 8751: # 1 "/usr/include/stdio.h" 1 3 4 8751: # 27 "/usr/include/stdio.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 8751: # 28 "/usr/include/stdio.h" 2 3 4 8751: 8751: extern "C" { 8751: 8751: 8751: 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8751: # 34 "/usr/include/stdio.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/libio.h" 1 3 4 8751: # 31 "/usr/include/libio.h" 3 4 8751: # 1 "/usr/include/_G_config.h" 1 3 4 8751: # 15 "/usr/include/_G_config.h" 3 4 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h" 1 3 4 8751: # 16 "/usr/include/_G_config.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef struct 8751: { 8751: __off_t __pos; 8751: __mbstate_t __state; 8751: } _G_fpos_t; 8751: typedef struct 8751: { 8751: __off64_t __pos; 8751: __mbstate_t __state; 8751: } _G_fpos64_t; 8751: # 32 "/usr/include/libio.h" 2 3 4 8751: # 145 "/usr/include/libio.h" 3 4 8751: struct _IO_jump_t; struct _IO_FILE; 8751: 8751: 8751: 8751: 8751: typedef void _IO_lock_t; 8751: 8751: 8751: 8751: 8751: 8751: struct _IO_marker { 8751: struct _IO_marker *_next; 8751: struct _IO_FILE *_sbuf; 8751: 8751: 8751: 8751: int _pos; 8751: # 173 "/usr/include/libio.h" 3 4 8751: }; 8751: 8751: 8751: enum __codecvt_result 8751: { 8751: __codecvt_ok, 8751: __codecvt_partial, 8751: __codecvt_error, 8751: __codecvt_noconv 8751: }; 8751: # 241 "/usr/include/libio.h" 3 4 8751: struct _IO_FILE { 8751: int _flags; 8751: 8751: 8751: 8751: 8751: char* _IO_read_ptr; 8751: char* _IO_read_end; 8751: char* _IO_read_base; 8751: char* _IO_write_base; 8751: char* _IO_write_ptr; 8751: char* _IO_write_end; 8751: char* _IO_buf_base; 8751: char* _IO_buf_end; 8751: 8751: char *_IO_save_base; 8751: char *_IO_backup_base; 8751: char *_IO_save_end; 8751: 8751: struct _IO_marker *_markers; 8751: 8751: struct _IO_FILE *_chain; 8751: 8751: int _fileno; 8751: 8751: 8751: 8751: int _flags2; 8751: 8751: __off_t _old_offset; 8751: 8751: 8751: 8751: unsigned short _cur_column; 8751: signed char _vtable_offset; 8751: char _shortbuf[1]; 8751: 8751: 8751: 8751: _IO_lock_t *_lock; 8751: # 289 "/usr/include/libio.h" 3 4 8751: __off64_t _offset; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: void *__pad1; 8751: void *__pad2; 8751: void *__pad3; 8751: void *__pad4; 8751: 8751: size_t __pad5; 8751: int _mode; 8751: 8751: char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; 8751: 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: struct _IO_FILE_plus; 8751: 8751: extern struct _IO_FILE_plus _IO_2_1_stdin_; 8751: extern struct _IO_FILE_plus _IO_2_1_stdout_; 8751: extern struct _IO_FILE_plus _IO_2_1_stderr_; 8751: # 333 "/usr/include/libio.h" 3 4 8751: typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf, 8751: size_t __n); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); 8751: 8751: 8751: typedef int __io_close_fn (void *__cookie); 8751: 8751: 8751: 8751: 8751: typedef __io_read_fn cookie_read_function_t; 8751: typedef __io_write_fn cookie_write_function_t; 8751: typedef __io_seek_fn cookie_seek_function_t; 8751: typedef __io_close_fn cookie_close_function_t; 8751: 8751: 8751: typedef struct 8751: { 8751: __io_read_fn *read; 8751: __io_write_fn *write; 8751: __io_seek_fn *seek; 8751: __io_close_fn *close; 8751: } _IO_cookie_io_functions_t; 8751: typedef _IO_cookie_io_functions_t cookie_io_functions_t; 8751: 8751: struct _IO_cookie_file; 8751: 8751: 8751: extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, 8751: void *__cookie, _IO_cookie_io_functions_t __fns); 8751: 8751: 8751: 8751: 8751: extern "C" { 8751: 8751: 8751: extern int __underflow (_IO_FILE *); 8751: extern int __uflow (_IO_FILE *); 8751: extern int __overflow (_IO_FILE *, int); 8751: # 429 "/usr/include/libio.h" 3 4 8751: extern int _IO_getc (_IO_FILE *__fp); 8751: extern int _IO_putc (int __c, _IO_FILE *__fp); 8751: extern int _IO_feof (_IO_FILE *__fp) throw (); 8751: extern int _IO_ferror (_IO_FILE *__fp) throw (); 8751: 8751: extern int _IO_peekc_locked (_IO_FILE *__fp); 8751: 8751: 8751: 8751: 8751: 8751: extern void _IO_flockfile (_IO_FILE *) throw (); 8751: extern void _IO_funlockfile (_IO_FILE *) throw (); 8751: extern int _IO_ftrylockfile (_IO_FILE *) throw (); 8751: # 458 "/usr/include/libio.h" 3 4 8751: extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, 8751: __gnuc_va_list, int *__restrict); 8751: extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, 8751: __gnuc_va_list); 8751: extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t); 8751: extern size_t _IO_sgetn (_IO_FILE *, void *, size_t); 8751: 8751: extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int); 8751: extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int); 8751: 8751: extern void _IO_free_backup_area (_IO_FILE *) throw (); 8751: # 520 "/usr/include/libio.h" 3 4 8751: } 8751: # 42 "/usr/include/stdio.h" 2 3 4 8751: # 78 "/usr/include/stdio.h" 3 4 8751: typedef _G_fpos_t fpos_t; 8751: 8751: 8751: 8751: 8751: typedef _G_fpos64_t fpos64_t; 8751: # 131 "/usr/include/stdio.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdio_lim.h" 1 3 4 8751: # 132 "/usr/include/stdio.h" 2 3 4 8751: 8751: 8751: 8751: extern struct _IO_FILE *stdin; 8751: extern struct _IO_FILE *stdout; 8751: extern struct _IO_FILE *stderr; 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int remove (const char *__filename) throw (); 8751: 8751: extern int rename (const char *__old, const char *__new) throw (); 8751: 8751: 8751: 8751: extern int renameat (int __oldfd, const char *__old, int __newfd, 8751: const char *__new) throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern FILE *tmpfile (void) __attribute__ ((__warn_unused_result__)); 8751: # 169 "/usr/include/stdio.h" 3 4 8751: extern FILE *tmpfile64 (void) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: extern char *tmpnam (char *__s) throw () __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: extern char *tmpnam_r (char *__s) throw () __attribute__ ((__warn_unused_result__)); 8751: # 190 "/usr/include/stdio.h" 3 4 8751: extern char *tempnam (const char *__dir, const char *__pfx) 8751: throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int fclose (FILE *__stream); 8751: 8751: 8751: 8751: 8751: extern int fflush (FILE *__stream); 8751: # 213 "/usr/include/stdio.h" 3 4 8751: extern int fflush_unlocked (FILE *__stream); 8751: # 223 "/usr/include/stdio.h" 3 4 8751: extern int fcloseall (void); 8751: # 232 "/usr/include/stdio.h" 3 4 8751: extern FILE *fopen (const char *__restrict __filename, 8751: const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: extern FILE *freopen (const char *__restrict __filename, 8751: const char *__restrict __modes, 8751: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8751: # 256 "/usr/include/stdio.h" 3 4 8751: extern FILE *fopen64 (const char *__restrict __filename, 8751: const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); 8751: extern FILE *freopen64 (const char *__restrict __filename, 8751: const char *__restrict __modes, 8751: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: extern FILE *fdopen (int __fd, const char *__modes) throw () __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: 8751: extern FILE *fopencookie (void *__restrict __magic_cookie, 8751: const char *__restrict __modes, 8751: _IO_cookie_io_functions_t __io_funcs) throw () __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) 8751: throw () __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: 8751: extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); 8751: 8751: 8751: 8751: extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, 8751: int __modes, size_t __n) throw (); 8751: 8751: 8751: 8751: 8751: extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, 8751: size_t __size) throw (); 8751: 8751: 8751: extern void setlinebuf (FILE *__stream) throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int fprintf (FILE *__restrict __stream, 8751: const char *__restrict __format, ...); 8751: 8751: 8751: 8751: 8751: extern int printf (const char *__restrict __format, ...); 8751: 8751: extern int sprintf (char *__restrict __s, 8751: const char *__restrict __format, ...) throw (); 8751: 8751: 8751: 8751: 8751: 8751: extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, 8751: __gnuc_va_list __arg); 8751: 8751: 8751: 8751: 8751: extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); 8751: 8751: extern int vsprintf (char *__restrict __s, const char *__restrict __format, 8751: __gnuc_va_list __arg) throw (); 8751: 8751: 8751: 8751: extern int snprintf (char *__restrict __s, size_t __maxlen, 8751: const char *__restrict __format, ...) 8751: throw () __attribute__ ((__format__ (__printf__, 3, 4))); 8751: 8751: extern int vsnprintf (char *__restrict __s, size_t __maxlen, 8751: const char *__restrict __format, __gnuc_va_list __arg) 8751: throw () __attribute__ ((__format__ (__printf__, 3, 0))); 8751: 8751: 8751: 8751: 8751: 8751: extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, 8751: __gnuc_va_list __arg) 8751: throw () __attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 8751: extern int __asprintf (char **__restrict __ptr, 8751: const char *__restrict __fmt, ...) 8751: throw () __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 8751: extern int asprintf (char **__restrict __ptr, 8751: const char *__restrict __fmt, ...) 8751: throw () __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: extern int vdprintf (int __fd, const char *__restrict __fmt, 8751: __gnuc_va_list __arg) 8751: __attribute__ ((__format__ (__printf__, 2, 0))); 8751: extern int dprintf (int __fd, const char *__restrict __fmt, ...) 8751: __attribute__ ((__format__ (__printf__, 2, 3))); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int fscanf (FILE *__restrict __stream, 8751: const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: extern int scanf (const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 8751: 8751: extern int sscanf (const char *__restrict __s, 8751: const char *__restrict __format, ...) throw (); 8751: # 420 "/usr/include/stdio.h" 3 4 8751: extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, 8751: __gnuc_va_list __arg) 8751: __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: 8751: extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) 8751: __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: extern int vsscanf (const char *__restrict __s, 8751: const char *__restrict __format, __gnuc_va_list __arg) 8751: throw () __attribute__ ((__format__ (__scanf__, 2, 0))); 8751: # 477 "/usr/include/stdio.h" 3 4 8751: extern int fgetc (FILE *__stream); 8751: extern int getc (FILE *__stream); 8751: 8751: 8751: 8751: 8751: 8751: extern int getchar (void); 8751: # 495 "/usr/include/stdio.h" 3 4 8751: extern int getc_unlocked (FILE *__stream); 8751: extern int getchar_unlocked (void); 8751: # 506 "/usr/include/stdio.h" 3 4 8751: extern int fgetc_unlocked (FILE *__stream); 8751: # 517 "/usr/include/stdio.h" 3 4 8751: extern int fputc (int __c, FILE *__stream); 8751: extern int putc (int __c, FILE *__stream); 8751: 8751: 8751: 8751: 8751: 8751: extern int putchar (int __c); 8751: # 537 "/usr/include/stdio.h" 3 4 8751: extern int fputc_unlocked (int __c, FILE *__stream); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int putc_unlocked (int __c, FILE *__stream); 8751: extern int putchar_unlocked (int __c); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int getw (FILE *__stream); 8751: 8751: 8751: extern int putw (int __w, FILE *__stream); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 8751: __attribute__ ((__warn_unused_result__)); 8751: # 577 "/usr/include/stdio.h" 3 4 8751: extern char *gets (char *__s) __attribute__ ((__warn_unused_result__)) __attribute__ ((__deprecated__)); 8751: # 587 "/usr/include/stdio.h" 3 4 8751: extern char *fgets_unlocked (char *__restrict __s, int __n, 8751: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8751: # 603 "/usr/include/stdio.h" 3 4 8751: extern __ssize_t __getdelim (char **__restrict __lineptr, 8751: size_t *__restrict __n, int __delimiter, 8751: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8751: extern __ssize_t getdelim (char **__restrict __lineptr, 8751: size_t *__restrict __n, int __delimiter, 8751: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern __ssize_t getline (char **__restrict __lineptr, 8751: size_t *__restrict __n, 8751: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int fputs (const char *__restrict __s, FILE *__restrict __stream); 8751: 8751: 8751: 8751: 8751: 8751: extern int puts (const char *__s); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int ungetc (int __c, FILE *__stream); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern size_t fread (void *__restrict __ptr, size_t __size, 8751: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: extern size_t fwrite (const void *__restrict __ptr, size_t __size, 8751: size_t __n, FILE *__restrict __s); 8751: # 662 "/usr/include/stdio.h" 3 4 8751: extern int fputs_unlocked (const char *__restrict __s, 8751: FILE *__restrict __stream); 8751: # 673 "/usr/include/stdio.h" 3 4 8751: extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, 8751: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8751: extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, 8751: size_t __n, FILE *__restrict __stream); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int fseek (FILE *__stream, long int __off, int __whence); 8751: 8751: 8751: 8751: 8751: extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: extern void rewind (FILE *__stream); 8751: # 707 "/usr/include/stdio.h" 3 4 8751: extern int fseeko (FILE *__stream, __off_t __off, int __whence); 8751: 8751: 8751: 8751: 8751: extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__)); 8751: # 731 "/usr/include/stdio.h" 3 4 8751: extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); 8751: 8751: 8751: 8751: 8751: extern int fsetpos (FILE *__stream, const fpos_t *__pos); 8751: # 750 "/usr/include/stdio.h" 3 4 8751: extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); 8751: extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__)); 8751: extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); 8751: extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos); 8751: 8751: 8751: 8751: extern void clearerr (FILE *__stream) throw (); 8751: 8751: extern int feof (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8751: 8751: extern int ferror (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: extern void clearerr_unlocked (FILE *__stream) throw (); 8751: extern int feof_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8751: extern int ferror_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern void perror (const char *__s); 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/sys_errlist.h" 1 3 4 8751: # 26 "/usr/include/arm-linux-gnueabihf/bits/sys_errlist.h" 3 4 8751: extern int sys_nerr; 8751: extern const char *const sys_errlist[]; 8751: 8751: 8751: extern int _sys_nerr; 8751: extern const char *const _sys_errlist[]; 8751: # 782 "/usr/include/stdio.h" 2 3 4 8751: 8751: 8751: 8751: 8751: extern int fileno (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: extern int fileno_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8751: # 800 "/usr/include/stdio.h" 3 4 8751: extern FILE *popen (const char *__command, const char *__modes) __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: 8751: 8751: 8751: extern int pclose (FILE *__stream); 8751: 8751: 8751: 8751: 8751: 8751: extern char *ctermid (char *__s) throw (); 8751: 8751: 8751: 8751: 8751: 8751: extern char *cuserid (char *__s); 8751: 8751: 8751: 8751: 8751: struct obstack; 8751: 8751: 8751: extern int obstack_printf (struct obstack *__restrict __obstack, 8751: const char *__restrict __format, ...) 8751: throw () __attribute__ ((__format__ (__printf__, 2, 3))); 8751: extern int obstack_vprintf (struct obstack *__restrict __obstack, 8751: const char *__restrict __format, 8751: __gnuc_va_list __args) 8751: throw () __attribute__ ((__format__ (__printf__, 2, 0))); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern void flockfile (FILE *__stream) throw (); 8751: 8751: 8751: 8751: extern int ftrylockfile (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8751: 8751: 8751: extern void funlockfile (FILE *__stream) throw (); 8751: # 859 "/usr/include/stdio.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdio.h" 1 3 4 8751: # 43 "/usr/include/arm-linux-gnueabihf/bits/stdio.h" 3 4 8751: extern __inline __attribute__ ((__gnu_inline__)) int 8751: getchar (void) 8751: { 8751: return _IO_getc (stdin); 8751: } 8751: 8751: 8751: 8751: 8751: extern __inline __attribute__ ((__gnu_inline__)) int 8751: fgetc_unlocked (FILE *__fp) 8751: { 8751: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: extern __inline __attribute__ ((__gnu_inline__)) int 8751: getc_unlocked (FILE *__fp) 8751: { 8751: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 8751: } 8751: 8751: 8751: extern __inline __attribute__ ((__gnu_inline__)) int 8751: getchar_unlocked (void) 8751: { 8751: return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); 8751: } 8751: 8751: 8751: 8751: 8751: extern __inline __attribute__ ((__gnu_inline__)) int 8751: putchar (int __c) 8751: { 8751: return _IO_putc (__c, stdout); 8751: } 8751: 8751: 8751: 8751: 8751: extern __inline __attribute__ ((__gnu_inline__)) int 8751: fputc_unlocked (int __c, FILE *__stream) 8751: { 8751: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: extern __inline __attribute__ ((__gnu_inline__)) int 8751: putc_unlocked (int __c, FILE *__stream) 8751: { 8751: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 8751: } 8751: 8751: 8751: extern __inline __attribute__ ((__gnu_inline__)) int 8751: putchar_unlocked (int __c) 8751: { 8751: return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: extern __inline __attribute__ ((__gnu_inline__)) __ssize_t 8751: getline (char **__lineptr, size_t *__n, FILE *__stream) 8751: { 8751: return __getdelim (__lineptr, __n, '\n', __stream); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: extern __inline __attribute__ ((__gnu_inline__)) int 8751: __attribute__ ((__leaf__)) feof_unlocked (FILE *__stream) throw () 8751: { 8751: return (((__stream)->_flags & 0x10) != 0); 8751: } 8751: 8751: 8751: extern __inline __attribute__ ((__gnu_inline__)) int 8751: __attribute__ ((__leaf__)) ferror_unlocked (FILE *__stream) throw () 8751: { 8751: return (((__stream)->_flags & 0x20) != 0); 8751: } 8751: # 860 "/usr/include/stdio.h" 2 3 4 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/stdio2.h" 1 3 4 8751: # 23 "/usr/include/arm-linux-gnueabihf/bits/stdio2.h" 3 4 8751: extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, 8751: const char *__restrict __format, ...) throw (); 8751: extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, 8751: const char *__restrict __format, 8751: __gnuc_va_list __ap) throw (); 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: __attribute__ ((__leaf__)) sprintf (char *__restrict __s, const char *__restrict __fmt, ...) throw () 8751: { 8751: return __builtin___sprintf_chk (__s, 2 - 1, 8751: __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: __attribute__ ((__leaf__)) vsprintf (char *__restrict __s, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8751: 8751: { 8751: return __builtin___vsprintf_chk (__s, 2 - 1, 8751: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 8751: } 8751: 8751: 8751: 8751: extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, 8751: size_t __slen, const char *__restrict __format, 8751: ...) throw (); 8751: extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, 8751: size_t __slen, const char *__restrict __format, 8751: __gnuc_va_list __ap) throw (); 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: __attribute__ ((__leaf__)) snprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, ...) throw () 8751: 8751: { 8751: return __builtin___snprintf_chk (__s, __n, 2 - 1, 8751: __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: __attribute__ ((__leaf__)) vsnprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8751: 8751: { 8751: return __builtin___vsnprintf_chk (__s, __n, 2 - 1, 8751: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: extern int __fprintf_chk (FILE *__restrict __stream, int __flag, 8751: const char *__restrict __format, ...); 8751: extern int __printf_chk (int __flag, const char *__restrict __format, ...); 8751: extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, 8751: const char *__restrict __format, __gnuc_va_list __ap); 8751: extern int __vprintf_chk (int __flag, const char *__restrict __format, 8751: __gnuc_va_list __ap); 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: fprintf (FILE *__restrict __stream, const char *__restrict __fmt, ...) 8751: { 8751: return __fprintf_chk (__stream, 2 - 1, __fmt, 8751: __builtin_va_arg_pack ()); 8751: } 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: printf (const char *__restrict __fmt, ...) 8751: { 8751: return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: vprintf (const char *__restrict __fmt, __gnuc_va_list __ap) 8751: { 8751: 8751: return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap); 8751: 8751: 8751: 8751: } 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: vfprintf (FILE *__restrict __stream, 8751: const char *__restrict __fmt, __gnuc_va_list __ap) 8751: { 8751: return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap); 8751: } 8751: 8751: 8751: extern int __dprintf_chk (int __fd, int __flag, const char *__restrict __fmt, 8751: ...) __attribute__ ((__format__ (__printf__, 3, 4))); 8751: extern int __vdprintf_chk (int __fd, int __flag, 8751: const char *__restrict __fmt, __gnuc_va_list __arg) 8751: __attribute__ ((__format__ (__printf__, 3, 0))); 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: dprintf (int __fd, const char *__restrict __fmt, ...) 8751: { 8751: return __dprintf_chk (__fd, 2 - 1, __fmt, 8751: __builtin_va_arg_pack ()); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: vdprintf (int __fd, const char *__restrict __fmt, __gnuc_va_list __ap) 8751: { 8751: return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap); 8751: } 8751: 8751: 8751: 8751: 8751: extern int __asprintf_chk (char **__restrict __ptr, int __flag, 8751: const char *__restrict __fmt, ...) 8751: throw () __attribute__ ((__format__ (__printf__, 3, 4))) __attribute__ ((__warn_unused_result__)); 8751: extern int __vasprintf_chk (char **__restrict __ptr, int __flag, 8751: const char *__restrict __fmt, __gnuc_va_list __arg) 8751: throw () __attribute__ ((__format__ (__printf__, 3, 0))) __attribute__ ((__warn_unused_result__)); 8751: extern int __obstack_printf_chk (struct obstack *__restrict __obstack, 8751: int __flag, const char *__restrict __format, 8751: ...) 8751: throw () __attribute__ ((__format__ (__printf__, 3, 4))); 8751: extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack, 8751: int __flag, 8751: const char *__restrict __format, 8751: __gnuc_va_list __args) 8751: throw () __attribute__ ((__format__ (__printf__, 3, 0))); 8751: 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: __attribute__ ((__leaf__)) asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) throw () 8751: { 8751: return __asprintf_chk (__ptr, 2 - 1, __fmt, 8751: __builtin_va_arg_pack ()); 8751: } 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: __attribute__ ((__leaf__)) __asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) throw () 8751: 8751: { 8751: return __asprintf_chk (__ptr, 2 - 1, __fmt, 8751: __builtin_va_arg_pack ()); 8751: } 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: __attribute__ ((__leaf__)) obstack_printf (struct obstack *__restrict __obstack, const char *__restrict __fmt, ...) throw () 8751: 8751: { 8751: return __obstack_printf_chk (__obstack, 2 - 1, __fmt, 8751: __builtin_va_arg_pack ()); 8751: } 8751: # 206 "/usr/include/arm-linux-gnueabihf/bits/stdio2.h" 3 4 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: __attribute__ ((__leaf__)) vasprintf (char **__restrict __ptr, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8751: 8751: { 8751: return __vasprintf_chk (__ptr, 2 - 1, __fmt, __ap); 8751: } 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8751: __attribute__ ((__leaf__)) obstack_vprintf (struct obstack *__restrict __obstack, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8751: 8751: { 8751: return __obstack_vprintf_chk (__obstack, 2 - 1, __fmt, 8751: __ap); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__)); 8751: extern char *__gets_warn (char *__str) __asm__ ("" "gets") 8751: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use fgets or getline instead, gets can't " "specify buffer size"))) 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8751: gets (char *__str) 8751: { 8751: if (__builtin_object_size (__str, 2 > 1) != (size_t) -1) 8751: return __gets_chk (__str, __builtin_object_size (__str, 2 > 1)); 8751: return __gets_warn (__str); 8751: } 8751: 8751: 8751: extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, 8751: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8751: extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") 8751: 8751: __attribute__ ((__warn_unused_result__)); 8751: extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk") 8751: 8751: 8751: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer"))) 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8751: fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 8751: { 8751: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__n) || __n <= 0) 8751: return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8751: 8751: if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) 8751: return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8751: } 8751: return __fgets_alias (__s, __n, __stream); 8751: } 8751: 8751: extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, 8751: size_t __size, size_t __n, 8751: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8751: extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") 8751: 8751: 8751: __attribute__ ((__warn_unused_result__)); 8751: extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk") 8751: 8751: 8751: 8751: 8751: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer"))) 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 8751: fread (void *__restrict __ptr, size_t __size, size_t __n, 8751: FILE *__restrict __stream) 8751: { 8751: if (__builtin_object_size (__ptr, 0) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__size) 8751: || !__builtin_constant_p (__n) 8751: || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) 8751: return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); 8751: 8751: if (__size * __n > __builtin_object_size (__ptr, 0)) 8751: return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); 8751: } 8751: return __fread_alias (__ptr, __size, __n, __stream); 8751: } 8751: 8751: 8751: extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, 8751: int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8751: extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked") 8751: 8751: __attribute__ ((__warn_unused_result__)); 8751: extern char *__fgets_unlocked_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_unlocked_chk") 8751: 8751: 8751: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets_unlocked called with bigger size than length " "of destination buffer"))) 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8751: fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) 8751: { 8751: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__n) || __n <= 0) 8751: return __fgets_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8751: 8751: if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) 8751: return __fgets_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8751: } 8751: return __fgets_unlocked_alias (__s, __n, __stream); 8751: } 8751: 8751: 8751: 8751: 8751: extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, 8751: size_t __size, size_t __n, 8751: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8751: extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked") 8751: 8751: 8751: __attribute__ ((__warn_unused_result__)); 8751: 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") 8751: 8751: 8751: 8751: 8751: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer"))) 8751: ; 8751: 8751: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 8751: fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, 8751: FILE *__restrict __stream) 8751: { 8751: if (__builtin_object_size (__ptr, 0) != (size_t) -1) 8751: { 8751: if (!__builtin_constant_p (__size) 8751: || !__builtin_constant_p (__n) 8751: || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) 8751: return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, 8751: __stream); 8751: 8751: if (__size * __n > __builtin_object_size (__ptr, 0)) 8751: return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, 8751: __stream); 8751: } 8751: 8751: 8751: if (__builtin_constant_p (__size) 8751: && __builtin_constant_p (__n) 8751: && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) 8751: && __size * __n <= 8) 8751: { 8751: size_t __cnt = __size * __n; 8751: char *__cptr = (char *) __ptr; 8751: if (__cnt == 0) 8751: return 0; 8751: 8751: for (; __cnt > 0; --__cnt) 8751: { 8751: int __c = (__builtin_expect (((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow (__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++); 8751: if (__c == (-1)) 8751: break; 8751: *__cptr++ = __c; 8751: } 8751: return (__cptr - (char *) __ptr) / __size; 8751: } 8751: 8751: return __fread_unlocked_alias (__ptr, __size, __n, __stream); 8751: } 8751: # 863 "/usr/include/stdio.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: } 8751: # 43 "/usr/include/c++/8/cstdio" 2 3 8751: # 96 "/usr/include/c++/8/cstdio" 3 8751: namespace std 8751: { 8751: using ::FILE; 8751: using ::fpos_t; 8751: 8751: using ::clearerr; 8751: using ::fclose; 8751: using ::feof; 8751: using ::ferror; 8751: using ::fflush; 8751: using ::fgetc; 8751: using ::fgetpos; 8751: using ::fgets; 8751: using ::fopen; 8751: using ::fprintf; 8751: using ::fputc; 8751: using ::fputs; 8751: using ::fread; 8751: using ::freopen; 8751: using ::fscanf; 8751: using ::fseek; 8751: using ::fsetpos; 8751: using ::ftell; 8751: using ::fwrite; 8751: using ::getc; 8751: using ::getchar; 8751: 8751: 8751: using ::gets; 8751: 8751: using ::perror; 8751: using ::printf; 8751: using ::putc; 8751: using ::putchar; 8751: using ::puts; 8751: using ::remove; 8751: using ::rename; 8751: using ::rewind; 8751: using ::scanf; 8751: using ::setbuf; 8751: using ::setvbuf; 8751: using ::sprintf; 8751: using ::sscanf; 8751: using ::tmpfile; 8751: 8751: using ::tmpnam; 8751: 8751: using ::ungetc; 8751: using ::vfprintf; 8751: using ::vprintf; 8751: using ::vsprintf; 8751: } 8751: # 157 "/usr/include/c++/8/cstdio" 3 8751: namespace __gnu_cxx 8751: { 8751: # 175 "/usr/include/c++/8/cstdio" 3 8751: using ::snprintf; 8751: using ::vfscanf; 8751: using ::vscanf; 8751: using ::vsnprintf; 8751: using ::vsscanf; 8751: 8751: } 8751: 8751: namespace std 8751: { 8751: using ::__gnu_cxx::snprintf; 8751: using ::__gnu_cxx::vfscanf; 8751: using ::__gnu_cxx::vscanf; 8751: using ::__gnu_cxx::vsnprintf; 8751: using ::__gnu_cxx::vsscanf; 8751: } 8751: # 44 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8751: # 1 "/usr/include/c++/8/cerrno" 1 3 8751: # 39 "/usr/include/c++/8/cerrno" 3 8751: 8751: # 40 "/usr/include/c++/8/cerrno" 3 8751: 8751: 8751: # 1 "/usr/include/errno.h" 1 3 4 8751: # 28 "/usr/include/errno.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/errno.h" 1 3 4 8751: # 26 "/usr/include/arm-linux-gnueabihf/bits/errno.h" 3 4 8751: # 1 "/usr/include/linux/errno.h" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/asm/errno.h" 1 3 4 8751: # 1 "/usr/include/asm-generic/errno.h" 1 3 4 8751: 8751: 8751: 8751: # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 8751: # 5 "/usr/include/asm-generic/errno.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/asm/errno.h" 2 3 4 8751: # 1 "/usr/include/linux/errno.h" 2 3 4 8751: # 27 "/usr/include/arm-linux-gnueabihf/bits/errno.h" 2 3 4 8751: # 29 "/usr/include/errno.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: extern "C" { 8751: 8751: 8751: extern int *__errno_location (void) throw () __attribute__ ((__const__)); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern char *program_invocation_name; 8751: extern char *program_invocation_short_name; 8751: 8751: 8751: 8751: 8751: 8751: typedef int error_t; 8751: 8751: 8751: 8751: 8751: } 8751: # 43 "/usr/include/c++/8/cerrno" 2 3 8751: # 45 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8751: 8751: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: template 8751: _Ret 8751: __stoa(_TRet (*__convf) (const _CharT*, _CharT**, _Base...), 8751: const char* __name, const _CharT* __str, std::size_t* __idx, 8751: _Base... __base) 8751: { 8751: _Ret __ret; 8751: 8751: _CharT* __endptr; 8751: 8751: struct _Save_errno { 8751: _Save_errno() : _M_errno((*__errno_location ())) { (*__errno_location ()) = 0; } 8751: ~_Save_errno() { if ((*__errno_location ()) == 0) (*__errno_location ()) = _M_errno; } 8751: int _M_errno; 8751: } const __save_errno; 8751: 8751: struct _Range_chk { 8751: static bool 8751: _S_chk(_TRet, std::false_type) { return false; } 8751: 8751: static bool 8751: _S_chk(_TRet __val, std::true_type) 8751: { 8751: return __val < _TRet(__numeric_traits::__min) 8751: || __val > _TRet(__numeric_traits::__max); 8751: } 8751: }; 8751: 8751: const _TRet __tmp = __convf(__str, &__endptr, __base...); 8751: 8751: if (__endptr == __str) 8751: std::__throw_invalid_argument(__name); 8751: else if ((*__errno_location ()) == 34 8751: || _Range_chk::_S_chk(__tmp, std::is_same<_Ret, int>{})) 8751: std::__throw_out_of_range(__name); 8751: else 8751: __ret = __tmp; 8751: 8751: if (__idx) 8751: *__idx = __endptr - __str; 8751: 8751: return __ret; 8751: } 8751: 8751: 8751: template 8751: _String 8751: __to_xstring(int (*__convf) (_CharT*, std::size_t, const _CharT*, 8751: __builtin_va_list), std::size_t __n, 8751: const _CharT* __fmt, ...) 8751: { 8751: 8751: 8751: _CharT* __s = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8751: * __n)); 8751: 8751: __builtin_va_list __args; 8751: __builtin_va_start(__args, __fmt); 8751: 8751: const int __len = __convf(__s, __n, __fmt, __args); 8751: 8751: __builtin_va_end(__args); 8751: 8751: return _String(__s, __s + __len); 8751: } 8751: 8751: 8751: } 8751: # 6362 "/usr/include/c++/8/bits/basic_string.h" 2 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: namespace __cxx11 { 8751: 8751: 8751: 8751: inline int 8751: stoi(const string& __str, size_t* __idx = 0, int __base = 10) 8751: { return __gnu_cxx::__stoa(&std::strtol, "stoi", __str.c_str(), 8751: __idx, __base); } 8751: 8751: inline long 8751: stol(const string& __str, size_t* __idx = 0, int __base = 10) 8751: { return __gnu_cxx::__stoa(&std::strtol, "stol", __str.c_str(), 8751: __idx, __base); } 8751: 8751: inline unsigned long 8751: stoul(const string& __str, size_t* __idx = 0, int __base = 10) 8751: { return __gnu_cxx::__stoa(&std::strtoul, "stoul", __str.c_str(), 8751: __idx, __base); } 8751: 8751: inline long long 8751: stoll(const string& __str, size_t* __idx = 0, int __base = 10) 8751: { return __gnu_cxx::__stoa(&std::strtoll, "stoll", __str.c_str(), 8751: __idx, __base); } 8751: 8751: inline unsigned long long 8751: stoull(const string& __str, size_t* __idx = 0, int __base = 10) 8751: { return __gnu_cxx::__stoa(&std::strtoull, "stoull", __str.c_str(), 8751: __idx, __base); } 8751: 8751: 8751: inline float 8751: stof(const string& __str, size_t* __idx = 0) 8751: { return __gnu_cxx::__stoa(&std::strtof, "stof", __str.c_str(), __idx); } 8751: 8751: inline double 8751: stod(const string& __str, size_t* __idx = 0) 8751: { return __gnu_cxx::__stoa(&std::strtod, "stod", __str.c_str(), __idx); } 8751: 8751: inline long double 8751: stold(const string& __str, size_t* __idx = 0) 8751: { return __gnu_cxx::__stoa(&std::strtold, "stold", __str.c_str(), __idx); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: inline string 8751: to_string(int __val) 8751: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(int), 8751: "%d", __val); } 8751: 8751: inline string 8751: to_string(unsigned __val) 8751: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8751: 4 * sizeof(unsigned), 8751: "%u", __val); } 8751: 8751: inline string 8751: to_string(long __val) 8751: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(long), 8751: "%ld", __val); } 8751: 8751: inline string 8751: to_string(unsigned long __val) 8751: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8751: 4 * sizeof(unsigned long), 8751: "%lu", __val); } 8751: 8751: inline string 8751: to_string(long long __val) 8751: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8751: 4 * sizeof(long long), 8751: "%lld", __val); } 8751: 8751: inline string 8751: to_string(unsigned long long __val) 8751: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8751: 4 * sizeof(unsigned long long), 8751: "%llu", __val); } 8751: 8751: inline string 8751: to_string(float __val) 8751: { 8751: const int __n = 8751: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8751: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 8751: "%f", __val); 8751: } 8751: 8751: inline string 8751: to_string(double __val) 8751: { 8751: const int __n = 8751: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8751: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 8751: "%f", __val); 8751: } 8751: 8751: inline string 8751: to_string(long double __val) 8751: { 8751: const int __n = 8751: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8751: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 8751: "%Lf", __val); 8751: } 8751: 8751: 8751: 8751: inline int 8751: stoi(const wstring& __str, size_t* __idx = 0, int __base = 10) 8751: { return __gnu_cxx::__stoa(&std::wcstol, "stoi", __str.c_str(), 8751: __idx, __base); } 8751: 8751: inline long 8751: stol(const wstring& __str, size_t* __idx = 0, int __base = 10) 8751: { return __gnu_cxx::__stoa(&std::wcstol, "stol", __str.c_str(), 8751: __idx, __base); } 8751: 8751: inline unsigned long 8751: stoul(const wstring& __str, size_t* __idx = 0, int __base = 10) 8751: { return __gnu_cxx::__stoa(&std::wcstoul, "stoul", __str.c_str(), 8751: __idx, __base); } 8751: 8751: inline long long 8751: stoll(const wstring& __str, size_t* __idx = 0, int __base = 10) 8751: { return __gnu_cxx::__stoa(&std::wcstoll, "stoll", __str.c_str(), 8751: __idx, __base); } 8751: 8751: inline unsigned long long 8751: stoull(const wstring& __str, size_t* __idx = 0, int __base = 10) 8751: { return __gnu_cxx::__stoa(&std::wcstoull, "stoull", __str.c_str(), 8751: __idx, __base); } 8751: 8751: 8751: inline float 8751: stof(const wstring& __str, size_t* __idx = 0) 8751: { return __gnu_cxx::__stoa(&std::wcstof, "stof", __str.c_str(), __idx); } 8751: 8751: inline double 8751: stod(const wstring& __str, size_t* __idx = 0) 8751: { return __gnu_cxx::__stoa(&std::wcstod, "stod", __str.c_str(), __idx); } 8751: 8751: inline long double 8751: stold(const wstring& __str, size_t* __idx = 0) 8751: { return __gnu_cxx::__stoa(&std::wcstold, "stold", __str.c_str(), __idx); } 8751: 8751: 8751: 8751: inline wstring 8751: to_wstring(int __val) 8751: { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(int), 8751: L"%d", __val); } 8751: 8751: inline wstring 8751: to_wstring(unsigned __val) 8751: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8751: 4 * sizeof(unsigned), 8751: L"%u", __val); } 8751: 8751: inline wstring 8751: to_wstring(long __val) 8751: { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(long), 8751: L"%ld", __val); } 8751: 8751: inline wstring 8751: to_wstring(unsigned long __val) 8751: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8751: 4 * sizeof(unsigned long), 8751: L"%lu", __val); } 8751: 8751: inline wstring 8751: to_wstring(long long __val) 8751: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8751: 4 * sizeof(long long), 8751: L"%lld", __val); } 8751: 8751: inline wstring 8751: to_wstring(unsigned long long __val) 8751: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8751: 4 * sizeof(unsigned long long), 8751: L"%llu", __val); } 8751: 8751: inline wstring 8751: to_wstring(float __val) 8751: { 8751: const int __n = 8751: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8751: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 8751: L"%f", __val); 8751: } 8751: 8751: inline wstring 8751: to_wstring(double __val) 8751: { 8751: const int __n = 8751: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8751: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 8751: L"%f", __val); 8751: } 8751: 8751: inline wstring 8751: to_wstring(long double __val) 8751: { 8751: const int __n = 8751: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8751: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 8751: L"%Lf", __val); 8751: } 8751: 8751: 8751: 8751: } 8751: 8751: } 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/functional_hash.h" 1 3 8751: # 33 "/usr/include/c++/8/bits/functional_hash.h" 3 8751: 8751: # 34 "/usr/include/c++/8/bits/functional_hash.h" 3 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 49 "/usr/include/c++/8/bits/functional_hash.h" 3 8751: template 8751: struct __hash_base 8751: { 8751: typedef _Result result_type ; 8751: typedef _Arg argument_type ; 8751: }; 8751: 8751: 8751: template 8751: struct hash; 8751: 8751: template 8751: struct __poison_hash 8751: { 8751: static constexpr bool __enable_hash_call = false; 8751: private: 8751: 8751: __poison_hash(__poison_hash&&); 8751: ~__poison_hash(); 8751: }; 8751: 8751: template 8751: struct __poison_hash<_Tp, __void_t()(declval<_Tp>()))>> 8751: { 8751: static constexpr bool __enable_hash_call = true; 8751: }; 8751: 8751: 8751: template::value> 8751: struct __hash_enum 8751: { 8751: private: 8751: 8751: __hash_enum(__hash_enum&&); 8751: ~__hash_enum(); 8751: }; 8751: 8751: 8751: template 8751: struct __hash_enum<_Tp, true> : public __hash_base 8751: { 8751: size_t 8751: operator()(_Tp __val) const noexcept 8751: { 8751: using __type = typename underlying_type<_Tp>::type; 8751: return hash<__type>{}(static_cast<__type>(__val)); 8751: } 8751: }; 8751: 8751: 8751: 8751: template 8751: struct hash : __hash_enum<_Tp> 8751: { }; 8751: 8751: 8751: template 8751: struct hash<_Tp*> : public __hash_base 8751: { 8751: size_t 8751: operator()(_Tp* __p) const noexcept 8751: { return reinterpret_cast(__p); } 8751: }; 8751: # 124 "/usr/include/c++/8/bits/functional_hash.h" 3 8751: template<> struct hash : public __hash_base { size_t operator()(bool __val) const noexcept { return static_cast(__val); } }; 8751: 8751: 8751: template<> struct hash : public __hash_base { size_t operator()(char __val) const noexcept { return static_cast(__val); } }; 8751: 8751: 8751: template<> struct hash : public __hash_base { size_t operator()(signed char __val) const noexcept { return static_cast(__val); } }; 8751: 8751: 8751: template<> struct hash : public __hash_base { size_t operator()(unsigned char __val) const noexcept { return static_cast(__val); } }; 8751: 8751: 8751: template<> struct hash : public __hash_base { size_t operator()(wchar_t __val) const noexcept { return static_cast(__val); } }; 8751: 8751: 8751: template<> struct hash : public __hash_base { size_t operator()(char16_t __val) const noexcept { return static_cast(__val); } }; 8751: 8751: 8751: template<> struct hash : public __hash_base { size_t operator()(char32_t __val) const noexcept { return static_cast(__val); } }; 8751: 8751: 8751: template<> struct hash : public __hash_base { size_t operator()(short __val) const noexcept { return static_cast(__val); } }; 8751: 8751: 8751: template<> struct hash : public __hash_base { size_t operator()(int __val) const noexcept { return static_cast(__val); } }; 8751: 8751: 8751: template<> struct hash : public __hash_base { size_t operator()(long __val) const noexcept { return static_cast(__val); } }; 8751: 8751: 8751: template<> struct hash : public __hash_base { size_t operator()(long long __val) const noexcept { return static_cast(__val); } }; 8751: 8751: 8751: template<> struct hash : public __hash_base { size_t operator()(unsigned short __val) const noexcept { return static_cast(__val); } }; 8751: 8751: 8751: template<> struct hash : public __hash_base { size_t operator()(unsigned int __val) const noexcept { return static_cast(__val); } }; 8751: 8751: 8751: template<> struct hash : public __hash_base { size_t operator()(unsigned long __val) const noexcept { return static_cast(__val); } }; 8751: 8751: 8751: template<> struct hash : public __hash_base { size_t operator()(unsigned long long __val) const noexcept { return static_cast(__val); } }; 8751: # 187 "/usr/include/c++/8/bits/functional_hash.h" 3 8751: struct _Hash_impl 8751: { 8751: static size_t 8751: hash(const void* __ptr, size_t __clength, 8751: size_t __seed = static_cast(0xc70f6907UL)) 8751: { return _Hash_bytes(__ptr, __clength, __seed); } 8751: 8751: template 8751: static size_t 8751: hash(const _Tp& __val) 8751: { return hash(&__val, sizeof(__val)); } 8751: 8751: template 8751: static size_t 8751: __hash_combine(const _Tp& __val, size_t __hash) 8751: { return hash(&__val, sizeof(__val), __hash); } 8751: }; 8751: 8751: 8751: struct _Fnv_hash_impl 8751: { 8751: static size_t 8751: hash(const void* __ptr, size_t __clength, 8751: size_t __seed = static_cast(2166136261UL)) 8751: { return _Fnv_hash_bytes(__ptr, __clength, __seed); } 8751: 8751: template 8751: static size_t 8751: hash(const _Tp& __val) 8751: { return hash(&__val, sizeof(__val)); } 8751: 8751: template 8751: static size_t 8751: __hash_combine(const _Tp& __val, size_t __hash) 8751: { return hash(&__val, sizeof(__val), __hash); } 8751: }; 8751: 8751: 8751: template<> 8751: struct hash : public __hash_base 8751: { 8751: size_t 8751: operator()(float __val) const noexcept 8751: { 8751: 8751: return __val != 0.0f ? std::_Hash_impl::hash(__val) : 0; 8751: } 8751: }; 8751: 8751: 8751: template<> 8751: struct hash : public __hash_base 8751: { 8751: size_t 8751: operator()(double __val) const noexcept 8751: { 8751: 8751: return __val != 0.0 ? std::_Hash_impl::hash(__val) : 0; 8751: } 8751: }; 8751: 8751: 8751: template<> 8751: struct hash 8751: : public __hash_base 8751: { 8751: __attribute__ ((__pure__)) size_t 8751: operator()(long double __val) const noexcept; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct __is_fast_hash : public std::true_type 8751: { }; 8751: 8751: template<> 8751: struct __is_fast_hash> : public std::false_type 8751: { }; 8751: 8751: 8751: } 8751: # 6588 "/usr/include/c++/8/bits/basic_string.h" 2 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: template<> 8751: struct hash 8751: : public __hash_base 8751: { 8751: size_t 8751: operator()(const string& __s) const noexcept 8751: { return std::_Hash_impl::hash(__s.data(), __s.length()); } 8751: }; 8751: 8751: template<> 8751: struct __is_fast_hash> : std::false_type 8751: { }; 8751: 8751: 8751: 8751: template<> 8751: struct hash 8751: : public __hash_base 8751: { 8751: size_t 8751: operator()(const wstring& __s) const noexcept 8751: { return std::_Hash_impl::hash(__s.data(), 8751: __s.length() * sizeof(wchar_t)); } 8751: }; 8751: 8751: template<> 8751: struct __is_fast_hash> : std::false_type 8751: { }; 8751: 8751: 8751: 8751: 8751: 8751: template<> 8751: struct hash 8751: : public __hash_base 8751: { 8751: size_t 8751: operator()(const u16string& __s) const noexcept 8751: { return std::_Hash_impl::hash(__s.data(), 8751: __s.length() * sizeof(char16_t)); } 8751: }; 8751: 8751: template<> 8751: struct __is_fast_hash> : std::false_type 8751: { }; 8751: 8751: 8751: template<> 8751: struct hash 8751: : public __hash_base 8751: { 8751: size_t 8751: operator()(const u32string& __s) const noexcept 8751: { return std::_Hash_impl::hash(__s.data(), 8751: __s.length() * sizeof(char32_t)); } 8751: }; 8751: 8751: template<> 8751: struct __is_fast_hash> : std::false_type 8751: { }; 8751: # 6700 "/usr/include/c++/8/bits/basic_string.h" 3 8751: 8751: } 8751: # 53 "/usr/include/c++/8/string" 2 3 8751: # 1 "/usr/include/c++/8/bits/basic_string.tcc" 1 3 8751: # 42 "/usr/include/c++/8/bits/basic_string.tcc" 3 8751: 8751: # 43 "/usr/include/c++/8/bits/basic_string.tcc" 3 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: template 8751: const typename basic_string<_CharT, _Traits, _Alloc>::size_type 8751: basic_string<_CharT, _Traits, _Alloc>::npos; 8751: 8751: template 8751: void 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: swap(basic_string& __s) noexcept 8751: { 8751: if (this == &__s) 8751: return; 8751: 8751: _Alloc_traits::_S_on_swap(_M_get_allocator(), __s._M_get_allocator()); 8751: 8751: if (_M_is_local()) 8751: if (__s._M_is_local()) 8751: { 8751: if (length() && __s.length()) 8751: { 8751: _CharT __tmp_data[_S_local_capacity + 1]; 8751: traits_type::copy(__tmp_data, __s._M_local_buf, 8751: _S_local_capacity + 1); 8751: traits_type::copy(__s._M_local_buf, _M_local_buf, 8751: _S_local_capacity + 1); 8751: traits_type::copy(_M_local_buf, __tmp_data, 8751: _S_local_capacity + 1); 8751: } 8751: else if (__s.length()) 8751: { 8751: traits_type::copy(_M_local_buf, __s._M_local_buf, 8751: _S_local_capacity + 1); 8751: _M_length(__s.length()); 8751: __s._M_set_length(0); 8751: return; 8751: } 8751: else if (length()) 8751: { 8751: traits_type::copy(__s._M_local_buf, _M_local_buf, 8751: _S_local_capacity + 1); 8751: __s._M_length(length()); 8751: _M_set_length(0); 8751: return; 8751: } 8751: } 8751: else 8751: { 8751: const size_type __tmp_capacity = __s._M_allocated_capacity; 8751: traits_type::copy(__s._M_local_buf, _M_local_buf, 8751: _S_local_capacity + 1); 8751: _M_data(__s._M_data()); 8751: __s._M_data(__s._M_local_buf); 8751: _M_capacity(__tmp_capacity); 8751: } 8751: else 8751: { 8751: const size_type __tmp_capacity = _M_allocated_capacity; 8751: if (__s._M_is_local()) 8751: { 8751: traits_type::copy(_M_local_buf, __s._M_local_buf, 8751: _S_local_capacity + 1); 8751: __s._M_data(_M_data()); 8751: _M_data(_M_local_buf); 8751: } 8751: else 8751: { 8751: pointer __tmp_ptr = _M_data(); 8751: _M_data(__s._M_data()); 8751: __s._M_data(__tmp_ptr); 8751: _M_capacity(__s._M_allocated_capacity); 8751: } 8751: __s._M_capacity(__tmp_capacity); 8751: } 8751: 8751: const size_type __tmp_length = length(); 8751: _M_length(__s.length()); 8751: __s._M_length(__tmp_length); 8751: } 8751: 8751: template 8751: typename basic_string<_CharT, _Traits, _Alloc>::pointer 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: _M_create(size_type& __capacity, size_type __old_capacity) 8751: { 8751: 8751: 8751: if (__capacity > max_size()) 8751: std::__throw_length_error(("basic_string::_M_create")); 8751: 8751: 8751: 8751: 8751: if (__capacity > __old_capacity && __capacity < 2 * __old_capacity) 8751: { 8751: __capacity = 2 * __old_capacity; 8751: 8751: if (__capacity > max_size()) 8751: __capacity = max_size(); 8751: } 8751: 8751: 8751: 8751: return _Alloc_traits::allocate(_M_get_allocator(), __capacity + 1); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: template 8751: template 8751: void 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: _M_construct(_InIterator __beg, _InIterator __end, 8751: std::input_iterator_tag) 8751: { 8751: size_type __len = 0; 8751: size_type __capacity = size_type(_S_local_capacity); 8751: 8751: while (__beg != __end && __len < __capacity) 8751: { 8751: _M_data()[__len++] = *__beg; 8751: ++__beg; 8751: } 8751: 8751: try 8751: { 8751: while (__beg != __end) 8751: { 8751: if (__len == __capacity) 8751: { 8751: 8751: __capacity = __len + 1; 8751: pointer __another = _M_create(__capacity, __len); 8751: this->_S_copy(__another, _M_data(), __len); 8751: _M_dispose(); 8751: _M_data(__another); 8751: _M_capacity(__capacity); 8751: } 8751: _M_data()[__len++] = *__beg; 8751: ++__beg; 8751: } 8751: } 8751: catch(...) 8751: { 8751: _M_dispose(); 8751: throw; 8751: } 8751: 8751: _M_set_length(__len); 8751: } 8751: 8751: template 8751: template 8751: void 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: _M_construct(_InIterator __beg, _InIterator __end, 8751: std::forward_iterator_tag) 8751: { 8751: 8751: if (__gnu_cxx::__is_null_pointer(__beg) && __beg != __end) 8751: std::__throw_logic_error(("basic_string::" "_M_construct null not valid") 8751: ); 8751: 8751: size_type __dnew = static_cast(std::distance(__beg, __end)); 8751: 8751: if (__dnew > size_type(_S_local_capacity)) 8751: { 8751: _M_data(_M_create(__dnew, size_type(0))); 8751: _M_capacity(__dnew); 8751: } 8751: 8751: 8751: try 8751: { this->_S_copy_chars(_M_data(), __beg, __end); } 8751: catch(...) 8751: { 8751: _M_dispose(); 8751: throw; 8751: } 8751: 8751: _M_set_length(__dnew); 8751: } 8751: 8751: template 8751: void 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: _M_construct(size_type __n, _CharT __c) 8751: { 8751: if (__n > size_type(_S_local_capacity)) 8751: { 8751: _M_data(_M_create(__n, size_type(0))); 8751: _M_capacity(__n); 8751: } 8751: 8751: if (__n) 8751: this->_S_assign(_M_data(), __n, __c); 8751: 8751: _M_set_length(__n); 8751: } 8751: 8751: template 8751: void 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: _M_assign(const basic_string& __str) 8751: { 8751: if (this != &__str) 8751: { 8751: const size_type __rsize = __str.length(); 8751: const size_type __capacity = capacity(); 8751: 8751: if (__rsize > __capacity) 8751: { 8751: size_type __new_capacity = __rsize; 8751: pointer __tmp = _M_create(__new_capacity, __capacity); 8751: _M_dispose(); 8751: _M_data(__tmp); 8751: _M_capacity(__new_capacity); 8751: } 8751: 8751: if (__rsize) 8751: this->_S_copy(_M_data(), __str._M_data(), __rsize); 8751: 8751: _M_set_length(__rsize); 8751: } 8751: } 8751: 8751: template 8751: void 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: reserve(size_type __res) 8751: { 8751: 8751: if (__res < length()) 8751: __res = length(); 8751: 8751: const size_type __capacity = capacity(); 8751: if (__res != __capacity) 8751: { 8751: if (__res > __capacity 8751: || __res > size_type(_S_local_capacity)) 8751: { 8751: pointer __tmp = _M_create(__res, __capacity); 8751: this->_S_copy(__tmp, _M_data(), length() + 1); 8751: _M_dispose(); 8751: _M_data(__tmp); 8751: _M_capacity(__res); 8751: } 8751: else if (!_M_is_local()) 8751: { 8751: this->_S_copy(_M_local_data(), _M_data(), length() + 1); 8751: _M_destroy(__capacity); 8751: _M_data(_M_local_data()); 8751: } 8751: } 8751: } 8751: 8751: template 8751: void 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 8751: size_type __len2) 8751: { 8751: const size_type __how_much = length() - __pos - __len1; 8751: 8751: size_type __new_capacity = length() + __len2 - __len1; 8751: pointer __r = _M_create(__new_capacity, capacity()); 8751: 8751: if (__pos) 8751: this->_S_copy(__r, _M_data(), __pos); 8751: if (__s && __len2) 8751: this->_S_copy(__r + __pos, __s, __len2); 8751: if (__how_much) 8751: this->_S_copy(__r + __pos + __len2, 8751: _M_data() + __pos + __len1, __how_much); 8751: 8751: _M_dispose(); 8751: _M_data(__r); 8751: _M_capacity(__new_capacity); 8751: } 8751: 8751: template 8751: void 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: _M_erase(size_type __pos, size_type __n) 8751: { 8751: const size_type __how_much = length() - __pos - __n; 8751: 8751: if (__how_much && __n) 8751: this->_S_move(_M_data() + __pos, _M_data() + __pos + __n, __how_much); 8751: 8751: _M_set_length(length() - __n); 8751: } 8751: 8751: template 8751: void 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: resize(size_type __n, _CharT __c) 8751: { 8751: const size_type __size = this->size(); 8751: if (__size < __n) 8751: this->append(__n - __size, __c); 8751: else if (__n < __size) 8751: this->_M_set_length(__n); 8751: } 8751: 8751: template 8751: basic_string<_CharT, _Traits, _Alloc>& 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: _M_append(const _CharT* __s, size_type __n) 8751: { 8751: const size_type __len = __n + this->size(); 8751: 8751: if (__len <= this->capacity()) 8751: { 8751: if (__n) 8751: this->_S_copy(this->_M_data() + this->size(), __s, __n); 8751: } 8751: else 8751: this->_M_mutate(this->size(), size_type(0), __s, __n); 8751: 8751: this->_M_set_length(__len); 8751: return *this; 8751: } 8751: 8751: template 8751: template 8751: basic_string<_CharT, _Traits, _Alloc>& 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 8751: _InputIterator __k1, _InputIterator __k2, 8751: std::__false_type) 8751: { 8751: const basic_string __s(__k1, __k2); 8751: const size_type __n1 = __i2 - __i1; 8751: return _M_replace(__i1 - begin(), __n1, __s._M_data(), 8751: __s.size()); 8751: } 8751: 8751: template 8751: basic_string<_CharT, _Traits, _Alloc>& 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 8751: _CharT __c) 8751: { 8751: _M_check_length(__n1, __n2, "basic_string::_M_replace_aux"); 8751: 8751: const size_type __old_size = this->size(); 8751: const size_type __new_size = __old_size + __n2 - __n1; 8751: 8751: if (__new_size <= this->capacity()) 8751: { 8751: pointer __p = this->_M_data() + __pos1; 8751: 8751: const size_type __how_much = __old_size - __pos1 - __n1; 8751: if (__how_much && __n1 != __n2) 8751: this->_S_move(__p + __n2, __p + __n1, __how_much); 8751: } 8751: else 8751: this->_M_mutate(__pos1, __n1, 0, __n2); 8751: 8751: if (__n2) 8751: this->_S_assign(this->_M_data() + __pos1, __n2, __c); 8751: 8751: this->_M_set_length(__new_size); 8751: return *this; 8751: } 8751: 8751: template 8751: basic_string<_CharT, _Traits, _Alloc>& 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 8751: const size_type __len2) 8751: { 8751: _M_check_length(__len1, __len2, "basic_string::_M_replace"); 8751: 8751: const size_type __old_size = this->size(); 8751: const size_type __new_size = __old_size + __len2 - __len1; 8751: 8751: if (__new_size <= this->capacity()) 8751: { 8751: pointer __p = this->_M_data() + __pos; 8751: 8751: const size_type __how_much = __old_size - __pos - __len1; 8751: if (_M_disjunct(__s)) 8751: { 8751: if (__how_much && __len1 != __len2) 8751: this->_S_move(__p + __len2, __p + __len1, __how_much); 8751: if (__len2) 8751: this->_S_copy(__p, __s, __len2); 8751: } 8751: else 8751: { 8751: 8751: if (__len2 && __len2 <= __len1) 8751: this->_S_move(__p, __s, __len2); 8751: if (__how_much && __len1 != __len2) 8751: this->_S_move(__p + __len2, __p + __len1, __how_much); 8751: if (__len2 > __len1) 8751: { 8751: if (__s + __len2 <= __p + __len1) 8751: this->_S_move(__p, __s, __len2); 8751: else if (__s >= __p + __len1) 8751: this->_S_copy(__p, __s + __len2 - __len1, __len2); 8751: else 8751: { 8751: const size_type __nleft = (__p + __len1) - __s; 8751: this->_S_move(__p, __s, __nleft); 8751: this->_S_copy(__p + __nleft, __p + __len2, 8751: __len2 - __nleft); 8751: } 8751: } 8751: } 8751: } 8751: else 8751: this->_M_mutate(__pos, __len1, __s, __len2); 8751: 8751: this->_M_set_length(__new_size); 8751: return *this; 8751: } 8751: 8751: template 8751: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: copy(_CharT* __s, size_type __n, size_type __pos) const 8751: { 8751: _M_check(__pos, "basic_string::copy"); 8751: __n = _M_limit(__pos, __n); 8751: ; 8751: if (__n) 8751: _S_copy(__s, _M_data() + __pos, __n); 8751: 8751: return __n; 8751: } 8751: # 1155 "/usr/include/c++/8/bits/basic_string.tcc" 3 8751: template 8751: basic_string<_CharT, _Traits, _Alloc> 8751: operator+(const _CharT* __lhs, 8751: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8751: { 8751: ; 8751: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8751: typedef typename __string_type::size_type __size_type; 8751: const __size_type __len = _Traits::length(__lhs); 8751: __string_type __str; 8751: __str.reserve(__len + __rhs.size()); 8751: __str.append(__lhs, __len); 8751: __str.append(__rhs); 8751: return __str; 8751: } 8751: 8751: template 8751: basic_string<_CharT, _Traits, _Alloc> 8751: operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8751: { 8751: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8751: typedef typename __string_type::size_type __size_type; 8751: __string_type __str; 8751: const __size_type __len = __rhs.size(); 8751: __str.reserve(__len + 1); 8751: __str.append(__size_type(1), __lhs); 8751: __str.append(__rhs); 8751: return __str; 8751: } 8751: 8751: template 8751: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: find(const _CharT* __s, size_type __pos, size_type __n) const 8751: noexcept 8751: { 8751: ; 8751: const size_type __size = this->size(); 8751: 8751: if (__n == 0) 8751: return __pos <= __size ? __pos : npos; 8751: if (__pos >= __size) 8751: return npos; 8751: 8751: const _CharT __elem0 = __s[0]; 8751: const _CharT* const __data = data(); 8751: const _CharT* __first = __data + __pos; 8751: const _CharT* const __last = __data + __size; 8751: size_type __len = __size - __pos; 8751: 8751: while (__len >= __n) 8751: { 8751: 8751: __first = traits_type::find(__first, __len - __n + 1, __elem0); 8751: if (!__first) 8751: return npos; 8751: 8751: 8751: 8751: if (traits_type::compare(__first, __s, __n) == 0) 8751: return __first - __data; 8751: __len = __last - ++__first; 8751: } 8751: return npos; 8751: } 8751: 8751: template 8751: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: find(_CharT __c, size_type __pos) const noexcept 8751: { 8751: size_type __ret = npos; 8751: const size_type __size = this->size(); 8751: if (__pos < __size) 8751: { 8751: const _CharT* __data = _M_data(); 8751: const size_type __n = __size - __pos; 8751: const _CharT* __p = traits_type::find(__data + __pos, __n, __c); 8751: if (__p) 8751: __ret = __p - __data; 8751: } 8751: return __ret; 8751: } 8751: 8751: template 8751: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: rfind(const _CharT* __s, size_type __pos, size_type __n) const 8751: noexcept 8751: { 8751: ; 8751: const size_type __size = this->size(); 8751: if (__n <= __size) 8751: { 8751: __pos = std::min(size_type(__size - __n), __pos); 8751: const _CharT* __data = _M_data(); 8751: do 8751: { 8751: if (traits_type::compare(__data + __pos, __s, __n) == 0) 8751: return __pos; 8751: } 8751: while (__pos-- > 0); 8751: } 8751: return npos; 8751: } 8751: 8751: template 8751: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: rfind(_CharT __c, size_type __pos) const noexcept 8751: { 8751: size_type __size = this->size(); 8751: if (__size) 8751: { 8751: if (--__size > __pos) 8751: __size = __pos; 8751: for (++__size; __size-- > 0; ) 8751: if (traits_type::eq(_M_data()[__size], __c)) 8751: return __size; 8751: } 8751: return npos; 8751: } 8751: 8751: template 8751: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 8751: noexcept 8751: { 8751: ; 8751: for (; __n && __pos < this->size(); ++__pos) 8751: { 8751: const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); 8751: if (__p) 8751: return __pos; 8751: } 8751: return npos; 8751: } 8751: 8751: template 8751: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 8751: noexcept 8751: { 8751: ; 8751: size_type __size = this->size(); 8751: if (__size && __n) 8751: { 8751: if (--__size > __pos) 8751: __size = __pos; 8751: do 8751: { 8751: if (traits_type::find(__s, __n, _M_data()[__size])) 8751: return __size; 8751: } 8751: while (__size-- != 0); 8751: } 8751: return npos; 8751: } 8751: 8751: template 8751: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const 8751: noexcept 8751: { 8751: ; 8751: for (; __pos < this->size(); ++__pos) 8751: if (!traits_type::find(__s, __n, _M_data()[__pos])) 8751: return __pos; 8751: return npos; 8751: } 8751: 8751: template 8751: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: find_first_not_of(_CharT __c, size_type __pos) const noexcept 8751: { 8751: for (; __pos < this->size(); ++__pos) 8751: if (!traits_type::eq(_M_data()[__pos], __c)) 8751: return __pos; 8751: return npos; 8751: } 8751: 8751: template 8751: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const 8751: noexcept 8751: { 8751: ; 8751: size_type __size = this->size(); 8751: if (__size) 8751: { 8751: if (--__size > __pos) 8751: __size = __pos; 8751: do 8751: { 8751: if (!traits_type::find(__s, __n, _M_data()[__size])) 8751: return __size; 8751: } 8751: while (__size--); 8751: } 8751: return npos; 8751: } 8751: 8751: template 8751: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: find_last_not_of(_CharT __c, size_type __pos) const noexcept 8751: { 8751: size_type __size = this->size(); 8751: if (__size) 8751: { 8751: if (--__size > __pos) 8751: __size = __pos; 8751: do 8751: { 8751: if (!traits_type::eq(_M_data()[__size], __c)) 8751: return __size; 8751: } 8751: while (__size--); 8751: } 8751: return npos; 8751: } 8751: 8751: template 8751: int 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: compare(size_type __pos, size_type __n, const basic_string& __str) const 8751: { 8751: _M_check(__pos, "basic_string::compare"); 8751: __n = _M_limit(__pos, __n); 8751: const size_type __osize = __str.size(); 8751: const size_type __len = std::min(__n, __osize); 8751: int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); 8751: if (!__r) 8751: __r = _S_compare(__n, __osize); 8751: return __r; 8751: } 8751: 8751: template 8751: int 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: compare(size_type __pos1, size_type __n1, const basic_string& __str, 8751: size_type __pos2, size_type __n2) const 8751: { 8751: _M_check(__pos1, "basic_string::compare"); 8751: __str._M_check(__pos2, "basic_string::compare"); 8751: __n1 = _M_limit(__pos1, __n1); 8751: __n2 = __str._M_limit(__pos2, __n2); 8751: const size_type __len = std::min(__n1, __n2); 8751: int __r = traits_type::compare(_M_data() + __pos1, 8751: __str.data() + __pos2, __len); 8751: if (!__r) 8751: __r = _S_compare(__n1, __n2); 8751: return __r; 8751: } 8751: 8751: template 8751: int 8751: basic_string<_CharT, _Traits, _Alloc>:: 8751: compare(const _CharT* __s) const noexcept 8751: { 8751: ; 8751: const size_type __size = this->size(); 8751: const size_type __osize = traits_type::length(__s); 8751: const size_type __len = std::min(__size, __osize); 8751: int __r = traits_type::compare(_M_data(), __s, __len); 8751: if (!__r) 8751: __r = _S_compare(__size, __osize); 8751: return __r; 8751: } 8751: 8751: template 8751: int 8751: basic_string <_CharT, _Traits, _Alloc>:: 8751: compare(size_type __pos, size_type __n1, const _CharT* __s) const 8751: { 8751: ; 8751: _M_check(__pos, "basic_string::compare"); 8751: __n1 = _M_limit(__pos, __n1); 8751: const size_type __osize = traits_type::length(__s); 8751: const size_type __len = std::min(__n1, __osize); 8751: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 8751: if (!__r) 8751: __r = _S_compare(__n1, __osize); 8751: return __r; 8751: } 8751: 8751: template 8751: int 8751: basic_string <_CharT, _Traits, _Alloc>:: 8751: compare(size_type __pos, size_type __n1, const _CharT* __s, 8751: size_type __n2) const 8751: { 8751: ; 8751: _M_check(__pos, "basic_string::compare"); 8751: __n1 = _M_limit(__pos, __n1); 8751: const size_type __len = std::min(__n1, __n2); 8751: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 8751: if (!__r) 8751: __r = _S_compare(__n1, __n2); 8751: return __r; 8751: } 8751: 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: operator>>(basic_istream<_CharT, _Traits>& __in, 8751: basic_string<_CharT, _Traits, _Alloc>& __str) 8751: { 8751: typedef basic_istream<_CharT, _Traits> __istream_type; 8751: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8751: typedef typename __istream_type::ios_base __ios_base; 8751: typedef typename __istream_type::int_type __int_type; 8751: typedef typename __string_type::size_type __size_type; 8751: typedef ctype<_CharT> __ctype_type; 8751: typedef typename __ctype_type::ctype_base __ctype_base; 8751: 8751: __size_type __extracted = 0; 8751: typename __ios_base::iostate __err = __ios_base::goodbit; 8751: typename __istream_type::sentry __cerb(__in, false); 8751: if (__cerb) 8751: { 8751: try 8751: { 8751: 8751: __str.erase(); 8751: _CharT __buf[128]; 8751: __size_type __len = 0; 8751: const streamsize __w = __in.width(); 8751: const __size_type __n = __w > 0 ? static_cast<__size_type>(__w) 8751: : __str.max_size(); 8751: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 8751: const __int_type __eof = _Traits::eof(); 8751: __int_type __c = __in.rdbuf()->sgetc(); 8751: 8751: while (__extracted < __n 8751: && !_Traits::eq_int_type(__c, __eof) 8751: && !__ct.is(__ctype_base::space, 8751: _Traits::to_char_type(__c))) 8751: { 8751: if (__len == sizeof(__buf) / sizeof(_CharT)) 8751: { 8751: __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); 8751: __len = 0; 8751: } 8751: __buf[__len++] = _Traits::to_char_type(__c); 8751: ++__extracted; 8751: __c = __in.rdbuf()->snextc(); 8751: } 8751: __str.append(__buf, __len); 8751: 8751: if (_Traits::eq_int_type(__c, __eof)) 8751: __err |= __ios_base::eofbit; 8751: __in.width(0); 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: __in._M_setstate(__ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { 8751: 8751: 8751: 8751: __in._M_setstate(__ios_base::badbit); 8751: } 8751: } 8751: 8751: if (!__extracted) 8751: __err |= __ios_base::failbit; 8751: if (__err) 8751: __in.setstate(__err); 8751: return __in; 8751: } 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: getline(basic_istream<_CharT, _Traits>& __in, 8751: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 8751: { 8751: typedef basic_istream<_CharT, _Traits> __istream_type; 8751: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8751: typedef typename __istream_type::ios_base __ios_base; 8751: typedef typename __istream_type::int_type __int_type; 8751: typedef typename __string_type::size_type __size_type; 8751: 8751: __size_type __extracted = 0; 8751: const __size_type __n = __str.max_size(); 8751: typename __ios_base::iostate __err = __ios_base::goodbit; 8751: typename __istream_type::sentry __cerb(__in, true); 8751: if (__cerb) 8751: { 8751: try 8751: { 8751: __str.erase(); 8751: const __int_type __idelim = _Traits::to_int_type(__delim); 8751: const __int_type __eof = _Traits::eof(); 8751: __int_type __c = __in.rdbuf()->sgetc(); 8751: 8751: while (__extracted < __n 8751: && !_Traits::eq_int_type(__c, __eof) 8751: && !_Traits::eq_int_type(__c, __idelim)) 8751: { 8751: __str += _Traits::to_char_type(__c); 8751: ++__extracted; 8751: __c = __in.rdbuf()->snextc(); 8751: } 8751: 8751: if (_Traits::eq_int_type(__c, __eof)) 8751: __err |= __ios_base::eofbit; 8751: else if (_Traits::eq_int_type(__c, __idelim)) 8751: { 8751: ++__extracted; 8751: __in.rdbuf()->sbumpc(); 8751: } 8751: else 8751: __err |= __ios_base::failbit; 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: __in._M_setstate(__ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { 8751: 8751: 8751: 8751: __in._M_setstate(__ios_base::badbit); 8751: } 8751: } 8751: if (!__extracted) 8751: __err |= __ios_base::failbit; 8751: if (__err) 8751: __in.setstate(__err); 8751: return __in; 8751: } 8751: 8751: 8751: 8751: 8751: extern template class basic_string; 8751: extern template 8751: basic_istream& 8751: operator>>(basic_istream&, string&); 8751: extern template 8751: basic_ostream& 8751: operator<<(basic_ostream&, const string&); 8751: extern template 8751: basic_istream& 8751: getline(basic_istream&, string&, char); 8751: extern template 8751: basic_istream& 8751: getline(basic_istream&, string&); 8751: 8751: 8751: extern template class basic_string; 8751: extern template 8751: basic_istream& 8751: operator>>(basic_istream&, wstring&); 8751: extern template 8751: basic_ostream& 8751: operator<<(basic_ostream&, const wstring&); 8751: extern template 8751: basic_istream& 8751: getline(basic_istream&, wstring&, wchar_t); 8751: extern template 8751: basic_istream& 8751: getline(basic_istream&, wstring&); 8751: 8751: 8751: 8751: 8751: } 8751: # 54 "/usr/include/c++/8/string" 2 3 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 2 3 4 8751: # 1 "/usr/include/c++/8/iterator" 1 3 4 8751: # 58 "/usr/include/c++/8/iterator" 3 4 8751: 8751: # 59 "/usr/include/c++/8/iterator" 3 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/ostream" 1 3 8751: # 36 "/usr/include/c++/8/ostream" 3 8751: 8751: # 37 "/usr/include/c++/8/ostream" 3 8751: 8751: # 1 "/usr/include/c++/8/ios" 1 3 8751: # 36 "/usr/include/c++/8/ios" 3 8751: 8751: # 37 "/usr/include/c++/8/ios" 3 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/ios_base.h" 1 3 8751: # 37 "/usr/include/c++/8/bits/ios_base.h" 3 8751: 8751: # 38 "/usr/include/c++/8/bits/ios_base.h" 3 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/locale_classes.h" 1 3 8751: # 37 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: 8751: # 38 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: 8751: 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 62 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: class locale 8751: { 8751: public: 8751: 8751: 8751: typedef int category; 8751: 8751: 8751: class facet; 8751: class id; 8751: class _Impl; 8751: 8751: friend class facet; 8751: friend class _Impl; 8751: 8751: template 8751: friend bool 8751: has_facet(const locale&) throw(); 8751: 8751: template 8751: friend const _Facet& 8751: use_facet(const locale&); 8751: 8751: template 8751: friend struct __use_cache; 8751: # 98 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: static const category none = 0; 8751: static const category ctype = 1L << 0; 8751: static const category numeric = 1L << 1; 8751: static const category collate = 1L << 2; 8751: static const category time = 1L << 3; 8751: static const category monetary = 1L << 4; 8751: static const category messages = 1L << 5; 8751: static const category all = (ctype | numeric | collate | 8751: time | monetary | messages); 8751: # 117 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: locale() throw(); 8751: # 126 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: locale(const locale& __other) throw(); 8751: # 136 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: explicit 8751: locale(const char* __s); 8751: # 151 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: locale(const locale& __base, const char* __s, category __cat); 8751: # 162 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: explicit 8751: locale(const std::string& __s) : locale(__s.c_str()) { } 8751: # 177 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: locale(const locale& __base, const std::string& __s, category __cat) 8751: : locale(__base, __s.c_str(), __cat) { } 8751: # 192 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: locale(const locale& __base, const locale& __add, category __cat); 8751: # 205 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: template 8751: locale(const locale& __other, _Facet* __f); 8751: 8751: 8751: ~locale() throw(); 8751: # 219 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: const locale& 8751: operator=(const locale& __other) throw(); 8751: # 234 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: template 8751: locale 8751: combine(const locale& __other) const; 8751: 8751: 8751: 8751: 8751: 8751: 8751: __attribute ((__abi_tag__ ("cxx11"))) 8751: string 8751: name() const; 8751: # 254 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: bool 8751: operator==(const locale& __other) const throw(); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: bool 8751: operator!=(const locale& __other) const throw() 8751: { return !(this->operator==(__other)); } 8751: # 282 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: template 8751: bool 8751: operator()(const basic_string<_Char, _Traits, _Alloc>& __s1, 8751: const basic_string<_Char, _Traits, _Alloc>& __s2) const; 8751: # 298 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: static locale 8751: global(const locale& __loc); 8751: 8751: 8751: 8751: 8751: static const locale& 8751: classic(); 8751: 8751: private: 8751: 8751: _Impl* _M_impl; 8751: 8751: 8751: static _Impl* _S_classic; 8751: 8751: 8751: static _Impl* _S_global; 8751: 8751: 8751: 8751: 8751: 8751: static const char* const* const _S_categories; 8751: # 333 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: enum { _S_categories_size = 6 + 6 }; 8751: 8751: 8751: static __gthread_once_t _S_once; 8751: 8751: 8751: explicit 8751: locale(_Impl*) throw(); 8751: 8751: static void 8751: _S_initialize(); 8751: 8751: static void 8751: _S_initialize_once() throw(); 8751: 8751: static category 8751: _S_normalize_category(category); 8751: 8751: void 8751: _M_coalesce(const locale& __base, const locale& __add, category __cat); 8751: 8751: 8751: static const id* const _S_twinned_facets[]; 8751: 8751: }; 8751: # 371 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: class locale::facet 8751: { 8751: private: 8751: friend class locale; 8751: friend class locale::_Impl; 8751: 8751: mutable _Atomic_word _M_refcount; 8751: 8751: 8751: static __c_locale _S_c_locale; 8751: 8751: 8751: static const char _S_c_name[2]; 8751: 8751: 8751: static __gthread_once_t _S_once; 8751: 8751: 8751: static void 8751: _S_initialize_once(); 8751: 8751: protected: 8751: # 402 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: explicit 8751: facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0) 8751: { } 8751: 8751: 8751: virtual 8751: ~facet(); 8751: 8751: static void 8751: _S_create_c_locale(__c_locale& __cloc, const char* __s, 8751: __c_locale __old = 0); 8751: 8751: static __c_locale 8751: _S_clone_c_locale(__c_locale& __cloc) throw(); 8751: 8751: static void 8751: _S_destroy_c_locale(__c_locale& __cloc); 8751: 8751: static __c_locale 8751: _S_lc_ctype_c_locale(__c_locale __cloc, const char* __s); 8751: 8751: 8751: 8751: static __c_locale 8751: _S_get_c_locale(); 8751: 8751: __attribute__ ((__const__)) static const char* 8751: _S_get_c_name() throw(); 8751: # 438 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: facet(const facet&) = delete; 8751: 8751: facet& 8751: operator=(const facet&) = delete; 8751: 8751: 8751: private: 8751: void 8751: _M_add_reference() const throw() 8751: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 8751: 8751: void 8751: _M_remove_reference() const throw() 8751: { 8751: 8751: ; 8751: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 8751: { 8751: ; 8751: try 8751: { delete this; } 8751: catch(...) 8751: { } 8751: } 8751: } 8751: 8751: const facet* _M_sso_shim(const id*) const; 8751: const facet* _M_cow_shim(const id*) const; 8751: 8751: protected: 8751: class __shim; 8751: }; 8751: # 483 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: class locale::id 8751: { 8751: private: 8751: friend class locale; 8751: friend class locale::_Impl; 8751: 8751: template 8751: friend const _Facet& 8751: use_facet(const locale&); 8751: 8751: template 8751: friend bool 8751: has_facet(const locale&) throw(); 8751: 8751: 8751: 8751: 8751: mutable size_t _M_index; 8751: 8751: 8751: static _Atomic_word _S_refcount; 8751: 8751: void 8751: operator=(const id&); 8751: 8751: id(const id&); 8751: 8751: public: 8751: 8751: 8751: 8751: id() { } 8751: 8751: size_t 8751: _M_id() const throw(); 8751: }; 8751: 8751: 8751: 8751: class locale::_Impl 8751: { 8751: public: 8751: 8751: friend class locale; 8751: friend class locale::facet; 8751: 8751: template 8751: friend bool 8751: has_facet(const locale&) throw(); 8751: 8751: template 8751: friend const _Facet& 8751: use_facet(const locale&); 8751: 8751: template 8751: friend struct __use_cache; 8751: 8751: private: 8751: 8751: _Atomic_word _M_refcount; 8751: const facet** _M_facets; 8751: size_t _M_facets_size; 8751: const facet** _M_caches; 8751: char** _M_names; 8751: static const locale::id* const _S_id_ctype[]; 8751: static const locale::id* const _S_id_numeric[]; 8751: static const locale::id* const _S_id_collate[]; 8751: static const locale::id* const _S_id_time[]; 8751: static const locale::id* const _S_id_monetary[]; 8751: static const locale::id* const _S_id_messages[]; 8751: static const locale::id* const* const _S_facet_categories[]; 8751: 8751: void 8751: _M_add_reference() throw() 8751: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 8751: 8751: void 8751: _M_remove_reference() throw() 8751: { 8751: 8751: ; 8751: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 8751: { 8751: ; 8751: try 8751: { delete this; } 8751: catch(...) 8751: { } 8751: } 8751: } 8751: 8751: _Impl(const _Impl&, size_t); 8751: _Impl(const char*, size_t); 8751: _Impl(size_t) throw(); 8751: 8751: ~_Impl() throw(); 8751: 8751: _Impl(const _Impl&); 8751: 8751: void 8751: operator=(const _Impl&); 8751: 8751: bool 8751: _M_check_same_name() 8751: { 8751: bool __ret = true; 8751: if (_M_names[1]) 8751: 8751: for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i) 8751: __ret = __builtin_strcmp(_M_names[__i], _M_names[__i + 1]) == 0; 8751: return __ret; 8751: } 8751: 8751: void 8751: _M_replace_categories(const _Impl*, category); 8751: 8751: void 8751: _M_replace_category(const _Impl*, const locale::id* const*); 8751: 8751: void 8751: _M_replace_facet(const _Impl*, const locale::id*); 8751: 8751: void 8751: _M_install_facet(const locale::id*, const facet*); 8751: 8751: template 8751: void 8751: _M_init_facet(_Facet* __facet) 8751: { _M_install_facet(&_Facet::id, __facet); } 8751: 8751: template 8751: void 8751: _M_init_facet_unchecked(_Facet* __facet) 8751: { 8751: __facet->_M_add_reference(); 8751: _M_facets[_Facet::id._M_id()] = __facet; 8751: } 8751: 8751: void 8751: _M_install_cache(const facet*, size_t); 8751: 8751: void _M_init_extra(facet**); 8751: void _M_init_extra(void*, void*, const char*, const char*); 8751: }; 8751: # 641 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: template 8751: class __cxx11:: collate : public locale::facet 8751: { 8751: public: 8751: 8751: 8751: 8751: typedef _CharT char_type; 8751: typedef basic_string<_CharT> string_type; 8751: 8751: 8751: protected: 8751: 8751: 8751: __c_locale _M_c_locale_collate; 8751: 8751: public: 8751: 8751: static locale::id id; 8751: # 668 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: explicit 8751: collate(size_t __refs = 0) 8751: : facet(__refs), _M_c_locale_collate(_S_get_c_locale()) 8751: { } 8751: # 682 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: explicit 8751: collate(__c_locale __cloc, size_t __refs = 0) 8751: : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc)) 8751: { } 8751: # 699 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: int 8751: compare(const _CharT* __lo1, const _CharT* __hi1, 8751: const _CharT* __lo2, const _CharT* __hi2) const 8751: { return this->do_compare(__lo1, __hi1, __lo2, __hi2); } 8751: # 718 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: string_type 8751: transform(const _CharT* __lo, const _CharT* __hi) const 8751: { return this->do_transform(__lo, __hi); } 8751: # 732 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: long 8751: hash(const _CharT* __lo, const _CharT* __hi) const 8751: { return this->do_hash(__lo, __hi); } 8751: 8751: 8751: int 8751: _M_compare(const _CharT*, const _CharT*) const throw(); 8751: 8751: size_t 8751: _M_transform(_CharT*, const _CharT*, size_t) const throw(); 8751: 8751: protected: 8751: 8751: virtual 8751: ~collate() 8751: { _S_destroy_c_locale(_M_c_locale_collate); } 8751: # 761 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: virtual int 8751: do_compare(const _CharT* __lo1, const _CharT* __hi1, 8751: const _CharT* __lo2, const _CharT* __hi2) const; 8751: # 775 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: virtual string_type 8751: do_transform(const _CharT* __lo, const _CharT* __hi) const; 8751: # 788 "/usr/include/c++/8/bits/locale_classes.h" 3 8751: virtual long 8751: do_hash(const _CharT* __lo, const _CharT* __hi) const; 8751: }; 8751: 8751: template 8751: locale::id collate<_CharT>::id; 8751: 8751: 8751: template<> 8751: int 8751: collate::_M_compare(const char*, const char*) const throw(); 8751: 8751: template<> 8751: size_t 8751: collate::_M_transform(char*, const char*, size_t) const throw(); 8751: 8751: 8751: template<> 8751: int 8751: collate::_M_compare(const wchar_t*, const wchar_t*) const throw(); 8751: 8751: template<> 8751: size_t 8751: collate::_M_transform(wchar_t*, const wchar_t*, size_t) const throw(); 8751: 8751: 8751: 8751: template 8751: class __cxx11:: collate_byname : public collate<_CharT> 8751: { 8751: public: 8751: 8751: 8751: typedef _CharT char_type; 8751: typedef basic_string<_CharT> string_type; 8751: 8751: 8751: explicit 8751: collate_byname(const char* __s, size_t __refs = 0) 8751: : collate<_CharT>(__refs) 8751: { 8751: if (__builtin_strcmp(__s, "C") != 0 8751: && __builtin_strcmp(__s, "POSIX") != 0) 8751: { 8751: this->_S_destroy_c_locale(this->_M_c_locale_collate); 8751: this->_S_create_c_locale(this->_M_c_locale_collate, __s); 8751: } 8751: } 8751: 8751: 8751: explicit 8751: collate_byname(const string& __s, size_t __refs = 0) 8751: : collate_byname(__s.c_str(), __refs) { } 8751: 8751: 8751: protected: 8751: virtual 8751: ~collate_byname() { } 8751: }; 8751: 8751: 8751: } 8751: 8751: # 1 "/usr/include/c++/8/bits/locale_classes.tcc" 1 3 8751: # 37 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8751: 8751: # 38 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: template 8751: locale:: 8751: locale(const locale& __other, _Facet* __f) 8751: { 8751: _M_impl = new _Impl(*__other._M_impl, 1); 8751: 8751: try 8751: { _M_impl->_M_install_facet(&_Facet::id, __f); } 8751: catch(...) 8751: { 8751: _M_impl->_M_remove_reference(); 8751: throw; 8751: } 8751: delete [] _M_impl->_M_names[0]; 8751: _M_impl->_M_names[0] = 0; 8751: } 8751: 8751: template 8751: locale 8751: locale:: 8751: combine(const locale& __other) const 8751: { 8751: _Impl* __tmp = new _Impl(*_M_impl, 1); 8751: try 8751: { 8751: __tmp->_M_replace_facet(__other._M_impl, &_Facet::id); 8751: } 8751: catch(...) 8751: { 8751: __tmp->_M_remove_reference(); 8751: throw; 8751: } 8751: return locale(__tmp); 8751: } 8751: 8751: template 8751: bool 8751: locale:: 8751: operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1, 8751: const basic_string<_CharT, _Traits, _Alloc>& __s2) const 8751: { 8751: typedef std::collate<_CharT> __collate_type; 8751: const __collate_type& __collate = use_facet<__collate_type>(*this); 8751: return (__collate.compare(__s1.data(), __s1.data() + __s1.length(), 8751: __s2.data(), __s2.data() + __s2.length()) < 0); 8751: } 8751: # 102 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8751: template 8751: bool 8751: has_facet(const locale& __loc) throw() 8751: { 8751: const size_t __i = _Facet::id._M_id(); 8751: const locale::facet** __facets = __loc._M_impl->_M_facets; 8751: return (__i < __loc._M_impl->_M_facets_size 8751: 8751: && dynamic_cast(__facets[__i])); 8751: 8751: 8751: 8751: } 8751: # 130 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8751: template 8751: const _Facet& 8751: use_facet(const locale& __loc) 8751: { 8751: const size_t __i = _Facet::id._M_id(); 8751: const locale::facet** __facets = __loc._M_impl->_M_facets; 8751: if (__i >= __loc._M_impl->_M_facets_size || !__facets[__i]) 8751: __throw_bad_cast(); 8751: 8751: return dynamic_cast(*__facets[__i]); 8751: 8751: 8751: 8751: } 8751: 8751: 8751: 8751: template 8751: int 8751: collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const throw () 8751: { return 0; } 8751: 8751: 8751: template 8751: size_t 8751: collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const throw () 8751: { return 0; } 8751: 8751: template 8751: int 8751: collate<_CharT>:: 8751: do_compare(const _CharT* __lo1, const _CharT* __hi1, 8751: const _CharT* __lo2, const _CharT* __hi2) const 8751: { 8751: 8751: 8751: const string_type __one(__lo1, __hi1); 8751: const string_type __two(__lo2, __hi2); 8751: 8751: const _CharT* __p = __one.c_str(); 8751: const _CharT* __pend = __one.data() + __one.length(); 8751: const _CharT* __q = __two.c_str(); 8751: const _CharT* __qend = __two.data() + __two.length(); 8751: 8751: 8751: 8751: 8751: for (;;) 8751: { 8751: const int __res = _M_compare(__p, __q); 8751: if (__res) 8751: return __res; 8751: 8751: __p += char_traits<_CharT>::length(__p); 8751: __q += char_traits<_CharT>::length(__q); 8751: if (__p == __pend && __q == __qend) 8751: return 0; 8751: else if (__p == __pend) 8751: return -1; 8751: else if (__q == __qend) 8751: return 1; 8751: 8751: __p++; 8751: __q++; 8751: } 8751: } 8751: 8751: template 8751: typename collate<_CharT>::string_type 8751: collate<_CharT>:: 8751: do_transform(const _CharT* __lo, const _CharT* __hi) const 8751: { 8751: string_type __ret; 8751: 8751: 8751: const string_type __str(__lo, __hi); 8751: 8751: const _CharT* __p = __str.c_str(); 8751: const _CharT* __pend = __str.data() + __str.length(); 8751: 8751: size_t __len = (__hi - __lo) * 2; 8751: 8751: _CharT* __c = new _CharT[__len]; 8751: 8751: try 8751: { 8751: 8751: 8751: 8751: for (;;) 8751: { 8751: 8751: size_t __res = _M_transform(__c, __p, __len); 8751: 8751: 8751: if (__res >= __len) 8751: { 8751: __len = __res + 1; 8751: delete [] __c, __c = 0; 8751: __c = new _CharT[__len]; 8751: __res = _M_transform(__c, __p, __len); 8751: } 8751: 8751: __ret.append(__c, __res); 8751: __p += char_traits<_CharT>::length(__p); 8751: if (__p == __pend) 8751: break; 8751: 8751: __p++; 8751: __ret.push_back(_CharT()); 8751: } 8751: } 8751: catch(...) 8751: { 8751: delete [] __c; 8751: throw; 8751: } 8751: 8751: delete [] __c; 8751: 8751: return __ret; 8751: } 8751: 8751: template 8751: long 8751: collate<_CharT>:: 8751: do_hash(const _CharT* __lo, const _CharT* __hi) const 8751: { 8751: unsigned long __val = 0; 8751: for (; __lo < __hi; ++__lo) 8751: __val = 8751: *__lo + ((__val << 7) 8751: | (__val >> (__gnu_cxx::__numeric_traits:: 8751: __digits - 7))); 8751: return static_cast(__val); 8751: } 8751: 8751: 8751: 8751: 8751: extern template class collate; 8751: extern template class collate_byname; 8751: 8751: extern template 8751: const collate& 8751: use_facet >(const locale&); 8751: 8751: extern template 8751: bool 8751: has_facet >(const locale&); 8751: 8751: 8751: extern template class collate; 8751: extern template class collate_byname; 8751: 8751: extern template 8751: const collate& 8751: use_facet >(const locale&); 8751: 8751: extern template 8751: bool 8751: has_facet >(const locale&); 8751: 8751: 8751: 8751: 8751: } 8751: # 852 "/usr/include/c++/8/bits/locale_classes.h" 2 3 8751: # 42 "/usr/include/c++/8/bits/ios_base.h" 2 3 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/system_error" 1 3 8751: # 32 "/usr/include/c++/8/system_error" 3 8751: 8751: # 33 "/usr/include/c++/8/system_error" 3 8751: 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/error_constants.h" 1 3 8751: # 34 "/usr/include/arm-linux-gnueabihf/c++/8/bits/error_constants.h" 3 8751: # 1 "/usr/include/c++/8/cerrno" 1 3 8751: # 39 "/usr/include/c++/8/cerrno" 3 8751: 8751: # 40 "/usr/include/c++/8/cerrno" 3 8751: # 35 "/usr/include/arm-linux-gnueabihf/c++/8/bits/error_constants.h" 2 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: enum class errc 8751: { 8751: address_family_not_supported = 97, 8751: address_in_use = 98, 8751: address_not_available = 99, 8751: already_connected = 106, 8751: argument_list_too_long = 7, 8751: argument_out_of_domain = 33, 8751: bad_address = 14, 8751: bad_file_descriptor = 9, 8751: 8751: 8751: bad_message = 74, 8751: 8751: 8751: broken_pipe = 32, 8751: connection_aborted = 103, 8751: connection_already_in_progress = 114, 8751: connection_refused = 111, 8751: connection_reset = 104, 8751: cross_device_link = 18, 8751: destination_address_required = 89, 8751: device_or_resource_busy = 16, 8751: directory_not_empty = 39, 8751: executable_format_error = 8, 8751: file_exists = 17, 8751: file_too_large = 27, 8751: filename_too_long = 36, 8751: function_not_supported = 38, 8751: host_unreachable = 113, 8751: 8751: 8751: identifier_removed = 43, 8751: 8751: 8751: illegal_byte_sequence = 84, 8751: inappropriate_io_control_operation = 25, 8751: interrupted = 4, 8751: invalid_argument = 22, 8751: invalid_seek = 29, 8751: io_error = 5, 8751: is_a_directory = 21, 8751: message_size = 90, 8751: network_down = 100, 8751: network_reset = 102, 8751: network_unreachable = 101, 8751: no_buffer_space = 105, 8751: no_child_process = 10, 8751: 8751: 8751: no_link = 67, 8751: 8751: 8751: no_lock_available = 37, 8751: 8751: 8751: no_message_available = 61, 8751: 8751: 8751: no_message = 42, 8751: no_protocol_option = 92, 8751: no_space_on_device = 28, 8751: 8751: 8751: no_stream_resources = 63, 8751: 8751: 8751: no_such_device_or_address = 6, 8751: no_such_device = 19, 8751: no_such_file_or_directory = 2, 8751: no_such_process = 3, 8751: not_a_directory = 20, 8751: not_a_socket = 88, 8751: 8751: 8751: not_a_stream = 60, 8751: 8751: 8751: not_connected = 107, 8751: not_enough_memory = 12, 8751: 8751: 8751: not_supported = 95, 8751: 8751: 8751: 8751: operation_canceled = 125, 8751: 8751: 8751: operation_in_progress = 115, 8751: operation_not_permitted = 1, 8751: operation_not_supported = 95, 8751: operation_would_block = 11, 8751: 8751: 8751: owner_dead = 130, 8751: 8751: 8751: permission_denied = 13, 8751: 8751: 8751: protocol_error = 71, 8751: 8751: 8751: protocol_not_supported = 93, 8751: read_only_file_system = 30, 8751: resource_deadlock_would_occur = 35, 8751: resource_unavailable_try_again = 11, 8751: result_out_of_range = 34, 8751: 8751: 8751: state_not_recoverable = 131, 8751: 8751: 8751: 8751: stream_timeout = 62, 8751: 8751: 8751: 8751: text_file_busy = 26, 8751: 8751: 8751: timed_out = 110, 8751: too_many_files_open_in_system = 23, 8751: too_many_files_open = 24, 8751: too_many_links = 31, 8751: too_many_symbolic_link_levels = 40, 8751: 8751: 8751: value_too_large = 75, 8751: 8751: 8751: wrong_protocol_type = 91 8751: }; 8751: 8751: 8751: } 8751: # 40 "/usr/include/c++/8/system_error" 2 3 8751: 8751: # 1 "/usr/include/c++/8/stdexcept" 1 3 8751: # 36 "/usr/include/c++/8/stdexcept" 3 8751: 8751: # 37 "/usr/include/c++/8/stdexcept" 3 8751: 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: struct __cow_string 8751: { 8751: union { 8751: const char* _M_p; 8751: char _M_bytes[sizeof(const char*)]; 8751: }; 8751: 8751: __cow_string(); 8751: __cow_string(const std::string&); 8751: __cow_string(const char*, size_t); 8751: __cow_string(const __cow_string&) noexcept; 8751: __cow_string& operator=(const __cow_string&) noexcept; 8751: ~__cow_string(); 8751: 8751: __cow_string(__cow_string&&) noexcept; 8751: __cow_string& operator=(__cow_string&&) noexcept; 8751: 8751: }; 8751: 8751: typedef basic_string __sso_string; 8751: # 113 "/usr/include/c++/8/stdexcept" 3 8751: class logic_error : public exception 8751: { 8751: __cow_string _M_msg; 8751: 8751: public: 8751: 8751: explicit 8751: logic_error(const string& __arg) ; 8751: 8751: 8751: explicit 8751: logic_error(const char*) ; 8751: 8751: 8751: 8751: logic_error(const logic_error&) noexcept; 8751: logic_error& operator=(const logic_error&) noexcept; 8751: 8751: 8751: virtual ~logic_error() noexcept; 8751: 8751: 8751: 8751: virtual const char* 8751: what() const noexcept; 8751: 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: 8751: 8751: class domain_error : public logic_error 8751: { 8751: public: 8751: explicit domain_error(const string& __arg) ; 8751: 8751: explicit domain_error(const char*) ; 8751: 8751: virtual ~domain_error() noexcept; 8751: }; 8751: 8751: 8751: class invalid_argument : public logic_error 8751: { 8751: public: 8751: explicit invalid_argument(const string& __arg) ; 8751: 8751: explicit invalid_argument(const char*) ; 8751: 8751: virtual ~invalid_argument() noexcept; 8751: }; 8751: 8751: 8751: 8751: class length_error : public logic_error 8751: { 8751: public: 8751: explicit length_error(const string& __arg) ; 8751: 8751: explicit length_error(const char*) ; 8751: 8751: virtual ~length_error() noexcept; 8751: }; 8751: 8751: 8751: 8751: class out_of_range : public logic_error 8751: { 8751: public: 8751: explicit out_of_range(const string& __arg) ; 8751: 8751: explicit out_of_range(const char*) ; 8751: 8751: virtual ~out_of_range() noexcept; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: class runtime_error : public exception 8751: { 8751: __cow_string _M_msg; 8751: 8751: public: 8751: 8751: explicit 8751: runtime_error(const string& __arg) ; 8751: 8751: 8751: explicit 8751: runtime_error(const char*) ; 8751: 8751: 8751: 8751: runtime_error(const runtime_error&) noexcept; 8751: runtime_error& operator=(const runtime_error&) noexcept; 8751: 8751: 8751: virtual ~runtime_error() noexcept; 8751: 8751: 8751: 8751: virtual const char* 8751: what() const noexcept; 8751: 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: 8751: class range_error : public runtime_error 8751: { 8751: public: 8751: explicit range_error(const string& __arg) ; 8751: 8751: explicit range_error(const char*) ; 8751: 8751: virtual ~range_error() noexcept; 8751: }; 8751: 8751: 8751: class overflow_error : public runtime_error 8751: { 8751: public: 8751: explicit overflow_error(const string& __arg) ; 8751: 8751: explicit overflow_error(const char*) ; 8751: 8751: virtual ~overflow_error() noexcept; 8751: }; 8751: 8751: 8751: class underflow_error : public runtime_error 8751: { 8751: public: 8751: explicit underflow_error(const string& __arg) ; 8751: 8751: explicit underflow_error(const char*) ; 8751: 8751: virtual ~underflow_error() noexcept; 8751: }; 8751: 8751: 8751: 8751: 8751: } 8751: # 42 "/usr/include/c++/8/system_error" 2 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: class error_code; 8751: class error_condition; 8751: class system_error; 8751: 8751: 8751: template 8751: struct is_error_code_enum : public false_type { }; 8751: 8751: 8751: template 8751: struct is_error_condition_enum : public false_type { }; 8751: 8751: template<> 8751: struct is_error_condition_enum 8751: : public true_type { }; 8751: # 71 "/usr/include/c++/8/system_error" 3 8751: inline namespace _V2 { 8751: 8751: 8751: class error_category 8751: { 8751: public: 8751: constexpr error_category() noexcept = default; 8751: 8751: virtual ~error_category(); 8751: 8751: error_category(const error_category&) = delete; 8751: error_category& operator=(const error_category&) = delete; 8751: 8751: virtual const char* 8751: name() const noexcept = 0; 8751: 8751: 8751: 8751: 8751: 8751: 8751: private: 8751: __attribute ((__abi_tag__ ("cxx11"))) 8751: virtual __cow_string 8751: _M_message(int) const; 8751: 8751: public: 8751: __attribute ((__abi_tag__ ("cxx11"))) 8751: virtual string 8751: message(int) const = 0; 8751: # 110 "/usr/include/c++/8/system_error" 3 8751: public: 8751: virtual error_condition 8751: default_error_condition(int __i) const noexcept; 8751: 8751: virtual bool 8751: equivalent(int __i, const error_condition& __cond) const noexcept; 8751: 8751: virtual bool 8751: equivalent(const error_code& __code, int __i) const noexcept; 8751: 8751: bool 8751: operator<(const error_category& __other) const noexcept 8751: { return less()(this, &__other); } 8751: 8751: bool 8751: operator==(const error_category& __other) const noexcept 8751: { return this == &__other; } 8751: 8751: bool 8751: operator!=(const error_category& __other) const noexcept 8751: { return this != &__other; } 8751: }; 8751: 8751: 8751: __attribute__ ((__const__)) const error_category& system_category() noexcept; 8751: __attribute__ ((__const__)) const error_category& generic_category() noexcept; 8751: 8751: } 8751: 8751: error_code make_error_code(errc) noexcept; 8751: 8751: template 8751: struct hash; 8751: 8751: 8751: 8751: struct error_code 8751: { 8751: error_code() noexcept 8751: : _M_value(0), _M_cat(&system_category()) { } 8751: 8751: error_code(int __v, const error_category& __cat) noexcept 8751: : _M_value(__v), _M_cat(&__cat) { } 8751: 8751: template::value>::type> 8751: error_code(_ErrorCodeEnum __e) noexcept 8751: { *this = make_error_code(__e); } 8751: 8751: void 8751: assign(int __v, const error_category& __cat) noexcept 8751: { 8751: _M_value = __v; 8751: _M_cat = &__cat; 8751: } 8751: 8751: void 8751: clear() noexcept 8751: { assign(0, system_category()); } 8751: 8751: 8751: template 8751: typename enable_if::value, 8751: error_code&>::type 8751: operator=(_ErrorCodeEnum __e) noexcept 8751: { return *this = make_error_code(__e); } 8751: 8751: int 8751: value() const noexcept { return _M_value; } 8751: 8751: const error_category& 8751: category() const noexcept { return *_M_cat; } 8751: 8751: error_condition 8751: default_error_condition() const noexcept; 8751: 8751: __attribute ((__abi_tag__ ("cxx11"))) 8751: string 8751: message() const 8751: { return category().message(value()); } 8751: 8751: explicit operator bool() const noexcept 8751: { return _M_value != 0; } 8751: 8751: 8751: private: 8751: friend class hash; 8751: 8751: int _M_value; 8751: const error_category* _M_cat; 8751: }; 8751: 8751: 8751: inline error_code 8751: make_error_code(errc __e) noexcept 8751: { return error_code(static_cast(__e), generic_category()); } 8751: 8751: inline bool 8751: operator<(const error_code& __lhs, const error_code& __rhs) noexcept 8751: { 8751: return (__lhs.category() < __rhs.category() 8751: || (__lhs.category() == __rhs.category() 8751: && __lhs.value() < __rhs.value())); 8751: } 8751: 8751: template 8751: basic_ostream<_CharT, _Traits>& 8751: operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e) 8751: { return (__os << __e.category().name() << ':' << __e.value()); } 8751: 8751: error_condition make_error_condition(errc) noexcept; 8751: 8751: 8751: 8751: struct error_condition 8751: { 8751: error_condition() noexcept 8751: : _M_value(0), _M_cat(&generic_category()) { } 8751: 8751: error_condition(int __v, const error_category& __cat) noexcept 8751: : _M_value(__v), _M_cat(&__cat) { } 8751: 8751: template::value>::type> 8751: error_condition(_ErrorConditionEnum __e) noexcept 8751: { *this = make_error_condition(__e); } 8751: 8751: void 8751: assign(int __v, const error_category& __cat) noexcept 8751: { 8751: _M_value = __v; 8751: _M_cat = &__cat; 8751: } 8751: 8751: 8751: template 8751: typename enable_if::value, error_condition&>::type 8751: operator=(_ErrorConditionEnum __e) noexcept 8751: { return *this = make_error_condition(__e); } 8751: 8751: void 8751: clear() noexcept 8751: { assign(0, generic_category()); } 8751: 8751: 8751: int 8751: value() const noexcept { return _M_value; } 8751: 8751: const error_category& 8751: category() const noexcept { return *_M_cat; } 8751: 8751: __attribute ((__abi_tag__ ("cxx11"))) 8751: string 8751: message() const 8751: { return category().message(value()); } 8751: 8751: explicit operator bool() const noexcept 8751: { return _M_value != 0; } 8751: 8751: 8751: private: 8751: int _M_value; 8751: const error_category* _M_cat; 8751: }; 8751: 8751: 8751: inline error_condition 8751: make_error_condition(errc __e) noexcept 8751: { return error_condition(static_cast(__e), generic_category()); } 8751: 8751: inline bool 8751: operator<(const error_condition& __lhs, 8751: const error_condition& __rhs) noexcept 8751: { 8751: return (__lhs.category() < __rhs.category() 8751: || (__lhs.category() == __rhs.category() 8751: && __lhs.value() < __rhs.value())); 8751: } 8751: 8751: 8751: inline bool 8751: operator==(const error_code& __lhs, const error_code& __rhs) noexcept 8751: { return (__lhs.category() == __rhs.category() 8751: && __lhs.value() == __rhs.value()); } 8751: 8751: inline bool 8751: operator==(const error_code& __lhs, const error_condition& __rhs) noexcept 8751: { 8751: return (__lhs.category().equivalent(__lhs.value(), __rhs) 8751: || __rhs.category().equivalent(__lhs, __rhs.value())); 8751: } 8751: 8751: inline bool 8751: operator==(const error_condition& __lhs, const error_code& __rhs) noexcept 8751: { 8751: return (__rhs.category().equivalent(__rhs.value(), __lhs) 8751: || __lhs.category().equivalent(__rhs, __lhs.value())); 8751: } 8751: 8751: inline bool 8751: operator==(const error_condition& __lhs, 8751: const error_condition& __rhs) noexcept 8751: { 8751: return (__lhs.category() == __rhs.category() 8751: && __lhs.value() == __rhs.value()); 8751: } 8751: 8751: inline bool 8751: operator!=(const error_code& __lhs, const error_code& __rhs) noexcept 8751: { return !(__lhs == __rhs); } 8751: 8751: inline bool 8751: operator!=(const error_code& __lhs, const error_condition& __rhs) noexcept 8751: { return !(__lhs == __rhs); } 8751: 8751: inline bool 8751: operator!=(const error_condition& __lhs, const error_code& __rhs) noexcept 8751: { return !(__lhs == __rhs); } 8751: 8751: inline bool 8751: operator!=(const error_condition& __lhs, 8751: const error_condition& __rhs) noexcept 8751: { return !(__lhs == __rhs); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: class system_error : public std::runtime_error 8751: { 8751: private: 8751: error_code _M_code; 8751: 8751: public: 8751: system_error(error_code __ec = error_code()) 8751: : runtime_error(__ec.message()), _M_code(__ec) { } 8751: 8751: system_error(error_code __ec, const string& __what) 8751: : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { } 8751: 8751: system_error(error_code __ec, const char* __what) 8751: : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { } 8751: 8751: system_error(int __v, const error_category& __ecat, const char* __what) 8751: : system_error(error_code(__v, __ecat), __what) { } 8751: 8751: system_error(int __v, const error_category& __ecat) 8751: : runtime_error(error_code(__v, __ecat).message()), 8751: _M_code(__v, __ecat) { } 8751: 8751: system_error(int __v, const error_category& __ecat, const string& __what) 8751: : runtime_error(__what + ": " + error_code(__v, __ecat).message()), 8751: _M_code(__v, __ecat) { } 8751: 8751: virtual ~system_error() noexcept; 8751: 8751: const error_code& 8751: code() const noexcept { return _M_code; } 8751: }; 8751: 8751: 8751: } 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: template<> 8751: struct hash 8751: : public __hash_base 8751: { 8751: size_t 8751: operator()(const error_code& __e) const noexcept 8751: { 8751: const size_t __tmp = std::_Hash_impl::hash(__e._M_value); 8751: return std::_Hash_impl::__hash_combine(__e._M_cat, __tmp); 8751: } 8751: }; 8751: # 414 "/usr/include/c++/8/system_error" 3 8751: 8751: } 8751: # 47 "/usr/include/c++/8/bits/ios_base.h" 2 3 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: enum _Ios_Fmtflags 8751: { 8751: _S_boolalpha = 1L << 0, 8751: _S_dec = 1L << 1, 8751: _S_fixed = 1L << 2, 8751: _S_hex = 1L << 3, 8751: _S_internal = 1L << 4, 8751: _S_left = 1L << 5, 8751: _S_oct = 1L << 6, 8751: _S_right = 1L << 7, 8751: _S_scientific = 1L << 8, 8751: _S_showbase = 1L << 9, 8751: _S_showpoint = 1L << 10, 8751: _S_showpos = 1L << 11, 8751: _S_skipws = 1L << 12, 8751: _S_unitbuf = 1L << 13, 8751: _S_uppercase = 1L << 14, 8751: _S_adjustfield = _S_left | _S_right | _S_internal, 8751: _S_basefield = _S_dec | _S_oct | _S_hex, 8751: _S_floatfield = _S_scientific | _S_fixed, 8751: _S_ios_fmtflags_end = 1L << 16, 8751: _S_ios_fmtflags_max = 0x7fffffff, 8751: _S_ios_fmtflags_min = ~0x7fffffff 8751: }; 8751: 8751: inline constexpr _Ios_Fmtflags 8751: operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 8751: { return _Ios_Fmtflags(static_cast(__a) & static_cast(__b)); } 8751: 8751: inline constexpr _Ios_Fmtflags 8751: operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 8751: { return _Ios_Fmtflags(static_cast(__a) | static_cast(__b)); } 8751: 8751: inline constexpr _Ios_Fmtflags 8751: operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 8751: { return _Ios_Fmtflags(static_cast(__a) ^ static_cast(__b)); } 8751: 8751: inline constexpr _Ios_Fmtflags 8751: operator~(_Ios_Fmtflags __a) 8751: { return _Ios_Fmtflags(~static_cast(__a)); } 8751: 8751: inline const _Ios_Fmtflags& 8751: operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 8751: { return __a = __a | __b; } 8751: 8751: inline const _Ios_Fmtflags& 8751: operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 8751: { return __a = __a & __b; } 8751: 8751: inline const _Ios_Fmtflags& 8751: operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 8751: { return __a = __a ^ __b; } 8751: 8751: 8751: enum _Ios_Openmode 8751: { 8751: _S_app = 1L << 0, 8751: _S_ate = 1L << 1, 8751: _S_bin = 1L << 2, 8751: _S_in = 1L << 3, 8751: _S_out = 1L << 4, 8751: _S_trunc = 1L << 5, 8751: _S_ios_openmode_end = 1L << 16, 8751: _S_ios_openmode_max = 0x7fffffff, 8751: _S_ios_openmode_min = ~0x7fffffff 8751: }; 8751: 8751: inline constexpr _Ios_Openmode 8751: operator&(_Ios_Openmode __a, _Ios_Openmode __b) 8751: { return _Ios_Openmode(static_cast(__a) & static_cast(__b)); } 8751: 8751: inline constexpr _Ios_Openmode 8751: operator|(_Ios_Openmode __a, _Ios_Openmode __b) 8751: { return _Ios_Openmode(static_cast(__a) | static_cast(__b)); } 8751: 8751: inline constexpr _Ios_Openmode 8751: operator^(_Ios_Openmode __a, _Ios_Openmode __b) 8751: { return _Ios_Openmode(static_cast(__a) ^ static_cast(__b)); } 8751: 8751: inline constexpr _Ios_Openmode 8751: operator~(_Ios_Openmode __a) 8751: { return _Ios_Openmode(~static_cast(__a)); } 8751: 8751: inline const _Ios_Openmode& 8751: operator|=(_Ios_Openmode& __a, _Ios_Openmode __b) 8751: { return __a = __a | __b; } 8751: 8751: inline const _Ios_Openmode& 8751: operator&=(_Ios_Openmode& __a, _Ios_Openmode __b) 8751: { return __a = __a & __b; } 8751: 8751: inline const _Ios_Openmode& 8751: operator^=(_Ios_Openmode& __a, _Ios_Openmode __b) 8751: { return __a = __a ^ __b; } 8751: 8751: 8751: enum _Ios_Iostate 8751: { 8751: _S_goodbit = 0, 8751: _S_badbit = 1L << 0, 8751: _S_eofbit = 1L << 1, 8751: _S_failbit = 1L << 2, 8751: _S_ios_iostate_end = 1L << 16, 8751: _S_ios_iostate_max = 0x7fffffff, 8751: _S_ios_iostate_min = ~0x7fffffff 8751: }; 8751: 8751: inline constexpr _Ios_Iostate 8751: operator&(_Ios_Iostate __a, _Ios_Iostate __b) 8751: { return _Ios_Iostate(static_cast(__a) & static_cast(__b)); } 8751: 8751: inline constexpr _Ios_Iostate 8751: operator|(_Ios_Iostate __a, _Ios_Iostate __b) 8751: { return _Ios_Iostate(static_cast(__a) | static_cast(__b)); } 8751: 8751: inline constexpr _Ios_Iostate 8751: operator^(_Ios_Iostate __a, _Ios_Iostate __b) 8751: { return _Ios_Iostate(static_cast(__a) ^ static_cast(__b)); } 8751: 8751: inline constexpr _Ios_Iostate 8751: operator~(_Ios_Iostate __a) 8751: { return _Ios_Iostate(~static_cast(__a)); } 8751: 8751: inline const _Ios_Iostate& 8751: operator|=(_Ios_Iostate& __a, _Ios_Iostate __b) 8751: { return __a = __a | __b; } 8751: 8751: inline const _Ios_Iostate& 8751: operator&=(_Ios_Iostate& __a, _Ios_Iostate __b) 8751: { return __a = __a & __b; } 8751: 8751: inline const _Ios_Iostate& 8751: operator^=(_Ios_Iostate& __a, _Ios_Iostate __b) 8751: { return __a = __a ^ __b; } 8751: 8751: 8751: enum _Ios_Seekdir 8751: { 8751: _S_beg = 0, 8751: _S_cur = 1, 8751: _S_end = 2, 8751: _S_ios_seekdir_end = 1L << 16 8751: }; 8751: 8751: 8751: 8751: enum class io_errc { stream = 1 }; 8751: 8751: template <> struct is_error_code_enum : public true_type { }; 8751: 8751: const error_category& iostream_category() noexcept; 8751: 8751: inline error_code 8751: make_error_code(io_errc __e) noexcept 8751: { return error_code(static_cast(__e), iostream_category()); } 8751: 8751: inline error_condition 8751: make_error_condition(io_errc __e) noexcept 8751: { return error_condition(static_cast(__e), iostream_category()); } 8751: # 228 "/usr/include/c++/8/bits/ios_base.h" 3 8751: class ios_base 8751: { 8751: # 246 "/usr/include/c++/8/bits/ios_base.h" 3 8751: public: 8751: # 255 "/usr/include/c++/8/bits/ios_base.h" 3 8751: class __attribute ((__abi_tag__ ("cxx11"))) failure : public system_error 8751: { 8751: public: 8751: explicit 8751: failure(const string& __str); 8751: 8751: 8751: explicit 8751: failure(const string&, const error_code&); 8751: 8751: explicit 8751: failure(const char*, const error_code& = io_errc::stream); 8751: 8751: 8751: virtual 8751: ~failure() throw(); 8751: 8751: virtual const char* 8751: what() const throw(); 8751: }; 8751: # 323 "/usr/include/c++/8/bits/ios_base.h" 3 8751: typedef _Ios_Fmtflags fmtflags; 8751: 8751: 8751: static const fmtflags boolalpha = _S_boolalpha; 8751: 8751: 8751: static const fmtflags dec = _S_dec; 8751: 8751: 8751: static const fmtflags fixed = _S_fixed; 8751: 8751: 8751: static const fmtflags hex = _S_hex; 8751: 8751: 8751: 8751: 8751: static const fmtflags internal = _S_internal; 8751: 8751: 8751: 8751: static const fmtflags left = _S_left; 8751: 8751: 8751: static const fmtflags oct = _S_oct; 8751: 8751: 8751: 8751: static const fmtflags right = _S_right; 8751: 8751: 8751: static const fmtflags scientific = _S_scientific; 8751: 8751: 8751: 8751: static const fmtflags showbase = _S_showbase; 8751: 8751: 8751: 8751: static const fmtflags showpoint = _S_showpoint; 8751: 8751: 8751: static const fmtflags showpos = _S_showpos; 8751: 8751: 8751: static const fmtflags skipws = _S_skipws; 8751: 8751: 8751: static const fmtflags unitbuf = _S_unitbuf; 8751: 8751: 8751: 8751: static const fmtflags uppercase = _S_uppercase; 8751: 8751: 8751: static const fmtflags adjustfield = _S_adjustfield; 8751: 8751: 8751: static const fmtflags basefield = _S_basefield; 8751: 8751: 8751: static const fmtflags floatfield = _S_floatfield; 8751: # 398 "/usr/include/c++/8/bits/ios_base.h" 3 8751: typedef _Ios_Iostate iostate; 8751: 8751: 8751: 8751: static const iostate badbit = _S_badbit; 8751: 8751: 8751: static const iostate eofbit = _S_eofbit; 8751: 8751: 8751: 8751: 8751: static const iostate failbit = _S_failbit; 8751: 8751: 8751: static const iostate goodbit = _S_goodbit; 8751: # 429 "/usr/include/c++/8/bits/ios_base.h" 3 8751: typedef _Ios_Openmode openmode; 8751: 8751: 8751: static const openmode app = _S_app; 8751: 8751: 8751: static const openmode ate = _S_ate; 8751: 8751: 8751: 8751: 8751: static const openmode binary = _S_bin; 8751: 8751: 8751: static const openmode in = _S_in; 8751: 8751: 8751: static const openmode out = _S_out; 8751: 8751: 8751: static const openmode trunc = _S_trunc; 8751: # 461 "/usr/include/c++/8/bits/ios_base.h" 3 8751: typedef _Ios_Seekdir seekdir; 8751: 8751: 8751: static const seekdir beg = _S_beg; 8751: 8751: 8751: static const seekdir cur = _S_cur; 8751: 8751: 8751: static const seekdir end = _S_end; 8751: 8751: 8751: 8751: typedef int io_state; 8751: typedef int open_mode; 8751: typedef int seek_dir; 8751: 8751: typedef std::streampos streampos; 8751: typedef std::streamoff streamoff; 8751: # 489 "/usr/include/c++/8/bits/ios_base.h" 3 8751: enum event 8751: { 8751: erase_event, 8751: imbue_event, 8751: copyfmt_event 8751: }; 8751: # 506 "/usr/include/c++/8/bits/ios_base.h" 3 8751: typedef void (*event_callback) (event __e, ios_base& __b, int __i); 8751: # 518 "/usr/include/c++/8/bits/ios_base.h" 3 8751: void 8751: register_callback(event_callback __fn, int __index); 8751: 8751: protected: 8751: streamsize _M_precision; 8751: streamsize _M_width; 8751: fmtflags _M_flags; 8751: iostate _M_exception; 8751: iostate _M_streambuf_state; 8751: 8751: 8751: 8751: struct _Callback_list 8751: { 8751: 8751: _Callback_list* _M_next; 8751: ios_base::event_callback _M_fn; 8751: int _M_index; 8751: _Atomic_word _M_refcount; 8751: 8751: _Callback_list(ios_base::event_callback __fn, int __index, 8751: _Callback_list* __cb) 8751: : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { } 8751: 8751: void 8751: _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 8751: 8751: 8751: int 8751: _M_remove_reference() 8751: { 8751: 8751: ; 8751: int __res = __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1); 8751: if (__res == 0) 8751: { 8751: ; 8751: } 8751: return __res; 8751: } 8751: }; 8751: 8751: _Callback_list* _M_callbacks; 8751: 8751: void 8751: _M_call_callbacks(event __ev) throw(); 8751: 8751: void 8751: _M_dispose_callbacks(void) throw(); 8751: 8751: 8751: struct _Words 8751: { 8751: void* _M_pword; 8751: long _M_iword; 8751: _Words() : _M_pword(0), _M_iword(0) { } 8751: }; 8751: 8751: 8751: _Words _M_word_zero; 8751: 8751: 8751: 8751: enum { _S_local_word_size = 8 }; 8751: _Words _M_local_word[_S_local_word_size]; 8751: 8751: 8751: int _M_word_size; 8751: _Words* _M_word; 8751: 8751: _Words& 8751: _M_grow_words(int __index, bool __iword); 8751: 8751: 8751: locale _M_ios_locale; 8751: 8751: void 8751: _M_init() throw(); 8751: 8751: public: 8751: 8751: 8751: 8751: 8751: 8751: class Init 8751: { 8751: friend class ios_base; 8751: public: 8751: Init(); 8751: ~Init(); 8751: 8751: private: 8751: static _Atomic_word _S_refcount; 8751: static bool _S_synced_with_stdio; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: fmtflags 8751: flags() const 8751: { return _M_flags; } 8751: # 631 "/usr/include/c++/8/bits/ios_base.h" 3 8751: fmtflags 8751: flags(fmtflags __fmtfl) 8751: { 8751: fmtflags __old = _M_flags; 8751: _M_flags = __fmtfl; 8751: return __old; 8751: } 8751: # 647 "/usr/include/c++/8/bits/ios_base.h" 3 8751: fmtflags 8751: setf(fmtflags __fmtfl) 8751: { 8751: fmtflags __old = _M_flags; 8751: _M_flags |= __fmtfl; 8751: return __old; 8751: } 8751: # 664 "/usr/include/c++/8/bits/ios_base.h" 3 8751: fmtflags 8751: setf(fmtflags __fmtfl, fmtflags __mask) 8751: { 8751: fmtflags __old = _M_flags; 8751: _M_flags &= ~__mask; 8751: _M_flags |= (__fmtfl & __mask); 8751: return __old; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: void 8751: unsetf(fmtflags __mask) 8751: { _M_flags &= ~__mask; } 8751: # 690 "/usr/include/c++/8/bits/ios_base.h" 3 8751: streamsize 8751: precision() const 8751: { return _M_precision; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: streamsize 8751: precision(streamsize __prec) 8751: { 8751: streamsize __old = _M_precision; 8751: _M_precision = __prec; 8751: return __old; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: streamsize 8751: width() const 8751: { return _M_width; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: streamsize 8751: width(streamsize __wide) 8751: { 8751: streamsize __old = _M_width; 8751: _M_width = __wide; 8751: return __old; 8751: } 8751: # 741 "/usr/include/c++/8/bits/ios_base.h" 3 8751: static bool 8751: sync_with_stdio(bool __sync = true); 8751: # 753 "/usr/include/c++/8/bits/ios_base.h" 3 8751: locale 8751: imbue(const locale& __loc) throw(); 8751: # 764 "/usr/include/c++/8/bits/ios_base.h" 3 8751: locale 8751: getloc() const 8751: { return _M_ios_locale; } 8751: # 775 "/usr/include/c++/8/bits/ios_base.h" 3 8751: const locale& 8751: _M_getloc() const 8751: { return _M_ios_locale; } 8751: # 794 "/usr/include/c++/8/bits/ios_base.h" 3 8751: static int 8751: xalloc() throw(); 8751: # 810 "/usr/include/c++/8/bits/ios_base.h" 3 8751: long& 8751: iword(int __ix) 8751: { 8751: _Words& __word = (__ix < _M_word_size) 8751: ? _M_word[__ix] : _M_grow_words(__ix, true); 8751: return __word._M_iword; 8751: } 8751: # 831 "/usr/include/c++/8/bits/ios_base.h" 3 8751: void*& 8751: pword(int __ix) 8751: { 8751: _Words& __word = (__ix < _M_word_size) 8751: ? _M_word[__ix] : _M_grow_words(__ix, false); 8751: return __word._M_pword; 8751: } 8751: # 848 "/usr/include/c++/8/bits/ios_base.h" 3 8751: virtual ~ios_base(); 8751: 8751: protected: 8751: ios_base() throw (); 8751: # 862 "/usr/include/c++/8/bits/ios_base.h" 3 8751: public: 8751: ios_base(const ios_base&) = delete; 8751: 8751: ios_base& 8751: operator=(const ios_base&) = delete; 8751: 8751: protected: 8751: void 8751: _M_move(ios_base&) noexcept; 8751: 8751: void 8751: _M_swap(ios_base& __rhs) noexcept; 8751: 8751: }; 8751: 8751: 8751: 8751: inline ios_base& 8751: boolalpha(ios_base& __base) 8751: { 8751: __base.setf(ios_base::boolalpha); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: noboolalpha(ios_base& __base) 8751: { 8751: __base.unsetf(ios_base::boolalpha); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: showbase(ios_base& __base) 8751: { 8751: __base.setf(ios_base::showbase); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: noshowbase(ios_base& __base) 8751: { 8751: __base.unsetf(ios_base::showbase); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: showpoint(ios_base& __base) 8751: { 8751: __base.setf(ios_base::showpoint); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: noshowpoint(ios_base& __base) 8751: { 8751: __base.unsetf(ios_base::showpoint); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: showpos(ios_base& __base) 8751: { 8751: __base.setf(ios_base::showpos); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: noshowpos(ios_base& __base) 8751: { 8751: __base.unsetf(ios_base::showpos); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: skipws(ios_base& __base) 8751: { 8751: __base.setf(ios_base::skipws); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: noskipws(ios_base& __base) 8751: { 8751: __base.unsetf(ios_base::skipws); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: uppercase(ios_base& __base) 8751: { 8751: __base.setf(ios_base::uppercase); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: nouppercase(ios_base& __base) 8751: { 8751: __base.unsetf(ios_base::uppercase); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: unitbuf(ios_base& __base) 8751: { 8751: __base.setf(ios_base::unitbuf); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: nounitbuf(ios_base& __base) 8751: { 8751: __base.unsetf(ios_base::unitbuf); 8751: return __base; 8751: } 8751: 8751: 8751: 8751: inline ios_base& 8751: internal(ios_base& __base) 8751: { 8751: __base.setf(ios_base::internal, ios_base::adjustfield); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: left(ios_base& __base) 8751: { 8751: __base.setf(ios_base::left, ios_base::adjustfield); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: right(ios_base& __base) 8751: { 8751: __base.setf(ios_base::right, ios_base::adjustfield); 8751: return __base; 8751: } 8751: 8751: 8751: 8751: inline ios_base& 8751: dec(ios_base& __base) 8751: { 8751: __base.setf(ios_base::dec, ios_base::basefield); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: hex(ios_base& __base) 8751: { 8751: __base.setf(ios_base::hex, ios_base::basefield); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: oct(ios_base& __base) 8751: { 8751: __base.setf(ios_base::oct, ios_base::basefield); 8751: return __base; 8751: } 8751: 8751: 8751: 8751: inline ios_base& 8751: fixed(ios_base& __base) 8751: { 8751: __base.setf(ios_base::fixed, ios_base::floatfield); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: scientific(ios_base& __base) 8751: { 8751: __base.setf(ios_base::scientific, ios_base::floatfield); 8751: return __base; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: inline ios_base& 8751: hexfloat(ios_base& __base) 8751: { 8751: __base.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield); 8751: return __base; 8751: } 8751: 8751: 8751: inline ios_base& 8751: defaultfloat(ios_base& __base) 8751: { 8751: __base.unsetf(ios_base::floatfield); 8751: return __base; 8751: } 8751: 8751: 8751: 8751: } 8751: # 43 "/usr/include/c++/8/ios" 2 3 8751: # 1 "/usr/include/c++/8/streambuf" 1 3 8751: # 36 "/usr/include/c++/8/streambuf" 3 8751: 8751: # 37 "/usr/include/c++/8/streambuf" 3 8751: # 45 "/usr/include/c++/8/streambuf" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: template 8751: streamsize 8751: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*, 8751: basic_streambuf<_CharT, _Traits>*, bool&); 8751: # 121 "/usr/include/c++/8/streambuf" 3 8751: template 8751: class basic_streambuf 8751: { 8751: public: 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef _CharT char_type; 8751: typedef _Traits traits_type; 8751: typedef typename traits_type::int_type int_type; 8751: typedef typename traits_type::pos_type pos_type; 8751: typedef typename traits_type::off_type off_type; 8751: 8751: 8751: 8751: 8751: typedef basic_streambuf __streambuf_type; 8751: 8751: 8751: friend class basic_ios; 8751: friend class basic_istream; 8751: friend class basic_ostream; 8751: friend class istreambuf_iterator; 8751: friend class ostreambuf_iterator; 8751: 8751: friend streamsize 8751: __copy_streambufs_eof<>(basic_streambuf*, basic_streambuf*, bool&); 8751: 8751: template 8751: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8751: _CharT2*>::__type 8751: __copy_move_a2(istreambuf_iterator<_CharT2>, 8751: istreambuf_iterator<_CharT2>, _CharT2*); 8751: 8751: template 8751: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8751: istreambuf_iterator<_CharT2> >::__type 8751: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8751: const _CharT2&); 8751: 8751: template 8751: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8751: void>::__type 8751: advance(istreambuf_iterator<_CharT2>&, _Distance); 8751: 8751: template 8751: friend basic_istream<_CharT2, _Traits2>& 8751: operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*); 8751: 8751: template 8751: friend basic_istream<_CharT2, _Traits2>& 8751: operator>>(basic_istream<_CharT2, _Traits2>&, 8751: basic_string<_CharT2, _Traits2, _Alloc>&); 8751: 8751: template 8751: friend basic_istream<_CharT2, _Traits2>& 8751: getline(basic_istream<_CharT2, _Traits2>&, 8751: basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2); 8751: 8751: protected: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: char_type* _M_in_beg; 8751: char_type* _M_in_cur; 8751: char_type* _M_in_end; 8751: char_type* _M_out_beg; 8751: char_type* _M_out_cur; 8751: char_type* _M_out_end; 8751: 8751: 8751: locale _M_buf_locale; 8751: 8751: public: 8751: 8751: virtual 8751: ~basic_streambuf() 8751: { } 8751: # 215 "/usr/include/c++/8/streambuf" 3 8751: locale 8751: pubimbue(const locale& __loc) 8751: { 8751: locale __tmp(this->getloc()); 8751: this->imbue(__loc); 8751: _M_buf_locale = __loc; 8751: return __tmp; 8751: } 8751: # 232 "/usr/include/c++/8/streambuf" 3 8751: locale 8751: getloc() const 8751: { return _M_buf_locale; } 8751: # 245 "/usr/include/c++/8/streambuf" 3 8751: basic_streambuf* 8751: pubsetbuf(char_type* __s, streamsize __n) 8751: { return this->setbuf(__s, __n); } 8751: # 257 "/usr/include/c++/8/streambuf" 3 8751: pos_type 8751: pubseekoff(off_type __off, ios_base::seekdir __way, 8751: ios_base::openmode __mode = ios_base::in | ios_base::out) 8751: { return this->seekoff(__off, __way, __mode); } 8751: # 269 "/usr/include/c++/8/streambuf" 3 8751: pos_type 8751: pubseekpos(pos_type __sp, 8751: ios_base::openmode __mode = ios_base::in | ios_base::out) 8751: { return this->seekpos(__sp, __mode); } 8751: 8751: 8751: 8751: 8751: int 8751: pubsync() { return this->sync(); } 8751: # 290 "/usr/include/c++/8/streambuf" 3 8751: streamsize 8751: in_avail() 8751: { 8751: const streamsize __ret = this->egptr() - this->gptr(); 8751: return __ret ? __ret : this->showmanyc(); 8751: } 8751: # 304 "/usr/include/c++/8/streambuf" 3 8751: int_type 8751: snextc() 8751: { 8751: int_type __ret = traits_type::eof(); 8751: if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(), 8751: __ret), true)) 8751: __ret = this->sgetc(); 8751: return __ret; 8751: } 8751: # 322 "/usr/include/c++/8/streambuf" 3 8751: int_type 8751: sbumpc() 8751: { 8751: int_type __ret; 8751: if (__builtin_expect(this->gptr() < this->egptr(), true)) 8751: { 8751: __ret = traits_type::to_int_type(*this->gptr()); 8751: this->gbump(1); 8751: } 8751: else 8751: __ret = this->uflow(); 8751: return __ret; 8751: } 8751: # 344 "/usr/include/c++/8/streambuf" 3 8751: int_type 8751: sgetc() 8751: { 8751: int_type __ret; 8751: if (__builtin_expect(this->gptr() < this->egptr(), true)) 8751: __ret = traits_type::to_int_type(*this->gptr()); 8751: else 8751: __ret = this->underflow(); 8751: return __ret; 8751: } 8751: # 363 "/usr/include/c++/8/streambuf" 3 8751: streamsize 8751: sgetn(char_type* __s, streamsize __n) 8751: { return this->xsgetn(__s, __n); } 8751: # 378 "/usr/include/c++/8/streambuf" 3 8751: int_type 8751: sputbackc(char_type __c) 8751: { 8751: int_type __ret; 8751: const bool __testpos = this->eback() < this->gptr(); 8751: if (__builtin_expect(!__testpos || 8751: !traits_type::eq(__c, this->gptr()[-1]), false)) 8751: __ret = this->pbackfail(traits_type::to_int_type(__c)); 8751: else 8751: { 8751: this->gbump(-1); 8751: __ret = traits_type::to_int_type(*this->gptr()); 8751: } 8751: return __ret; 8751: } 8751: # 403 "/usr/include/c++/8/streambuf" 3 8751: int_type 8751: sungetc() 8751: { 8751: int_type __ret; 8751: if (__builtin_expect(this->eback() < this->gptr(), true)) 8751: { 8751: this->gbump(-1); 8751: __ret = traits_type::to_int_type(*this->gptr()); 8751: } 8751: else 8751: __ret = this->pbackfail(); 8751: return __ret; 8751: } 8751: # 430 "/usr/include/c++/8/streambuf" 3 8751: int_type 8751: sputc(char_type __c) 8751: { 8751: int_type __ret; 8751: if (__builtin_expect(this->pptr() < this->epptr(), true)) 8751: { 8751: *this->pptr() = __c; 8751: this->pbump(1); 8751: __ret = traits_type::to_int_type(__c); 8751: } 8751: else 8751: __ret = this->overflow(traits_type::to_int_type(__c)); 8751: return __ret; 8751: } 8751: # 456 "/usr/include/c++/8/streambuf" 3 8751: streamsize 8751: sputn(const char_type* __s, streamsize __n) 8751: { return this->xsputn(__s, __n); } 8751: 8751: protected: 8751: # 470 "/usr/include/c++/8/streambuf" 3 8751: basic_streambuf() 8751: : _M_in_beg(0), _M_in_cur(0), _M_in_end(0), 8751: _M_out_beg(0), _M_out_cur(0), _M_out_end(0), 8751: _M_buf_locale(locale()) 8751: { } 8751: # 488 "/usr/include/c++/8/streambuf" 3 8751: char_type* 8751: eback() const { return _M_in_beg; } 8751: 8751: char_type* 8751: gptr() const { return _M_in_cur; } 8751: 8751: char_type* 8751: egptr() const { return _M_in_end; } 8751: # 504 "/usr/include/c++/8/streambuf" 3 8751: void 8751: gbump(int __n) { _M_in_cur += __n; } 8751: # 515 "/usr/include/c++/8/streambuf" 3 8751: void 8751: setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) 8751: { 8751: _M_in_beg = __gbeg; 8751: _M_in_cur = __gnext; 8751: _M_in_end = __gend; 8751: } 8751: # 535 "/usr/include/c++/8/streambuf" 3 8751: char_type* 8751: pbase() const { return _M_out_beg; } 8751: 8751: char_type* 8751: pptr() const { return _M_out_cur; } 8751: 8751: char_type* 8751: epptr() const { return _M_out_end; } 8751: # 551 "/usr/include/c++/8/streambuf" 3 8751: void 8751: pbump(int __n) { _M_out_cur += __n; } 8751: # 561 "/usr/include/c++/8/streambuf" 3 8751: void 8751: setp(char_type* __pbeg, char_type* __pend) 8751: { 8751: _M_out_beg = _M_out_cur = __pbeg; 8751: _M_out_end = __pend; 8751: } 8751: # 582 "/usr/include/c++/8/streambuf" 3 8751: virtual void 8751: imbue(const locale& __loc __attribute__ ((__unused__))) 8751: { } 8751: # 597 "/usr/include/c++/8/streambuf" 3 8751: virtual basic_streambuf* 8751: setbuf(char_type*, streamsize) 8751: { return this; } 8751: # 608 "/usr/include/c++/8/streambuf" 3 8751: virtual pos_type 8751: seekoff(off_type, ios_base::seekdir, 8751: ios_base::openmode = ios_base::in | ios_base::out) 8751: { return pos_type(off_type(-1)); } 8751: # 620 "/usr/include/c++/8/streambuf" 3 8751: virtual pos_type 8751: seekpos(pos_type, 8751: ios_base::openmode = ios_base::in | ios_base::out) 8751: { return pos_type(off_type(-1)); } 8751: # 633 "/usr/include/c++/8/streambuf" 3 8751: virtual int 8751: sync() { return 0; } 8751: # 655 "/usr/include/c++/8/streambuf" 3 8751: virtual streamsize 8751: showmanyc() { return 0; } 8751: # 671 "/usr/include/c++/8/streambuf" 3 8751: virtual streamsize 8751: xsgetn(char_type* __s, streamsize __n); 8751: # 693 "/usr/include/c++/8/streambuf" 3 8751: virtual int_type 8751: underflow() 8751: { return traits_type::eof(); } 8751: # 706 "/usr/include/c++/8/streambuf" 3 8751: virtual int_type 8751: uflow() 8751: { 8751: int_type __ret = traits_type::eof(); 8751: const bool __testeof = traits_type::eq_int_type(this->underflow(), 8751: __ret); 8751: if (!__testeof) 8751: { 8751: __ret = traits_type::to_int_type(*this->gptr()); 8751: this->gbump(1); 8751: } 8751: return __ret; 8751: } 8751: # 730 "/usr/include/c++/8/streambuf" 3 8751: virtual int_type 8751: pbackfail(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 8751: { return traits_type::eof(); } 8751: # 748 "/usr/include/c++/8/streambuf" 3 8751: virtual streamsize 8751: xsputn(const char_type* __s, streamsize __n); 8751: # 774 "/usr/include/c++/8/streambuf" 3 8751: virtual int_type 8751: overflow(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 8751: { return traits_type::eof(); } 8751: 8751: 8751: 8751: public: 8751: # 790 "/usr/include/c++/8/streambuf" 3 8751: [[__deprecated__("stossc is deprecated, use sbumpc instead")]] 8751: 8751: void 8751: stossc() 8751: { 8751: if (this->gptr() < this->egptr()) 8751: this->gbump(1); 8751: else 8751: this->uflow(); 8751: } 8751: 8751: 8751: 8751: void 8751: __safe_gbump(streamsize __n) { _M_in_cur += __n; } 8751: 8751: void 8751: __safe_pbump(streamsize __n) { _M_out_cur += __n; } 8751: 8751: 8751: 8751: 8751: protected: 8751: 8751: basic_streambuf(const basic_streambuf&); 8751: 8751: basic_streambuf& 8751: operator=(const basic_streambuf&); 8751: 8751: 8751: void 8751: swap(basic_streambuf& __sb) 8751: { 8751: std::swap(_M_in_beg, __sb._M_in_beg); 8751: std::swap(_M_in_cur, __sb._M_in_cur); 8751: std::swap(_M_in_end, __sb._M_in_end); 8751: std::swap(_M_out_beg, __sb._M_out_beg); 8751: std::swap(_M_out_cur, __sb._M_out_cur); 8751: std::swap(_M_out_end, __sb._M_out_end); 8751: std::swap(_M_buf_locale, __sb._M_buf_locale); 8751: } 8751: 8751: }; 8751: 8751: 8751: template 8751: std::basic_streambuf<_CharT, _Traits>:: 8751: basic_streambuf(const basic_streambuf&) = default; 8751: 8751: template 8751: std::basic_streambuf<_CharT, _Traits>& 8751: std::basic_streambuf<_CharT, _Traits>:: 8751: operator=(const basic_streambuf&) = default; 8751: 8751: 8751: 8751: template<> 8751: streamsize 8751: __copy_streambufs_eof(basic_streambuf* __sbin, 8751: basic_streambuf* __sbout, bool& __ineof); 8751: 8751: template<> 8751: streamsize 8751: __copy_streambufs_eof(basic_streambuf* __sbin, 8751: basic_streambuf* __sbout, bool& __ineof); 8751: 8751: 8751: 8751: 8751: 8751: } 8751: 8751: # 1 "/usr/include/c++/8/bits/streambuf.tcc" 1 3 8751: # 37 "/usr/include/c++/8/bits/streambuf.tcc" 3 8751: 8751: # 38 "/usr/include/c++/8/bits/streambuf.tcc" 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: template 8751: streamsize 8751: basic_streambuf<_CharT, _Traits>:: 8751: xsgetn(char_type* __s, streamsize __n) 8751: { 8751: streamsize __ret = 0; 8751: while (__ret < __n) 8751: { 8751: const streamsize __buf_len = this->egptr() - this->gptr(); 8751: if (__buf_len) 8751: { 8751: const streamsize __remaining = __n - __ret; 8751: const streamsize __len = std::min(__buf_len, __remaining); 8751: traits_type::copy(__s, this->gptr(), __len); 8751: __ret += __len; 8751: __s += __len; 8751: this->__safe_gbump(__len); 8751: } 8751: 8751: if (__ret < __n) 8751: { 8751: const int_type __c = this->uflow(); 8751: if (!traits_type::eq_int_type(__c, traits_type::eof())) 8751: { 8751: traits_type::assign(*__s++, traits_type::to_char_type(__c)); 8751: ++__ret; 8751: } 8751: else 8751: break; 8751: } 8751: } 8751: return __ret; 8751: } 8751: 8751: template 8751: streamsize 8751: basic_streambuf<_CharT, _Traits>:: 8751: xsputn(const char_type* __s, streamsize __n) 8751: { 8751: streamsize __ret = 0; 8751: while (__ret < __n) 8751: { 8751: const streamsize __buf_len = this->epptr() - this->pptr(); 8751: if (__buf_len) 8751: { 8751: const streamsize __remaining = __n - __ret; 8751: const streamsize __len = std::min(__buf_len, __remaining); 8751: traits_type::copy(this->pptr(), __s, __len); 8751: __ret += __len; 8751: __s += __len; 8751: this->__safe_pbump(__len); 8751: } 8751: 8751: if (__ret < __n) 8751: { 8751: int_type __c = this->overflow(traits_type::to_int_type(*__s)); 8751: if (!traits_type::eq_int_type(__c, traits_type::eof())) 8751: { 8751: ++__ret; 8751: ++__s; 8751: } 8751: else 8751: break; 8751: } 8751: } 8751: return __ret; 8751: } 8751: 8751: 8751: 8751: 8751: template 8751: streamsize 8751: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin, 8751: basic_streambuf<_CharT, _Traits>* __sbout, 8751: bool& __ineof) 8751: { 8751: streamsize __ret = 0; 8751: __ineof = true; 8751: typename _Traits::int_type __c = __sbin->sgetc(); 8751: while (!_Traits::eq_int_type(__c, _Traits::eof())) 8751: { 8751: __c = __sbout->sputc(_Traits::to_char_type(__c)); 8751: if (_Traits::eq_int_type(__c, _Traits::eof())) 8751: { 8751: __ineof = false; 8751: break; 8751: } 8751: ++__ret; 8751: __c = __sbin->snextc(); 8751: } 8751: return __ret; 8751: } 8751: 8751: template 8751: inline streamsize 8751: __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin, 8751: basic_streambuf<_CharT, _Traits>* __sbout) 8751: { 8751: bool __ineof; 8751: return __copy_streambufs_eof(__sbin, __sbout, __ineof); 8751: } 8751: 8751: 8751: 8751: 8751: extern template class basic_streambuf; 8751: extern template 8751: streamsize 8751: __copy_streambufs(basic_streambuf*, 8751: basic_streambuf*); 8751: extern template 8751: streamsize 8751: __copy_streambufs_eof(basic_streambuf*, 8751: basic_streambuf*, bool&); 8751: 8751: 8751: extern template class basic_streambuf; 8751: extern template 8751: streamsize 8751: __copy_streambufs(basic_streambuf*, 8751: basic_streambuf*); 8751: extern template 8751: streamsize 8751: __copy_streambufs_eof(basic_streambuf*, 8751: basic_streambuf*, bool&); 8751: 8751: 8751: 8751: 8751: } 8751: # 863 "/usr/include/c++/8/streambuf" 2 3 8751: # 44 "/usr/include/c++/8/ios" 2 3 8751: # 1 "/usr/include/c++/8/bits/basic_ios.h" 1 3 8751: # 33 "/usr/include/c++/8/bits/basic_ios.h" 3 8751: 8751: # 34 "/usr/include/c++/8/bits/basic_ios.h" 3 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/locale_facets.h" 1 3 8751: # 37 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: 8751: # 38 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: 8751: # 1 "/usr/include/c++/8/cwctype" 1 3 8751: # 39 "/usr/include/c++/8/cwctype" 3 8751: 8751: # 40 "/usr/include/c++/8/cwctype" 3 8751: # 50 "/usr/include/c++/8/cwctype" 3 8751: # 1 "/usr/include/wctype.h" 1 3 4 8751: # 38 "/usr/include/wctype.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/wctype-wchar.h" 1 3 4 8751: # 38 "/usr/include/arm-linux-gnueabihf/bits/wctype-wchar.h" 3 4 8751: typedef unsigned long int wctype_t; 8751: # 56 "/usr/include/arm-linux-gnueabihf/bits/wctype-wchar.h" 3 4 8751: enum 8751: { 8751: __ISwupper = 0, 8751: __ISwlower = 1, 8751: __ISwalpha = 2, 8751: __ISwdigit = 3, 8751: __ISwxdigit = 4, 8751: __ISwspace = 5, 8751: __ISwprint = 6, 8751: __ISwgraph = 7, 8751: __ISwblank = 8, 8751: __ISwcntrl = 9, 8751: __ISwpunct = 10, 8751: __ISwalnum = 11, 8751: 8751: _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))), 8751: _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))), 8751: _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))), 8751: _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))), 8751: _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))), 8751: _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))), 8751: _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))), 8751: _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))), 8751: _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))), 8751: _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))), 8751: _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))), 8751: _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24)))) 8751: }; 8751: 8751: 8751: 8751: extern "C" { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int iswalnum (wint_t __wc) throw (); 8751: 8751: 8751: 8751: 8751: 8751: extern int iswalpha (wint_t __wc) throw (); 8751: 8751: 8751: extern int iswcntrl (wint_t __wc) throw (); 8751: 8751: 8751: 8751: extern int iswdigit (wint_t __wc) throw (); 8751: 8751: 8751: 8751: extern int iswgraph (wint_t __wc) throw (); 8751: 8751: 8751: 8751: 8751: extern int iswlower (wint_t __wc) throw (); 8751: 8751: 8751: extern int iswprint (wint_t __wc) throw (); 8751: 8751: 8751: 8751: 8751: extern int iswpunct (wint_t __wc) throw (); 8751: 8751: 8751: 8751: 8751: extern int iswspace (wint_t __wc) throw (); 8751: 8751: 8751: 8751: 8751: extern int iswupper (wint_t __wc) throw (); 8751: 8751: 8751: 8751: 8751: extern int iswxdigit (wint_t __wc) throw (); 8751: 8751: 8751: 8751: 8751: 8751: extern int iswblank (wint_t __wc) throw (); 8751: # 155 "/usr/include/arm-linux-gnueabihf/bits/wctype-wchar.h" 3 4 8751: extern wctype_t wctype (const char *__property) throw (); 8751: 8751: 8751: 8751: extern int iswctype (wint_t __wc, wctype_t __desc) throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern wint_t towlower (wint_t __wc) throw (); 8751: 8751: 8751: extern wint_t towupper (wint_t __wc) throw (); 8751: 8751: } 8751: # 39 "/usr/include/wctype.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: extern "C" { 8751: 8751: 8751: 8751: typedef const __int32_t *wctrans_t; 8751: 8751: 8751: 8751: extern wctrans_t wctrans (const char *__property) throw (); 8751: 8751: 8751: extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern int iswalnum_l (wint_t __wc, locale_t __locale) throw (); 8751: 8751: 8751: 8751: 8751: 8751: extern int iswalpha_l (wint_t __wc, locale_t __locale) throw (); 8751: 8751: 8751: extern int iswcntrl_l (wint_t __wc, locale_t __locale) throw (); 8751: 8751: 8751: 8751: extern int iswdigit_l (wint_t __wc, locale_t __locale) throw (); 8751: 8751: 8751: 8751: extern int iswgraph_l (wint_t __wc, locale_t __locale) throw (); 8751: 8751: 8751: 8751: 8751: extern int iswlower_l (wint_t __wc, locale_t __locale) throw (); 8751: 8751: 8751: extern int iswprint_l (wint_t __wc, locale_t __locale) throw (); 8751: 8751: 8751: 8751: 8751: extern int iswpunct_l (wint_t __wc, locale_t __locale) throw (); 8751: 8751: 8751: 8751: 8751: extern int iswspace_l (wint_t __wc, locale_t __locale) throw (); 8751: 8751: 8751: 8751: 8751: extern int iswupper_l (wint_t __wc, locale_t __locale) throw (); 8751: 8751: 8751: 8751: 8751: extern int iswxdigit_l (wint_t __wc, locale_t __locale) throw (); 8751: 8751: 8751: 8751: 8751: extern int iswblank_l (wint_t __wc, locale_t __locale) throw (); 8751: 8751: 8751: 8751: extern wctype_t wctype_l (const char *__property, locale_t __locale) 8751: throw (); 8751: 8751: 8751: 8751: extern int iswctype_l (wint_t __wc, wctype_t __desc, locale_t __locale) 8751: throw (); 8751: 8751: 8751: 8751: 8751: 8751: 8751: extern wint_t towlower_l (wint_t __wc, locale_t __locale) throw (); 8751: 8751: 8751: extern wint_t towupper_l (wint_t __wc, locale_t __locale) throw (); 8751: 8751: 8751: 8751: extern wctrans_t wctrans_l (const char *__property, locale_t __locale) 8751: throw (); 8751: 8751: 8751: extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc, 8751: locale_t __locale) throw (); 8751: 8751: 8751: 8751: } 8751: # 51 "/usr/include/c++/8/cwctype" 2 3 8751: # 80 "/usr/include/c++/8/cwctype" 3 8751: namespace std 8751: { 8751: using ::wctrans_t; 8751: using ::wctype_t; 8751: using ::wint_t; 8751: 8751: using ::iswalnum; 8751: using ::iswalpha; 8751: 8751: using ::iswblank; 8751: 8751: using ::iswcntrl; 8751: using ::iswctype; 8751: using ::iswdigit; 8751: using ::iswgraph; 8751: using ::iswlower; 8751: using ::iswprint; 8751: using ::iswpunct; 8751: using ::iswspace; 8751: using ::iswupper; 8751: using ::iswxdigit; 8751: using ::towctrans; 8751: using ::towlower; 8751: using ::towupper; 8751: using ::wctrans; 8751: using ::wctype; 8751: } 8751: # 40 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8751: # 1 "/usr/include/c++/8/cctype" 1 3 8751: # 39 "/usr/include/c++/8/cctype" 3 8751: 8751: # 40 "/usr/include/c++/8/cctype" 3 8751: # 41 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8751: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/ctype_base.h" 1 3 8751: # 36 "/usr/include/arm-linux-gnueabihf/c++/8/bits/ctype_base.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: struct ctype_base 8751: { 8751: 8751: typedef const int* __to_type; 8751: 8751: 8751: 8751: typedef unsigned short mask; 8751: static const mask upper = _ISupper; 8751: static const mask lower = _ISlower; 8751: static const mask alpha = _ISalpha; 8751: static const mask digit = _ISdigit; 8751: static const mask xdigit = _ISxdigit; 8751: static const mask space = _ISspace; 8751: static const mask print = _ISprint; 8751: static const mask graph = _ISalpha | _ISdigit | _ISpunct; 8751: static const mask cntrl = _IScntrl; 8751: static const mask punct = _ISpunct; 8751: static const mask alnum = _ISalpha | _ISdigit; 8751: 8751: static const mask blank = _ISblank; 8751: 8751: }; 8751: 8751: 8751: } 8751: # 42 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8751: 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/streambuf_iterator.h" 1 3 8751: # 33 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8751: 8751: # 34 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8751: 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 49 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8751: template 8751: class istreambuf_iterator 8751: : public iterator 8751: 8751: 8751: 8751: { 8751: public: 8751: 8751: 8751: 8751: typedef _CharT char_type; 8751: typedef _Traits traits_type; 8751: typedef typename _Traits::int_type int_type; 8751: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 8751: typedef basic_istream<_CharT, _Traits> istream_type; 8751: 8751: 8751: template 8751: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8751: ostreambuf_iterator<_CharT2> >::__type 8751: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8751: ostreambuf_iterator<_CharT2>); 8751: 8751: template 8751: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8751: _CharT2*>::__type 8751: __copy_move_a2(istreambuf_iterator<_CharT2>, 8751: istreambuf_iterator<_CharT2>, _CharT2*); 8751: 8751: template 8751: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8751: istreambuf_iterator<_CharT2> >::__type 8751: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8751: const _CharT2&); 8751: 8751: template 8751: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8751: void>::__type 8751: advance(istreambuf_iterator<_CharT2>&, _Distance); 8751: 8751: private: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: mutable streambuf_type* _M_sbuf; 8751: int_type _M_c; 8751: 8751: public: 8751: 8751: constexpr istreambuf_iterator() noexcept 8751: : _M_sbuf(0), _M_c(traits_type::eof()) { } 8751: 8751: 8751: istreambuf_iterator(const istreambuf_iterator&) noexcept = default; 8751: 8751: ~istreambuf_iterator() = default; 8751: 8751: 8751: 8751: istreambuf_iterator(istream_type& __s) noexcept 8751: : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { } 8751: 8751: 8751: istreambuf_iterator(streambuf_type* __s) noexcept 8751: : _M_sbuf(__s), _M_c(traits_type::eof()) { } 8751: 8751: 8751: 8751: 8751: char_type 8751: operator*() const 8751: { 8751: int_type __c = _M_get(); 8751: # 139 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8751: return traits_type::to_char_type(__c); 8751: } 8751: 8751: 8751: istreambuf_iterator& 8751: operator++() 8751: { 8751: 8751: 8751: 8751: ; 8751: 8751: _M_sbuf->sbumpc(); 8751: _M_c = traits_type::eof(); 8751: return *this; 8751: } 8751: 8751: 8751: istreambuf_iterator 8751: operator++(int) 8751: { 8751: 8751: 8751: 8751: ; 8751: 8751: istreambuf_iterator __old = *this; 8751: __old._M_c = _M_sbuf->sbumpc(); 8751: _M_c = traits_type::eof(); 8751: return __old; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: bool 8751: equal(const istreambuf_iterator& __b) const 8751: { return _M_at_eof() == __b._M_at_eof(); } 8751: 8751: private: 8751: int_type 8751: _M_get() const 8751: { 8751: int_type __ret = _M_c; 8751: if (_M_sbuf && _S_is_eof(__ret) && _S_is_eof(__ret = _M_sbuf->sgetc())) 8751: _M_sbuf = 0; 8751: return __ret; 8751: } 8751: 8751: bool 8751: _M_at_eof() const 8751: { return _S_is_eof(_M_get()); } 8751: 8751: static bool 8751: _S_is_eof(int_type __c) 8751: { 8751: const int_type __eof = traits_type::eof(); 8751: return traits_type::eq_int_type(__c, __eof); 8751: } 8751: }; 8751: 8751: template 8751: inline bool 8751: operator==(const istreambuf_iterator<_CharT, _Traits>& __a, 8751: const istreambuf_iterator<_CharT, _Traits>& __b) 8751: { return __a.equal(__b); } 8751: 8751: template 8751: inline bool 8751: operator!=(const istreambuf_iterator<_CharT, _Traits>& __a, 8751: const istreambuf_iterator<_CharT, _Traits>& __b) 8751: { return !__a.equal(__b); } 8751: 8751: 8751: template 8751: class ostreambuf_iterator 8751: : public iterator 8751: { 8751: public: 8751: 8751: 8751: 8751: typedef _CharT char_type; 8751: typedef _Traits traits_type; 8751: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 8751: typedef basic_ostream<_CharT, _Traits> ostream_type; 8751: 8751: 8751: template 8751: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8751: ostreambuf_iterator<_CharT2> >::__type 8751: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8751: ostreambuf_iterator<_CharT2>); 8751: 8751: private: 8751: streambuf_type* _M_sbuf; 8751: bool _M_failed; 8751: 8751: public: 8751: 8751: ostreambuf_iterator(ostream_type& __s) noexcept 8751: : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { } 8751: 8751: 8751: ostreambuf_iterator(streambuf_type* __s) noexcept 8751: : _M_sbuf(__s), _M_failed(!_M_sbuf) { } 8751: 8751: 8751: ostreambuf_iterator& 8751: operator=(_CharT __c) 8751: { 8751: if (!_M_failed && 8751: _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof())) 8751: _M_failed = true; 8751: return *this; 8751: } 8751: 8751: 8751: ostreambuf_iterator& 8751: operator*() 8751: { return *this; } 8751: 8751: 8751: ostreambuf_iterator& 8751: operator++(int) 8751: { return *this; } 8751: 8751: 8751: ostreambuf_iterator& 8751: operator++() 8751: { return *this; } 8751: 8751: 8751: bool 8751: failed() const noexcept 8751: { return _M_failed; } 8751: 8751: ostreambuf_iterator& 8751: _M_put(const _CharT* __ws, streamsize __len) 8751: { 8751: if (__builtin_expect(!_M_failed, true) 8751: && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len, 8751: false)) 8751: _M_failed = true; 8751: return *this; 8751: } 8751: }; 8751: 8751: 8751: template 8751: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8751: ostreambuf_iterator<_CharT> >::__type 8751: copy(istreambuf_iterator<_CharT> __first, 8751: istreambuf_iterator<_CharT> __last, 8751: ostreambuf_iterator<_CharT> __result) 8751: { 8751: if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed) 8751: { 8751: bool __ineof; 8751: __copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof); 8751: if (!__ineof) 8751: __result._M_failed = true; 8751: } 8751: return __result; 8751: } 8751: 8751: template 8751: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8751: ostreambuf_iterator<_CharT> >::__type 8751: __copy_move_a2(_CharT* __first, _CharT* __last, 8751: ostreambuf_iterator<_CharT> __result) 8751: { 8751: const streamsize __num = __last - __first; 8751: if (__num > 0) 8751: __result._M_put(__first, __num); 8751: return __result; 8751: } 8751: 8751: template 8751: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8751: ostreambuf_iterator<_CharT> >::__type 8751: __copy_move_a2(const _CharT* __first, const _CharT* __last, 8751: ostreambuf_iterator<_CharT> __result) 8751: { 8751: const streamsize __num = __last - __first; 8751: if (__num > 0) 8751: __result._M_put(__first, __num); 8751: return __result; 8751: } 8751: 8751: template 8751: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8751: _CharT*>::__type 8751: __copy_move_a2(istreambuf_iterator<_CharT> __first, 8751: istreambuf_iterator<_CharT> __last, _CharT* __result) 8751: { 8751: typedef istreambuf_iterator<_CharT> __is_iterator_type; 8751: typedef typename __is_iterator_type::traits_type traits_type; 8751: typedef typename __is_iterator_type::streambuf_type streambuf_type; 8751: typedef typename traits_type::int_type int_type; 8751: 8751: if (__first._M_sbuf && !__last._M_sbuf) 8751: { 8751: streambuf_type* __sb = __first._M_sbuf; 8751: int_type __c = __sb->sgetc(); 8751: while (!traits_type::eq_int_type(__c, traits_type::eof())) 8751: { 8751: const streamsize __n = __sb->egptr() - __sb->gptr(); 8751: if (__n > 1) 8751: { 8751: traits_type::copy(__result, __sb->gptr(), __n); 8751: __sb->__safe_gbump(__n); 8751: __result += __n; 8751: __c = __sb->underflow(); 8751: } 8751: else 8751: { 8751: *__result++ = traits_type::to_char_type(__c); 8751: __c = __sb->snextc(); 8751: } 8751: } 8751: } 8751: return __result; 8751: } 8751: 8751: template 8751: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8751: istreambuf_iterator<_CharT> >::__type 8751: find(istreambuf_iterator<_CharT> __first, 8751: istreambuf_iterator<_CharT> __last, const _CharT& __val) 8751: { 8751: typedef istreambuf_iterator<_CharT> __is_iterator_type; 8751: typedef typename __is_iterator_type::traits_type traits_type; 8751: typedef typename __is_iterator_type::streambuf_type streambuf_type; 8751: typedef typename traits_type::int_type int_type; 8751: const int_type __eof = traits_type::eof(); 8751: 8751: if (__first._M_sbuf && !__last._M_sbuf) 8751: { 8751: const int_type __ival = traits_type::to_int_type(__val); 8751: streambuf_type* __sb = __first._M_sbuf; 8751: int_type __c = __sb->sgetc(); 8751: while (!traits_type::eq_int_type(__c, __eof) 8751: && !traits_type::eq_int_type(__c, __ival)) 8751: { 8751: streamsize __n = __sb->egptr() - __sb->gptr(); 8751: if (__n > 1) 8751: { 8751: const _CharT* __p = traits_type::find(__sb->gptr(), 8751: __n, __val); 8751: if (__p) 8751: __n = __p - __sb->gptr(); 8751: __sb->__safe_gbump(__n); 8751: __c = __sb->sgetc(); 8751: } 8751: else 8751: __c = __sb->snextc(); 8751: } 8751: 8751: __first._M_c = __eof; 8751: } 8751: 8751: return __first; 8751: } 8751: 8751: template 8751: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8751: void>::__type 8751: advance(istreambuf_iterator<_CharT>& __i, _Distance __n) 8751: { 8751: if (__n == 0) 8751: return; 8751: 8751: ; 8751: 8751: 8751: ; 8751: 8751: typedef istreambuf_iterator<_CharT> __is_iterator_type; 8751: typedef typename __is_iterator_type::traits_type traits_type; 8751: typedef typename __is_iterator_type::streambuf_type streambuf_type; 8751: typedef typename traits_type::int_type int_type; 8751: const int_type __eof = traits_type::eof(); 8751: 8751: streambuf_type* __sb = __i._M_sbuf; 8751: while (__n > 0) 8751: { 8751: streamsize __size = __sb->egptr() - __sb->gptr(); 8751: if (__size > __n) 8751: { 8751: __sb->__safe_gbump(__n); 8751: break; 8751: } 8751: 8751: __sb->__safe_gbump(__size); 8751: __n -= __size; 8751: if (traits_type::eq_int_type(__sb->underflow(), __eof)) 8751: { 8751: 8751: 8751: ; 8751: break; 8751: } 8751: } 8751: 8751: __i._M_c = __eof; 8751: } 8751: 8751: 8751: 8751: 8751: } 8751: # 49 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 71 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: template 8751: void 8751: __convert_to_v(const char*, _Tp&, ios_base::iostate&, 8751: const __c_locale&) throw(); 8751: 8751: 8751: template<> 8751: void 8751: __convert_to_v(const char*, float&, ios_base::iostate&, 8751: const __c_locale&) throw(); 8751: 8751: template<> 8751: void 8751: __convert_to_v(const char*, double&, ios_base::iostate&, 8751: const __c_locale&) throw(); 8751: 8751: template<> 8751: void 8751: __convert_to_v(const char*, long double&, ios_base::iostate&, 8751: const __c_locale&) throw(); 8751: 8751: 8751: 8751: template 8751: struct __pad 8751: { 8751: static void 8751: _S_pad(ios_base& __io, _CharT __fill, _CharT* __news, 8751: const _CharT* __olds, streamsize __newlen, streamsize __oldlen); 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: _CharT* 8751: __add_grouping(_CharT* __s, _CharT __sep, 8751: const char* __gbeg, size_t __gsize, 8751: const _CharT* __first, const _CharT* __last); 8751: 8751: 8751: 8751: 8751: template 8751: inline 8751: ostreambuf_iterator<_CharT> 8751: __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len) 8751: { 8751: __s._M_put(__ws, __len); 8751: return __s; 8751: } 8751: 8751: 8751: template 8751: inline 8751: _OutIter 8751: __write(_OutIter __s, const _CharT* __ws, int __len) 8751: { 8751: for (int __j = 0; __j < __len; __j++, ++__s) 8751: *__s = __ws[__j]; 8751: return __s; 8751: } 8751: # 149 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: template 8751: class __ctype_abstract_base : public locale::facet, public ctype_base 8751: { 8751: public: 8751: 8751: 8751: typedef _CharT char_type; 8751: # 168 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: bool 8751: is(mask __m, char_type __c) const 8751: { return this->do_is(__m, __c); } 8751: # 185 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: const char_type* 8751: is(const char_type *__lo, const char_type *__hi, mask *__vec) const 8751: { return this->do_is(__lo, __hi, __vec); } 8751: # 201 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: const char_type* 8751: scan_is(mask __m, const char_type* __lo, const char_type* __hi) const 8751: { return this->do_scan_is(__m, __lo, __hi); } 8751: # 217 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: const char_type* 8751: scan_not(mask __m, const char_type* __lo, const char_type* __hi) const 8751: { return this->do_scan_not(__m, __lo, __hi); } 8751: # 231 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: char_type 8751: toupper(char_type __c) const 8751: { return this->do_toupper(__c); } 8751: # 246 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: const char_type* 8751: toupper(char_type *__lo, const char_type* __hi) const 8751: { return this->do_toupper(__lo, __hi); } 8751: # 260 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: char_type 8751: tolower(char_type __c) const 8751: { return this->do_tolower(__c); } 8751: # 275 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: const char_type* 8751: tolower(char_type* __lo, const char_type* __hi) const 8751: { return this->do_tolower(__lo, __hi); } 8751: # 292 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: char_type 8751: widen(char __c) const 8751: { return this->do_widen(__c); } 8751: # 311 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: const char* 8751: widen(const char* __lo, const char* __hi, char_type* __to) const 8751: { return this->do_widen(__lo, __hi, __to); } 8751: # 330 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: char 8751: narrow(char_type __c, char __dfault) const 8751: { return this->do_narrow(__c, __dfault); } 8751: # 352 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: const char_type* 8751: narrow(const char_type* __lo, const char_type* __hi, 8751: char __dfault, char* __to) const 8751: { return this->do_narrow(__lo, __hi, __dfault, __to); } 8751: 8751: protected: 8751: explicit 8751: __ctype_abstract_base(size_t __refs = 0): facet(__refs) { } 8751: 8751: virtual 8751: ~__ctype_abstract_base() { } 8751: # 377 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual bool 8751: do_is(mask __m, char_type __c) const = 0; 8751: # 396 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual const char_type* 8751: do_is(const char_type* __lo, const char_type* __hi, 8751: mask* __vec) const = 0; 8751: # 415 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual const char_type* 8751: do_scan_is(mask __m, const char_type* __lo, 8751: const char_type* __hi) const = 0; 8751: # 434 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual const char_type* 8751: do_scan_not(mask __m, const char_type* __lo, 8751: const char_type* __hi) const = 0; 8751: # 452 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual char_type 8751: do_toupper(char_type __c) const = 0; 8751: # 469 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual const char_type* 8751: do_toupper(char_type* __lo, const char_type* __hi) const = 0; 8751: # 485 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual char_type 8751: do_tolower(char_type __c) const = 0; 8751: # 502 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual const char_type* 8751: do_tolower(char_type* __lo, const char_type* __hi) const = 0; 8751: # 521 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual char_type 8751: do_widen(char __c) const = 0; 8751: # 542 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual const char* 8751: do_widen(const char* __lo, const char* __hi, char_type* __to) const = 0; 8751: # 563 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual char 8751: do_narrow(char_type __c, char __dfault) const = 0; 8751: # 588 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual const char_type* 8751: do_narrow(const char_type* __lo, const char_type* __hi, 8751: char __dfault, char* __to) const = 0; 8751: }; 8751: # 611 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: template 8751: class ctype : public __ctype_abstract_base<_CharT> 8751: { 8751: public: 8751: 8751: typedef _CharT char_type; 8751: typedef typename __ctype_abstract_base<_CharT>::mask mask; 8751: 8751: 8751: static locale::id id; 8751: 8751: explicit 8751: ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { } 8751: 8751: protected: 8751: virtual 8751: ~ctype(); 8751: 8751: virtual bool 8751: do_is(mask __m, char_type __c) const; 8751: 8751: virtual const char_type* 8751: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 8751: 8751: virtual const char_type* 8751: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 8751: 8751: virtual const char_type* 8751: do_scan_not(mask __m, const char_type* __lo, 8751: const char_type* __hi) const; 8751: 8751: virtual char_type 8751: do_toupper(char_type __c) const; 8751: 8751: virtual const char_type* 8751: do_toupper(char_type* __lo, const char_type* __hi) const; 8751: 8751: virtual char_type 8751: do_tolower(char_type __c) const; 8751: 8751: virtual const char_type* 8751: do_tolower(char_type* __lo, const char_type* __hi) const; 8751: 8751: virtual char_type 8751: do_widen(char __c) const; 8751: 8751: virtual const char* 8751: do_widen(const char* __lo, const char* __hi, char_type* __dest) const; 8751: 8751: virtual char 8751: do_narrow(char_type, char __dfault) const; 8751: 8751: virtual const char_type* 8751: do_narrow(const char_type* __lo, const char_type* __hi, 8751: char __dfault, char* __to) const; 8751: }; 8751: 8751: template 8751: locale::id ctype<_CharT>::id; 8751: # 680 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: template<> 8751: class ctype : public locale::facet, public ctype_base 8751: { 8751: public: 8751: 8751: 8751: typedef char char_type; 8751: 8751: protected: 8751: 8751: __c_locale _M_c_locale_ctype; 8751: bool _M_del; 8751: __to_type _M_toupper; 8751: __to_type _M_tolower; 8751: const mask* _M_table; 8751: mutable char _M_widen_ok; 8751: mutable char _M_widen[1 + static_cast(-1)]; 8751: mutable char _M_narrow[1 + static_cast(-1)]; 8751: mutable char _M_narrow_ok; 8751: 8751: 8751: public: 8751: 8751: static locale::id id; 8751: 8751: static const size_t table_size = 1 + static_cast(-1); 8751: # 717 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: explicit 8751: ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0); 8751: # 730 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: explicit 8751: ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false, 8751: size_t __refs = 0); 8751: # 743 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: inline bool 8751: is(mask __m, char __c) const; 8751: # 758 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: inline const char* 8751: is(const char* __lo, const char* __hi, mask* __vec) const; 8751: # 772 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: inline const char* 8751: scan_is(mask __m, const char* __lo, const char* __hi) const; 8751: # 786 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: inline const char* 8751: scan_not(mask __m, const char* __lo, const char* __hi) const; 8751: # 801 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: char_type 8751: toupper(char_type __c) const 8751: { return this->do_toupper(__c); } 8751: # 818 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: const char_type* 8751: toupper(char_type *__lo, const char_type* __hi) const 8751: { return this->do_toupper(__lo, __hi); } 8751: # 834 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: char_type 8751: tolower(char_type __c) const 8751: { return this->do_tolower(__c); } 8751: # 851 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: const char_type* 8751: tolower(char_type* __lo, const char_type* __hi) const 8751: { return this->do_tolower(__lo, __hi); } 8751: # 871 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: char_type 8751: widen(char __c) const 8751: { 8751: if (_M_widen_ok) 8751: return _M_widen[static_cast(__c)]; 8751: this->_M_widen_init(); 8751: return this->do_widen(__c); 8751: } 8751: # 898 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: const char* 8751: widen(const char* __lo, const char* __hi, char_type* __to) const 8751: { 8751: if (_M_widen_ok == 1) 8751: { 8751: __builtin_memcpy(__to, __lo, __hi - __lo); 8751: return __hi; 8751: } 8751: if (!_M_widen_ok) 8751: _M_widen_init(); 8751: return this->do_widen(__lo, __hi, __to); 8751: } 8751: # 929 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: char 8751: narrow(char_type __c, char __dfault) const 8751: { 8751: if (_M_narrow[static_cast(__c)]) 8751: return _M_narrow[static_cast(__c)]; 8751: const char __t = do_narrow(__c, __dfault); 8751: if (__t != __dfault) 8751: _M_narrow[static_cast(__c)] = __t; 8751: return __t; 8751: } 8751: # 962 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: const char_type* 8751: narrow(const char_type* __lo, const char_type* __hi, 8751: char __dfault, char* __to) const 8751: { 8751: if (__builtin_expect(_M_narrow_ok == 1, true)) 8751: { 8751: __builtin_memcpy(__to, __lo, __hi - __lo); 8751: return __hi; 8751: } 8751: if (!_M_narrow_ok) 8751: _M_narrow_init(); 8751: return this->do_narrow(__lo, __hi, __dfault, __to); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: const mask* 8751: table() const throw() 8751: { return _M_table; } 8751: 8751: 8751: static const mask* 8751: classic_table() throw(); 8751: protected: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: virtual 8751: ~ctype(); 8751: # 1011 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual char_type 8751: do_toupper(char_type __c) const; 8751: # 1028 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual const char_type* 8751: do_toupper(char_type* __lo, const char_type* __hi) const; 8751: # 1044 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual char_type 8751: do_tolower(char_type __c) const; 8751: # 1061 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual const char_type* 8751: do_tolower(char_type* __lo, const char_type* __hi) const; 8751: # 1081 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual char_type 8751: do_widen(char __c) const 8751: { return __c; } 8751: # 1104 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual const char* 8751: do_widen(const char* __lo, const char* __hi, char_type* __to) const 8751: { 8751: __builtin_memcpy(__to, __lo, __hi - __lo); 8751: return __hi; 8751: } 8751: # 1130 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual char 8751: do_narrow(char_type __c, char __dfault __attribute__((__unused__))) const 8751: { return __c; } 8751: # 1156 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual const char_type* 8751: do_narrow(const char_type* __lo, const char_type* __hi, 8751: char __dfault __attribute__((__unused__)), char* __to) const 8751: { 8751: __builtin_memcpy(__to, __lo, __hi - __lo); 8751: return __hi; 8751: } 8751: 8751: private: 8751: void _M_narrow_init() const; 8751: void _M_widen_init() const; 8751: }; 8751: # 1181 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: template<> 8751: class ctype : public __ctype_abstract_base 8751: { 8751: public: 8751: 8751: 8751: typedef wchar_t char_type; 8751: typedef wctype_t __wmask_type; 8751: 8751: protected: 8751: __c_locale _M_c_locale_ctype; 8751: 8751: 8751: bool _M_narrow_ok; 8751: char _M_narrow[128]; 8751: wint_t _M_widen[1 + static_cast(-1)]; 8751: 8751: 8751: mask _M_bit[16]; 8751: __wmask_type _M_wmask[16]; 8751: 8751: public: 8751: 8751: 8751: static locale::id id; 8751: # 1214 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: explicit 8751: ctype(size_t __refs = 0); 8751: # 1225 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: explicit 8751: ctype(__c_locale __cloc, size_t __refs = 0); 8751: 8751: protected: 8751: __wmask_type 8751: _M_convert_to_wmask(const mask __m) const throw(); 8751: 8751: 8751: virtual 8751: ~ctype(); 8751: # 1249 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual bool 8751: do_is(mask __m, char_type __c) const; 8751: # 1268 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual const char_type* 8751: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 8751: # 1286 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual const char_type* 8751: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 8751: # 1304 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual const char_type* 8751: do_scan_not(mask __m, const char_type* __lo, 8751: const char_type* __hi) const; 8751: # 1321 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual char_type 8751: do_toupper(char_type __c) const; 8751: # 1338 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual const char_type* 8751: do_toupper(char_type* __lo, const char_type* __hi) const; 8751: # 1354 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual char_type 8751: do_tolower(char_type __c) const; 8751: # 1371 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual const char_type* 8751: do_tolower(char_type* __lo, const char_type* __hi) const; 8751: # 1391 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual char_type 8751: do_widen(char __c) const; 8751: # 1413 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual const char* 8751: do_widen(const char* __lo, const char* __hi, char_type* __to) const; 8751: # 1436 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual char 8751: do_narrow(char_type __c, char __dfault) const; 8751: # 1462 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual const char_type* 8751: do_narrow(const char_type* __lo, const char_type* __hi, 8751: char __dfault, char* __to) const; 8751: 8751: 8751: void 8751: _M_initialize_ctype() throw(); 8751: }; 8751: 8751: 8751: 8751: template 8751: class ctype_byname : public ctype<_CharT> 8751: { 8751: public: 8751: typedef typename ctype<_CharT>::mask mask; 8751: 8751: explicit 8751: ctype_byname(const char* __s, size_t __refs = 0); 8751: 8751: 8751: explicit 8751: ctype_byname(const string& __s, size_t __refs = 0) 8751: : ctype_byname(__s.c_str(), __refs) { } 8751: 8751: 8751: protected: 8751: virtual 8751: ~ctype_byname() { } 8751: }; 8751: 8751: 8751: template<> 8751: class ctype_byname : public ctype 8751: { 8751: public: 8751: explicit 8751: ctype_byname(const char* __s, size_t __refs = 0); 8751: 8751: 8751: explicit 8751: ctype_byname(const string& __s, size_t __refs = 0); 8751: 8751: 8751: protected: 8751: virtual 8751: ~ctype_byname(); 8751: }; 8751: 8751: 8751: template<> 8751: class ctype_byname : public ctype 8751: { 8751: public: 8751: explicit 8751: ctype_byname(const char* __s, size_t __refs = 0); 8751: 8751: 8751: explicit 8751: ctype_byname(const string& __s, size_t __refs = 0); 8751: 8751: 8751: protected: 8751: virtual 8751: ~ctype_byname(); 8751: }; 8751: 8751: 8751: 8751: } 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/c++/8/bits/ctype_inline.h" 1 3 8751: # 37 "/usr/include/arm-linux-gnueabihf/c++/8/bits/ctype_inline.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: bool 8751: ctype:: 8751: is(mask __m, char __c) const 8751: { return _M_table[static_cast(__c)] & __m; } 8751: 8751: const char* 8751: ctype:: 8751: is(const char* __low, const char* __high, mask* __vec) const 8751: { 8751: while (__low < __high) 8751: *__vec++ = _M_table[static_cast(*__low++)]; 8751: return __high; 8751: } 8751: 8751: const char* 8751: ctype:: 8751: scan_is(mask __m, const char* __low, const char* __high) const 8751: { 8751: while (__low < __high 8751: && !(_M_table[static_cast(*__low)] & __m)) 8751: ++__low; 8751: return __low; 8751: } 8751: 8751: const char* 8751: ctype:: 8751: scan_not(mask __m, const char* __low, const char* __high) const 8751: { 8751: while (__low < __high 8751: && (_M_table[static_cast(*__low)] & __m) != 0) 8751: ++__low; 8751: return __low; 8751: } 8751: 8751: 8751: } 8751: # 1535 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: class __num_base 8751: { 8751: public: 8751: 8751: 8751: enum 8751: { 8751: _S_ominus, 8751: _S_oplus, 8751: _S_ox, 8751: _S_oX, 8751: _S_odigits, 8751: _S_odigits_end = _S_odigits + 16, 8751: _S_oudigits = _S_odigits_end, 8751: _S_oudigits_end = _S_oudigits + 16, 8751: _S_oe = _S_odigits + 14, 8751: _S_oE = _S_oudigits + 14, 8751: _S_oend = _S_oudigits_end 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: static const char* _S_atoms_out; 8751: 8751: 8751: 8751: static const char* _S_atoms_in; 8751: 8751: enum 8751: { 8751: _S_iminus, 8751: _S_iplus, 8751: _S_ix, 8751: _S_iX, 8751: _S_izero, 8751: _S_ie = _S_izero + 14, 8751: _S_iE = _S_izero + 20, 8751: _S_iend = 26 8751: }; 8751: 8751: 8751: 8751: static void 8751: _S_format_float(const ios_base& __io, char* __fptr, char __mod) throw(); 8751: }; 8751: 8751: template 8751: struct __numpunct_cache : public locale::facet 8751: { 8751: const char* _M_grouping; 8751: size_t _M_grouping_size; 8751: bool _M_use_grouping; 8751: const _CharT* _M_truename; 8751: size_t _M_truename_size; 8751: const _CharT* _M_falsename; 8751: size_t _M_falsename_size; 8751: _CharT _M_decimal_point; 8751: _CharT _M_thousands_sep; 8751: 8751: 8751: 8751: 8751: 8751: _CharT _M_atoms_out[__num_base::_S_oend]; 8751: 8751: 8751: 8751: 8751: 8751: _CharT _M_atoms_in[__num_base::_S_iend]; 8751: 8751: bool _M_allocated; 8751: 8751: __numpunct_cache(size_t __refs = 0) 8751: : facet(__refs), _M_grouping(0), _M_grouping_size(0), 8751: _M_use_grouping(false), 8751: _M_truename(0), _M_truename_size(0), _M_falsename(0), 8751: _M_falsename_size(0), _M_decimal_point(_CharT()), 8751: _M_thousands_sep(_CharT()), _M_allocated(false) 8751: { } 8751: 8751: ~__numpunct_cache(); 8751: 8751: void 8751: _M_cache(const locale& __loc); 8751: 8751: private: 8751: __numpunct_cache& 8751: operator=(const __numpunct_cache&); 8751: 8751: explicit 8751: __numpunct_cache(const __numpunct_cache&); 8751: }; 8751: 8751: template 8751: __numpunct_cache<_CharT>::~__numpunct_cache() 8751: { 8751: if (_M_allocated) 8751: { 8751: delete [] _M_grouping; 8751: delete [] _M_truename; 8751: delete [] _M_falsename; 8751: } 8751: } 8751: 8751: namespace __cxx11 { 8751: # 1665 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: template 8751: class numpunct : public locale::facet 8751: { 8751: public: 8751: 8751: 8751: 8751: typedef _CharT char_type; 8751: typedef basic_string<_CharT> string_type; 8751: 8751: typedef __numpunct_cache<_CharT> __cache_type; 8751: 8751: protected: 8751: __cache_type* _M_data; 8751: 8751: public: 8751: 8751: static locale::id id; 8751: 8751: 8751: 8751: 8751: 8751: 8751: explicit 8751: numpunct(size_t __refs = 0) 8751: : facet(__refs), _M_data(0) 8751: { _M_initialize_numpunct(); } 8751: # 1703 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: explicit 8751: numpunct(__cache_type* __cache, size_t __refs = 0) 8751: : facet(__refs), _M_data(__cache) 8751: { _M_initialize_numpunct(); } 8751: # 1717 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: explicit 8751: numpunct(__c_locale __cloc, size_t __refs = 0) 8751: : facet(__refs), _M_data(0) 8751: { _M_initialize_numpunct(__cloc); } 8751: # 1731 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: char_type 8751: decimal_point() const 8751: { return this->do_decimal_point(); } 8751: # 1744 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: char_type 8751: thousands_sep() const 8751: { return this->do_thousands_sep(); } 8751: # 1775 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: string 8751: grouping() const 8751: { return this->do_grouping(); } 8751: # 1788 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: string_type 8751: truename() const 8751: { return this->do_truename(); } 8751: # 1801 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: string_type 8751: falsename() const 8751: { return this->do_falsename(); } 8751: 8751: protected: 8751: 8751: virtual 8751: ~numpunct(); 8751: # 1818 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual char_type 8751: do_decimal_point() const 8751: { return _M_data->_M_decimal_point; } 8751: # 1830 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual char_type 8751: do_thousands_sep() const 8751: { return _M_data->_M_thousands_sep; } 8751: # 1843 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual string 8751: do_grouping() const 8751: { return _M_data->_M_grouping; } 8751: # 1856 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual string_type 8751: do_truename() const 8751: { return _M_data->_M_truename; } 8751: # 1869 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual string_type 8751: do_falsename() const 8751: { return _M_data->_M_falsename; } 8751: 8751: 8751: void 8751: _M_initialize_numpunct(__c_locale __cloc = 0); 8751: }; 8751: 8751: template 8751: locale::id numpunct<_CharT>::id; 8751: 8751: template<> 8751: numpunct::~numpunct(); 8751: 8751: template<> 8751: void 8751: numpunct::_M_initialize_numpunct(__c_locale __cloc); 8751: 8751: 8751: template<> 8751: numpunct::~numpunct(); 8751: 8751: template<> 8751: void 8751: numpunct::_M_initialize_numpunct(__c_locale __cloc); 8751: 8751: 8751: 8751: template 8751: class numpunct_byname : public numpunct<_CharT> 8751: { 8751: public: 8751: typedef _CharT char_type; 8751: typedef basic_string<_CharT> string_type; 8751: 8751: explicit 8751: numpunct_byname(const char* __s, size_t __refs = 0) 8751: : numpunct<_CharT>(__refs) 8751: { 8751: if (__builtin_strcmp(__s, "C") != 0 8751: && __builtin_strcmp(__s, "POSIX") != 0) 8751: { 8751: __c_locale __tmp; 8751: this->_S_create_c_locale(__tmp, __s); 8751: this->_M_initialize_numpunct(__tmp); 8751: this->_S_destroy_c_locale(__tmp); 8751: } 8751: } 8751: 8751: 8751: explicit 8751: numpunct_byname(const string& __s, size_t __refs = 0) 8751: : numpunct_byname(__s.c_str(), __refs) { } 8751: 8751: 8751: protected: 8751: virtual 8751: ~numpunct_byname() { } 8751: }; 8751: 8751: } 8751: 8751: 8751: # 1947 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: template 8751: class num_get : public locale::facet 8751: { 8751: public: 8751: 8751: 8751: 8751: typedef _CharT char_type; 8751: typedef _InIter iter_type; 8751: 8751: 8751: 8751: static locale::id id; 8751: # 1968 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: explicit 8751: num_get(size_t __refs = 0) : facet(__refs) { } 8751: # 1994 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: iter_type 8751: get(iter_type __in, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, bool& __v) const 8751: { return this->do_get(__in, __end, __io, __err, __v); } 8751: # 2031 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: iter_type 8751: get(iter_type __in, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, long& __v) const 8751: { return this->do_get(__in, __end, __io, __err, __v); } 8751: 8751: iter_type 8751: get(iter_type __in, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, unsigned short& __v) const 8751: { return this->do_get(__in, __end, __io, __err, __v); } 8751: 8751: iter_type 8751: get(iter_type __in, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, unsigned int& __v) const 8751: { return this->do_get(__in, __end, __io, __err, __v); } 8751: 8751: iter_type 8751: get(iter_type __in, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, unsigned long& __v) const 8751: { return this->do_get(__in, __end, __io, __err, __v); } 8751: 8751: 8751: iter_type 8751: get(iter_type __in, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, long long& __v) const 8751: { return this->do_get(__in, __end, __io, __err, __v); } 8751: 8751: iter_type 8751: get(iter_type __in, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, unsigned long long& __v) const 8751: { return this->do_get(__in, __end, __io, __err, __v); } 8751: # 2091 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: iter_type 8751: get(iter_type __in, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, float& __v) const 8751: { return this->do_get(__in, __end, __io, __err, __v); } 8751: 8751: iter_type 8751: get(iter_type __in, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, double& __v) const 8751: { return this->do_get(__in, __end, __io, __err, __v); } 8751: 8751: iter_type 8751: get(iter_type __in, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, long double& __v) const 8751: { return this->do_get(__in, __end, __io, __err, __v); } 8751: # 2134 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: iter_type 8751: get(iter_type __in, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, void*& __v) const 8751: { return this->do_get(__in, __end, __io, __err, __v); } 8751: 8751: protected: 8751: 8751: virtual ~num_get() { } 8751: 8751: __attribute ((__abi_tag__ ("cxx11"))) 8751: iter_type 8751: _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&, 8751: string&) const; 8751: 8751: template 8751: __attribute ((__abi_tag__ ("cxx11"))) 8751: iter_type 8751: _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&, 8751: _ValueT&) const; 8751: 8751: template 8751: typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type 8751: _M_find(const _CharT2*, size_t __len, _CharT2 __c) const 8751: { 8751: int __ret = -1; 8751: if (__len <= 10) 8751: { 8751: if (__c >= _CharT2('0') && __c < _CharT2(_CharT2('0') + __len)) 8751: __ret = __c - _CharT2('0'); 8751: } 8751: else 8751: { 8751: if (__c >= _CharT2('0') && __c <= _CharT2('9')) 8751: __ret = __c - _CharT2('0'); 8751: else if (__c >= _CharT2('a') && __c <= _CharT2('f')) 8751: __ret = 10 + (__c - _CharT2('a')); 8751: else if (__c >= _CharT2('A') && __c <= _CharT2('F')) 8751: __ret = 10 + (__c - _CharT2('A')); 8751: } 8751: return __ret; 8751: } 8751: 8751: template 8751: typename __gnu_cxx::__enable_if::__value, 8751: int>::__type 8751: _M_find(const _CharT2* __zero, size_t __len, _CharT2 __c) const 8751: { 8751: int __ret = -1; 8751: const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c); 8751: if (__q) 8751: { 8751: __ret = __q - __zero; 8751: if (__ret > 15) 8751: __ret -= 6; 8751: } 8751: return __ret; 8751: } 8751: # 2207 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual iter_type 8751: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const; 8751: 8751: virtual iter_type 8751: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, long& __v) const 8751: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8751: 8751: virtual iter_type 8751: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, unsigned short& __v) const 8751: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8751: 8751: virtual iter_type 8751: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, unsigned int& __v) const 8751: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8751: 8751: virtual iter_type 8751: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, unsigned long& __v) const 8751: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8751: 8751: 8751: virtual iter_type 8751: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, long long& __v) const 8751: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8751: 8751: virtual iter_type 8751: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, unsigned long long& __v) const 8751: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8751: 8751: 8751: virtual iter_type 8751: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, float&) const; 8751: 8751: virtual iter_type 8751: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 8751: double&) const; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: virtual iter_type 8751: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 8751: long double&) const; 8751: 8751: 8751: virtual iter_type 8751: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, void*&) const; 8751: # 2270 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: }; 8751: 8751: template 8751: locale::id num_get<_CharT, _InIter>::id; 8751: # 2288 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: template 8751: class num_put : public locale::facet 8751: { 8751: public: 8751: 8751: 8751: 8751: typedef _CharT char_type; 8751: typedef _OutIter iter_type; 8751: 8751: 8751: 8751: static locale::id id; 8751: # 2309 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: explicit 8751: num_put(size_t __refs = 0) : facet(__refs) { } 8751: # 2327 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: iter_type 8751: put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 8751: { return this->do_put(__s, __io, __fill, __v); } 8751: # 2369 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: iter_type 8751: put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 8751: { return this->do_put(__s, __io, __fill, __v); } 8751: 8751: iter_type 8751: put(iter_type __s, ios_base& __io, char_type __fill, 8751: unsigned long __v) const 8751: { return this->do_put(__s, __io, __fill, __v); } 8751: 8751: 8751: iter_type 8751: put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const 8751: { return this->do_put(__s, __io, __fill, __v); } 8751: 8751: iter_type 8751: put(iter_type __s, ios_base& __io, char_type __fill, 8751: unsigned long long __v) const 8751: { return this->do_put(__s, __io, __fill, __v); } 8751: # 2432 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: iter_type 8751: put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 8751: { return this->do_put(__s, __io, __fill, __v); } 8751: 8751: iter_type 8751: put(iter_type __s, ios_base& __io, char_type __fill, 8751: long double __v) const 8751: { return this->do_put(__s, __io, __fill, __v); } 8751: # 2457 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: iter_type 8751: put(iter_type __s, ios_base& __io, char_type __fill, 8751: const void* __v) const 8751: { return this->do_put(__s, __io, __fill, __v); } 8751: 8751: protected: 8751: template 8751: iter_type 8751: _M_insert_float(iter_type, ios_base& __io, char_type __fill, 8751: char __mod, _ValueT __v) const; 8751: 8751: void 8751: _M_group_float(const char* __grouping, size_t __grouping_size, 8751: char_type __sep, const char_type* __p, char_type* __new, 8751: char_type* __cs, int& __len) const; 8751: 8751: template 8751: iter_type 8751: _M_insert_int(iter_type, ios_base& __io, char_type __fill, 8751: _ValueT __v) const; 8751: 8751: void 8751: _M_group_int(const char* __grouping, size_t __grouping_size, 8751: char_type __sep, ios_base& __io, char_type* __new, 8751: char_type* __cs, int& __len) const; 8751: 8751: void 8751: _M_pad(char_type __fill, streamsize __w, ios_base& __io, 8751: char_type* __new, const char_type* __cs, int& __len) const; 8751: 8751: 8751: virtual 8751: ~num_put() { } 8751: # 2505 "/usr/include/c++/8/bits/locale_facets.h" 3 8751: virtual iter_type 8751: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const; 8751: 8751: virtual iter_type 8751: do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 8751: { return _M_insert_int(__s, __io, __fill, __v); } 8751: 8751: virtual iter_type 8751: do_put(iter_type __s, ios_base& __io, char_type __fill, 8751: unsigned long __v) const 8751: { return _M_insert_int(__s, __io, __fill, __v); } 8751: 8751: 8751: virtual iter_type 8751: do_put(iter_type __s, ios_base& __io, char_type __fill, 8751: long long __v) const 8751: { return _M_insert_int(__s, __io, __fill, __v); } 8751: 8751: virtual iter_type 8751: do_put(iter_type __s, ios_base& __io, char_type __fill, 8751: unsigned long long __v) const 8751: { return _M_insert_int(__s, __io, __fill, __v); } 8751: 8751: 8751: virtual iter_type 8751: do_put(iter_type, ios_base&, char_type, double) const; 8751: 8751: 8751: 8751: 8751: 8751: 8751: virtual iter_type 8751: do_put(iter_type, ios_base&, char_type, long double) const; 8751: 8751: 8751: virtual iter_type 8751: do_put(iter_type, ios_base&, char_type, const void*) const; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: template 8751: locale::id num_put<_CharT, _OutIter>::id; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline bool 8751: isspace(_CharT __c, const locale& __loc) 8751: { return use_facet >(__loc).is(ctype_base::space, __c); } 8751: 8751: 8751: template 8751: inline bool 8751: isprint(_CharT __c, const locale& __loc) 8751: { return use_facet >(__loc).is(ctype_base::print, __c); } 8751: 8751: 8751: template 8751: inline bool 8751: iscntrl(_CharT __c, const locale& __loc) 8751: { return use_facet >(__loc).is(ctype_base::cntrl, __c); } 8751: 8751: 8751: template 8751: inline bool 8751: isupper(_CharT __c, const locale& __loc) 8751: { return use_facet >(__loc).is(ctype_base::upper, __c); } 8751: 8751: 8751: template 8751: inline bool 8751: islower(_CharT __c, const locale& __loc) 8751: { return use_facet >(__loc).is(ctype_base::lower, __c); } 8751: 8751: 8751: template 8751: inline bool 8751: isalpha(_CharT __c, const locale& __loc) 8751: { return use_facet >(__loc).is(ctype_base::alpha, __c); } 8751: 8751: 8751: template 8751: inline bool 8751: isdigit(_CharT __c, const locale& __loc) 8751: { return use_facet >(__loc).is(ctype_base::digit, __c); } 8751: 8751: 8751: template 8751: inline bool 8751: ispunct(_CharT __c, const locale& __loc) 8751: { return use_facet >(__loc).is(ctype_base::punct, __c); } 8751: 8751: 8751: template 8751: inline bool 8751: isxdigit(_CharT __c, const locale& __loc) 8751: { return use_facet >(__loc).is(ctype_base::xdigit, __c); } 8751: 8751: 8751: template 8751: inline bool 8751: isalnum(_CharT __c, const locale& __loc) 8751: { return use_facet >(__loc).is(ctype_base::alnum, __c); } 8751: 8751: 8751: template 8751: inline bool 8751: isgraph(_CharT __c, const locale& __loc) 8751: { return use_facet >(__loc).is(ctype_base::graph, __c); } 8751: 8751: 8751: 8751: template 8751: inline bool 8751: isblank(_CharT __c, const locale& __loc) 8751: { return use_facet >(__loc).is(ctype_base::blank, __c); } 8751: 8751: 8751: 8751: template 8751: inline _CharT 8751: toupper(_CharT __c, const locale& __loc) 8751: { return use_facet >(__loc).toupper(__c); } 8751: 8751: 8751: template 8751: inline _CharT 8751: tolower(_CharT __c, const locale& __loc) 8751: { return use_facet >(__loc).tolower(__c); } 8751: 8751: 8751: } 8751: 8751: # 1 "/usr/include/c++/8/bits/locale_facets.tcc" 1 3 8751: # 33 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8751: 8751: # 34 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: template 8751: struct __use_cache 8751: { 8751: const _Facet* 8751: operator() (const locale& __loc) const; 8751: }; 8751: 8751: 8751: template 8751: struct __use_cache<__numpunct_cache<_CharT> > 8751: { 8751: const __numpunct_cache<_CharT>* 8751: operator() (const locale& __loc) const 8751: { 8751: const size_t __i = numpunct<_CharT>::id._M_id(); 8751: const locale::facet** __caches = __loc._M_impl->_M_caches; 8751: if (!__caches[__i]) 8751: { 8751: __numpunct_cache<_CharT>* __tmp = 0; 8751: try 8751: { 8751: __tmp = new __numpunct_cache<_CharT>; 8751: __tmp->_M_cache(__loc); 8751: } 8751: catch(...) 8751: { 8751: delete __tmp; 8751: throw; 8751: } 8751: __loc._M_impl->_M_install_cache(__tmp, __i); 8751: } 8751: return static_cast*>(__caches[__i]); 8751: } 8751: }; 8751: 8751: template 8751: void 8751: __numpunct_cache<_CharT>::_M_cache(const locale& __loc) 8751: { 8751: const numpunct<_CharT>& __np = use_facet >(__loc); 8751: 8751: char* __grouping = 0; 8751: _CharT* __truename = 0; 8751: _CharT* __falsename = 0; 8751: try 8751: { 8751: const string& __g = __np.grouping(); 8751: _M_grouping_size = __g.size(); 8751: __grouping = new char[_M_grouping_size]; 8751: __g.copy(__grouping, _M_grouping_size); 8751: _M_use_grouping = (_M_grouping_size 8751: && static_cast(__grouping[0]) > 0 8751: && (__grouping[0] 8751: != __gnu_cxx::__numeric_traits::__max)); 8751: 8751: const basic_string<_CharT>& __tn = __np.truename(); 8751: _M_truename_size = __tn.size(); 8751: __truename = new _CharT[_M_truename_size]; 8751: __tn.copy(__truename, _M_truename_size); 8751: 8751: const basic_string<_CharT>& __fn = __np.falsename(); 8751: _M_falsename_size = __fn.size(); 8751: __falsename = new _CharT[_M_falsename_size]; 8751: __fn.copy(__falsename, _M_falsename_size); 8751: 8751: _M_decimal_point = __np.decimal_point(); 8751: _M_thousands_sep = __np.thousands_sep(); 8751: 8751: const ctype<_CharT>& __ct = use_facet >(__loc); 8751: __ct.widen(__num_base::_S_atoms_out, 8751: __num_base::_S_atoms_out 8751: + __num_base::_S_oend, _M_atoms_out); 8751: __ct.widen(__num_base::_S_atoms_in, 8751: __num_base::_S_atoms_in 8751: + __num_base::_S_iend, _M_atoms_in); 8751: 8751: _M_grouping = __grouping; 8751: _M_truename = __truename; 8751: _M_falsename = __falsename; 8751: _M_allocated = true; 8751: } 8751: catch(...) 8751: { 8751: delete [] __grouping; 8751: delete [] __truename; 8751: delete [] __falsename; 8751: throw; 8751: } 8751: } 8751: # 139 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8751: __attribute__ ((__pure__)) bool 8751: __verify_grouping(const char* __grouping, size_t __grouping_size, 8751: const string& __grouping_tmp) throw (); 8751: 8751: 8751: 8751: template 8751: __attribute ((__abi_tag__ ("cxx11"))) 8751: _InIter 8751: num_get<_CharT, _InIter>:: 8751: _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io, 8751: ios_base::iostate& __err, string& __xtrc) const 8751: { 8751: typedef char_traits<_CharT> __traits_type; 8751: typedef __numpunct_cache<_CharT> __cache_type; 8751: __use_cache<__cache_type> __uc; 8751: const locale& __loc = __io._M_getloc(); 8751: const __cache_type* __lc = __uc(__loc); 8751: const _CharT* __lit = __lc->_M_atoms_in; 8751: char_type __c = char_type(); 8751: 8751: 8751: bool __testeof = __beg == __end; 8751: 8751: 8751: if (!__testeof) 8751: { 8751: __c = *__beg; 8751: const bool __plus = __c == __lit[__num_base::_S_iplus]; 8751: if ((__plus || __c == __lit[__num_base::_S_iminus]) 8751: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8751: && !(__c == __lc->_M_decimal_point)) 8751: { 8751: __xtrc += __plus ? '+' : '-'; 8751: if (++__beg != __end) 8751: __c = *__beg; 8751: else 8751: __testeof = true; 8751: } 8751: } 8751: 8751: 8751: bool __found_mantissa = false; 8751: int __sep_pos = 0; 8751: while (!__testeof) 8751: { 8751: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8751: || __c == __lc->_M_decimal_point) 8751: break; 8751: else if (__c == __lit[__num_base::_S_izero]) 8751: { 8751: if (!__found_mantissa) 8751: { 8751: __xtrc += '0'; 8751: __found_mantissa = true; 8751: } 8751: ++__sep_pos; 8751: 8751: if (++__beg != __end) 8751: __c = *__beg; 8751: else 8751: __testeof = true; 8751: } 8751: else 8751: break; 8751: } 8751: 8751: 8751: bool __found_dec = false; 8751: bool __found_sci = false; 8751: string __found_grouping; 8751: if (__lc->_M_use_grouping) 8751: __found_grouping.reserve(32); 8751: const char_type* __lit_zero = __lit + __num_base::_S_izero; 8751: 8751: if (!__lc->_M_allocated) 8751: 8751: while (!__testeof) 8751: { 8751: const int __digit = _M_find(__lit_zero, 10, __c); 8751: if (__digit != -1) 8751: { 8751: __xtrc += '0' + __digit; 8751: __found_mantissa = true; 8751: } 8751: else if (__c == __lc->_M_decimal_point 8751: && !__found_dec && !__found_sci) 8751: { 8751: __xtrc += '.'; 8751: __found_dec = true; 8751: } 8751: else if ((__c == __lit[__num_base::_S_ie] 8751: || __c == __lit[__num_base::_S_iE]) 8751: && !__found_sci && __found_mantissa) 8751: { 8751: 8751: __xtrc += 'e'; 8751: __found_sci = true; 8751: 8751: 8751: if (++__beg != __end) 8751: { 8751: __c = *__beg; 8751: const bool __plus = __c == __lit[__num_base::_S_iplus]; 8751: if (__plus || __c == __lit[__num_base::_S_iminus]) 8751: __xtrc += __plus ? '+' : '-'; 8751: else 8751: continue; 8751: } 8751: else 8751: { 8751: __testeof = true; 8751: break; 8751: } 8751: } 8751: else 8751: break; 8751: 8751: if (++__beg != __end) 8751: __c = *__beg; 8751: else 8751: __testeof = true; 8751: } 8751: else 8751: while (!__testeof) 8751: { 8751: 8751: 8751: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8751: { 8751: if (!__found_dec && !__found_sci) 8751: { 8751: 8751: 8751: if (__sep_pos) 8751: { 8751: __found_grouping += static_cast(__sep_pos); 8751: __sep_pos = 0; 8751: } 8751: else 8751: { 8751: 8751: 8751: __xtrc.clear(); 8751: break; 8751: } 8751: } 8751: else 8751: break; 8751: } 8751: else if (__c == __lc->_M_decimal_point) 8751: { 8751: if (!__found_dec && !__found_sci) 8751: { 8751: 8751: 8751: 8751: if (__found_grouping.size()) 8751: __found_grouping += static_cast(__sep_pos); 8751: __xtrc += '.'; 8751: __found_dec = true; 8751: } 8751: else 8751: break; 8751: } 8751: else 8751: { 8751: const char_type* __q = 8751: __traits_type::find(__lit_zero, 10, __c); 8751: if (__q) 8751: { 8751: __xtrc += '0' + (__q - __lit_zero); 8751: __found_mantissa = true; 8751: ++__sep_pos; 8751: } 8751: else if ((__c == __lit[__num_base::_S_ie] 8751: || __c == __lit[__num_base::_S_iE]) 8751: && !__found_sci && __found_mantissa) 8751: { 8751: 8751: if (__found_grouping.size() && !__found_dec) 8751: __found_grouping += static_cast(__sep_pos); 8751: __xtrc += 'e'; 8751: __found_sci = true; 8751: 8751: 8751: if (++__beg != __end) 8751: { 8751: __c = *__beg; 8751: const bool __plus = __c == __lit[__num_base::_S_iplus]; 8751: if ((__plus || __c == __lit[__num_base::_S_iminus]) 8751: && !(__lc->_M_use_grouping 8751: && __c == __lc->_M_thousands_sep) 8751: && !(__c == __lc->_M_decimal_point)) 8751: __xtrc += __plus ? '+' : '-'; 8751: else 8751: continue; 8751: } 8751: else 8751: { 8751: __testeof = true; 8751: break; 8751: } 8751: } 8751: else 8751: break; 8751: } 8751: 8751: if (++__beg != __end) 8751: __c = *__beg; 8751: else 8751: __testeof = true; 8751: } 8751: 8751: 8751: 8751: if (__found_grouping.size()) 8751: { 8751: 8751: if (!__found_dec && !__found_sci) 8751: __found_grouping += static_cast(__sep_pos); 8751: 8751: if (!std::__verify_grouping(__lc->_M_grouping, 8751: __lc->_M_grouping_size, 8751: __found_grouping)) 8751: __err = ios_base::failbit; 8751: } 8751: 8751: return __beg; 8751: } 8751: 8751: template 8751: template 8751: __attribute ((__abi_tag__ ("cxx11"))) 8751: _InIter 8751: num_get<_CharT, _InIter>:: 8751: _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io, 8751: ios_base::iostate& __err, _ValueT& __v) const 8751: { 8751: typedef char_traits<_CharT> __traits_type; 8751: using __gnu_cxx::__add_unsigned; 8751: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 8751: typedef __numpunct_cache<_CharT> __cache_type; 8751: __use_cache<__cache_type> __uc; 8751: const locale& __loc = __io._M_getloc(); 8751: const __cache_type* __lc = __uc(__loc); 8751: const _CharT* __lit = __lc->_M_atoms_in; 8751: char_type __c = char_type(); 8751: 8751: 8751: const ios_base::fmtflags __basefield = __io.flags() 8751: & ios_base::basefield; 8751: const bool __oct = __basefield == ios_base::oct; 8751: int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10); 8751: 8751: 8751: bool __testeof = __beg == __end; 8751: 8751: 8751: bool __negative = false; 8751: if (!__testeof) 8751: { 8751: __c = *__beg; 8751: __negative = __c == __lit[__num_base::_S_iminus]; 8751: if ((__negative || __c == __lit[__num_base::_S_iplus]) 8751: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8751: && !(__c == __lc->_M_decimal_point)) 8751: { 8751: if (++__beg != __end) 8751: __c = *__beg; 8751: else 8751: __testeof = true; 8751: } 8751: } 8751: 8751: 8751: 8751: bool __found_zero = false; 8751: int __sep_pos = 0; 8751: while (!__testeof) 8751: { 8751: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8751: || __c == __lc->_M_decimal_point) 8751: break; 8751: else if (__c == __lit[__num_base::_S_izero] 8751: && (!__found_zero || __base == 10)) 8751: { 8751: __found_zero = true; 8751: ++__sep_pos; 8751: if (__basefield == 0) 8751: __base = 8; 8751: if (__base == 8) 8751: __sep_pos = 0; 8751: } 8751: else if (__found_zero 8751: && (__c == __lit[__num_base::_S_ix] 8751: || __c == __lit[__num_base::_S_iX])) 8751: { 8751: if (__basefield == 0) 8751: __base = 16; 8751: if (__base == 16) 8751: { 8751: __found_zero = false; 8751: __sep_pos = 0; 8751: } 8751: else 8751: break; 8751: } 8751: else 8751: break; 8751: 8751: if (++__beg != __end) 8751: { 8751: __c = *__beg; 8751: if (!__found_zero) 8751: break; 8751: } 8751: else 8751: __testeof = true; 8751: } 8751: 8751: 8751: 8751: const size_t __len = (__base == 16 ? __num_base::_S_iend 8751: - __num_base::_S_izero : __base); 8751: 8751: 8751: typedef __gnu_cxx::__numeric_traits<_ValueT> __num_traits; 8751: string __found_grouping; 8751: if (__lc->_M_use_grouping) 8751: __found_grouping.reserve(32); 8751: bool __testfail = false; 8751: bool __testoverflow = false; 8751: const __unsigned_type __max = 8751: (__negative && __num_traits::__is_signed) 8751: ? -static_cast<__unsigned_type>(__num_traits::__min) 8751: : __num_traits::__max; 8751: const __unsigned_type __smax = __max / __base; 8751: __unsigned_type __result = 0; 8751: int __digit = 0; 8751: const char_type* __lit_zero = __lit + __num_base::_S_izero; 8751: 8751: if (!__lc->_M_allocated) 8751: 8751: while (!__testeof) 8751: { 8751: __digit = _M_find(__lit_zero, __len, __c); 8751: if (__digit == -1) 8751: break; 8751: 8751: if (__result > __smax) 8751: __testoverflow = true; 8751: else 8751: { 8751: __result *= __base; 8751: __testoverflow |= __result > __max - __digit; 8751: __result += __digit; 8751: ++__sep_pos; 8751: } 8751: 8751: if (++__beg != __end) 8751: __c = *__beg; 8751: else 8751: __testeof = true; 8751: } 8751: else 8751: while (!__testeof) 8751: { 8751: 8751: 8751: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8751: { 8751: 8751: 8751: if (__sep_pos) 8751: { 8751: __found_grouping += static_cast(__sep_pos); 8751: __sep_pos = 0; 8751: } 8751: else 8751: { 8751: __testfail = true; 8751: break; 8751: } 8751: } 8751: else if (__c == __lc->_M_decimal_point) 8751: break; 8751: else 8751: { 8751: const char_type* __q = 8751: __traits_type::find(__lit_zero, __len, __c); 8751: if (!__q) 8751: break; 8751: 8751: __digit = __q - __lit_zero; 8751: if (__digit > 15) 8751: __digit -= 6; 8751: if (__result > __smax) 8751: __testoverflow = true; 8751: else 8751: { 8751: __result *= __base; 8751: __testoverflow |= __result > __max - __digit; 8751: __result += __digit; 8751: ++__sep_pos; 8751: } 8751: } 8751: 8751: if (++__beg != __end) 8751: __c = *__beg; 8751: else 8751: __testeof = true; 8751: } 8751: 8751: 8751: 8751: if (__found_grouping.size()) 8751: { 8751: 8751: __found_grouping += static_cast(__sep_pos); 8751: 8751: if (!std::__verify_grouping(__lc->_M_grouping, 8751: __lc->_M_grouping_size, 8751: __found_grouping)) 8751: __err = ios_base::failbit; 8751: } 8751: 8751: 8751: 8751: if ((!__sep_pos && !__found_zero && !__found_grouping.size()) 8751: || __testfail) 8751: { 8751: __v = 0; 8751: __err = ios_base::failbit; 8751: } 8751: else if (__testoverflow) 8751: { 8751: if (__negative && __num_traits::__is_signed) 8751: __v = __num_traits::__min; 8751: else 8751: __v = __num_traits::__max; 8751: __err = ios_base::failbit; 8751: } 8751: else 8751: __v = __negative ? -__result : __result; 8751: 8751: if (__testeof) 8751: __err |= ios_base::eofbit; 8751: return __beg; 8751: } 8751: 8751: 8751: 8751: template 8751: _InIter 8751: num_get<_CharT, _InIter>:: 8751: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, bool& __v) const 8751: { 8751: if (!(__io.flags() & ios_base::boolalpha)) 8751: { 8751: 8751: 8751: 8751: long __l = -1; 8751: __beg = _M_extract_int(__beg, __end, __io, __err, __l); 8751: if (__l == 0 || __l == 1) 8751: __v = bool(__l); 8751: else 8751: { 8751: 8751: 8751: __v = true; 8751: __err = ios_base::failbit; 8751: if (__beg == __end) 8751: __err |= ios_base::eofbit; 8751: } 8751: } 8751: else 8751: { 8751: 8751: typedef __numpunct_cache<_CharT> __cache_type; 8751: __use_cache<__cache_type> __uc; 8751: const locale& __loc = __io._M_getloc(); 8751: const __cache_type* __lc = __uc(__loc); 8751: 8751: bool __testf = true; 8751: bool __testt = true; 8751: bool __donef = __lc->_M_falsename_size == 0; 8751: bool __donet = __lc->_M_truename_size == 0; 8751: bool __testeof = false; 8751: size_t __n = 0; 8751: while (!__donef || !__donet) 8751: { 8751: if (__beg == __end) 8751: { 8751: __testeof = true; 8751: break; 8751: } 8751: 8751: const char_type __c = *__beg; 8751: 8751: if (!__donef) 8751: __testf = __c == __lc->_M_falsename[__n]; 8751: 8751: if (!__testf && __donet) 8751: break; 8751: 8751: if (!__donet) 8751: __testt = __c == __lc->_M_truename[__n]; 8751: 8751: if (!__testt && __donef) 8751: break; 8751: 8751: if (!__testt && !__testf) 8751: break; 8751: 8751: ++__n; 8751: ++__beg; 8751: 8751: __donef = !__testf || __n >= __lc->_M_falsename_size; 8751: __donet = !__testt || __n >= __lc->_M_truename_size; 8751: } 8751: if (__testf && __n == __lc->_M_falsename_size && __n) 8751: { 8751: __v = false; 8751: if (__testt && __n == __lc->_M_truename_size) 8751: __err = ios_base::failbit; 8751: else 8751: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 8751: } 8751: else if (__testt && __n == __lc->_M_truename_size && __n) 8751: { 8751: __v = true; 8751: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 8751: } 8751: else 8751: { 8751: 8751: 8751: __v = false; 8751: __err = ios_base::failbit; 8751: if (__testeof) 8751: __err |= ios_base::eofbit; 8751: } 8751: } 8751: return __beg; 8751: } 8751: 8751: template 8751: _InIter 8751: num_get<_CharT, _InIter>:: 8751: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, float& __v) const 8751: { 8751: string __xtrc; 8751: __xtrc.reserve(32); 8751: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 8751: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 8751: if (__beg == __end) 8751: __err |= ios_base::eofbit; 8751: return __beg; 8751: } 8751: 8751: template 8751: _InIter 8751: num_get<_CharT, _InIter>:: 8751: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, double& __v) const 8751: { 8751: string __xtrc; 8751: __xtrc.reserve(32); 8751: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 8751: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 8751: if (__beg == __end) 8751: __err |= ios_base::eofbit; 8751: return __beg; 8751: } 8751: # 735 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8751: template 8751: _InIter 8751: num_get<_CharT, _InIter>:: 8751: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, long double& __v) const 8751: { 8751: string __xtrc; 8751: __xtrc.reserve(32); 8751: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 8751: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 8751: if (__beg == __end) 8751: __err |= ios_base::eofbit; 8751: return __beg; 8751: } 8751: 8751: template 8751: _InIter 8751: num_get<_CharT, _InIter>:: 8751: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8751: ios_base::iostate& __err, void*& __v) const 8751: { 8751: 8751: typedef ios_base::fmtflags fmtflags; 8751: const fmtflags __fmt = __io.flags(); 8751: __io.flags((__fmt & ~ios_base::basefield) | ios_base::hex); 8751: 8751: typedef __gnu_cxx::__conditional_type<(sizeof(void*) 8751: <= sizeof(unsigned long)), 8751: unsigned long, unsigned long long>::__type _UIntPtrType; 8751: 8751: _UIntPtrType __ul; 8751: __beg = _M_extract_int(__beg, __end, __io, __err, __ul); 8751: 8751: 8751: __io.flags(__fmt); 8751: 8751: __v = reinterpret_cast(__ul); 8751: return __beg; 8751: } 8751: 8751: 8751: 8751: template 8751: void 8751: num_put<_CharT, _OutIter>:: 8751: _M_pad(_CharT __fill, streamsize __w, ios_base& __io, 8751: _CharT* __new, const _CharT* __cs, int& __len) const 8751: { 8751: 8751: 8751: __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, 8751: __cs, __w, __len); 8751: __len = static_cast(__w); 8751: } 8751: 8751: 8751: 8751: template 8751: int 8751: __int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit, 8751: ios_base::fmtflags __flags, bool __dec) 8751: { 8751: _CharT* __buf = __bufend; 8751: if (__builtin_expect(__dec, true)) 8751: { 8751: 8751: do 8751: { 8751: *--__buf = __lit[(__v % 10) + __num_base::_S_odigits]; 8751: __v /= 10; 8751: } 8751: while (__v != 0); 8751: } 8751: else if ((__flags & ios_base::basefield) == ios_base::oct) 8751: { 8751: 8751: do 8751: { 8751: *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits]; 8751: __v >>= 3; 8751: } 8751: while (__v != 0); 8751: } 8751: else 8751: { 8751: 8751: const bool __uppercase = __flags & ios_base::uppercase; 8751: const int __case_offset = __uppercase ? __num_base::_S_oudigits 8751: : __num_base::_S_odigits; 8751: do 8751: { 8751: *--__buf = __lit[(__v & 0xf) + __case_offset]; 8751: __v >>= 4; 8751: } 8751: while (__v != 0); 8751: } 8751: return __bufend - __buf; 8751: } 8751: 8751: 8751: 8751: template 8751: void 8751: num_put<_CharT, _OutIter>:: 8751: _M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep, 8751: ios_base&, _CharT* __new, _CharT* __cs, int& __len) const 8751: { 8751: _CharT* __p = std::__add_grouping(__new, __sep, __grouping, 8751: __grouping_size, __cs, __cs + __len); 8751: __len = __p - __new; 8751: } 8751: 8751: template 8751: template 8751: _OutIter 8751: num_put<_CharT, _OutIter>:: 8751: _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill, 8751: _ValueT __v) const 8751: { 8751: using __gnu_cxx::__add_unsigned; 8751: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 8751: typedef __numpunct_cache<_CharT> __cache_type; 8751: __use_cache<__cache_type> __uc; 8751: const locale& __loc = __io._M_getloc(); 8751: const __cache_type* __lc = __uc(__loc); 8751: const _CharT* __lit = __lc->_M_atoms_out; 8751: const ios_base::fmtflags __flags = __io.flags(); 8751: 8751: 8751: const int __ilen = 5 * sizeof(_ValueT); 8751: _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8751: * __ilen)); 8751: 8751: 8751: 8751: const ios_base::fmtflags __basefield = __flags & ios_base::basefield; 8751: const bool __dec = (__basefield != ios_base::oct 8751: && __basefield != ios_base::hex); 8751: const __unsigned_type __u = ((__v > 0 || !__dec) 8751: ? __unsigned_type(__v) 8751: : -__unsigned_type(__v)); 8751: int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec); 8751: __cs += __ilen - __len; 8751: 8751: 8751: if (__lc->_M_use_grouping) 8751: { 8751: 8751: 8751: _CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8751: * (__len + 1) 8751: * 2)); 8751: _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size, 8751: __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len); 8751: __cs = __cs2 + 2; 8751: } 8751: 8751: 8751: if (__builtin_expect(__dec, true)) 8751: { 8751: 8751: if (__v >= 0) 8751: { 8751: if (bool(__flags & ios_base::showpos) 8751: && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) 8751: *--__cs = __lit[__num_base::_S_oplus], ++__len; 8751: } 8751: else 8751: *--__cs = __lit[__num_base::_S_ominus], ++__len; 8751: } 8751: else if (bool(__flags & ios_base::showbase) && __v) 8751: { 8751: if (__basefield == ios_base::oct) 8751: *--__cs = __lit[__num_base::_S_odigits], ++__len; 8751: else 8751: { 8751: 8751: const bool __uppercase = __flags & ios_base::uppercase; 8751: *--__cs = __lit[__num_base::_S_ox + __uppercase]; 8751: 8751: *--__cs = __lit[__num_base::_S_odigits]; 8751: __len += 2; 8751: } 8751: } 8751: 8751: 8751: const streamsize __w = __io.width(); 8751: if (__w > static_cast(__len)) 8751: { 8751: _CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8751: * __w)); 8751: _M_pad(__fill, __w, __io, __cs3, __cs, __len); 8751: __cs = __cs3; 8751: } 8751: __io.width(0); 8751: 8751: 8751: 8751: return std::__write(__s, __cs, __len); 8751: } 8751: 8751: template 8751: void 8751: num_put<_CharT, _OutIter>:: 8751: _M_group_float(const char* __grouping, size_t __grouping_size, 8751: _CharT __sep, const _CharT* __p, _CharT* __new, 8751: _CharT* __cs, int& __len) const 8751: { 8751: 8751: 8751: 8751: const int __declen = __p ? __p - __cs : __len; 8751: _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping, 8751: __grouping_size, 8751: __cs, __cs + __declen); 8751: 8751: 8751: int __newlen = __p2 - __new; 8751: if (__p) 8751: { 8751: char_traits<_CharT>::copy(__p2, __p, __len - __declen); 8751: __newlen += __len - __declen; 8751: } 8751: __len = __newlen; 8751: } 8751: # 971 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8751: template 8751: template 8751: _OutIter 8751: num_put<_CharT, _OutIter>:: 8751: _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod, 8751: _ValueT __v) const 8751: { 8751: typedef __numpunct_cache<_CharT> __cache_type; 8751: __use_cache<__cache_type> __uc; 8751: const locale& __loc = __io._M_getloc(); 8751: const __cache_type* __lc = __uc(__loc); 8751: 8751: 8751: const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision(); 8751: 8751: const int __max_digits = 8751: __gnu_cxx::__numeric_traits<_ValueT>::__digits10; 8751: 8751: 8751: int __len; 8751: 8751: char __fbuf[16]; 8751: __num_base::_S_format_float(__io, __fbuf, __mod); 8751: 8751: 8751: 8751: const bool __use_prec = 8751: (__io.flags() & ios_base::floatfield) != ios_base::floatfield; 8751: 8751: 8751: 8751: int __cs_size = __max_digits * 3; 8751: char* __cs = static_cast(__builtin_alloca(__cs_size)); 8751: if (__use_prec) 8751: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8751: __fbuf, __prec, __v); 8751: else 8751: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8751: __fbuf, __v); 8751: 8751: 8751: if (__len >= __cs_size) 8751: { 8751: __cs_size = __len + 1; 8751: __cs = static_cast(__builtin_alloca(__cs_size)); 8751: if (__use_prec) 8751: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8751: __fbuf, __prec, __v); 8751: else 8751: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8751: __fbuf, __v); 8751: } 8751: # 1044 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8751: const ctype<_CharT>& __ctype = use_facet >(__loc); 8751: 8751: _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8751: * __len)); 8751: __ctype.widen(__cs, __cs + __len, __ws); 8751: 8751: 8751: _CharT* __wp = 0; 8751: const char* __p = char_traits::find(__cs, __len, '.'); 8751: if (__p) 8751: { 8751: __wp = __ws + (__p - __cs); 8751: *__wp = __lc->_M_decimal_point; 8751: } 8751: 8751: 8751: 8751: 8751: if (__lc->_M_use_grouping 8751: && (__wp || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9' 8751: && __cs[1] >= '0' && __cs[2] >= '0'))) 8751: { 8751: 8751: 8751: _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8751: * __len * 2)); 8751: 8751: streamsize __off = 0; 8751: if (__cs[0] == '-' || __cs[0] == '+') 8751: { 8751: __off = 1; 8751: __ws2[0] = __ws[0]; 8751: __len -= 1; 8751: } 8751: 8751: _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size, 8751: __lc->_M_thousands_sep, __wp, __ws2 + __off, 8751: __ws + __off, __len); 8751: __len += __off; 8751: 8751: __ws = __ws2; 8751: } 8751: 8751: 8751: const streamsize __w = __io.width(); 8751: if (__w > static_cast(__len)) 8751: { 8751: _CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8751: * __w)); 8751: _M_pad(__fill, __w, __io, __ws3, __ws, __len); 8751: __ws = __ws3; 8751: } 8751: __io.width(0); 8751: 8751: 8751: 8751: return std::__write(__s, __ws, __len); 8751: } 8751: 8751: template 8751: _OutIter 8751: num_put<_CharT, _OutIter>:: 8751: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 8751: { 8751: const ios_base::fmtflags __flags = __io.flags(); 8751: if ((__flags & ios_base::boolalpha) == 0) 8751: { 8751: const long __l = __v; 8751: __s = _M_insert_int(__s, __io, __fill, __l); 8751: } 8751: else 8751: { 8751: typedef __numpunct_cache<_CharT> __cache_type; 8751: __use_cache<__cache_type> __uc; 8751: const locale& __loc = __io._M_getloc(); 8751: const __cache_type* __lc = __uc(__loc); 8751: 8751: const _CharT* __name = __v ? __lc->_M_truename 8751: : __lc->_M_falsename; 8751: int __len = __v ? __lc->_M_truename_size 8751: : __lc->_M_falsename_size; 8751: 8751: const streamsize __w = __io.width(); 8751: if (__w > static_cast(__len)) 8751: { 8751: const streamsize __plen = __w - __len; 8751: _CharT* __ps 8751: = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8751: * __plen)); 8751: 8751: char_traits<_CharT>::assign(__ps, __plen, __fill); 8751: __io.width(0); 8751: 8751: if ((__flags & ios_base::adjustfield) == ios_base::left) 8751: { 8751: __s = std::__write(__s, __name, __len); 8751: __s = std::__write(__s, __ps, __plen); 8751: } 8751: else 8751: { 8751: __s = std::__write(__s, __ps, __plen); 8751: __s = std::__write(__s, __name, __len); 8751: } 8751: return __s; 8751: } 8751: __io.width(0); 8751: __s = std::__write(__s, __name, __len); 8751: } 8751: return __s; 8751: } 8751: 8751: template 8751: _OutIter 8751: num_put<_CharT, _OutIter>:: 8751: do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 8751: { return _M_insert_float(__s, __io, __fill, char(), __v); } 8751: # 1169 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8751: template 8751: _OutIter 8751: num_put<_CharT, _OutIter>:: 8751: do_put(iter_type __s, ios_base& __io, char_type __fill, 8751: long double __v) const 8751: { return _M_insert_float(__s, __io, __fill, 'L', __v); } 8751: 8751: template 8751: _OutIter 8751: num_put<_CharT, _OutIter>:: 8751: do_put(iter_type __s, ios_base& __io, char_type __fill, 8751: const void* __v) const 8751: { 8751: const ios_base::fmtflags __flags = __io.flags(); 8751: const ios_base::fmtflags __fmt = ~(ios_base::basefield 8751: | ios_base::uppercase); 8751: __io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase)); 8751: 8751: typedef __gnu_cxx::__conditional_type<(sizeof(const void*) 8751: <= sizeof(unsigned long)), 8751: unsigned long, unsigned long long>::__type _UIntPtrType; 8751: 8751: __s = _M_insert_int(__s, __io, __fill, 8751: reinterpret_cast<_UIntPtrType>(__v)); 8751: __io.flags(__flags); 8751: return __s; 8751: } 8751: 8751: 8751: # 1206 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8751: template 8751: void 8751: __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill, 8751: _CharT* __news, const _CharT* __olds, 8751: streamsize __newlen, streamsize __oldlen) 8751: { 8751: const size_t __plen = static_cast(__newlen - __oldlen); 8751: const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield; 8751: 8751: 8751: if (__adjust == ios_base::left) 8751: { 8751: _Traits::copy(__news, __olds, __oldlen); 8751: _Traits::assign(__news + __oldlen, __plen, __fill); 8751: return; 8751: } 8751: 8751: size_t __mod = 0; 8751: if (__adjust == ios_base::internal) 8751: { 8751: 8751: 8751: 8751: const locale& __loc = __io._M_getloc(); 8751: const ctype<_CharT>& __ctype = use_facet >(__loc); 8751: 8751: if (__ctype.widen('-') == __olds[0] 8751: || __ctype.widen('+') == __olds[0]) 8751: { 8751: __news[0] = __olds[0]; 8751: __mod = 1; 8751: ++__news; 8751: } 8751: else if (__ctype.widen('0') == __olds[0] 8751: && __oldlen > 1 8751: && (__ctype.widen('x') == __olds[1] 8751: || __ctype.widen('X') == __olds[1])) 8751: { 8751: __news[0] = __olds[0]; 8751: __news[1] = __olds[1]; 8751: __mod = 2; 8751: __news += 2; 8751: } 8751: 8751: } 8751: _Traits::assign(__news, __plen, __fill); 8751: _Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod); 8751: } 8751: 8751: template 8751: _CharT* 8751: __add_grouping(_CharT* __s, _CharT __sep, 8751: const char* __gbeg, size_t __gsize, 8751: const _CharT* __first, const _CharT* __last) 8751: { 8751: size_t __idx = 0; 8751: size_t __ctr = 0; 8751: 8751: while (__last - __first > __gbeg[__idx] 8751: && static_cast(__gbeg[__idx]) > 0 8751: && __gbeg[__idx] != __gnu_cxx::__numeric_traits::__max) 8751: { 8751: __last -= __gbeg[__idx]; 8751: __idx < __gsize - 1 ? ++__idx : ++__ctr; 8751: } 8751: 8751: while (__first != __last) 8751: *__s++ = *__first++; 8751: 8751: while (__ctr--) 8751: { 8751: *__s++ = __sep; 8751: for (char __i = __gbeg[__idx]; __i > 0; --__i) 8751: *__s++ = *__first++; 8751: } 8751: 8751: while (__idx--) 8751: { 8751: *__s++ = __sep; 8751: for (char __i = __gbeg[__idx]; __i > 0; --__i) 8751: *__s++ = *__first++; 8751: } 8751: 8751: return __s; 8751: } 8751: 8751: 8751: 8751: 8751: extern template class __cxx11:: numpunct; 8751: extern template class __cxx11:: numpunct_byname; 8751: extern template class num_get; 8751: extern template class num_put; 8751: extern template class ctype_byname; 8751: 8751: extern template 8751: const ctype& 8751: use_facet >(const locale&); 8751: 8751: extern template 8751: const numpunct& 8751: use_facet >(const locale&); 8751: 8751: extern template 8751: const num_put& 8751: use_facet >(const locale&); 8751: 8751: extern template 8751: const num_get& 8751: use_facet >(const locale&); 8751: 8751: extern template 8751: bool 8751: has_facet >(const locale&); 8751: 8751: extern template 8751: bool 8751: has_facet >(const locale&); 8751: 8751: extern template 8751: bool 8751: has_facet >(const locale&); 8751: 8751: extern template 8751: bool 8751: has_facet >(const locale&); 8751: 8751: 8751: extern template class __cxx11:: numpunct; 8751: extern template class __cxx11:: numpunct_byname; 8751: extern template class num_get; 8751: extern template class num_put; 8751: extern template class ctype_byname; 8751: 8751: extern template 8751: const ctype& 8751: use_facet >(const locale&); 8751: 8751: extern template 8751: const numpunct& 8751: use_facet >(const locale&); 8751: 8751: extern template 8751: const num_put& 8751: use_facet >(const locale&); 8751: 8751: extern template 8751: const num_get& 8751: use_facet >(const locale&); 8751: 8751: extern template 8751: bool 8751: has_facet >(const locale&); 8751: 8751: extern template 8751: bool 8751: has_facet >(const locale&); 8751: 8751: extern template 8751: bool 8751: has_facet >(const locale&); 8751: 8751: extern template 8751: bool 8751: has_facet >(const locale&); 8751: 8751: 8751: 8751: 8751: } 8751: # 2652 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8751: # 38 "/usr/include/c++/8/bits/basic_ios.h" 2 3 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: template 8751: inline const _Facet& 8751: __check_facet(const _Facet* __f) 8751: { 8751: if (!__f) 8751: __throw_bad_cast(); 8751: return *__f; 8751: } 8751: # 66 "/usr/include/c++/8/bits/basic_ios.h" 3 8751: template 8751: class basic_ios : public ios_base 8751: { 8751: public: 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef _CharT char_type; 8751: typedef typename _Traits::int_type int_type; 8751: typedef typename _Traits::pos_type pos_type; 8751: typedef typename _Traits::off_type off_type; 8751: typedef _Traits traits_type; 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef ctype<_CharT> __ctype_type; 8751: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 8751: __num_put_type; 8751: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 8751: __num_get_type; 8751: 8751: 8751: 8751: protected: 8751: basic_ostream<_CharT, _Traits>* _M_tie; 8751: mutable char_type _M_fill; 8751: mutable bool _M_fill_init; 8751: basic_streambuf<_CharT, _Traits>* _M_streambuf; 8751: 8751: 8751: const __ctype_type* _M_ctype; 8751: 8751: const __num_put_type* _M_num_put; 8751: 8751: const __num_get_type* _M_num_get; 8751: 8751: public: 8751: # 117 "/usr/include/c++/8/bits/basic_ios.h" 3 8751: explicit operator bool() const 8751: { return !this->fail(); } 8751: 8751: 8751: 8751: 8751: 8751: bool 8751: operator!() const 8751: { return this->fail(); } 8751: # 136 "/usr/include/c++/8/bits/basic_ios.h" 3 8751: iostate 8751: rdstate() const 8751: { return _M_streambuf_state; } 8751: # 147 "/usr/include/c++/8/bits/basic_ios.h" 3 8751: void 8751: clear(iostate __state = goodbit); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: void 8751: setstate(iostate __state) 8751: { this->clear(this->rdstate() | __state); } 8751: 8751: 8751: 8751: 8751: void 8751: _M_setstate(iostate __state) 8751: { 8751: 8751: 8751: _M_streambuf_state |= __state; 8751: if (this->exceptions() & __state) 8751: throw; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: bool 8751: good() const 8751: { return this->rdstate() == 0; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: bool 8751: eof() const 8751: { return (this->rdstate() & eofbit) != 0; } 8751: # 200 "/usr/include/c++/8/bits/basic_ios.h" 3 8751: bool 8751: fail() const 8751: { return (this->rdstate() & (badbit | failbit)) != 0; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: bool 8751: bad() const 8751: { return (this->rdstate() & badbit) != 0; } 8751: # 221 "/usr/include/c++/8/bits/basic_ios.h" 3 8751: iostate 8751: exceptions() const 8751: { return _M_exception; } 8751: # 256 "/usr/include/c++/8/bits/basic_ios.h" 3 8751: void 8751: exceptions(iostate __except) 8751: { 8751: _M_exception = __except; 8751: this->clear(_M_streambuf_state); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: explicit 8751: basic_ios(basic_streambuf<_CharT, _Traits>* __sb) 8751: : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0), 8751: _M_ctype(0), _M_num_put(0), _M_num_get(0) 8751: { this->init(__sb); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: virtual 8751: ~basic_ios() { } 8751: # 294 "/usr/include/c++/8/bits/basic_ios.h" 3 8751: basic_ostream<_CharT, _Traits>* 8751: tie() const 8751: { return _M_tie; } 8751: # 306 "/usr/include/c++/8/bits/basic_ios.h" 3 8751: basic_ostream<_CharT, _Traits>* 8751: tie(basic_ostream<_CharT, _Traits>* __tiestr) 8751: { 8751: basic_ostream<_CharT, _Traits>* __old = _M_tie; 8751: _M_tie = __tiestr; 8751: return __old; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: basic_streambuf<_CharT, _Traits>* 8751: rdbuf() const 8751: { return _M_streambuf; } 8751: # 346 "/usr/include/c++/8/bits/basic_ios.h" 3 8751: basic_streambuf<_CharT, _Traits>* 8751: rdbuf(basic_streambuf<_CharT, _Traits>* __sb); 8751: # 360 "/usr/include/c++/8/bits/basic_ios.h" 3 8751: basic_ios& 8751: copyfmt(const basic_ios& __rhs); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: char_type 8751: fill() const 8751: { 8751: if (!_M_fill_init) 8751: { 8751: _M_fill = this->widen(' '); 8751: _M_fill_init = true; 8751: } 8751: return _M_fill; 8751: } 8751: # 389 "/usr/include/c++/8/bits/basic_ios.h" 3 8751: char_type 8751: fill(char_type __ch) 8751: { 8751: char_type __old = this->fill(); 8751: _M_fill = __ch; 8751: return __old; 8751: } 8751: # 409 "/usr/include/c++/8/bits/basic_ios.h" 3 8751: locale 8751: imbue(const locale& __loc); 8751: # 429 "/usr/include/c++/8/bits/basic_ios.h" 3 8751: char 8751: narrow(char_type __c, char __dfault) const 8751: { return __check_facet(_M_ctype).narrow(__c, __dfault); } 8751: # 448 "/usr/include/c++/8/bits/basic_ios.h" 3 8751: char_type 8751: widen(char __c) const 8751: { return __check_facet(_M_ctype).widen(__c); } 8751: 8751: protected: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: basic_ios() 8751: : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false), 8751: _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0) 8751: { } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: void 8751: init(basic_streambuf<_CharT, _Traits>* __sb); 8751: 8751: 8751: basic_ios(const basic_ios&) = delete; 8751: basic_ios& operator=(const basic_ios&) = delete; 8751: 8751: void 8751: move(basic_ios& __rhs) 8751: { 8751: ios_base::_M_move(__rhs); 8751: _M_cache_locale(_M_ios_locale); 8751: this->tie(__rhs.tie(nullptr)); 8751: _M_fill = __rhs._M_fill; 8751: _M_fill_init = __rhs._M_fill_init; 8751: _M_streambuf = nullptr; 8751: } 8751: 8751: void 8751: move(basic_ios&& __rhs) 8751: { this->move(__rhs); } 8751: 8751: void 8751: swap(basic_ios& __rhs) noexcept 8751: { 8751: ios_base::_M_swap(__rhs); 8751: _M_cache_locale(_M_ios_locale); 8751: __rhs._M_cache_locale(__rhs._M_ios_locale); 8751: std::swap(_M_tie, __rhs._M_tie); 8751: std::swap(_M_fill, __rhs._M_fill); 8751: std::swap(_M_fill_init, __rhs._M_fill_init); 8751: } 8751: 8751: void 8751: set_rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 8751: { _M_streambuf = __sb; } 8751: 8751: 8751: void 8751: _M_cache_locale(const locale& __loc); 8751: }; 8751: 8751: 8751: } 8751: 8751: # 1 "/usr/include/c++/8/bits/basic_ios.tcc" 1 3 8751: # 33 "/usr/include/c++/8/bits/basic_ios.tcc" 3 8751: 8751: # 34 "/usr/include/c++/8/bits/basic_ios.tcc" 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: template 8751: void 8751: basic_ios<_CharT, _Traits>::clear(iostate __state) 8751: { 8751: if (this->rdbuf()) 8751: _M_streambuf_state = __state; 8751: else 8751: _M_streambuf_state = __state | badbit; 8751: if (this->exceptions() & this->rdstate()) 8751: __throw_ios_failure(("basic_ios::clear")); 8751: } 8751: 8751: template 8751: basic_streambuf<_CharT, _Traits>* 8751: basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 8751: { 8751: basic_streambuf<_CharT, _Traits>* __old = _M_streambuf; 8751: _M_streambuf = __sb; 8751: this->clear(); 8751: return __old; 8751: } 8751: 8751: template 8751: basic_ios<_CharT, _Traits>& 8751: basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs) 8751: { 8751: 8751: 8751: if (this != &__rhs) 8751: { 8751: 8751: 8751: 8751: 8751: _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ? 8751: _M_local_word : new _Words[__rhs._M_word_size]; 8751: 8751: 8751: _Callback_list* __cb = __rhs._M_callbacks; 8751: if (__cb) 8751: __cb->_M_add_reference(); 8751: _M_call_callbacks(erase_event); 8751: if (_M_word != _M_local_word) 8751: { 8751: delete [] _M_word; 8751: _M_word = 0; 8751: } 8751: _M_dispose_callbacks(); 8751: 8751: 8751: _M_callbacks = __cb; 8751: for (int __i = 0; __i < __rhs._M_word_size; ++__i) 8751: __words[__i] = __rhs._M_word[__i]; 8751: _M_word = __words; 8751: _M_word_size = __rhs._M_word_size; 8751: 8751: this->flags(__rhs.flags()); 8751: this->width(__rhs.width()); 8751: this->precision(__rhs.precision()); 8751: this->tie(__rhs.tie()); 8751: this->fill(__rhs.fill()); 8751: _M_ios_locale = __rhs.getloc(); 8751: _M_cache_locale(_M_ios_locale); 8751: 8751: _M_call_callbacks(copyfmt_event); 8751: 8751: 8751: this->exceptions(__rhs.exceptions()); 8751: } 8751: return *this; 8751: } 8751: 8751: 8751: template 8751: locale 8751: basic_ios<_CharT, _Traits>::imbue(const locale& __loc) 8751: { 8751: locale __old(this->getloc()); 8751: ios_base::imbue(__loc); 8751: _M_cache_locale(__loc); 8751: if (this->rdbuf() != 0) 8751: this->rdbuf()->pubimbue(__loc); 8751: return __old; 8751: } 8751: 8751: template 8751: void 8751: basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb) 8751: { 8751: 8751: ios_base::_M_init(); 8751: 8751: 8751: _M_cache_locale(_M_ios_locale); 8751: # 146 "/usr/include/c++/8/bits/basic_ios.tcc" 3 8751: _M_fill = _CharT(); 8751: _M_fill_init = false; 8751: 8751: _M_tie = 0; 8751: _M_exception = goodbit; 8751: _M_streambuf = __sb; 8751: _M_streambuf_state = __sb ? goodbit : badbit; 8751: } 8751: 8751: template 8751: void 8751: basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc) 8751: { 8751: if (__builtin_expect(has_facet<__ctype_type>(__loc), true)) 8751: _M_ctype = std::__addressof(use_facet<__ctype_type>(__loc)); 8751: else 8751: _M_ctype = 0; 8751: 8751: if (__builtin_expect(has_facet<__num_put_type>(__loc), true)) 8751: _M_num_put = std::__addressof(use_facet<__num_put_type>(__loc)); 8751: else 8751: _M_num_put = 0; 8751: 8751: if (__builtin_expect(has_facet<__num_get_type>(__loc), true)) 8751: _M_num_get = std::__addressof(use_facet<__num_get_type>(__loc)); 8751: else 8751: _M_num_get = 0; 8751: } 8751: 8751: 8751: 8751: 8751: extern template class basic_ios; 8751: 8751: 8751: extern template class basic_ios; 8751: 8751: 8751: 8751: 8751: } 8751: # 517 "/usr/include/c++/8/bits/basic_ios.h" 2 3 8751: # 45 "/usr/include/c++/8/ios" 2 3 8751: # 39 "/usr/include/c++/8/ostream" 2 3 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 57 "/usr/include/c++/8/ostream" 3 8751: template 8751: class basic_ostream : virtual public basic_ios<_CharT, _Traits> 8751: { 8751: public: 8751: 8751: typedef _CharT char_type; 8751: typedef typename _Traits::int_type int_type; 8751: typedef typename _Traits::pos_type pos_type; 8751: typedef typename _Traits::off_type off_type; 8751: typedef _Traits traits_type; 8751: 8751: 8751: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8751: typedef basic_ios<_CharT, _Traits> __ios_type; 8751: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8751: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 8751: __num_put_type; 8751: typedef ctype<_CharT> __ctype_type; 8751: # 83 "/usr/include/c++/8/ostream" 3 8751: explicit 8751: basic_ostream(__streambuf_type* __sb) 8751: { this->init(__sb); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: virtual 8751: ~basic_ostream() { } 8751: 8751: 8751: class sentry; 8751: friend class sentry; 8751: # 107 "/usr/include/c++/8/ostream" 3 8751: __ostream_type& 8751: operator<<(__ostream_type& (*__pf)(__ostream_type&)) 8751: { 8751: 8751: 8751: 8751: return __pf(*this); 8751: } 8751: 8751: __ostream_type& 8751: operator<<(__ios_type& (*__pf)(__ios_type&)) 8751: { 8751: 8751: 8751: 8751: __pf(*this); 8751: return *this; 8751: } 8751: 8751: __ostream_type& 8751: operator<<(ios_base& (*__pf) (ios_base&)) 8751: { 8751: 8751: 8751: 8751: __pf(*this); 8751: return *this; 8751: } 8751: # 165 "/usr/include/c++/8/ostream" 3 8751: __ostream_type& 8751: operator<<(long __n) 8751: { return _M_insert(__n); } 8751: 8751: __ostream_type& 8751: operator<<(unsigned long __n) 8751: { return _M_insert(__n); } 8751: 8751: __ostream_type& 8751: operator<<(bool __n) 8751: { return _M_insert(__n); } 8751: 8751: __ostream_type& 8751: operator<<(short __n); 8751: 8751: __ostream_type& 8751: operator<<(unsigned short __n) 8751: { 8751: 8751: 8751: return _M_insert(static_cast(__n)); 8751: } 8751: 8751: __ostream_type& 8751: operator<<(int __n); 8751: 8751: __ostream_type& 8751: operator<<(unsigned int __n) 8751: { 8751: 8751: 8751: return _M_insert(static_cast(__n)); 8751: } 8751: 8751: 8751: __ostream_type& 8751: operator<<(long long __n) 8751: { return _M_insert(__n); } 8751: 8751: __ostream_type& 8751: operator<<(unsigned long long __n) 8751: { return _M_insert(__n); } 8751: # 219 "/usr/include/c++/8/ostream" 3 8751: __ostream_type& 8751: operator<<(double __f) 8751: { return _M_insert(__f); } 8751: 8751: __ostream_type& 8751: operator<<(float __f) 8751: { 8751: 8751: 8751: return _M_insert(static_cast(__f)); 8751: } 8751: 8751: __ostream_type& 8751: operator<<(long double __f) 8751: { return _M_insert(__f); } 8751: # 244 "/usr/include/c++/8/ostream" 3 8751: __ostream_type& 8751: operator<<(const void* __p) 8751: { return _M_insert(__p); } 8751: # 269 "/usr/include/c++/8/ostream" 3 8751: __ostream_type& 8751: operator<<(__streambuf_type* __sb); 8751: # 302 "/usr/include/c++/8/ostream" 3 8751: __ostream_type& 8751: put(char_type __c); 8751: 8751: 8751: 8751: 8751: 8751: 8751: void 8751: _M_write(const char_type* __s, streamsize __n) 8751: { 8751: const streamsize __put = this->rdbuf()->sputn(__s, __n); 8751: if (__put != __n) 8751: this->setstate(ios_base::badbit); 8751: } 8751: # 334 "/usr/include/c++/8/ostream" 3 8751: __ostream_type& 8751: write(const char_type* __s, streamsize __n); 8751: # 347 "/usr/include/c++/8/ostream" 3 8751: __ostream_type& 8751: flush(); 8751: # 357 "/usr/include/c++/8/ostream" 3 8751: pos_type 8751: tellp(); 8751: # 368 "/usr/include/c++/8/ostream" 3 8751: __ostream_type& 8751: seekp(pos_type); 8751: # 380 "/usr/include/c++/8/ostream" 3 8751: __ostream_type& 8751: seekp(off_type, ios_base::seekdir); 8751: 8751: protected: 8751: basic_ostream() 8751: { this->init(0); } 8751: 8751: 8751: 8751: basic_ostream(basic_iostream<_CharT, _Traits>&) { } 8751: 8751: basic_ostream(const basic_ostream&) = delete; 8751: 8751: basic_ostream(basic_ostream&& __rhs) 8751: : __ios_type() 8751: { __ios_type::move(__rhs); } 8751: 8751: 8751: 8751: basic_ostream& operator=(const basic_ostream&) = delete; 8751: 8751: basic_ostream& 8751: operator=(basic_ostream&& __rhs) 8751: { 8751: swap(__rhs); 8751: return *this; 8751: } 8751: 8751: void 8751: swap(basic_ostream& __rhs) 8751: { __ios_type::swap(__rhs); } 8751: 8751: 8751: template 8751: __ostream_type& 8751: _M_insert(_ValueT __v); 8751: }; 8751: # 425 "/usr/include/c++/8/ostream" 3 8751: template 8751: class basic_ostream<_CharT, _Traits>::sentry 8751: { 8751: 8751: bool _M_ok; 8751: basic_ostream<_CharT, _Traits>& _M_os; 8751: 8751: public: 8751: # 444 "/usr/include/c++/8/ostream" 3 8751: explicit 8751: sentry(basic_ostream<_CharT, _Traits>& __os); 8751: # 454 "/usr/include/c++/8/ostream" 3 8751: ~sentry() 8751: { 8751: 8751: if (bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception()) 8751: { 8751: 8751: if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1) 8751: _M_os.setstate(ios_base::badbit); 8751: } 8751: } 8751: # 473 "/usr/include/c++/8/ostream" 3 8751: explicit 8751: 8751: operator bool() const 8751: { return _M_ok; } 8751: }; 8751: # 495 "/usr/include/c++/8/ostream" 3 8751: template 8751: inline basic_ostream<_CharT, _Traits>& 8751: operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c) 8751: { return __ostream_insert(__out, &__c, 1); } 8751: 8751: template 8751: inline basic_ostream<_CharT, _Traits>& 8751: operator<<(basic_ostream<_CharT, _Traits>& __out, char __c) 8751: { return (__out << __out.widen(__c)); } 8751: 8751: 8751: template 8751: inline basic_ostream& 8751: operator<<(basic_ostream& __out, char __c) 8751: { return __ostream_insert(__out, &__c, 1); } 8751: 8751: 8751: template 8751: inline basic_ostream& 8751: operator<<(basic_ostream& __out, signed char __c) 8751: { return (__out << static_cast(__c)); } 8751: 8751: template 8751: inline basic_ostream& 8751: operator<<(basic_ostream& __out, unsigned char __c) 8751: { return (__out << static_cast(__c)); } 8751: # 537 "/usr/include/c++/8/ostream" 3 8751: template 8751: inline basic_ostream<_CharT, _Traits>& 8751: operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s) 8751: { 8751: if (!__s) 8751: __out.setstate(ios_base::badbit); 8751: else 8751: __ostream_insert(__out, __s, 8751: static_cast(_Traits::length(__s))); 8751: return __out; 8751: } 8751: 8751: template 8751: basic_ostream<_CharT, _Traits> & 8751: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s); 8751: 8751: 8751: template 8751: inline basic_ostream& 8751: operator<<(basic_ostream& __out, const char* __s) 8751: { 8751: if (!__s) 8751: __out.setstate(ios_base::badbit); 8751: else 8751: __ostream_insert(__out, __s, 8751: static_cast(_Traits::length(__s))); 8751: return __out; 8751: } 8751: 8751: 8751: template 8751: inline basic_ostream& 8751: operator<<(basic_ostream& __out, const signed char* __s) 8751: { return (__out << reinterpret_cast(__s)); } 8751: 8751: template 8751: inline basic_ostream & 8751: operator<<(basic_ostream& __out, const unsigned char* __s) 8751: { return (__out << reinterpret_cast(__s)); } 8751: # 588 "/usr/include/c++/8/ostream" 3 8751: template 8751: inline basic_ostream<_CharT, _Traits>& 8751: endl(basic_ostream<_CharT, _Traits>& __os) 8751: { return flush(__os.put(__os.widen('\n'))); } 8751: # 600 "/usr/include/c++/8/ostream" 3 8751: template 8751: inline basic_ostream<_CharT, _Traits>& 8751: ends(basic_ostream<_CharT, _Traits>& __os) 8751: { return __os.put(_CharT()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline basic_ostream<_CharT, _Traits>& 8751: flush(basic_ostream<_CharT, _Traits>& __os) 8751: { return __os.flush(); } 8751: 8751: 8751: template 8751: basic_ostream<_Ch, _Up>& 8751: __is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*); 8751: 8751: template 8751: struct __is_convertible_to_basic_ostream_impl 8751: { 8751: using __ostream_type = void; 8751: }; 8751: 8751: template 8751: using __do_is_convertible_to_basic_ostream_impl = 8751: decltype(__is_convertible_to_basic_ostream_test 8751: (declval::type*>())); 8751: 8751: template 8751: struct __is_convertible_to_basic_ostream_impl 8751: <_Tp, 8751: __void_t<__do_is_convertible_to_basic_ostream_impl<_Tp>>> 8751: { 8751: using __ostream_type = 8751: __do_is_convertible_to_basic_ostream_impl<_Tp>; 8751: }; 8751: 8751: template 8751: struct __is_convertible_to_basic_ostream 8751: : __is_convertible_to_basic_ostream_impl<_Tp> 8751: { 8751: public: 8751: using type = __not_::__ostream_type>>; 8751: constexpr static bool value = type::value; 8751: }; 8751: 8751: template 8751: struct __is_insertable : false_type {}; 8751: 8751: template 8751: struct __is_insertable<_Ostream, _Tp, 8751: __void_t() 8751: << declval())>> 8751: : true_type {}; 8751: 8751: template 8751: using __rvalue_ostream_type = 8751: typename __is_convertible_to_basic_ostream< 8751: _Ostream>::__ostream_type; 8751: # 674 "/usr/include/c++/8/ostream" 3 8751: template 8751: inline 8751: typename enable_if<__and_<__not_>, 8751: __is_convertible_to_basic_ostream<_Ostream>, 8751: __is_insertable< 8751: __rvalue_ostream_type<_Ostream>, 8751: const _Tp&>>::value, 8751: __rvalue_ostream_type<_Ostream>>::type 8751: operator<<(_Ostream&& __os, const _Tp& __x) 8751: { 8751: __rvalue_ostream_type<_Ostream> __ret_os = __os; 8751: __ret_os << __x; 8751: return __ret_os; 8751: } 8751: 8751: 8751: 8751: } 8751: 8751: # 1 "/usr/include/c++/8/bits/ostream.tcc" 1 3 8751: # 37 "/usr/include/c++/8/bits/ostream.tcc" 3 8751: 8751: # 38 "/usr/include/c++/8/bits/ostream.tcc" 3 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: template 8751: basic_ostream<_CharT, _Traits>::sentry:: 8751: sentry(basic_ostream<_CharT, _Traits>& __os) 8751: : _M_ok(false), _M_os(__os) 8751: { 8751: 8751: if (__os.tie() && __os.good()) 8751: __os.tie()->flush(); 8751: 8751: if (__os.good()) 8751: _M_ok = true; 8751: else 8751: __os.setstate(ios_base::failbit); 8751: } 8751: 8751: template 8751: template 8751: basic_ostream<_CharT, _Traits>& 8751: basic_ostream<_CharT, _Traits>:: 8751: _M_insert(_ValueT __v) 8751: { 8751: sentry __cerb(*this); 8751: if (__cerb) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: const __num_put_type& __np = __check_facet(this->_M_num_put); 8751: if (__np.put(*this, *this, this->fill(), __v).failed()) 8751: __err |= ios_base::badbit; 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: basic_ostream<_CharT, _Traits>& 8751: basic_ostream<_CharT, _Traits>:: 8751: operator<<(short __n) 8751: { 8751: 8751: 8751: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 8751: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 8751: return _M_insert(static_cast(static_cast(__n))); 8751: else 8751: return _M_insert(static_cast(__n)); 8751: } 8751: 8751: template 8751: basic_ostream<_CharT, _Traits>& 8751: basic_ostream<_CharT, _Traits>:: 8751: operator<<(int __n) 8751: { 8751: 8751: 8751: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 8751: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 8751: return _M_insert(static_cast(static_cast(__n))); 8751: else 8751: return _M_insert(static_cast(__n)); 8751: } 8751: 8751: template 8751: basic_ostream<_CharT, _Traits>& 8751: basic_ostream<_CharT, _Traits>:: 8751: operator<<(__streambuf_type* __sbin) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: sentry __cerb(*this); 8751: if (__cerb && __sbin) 8751: { 8751: try 8751: { 8751: if (!__copy_streambufs(__sbin, this->rdbuf())) 8751: __err |= ios_base::failbit; 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::failbit); } 8751: } 8751: else if (!__sbin) 8751: __err |= ios_base::badbit; 8751: if (__err) 8751: this->setstate(__err); 8751: return *this; 8751: } 8751: 8751: template 8751: basic_ostream<_CharT, _Traits>& 8751: basic_ostream<_CharT, _Traits>:: 8751: put(char_type __c) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: sentry __cerb(*this); 8751: if (__cerb) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: const int_type __put = this->rdbuf()->sputc(__c); 8751: if (traits_type::eq_int_type(__put, traits_type::eof())) 8751: __err |= ios_base::badbit; 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: basic_ostream<_CharT, _Traits>& 8751: basic_ostream<_CharT, _Traits>:: 8751: write(const _CharT* __s, streamsize __n) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: sentry __cerb(*this); 8751: if (__cerb) 8751: { 8751: try 8751: { _M_write(__s, __n); } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: basic_ostream<_CharT, _Traits>& 8751: basic_ostream<_CharT, _Traits>:: 8751: flush() 8751: { 8751: 8751: 8751: 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: if (this->rdbuf() && this->rdbuf()->pubsync() == -1) 8751: __err |= ios_base::badbit; 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: return *this; 8751: } 8751: 8751: template 8751: typename basic_ostream<_CharT, _Traits>::pos_type 8751: basic_ostream<_CharT, _Traits>:: 8751: tellp() 8751: { 8751: pos_type __ret = pos_type(-1); 8751: try 8751: { 8751: if (!this->fail()) 8751: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out); 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: return __ret; 8751: } 8751: 8751: template 8751: basic_ostream<_CharT, _Traits>& 8751: basic_ostream<_CharT, _Traits>:: 8751: seekp(pos_type __pos) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: if (!this->fail()) 8751: { 8751: 8751: 8751: const pos_type __p = this->rdbuf()->pubseekpos(__pos, 8751: ios_base::out); 8751: 8751: 8751: if (__p == pos_type(off_type(-1))) 8751: __err |= ios_base::failbit; 8751: } 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: return *this; 8751: } 8751: 8751: template 8751: basic_ostream<_CharT, _Traits>& 8751: basic_ostream<_CharT, _Traits>:: 8751: seekp(off_type __off, ios_base::seekdir __dir) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: if (!this->fail()) 8751: { 8751: 8751: 8751: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 8751: ios_base::out); 8751: 8751: 8751: if (__p == pos_type(off_type(-1))) 8751: __err |= ios_base::failbit; 8751: } 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: return *this; 8751: } 8751: 8751: template 8751: basic_ostream<_CharT, _Traits>& 8751: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s) 8751: { 8751: if (!__s) 8751: __out.setstate(ios_base::badbit); 8751: else 8751: { 8751: 8751: 8751: const size_t __clen = char_traits::length(__s); 8751: try 8751: { 8751: struct __ptr_guard 8751: { 8751: _CharT *__p; 8751: __ptr_guard (_CharT *__ip): __p(__ip) { } 8751: ~__ptr_guard() { delete[] __p; } 8751: _CharT* __get() { return __p; } 8751: } __pg (new _CharT[__clen]); 8751: 8751: _CharT *__ws = __pg.__get(); 8751: for (size_t __i = 0; __i < __clen; ++__i) 8751: __ws[__i] = __out.widen(__s[__i]); 8751: __ostream_insert(__out, __ws, __clen); 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: __out._M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { __out._M_setstate(ios_base::badbit); } 8751: } 8751: return __out; 8751: } 8751: 8751: 8751: 8751: 8751: extern template class basic_ostream; 8751: extern template ostream& endl(ostream&); 8751: extern template ostream& ends(ostream&); 8751: extern template ostream& flush(ostream&); 8751: extern template ostream& operator<<(ostream&, char); 8751: extern template ostream& operator<<(ostream&, unsigned char); 8751: extern template ostream& operator<<(ostream&, signed char); 8751: extern template ostream& operator<<(ostream&, const char*); 8751: extern template ostream& operator<<(ostream&, const unsigned char*); 8751: extern template ostream& operator<<(ostream&, const signed char*); 8751: 8751: extern template ostream& ostream::_M_insert(long); 8751: extern template ostream& ostream::_M_insert(unsigned long); 8751: extern template ostream& ostream::_M_insert(bool); 8751: 8751: extern template ostream& ostream::_M_insert(long long); 8751: extern template ostream& ostream::_M_insert(unsigned long long); 8751: 8751: extern template ostream& ostream::_M_insert(double); 8751: extern template ostream& ostream::_M_insert(long double); 8751: extern template ostream& ostream::_M_insert(const void*); 8751: 8751: 8751: extern template class basic_ostream; 8751: extern template wostream& endl(wostream&); 8751: extern template wostream& ends(wostream&); 8751: extern template wostream& flush(wostream&); 8751: extern template wostream& operator<<(wostream&, wchar_t); 8751: extern template wostream& operator<<(wostream&, char); 8751: extern template wostream& operator<<(wostream&, const wchar_t*); 8751: extern template wostream& operator<<(wostream&, const char*); 8751: 8751: extern template wostream& wostream::_M_insert(long); 8751: extern template wostream& wostream::_M_insert(unsigned long); 8751: extern template wostream& wostream::_M_insert(bool); 8751: 8751: extern template wostream& wostream::_M_insert(long long); 8751: extern template wostream& wostream::_M_insert(unsigned long long); 8751: 8751: extern template wostream& wostream::_M_insert(double); 8751: extern template wostream& wostream::_M_insert(long double); 8751: extern template wostream& wostream::_M_insert(const void*); 8751: 8751: 8751: 8751: 8751: } 8751: # 694 "/usr/include/c++/8/ostream" 2 3 8751: # 65 "/usr/include/c++/8/iterator" 2 3 8751: # 1 "/usr/include/c++/8/istream" 1 3 8751: # 36 "/usr/include/c++/8/istream" 3 8751: 8751: # 37 "/usr/include/c++/8/istream" 3 8751: 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 57 "/usr/include/c++/8/istream" 3 8751: template 8751: class basic_istream : virtual public basic_ios<_CharT, _Traits> 8751: { 8751: public: 8751: 8751: typedef _CharT char_type; 8751: typedef typename _Traits::int_type int_type; 8751: typedef typename _Traits::pos_type pos_type; 8751: typedef typename _Traits::off_type off_type; 8751: typedef _Traits traits_type; 8751: 8751: 8751: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8751: typedef basic_ios<_CharT, _Traits> __ios_type; 8751: typedef basic_istream<_CharT, _Traits> __istream_type; 8751: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 8751: __num_get_type; 8751: typedef ctype<_CharT> __ctype_type; 8751: 8751: protected: 8751: 8751: 8751: 8751: 8751: 8751: streamsize _M_gcount; 8751: 8751: public: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: explicit 8751: basic_istream(__streambuf_type* __sb) 8751: : _M_gcount(streamsize(0)) 8751: { this->init(__sb); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: virtual 8751: ~basic_istream() 8751: { _M_gcount = streamsize(0); } 8751: 8751: 8751: class sentry; 8751: friend class sentry; 8751: # 119 "/usr/include/c++/8/istream" 3 8751: __istream_type& 8751: operator>>(__istream_type& (*__pf)(__istream_type&)) 8751: { return __pf(*this); } 8751: 8751: __istream_type& 8751: operator>>(__ios_type& (*__pf)(__ios_type&)) 8751: { 8751: __pf(*this); 8751: return *this; 8751: } 8751: 8751: __istream_type& 8751: operator>>(ios_base& (*__pf)(ios_base&)) 8751: { 8751: __pf(*this); 8751: return *this; 8751: } 8751: # 167 "/usr/include/c++/8/istream" 3 8751: __istream_type& 8751: operator>>(bool& __n) 8751: { return _M_extract(__n); } 8751: 8751: __istream_type& 8751: operator>>(short& __n); 8751: 8751: __istream_type& 8751: operator>>(unsigned short& __n) 8751: { return _M_extract(__n); } 8751: 8751: __istream_type& 8751: operator>>(int& __n); 8751: 8751: __istream_type& 8751: operator>>(unsigned int& __n) 8751: { return _M_extract(__n); } 8751: 8751: __istream_type& 8751: operator>>(long& __n) 8751: { return _M_extract(__n); } 8751: 8751: __istream_type& 8751: operator>>(unsigned long& __n) 8751: { return _M_extract(__n); } 8751: 8751: 8751: __istream_type& 8751: operator>>(long long& __n) 8751: { return _M_extract(__n); } 8751: 8751: __istream_type& 8751: operator>>(unsigned long long& __n) 8751: { return _M_extract(__n); } 8751: # 213 "/usr/include/c++/8/istream" 3 8751: __istream_type& 8751: operator>>(float& __f) 8751: { return _M_extract(__f); } 8751: 8751: __istream_type& 8751: operator>>(double& __f) 8751: { return _M_extract(__f); } 8751: 8751: __istream_type& 8751: operator>>(long double& __f) 8751: { return _M_extract(__f); } 8751: # 234 "/usr/include/c++/8/istream" 3 8751: __istream_type& 8751: operator>>(void*& __p) 8751: { return _M_extract(__p); } 8751: # 258 "/usr/include/c++/8/istream" 3 8751: __istream_type& 8751: operator>>(__streambuf_type* __sb); 8751: # 268 "/usr/include/c++/8/istream" 3 8751: streamsize 8751: gcount() const 8751: { return _M_gcount; } 8751: # 301 "/usr/include/c++/8/istream" 3 8751: int_type 8751: get(); 8751: # 315 "/usr/include/c++/8/istream" 3 8751: __istream_type& 8751: get(char_type& __c); 8751: # 342 "/usr/include/c++/8/istream" 3 8751: __istream_type& 8751: get(char_type* __s, streamsize __n, char_type __delim); 8751: # 353 "/usr/include/c++/8/istream" 3 8751: __istream_type& 8751: get(char_type* __s, streamsize __n) 8751: { return this->get(__s, __n, this->widen('\n')); } 8751: # 376 "/usr/include/c++/8/istream" 3 8751: __istream_type& 8751: get(__streambuf_type& __sb, char_type __delim); 8751: # 386 "/usr/include/c++/8/istream" 3 8751: __istream_type& 8751: get(__streambuf_type& __sb) 8751: { return this->get(__sb, this->widen('\n')); } 8751: # 415 "/usr/include/c++/8/istream" 3 8751: __istream_type& 8751: getline(char_type* __s, streamsize __n, char_type __delim); 8751: # 426 "/usr/include/c++/8/istream" 3 8751: __istream_type& 8751: getline(char_type* __s, streamsize __n) 8751: { return this->getline(__s, __n, this->widen('\n')); } 8751: # 450 "/usr/include/c++/8/istream" 3 8751: __istream_type& 8751: ignore(streamsize __n, int_type __delim); 8751: 8751: __istream_type& 8751: ignore(streamsize __n); 8751: 8751: __istream_type& 8751: ignore(); 8751: # 467 "/usr/include/c++/8/istream" 3 8751: int_type 8751: peek(); 8751: # 485 "/usr/include/c++/8/istream" 3 8751: __istream_type& 8751: read(char_type* __s, streamsize __n); 8751: # 504 "/usr/include/c++/8/istream" 3 8751: streamsize 8751: readsome(char_type* __s, streamsize __n); 8751: # 521 "/usr/include/c++/8/istream" 3 8751: __istream_type& 8751: putback(char_type __c); 8751: # 537 "/usr/include/c++/8/istream" 3 8751: __istream_type& 8751: unget(); 8751: # 555 "/usr/include/c++/8/istream" 3 8751: int 8751: sync(); 8751: # 570 "/usr/include/c++/8/istream" 3 8751: pos_type 8751: tellg(); 8751: # 585 "/usr/include/c++/8/istream" 3 8751: __istream_type& 8751: seekg(pos_type); 8751: # 601 "/usr/include/c++/8/istream" 3 8751: __istream_type& 8751: seekg(off_type, ios_base::seekdir); 8751: 8751: 8751: protected: 8751: basic_istream() 8751: : _M_gcount(streamsize(0)) 8751: { this->init(0); } 8751: 8751: 8751: basic_istream(const basic_istream&) = delete; 8751: 8751: basic_istream(basic_istream&& __rhs) 8751: : __ios_type(), _M_gcount(__rhs._M_gcount) 8751: { 8751: __ios_type::move(__rhs); 8751: __rhs._M_gcount = 0; 8751: } 8751: 8751: 8751: 8751: basic_istream& operator=(const basic_istream&) = delete; 8751: 8751: basic_istream& 8751: operator=(basic_istream&& __rhs) 8751: { 8751: swap(__rhs); 8751: return *this; 8751: } 8751: 8751: void 8751: swap(basic_istream& __rhs) 8751: { 8751: __ios_type::swap(__rhs); 8751: std::swap(_M_gcount, __rhs._M_gcount); 8751: } 8751: 8751: 8751: template 8751: __istream_type& 8751: _M_extract(_ValueT& __v); 8751: }; 8751: 8751: 8751: template<> 8751: basic_istream& 8751: basic_istream:: 8751: getline(char_type* __s, streamsize __n, char_type __delim); 8751: 8751: template<> 8751: basic_istream& 8751: basic_istream:: 8751: ignore(streamsize __n); 8751: 8751: template<> 8751: basic_istream& 8751: basic_istream:: 8751: ignore(streamsize __n, int_type __delim); 8751: 8751: 8751: template<> 8751: basic_istream& 8751: basic_istream:: 8751: getline(char_type* __s, streamsize __n, char_type __delim); 8751: 8751: template<> 8751: basic_istream& 8751: basic_istream:: 8751: ignore(streamsize __n); 8751: 8751: template<> 8751: basic_istream& 8751: basic_istream:: 8751: ignore(streamsize __n, int_type __delim); 8751: # 685 "/usr/include/c++/8/istream" 3 8751: template 8751: class basic_istream<_CharT, _Traits>::sentry 8751: { 8751: 8751: bool _M_ok; 8751: 8751: public: 8751: 8751: typedef _Traits traits_type; 8751: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8751: typedef basic_istream<_CharT, _Traits> __istream_type; 8751: typedef typename __istream_type::__ctype_type __ctype_type; 8751: typedef typename _Traits::int_type __int_type; 8751: # 721 "/usr/include/c++/8/istream" 3 8751: explicit 8751: sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false); 8751: # 732 "/usr/include/c++/8/istream" 3 8751: explicit 8751: 8751: operator bool() const 8751: { return _M_ok; } 8751: }; 8751: # 750 "/usr/include/c++/8/istream" 3 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c); 8751: 8751: template 8751: inline basic_istream& 8751: operator>>(basic_istream& __in, unsigned char& __c) 8751: { return (__in >> reinterpret_cast(__c)); } 8751: 8751: template 8751: inline basic_istream& 8751: operator>>(basic_istream& __in, signed char& __c) 8751: { return (__in >> reinterpret_cast(__c)); } 8751: # 792 "/usr/include/c++/8/istream" 3 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s); 8751: 8751: 8751: template<> 8751: basic_istream& 8751: operator>>(basic_istream& __in, char* __s); 8751: 8751: template 8751: inline basic_istream& 8751: operator>>(basic_istream& __in, unsigned char* __s) 8751: { return (__in >> reinterpret_cast(__s)); } 8751: 8751: template 8751: inline basic_istream& 8751: operator>>(basic_istream& __in, signed char* __s) 8751: { return (__in >> reinterpret_cast(__s)); } 8751: # 823 "/usr/include/c++/8/istream" 3 8751: template 8751: class basic_iostream 8751: : public basic_istream<_CharT, _Traits>, 8751: public basic_ostream<_CharT, _Traits> 8751: { 8751: public: 8751: 8751: 8751: 8751: typedef _CharT char_type; 8751: typedef typename _Traits::int_type int_type; 8751: typedef typename _Traits::pos_type pos_type; 8751: typedef typename _Traits::off_type off_type; 8751: typedef _Traits traits_type; 8751: 8751: 8751: typedef basic_istream<_CharT, _Traits> __istream_type; 8751: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: explicit 8751: basic_iostream(basic_streambuf<_CharT, _Traits>* __sb) 8751: : __istream_type(__sb), __ostream_type(__sb) { } 8751: 8751: 8751: 8751: 8751: virtual 8751: ~basic_iostream() { } 8751: 8751: protected: 8751: basic_iostream() 8751: : __istream_type(), __ostream_type() { } 8751: 8751: 8751: basic_iostream(const basic_iostream&) = delete; 8751: 8751: basic_iostream(basic_iostream&& __rhs) 8751: : __istream_type(std::move(__rhs)), __ostream_type(*this) 8751: { } 8751: 8751: 8751: 8751: basic_iostream& operator=(const basic_iostream&) = delete; 8751: 8751: basic_iostream& 8751: operator=(basic_iostream&& __rhs) 8751: { 8751: swap(__rhs); 8751: return *this; 8751: } 8751: 8751: void 8751: swap(basic_iostream& __rhs) 8751: { __istream_type::swap(__rhs); } 8751: 8751: }; 8751: # 906 "/usr/include/c++/8/istream" 3 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: ws(basic_istream<_CharT, _Traits>& __is); 8751: 8751: 8751: template 8751: basic_istream<_Ch, _Up>& 8751: __is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*); 8751: 8751: template 8751: struct __is_convertible_to_basic_istream_impl 8751: { 8751: using __istream_type = void; 8751: }; 8751: 8751: template 8751: using __do_is_convertible_to_basic_istream_impl = 8751: decltype(__is_convertible_to_basic_istream_test 8751: (declval::type*>())); 8751: 8751: template 8751: struct __is_convertible_to_basic_istream_impl 8751: <_Tp, 8751: __void_t<__do_is_convertible_to_basic_istream_impl<_Tp>>> 8751: { 8751: using __istream_type = 8751: __do_is_convertible_to_basic_istream_impl<_Tp>; 8751: }; 8751: 8751: template 8751: struct __is_convertible_to_basic_istream 8751: : __is_convertible_to_basic_istream_impl<_Tp> 8751: { 8751: public: 8751: using type = __not_::__istream_type>>; 8751: constexpr static bool value = type::value; 8751: }; 8751: 8751: template 8751: struct __is_extractable : false_type {}; 8751: 8751: template 8751: struct __is_extractable<_Istream, _Tp, 8751: __void_t() 8751: >> declval<_Tp>())>> 8751: : true_type {}; 8751: 8751: template 8751: using __rvalue_istream_type = 8751: typename __is_convertible_to_basic_istream< 8751: _Istream>::__istream_type; 8751: # 972 "/usr/include/c++/8/istream" 3 8751: template 8751: inline 8751: typename enable_if<__and_<__not_>, 8751: __is_convertible_to_basic_istream<_Istream>, 8751: __is_extractable< 8751: __rvalue_istream_type<_Istream>, 8751: _Tp&&>>::value, 8751: __rvalue_istream_type<_Istream>>::type 8751: operator>>(_Istream&& __is, _Tp&& __x) 8751: { 8751: __rvalue_istream_type<_Istream> __ret_is = __is; 8751: __ret_is >> std::forward<_Tp>(__x); 8751: return __ret_is; 8751: } 8751: 8751: 8751: 8751: } 8751: 8751: # 1 "/usr/include/c++/8/bits/istream.tcc" 1 3 8751: # 37 "/usr/include/c++/8/bits/istream.tcc" 3 8751: 8751: # 38 "/usr/include/c++/8/bits/istream.tcc" 3 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: template 8751: basic_istream<_CharT, _Traits>::sentry:: 8751: sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: if (__in.good()) 8751: try 8751: { 8751: if (__in.tie()) 8751: __in.tie()->flush(); 8751: if (!__noskip && bool(__in.flags() & ios_base::skipws)) 8751: { 8751: const __int_type __eof = traits_type::eof(); 8751: __streambuf_type* __sb = __in.rdbuf(); 8751: __int_type __c = __sb->sgetc(); 8751: 8751: const __ctype_type& __ct = __check_facet(__in._M_ctype); 8751: while (!traits_type::eq_int_type(__c, __eof) 8751: && __ct.is(ctype_base::space, 8751: traits_type::to_char_type(__c))) 8751: __c = __sb->snextc(); 8751: 8751: 8751: 8751: 8751: if (traits_type::eq_int_type(__c, __eof)) 8751: __err |= ios_base::eofbit; 8751: } 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: __in._M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { __in._M_setstate(ios_base::badbit); } 8751: 8751: if (__in.good() && __err == ios_base::goodbit) 8751: _M_ok = true; 8751: else 8751: { 8751: __err |= ios_base::failbit; 8751: __in.setstate(__err); 8751: } 8751: } 8751: 8751: template 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: basic_istream<_CharT, _Traits>:: 8751: _M_extract(_ValueT& __v) 8751: { 8751: sentry __cerb(*this, false); 8751: if (__cerb) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: const __num_get_type& __ng = __check_facet(this->_M_num_get); 8751: __ng.get(*this, 0, *this, __err, __v); 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: basic_istream<_CharT, _Traits>:: 8751: operator>>(short& __n) 8751: { 8751: 8751: 8751: sentry __cerb(*this, false); 8751: if (__cerb) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: long __l; 8751: const __num_get_type& __ng = __check_facet(this->_M_num_get); 8751: __ng.get(*this, 0, *this, __err, __l); 8751: 8751: 8751: 8751: if (__l < __gnu_cxx::__numeric_traits::__min) 8751: { 8751: __err |= ios_base::failbit; 8751: __n = __gnu_cxx::__numeric_traits::__min; 8751: } 8751: else if (__l > __gnu_cxx::__numeric_traits::__max) 8751: { 8751: __err |= ios_base::failbit; 8751: __n = __gnu_cxx::__numeric_traits::__max; 8751: } 8751: else 8751: __n = short(__l); 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: basic_istream<_CharT, _Traits>:: 8751: operator>>(int& __n) 8751: { 8751: 8751: 8751: sentry __cerb(*this, false); 8751: if (__cerb) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: long __l; 8751: const __num_get_type& __ng = __check_facet(this->_M_num_get); 8751: __ng.get(*this, 0, *this, __err, __l); 8751: 8751: 8751: 8751: if (__l < __gnu_cxx::__numeric_traits::__min) 8751: { 8751: __err |= ios_base::failbit; 8751: __n = __gnu_cxx::__numeric_traits::__min; 8751: } 8751: else if (__l > __gnu_cxx::__numeric_traits::__max) 8751: { 8751: __err |= ios_base::failbit; 8751: __n = __gnu_cxx::__numeric_traits::__max; 8751: } 8751: else 8751: __n = int(__l); 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: basic_istream<_CharT, _Traits>:: 8751: operator>>(__streambuf_type* __sbout) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: sentry __cerb(*this, false); 8751: if (__cerb && __sbout) 8751: { 8751: try 8751: { 8751: bool __ineof; 8751: if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof)) 8751: __err |= ios_base::failbit; 8751: if (__ineof) 8751: __err |= ios_base::eofbit; 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::failbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::failbit); } 8751: } 8751: else if (!__sbout) 8751: __err |= ios_base::failbit; 8751: if (__err) 8751: this->setstate(__err); 8751: return *this; 8751: } 8751: 8751: template 8751: typename basic_istream<_CharT, _Traits>::int_type 8751: basic_istream<_CharT, _Traits>:: 8751: get(void) 8751: { 8751: const int_type __eof = traits_type::eof(); 8751: int_type __c = __eof; 8751: _M_gcount = 0; 8751: ios_base::iostate __err = ios_base::goodbit; 8751: sentry __cerb(*this, true); 8751: if (__cerb) 8751: { 8751: try 8751: { 8751: __c = this->rdbuf()->sbumpc(); 8751: 8751: if (!traits_type::eq_int_type(__c, __eof)) 8751: _M_gcount = 1; 8751: else 8751: __err |= ios_base::eofbit; 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: } 8751: if (!_M_gcount) 8751: __err |= ios_base::failbit; 8751: if (__err) 8751: this->setstate(__err); 8751: return __c; 8751: } 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: basic_istream<_CharT, _Traits>:: 8751: get(char_type& __c) 8751: { 8751: _M_gcount = 0; 8751: ios_base::iostate __err = ios_base::goodbit; 8751: sentry __cerb(*this, true); 8751: if (__cerb) 8751: { 8751: try 8751: { 8751: const int_type __cb = this->rdbuf()->sbumpc(); 8751: 8751: if (!traits_type::eq_int_type(__cb, traits_type::eof())) 8751: { 8751: _M_gcount = 1; 8751: __c = traits_type::to_char_type(__cb); 8751: } 8751: else 8751: __err |= ios_base::eofbit; 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: } 8751: if (!_M_gcount) 8751: __err |= ios_base::failbit; 8751: if (__err) 8751: this->setstate(__err); 8751: return *this; 8751: } 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: basic_istream<_CharT, _Traits>:: 8751: get(char_type* __s, streamsize __n, char_type __delim) 8751: { 8751: _M_gcount = 0; 8751: ios_base::iostate __err = ios_base::goodbit; 8751: sentry __cerb(*this, true); 8751: if (__cerb) 8751: { 8751: try 8751: { 8751: const int_type __idelim = traits_type::to_int_type(__delim); 8751: const int_type __eof = traits_type::eof(); 8751: __streambuf_type* __sb = this->rdbuf(); 8751: int_type __c = __sb->sgetc(); 8751: 8751: while (_M_gcount + 1 < __n 8751: && !traits_type::eq_int_type(__c, __eof) 8751: && !traits_type::eq_int_type(__c, __idelim)) 8751: { 8751: *__s++ = traits_type::to_char_type(__c); 8751: ++_M_gcount; 8751: __c = __sb->snextc(); 8751: } 8751: if (traits_type::eq_int_type(__c, __eof)) 8751: __err |= ios_base::eofbit; 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: } 8751: 8751: 8751: if (__n > 0) 8751: *__s = char_type(); 8751: if (!_M_gcount) 8751: __err |= ios_base::failbit; 8751: if (__err) 8751: this->setstate(__err); 8751: return *this; 8751: } 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: basic_istream<_CharT, _Traits>:: 8751: get(__streambuf_type& __sb, char_type __delim) 8751: { 8751: _M_gcount = 0; 8751: ios_base::iostate __err = ios_base::goodbit; 8751: sentry __cerb(*this, true); 8751: if (__cerb) 8751: { 8751: try 8751: { 8751: const int_type __idelim = traits_type::to_int_type(__delim); 8751: const int_type __eof = traits_type::eof(); 8751: __streambuf_type* __this_sb = this->rdbuf(); 8751: int_type __c = __this_sb->sgetc(); 8751: char_type __c2 = traits_type::to_char_type(__c); 8751: 8751: while (!traits_type::eq_int_type(__c, __eof) 8751: && !traits_type::eq_int_type(__c, __idelim) 8751: && !traits_type::eq_int_type(__sb.sputc(__c2), __eof)) 8751: { 8751: ++_M_gcount; 8751: __c = __this_sb->snextc(); 8751: __c2 = traits_type::to_char_type(__c); 8751: } 8751: if (traits_type::eq_int_type(__c, __eof)) 8751: __err |= ios_base::eofbit; 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: } 8751: if (!_M_gcount) 8751: __err |= ios_base::failbit; 8751: if (__err) 8751: this->setstate(__err); 8751: return *this; 8751: } 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: basic_istream<_CharT, _Traits>:: 8751: getline(char_type* __s, streamsize __n, char_type __delim) 8751: { 8751: _M_gcount = 0; 8751: ios_base::iostate __err = ios_base::goodbit; 8751: sentry __cerb(*this, true); 8751: if (__cerb) 8751: { 8751: try 8751: { 8751: const int_type __idelim = traits_type::to_int_type(__delim); 8751: const int_type __eof = traits_type::eof(); 8751: __streambuf_type* __sb = this->rdbuf(); 8751: int_type __c = __sb->sgetc(); 8751: 8751: while (_M_gcount + 1 < __n 8751: && !traits_type::eq_int_type(__c, __eof) 8751: && !traits_type::eq_int_type(__c, __idelim)) 8751: { 8751: *__s++ = traits_type::to_char_type(__c); 8751: __c = __sb->snextc(); 8751: ++_M_gcount; 8751: } 8751: if (traits_type::eq_int_type(__c, __eof)) 8751: __err |= ios_base::eofbit; 8751: else 8751: { 8751: if (traits_type::eq_int_type(__c, __idelim)) 8751: { 8751: __sb->sbumpc(); 8751: ++_M_gcount; 8751: } 8751: else 8751: __err |= ios_base::failbit; 8751: } 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: } 8751: 8751: 8751: if (__n > 0) 8751: *__s = char_type(); 8751: if (!_M_gcount) 8751: __err |= ios_base::failbit; 8751: if (__err) 8751: this->setstate(__err); 8751: return *this; 8751: } 8751: 8751: 8751: 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: basic_istream<_CharT, _Traits>:: 8751: ignore(void) 8751: { 8751: _M_gcount = 0; 8751: sentry __cerb(*this, true); 8751: if (__cerb) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: const int_type __eof = traits_type::eof(); 8751: __streambuf_type* __sb = this->rdbuf(); 8751: 8751: if (traits_type::eq_int_type(__sb->sbumpc(), __eof)) 8751: __err |= ios_base::eofbit; 8751: else 8751: _M_gcount = 1; 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: basic_istream<_CharT, _Traits>:: 8751: ignore(streamsize __n) 8751: { 8751: _M_gcount = 0; 8751: sentry __cerb(*this, true); 8751: if (__cerb && __n > 0) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: const int_type __eof = traits_type::eof(); 8751: __streambuf_type* __sb = this->rdbuf(); 8751: int_type __c = __sb->sgetc(); 8751: # 521 "/usr/include/c++/8/bits/istream.tcc" 3 8751: bool __large_ignore = false; 8751: while (true) 8751: { 8751: while (_M_gcount < __n 8751: && !traits_type::eq_int_type(__c, __eof)) 8751: { 8751: ++_M_gcount; 8751: __c = __sb->snextc(); 8751: } 8751: if (__n == __gnu_cxx::__numeric_traits::__max 8751: && !traits_type::eq_int_type(__c, __eof)) 8751: { 8751: _M_gcount = 8751: __gnu_cxx::__numeric_traits::__min; 8751: __large_ignore = true; 8751: } 8751: else 8751: break; 8751: } 8751: 8751: if (__large_ignore) 8751: _M_gcount = __gnu_cxx::__numeric_traits::__max; 8751: 8751: if (traits_type::eq_int_type(__c, __eof)) 8751: __err |= ios_base::eofbit; 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: basic_istream<_CharT, _Traits>:: 8751: ignore(streamsize __n, int_type __delim) 8751: { 8751: _M_gcount = 0; 8751: sentry __cerb(*this, true); 8751: if (__cerb && __n > 0) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: const int_type __eof = traits_type::eof(); 8751: __streambuf_type* __sb = this->rdbuf(); 8751: int_type __c = __sb->sgetc(); 8751: 8751: 8751: bool __large_ignore = false; 8751: while (true) 8751: { 8751: while (_M_gcount < __n 8751: && !traits_type::eq_int_type(__c, __eof) 8751: && !traits_type::eq_int_type(__c, __delim)) 8751: { 8751: ++_M_gcount; 8751: __c = __sb->snextc(); 8751: } 8751: if (__n == __gnu_cxx::__numeric_traits::__max 8751: && !traits_type::eq_int_type(__c, __eof) 8751: && !traits_type::eq_int_type(__c, __delim)) 8751: { 8751: _M_gcount = 8751: __gnu_cxx::__numeric_traits::__min; 8751: __large_ignore = true; 8751: } 8751: else 8751: break; 8751: } 8751: 8751: if (__large_ignore) 8751: _M_gcount = __gnu_cxx::__numeric_traits::__max; 8751: 8751: if (traits_type::eq_int_type(__c, __eof)) 8751: __err |= ios_base::eofbit; 8751: else if (traits_type::eq_int_type(__c, __delim)) 8751: { 8751: if (_M_gcount 8751: < __gnu_cxx::__numeric_traits::__max) 8751: ++_M_gcount; 8751: __sb->sbumpc(); 8751: } 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: typename basic_istream<_CharT, _Traits>::int_type 8751: basic_istream<_CharT, _Traits>:: 8751: peek(void) 8751: { 8751: int_type __c = traits_type::eof(); 8751: _M_gcount = 0; 8751: sentry __cerb(*this, true); 8751: if (__cerb) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: __c = this->rdbuf()->sgetc(); 8751: if (traits_type::eq_int_type(__c, traits_type::eof())) 8751: __err |= ios_base::eofbit; 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: } 8751: return __c; 8751: } 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: basic_istream<_CharT, _Traits>:: 8751: read(char_type* __s, streamsize __n) 8751: { 8751: _M_gcount = 0; 8751: sentry __cerb(*this, true); 8751: if (__cerb) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: _M_gcount = this->rdbuf()->sgetn(__s, __n); 8751: if (_M_gcount != __n) 8751: __err |= (ios_base::eofbit | ios_base::failbit); 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: streamsize 8751: basic_istream<_CharT, _Traits>:: 8751: readsome(char_type* __s, streamsize __n) 8751: { 8751: _M_gcount = 0; 8751: sentry __cerb(*this, true); 8751: if (__cerb) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: 8751: const streamsize __num = this->rdbuf()->in_avail(); 8751: if (__num > 0) 8751: _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n)); 8751: else if (__num == -1) 8751: __err |= ios_base::eofbit; 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: } 8751: return _M_gcount; 8751: } 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: basic_istream<_CharT, _Traits>:: 8751: putback(char_type __c) 8751: { 8751: 8751: 8751: _M_gcount = 0; 8751: 8751: this->clear(this->rdstate() & ~ios_base::eofbit); 8751: sentry __cerb(*this, true); 8751: if (__cerb) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: const int_type __eof = traits_type::eof(); 8751: __streambuf_type* __sb = this->rdbuf(); 8751: if (!__sb 8751: || traits_type::eq_int_type(__sb->sputbackc(__c), __eof)) 8751: __err |= ios_base::badbit; 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: basic_istream<_CharT, _Traits>:: 8751: unget(void) 8751: { 8751: 8751: 8751: _M_gcount = 0; 8751: 8751: this->clear(this->rdstate() & ~ios_base::eofbit); 8751: sentry __cerb(*this, true); 8751: if (__cerb) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: const int_type __eof = traits_type::eof(); 8751: __streambuf_type* __sb = this->rdbuf(); 8751: if (!__sb 8751: || traits_type::eq_int_type(__sb->sungetc(), __eof)) 8751: __err |= ios_base::badbit; 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: int 8751: basic_istream<_CharT, _Traits>:: 8751: sync(void) 8751: { 8751: 8751: 8751: int __ret = -1; 8751: sentry __cerb(*this, true); 8751: if (__cerb) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: __streambuf_type* __sb = this->rdbuf(); 8751: if (__sb) 8751: { 8751: if (__sb->pubsync() == -1) 8751: __err |= ios_base::badbit; 8751: else 8751: __ret = 0; 8751: } 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: } 8751: return __ret; 8751: } 8751: 8751: template 8751: typename basic_istream<_CharT, _Traits>::pos_type 8751: basic_istream<_CharT, _Traits>:: 8751: tellg(void) 8751: { 8751: 8751: 8751: pos_type __ret = pos_type(-1); 8751: sentry __cerb(*this, true); 8751: if (__cerb) 8751: { 8751: try 8751: { 8751: if (!this->fail()) 8751: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, 8751: ios_base::in); 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: } 8751: return __ret; 8751: } 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: basic_istream<_CharT, _Traits>:: 8751: seekg(pos_type __pos) 8751: { 8751: 8751: 8751: 8751: this->clear(this->rdstate() & ~ios_base::eofbit); 8751: sentry __cerb(*this, true); 8751: if (__cerb) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: if (!this->fail()) 8751: { 8751: 8751: const pos_type __p = this->rdbuf()->pubseekpos(__pos, 8751: ios_base::in); 8751: 8751: 8751: if (__p == pos_type(off_type(-1))) 8751: __err |= ios_base::failbit; 8751: } 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: basic_istream<_CharT, _Traits>:: 8751: seekg(off_type __off, ios_base::seekdir __dir) 8751: { 8751: 8751: 8751: 8751: this->clear(this->rdstate() & ~ios_base::eofbit); 8751: sentry __cerb(*this, true); 8751: if (__cerb) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: if (!this->fail()) 8751: { 8751: 8751: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 8751: ios_base::in); 8751: 8751: 8751: if (__p == pos_type(off_type(-1))) 8751: __err |= ios_base::failbit; 8751: } 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: this->_M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { this->_M_setstate(ios_base::badbit); } 8751: if (__err) 8751: this->setstate(__err); 8751: } 8751: return *this; 8751: } 8751: 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c) 8751: { 8751: typedef basic_istream<_CharT, _Traits> __istream_type; 8751: typedef typename __istream_type::int_type __int_type; 8751: 8751: typename __istream_type::sentry __cerb(__in, false); 8751: if (__cerb) 8751: { 8751: ios_base::iostate __err = ios_base::goodbit; 8751: try 8751: { 8751: const __int_type __cb = __in.rdbuf()->sbumpc(); 8751: if (!_Traits::eq_int_type(__cb, _Traits::eof())) 8751: __c = _Traits::to_char_type(__cb); 8751: else 8751: __err |= (ios_base::eofbit | ios_base::failbit); 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: __in._M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { __in._M_setstate(ios_base::badbit); } 8751: if (__err) 8751: __in.setstate(__err); 8751: } 8751: return __in; 8751: } 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s) 8751: { 8751: typedef basic_istream<_CharT, _Traits> __istream_type; 8751: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8751: typedef typename _Traits::int_type int_type; 8751: typedef _CharT char_type; 8751: typedef ctype<_CharT> __ctype_type; 8751: 8751: streamsize __extracted = 0; 8751: ios_base::iostate __err = ios_base::goodbit; 8751: typename __istream_type::sentry __cerb(__in, false); 8751: if (__cerb) 8751: { 8751: try 8751: { 8751: 8751: streamsize __num = __in.width(); 8751: if (__num <= 0) 8751: __num = __gnu_cxx::__numeric_traits::__max; 8751: 8751: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 8751: 8751: const int_type __eof = _Traits::eof(); 8751: __streambuf_type* __sb = __in.rdbuf(); 8751: int_type __c = __sb->sgetc(); 8751: 8751: while (__extracted < __num - 1 8751: && !_Traits::eq_int_type(__c, __eof) 8751: && !__ct.is(ctype_base::space, 8751: _Traits::to_char_type(__c))) 8751: { 8751: *__s++ = _Traits::to_char_type(__c); 8751: ++__extracted; 8751: __c = __sb->snextc(); 8751: } 8751: if (_Traits::eq_int_type(__c, __eof)) 8751: __err |= ios_base::eofbit; 8751: 8751: 8751: 8751: *__s = char_type(); 8751: __in.width(0); 8751: } 8751: catch(__cxxabiv1::__forced_unwind&) 8751: { 8751: __in._M_setstate(ios_base::badbit); 8751: throw; 8751: } 8751: catch(...) 8751: { __in._M_setstate(ios_base::badbit); } 8751: } 8751: if (!__extracted) 8751: __err |= ios_base::failbit; 8751: if (__err) 8751: __in.setstate(__err); 8751: return __in; 8751: } 8751: 8751: 8751: template 8751: basic_istream<_CharT, _Traits>& 8751: ws(basic_istream<_CharT, _Traits>& __in) 8751: { 8751: typedef basic_istream<_CharT, _Traits> __istream_type; 8751: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8751: typedef typename __istream_type::int_type __int_type; 8751: typedef ctype<_CharT> __ctype_type; 8751: 8751: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 8751: const __int_type __eof = _Traits::eof(); 8751: __streambuf_type* __sb = __in.rdbuf(); 8751: __int_type __c = __sb->sgetc(); 8751: 8751: while (!_Traits::eq_int_type(__c, __eof) 8751: && __ct.is(ctype_base::space, _Traits::to_char_type(__c))) 8751: __c = __sb->snextc(); 8751: 8751: if (_Traits::eq_int_type(__c, __eof)) 8751: __in.setstate(ios_base::eofbit); 8751: return __in; 8751: } 8751: 8751: 8751: 8751: 8751: extern template class basic_istream; 8751: extern template istream& ws(istream&); 8751: extern template istream& operator>>(istream&, char&); 8751: extern template istream& operator>>(istream&, char*); 8751: extern template istream& operator>>(istream&, unsigned char&); 8751: extern template istream& operator>>(istream&, signed char&); 8751: extern template istream& operator>>(istream&, unsigned char*); 8751: extern template istream& operator>>(istream&, signed char*); 8751: 8751: extern template istream& istream::_M_extract(unsigned short&); 8751: extern template istream& istream::_M_extract(unsigned int&); 8751: extern template istream& istream::_M_extract(long&); 8751: extern template istream& istream::_M_extract(unsigned long&); 8751: extern template istream& istream::_M_extract(bool&); 8751: 8751: extern template istream& istream::_M_extract(long long&); 8751: extern template istream& istream::_M_extract(unsigned long long&); 8751: 8751: extern template istream& istream::_M_extract(float&); 8751: extern template istream& istream::_M_extract(double&); 8751: extern template istream& istream::_M_extract(long double&); 8751: extern template istream& istream::_M_extract(void*&); 8751: 8751: extern template class basic_iostream; 8751: 8751: 8751: extern template class basic_istream; 8751: extern template wistream& ws(wistream&); 8751: extern template wistream& operator>>(wistream&, wchar_t&); 8751: extern template wistream& operator>>(wistream&, wchar_t*); 8751: 8751: extern template wistream& wistream::_M_extract(unsigned short&); 8751: extern template wistream& wistream::_M_extract(unsigned int&); 8751: extern template wistream& wistream::_M_extract(long&); 8751: extern template wistream& wistream::_M_extract(unsigned long&); 8751: extern template wistream& wistream::_M_extract(bool&); 8751: 8751: extern template wistream& wistream::_M_extract(long long&); 8751: extern template wistream& wistream::_M_extract(unsigned long long&); 8751: 8751: extern template wistream& wistream::_M_extract(float&); 8751: extern template wistream& wistream::_M_extract(double&); 8751: extern template wistream& wistream::_M_extract(long double&); 8751: extern template wistream& wistream::_M_extract(void*&); 8751: 8751: extern template class basic_iostream; 8751: 8751: 8751: 8751: 8751: } 8751: # 992 "/usr/include/c++/8/istream" 2 3 8751: # 66 "/usr/include/c++/8/iterator" 2 3 8751: # 1 "/usr/include/c++/8/bits/stream_iterator.h" 1 3 8751: # 33 "/usr/include/c++/8/bits/stream_iterator.h" 3 8751: 8751: # 34 "/usr/include/c++/8/bits/stream_iterator.h" 3 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template, typename _Dist = ptrdiff_t> 8751: class istream_iterator 8751: : public iterator 8751: { 8751: public: 8751: typedef _CharT char_type; 8751: typedef _Traits traits_type; 8751: typedef basic_istream<_CharT, _Traits> istream_type; 8751: 8751: private: 8751: istream_type* _M_stream; 8751: _Tp _M_value; 8751: bool _M_ok; 8751: 8751: public: 8751: 8751: constexpr istream_iterator() 8751: : _M_stream(0), _M_value(), _M_ok(false) {} 8751: 8751: 8751: istream_iterator(istream_type& __s) 8751: : _M_stream(std::__addressof(__s)) 8751: { _M_read(); } 8751: 8751: istream_iterator(const istream_iterator& __obj) 8751: : _M_stream(__obj._M_stream), _M_value(__obj._M_value), 8751: _M_ok(__obj._M_ok) 8751: { } 8751: 8751: const _Tp& 8751: operator*() const 8751: { 8751: 8751: 8751: ; 8751: return _M_value; 8751: } 8751: 8751: const _Tp* 8751: operator->() const { return std::__addressof((operator*())); } 8751: 8751: istream_iterator& 8751: operator++() 8751: { 8751: 8751: 8751: ; 8751: _M_read(); 8751: return *this; 8751: } 8751: 8751: istream_iterator 8751: operator++(int) 8751: { 8751: 8751: 8751: ; 8751: istream_iterator __tmp = *this; 8751: _M_read(); 8751: return __tmp; 8751: } 8751: 8751: bool 8751: _M_equal(const istream_iterator& __x) const 8751: { return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream); } 8751: 8751: private: 8751: void 8751: _M_read() 8751: { 8751: _M_ok = (_M_stream && *_M_stream) ? true : false; 8751: if (_M_ok) 8751: { 8751: *_M_stream >> _M_value; 8751: _M_ok = *_M_stream ? true : false; 8751: } 8751: } 8751: }; 8751: 8751: 8751: template 8751: inline bool 8751: operator==(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, 8751: const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) 8751: { return __x._M_equal(__y); } 8751: 8751: 8751: template 8751: inline bool 8751: operator!=(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, 8751: const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) 8751: { return !__x._M_equal(__y); } 8751: # 152 "/usr/include/c++/8/bits/stream_iterator.h" 3 8751: template > 8751: class ostream_iterator 8751: : public iterator 8751: { 8751: public: 8751: 8751: 8751: typedef _CharT char_type; 8751: typedef _Traits traits_type; 8751: typedef basic_ostream<_CharT, _Traits> ostream_type; 8751: 8751: 8751: private: 8751: ostream_type* _M_stream; 8751: const _CharT* _M_string; 8751: 8751: public: 8751: 8751: ostream_iterator(ostream_type& __s) 8751: : _M_stream(std::__addressof(__s)), _M_string(0) {} 8751: # 184 "/usr/include/c++/8/bits/stream_iterator.h" 3 8751: ostream_iterator(ostream_type& __s, const _CharT* __c) 8751: : _M_stream(&__s), _M_string(__c) { } 8751: 8751: 8751: ostream_iterator(const ostream_iterator& __obj) 8751: : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { } 8751: 8751: 8751: 8751: ostream_iterator& 8751: operator=(const _Tp& __value) 8751: { 8751: 8751: 8751: ; 8751: *_M_stream << __value; 8751: if (_M_string) *_M_stream << _M_string; 8751: return *this; 8751: } 8751: 8751: ostream_iterator& 8751: operator*() 8751: { return *this; } 8751: 8751: ostream_iterator& 8751: operator++() 8751: { return *this; } 8751: 8751: ostream_iterator& 8751: operator++(int) 8751: { return *this; } 8751: }; 8751: 8751: 8751: 8751: 8751: } 8751: # 67 "/usr/include/c++/8/iterator" 2 3 8751: # 54 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 2 3 4 8751: # 64 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) char *qstrdup(const char *); 8751: 8751: inline uint qstrlen(const char *str) 8751: { return str ? uint(strlen(str)) : 0; } 8751: 8751: inline uint qstrnlen(const char *str, uint maxlen) 8751: { 8751: uint length = 0; 8751: if (str) { 8751: while (length < maxlen && *str++) 8751: length++; 8751: } 8751: return length; 8751: } 8751: 8751: __attribute__((visibility("default"))) char *qstrcpy(char *dst, const char *src); 8751: __attribute__((visibility("default"))) char *qstrncpy(char *dst, const char *src, uint len); 8751: 8751: __attribute__((visibility("default"))) int qstrcmp(const char *str1, const char *str2); 8751: __attribute__((visibility("default"))) int qstrcmp(const QByteArray &str1, const QByteArray &str2); 8751: __attribute__((visibility("default"))) int qstrcmp(const QByteArray &str1, const char *str2); 8751: static inline int qstrcmp(const char *str1, const QByteArray &str2) 8751: { return -qstrcmp(str2, str1); } 8751: 8751: inline int qstrncmp(const char *str1, const char *str2, uint len) 8751: { 8751: return (str1 && str2) ? strncmp(str1, str2, len) 8751: : (str1 ? 1 : (str2 ? -1 : 0)); 8751: } 8751: __attribute__((visibility("default"))) int qstricmp(const char *, const char *); 8751: __attribute__((visibility("default"))) int qstrnicmp(const char *, const char *, uint len); 8751: 8751: 8751: __attribute__((visibility("default"))) int qvsnprintf(char *str, size_t n, const char *fmt, va_list ap); 8751: __attribute__((visibility("default"))) int qsnprintf(char *str, size_t n, const char *fmt, ...); 8751: 8751: 8751: __attribute__((visibility("default"))) quint16 qChecksum(const char *s, uint len); 8751: __attribute__((visibility("default"))) quint16 qChecksum(const char *s, uint len, Qt::ChecksumType standard); 8751: 8751: class QByteRef; 8751: class QString; 8751: class QDataStream; 8751: template class QList; 8751: 8751: typedef QArrayData QByteArrayData; 8751: 8751: template struct QStaticByteArrayData 8751: { 8751: QByteArrayData ba; 8751: char data[N + 1]; 8751: 8751: QByteArrayData *data_ptr() const 8751: { 8751: do { } while ((false) && (ba.ref.isStatic())); 8751: return const_cast(&ba); 8751: } 8751: }; 8751: 8751: struct QByteArrayDataPtr 8751: { 8751: QByteArrayData *ptr; 8751: }; 8751: # 155 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 3 4 8751: class __attribute__((visibility("default"))) QByteArray 8751: { 8751: private: 8751: typedef QTypedArrayData Data; 8751: 8751: public: 8751: enum Base64Option { 8751: Base64Encoding = 0, 8751: Base64UrlEncoding = 1, 8751: 8751: KeepTrailingEquals = 0, 8751: OmitTrailingEquals = 2 8751: }; 8751: typedef QFlags Base64Options; 8751: 8751: inline QByteArray() noexcept; 8751: QByteArray(const char *, int size = -1); 8751: QByteArray(int size, char c); 8751: QByteArray(int size, Qt::Initialization); 8751: inline QByteArray(const QByteArray &) noexcept; 8751: inline ~QByteArray(); 8751: 8751: QByteArray &operator=(const QByteArray &) noexcept; 8751: QByteArray &operator=(const char *str); 8751: 8751: inline QByteArray(QByteArray && other) noexcept : d(other.d) { other.d = Data::sharedNull(); } 8751: inline QByteArray &operator=(QByteArray &&other) noexcept 8751: { qSwap(d, other.d); return *this; } 8751: 8751: 8751: inline void swap(QByteArray &other) noexcept 8751: { qSwap(d, other.d); } 8751: 8751: inline int size() const; 8751: bool isEmpty() const; 8751: void resize(int size); 8751: 8751: QByteArray &fill(char c, int size = -1); 8751: 8751: int capacity() const; 8751: void reserve(int size); 8751: void squeeze(); 8751: 8751: 8751: 8751: 8751: 8751: char *data(); 8751: const char *data() const; 8751: inline const char *constData() const; 8751: inline void detach(); 8751: bool isDetached() const; 8751: inline bool isSharedWith(const QByteArray &other) const { return d == other.d; } 8751: void clear(); 8751: 8751: char at(int i) const; 8751: char operator[](int i) const; 8751: char operator[](uint i) const; 8751: QByteRef operator[](int i); 8751: QByteRef operator[](uint i); 8751: 8751: int indexOf(char c, int from = 0) const; 8751: int indexOf(const char *c, int from = 0) const; 8751: int indexOf(const QByteArray &a, int from = 0) const; 8751: int lastIndexOf(char c, int from = -1) const; 8751: int lastIndexOf(const char *c, int from = -1) const; 8751: int lastIndexOf(const QByteArray &a, int from = -1) const; 8751: 8751: bool contains(char c) const; 8751: bool contains(const char *a) const; 8751: bool contains(const QByteArray &a) const; 8751: int count(char c) const; 8751: int count(const char *a) const; 8751: int count(const QByteArray &a) const; 8751: 8751: [[nodiscard]] QByteArray left(int len) const; 8751: [[nodiscard]] QByteArray right(int len) const; 8751: [[nodiscard]] QByteArray mid(int index, int len = -1) const; 8751: 8751: bool startsWith(const QByteArray &a) const; 8751: bool startsWith(char c) const; 8751: bool startsWith(const char *c) const; 8751: 8751: bool endsWith(const QByteArray &a) const; 8751: bool endsWith(char c) const; 8751: bool endsWith(const char *c) const; 8751: 8751: void truncate(int pos); 8751: void chop(int n); 8751: # 253 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 3 4 8751: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toLower() const & 8751: { return toLower_helper(*this); } 8751: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toLower() && 8751: { return toLower_helper(*this); } 8751: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toUpper() const & 8751: { return toUpper_helper(*this); } 8751: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toUpper() && 8751: { return toUpper_helper(*this); } 8751: [[nodiscard]] inline __attribute__((always_inline)) QByteArray trimmed() const & 8751: { return trimmed_helper(*this); } 8751: [[nodiscard]] inline __attribute__((always_inline)) QByteArray trimmed() && 8751: { return trimmed_helper(*this); } 8751: [[nodiscard]] inline __attribute__((always_inline)) QByteArray simplified() const & 8751: { return simplified_helper(*this); } 8751: [[nodiscard]] inline __attribute__((always_inline)) QByteArray simplified() && 8751: { return simplified_helper(*this); } 8751: # 279 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 3 4 8751: [[nodiscard]] QByteArray leftJustified(int width, char fill = ' ', bool truncate = false) const; 8751: [[nodiscard]] QByteArray rightJustified(int width, char fill = ' ', bool truncate = false) const; 8751: 8751: QByteArray &prepend(char c); 8751: QByteArray &prepend(int count, char c); 8751: QByteArray &prepend(const char *s); 8751: QByteArray &prepend(const char *s, int len); 8751: QByteArray &prepend(const QByteArray &a); 8751: QByteArray &append(char c); 8751: QByteArray &append(int count, char c); 8751: QByteArray &append(const char *s); 8751: QByteArray &append(const char *s, int len); 8751: QByteArray &append(const QByteArray &a); 8751: QByteArray &insert(int i, char c); 8751: QByteArray &insert(int i, int count, char c); 8751: QByteArray &insert(int i, const char *s); 8751: QByteArray &insert(int i, const char *s, int len); 8751: QByteArray &insert(int i, const QByteArray &a); 8751: QByteArray &remove(int index, int len); 8751: QByteArray &replace(int index, int len, const char *s); 8751: QByteArray &replace(int index, int len, const char *s, int alen); 8751: QByteArray &replace(int index, int len, const QByteArray &s); 8751: QByteArray &replace(char before, const char *after); 8751: QByteArray &replace(char before, const QByteArray &after); 8751: QByteArray &replace(const char *before, const char *after); 8751: QByteArray &replace(const char *before, int bsize, const char *after, int asize); 8751: QByteArray &replace(const QByteArray &before, const QByteArray &after); 8751: QByteArray &replace(const QByteArray &before, const char *after); 8751: QByteArray &replace(const char *before, const QByteArray &after); 8751: QByteArray &replace(char before, char after); 8751: QByteArray &operator+=(char c); 8751: QByteArray &operator+=(const char *s); 8751: QByteArray &operator+=(const QByteArray &a); 8751: 8751: QList split(char sep) const; 8751: 8751: [[nodiscard]] QByteArray repeated(int times) const; 8751: # 337 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 3 4 8751: short toShort(bool *ok = nullptr, int base = 10) const; 8751: ushort toUShort(bool *ok = nullptr, int base = 10) const; 8751: int toInt(bool *ok = nullptr, int base = 10) const; 8751: uint toUInt(bool *ok = nullptr, int base = 10) const; 8751: long toLong(bool *ok = nullptr, int base = 10) const; 8751: ulong toULong(bool *ok = nullptr, int base = 10) const; 8751: qlonglong toLongLong(bool *ok = nullptr, int base = 10) const; 8751: qulonglong toULongLong(bool *ok = nullptr, int base = 10) const; 8751: float toFloat(bool *ok = nullptr) const; 8751: double toDouble(bool *ok = nullptr) const; 8751: QByteArray toBase64(Base64Options options) const; 8751: QByteArray toBase64() const; 8751: QByteArray toHex() const; 8751: QByteArray toHex(char separator) const; 8751: QByteArray toPercentEncoding(const QByteArray &exclude = QByteArray(), 8751: const QByteArray &include = QByteArray(), 8751: char percent = '%') const; 8751: 8751: QByteArray &setNum(short, int base = 10); 8751: QByteArray &setNum(ushort, int base = 10); 8751: QByteArray &setNum(int, int base = 10); 8751: QByteArray &setNum(uint, int base = 10); 8751: QByteArray &setNum(qlonglong, int base = 10); 8751: QByteArray &setNum(qulonglong, int base = 10); 8751: QByteArray &setNum(float, char f = 'g', int prec = 6); 8751: QByteArray &setNum(double, char f = 'g', int prec = 6); 8751: QByteArray &setRawData(const char *a, uint n); 8751: 8751: [[nodiscard]] static QByteArray number(int, int base = 10); 8751: [[nodiscard]] static QByteArray number(uint, int base = 10); 8751: [[nodiscard]] static QByteArray number(qlonglong, int base = 10); 8751: [[nodiscard]] static QByteArray number(qulonglong, int base = 10); 8751: [[nodiscard]] static QByteArray number(double, char f = 'g', int prec = 6); 8751: [[nodiscard]] static QByteArray fromRawData(const char *, int size); 8751: [[nodiscard]] static QByteArray fromBase64(const QByteArray &base64, Base64Options options); 8751: [[nodiscard]] static QByteArray fromBase64(const QByteArray &base64); 8751: [[nodiscard]] static QByteArray fromHex(const QByteArray &hexEncoded); 8751: [[nodiscard]] static QByteArray fromPercentEncoding(const QByteArray &pctEncoded, char percent = '%'); 8751: # 387 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 3 4 8751: typedef char *iterator; 8751: typedef const char *const_iterator; 8751: typedef iterator Iterator; 8751: typedef const_iterator ConstIterator; 8751: typedef std::reverse_iterator reverse_iterator; 8751: typedef std::reverse_iterator const_reverse_iterator; 8751: inline iterator begin(); 8751: inline const_iterator begin() const; 8751: inline const_iterator cbegin() const; 8751: inline const_iterator constBegin() const; 8751: inline iterator end(); 8751: inline const_iterator end() const; 8751: inline const_iterator cend() const; 8751: inline const_iterator constEnd() const; 8751: reverse_iterator rbegin() { return reverse_iterator(end()); } 8751: reverse_iterator rend() { return reverse_iterator(begin()); } 8751: const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8751: const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8751: const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); } 8751: const_reverse_iterator crend() const { return const_reverse_iterator(begin()); } 8751: 8751: 8751: typedef int size_type; 8751: typedef qptrdiff difference_type; 8751: typedef const char & const_reference; 8751: typedef char & reference; 8751: typedef char *pointer; 8751: typedef const char *const_pointer; 8751: typedef char value_type; 8751: void push_back(char c); 8751: void push_back(const char *c); 8751: void push_back(const QByteArray &a); 8751: void push_front(char c); 8751: void push_front(const char *c); 8751: void push_front(const QByteArray &a); 8751: 8751: static inline QByteArray fromStdString(const std::string &s); 8751: inline std::string toStdString() const; 8751: 8751: inline int count() const { return d->size; } 8751: int length() const { return d->size; } 8751: bool isNull() const; 8751: 8751: inline QByteArray(QByteArrayDataPtr dd) 8751: : d(static_cast(dd.ptr)) 8751: { 8751: } 8751: 8751: private: 8751: operator QNoImplicitBoolCast() const; 8751: Data *d; 8751: void reallocData(uint alloc, Data::AllocationOptions options); 8751: void expand(int i); 8751: QByteArray nulTerminated() const; 8751: 8751: static QByteArray toLower_helper(const QByteArray &a); 8751: static QByteArray toLower_helper(QByteArray &a); 8751: static QByteArray toUpper_helper(const QByteArray &a); 8751: static QByteArray toUpper_helper(QByteArray &a); 8751: static QByteArray trimmed_helper(const QByteArray &a); 8751: static QByteArray trimmed_helper(QByteArray &a); 8751: static QByteArray simplified_helper(const QByteArray &a); 8751: static QByteArray simplified_helper(QByteArray &a); 8751: 8751: friend class QByteRef; 8751: friend class QString; 8751: friend __attribute__((visibility("default"))) QByteArray qUncompress(const uchar *data, int nbytes); 8751: public: 8751: typedef Data * DataPtr; 8751: inline DataPtr &data_ptr() { return d; } 8751: }; 8751: 8751: constexpr inline QFlags operator|(QByteArray::Base64Options::enum_type f1, QByteArray::Base64Options::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QByteArray::Base64Options::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QByteArray::Base64Options::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: 8751: inline QByteArray::QByteArray() noexcept : d(Data::sharedNull()) { } 8751: inline QByteArray::~QByteArray() { if (!d->ref.deref()) Data::deallocate(d); } 8751: inline int QByteArray::size() const 8751: { return d->size; } 8751: 8751: inline char QByteArray::at(int i) const 8751: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8751: inline char QByteArray::operator[](int i) const 8751: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8751: inline char QByteArray::operator[](uint i) const 8751: { do { } while ((false) && (i < uint(size()))); return d->data()[i]; } 8751: 8751: inline bool QByteArray::isEmpty() const 8751: { return d->size == 0; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: inline char *QByteArray::data() 8751: { detach(); return d->data(); } 8751: inline const char *QByteArray::data() const 8751: { return d->data(); } 8751: inline const char *QByteArray::constData() const 8751: { return d->data(); } 8751: inline void QByteArray::detach() 8751: { if (d->ref.isShared() || (d->offset != sizeof(QByteArrayData))) reallocData(uint(d->size) + 1u, d->detachFlags()); } 8751: inline bool QByteArray::isDetached() const 8751: { return !d->ref.isShared(); } 8751: inline QByteArray::QByteArray(const QByteArray &a) noexcept : d(a.d) 8751: { d->ref.ref(); } 8751: 8751: inline int QByteArray::capacity() const 8751: { return d->alloc ? d->alloc - 1 : 0; } 8751: 8751: inline void QByteArray::reserve(int asize) 8751: { 8751: if (d->ref.isShared() || uint(asize) + 1u > d->alloc) { 8751: reallocData(qMax(uint(size()), uint(asize)) + 1u, d->detachFlags() | Data::CapacityReserved); 8751: } else { 8751: 8751: 8751: d->capacityReserved = true; 8751: } 8751: } 8751: 8751: inline void QByteArray::squeeze() 8751: { 8751: if (d->ref.isShared() || uint(d->size) + 1u < d->alloc) { 8751: reallocData(uint(d->size) + 1u, d->detachFlags() & ~Data::CapacityReserved); 8751: } else { 8751: 8751: 8751: d->capacityReserved = false; 8751: } 8751: } 8751: 8751: class __attribute__((visibility("default"))) QByteRef { 8751: QByteArray &a; 8751: int i; 8751: inline QByteRef(QByteArray &array, int idx) 8751: : a(array),i(idx) {} 8751: friend class QByteArray; 8751: public: 8751: inline operator char() const 8751: { return i < a.d->size ? a.d->data()[i] : char(0); } 8751: inline QByteRef &operator=(char c) 8751: { if (i >= a.d->size) a.expand(i); else a.detach(); 8751: a.d->data()[i] = c; return *this; } 8751: inline QByteRef &operator=(const QByteRef &c) 8751: { if (i >= a.d->size) a.expand(i); else a.detach(); 8751: a.d->data()[i] = c.a.d->data()[c.i]; return *this; } 8751: inline bool operator==(char c) const 8751: { return a.d->data()[i] == c; } 8751: inline bool operator!=(char c) const 8751: { return a.d->data()[i] != c; } 8751: inline bool operator>(char c) const 8751: { return a.d->data()[i] > c; } 8751: inline bool operator>=(char c) const 8751: { return a.d->data()[i] >= c; } 8751: inline bool operator<(char c) const 8751: { return a.d->data()[i] < c; } 8751: inline bool operator<=(char c) const 8751: { return a.d->data()[i] <= c; } 8751: }; 8751: 8751: inline QByteRef QByteArray::operator[](int i) 8751: { do { } while ((false) && (i >= 0)); return QByteRef(*this, i); } 8751: inline QByteRef QByteArray::operator[](uint i) 8751: { return QByteRef(*this, i); } 8751: inline QByteArray::iterator QByteArray::begin() 8751: { detach(); return d->data(); } 8751: inline QByteArray::const_iterator QByteArray::begin() const 8751: { return d->data(); } 8751: inline QByteArray::const_iterator QByteArray::cbegin() const 8751: { return d->data(); } 8751: inline QByteArray::const_iterator QByteArray::constBegin() const 8751: { return d->data(); } 8751: inline QByteArray::iterator QByteArray::end() 8751: { detach(); return d->data() + d->size; } 8751: inline QByteArray::const_iterator QByteArray::end() const 8751: { return d->data() + d->size; } 8751: inline QByteArray::const_iterator QByteArray::cend() const 8751: { return d->data() + d->size; } 8751: inline QByteArray::const_iterator QByteArray::constEnd() const 8751: { return d->data() + d->size; } 8751: inline QByteArray &QByteArray::append(int n, char ch) 8751: { return insert(d->size, n, ch); } 8751: inline QByteArray &QByteArray::prepend(int n, char ch) 8751: { return insert(0, n, ch); } 8751: inline QByteArray &QByteArray::operator+=(char c) 8751: { return append(c); } 8751: inline QByteArray &QByteArray::operator+=(const char *s) 8751: { return append(s); } 8751: inline QByteArray &QByteArray::operator+=(const QByteArray &a) 8751: { return append(a); } 8751: inline void QByteArray::push_back(char c) 8751: { append(c); } 8751: inline void QByteArray::push_back(const char *c) 8751: { append(c); } 8751: inline void QByteArray::push_back(const QByteArray &a) 8751: { append(a); } 8751: inline void QByteArray::push_front(char c) 8751: { prepend(c); } 8751: inline void QByteArray::push_front(const char *c) 8751: { prepend(c); } 8751: inline void QByteArray::push_front(const QByteArray &a) 8751: { prepend(a); } 8751: inline bool QByteArray::contains(const QByteArray &a) const 8751: { return indexOf(a) != -1; } 8751: inline bool QByteArray::contains(char c) const 8751: { return indexOf(c) != -1; } 8751: inline bool operator==(const QByteArray &a1, const QByteArray &a2) noexcept 8751: { return (a1.size() == a2.size()) && (memcmp(a1.constData(), a2.constData(), a1.size())==0); } 8751: inline bool operator==(const QByteArray &a1, const char *a2) noexcept 8751: { return a2 ? qstrcmp(a1,a2) == 0 : a1.isEmpty(); } 8751: inline bool operator==(const char *a1, const QByteArray &a2) noexcept 8751: { return a1 ? qstrcmp(a1,a2) == 0 : a2.isEmpty(); } 8751: inline bool operator!=(const QByteArray &a1, const QByteArray &a2) noexcept 8751: { return !(a1==a2); } 8751: inline bool operator!=(const QByteArray &a1, const char *a2) noexcept 8751: { return a2 ? qstrcmp(a1,a2) != 0 : !a1.isEmpty(); } 8751: inline bool operator!=(const char *a1, const QByteArray &a2) noexcept 8751: { return a1 ? qstrcmp(a1,a2) != 0 : !a2.isEmpty(); } 8751: inline bool operator<(const QByteArray &a1, const QByteArray &a2) noexcept 8751: { return qstrcmp(a1, a2) < 0; } 8751: inline bool operator<(const QByteArray &a1, const char *a2) noexcept 8751: { return qstrcmp(a1, a2) < 0; } 8751: inline bool operator<(const char *a1, const QByteArray &a2) noexcept 8751: { return qstrcmp(a1, a2) < 0; } 8751: inline bool operator<=(const QByteArray &a1, const QByteArray &a2) noexcept 8751: { return qstrcmp(a1, a2) <= 0; } 8751: inline bool operator<=(const QByteArray &a1, const char *a2) noexcept 8751: { return qstrcmp(a1, a2) <= 0; } 8751: inline bool operator<=(const char *a1, const QByteArray &a2) noexcept 8751: { return qstrcmp(a1, a2) <= 0; } 8751: inline bool operator>(const QByteArray &a1, const QByteArray &a2) noexcept 8751: { return qstrcmp(a1, a2) > 0; } 8751: inline bool operator>(const QByteArray &a1, const char *a2) noexcept 8751: { return qstrcmp(a1, a2) > 0; } 8751: inline bool operator>(const char *a1, const QByteArray &a2) noexcept 8751: { return qstrcmp(a1, a2) > 0; } 8751: inline bool operator>=(const QByteArray &a1, const QByteArray &a2) noexcept 8751: { return qstrcmp(a1, a2) >= 0; } 8751: inline bool operator>=(const QByteArray &a1, const char *a2) noexcept 8751: { return qstrcmp(a1, a2) >= 0; } 8751: inline bool operator>=(const char *a1, const QByteArray &a2) noexcept 8751: { return qstrcmp(a1, a2) >= 0; } 8751: # 642 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 3 4 8751: inline bool QByteArray::contains(const char *c) const 8751: { return indexOf(c) != -1; } 8751: inline QByteArray &QByteArray::replace(char before, const char *c) 8751: { return replace(&before, 1, c, qstrlen(c)); } 8751: inline QByteArray &QByteArray::replace(const QByteArray &before, const char *c) 8751: { return replace(before.constData(), before.size(), c, qstrlen(c)); } 8751: inline QByteArray &QByteArray::replace(const char *before, const char *after) 8751: { return replace(before, qstrlen(before), after, qstrlen(after)); } 8751: 8751: inline QByteArray &QByteArray::setNum(short n, int base) 8751: { return base == 10 ? setNum(qlonglong(n), base) : setNum(qulonglong(ushort(n)), base); } 8751: inline QByteArray &QByteArray::setNum(ushort n, int base) 8751: { return setNum(qulonglong(n), base); } 8751: inline QByteArray &QByteArray::setNum(int n, int base) 8751: { return base == 10 ? setNum(qlonglong(n), base) : setNum(qulonglong(uint(n)), base); } 8751: inline QByteArray &QByteArray::setNum(uint n, int base) 8751: { return setNum(qulonglong(n), base); } 8751: inline QByteArray &QByteArray::setNum(float n, char f, int prec) 8751: { return setNum(double(n),f,prec); } 8751: 8751: inline std::string QByteArray::toStdString() const 8751: { return std::string(constData(), length()); } 8751: 8751: inline QByteArray QByteArray::fromStdString(const std::string &s) 8751: { return QByteArray(s.data(), int(s.size())); } 8751: 8751: 8751: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QByteArray &); 8751: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QByteArray &); 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) QByteArray qCompress(const uchar* data, int nbytes, int compressionLevel = -1); 8751: __attribute__((visibility("default"))) QByteArray qUncompress(const uchar* data, int nbytes); 8751: inline QByteArray qCompress(const QByteArray& data, int compressionLevel = -1) 8751: { return qCompress(reinterpret_cast(data.constData()), data.size(), compressionLevel); } 8751: inline QByteArray qUncompress(const QByteArray& data) 8751: { return qUncompress(reinterpret_cast(data.constData()), data.size()); } 8751: 8751: 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QByteArray)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QByteArray >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QByteArray) }; static inline const char *name() { return "QByteArray"; } }; inline void swap(QByteArray &value1, QByteArray &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 1 3 4 8751: # 688 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearray.h" 2 3 4 8751: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 2 3 4 8751: # 76 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: 8751: 8751: class QCharRef; 8751: class QRegExp; 8751: class QRegularExpression; 8751: class QRegularExpressionMatch; 8751: class QString; 8751: class QStringList; 8751: class QTextCodec; 8751: class QStringRef; 8751: template class QVector; 8751: 8751: class QLatin1String 8751: { 8751: public: 8751: constexpr inline QLatin1String() noexcept : m_size(0), m_data(nullptr) {} 8751: constexpr inline explicit QLatin1String(const char *s) noexcept : m_size(s ? int(strlen(s)) : 0), m_data(s) {} 8751: constexpr inline explicit QLatin1String(const char *s, int sz) noexcept : m_size(sz), m_data(s) {} 8751: inline explicit QLatin1String(const QByteArray &s) noexcept : m_size(int(qstrnlen(s.constData(), s.size()))), m_data(s.constData()) {} 8751: 8751: constexpr const char *latin1() const noexcept { return m_data; } 8751: constexpr int size() const noexcept { return m_size; } 8751: constexpr const char *data() const noexcept { return m_data; } 8751: 8751: constexpr QLatin1Char at(int i) const { return QLatin1Char(m_data[i]); } 8751: constexpr QLatin1Char operator[](int i) const { return at(i); } 8751: 8751: constexpr QLatin1String mid(int pos) const 8751: { return QLatin1String(m_data + pos, m_size - pos); } 8751: constexpr QLatin1String mid(int pos, int n) const 8751: { return QLatin1String(m_data + pos, n); } 8751: constexpr QLatin1String left(int n) const 8751: { return QLatin1String(m_data, n); } 8751: constexpr QLatin1String right(int n) const 8751: { return QLatin1String(m_data + m_size - n, n); } 8751: 8751: inline bool operator==(const QString &s) const noexcept; 8751: inline bool operator!=(const QString &s) const noexcept; 8751: inline bool operator>(const QString &s) const noexcept; 8751: inline bool operator<(const QString &s) const noexcept; 8751: inline bool operator>=(const QString &s) const noexcept; 8751: inline bool operator<=(const QString &s) const noexcept; 8751: # 135 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: private: 8751: int m_size; 8751: const char *m_data; 8751: }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QLatin1String)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QLatin1String >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QLatin1String) }; static inline const char *name() { return "QLatin1String"; } }; 8751: 8751: 8751: typedef QLatin1String QLatin1Literal; 8751: 8751: 8751: typedef QTypedArrayData QStringData; 8751: # 166 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: typedef char16_t qunicodechar; 8751: 8751: 8751: 8751: static_assert(bool(sizeof(qunicodechar) == 2), "qunicodechar must typedef an integral type of size 2") 8751: ; 8751: # 194 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: template 8751: struct QStaticStringData 8751: { 8751: QArrayData str; 8751: qunicodechar data[N + 1]; 8751: 8751: QStringData *data_ptr() const 8751: { 8751: do { } while ((false) && (str.ref.isStatic())); 8751: return const_cast(static_cast(&str)); 8751: } 8751: }; 8751: 8751: struct QStringDataPtr 8751: { 8751: QStringData *ptr; 8751: }; 8751: 8751: class __attribute__((visibility("default"))) QString 8751: { 8751: public: 8751: typedef QStringData Data; 8751: 8751: inline QString() noexcept; 8751: explicit QString(const QChar *unicode, int size = -1); 8751: QString(QChar c); 8751: QString(int size, QChar c); 8751: inline QString(QLatin1String latin1); 8751: inline QString(const QString &) noexcept; 8751: inline ~QString(); 8751: QString &operator=(QChar c); 8751: QString &operator=(const QString &) noexcept; 8751: QString &operator=(QLatin1String latin1); 8751: 8751: inline QString(QString && other) noexcept : d(other.d) { other.d = Data::sharedNull(); } 8751: inline QString &operator=(QString &&other) noexcept 8751: { qSwap(d, other.d); return *this; } 8751: 8751: inline void swap(QString &other) noexcept { qSwap(d, other.d); } 8751: inline int size() const { return d->size; } 8751: inline int count() const { return d->size; } 8751: inline int length() const; 8751: inline bool isEmpty() const; 8751: void resize(int size); 8751: void resize(int size, QChar fillChar); 8751: 8751: QString &fill(QChar c, int size = -1); 8751: void truncate(int pos); 8751: void chop(int n); 8751: 8751: int capacity() const; 8751: inline void reserve(int size); 8751: inline void squeeze(); 8751: 8751: inline const QChar *unicode() const; 8751: inline QChar *data(); 8751: inline const QChar *data() const; 8751: inline const QChar *constData() const; 8751: 8751: inline void detach(); 8751: inline bool isDetached() const; 8751: inline bool isSharedWith(const QString &other) const { return d == other.d; } 8751: void clear(); 8751: 8751: inline const QChar at(int i) const; 8751: const QChar operator[](int i) const; 8751: QCharRef operator[](int i); 8751: const QChar operator[](uint i) const; 8751: QCharRef operator[](uint i); 8751: 8751: [[nodiscard]] QString arg(qlonglong a, int fieldwidth=0, int base=10, 8751: QChar fillChar = QLatin1Char(' ')) const; 8751: [[nodiscard]] QString arg(qulonglong a, int fieldwidth=0, int base=10, 8751: QChar fillChar = QLatin1Char(' ')) const; 8751: [[nodiscard]] QString arg(long a, int fieldwidth=0, int base=10, 8751: QChar fillChar = QLatin1Char(' ')) const; 8751: [[nodiscard]] QString arg(ulong a, int fieldwidth=0, int base=10, 8751: QChar fillChar = QLatin1Char(' ')) const; 8751: [[nodiscard]] QString arg(int a, int fieldWidth = 0, int base = 10, 8751: QChar fillChar = QLatin1Char(' ')) const; 8751: [[nodiscard]] QString arg(uint a, int fieldWidth = 0, int base = 10, 8751: QChar fillChar = QLatin1Char(' ')) const; 8751: [[nodiscard]] QString arg(short a, int fieldWidth = 0, int base = 10, 8751: QChar fillChar = QLatin1Char(' ')) const; 8751: [[nodiscard]] QString arg(ushort a, int fieldWidth = 0, int base = 10, 8751: QChar fillChar = QLatin1Char(' ')) const; 8751: [[nodiscard]] QString arg(double a, int fieldWidth = 0, char fmt = 'g', int prec = -1, 8751: QChar fillChar = QLatin1Char(' ')) const; 8751: [[nodiscard]] QString arg(char a, int fieldWidth = 0, 8751: QChar fillChar = QLatin1Char(' ')) const; 8751: [[nodiscard]] QString arg(QChar a, int fieldWidth = 0, 8751: QChar fillChar = QLatin1Char(' ')) const; 8751: [[nodiscard]] QString arg(const QString &a, int fieldWidth = 0, 8751: QChar fillChar = QLatin1Char(' ')) const; 8751: [[nodiscard]] QString arg(const QString &a1, const QString &a2) const; 8751: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3) const; 8751: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8751: const QString &a4) const; 8751: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8751: const QString &a4, const QString &a5) const; 8751: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8751: const QString &a4, const QString &a5, const QString &a6) const; 8751: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8751: const QString &a4, const QString &a5, const QString &a6, 8751: const QString &a7) const; 8751: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8751: const QString &a4, const QString &a5, const QString &a6, 8751: const QString &a7, const QString &a8) const; 8751: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8751: const QString &a4, const QString &a5, const QString &a6, 8751: const QString &a7, const QString &a8, const QString &a9) const; 8751: 8751: QString &vsprintf(const char *format, va_list ap) __attribute__((format(printf, (2), (0)))); 8751: QString &sprintf(const char *format, ...) __attribute__((format(printf, (2), (3)))); 8751: static QString vasprintf(const char *format, va_list ap) __attribute__((format(printf, (1), (0)))); 8751: static QString asprintf(const char *format, ...) __attribute__((format(printf, (1), (2)))); 8751: 8751: int indexOf(QChar c, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int indexOf(const QString &s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int indexOf(QLatin1String s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int indexOf(const QStringRef &s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int lastIndexOf(QChar c, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int lastIndexOf(const QString &s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int lastIndexOf(QLatin1String s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int lastIndexOf(const QStringRef &s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: 8751: inline bool contains(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: inline bool contains(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: inline bool contains(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: inline bool contains(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int count(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int count(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int count(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: 8751: 8751: int indexOf(const QRegExp &, int from = 0) const; 8751: int lastIndexOf(const QRegExp &, int from = -1) const; 8751: inline bool contains(const QRegExp &rx) const { return indexOf(rx) != -1; } 8751: int count(const QRegExp &) const; 8751: 8751: int indexOf(QRegExp &, int from = 0) const; 8751: int lastIndexOf(QRegExp &, int from = -1) const; 8751: inline bool contains(QRegExp &rx) const { return indexOf(rx) != -1; } 8751: 8751: 8751: 8751: int indexOf(const QRegularExpression &re, int from = 0) const; 8751: int indexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const; 8751: int lastIndexOf(const QRegularExpression &re, int from = -1) const; 8751: int lastIndexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const; 8751: bool contains(const QRegularExpression &re) const; 8751: bool contains(const QRegularExpression &re, QRegularExpressionMatch *match) const; 8751: int count(const QRegularExpression &re) const; 8751: 8751: 8751: enum SectionFlag { 8751: SectionDefault = 0x00, 8751: SectionSkipEmpty = 0x01, 8751: SectionIncludeLeadingSep = 0x02, 8751: SectionIncludeTrailingSep = 0x04, 8751: SectionCaseInsensitiveSeps = 0x08 8751: }; 8751: typedef QFlags SectionFlags; 8751: 8751: QString section(QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8751: QString section(const QString &in_sep, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8751: 8751: QString section(const QRegExp ®, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8751: 8751: 8751: QString section(const QRegularExpression &re, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8751: 8751: [[nodiscard]] QString left(int n) const; 8751: [[nodiscard]] QString right(int n) const; 8751: [[nodiscard]] QString mid(int position, int n = -1) const; 8751: [[nodiscard]] QStringRef leftRef(int n) const; 8751: [[nodiscard]] QStringRef rightRef(int n) const; 8751: [[nodiscard]] QStringRef midRef(int position, int n = -1) const; 8751: 8751: bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: bool startsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: bool startsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: bool startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: bool endsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: bool endsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: bool endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: 8751: [[nodiscard]] QString leftJustified(int width, QChar fill = QLatin1Char(' '), bool trunc = false) const; 8751: [[nodiscard]] QString rightJustified(int width, QChar fill = QLatin1Char(' '), bool trunc = false) const; 8751: # 393 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: [[nodiscard]] inline __attribute__((always_inline)) QString toLower() const & 8751: { return toLower_helper(*this); } 8751: [[nodiscard]] inline __attribute__((always_inline)) QString toLower() && 8751: { return toLower_helper(*this); } 8751: [[nodiscard]] inline __attribute__((always_inline)) QString toUpper() const & 8751: { return toUpper_helper(*this); } 8751: [[nodiscard]] inline __attribute__((always_inline)) QString toUpper() && 8751: { return toUpper_helper(*this); } 8751: [[nodiscard]] inline __attribute__((always_inline)) QString toCaseFolded() const & 8751: { return toCaseFolded_helper(*this); } 8751: [[nodiscard]] inline __attribute__((always_inline)) QString toCaseFolded() && 8751: { return toCaseFolded_helper(*this); } 8751: [[nodiscard]] inline __attribute__((always_inline)) QString trimmed() const & 8751: { return trimmed_helper(*this); } 8751: [[nodiscard]] inline __attribute__((always_inline)) QString trimmed() && 8751: { return trimmed_helper(*this); } 8751: [[nodiscard]] inline __attribute__((always_inline)) QString simplified() const & 8751: { return simplified_helper(*this); } 8751: [[nodiscard]] inline __attribute__((always_inline)) QString simplified() && 8751: { return simplified_helper(*this); } 8751: # 423 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: [[nodiscard]] QString toHtmlEscaped() const; 8751: 8751: QString &insert(int i, QChar c); 8751: QString &insert(int i, const QChar *uc, int len); 8751: inline QString &insert(int i, const QString &s) { return insert(i, s.constData(), s.length()); } 8751: inline QString &insert(int i, const QStringRef &s); 8751: QString &insert(int i, QLatin1String s); 8751: QString &append(QChar c); 8751: QString &append(const QChar *uc, int len); 8751: QString &append(const QString &s); 8751: QString &append(const QStringRef &s); 8751: QString &append(QLatin1String s); 8751: inline QString &prepend(QChar c) { return insert(0, c); } 8751: inline QString &prepend(const QChar *uc, int len) { return insert(0, uc, len); } 8751: inline QString &prepend(const QString &s) { return insert(0, s); } 8751: inline QString &prepend(const QStringRef &s) { return insert(0, s); } 8751: inline QString &prepend(QLatin1String s) { return insert(0, s); } 8751: 8751: inline QString &operator+=(QChar c) { 8751: if (d->ref.isShared() || uint(d->size) + 2u > d->alloc) 8751: reallocData(uint(d->size) + 2u, true); 8751: d->data()[d->size++] = c.unicode(); 8751: d->data()[d->size] = '\0'; 8751: return *this; 8751: } 8751: 8751: inline QString &operator+=(QChar::SpecialCharacter c) { return append(QChar(c)); } 8751: inline QString &operator+=(const QString &s) { return append(s); } 8751: inline QString &operator+=(const QStringRef &s) { return append(s); } 8751: inline QString &operator+=(QLatin1String s) { return append(s); } 8751: 8751: QString &remove(int i, int len); 8751: QString &remove(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: QString &remove(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: QString &replace(int i, int len, QChar after); 8751: QString &replace(int i, int len, const QChar *s, int slen); 8751: QString &replace(int i, int len, const QString &after); 8751: QString &replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: QString &replace(const QChar *before, int blen, const QChar *after, int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: QString &replace(QLatin1String before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: QString &replace(QLatin1String before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: QString &replace(const QString &before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: QString &replace(const QString &before, const QString &after, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: QString &replace(QChar c, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: QString &replace(QChar c, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: 8751: QString &replace(const QRegExp &rx, const QString &after); 8751: inline QString &remove(const QRegExp &rx) 8751: { return replace(rx, QString()); } 8751: 8751: 8751: QString &replace(const QRegularExpression &re, const QString &after); 8751: inline QString &remove(const QRegularExpression &re) 8751: { return replace(re, QString()); } 8751: 8751: 8751: enum SplitBehavior { KeepEmptyParts, SkipEmptyParts }; 8751: 8751: [[nodiscard]] QStringList split(const QString &sep, SplitBehavior behavior = KeepEmptyParts, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: [[nodiscard]] QVector splitRef(const QString &sep, SplitBehavior behavior = KeepEmptyParts, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: [[nodiscard]] QStringList split(QChar sep, SplitBehavior behavior = KeepEmptyParts, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: [[nodiscard]] QVector splitRef(QChar sep, SplitBehavior behavior = KeepEmptyParts, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: 8751: [[nodiscard]] QStringList split(const QRegExp &sep, SplitBehavior behavior = KeepEmptyParts) const; 8751: [[nodiscard]] QVector splitRef(const QRegExp &sep, SplitBehavior behavior = KeepEmptyParts) const; 8751: 8751: 8751: [[nodiscard]] QStringList split(const QRegularExpression &sep, SplitBehavior behavior = KeepEmptyParts) const; 8751: [[nodiscard]] QVector splitRef(const QRegularExpression &sep, SplitBehavior behavior = KeepEmptyParts) const; 8751: 8751: enum NormalizationForm { 8751: NormalizationForm_D, 8751: NormalizationForm_C, 8751: NormalizationForm_KD, 8751: NormalizationForm_KC 8751: }; 8751: [[nodiscard]] QString normalized(NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const; 8751: 8751: [[nodiscard]] QString repeated(int times) const; 8751: 8751: const ushort *utf16() const; 8751: 8751: 8751: [[nodiscard]] QByteArray toLatin1() const & 8751: { return toLatin1_helper(*this); } 8751: [[nodiscard]] QByteArray toLatin1() && 8751: { return toLatin1_helper_inplace(*this); } 8751: [[nodiscard]] QByteArray toUtf8() const & 8751: { return toUtf8_helper(*this); } 8751: [[nodiscard]] QByteArray toUtf8() && 8751: { return toUtf8_helper(*this); } 8751: [[nodiscard]] QByteArray toLocal8Bit() const & 8751: { return toLocal8Bit_helper(isNull() ? nullptr : constData(), size()); } 8751: [[nodiscard]] QByteArray toLocal8Bit() && 8751: { return toLocal8Bit_helper(isNull() ? nullptr : constData(), size()); } 8751: 8751: 8751: 8751: 8751: 8751: [[nodiscard]] QVector toUcs4() const; 8751: 8751: 8751: static inline QString fromLatin1(const char *str, int size = -1) 8751: { 8751: QStringDataPtr dataPtr = { fromLatin1_helper(str, (str && size == -1) ? int(strlen(str)) : size) }; 8751: return QString(dataPtr); 8751: } 8751: static inline QString fromUtf8(const char *str, int size = -1) 8751: { 8751: return fromUtf8_helper(str, (str && size == -1) ? int(strlen(str)) : size); 8751: } 8751: static inline QString fromLocal8Bit(const char *str, int size = -1) 8751: { 8751: return fromLocal8Bit_helper(str, (str && size == -1) ? int(strlen(str)) : size); 8751: } 8751: static inline QString fromLatin1(const QByteArray &str) 8751: { return str.isNull() ? QString() : fromLatin1(str.data(), qstrnlen(str.constData(), str.size())); } 8751: static inline QString fromUtf8(const QByteArray &str) 8751: { return str.isNull() ? QString() : fromUtf8(str.data(), qstrnlen(str.constData(), str.size())); } 8751: static inline QString fromLocal8Bit(const QByteArray &str) 8751: { return str.isNull() ? QString() : fromLocal8Bit(str.data(), qstrnlen(str.constData(), str.size())); } 8751: static QString fromUtf16(const ushort *, int size = -1); 8751: static QString fromUcs4(const uint *, int size = -1); 8751: static QString fromRawData(const QChar *, int size); 8751: 8751: 8751: static QString fromUtf16(const char16_t *str, int size = -1) 8751: { return fromUtf16(reinterpret_cast(str), size); } 8751: static QString fromUcs4(const char32_t *str, int size = -1) 8751: { return fromUcs4(reinterpret_cast(str), size); } 8751: # 570 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: inline int toWCharArray(wchar_t *array) const; 8751: [[nodiscard]] static inline QString fromWCharArray(const wchar_t *string, int size = -1); 8751: 8751: QString &setRawData(const QChar *unicode, int size); 8751: QString &setUnicode(const QChar *unicode, int size); 8751: inline QString &setUtf16(const ushort *utf16, int size); 8751: 8751: int compare(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8751: int compare(QLatin1String other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8751: 8751: static inline int compare(const QString &s1, const QString &s2, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept 8751: { return s1.compare(s2, cs); } 8751: 8751: static inline int compare(const QString &s1, QLatin1String s2, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept 8751: { return s1.compare(s2, cs); } 8751: static inline int compare(QLatin1String s1, const QString &s2, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept 8751: { return -s2.compare(s1, cs); } 8751: 8751: inline int compare(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8751: static int compare(const QString &s1, const QStringRef &s2, 8751: Qt::CaseSensitivity = Qt::CaseSensitive) noexcept; 8751: 8751: int localeAwareCompare(const QString& s) const; 8751: static int localeAwareCompare(const QString& s1, const QString& s2) 8751: { return s1.localeAwareCompare(s2); } 8751: 8751: int localeAwareCompare(const QStringRef &s) const; 8751: static int localeAwareCompare(const QString& s1, const QStringRef& s2); 8751: 8751: 8751: short toShort(bool *ok=nullptr, int base=10) const; 8751: ushort toUShort(bool *ok=nullptr, int base=10) const; 8751: int toInt(bool *ok=nullptr, int base=10) const; 8751: uint toUInt(bool *ok=nullptr, int base=10) const; 8751: long toLong(bool *ok=nullptr, int base=10) const; 8751: ulong toULong(bool *ok=nullptr, int base=10) const; 8751: qlonglong toLongLong(bool *ok=nullptr, int base=10) const; 8751: qulonglong toULongLong(bool *ok=nullptr, int base=10) const; 8751: float toFloat(bool *ok=nullptr) const; 8751: double toDouble(bool *ok=nullptr) const; 8751: 8751: QString &setNum(short, int base=10); 8751: QString &setNum(ushort, int base=10); 8751: QString &setNum(int, int base=10); 8751: QString &setNum(uint, int base=10); 8751: QString &setNum(long, int base=10); 8751: QString &setNum(ulong, int base=10); 8751: QString &setNum(qlonglong, int base=10); 8751: QString &setNum(qulonglong, int base=10); 8751: QString &setNum(float, char f='g', int prec=6); 8751: QString &setNum(double, char f='g', int prec=6); 8751: 8751: static QString number(int, int base=10); 8751: static QString number(uint, int base=10); 8751: static QString number(long, int base=10); 8751: static QString number(ulong, int base=10); 8751: static QString number(qlonglong, int base=10); 8751: static QString number(qulonglong, int base=10); 8751: static QString number(double, char f='g', int prec=6); 8751: 8751: friend __attribute__((visibility("default"))) bool operator==(const QString &s1, const QString &s2) noexcept; 8751: friend __attribute__((visibility("default"))) bool operator<(const QString &s1, const QString &s2) noexcept; 8751: friend inline bool operator>(const QString &s1, const QString &s2) noexcept { return s2 < s1; } 8751: friend inline bool operator!=(const QString &s1, const QString &s2) noexcept { return !(s1 == s2); } 8751: friend inline bool operator<=(const QString &s1, const QString &s2) noexcept { return !(s1 > s2); } 8751: friend inline bool operator>=(const QString &s1, const QString &s2) noexcept { return !(s1 < s2); } 8751: 8751: bool operator==(QLatin1String s) const noexcept; 8751: bool operator<(QLatin1String s) const noexcept; 8751: bool operator>(QLatin1String s) const noexcept; 8751: inline bool operator!=(QLatin1String s) const noexcept { return !operator==(s); } 8751: inline bool operator<=(QLatin1String s) const noexcept { return !operator>(s); } 8751: inline bool operator>=(QLatin1String s) const noexcept { return !operator<(s); } 8751: # 720 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: typedef QChar *iterator; 8751: typedef const QChar *const_iterator; 8751: typedef iterator Iterator; 8751: typedef const_iterator ConstIterator; 8751: typedef std::reverse_iterator reverse_iterator; 8751: typedef std::reverse_iterator const_reverse_iterator; 8751: inline iterator begin(); 8751: inline const_iterator begin() const; 8751: inline const_iterator cbegin() const; 8751: inline const_iterator constBegin() const; 8751: inline iterator end(); 8751: inline const_iterator end() const; 8751: inline const_iterator cend() const; 8751: inline const_iterator constEnd() const; 8751: reverse_iterator rbegin() { return reverse_iterator(end()); } 8751: reverse_iterator rend() { return reverse_iterator(begin()); } 8751: const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8751: const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8751: const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); } 8751: const_reverse_iterator crend() const { return const_reverse_iterator(begin()); } 8751: 8751: 8751: typedef int size_type; 8751: typedef qptrdiff difference_type; 8751: typedef const QChar & const_reference; 8751: typedef QChar & reference; 8751: typedef QChar *pointer; 8751: typedef const QChar *const_pointer; 8751: typedef QChar value_type; 8751: inline void push_back(QChar c) { append(c); } 8751: inline void push_back(const QString &s) { append(s); } 8751: inline void push_front(QChar c) { prepend(c); } 8751: inline void push_front(const QString &s) { prepend(s); } 8751: 8751: static inline QString fromStdString(const std::string &s); 8751: inline std::string toStdString() const; 8751: static inline QString fromStdWString(const std::wstring &s); 8751: inline std::wstring toStdWString() const; 8751: 8751: 8751: static inline QString fromStdU16String(const std::u16string &s); 8751: inline std::u16string toStdU16String() const; 8751: static inline QString fromStdU32String(const std::u32string &s); 8751: inline std::u32string toStdU32String() const; 8751: # 774 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: struct Null { }; 8751: 8751: static const Null null; 8751: inline QString(const Null &): d(Data::sharedNull()) {} 8751: inline QString &operator=(const Null &) { *this = QString(); return *this; } 8751: 8751: inline bool isNull() const { return d == Data::sharedNull(); } 8751: 8751: 8751: bool isSimpleText() const; 8751: bool isRightToLeft() const; 8751: 8751: QString(int size, Qt::Initialization); 8751: constexpr inline QString(QStringDataPtr dd) : d(dd.ptr) {} 8751: 8751: private: 8751: 8751: QString &operator+=(const char *s); 8751: QString &operator+=(const QByteArray &s); 8751: QString(const char *ch); 8751: QString(const QByteArray &a); 8751: QString &operator=(const char *ch); 8751: QString &operator=(const QByteArray &a); 8751: 8751: 8751: Data *d; 8751: 8751: friend inline bool operator==(QChar, const QString &) noexcept; 8751: friend inline bool operator< (QChar, const QString &) noexcept; 8751: friend inline bool operator> (QChar, const QString &) noexcept; 8751: friend inline bool operator==(QChar, const QStringRef &) noexcept; 8751: friend inline bool operator< (QChar, const QStringRef &) noexcept; 8751: friend inline bool operator> (QChar, const QStringRef &) noexcept; 8751: friend inline bool operator==(QChar, QLatin1String) noexcept; 8751: friend inline bool operator< (QChar, QLatin1String) noexcept; 8751: friend inline bool operator> (QChar, QLatin1String) noexcept; 8751: 8751: void reallocData(uint alloc, bool grow = false); 8751: 8751: void expand(int i); 8751: 8751: QString multiArg(int numArgs, const QString **args) const; 8751: static int compare_helper(const QChar *data1, int length1, 8751: const QChar *data2, int length2, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept; 8751: static int compare_helper(const QChar *data1, int length1, 8751: const char *data2, int length2, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: static int compare_helper(const QChar *data1, int length1, 8751: QLatin1String s2, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept; 8751: static int localeAwareCompare_helper(const QChar *data1, int length1, 8751: const QChar *data2, int length2); 8751: static QString toLower_helper(const QString &str); 8751: static QString toLower_helper(QString &str); 8751: static QString toUpper_helper(const QString &str); 8751: static QString toUpper_helper(QString &str); 8751: static QString toCaseFolded_helper(const QString &str); 8751: static QString toCaseFolded_helper(QString &str); 8751: static QString trimmed_helper(const QString &str); 8751: static QString trimmed_helper(QString &str); 8751: static QString simplified_helper(const QString &str); 8751: static QString simplified_helper(QString &str); 8751: static Data *fromLatin1_helper(const char *str, int size = -1); 8751: static Data *fromAscii_helper(const char *str, int size = -1); 8751: static QString fromUtf8_helper(const char *str, int size); 8751: static QString fromLocal8Bit_helper(const char *, int size); 8751: static QByteArray toLatin1_helper(const QString &); 8751: static QByteArray toLatin1_helper(const QChar *data, int size); 8751: static QByteArray toLatin1_helper_inplace(QString &); 8751: static QByteArray toUtf8_helper(const QString &); 8751: static QByteArray toLocal8Bit_helper(const QChar *data, int size); 8751: static int toUcs4_helper(const ushort *uc, int length, uint *out); 8751: static qlonglong toIntegral_helper(const QChar *data, int len, bool *ok, int base); 8751: static qulonglong toIntegral_helper(const QChar *data, uint len, bool *ok, int base); 8751: void replace_helper(uint *indices, int nIndices, int blen, const QChar *after, int alen); 8751: friend class QCharRef; 8751: friend class QTextCodec; 8751: friend class QStringRef; 8751: friend class QByteArray; 8751: friend class QCollator; 8751: friend struct QAbstractConcatenable; 8751: 8751: template static 8751: T toIntegral_helper(const QChar *data, int len, bool *ok, int base) 8751: { 8751: 8751: const bool isUnsigned = T(0) < T(-1); 8751: typedef typename QtPrivate::QConditional::Type Int64; 8751: typedef typename QtPrivate::QConditional::Type Int32; 8751: 8751: 8751: Int64 val = toIntegral_helper(data, Int32(len), ok, base); 8751: if (T(val) != val) { 8751: if (ok) 8751: *ok = false; 8751: val = 0; 8751: } 8751: return T(val); 8751: } 8751: 8751: public: 8751: typedef Data * DataPtr; 8751: inline DataPtr &data_ptr() { return d; } 8751: }; 8751: 8751: inline QString::QString(QLatin1String aLatin1) : d(fromLatin1_helper(aLatin1.latin1(), aLatin1.size())) 8751: { } 8751: inline int QString::length() const 8751: { return d->size; } 8751: inline const QChar QString::at(int i) const 8751: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8751: inline const QChar QString::operator[](int i) const 8751: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8751: inline const QChar QString::operator[](uint i) const 8751: { do { } while ((false) && (i < uint(size()))); return d->data()[i]; } 8751: inline bool QString::isEmpty() const 8751: { return d->size == 0; } 8751: inline const QChar *QString::unicode() const 8751: { return reinterpret_cast(d->data()); } 8751: inline const QChar *QString::data() const 8751: { return reinterpret_cast(d->data()); } 8751: inline QChar *QString::data() 8751: { detach(); return reinterpret_cast(d->data()); } 8751: inline const QChar *QString::constData() const 8751: { return reinterpret_cast(d->data()); } 8751: inline void QString::detach() 8751: { if (d->ref.isShared() || (d->offset != sizeof(QStringData))) reallocData(uint(d->size) + 1u); } 8751: inline bool QString::isDetached() const 8751: { return !d->ref.isShared(); } 8751: inline void QString::clear() 8751: { if (!isNull()) *this = QString(); } 8751: inline QString::QString(const QString &other) noexcept : d(other.d) 8751: { do { } while ((false) && (&other != this)); d->ref.ref(); } 8751: inline int QString::capacity() const 8751: { return d->alloc ? d->alloc - 1 : 0; } 8751: inline QString &QString::setNum(short n, int base) 8751: { return setNum(qlonglong(n), base); } 8751: inline QString &QString::setNum(ushort n, int base) 8751: { return setNum(qulonglong(n), base); } 8751: inline QString &QString::setNum(int n, int base) 8751: { return setNum(qlonglong(n), base); } 8751: inline QString &QString::setNum(uint n, int base) 8751: { return setNum(qulonglong(n), base); } 8751: inline QString &QString::setNum(long n, int base) 8751: { return setNum(qlonglong(n), base); } 8751: inline QString &QString::setNum(ulong n, int base) 8751: { return setNum(qulonglong(n), base); } 8751: inline QString &QString::setNum(float n, char f, int prec) 8751: { return setNum(double(n),f,prec); } 8751: inline QString QString::arg(int a, int fieldWidth, int base, QChar fillChar) const 8751: { return arg(qlonglong(a), fieldWidth, base, fillChar); } 8751: inline QString QString::arg(uint a, int fieldWidth, int base, QChar fillChar) const 8751: { return arg(qulonglong(a), fieldWidth, base, fillChar); } 8751: inline QString QString::arg(long a, int fieldWidth, int base, QChar fillChar) const 8751: { return arg(qlonglong(a), fieldWidth, base, fillChar); } 8751: inline QString QString::arg(ulong a, int fieldWidth, int base, QChar fillChar) const 8751: { return arg(qulonglong(a), fieldWidth, base, fillChar); } 8751: inline QString QString::arg(short a, int fieldWidth, int base, QChar fillChar) const 8751: { return arg(qlonglong(a), fieldWidth, base, fillChar); } 8751: inline QString QString::arg(ushort a, int fieldWidth, int base, QChar fillChar) const 8751: { return arg(qulonglong(a), fieldWidth, base, fillChar); } 8751: inline QString QString::arg(const QString &a1, const QString &a2) const 8751: { const QString *args[2] = { &a1, &a2 }; return multiArg(2, args); } 8751: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3) const 8751: { const QString *args[3] = { &a1, &a2, &a3 }; return multiArg(3, args); } 8751: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8751: const QString &a4) const 8751: { const QString *args[4] = { &a1, &a2, &a3, &a4 }; return multiArg(4, args); } 8751: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8751: const QString &a4, const QString &a5) const 8751: { const QString *args[5] = { &a1, &a2, &a3, &a4, &a5 }; return multiArg(5, args); } 8751: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8751: const QString &a4, const QString &a5, const QString &a6) const 8751: { const QString *args[6] = { &a1, &a2, &a3, &a4, &a5, &a6 }; return multiArg(6, args); } 8751: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8751: const QString &a4, const QString &a5, const QString &a6, 8751: const QString &a7) const 8751: { const QString *args[7] = { &a1, &a2, &a3, &a4, &a5, &a6, &a7 }; return multiArg(7, args); } 8751: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8751: const QString &a4, const QString &a5, const QString &a6, 8751: const QString &a7, const QString &a8) const 8751: { const QString *args[8] = { &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8 }; return multiArg(8, args); } 8751: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8751: const QString &a4, const QString &a5, const QString &a6, 8751: const QString &a7, const QString &a8, const QString &a9) const 8751: { const QString *args[9] = { &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, &a9 }; return multiArg(9, args); } 8751: 8751: inline QString QString::section(QChar asep, int astart, int aend, SectionFlags aflags) const 8751: { return section(QString(asep), astart, aend, aflags); } 8751: 8751: 8751: # 965 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: #pragma GCC diagnostic push 8751: # 965 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: 8751: 8751: 8751: 8751: inline int QString::toWCharArray(wchar_t *array) const 8751: { 8751: if (sizeof(wchar_t) == sizeof(QChar)) { 8751: memcpy(array, d->data(), sizeof(QChar) * size()); 8751: return size(); 8751: } else { 8751: return toUcs4_helper(d->data(), size(), reinterpret_cast(array)); 8751: } 8751: } 8751: 8751: 8751: # 979 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: #pragma GCC diagnostic pop 8751: # 979 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: 8751: 8751: inline QString QString::fromWCharArray(const wchar_t *string, int size) 8751: { 8751: return sizeof(wchar_t) == sizeof(QChar) ? fromUtf16(reinterpret_cast(string), size) 8751: : fromUcs4(reinterpret_cast(string), size); 8751: } 8751: 8751: 8751: class __attribute__((visibility("default"))) QCharRef { 8751: QString &s; 8751: int i; 8751: inline QCharRef(QString &str, int idx) 8751: : s(str),i(idx) {} 8751: friend class QString; 8751: public: 8751: 8751: 8751: 8751: 8751: inline operator QChar() const 8751: { return i < s.d->size ? s.d->data()[i] : 0; } 8751: inline QCharRef &operator=(QChar c) 8751: { if (i >= s.d->size) s.resize(i + 1, QLatin1Char(' ')); else s.detach(); 8751: s.d->data()[i] = c.unicode(); return *this; } 8751: # 1012 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: inline QCharRef &operator=(const QCharRef &c) { return operator=(QChar(c)); } 8751: inline QCharRef &operator=(ushort rc) { return operator=(QChar(rc)); } 8751: inline QCharRef &operator=(short rc) { return operator=(QChar(rc)); } 8751: inline QCharRef &operator=(uint rc) { return operator=(QChar(rc)); } 8751: inline QCharRef &operator=(int rc) { return operator=(QChar(rc)); } 8751: 8751: 8751: inline bool isNull() const { return QChar(*this).isNull(); } 8751: inline bool isPrint() const { return QChar(*this).isPrint(); } 8751: inline bool isPunct() const { return QChar(*this).isPunct(); } 8751: inline bool isSpace() const { return QChar(*this).isSpace(); } 8751: inline bool isMark() const { return QChar(*this).isMark(); } 8751: inline bool isLetter() const { return QChar(*this).isLetter(); } 8751: inline bool isNumber() const { return QChar(*this).isNumber(); } 8751: inline bool isLetterOrNumber() { return QChar(*this).isLetterOrNumber(); } 8751: inline bool isDigit() const { return QChar(*this).isDigit(); } 8751: inline bool isLower() const { return QChar(*this).isLower(); } 8751: inline bool isUpper() const { return QChar(*this).isUpper(); } 8751: inline bool isTitleCase() const { return QChar(*this).isTitleCase(); } 8751: 8751: inline int digitValue() const { return QChar(*this).digitValue(); } 8751: QChar toLower() const { return QChar(*this).toLower(); } 8751: QChar toUpper() const { return QChar(*this).toUpper(); } 8751: QChar toTitleCase () const { return QChar(*this).toTitleCase(); } 8751: 8751: QChar::Category category() const { return QChar(*this).category(); } 8751: QChar::Direction direction() const { return QChar(*this).direction(); } 8751: QChar::JoiningType joiningType() const { return QChar(*this).joiningType(); } 8751: 8751: QChar::Joining joining() const 8751: { 8751: switch (QChar(*this).joiningType()) { 8751: case QChar::Joining_Causing: return QChar::Center; 8751: case QChar::Joining_Dual: return QChar::Dual; 8751: case QChar::Joining_Right: return QChar::Right; 8751: case QChar::Joining_None: 8751: case QChar::Joining_Left: 8751: case QChar::Joining_Transparent: 8751: default: return QChar::OtherJoining; 8751: } 8751: } 8751: 8751: bool hasMirrored() const { return QChar(*this).hasMirrored(); } 8751: QChar mirroredChar() const { return QChar(*this).mirroredChar(); } 8751: QString decomposition() const { return QChar(*this).decomposition(); } 8751: QChar::Decomposition decompositionTag() const { return QChar(*this).decompositionTag(); } 8751: uchar combiningClass() const { return QChar(*this).combiningClass(); } 8751: 8751: inline QChar::Script script() const { return QChar(*this).script(); } 8751: 8751: QChar::UnicodeVersion unicodeVersion() const { return QChar(*this).unicodeVersion(); } 8751: 8751: inline uchar cell() const { return QChar(*this).cell(); } 8751: inline uchar row() const { return QChar(*this).row(); } 8751: inline void setCell(uchar cell); 8751: inline void setRow(uchar row); 8751: 8751: 8751: 8751: 8751: char toLatin1() const { return QChar(*this).toLatin1(); } 8751: ushort unicode() const { return QChar(*this).unicode(); } 8751: ushort& unicode() { return s.data()[i].unicode(); } 8751: 8751: }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QCharRef)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QCharRef >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QCharRef) }; static inline const char *name() { return "QCharRef"; } }; 8751: 8751: inline void QCharRef::setRow(uchar arow) { QChar(*this).setRow(arow); } 8751: inline void QCharRef::setCell(uchar acell) { QChar(*this).setCell(acell); } 8751: 8751: 8751: inline QString::QString() noexcept : d(Data::sharedNull()) {} 8751: inline QString::~QString() { if (!d->ref.deref()) Data::deallocate(d); } 8751: 8751: inline void QString::reserve(int asize) 8751: { 8751: if (d->ref.isShared() || uint(asize) >= d->alloc) 8751: reallocData(qMax(asize, d->size) + 1u); 8751: 8751: if (!d->capacityReserved) { 8751: 8751: d->capacityReserved = true; 8751: } 8751: } 8751: 8751: inline void QString::squeeze() 8751: { 8751: if (d->ref.isShared() || uint(d->size) + 1u < d->alloc) 8751: reallocData(uint(d->size) + 1u); 8751: 8751: if (d->capacityReserved) { 8751: 8751: 8751: d->capacityReserved = false; 8751: } 8751: } 8751: 8751: inline QString &QString::setUtf16(const ushort *autf16, int asize) 8751: { return setUnicode(reinterpret_cast(autf16), asize); } 8751: inline QCharRef QString::operator[](int i) 8751: { do { } while ((false) && (i >= 0)); return QCharRef(*this, i); } 8751: inline QCharRef QString::operator[](uint i) 8751: { return QCharRef(*this, i); } 8751: inline QString::iterator QString::begin() 8751: { detach(); return reinterpret_cast(d->data()); } 8751: inline QString::const_iterator QString::begin() const 8751: { return reinterpret_cast(d->data()); } 8751: inline QString::const_iterator QString::cbegin() const 8751: { return reinterpret_cast(d->data()); } 8751: inline QString::const_iterator QString::constBegin() const 8751: { return reinterpret_cast(d->data()); } 8751: inline QString::iterator QString::end() 8751: { detach(); return reinterpret_cast(d->data() + d->size); } 8751: inline QString::const_iterator QString::end() const 8751: { return reinterpret_cast(d->data() + d->size); } 8751: inline QString::const_iterator QString::cend() const 8751: { return reinterpret_cast(d->data() + d->size); } 8751: inline QString::const_iterator QString::constEnd() const 8751: { return reinterpret_cast(d->data() + d->size); } 8751: inline bool QString::contains(const QString &s, Qt::CaseSensitivity cs) const 8751: { return indexOf(s, 0, cs) != -1; } 8751: inline bool QString::contains(const QStringRef &s, Qt::CaseSensitivity cs) const 8751: { return indexOf(s, 0, cs) != -1; } 8751: inline bool QString::contains(QLatin1String s, Qt::CaseSensitivity cs) const 8751: { return indexOf(s, 0, cs) != -1; } 8751: inline bool QString::contains(QChar c, Qt::CaseSensitivity cs) const 8751: { return indexOf(c, 0, cs) != -1; } 8751: 8751: 8751: inline bool operator==(QString::Null, QString::Null) { return true; } 8751: 8751: inline bool operator==(QString::Null, const QString &s) { return s.isNull(); } 8751: 8751: inline bool operator==(const QString &s, QString::Null) { return s.isNull(); } 8751: inline bool operator!=(QString::Null, QString::Null) { return false; } 8751: 8751: inline bool operator!=(QString::Null, const QString &s) { return !s.isNull(); } 8751: 8751: inline bool operator!=(const QString &s, QString::Null) { return !s.isNull(); } 8751: 8751: 8751: inline bool operator==(QLatin1String s1, QLatin1String s2) noexcept 8751: { return s1.size() == s2.size() && (!s1.size() || !memcmp(s1.latin1(), s2.latin1(), s1.size())); } 8751: inline bool operator!=(QLatin1String s1, QLatin1String s2) noexcept 8751: { return !operator==(s1, s2); } 8751: inline bool operator<(QLatin1String s1, QLatin1String s2) noexcept 8751: { 8751: const int len = qMin(s1.size(), s2.size()); 8751: const int r = len ? memcmp(s1.latin1(), s2.latin1(), len) : 0; 8751: return r < 0 || (r == 0 && s1.size() < s2.size()); 8751: } 8751: inline bool operator>(QLatin1String s1, QLatin1String s2) noexcept 8751: { return operator<(s2, s1); } 8751: inline bool operator<=(QLatin1String s1, QLatin1String s2) noexcept 8751: { return !operator>(s1, s2); } 8751: inline bool operator>=(QLatin1String s1, QLatin1String s2) noexcept 8751: { return !operator<(s1, s2); } 8751: 8751: inline bool QLatin1String::operator==(const QString &s) const noexcept 8751: { return s == *this; } 8751: inline bool QLatin1String::operator!=(const QString &s) const noexcept 8751: { return s != *this; } 8751: inline bool QLatin1String::operator>(const QString &s) const noexcept 8751: { return s < *this; } 8751: inline bool QLatin1String::operator<(const QString &s) const noexcept 8751: { return s > *this; } 8751: inline bool QLatin1String::operator>=(const QString &s) const noexcept 8751: { return s <= *this; } 8751: inline bool QLatin1String::operator<=(const QString &s) const noexcept 8751: { return s >= *this; } 8751: # 1318 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: inline std::string QString::toStdString() const 8751: { return toUtf8().toStdString(); } 8751: 8751: inline QString QString::fromStdString(const std::string &s) 8751: { return fromUtf8(s.data(), int(s.size())); } 8751: 8751: inline std::wstring QString::toStdWString() const 8751: { 8751: std::wstring str; 8751: str.resize(length()); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: str.resize(toWCharArray(&(*str.begin()))); 8751: return str; 8751: } 8751: 8751: inline QString QString::fromStdWString(const std::wstring &s) 8751: { return fromWCharArray(s.data(), int(s.size())); } 8751: 8751: 8751: inline QString QString::fromStdU16String(const std::u16string &s) 8751: { return fromUtf16(s.data(), int(s.size())); } 8751: 8751: inline std::u16string QString::toStdU16String() const 8751: { return std::u16string(reinterpret_cast(utf16()), length()); } 8751: 8751: inline QString QString::fromStdU32String(const std::u32string &s) 8751: { return fromUcs4(s.data(), int(s.size())); } 8751: 8751: inline std::u32string QString::toStdU32String() const 8751: { 8751: std::u32string u32str(length(), char32_t(0)); 8751: int len = toUcs4_helper(d->data(), length(), reinterpret_cast(&u32str[0])); 8751: u32str.resize(len); 8751: return u32str; 8751: } 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QString &); 8751: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QString &); 8751: 8751: 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QString)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QString >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QString) }; static inline const char *name() { return "QString"; } }; inline void swap(QString &value1, QString &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8751: constexpr inline QFlags operator|(QString::SectionFlags::enum_type f1, QString::SectionFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QString::SectionFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QString::SectionFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: 8751: 8751: class __attribute__((visibility("default"))) QStringRef { 8751: const QString *m_string; 8751: int m_position; 8751: int m_size; 8751: public: 8751: typedef QString::size_type size_type; 8751: typedef QString::value_type value_type; 8751: typedef const QChar *const_iterator; 8751: typedef std::reverse_iterator const_reverse_iterator; 8751: typedef QString::const_pointer const_pointer; 8751: typedef QString::const_reference const_reference; 8751: 8751: 8751: inline QStringRef() : m_string(nullptr), m_position(0), m_size(0) {} 8751: inline QStringRef(const QString *string, int position, int size); 8751: inline QStringRef(const QString *string); 8751: 8751: 8751: 8751: QStringRef(const QStringRef &other) noexcept 8751: :m_string(other.m_string), m_position(other.m_position), m_size(other.m_size) 8751: {} 8751: 8751: QStringRef(QStringRef &&other) noexcept : m_string(other.m_string), m_position(other.m_position), m_size(other.m_size) {} 8751: QStringRef &operator=(QStringRef &&other) noexcept { return *this = other; } 8751: 8751: QStringRef &operator=(const QStringRef &other) noexcept 8751: { 8751: m_string = other.m_string; m_position = other.m_position; 8751: m_size = other.m_size; return *this; 8751: } 8751: inline ~QStringRef(){} 8751: 8751: 8751: inline const QString *string() const { return m_string; } 8751: inline int position() const { return m_position; } 8751: inline int size() const { return m_size; } 8751: inline int count() const { return m_size; } 8751: inline int length() const { return m_size; } 8751: 8751: int indexOf(const QString &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int indexOf(QChar ch, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int indexOf(QLatin1String str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int indexOf(const QStringRef &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int lastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int lastIndexOf(QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int lastIndexOf(QLatin1String str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int lastIndexOf(const QStringRef &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: 8751: inline bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: inline bool contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: inline bool contains(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: inline bool contains(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: 8751: int count(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int count(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: int count(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: 8751: [[nodiscard]] QVector split(const QString &sep, QString::SplitBehavior behavior = QString::KeepEmptyParts, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: [[nodiscard]] QVector split(QChar sep, QString::SplitBehavior behavior = QString::KeepEmptyParts, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: 8751: [[nodiscard]] QStringRef left(int n) const; 8751: [[nodiscard]] QStringRef right(int n) const; 8751: [[nodiscard]] QStringRef mid(int pos, int n = -1) const; 8751: 8751: void truncate(int pos) noexcept { m_size = qBound(0, pos, m_size); } 8751: void chop(int n) noexcept 8751: { 8751: if (n >= m_size) 8751: m_size = 0; 8751: else if (n > 0) 8751: m_size -= n; 8751: } 8751: 8751: bool isRightToLeft() const; 8751: 8751: bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: bool startsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: bool startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: bool startsWith(const QStringRef &c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: 8751: bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: bool endsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: bool endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: bool endsWith(const QStringRef &c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: 8751: inline QStringRef &operator=(const QString *string); 8751: 8751: inline const QChar *unicode() const 8751: { 8751: if (!m_string) 8751: return reinterpret_cast(QString::Data::sharedNull()->data()); 8751: return m_string->unicode() + m_position; 8751: } 8751: inline const QChar *data() const { return unicode(); } 8751: inline const QChar *constData() const { return unicode(); } 8751: 8751: inline const_iterator begin() const { return unicode(); } 8751: inline const_iterator cbegin() const { return unicode(); } 8751: inline const_iterator constBegin() const { return unicode(); } 8751: inline const_iterator end() const { return unicode() + size(); } 8751: inline const_iterator cend() const { return unicode() + size(); } 8751: inline const_iterator constEnd() const { return unicode() + size(); } 8751: inline const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8751: inline const_reverse_iterator crbegin() const { return rbegin(); } 8751: inline const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8751: inline const_reverse_iterator crend() const { return rend(); } 8751: 8751: 8751: 8751: 8751: 8751: [[nodiscard]] QByteArray toLatin1() const; 8751: [[nodiscard]] QByteArray toUtf8() const; 8751: [[nodiscard]] QByteArray toLocal8Bit() const; 8751: [[nodiscard]] QVector toUcs4() const; 8751: 8751: inline void clear() { m_string = nullptr; m_position = m_size = 0; } 8751: QString toString() const; 8751: inline bool isEmpty() const { return m_size == 0; } 8751: inline bool isNull() const { return m_string == nullptr || m_string->isNull(); } 8751: 8751: QStringRef appendTo(QString *string) const; 8751: 8751: inline const QChar at(int i) const 8751: { do { } while ((false) && (uint(i) < uint(size()))); return m_string->at(i + m_position); } 8751: QChar operator[](int i) const { return at(i); } 8751: # 1510 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: int compare(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8751: int compare(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8751: int compare(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8751: 8751: 8751: 8751: 8751: static int compare(const QStringRef &s1, const QString &s2, 8751: Qt::CaseSensitivity = Qt::CaseSensitive) noexcept; 8751: static int compare(const QStringRef &s1, const QStringRef &s2, 8751: Qt::CaseSensitivity = Qt::CaseSensitive) noexcept; 8751: static int compare(const QStringRef &s1, QLatin1String s2, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept; 8751: 8751: int localeAwareCompare(const QString &s) const; 8751: int localeAwareCompare(const QStringRef &s) const; 8751: static int localeAwareCompare(const QStringRef &s1, const QString &s2); 8751: static int localeAwareCompare(const QStringRef &s1, const QStringRef &s2); 8751: 8751: [[nodiscard]] QStringRef trimmed() const; 8751: short toShort(bool *ok = nullptr, int base = 10) const; 8751: ushort toUShort(bool *ok = nullptr, int base = 10) const; 8751: int toInt(bool *ok = nullptr, int base = 10) const; 8751: uint toUInt(bool *ok = nullptr, int base = 10) const; 8751: long toLong(bool *ok = nullptr, int base = 10) const; 8751: ulong toULong(bool *ok = nullptr, int base = 10) const; 8751: qlonglong toLongLong(bool *ok = nullptr, int base = 10) const; 8751: qulonglong toULongLong(bool *ok = nullptr, int base = 10) const; 8751: float toFloat(bool *ok = nullptr) const; 8751: double toDouble(bool *ok = nullptr) const; 8751: }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QStringRef)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QStringRef >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QStringRef) }; static inline const char *name() { return "QStringRef"; } }; 8751: 8751: inline QStringRef &QStringRef::operator=(const QString *aString) 8751: { m_string = aString; m_position = 0; m_size = aString?aString->size():0; return *this; } 8751: 8751: inline QStringRef::QStringRef(const QString *aString, int aPosition, int aSize) 8751: :m_string(aString), m_position(aPosition), m_size(aSize){} 8751: 8751: inline QStringRef::QStringRef(const QString *aString) 8751: :m_string(aString), m_position(0), m_size(aString?aString->size() : 0){} 8751: 8751: 8751: __attribute__((visibility("default"))) bool operator==(const QStringRef &s1, const QStringRef &s2) noexcept; 8751: inline bool operator!=(const QStringRef &s1, const QStringRef &s2) noexcept 8751: { return !(s1 == s2); } 8751: __attribute__((visibility("default"))) bool operator<(const QStringRef &s1, const QStringRef &s2) noexcept; 8751: inline bool operator>(const QStringRef &s1, const QStringRef &s2) noexcept 8751: { return s2 < s1; } 8751: inline bool operator<=(const QStringRef &s1, const QStringRef &s2) noexcept 8751: { return !(s1 > s2); } 8751: inline bool operator>=(const QStringRef &s1, const QStringRef &s2) noexcept 8751: { return !(s1 < s2); } 8751: 8751: 8751: __attribute__((visibility("default"))) bool operator==(const QString &lhs, const QStringRef &rhs) noexcept; 8751: inline bool operator!=(const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) != 0; } 8751: inline bool operator< (const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) < 0; } 8751: inline bool operator> (const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) > 0; } 8751: inline bool operator<=(const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) <= 0; } 8751: inline bool operator>=(const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) >= 0; } 8751: 8751: inline bool operator==(const QStringRef &lhs, const QString &rhs) noexcept { return rhs == lhs; } 8751: inline bool operator!=(const QStringRef &lhs, const QString &rhs) noexcept { return rhs != lhs; } 8751: inline bool operator< (const QStringRef &lhs, const QString &rhs) noexcept { return rhs > lhs; } 8751: inline bool operator> (const QStringRef &lhs, const QString &rhs) noexcept { return rhs < lhs; } 8751: inline bool operator<=(const QStringRef &lhs, const QString &rhs) noexcept { return rhs >= lhs; } 8751: inline bool operator>=(const QStringRef &lhs, const QString &rhs) noexcept { return rhs <= lhs; } 8751: 8751: inline int QString::compare(const QStringRef &s, Qt::CaseSensitivity cs) const noexcept 8751: { return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); } 8751: inline int QString::compare(const QString &s1, const QStringRef &s2, Qt::CaseSensitivity cs) noexcept 8751: { return QString::compare_helper(s1.constData(), s1.length(), s2.constData(), s2.length(), cs); } 8751: inline int QStringRef::compare(const QString &s, Qt::CaseSensitivity cs) const noexcept 8751: { return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); } 8751: inline int QStringRef::compare(const QStringRef &s, Qt::CaseSensitivity cs) const noexcept 8751: { return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); } 8751: inline int QStringRef::compare(QLatin1String s, Qt::CaseSensitivity cs) const noexcept 8751: { return QString::compare_helper(constData(), length(), s, cs); } 8751: inline int QStringRef::compare(const QStringRef &s1, const QString &s2, Qt::CaseSensitivity cs) noexcept 8751: { return QString::compare_helper(s1.constData(), s1.length(), s2.constData(), s2.length(), cs); } 8751: inline int QStringRef::compare(const QStringRef &s1, const QStringRef &s2, Qt::CaseSensitivity cs) noexcept 8751: { return QString::compare_helper(s1.constData(), s1.length(), s2.constData(), s2.length(), cs); } 8751: inline int QStringRef::compare(const QStringRef &s1, QLatin1String s2, Qt::CaseSensitivity cs) noexcept 8751: { return QString::compare_helper(s1.constData(), s1.length(), s2, cs); } 8751: 8751: 8751: __attribute__((visibility("default"))) bool operator==(QLatin1String lhs, const QStringRef &rhs) noexcept; 8751: inline bool operator!=(QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) != 0; } 8751: inline bool operator< (QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) > 0; } 8751: inline bool operator> (QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) < 0; } 8751: inline bool operator<=(QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) >= 0; } 8751: inline bool operator>=(QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) <= 0; } 8751: 8751: inline bool operator==(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs == lhs; } 8751: inline bool operator!=(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs != lhs; } 8751: inline bool operator< (const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs > lhs; } 8751: inline bool operator> (const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs < lhs; } 8751: inline bool operator<=(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs >= lhs; } 8751: inline bool operator>=(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs <= lhs; } 8751: 8751: 8751: inline bool operator==(QChar lhs, const QString &rhs) noexcept 8751: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) == 0; } 8751: inline bool operator< (QChar lhs, const QString &rhs) noexcept 8751: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) < 0; } 8751: inline bool operator> (QChar lhs, const QString &rhs) noexcept 8751: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) > 0; } 8751: 8751: inline bool operator!=(QChar lhs, const QString &rhs) noexcept { return !(lhs == rhs); } 8751: inline bool operator<=(QChar lhs, const QString &rhs) noexcept { return !(lhs > rhs); } 8751: inline bool operator>=(QChar lhs, const QString &rhs) noexcept { return !(lhs < rhs); } 8751: 8751: inline bool operator==(const QString &lhs, QChar rhs) noexcept { return rhs == lhs; } 8751: inline bool operator!=(const QString &lhs, QChar rhs) noexcept { return !(rhs == lhs); } 8751: inline bool operator< (const QString &lhs, QChar rhs) noexcept { return rhs > lhs; } 8751: inline bool operator> (const QString &lhs, QChar rhs) noexcept { return rhs < lhs; } 8751: inline bool operator<=(const QString &lhs, QChar rhs) noexcept { return !(rhs < lhs); } 8751: inline bool operator>=(const QString &lhs, QChar rhs) noexcept { return !(rhs > lhs); } 8751: 8751: 8751: inline bool operator==(QChar lhs, const QStringRef &rhs) noexcept 8751: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) == 0; } 8751: inline bool operator< (QChar lhs, const QStringRef &rhs) noexcept 8751: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) < 0; } 8751: inline bool operator> (QChar lhs, const QStringRef &rhs) noexcept 8751: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) > 0; } 8751: 8751: inline bool operator!=(QChar lhs, const QStringRef &rhs) noexcept { return !(lhs == rhs); } 8751: inline bool operator<=(QChar lhs, const QStringRef &rhs) noexcept { return !(lhs > rhs); } 8751: inline bool operator>=(QChar lhs, const QStringRef &rhs) noexcept { return !(lhs < rhs); } 8751: 8751: inline bool operator==(const QStringRef &lhs, QChar rhs) noexcept { return rhs == lhs; } 8751: inline bool operator!=(const QStringRef &lhs, QChar rhs) noexcept { return !(rhs == lhs); } 8751: inline bool operator< (const QStringRef &lhs, QChar rhs) noexcept { return rhs > lhs; } 8751: inline bool operator> (const QStringRef &lhs, QChar rhs) noexcept { return rhs < lhs; } 8751: inline bool operator<=(const QStringRef &lhs, QChar rhs) noexcept { return !(rhs < lhs); } 8751: inline bool operator>=(const QStringRef &lhs, QChar rhs) noexcept { return !(rhs > lhs); } 8751: 8751: 8751: inline bool operator==(QChar lhs, QLatin1String rhs) noexcept 8751: { return QString::compare_helper(&lhs, 1, rhs) == 0; } 8751: inline bool operator< (QChar lhs, QLatin1String rhs) noexcept 8751: { return QString::compare_helper(&lhs, 1, rhs) < 0; } 8751: inline bool operator> (QChar lhs, QLatin1String rhs) noexcept 8751: { return QString::compare_helper(&lhs, 1, rhs) > 0; } 8751: 8751: inline bool operator!=(QChar lhs, QLatin1String rhs) noexcept { return !(lhs == rhs); } 8751: inline bool operator<=(QChar lhs, QLatin1String rhs) noexcept { return !(lhs > rhs); } 8751: inline bool operator>=(QChar lhs, QLatin1String rhs) noexcept { return !(lhs < rhs); } 8751: 8751: inline bool operator==(QLatin1String lhs, QChar rhs) noexcept { return rhs == lhs; } 8751: inline bool operator!=(QLatin1String lhs, QChar rhs) noexcept { return !(rhs == lhs); } 8751: inline bool operator< (QLatin1String lhs, QChar rhs) noexcept { return rhs > lhs; } 8751: inline bool operator> (QLatin1String lhs, QChar rhs) noexcept { return rhs < lhs; } 8751: inline bool operator<=(QLatin1String lhs, QChar rhs) noexcept { return !(rhs < lhs); } 8751: inline bool operator>=(QLatin1String lhs, QChar rhs) noexcept { return !(rhs > lhs); } 8751: # 1712 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: inline int QString::localeAwareCompare(const QStringRef &s) const 8751: { return localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } 8751: inline int QString::localeAwareCompare(const QString& s1, const QStringRef& s2) 8751: { return localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } 8751: inline int QStringRef::localeAwareCompare(const QString &s) const 8751: { return QString::localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } 8751: inline int QStringRef::localeAwareCompare(const QStringRef &s) const 8751: { return QString::localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } 8751: inline int QStringRef::localeAwareCompare(const QStringRef &s1, const QString &s2) 8751: { return QString::localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } 8751: inline int QStringRef::localeAwareCompare(const QStringRef &s1, const QStringRef &s2) 8751: { return QString::localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } 8751: 8751: inline bool QStringRef::contains(const QString &s, Qt::CaseSensitivity cs) const 8751: { return indexOf(s, 0, cs) != -1; } 8751: inline bool QStringRef::contains(QLatin1String s, Qt::CaseSensitivity cs) const 8751: { return indexOf(s, 0, cs) != -1; } 8751: inline bool QStringRef::contains(QChar c, Qt::CaseSensitivity cs) const 8751: { return indexOf(c, 0, cs) != -1; } 8751: inline bool QStringRef::contains(const QStringRef &s, Qt::CaseSensitivity cs) const 8751: { return indexOf(s, 0, cs) != -1; } 8751: 8751: inline QString &QString::insert(int i, const QStringRef &s) 8751: { return insert(i, s.constData(), s.length()); } 8751: # 1754 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 3 4 8751: namespace Qt { 8751: 8751: 8751: 8751: 8751: 8751: } 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringbuilder.h" 1 3 4 8751: # 55 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringbuilder.h" 3 4 8751: 8751: 8751: 8751: struct __attribute__((visibility("default"))) QAbstractConcatenable 8751: { 8751: protected: 8751: static void convertFromAscii(const char *a, int len, QChar *&out) noexcept; 8751: static inline void convertFromAscii(char a, QChar *&out) noexcept 8751: { 8751: *out++ = QLatin1Char(a); 8751: } 8751: static void appendLatin1To(const char *a, int len, QChar *out) noexcept; 8751: }; 8751: 8751: template struct QConcatenable {}; 8751: 8751: namespace QtStringBuilder { 8751: template struct ConvertToTypeHelper 8751: { typedef A ConvertTo; }; 8751: template struct ConvertToTypeHelper 8751: { typedef QString ConvertTo; }; 8751: } 8751: 8751: template 8751: struct QStringBuilderCommon 8751: { 8751: T toUpper() const { return resolved().toUpper(); } 8751: T toLower() const { return resolved().toLower(); } 8751: 8751: protected: 8751: T resolved() const { return *static_cast(this); } 8751: }; 8751: 8751: template 8751: struct QStringBuilderBase : public QStringBuilderCommon 8751: { 8751: }; 8751: 8751: template 8751: struct QStringBuilderBase : public QStringBuilderCommon 8751: { 8751: QByteArray toLatin1() const { return this->resolved().toLatin1(); } 8751: QByteArray toUtf8() const { return this->resolved().toUtf8(); } 8751: QByteArray toLocal8Bit() const { return this->resolved().toLocal8Bit(); } 8751: }; 8751: 8751: template 8751: class QStringBuilder : public QStringBuilderBase, typename QtStringBuilder::ConvertToTypeHelper::ConvertTo, typename QConcatenable::ConvertTo>::ConvertTo> 8751: { 8751: public: 8751: QStringBuilder(const A &a_, const B &b_) : a(a_), b(b_) {} 8751: private: 8751: friend class QByteArray; 8751: friend class QString; 8751: template T convertTo() const 8751: { 8751: const uint len = QConcatenable< QStringBuilder >::size(*this); 8751: T s(len, Qt::Uninitialized); 8751: 8751: 8751: 8751: typename T::iterator d = const_cast(s.constData()); 8751: typename T::const_iterator const start = d; 8751: QConcatenable< QStringBuilder >::appendTo(*this, d); 8751: 8751: if (!QConcatenable< QStringBuilder >::ExactSize && int(len) != d - start) { 8751: 8751: 8751: s.resize(d - start); 8751: } 8751: return s; 8751: } 8751: 8751: typedef QConcatenable > Concatenable; 8751: typedef typename Concatenable::ConvertTo ConvertTo; 8751: public: 8751: operator ConvertTo() const { return convertTo(); } 8751: 8751: int size() const { return Concatenable::size(*this); } 8751: 8751: const A &a; 8751: const B &b; 8751: }; 8751: 8751: template <> 8751: class QStringBuilder : public QStringBuilderBase, QString> 8751: { 8751: public: 8751: QStringBuilder(const QString &a_, const QString &b_) : a(a_), b(b_) {} 8751: QStringBuilder(const QStringBuilder &other) : a(other.a), b(other.b) {} 8751: 8751: operator QString() const 8751: { QString r(a); r += b; return r; } 8751: 8751: const QString &a; 8751: const QString &b; 8751: 8751: private: 8751: QStringBuilder &operator=(const QStringBuilder &) = delete; 8751: }; 8751: 8751: template <> 8751: class QStringBuilder : public QStringBuilderBase, QByteArray> 8751: { 8751: public: 8751: QStringBuilder(const QByteArray &a_, const QByteArray &b_) : a(a_), b(b_) {} 8751: QStringBuilder(const QStringBuilder &other) : a(other.a), b(other.b) {} 8751: 8751: operator QByteArray() const 8751: { QByteArray r(a); r += b; return r; } 8751: 8751: const QByteArray &a; 8751: const QByteArray &b; 8751: 8751: private: 8751: QStringBuilder &operator=(const QStringBuilder &) = delete; 8751: }; 8751: 8751: 8751: template <> struct QConcatenable : private QAbstractConcatenable 8751: { 8751: typedef char type; 8751: typedef QByteArray ConvertTo; 8751: enum { ExactSize = true }; 8751: static int size(const char) { return 1; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: static inline void appendTo(const char c, char *&out) 8751: { *out++ = c; } 8751: }; 8751: 8751: template <> struct QConcatenable 8751: { 8751: typedef QLatin1Char type; 8751: typedef QString ConvertTo; 8751: enum { ExactSize = true }; 8751: static int size(const QLatin1Char) { return 1; } 8751: static inline void appendTo(const QLatin1Char c, QChar *&out) 8751: { *out++ = c; } 8751: static inline void appendTo(const QLatin1Char c, char *&out) 8751: { *out++ = c.toLatin1(); } 8751: }; 8751: 8751: template <> struct QConcatenable : private QAbstractConcatenable 8751: { 8751: typedef QChar type; 8751: typedef QString ConvertTo; 8751: enum { ExactSize = true }; 8751: static int size(const QChar) { return 1; } 8751: static inline void appendTo(const QChar c, QChar *&out) 8751: { *out++ = c; } 8751: }; 8751: 8751: template <> struct QConcatenable : private QAbstractConcatenable 8751: { 8751: typedef QChar::SpecialCharacter type; 8751: typedef QString ConvertTo; 8751: enum { ExactSize = true }; 8751: static int size(const QChar::SpecialCharacter) { return 1; } 8751: static inline void appendTo(const QChar::SpecialCharacter c, QChar *&out) 8751: { *out++ = c; } 8751: }; 8751: 8751: template <> struct QConcatenable : private QAbstractConcatenable 8751: { 8751: typedef QCharRef type; 8751: typedef QString ConvertTo; 8751: enum { ExactSize = true }; 8751: static int size(QCharRef) { return 1; } 8751: static inline void appendTo(QCharRef c, QChar *&out) 8751: { *out++ = QChar(c); } 8751: }; 8751: 8751: template <> struct QConcatenable : private QAbstractConcatenable 8751: { 8751: typedef QLatin1String type; 8751: typedef QString ConvertTo; 8751: enum { ExactSize = true }; 8751: static int size(const QLatin1String a) { return a.size(); } 8751: static inline void appendTo(const QLatin1String a, QChar *&out) 8751: { 8751: appendLatin1To(a.latin1(), a.size(), out); 8751: out += a.size(); 8751: } 8751: static inline void appendTo(const QLatin1String a, char *&out) 8751: { 8751: if (const char *data = a.data()) { 8751: memcpy(out, data, a.size()); 8751: out += a.size(); 8751: } 8751: } 8751: }; 8751: 8751: template <> struct QConcatenable : private QAbstractConcatenable 8751: { 8751: typedef QString type; 8751: typedef QString ConvertTo; 8751: enum { ExactSize = true }; 8751: static int size(const QString &a) { return a.size(); } 8751: static inline void appendTo(const QString &a, QChar *&out) 8751: { 8751: const int n = a.size(); 8751: memcpy(out, reinterpret_cast(a.constData()), sizeof(QChar) * n); 8751: out += n; 8751: } 8751: }; 8751: 8751: template <> struct QConcatenable : private QAbstractConcatenable 8751: { 8751: typedef QStringRef type; 8751: typedef QString ConvertTo; 8751: enum { ExactSize = true }; 8751: static int size(const QStringRef &a) { return a.size(); } 8751: static inline void appendTo(const QStringRef &a, QChar *&out) 8751: { 8751: const int n = a.size(); 8751: memcpy(out, reinterpret_cast(a.constData()), sizeof(QChar) * n); 8751: out += n; 8751: } 8751: }; 8751: 8751: template struct QConcatenable : private QAbstractConcatenable 8751: { 8751: typedef const char type[N]; 8751: typedef QByteArray ConvertTo; 8751: enum { ExactSize = false }; 8751: static int size(const char[N]) { return N - 1; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: static inline void appendTo(const char a[N], char *&out) 8751: { 8751: while (*a) 8751: *out++ = *a++; 8751: } 8751: }; 8751: 8751: template struct QConcatenable : QConcatenable 8751: { 8751: typedef char type[N]; 8751: }; 8751: 8751: template <> struct QConcatenable : private QAbstractConcatenable 8751: { 8751: typedef char const *type; 8751: typedef QByteArray ConvertTo; 8751: enum { ExactSize = false }; 8751: static int size(const char *a) { return qstrlen(a); } 8751: 8751: 8751: 8751: 8751: static inline void appendTo(const char *a, char *&out) 8751: { 8751: if (!a) 8751: return; 8751: while (*a) 8751: *out++ = *a++; 8751: } 8751: }; 8751: 8751: template <> struct QConcatenable : private QAbstractConcatenable 8751: { 8751: typedef QByteArray type; 8751: typedef QByteArray ConvertTo; 8751: enum { ExactSize = false }; 8751: static int size(const QByteArray &ba) { return ba.size(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: static inline void appendTo(const QByteArray &ba, char *&out) 8751: { 8751: const char *a = ba.constData(); 8751: const char * const end = ba.end(); 8751: while (a != end) 8751: *out++ = *a++; 8751: } 8751: }; 8751: 8751: 8751: template 8751: struct QConcatenable< QStringBuilder > 8751: { 8751: typedef QStringBuilder type; 8751: typedef typename QtStringBuilder::ConvertToTypeHelper::ConvertTo, typename QConcatenable::ConvertTo>::ConvertTo ConvertTo; 8751: enum { ExactSize = QConcatenable::ExactSize && QConcatenable::ExactSize }; 8751: static int size(const type &p) 8751: { 8751: return QConcatenable::size(p.a) + QConcatenable::size(p.b); 8751: } 8751: template static inline void appendTo(const type &p, T *&out) 8751: { 8751: QConcatenable::appendTo(p.a, out); 8751: QConcatenable::appendTo(p.b, out); 8751: } 8751: }; 8751: 8751: template 8751: QStringBuilder::type, typename QConcatenable::type> 8751: operator%(const A &a, const B &b) 8751: { 8751: return QStringBuilder::type, typename QConcatenable::type>(a, b); 8751: } 8751: 8751: 8751: 8751: 8751: template 8751: QStringBuilder::type, typename QConcatenable::type> 8751: operator+(const A &a, const B &b) 8751: { 8751: return QStringBuilder::type, typename QConcatenable::type>(a, b); 8751: } 8751: 8751: 8751: namespace QtStringBuilder { 8751: template 8751: QByteArray &appendToByteArray(QByteArray &a, const QStringBuilder &b, char) 8751: { 8751: 8751: int len = a.size() + QConcatenable< QStringBuilder >::size(b); 8751: a.reserve(len); 8751: char *it = a.data() + a.size(); 8751: QConcatenable< QStringBuilder >::appendTo(b, it); 8751: a.resize(len); 8751: return a; 8751: } 8751: # 400 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringbuilder.h" 3 4 8751: } 8751: 8751: template 8751: QByteArray &operator+=(QByteArray &a, const QStringBuilder &b) 8751: { 8751: return QtStringBuilder::appendToByteArray(a, b, 8751: typename QConcatenable< QStringBuilder >::ConvertTo::value_type()); 8751: } 8751: 8751: template 8751: QString &operator+=(QString &a, const QStringBuilder &b) 8751: { 8751: int len = a.size() + QConcatenable< QStringBuilder >::size(b); 8751: a.reserve(len); 8751: QChar *it = a.data() + a.size(); 8751: QConcatenable< QStringBuilder >::appendTo(b, it); 8751: a.resize(int(it - a.constData())); 8751: return a; 8751: } 8751: 8751: 8751: 8751: # 1766 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstring.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QString" 2 3 4 8751: # 27 "/<>/templates/lib/exception.h" 2 8751: 8751: 8751: 8751: 8751: # 30 "/<>/templates/lib/exception.h" 8751: namespace Grantlee 8751: { 8751: 8751: 8751: 8751: 8751: enum Error { 8751: NoError, 8751: EmptyVariableError, 8751: EmptyBlockTagError, 8751: InvalidBlockTagError, 8751: UnclosedBlockTagError, 8751: UnknownFilterError, 8751: TagSyntaxError, 8751: 8751: 8751: VariableNotInContext, 8751: ObjectReturnTypeInvalid, 8751: CompileFunctionError 8751: }; 8751: # 82 "/<>/templates/lib/exception.h" 8751: class __attribute__((visibility("default"))) Exception 8751: { 8751: public: 8751: 8751: 8751: 8751: 8751: Exception(Error errorCode, const QString &what) 8751: : m_errorCode(errorCode), m_what(what) 8751: { 8751: } 8751: 8751: virtual ~Exception() throw() {} 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: const QString what() const throw() { return m_what; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: Error errorCode() const { return m_errorCode; } 8751: 8751: 8751: private: 8751: Error m_errorCode; 8751: QString m_what; 8751: }; 8751: } 8751: # 25 "/<>/templates/lib/template.h" 2 8751: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8751: # 26 "/<>/templates/lib/template.h" 2 8751: # 1 "/<>/templates/lib/node.h" 1 8751: # 26 "/<>/templates/lib/node.h" 8751: # 1 "/<>/templates/lib/context.h" 1 8751: # 24 "/<>/templates/lib/context.h" 8751: # 1 "/<>/templates/lib/abstractlocalizer.h" 1 8751: # 24 "/<>/templates/lib/abstractlocalizer.h" 8751: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8751: # 25 "/<>/templates/lib/abstractlocalizer.h" 2 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QLocale" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 1 3 4 8751: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 1 3 4 8751: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 1 3 4 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 2 3 4 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 1 3 4 8751: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 1 3 4 8751: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8751: 8751: 8751: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8751: #pragma GCC diagnostic push 8751: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8751: 8751: 8751: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8751: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8751: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: # 57 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8751: namespace QAlgorithmsPrivate { 8751: 8751: 8751: template 8751: void qSortHelper(RandomAccessIterator start, RandomAccessIterator end, const T &t, LessThan lessThan); 8751: template 8751: inline void qSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &dummy); 8751: 8751: template 8751: void qStableSortHelper(RandomAccessIterator start, RandomAccessIterator end, const T &t, LessThan lessThan); 8751: template 8751: inline void qStableSortHelper(RandomAccessIterator, RandomAccessIterator, const T &); 8751: 8751: template 8751: RandomAccessIterator qLowerBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan); 8751: template 8751: RandomAccessIterator qUpperBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan); 8751: template 8751: RandomAccessIterator qBinaryFindHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan); 8751: 8751: 8751: } 8751: 8751: 8751: template 8751: inline OutputIterator qCopy(InputIterator begin, InputIterator end, OutputIterator dest) 8751: { 8751: while (begin != end) 8751: *dest++ = *begin++; 8751: return dest; 8751: } 8751: 8751: template 8751: inline BiIterator2 qCopyBackward(BiIterator1 begin, BiIterator1 end, BiIterator2 dest) 8751: { 8751: while (begin != end) 8751: *--dest = *--end; 8751: return dest; 8751: } 8751: 8751: template 8751: inline bool qEqual(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2) 8751: { 8751: for (; first1 != last1; ++first1, ++first2) 8751: if (!(*first1 == *first2)) 8751: return false; 8751: return true; 8751: } 8751: 8751: template 8751: inline void qFill(ForwardIterator first, ForwardIterator last, const T &val) 8751: { 8751: for (; first != last; ++first) 8751: *first = val; 8751: } 8751: 8751: template 8751: inline void qFill(Container &container, const T &val) 8751: { 8751: qFill(container.begin(), container.end(), val); 8751: } 8751: 8751: template 8751: inline InputIterator qFind(InputIterator first, InputIterator last, const T &val) 8751: { 8751: while (first != last && !(*first == val)) 8751: ++first; 8751: return first; 8751: } 8751: 8751: template 8751: inline typename Container::const_iterator qFind(const Container &container, const T &val) 8751: { 8751: return qFind(container.constBegin(), container.constEnd(), val); 8751: } 8751: 8751: template 8751: inline void qCount(InputIterator first, InputIterator last, const T &value, Size &n) 8751: { 8751: for (; first != last; ++first) 8751: if (*first == value) 8751: ++n; 8751: } 8751: 8751: template 8751: inline void qCount(const Container &container, const T &value, Size &n) 8751: { 8751: qCount(container.constBegin(), container.constEnd(), value, n); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: class qLess 8751: { 8751: public: 8751: inline bool operator()(const T &t1, const T &t2) const 8751: { 8751: return (t1 < t2); 8751: } 8751: }; 8751: 8751: template 8751: class qGreater 8751: { 8751: public: 8751: inline bool operator()(const T &t1, const T &t2) const 8751: { 8751: return (t2 < t1); 8751: } 8751: }; 8751: 8751: 8751: template 8751: inline void qSort(RandomAccessIterator start, RandomAccessIterator end) 8751: { 8751: if (start != end) 8751: QAlgorithmsPrivate::qSortHelper(start, end, *start); 8751: } 8751: 8751: template 8751: inline void qSort(RandomAccessIterator start, RandomAccessIterator end, LessThan lessThan) 8751: { 8751: if (start != end) 8751: QAlgorithmsPrivate::qSortHelper(start, end, *start, lessThan); 8751: } 8751: 8751: template 8751: inline void qSort(Container &c) 8751: { 8751: 8751: 8751: 8751: 8751: if (!c.empty()) 8751: QAlgorithmsPrivate::qSortHelper(c.begin(), c.end(), *c.begin()); 8751: } 8751: 8751: template 8751: inline void qStableSort(RandomAccessIterator start, RandomAccessIterator end) 8751: { 8751: if (start != end) 8751: QAlgorithmsPrivate::qStableSortHelper(start, end, *start); 8751: } 8751: 8751: template 8751: inline void qStableSort(RandomAccessIterator start, RandomAccessIterator end, LessThan lessThan) 8751: { 8751: if (start != end) 8751: QAlgorithmsPrivate::qStableSortHelper(start, end, *start, lessThan); 8751: } 8751: 8751: template 8751: inline void qStableSort(Container &c) 8751: { 8751: 8751: 8751: 8751: 8751: if (!c.empty()) 8751: QAlgorithmsPrivate::qStableSortHelper(c.begin(), c.end(), *c.begin()); 8751: } 8751: 8751: template 8751: RandomAccessIterator qLowerBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value) 8751: { 8751: 8751: 8751: 8751: RandomAccessIterator middle; 8751: int n = end - begin; 8751: int half; 8751: 8751: while (n > 0) { 8751: half = n >> 1; 8751: middle = begin + half; 8751: if (*middle < value) { 8751: begin = middle + 1; 8751: n -= half + 1; 8751: } else { 8751: n = half; 8751: } 8751: } 8751: return begin; 8751: } 8751: 8751: template 8751: RandomAccessIterator qLowerBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8751: { 8751: return QAlgorithmsPrivate::qLowerBoundHelper(begin, end, value, lessThan); 8751: } 8751: 8751: template 8751: typename Container::const_iterator qLowerBound(const Container &container, const T &value) 8751: { 8751: return QAlgorithmsPrivate::qLowerBoundHelper(container.constBegin(), container.constEnd(), value, qLess()); 8751: } 8751: 8751: template 8751: RandomAccessIterator qUpperBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value) 8751: { 8751: 8751: RandomAccessIterator middle; 8751: int n = end - begin; 8751: int half; 8751: 8751: while (n > 0) { 8751: half = n >> 1; 8751: middle = begin + half; 8751: if (value < *middle) { 8751: n = half; 8751: } else { 8751: begin = middle + 1; 8751: n -= half + 1; 8751: } 8751: } 8751: return begin; 8751: } 8751: 8751: template 8751: RandomAccessIterator qUpperBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8751: { 8751: return QAlgorithmsPrivate::qUpperBoundHelper(begin, end, value, lessThan); 8751: } 8751: 8751: template 8751: typename Container::const_iterator qUpperBound(const Container &container, const T &value) 8751: { 8751: return QAlgorithmsPrivate::qUpperBoundHelper(container.constBegin(), container.constEnd(), value, qLess()); 8751: } 8751: 8751: template 8751: RandomAccessIterator qBinaryFind(RandomAccessIterator begin, RandomAccessIterator end, const T &value) 8751: { 8751: 8751: RandomAccessIterator it = qLowerBound(begin, end, value); 8751: 8751: if (it == end || value < *it) 8751: return end; 8751: 8751: return it; 8751: } 8751: 8751: template 8751: RandomAccessIterator qBinaryFind(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8751: { 8751: return QAlgorithmsPrivate::qBinaryFindHelper(begin, end, value, lessThan); 8751: } 8751: 8751: template 8751: typename Container::const_iterator qBinaryFind(const Container &container, const T &value) 8751: { 8751: return QAlgorithmsPrivate::qBinaryFindHelper(container.constBegin(), container.constEnd(), value, qLess()); 8751: } 8751: 8751: 8751: template 8751: void qDeleteAll(ForwardIterator begin, ForwardIterator end) 8751: { 8751: while (begin != end) { 8751: delete *begin; 8751: ++begin; 8751: } 8751: } 8751: 8751: template 8751: inline void qDeleteAll(const Container &c) 8751: { 8751: qDeleteAll(c.begin(), c.end()); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: namespace QAlgorithmsPrivate { 8751: 8751: 8751: 8751: template 8751: void qSortHelper(RandomAccessIterator start, RandomAccessIterator end, const T &t, LessThan lessThan) 8751: { 8751: top: 8751: int span = int(end - start); 8751: if (span < 2) 8751: return; 8751: 8751: --end; 8751: RandomAccessIterator low = start, high = end - 1; 8751: RandomAccessIterator pivot = start + span / 2; 8751: 8751: if (lessThan(*end, *start)) 8751: qSwap(*end, *start); 8751: if (span == 2) 8751: return; 8751: 8751: if (lessThan(*pivot, *start)) 8751: qSwap(*pivot, *start); 8751: if (lessThan(*end, *pivot)) 8751: qSwap(*end, *pivot); 8751: if (span == 3) 8751: return; 8751: 8751: qSwap(*pivot, *end); 8751: 8751: while (low < high) { 8751: while (low < high && lessThan(*low, *end)) 8751: ++low; 8751: 8751: while (high > low && lessThan(*end, *high)) 8751: --high; 8751: 8751: if (low < high) { 8751: qSwap(*low, *high); 8751: ++low; 8751: --high; 8751: } else { 8751: break; 8751: } 8751: } 8751: 8751: if (lessThan(*low, *end)) 8751: ++low; 8751: 8751: qSwap(*end, *low); 8751: qSortHelper(start, low, t, lessThan); 8751: 8751: start = low + 1; 8751: ++end; 8751: goto top; 8751: } 8751: 8751: template 8751: inline void qSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &dummy) 8751: { 8751: qSortHelper(begin, end, dummy, qLess()); 8751: } 8751: 8751: template 8751: void qReverse(RandomAccessIterator begin, RandomAccessIterator end) 8751: { 8751: --end; 8751: while (begin < end) 8751: qSwap(*begin++, *end--); 8751: } 8751: 8751: template 8751: void qRotate(RandomAccessIterator begin, RandomAccessIterator middle, RandomAccessIterator end) 8751: { 8751: qReverse(begin, middle); 8751: qReverse(middle, end); 8751: qReverse(begin, end); 8751: } 8751: 8751: template 8751: void qMerge(RandomAccessIterator begin, RandomAccessIterator pivot, RandomAccessIterator end, T &t, LessThan lessThan) 8751: { 8751: const int len1 = pivot - begin; 8751: const int len2 = end - pivot; 8751: 8751: if (len1 == 0 || len2 == 0) 8751: return; 8751: 8751: if (len1 + len2 == 2) { 8751: if (lessThan(*(begin + 1), *(begin))) 8751: qSwap(*begin, *(begin + 1)); 8751: return; 8751: } 8751: 8751: RandomAccessIterator firstCut; 8751: RandomAccessIterator secondCut; 8751: int len2Half; 8751: if (len1 > len2) { 8751: const int len1Half = len1 / 2; 8751: firstCut = begin + len1Half; 8751: secondCut = qLowerBound(pivot, end, *firstCut, lessThan); 8751: len2Half = secondCut - pivot; 8751: } else { 8751: len2Half = len2 / 2; 8751: secondCut = pivot + len2Half; 8751: firstCut = qUpperBound(begin, pivot, *secondCut, lessThan); 8751: } 8751: 8751: qRotate(firstCut, pivot, secondCut); 8751: const RandomAccessIterator newPivot = firstCut + len2Half; 8751: qMerge(begin, firstCut, newPivot, t, lessThan); 8751: qMerge(newPivot, secondCut, end, t, lessThan); 8751: } 8751: 8751: template 8751: void qStableSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &t, LessThan lessThan) 8751: { 8751: const int span = end - begin; 8751: if (span < 2) 8751: return; 8751: 8751: const RandomAccessIterator middle = begin + span / 2; 8751: qStableSortHelper(begin, middle, t, lessThan); 8751: qStableSortHelper(middle, end, t, lessThan); 8751: qMerge(begin, middle, end, t, lessThan); 8751: } 8751: 8751: template 8751: inline void qStableSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &dummy) 8751: { 8751: qStableSortHelper(begin, end, dummy, qLess()); 8751: } 8751: 8751: template 8751: RandomAccessIterator qLowerBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8751: { 8751: RandomAccessIterator middle; 8751: int n = int(end - begin); 8751: int half; 8751: 8751: while (n > 0) { 8751: half = n >> 1; 8751: middle = begin + half; 8751: if (lessThan(*middle, value)) { 8751: begin = middle + 1; 8751: n -= half + 1; 8751: } else { 8751: n = half; 8751: } 8751: } 8751: return begin; 8751: } 8751: 8751: 8751: template 8751: RandomAccessIterator qUpperBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8751: { 8751: RandomAccessIterator middle; 8751: int n = end - begin; 8751: int half; 8751: 8751: while (n > 0) { 8751: half = n >> 1; 8751: middle = begin + half; 8751: if (lessThan(value, *middle)) { 8751: n = half; 8751: } else { 8751: begin = middle + 1; 8751: n -= half + 1; 8751: } 8751: } 8751: return begin; 8751: } 8751: 8751: template 8751: RandomAccessIterator qBinaryFindHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8751: { 8751: RandomAccessIterator it = qLowerBoundHelper(begin, end, value, lessThan); 8751: 8751: if (it == end || lessThan(value, *it)) 8751: return end; 8751: 8751: return it; 8751: } 8751: # 536 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8751: constexpr inline __attribute__((always_inline)) uint qt_builtin_ctzs(quint16 v) noexcept 8751: { 8751: 8751: 8751: 8751: return __builtin_ctz(v); 8751: 8751: } 8751: 8751: constexpr inline __attribute__((always_inline)) uint qt_builtin_clzs(quint16 v) noexcept 8751: { 8751: 8751: 8751: 8751: return __builtin_clz(v) - 16U; 8751: 8751: } 8751: 8751: constexpr inline __attribute__((always_inline)) uint qt_builtin_ctz(quint32 v) noexcept 8751: { 8751: return __builtin_ctz(v); 8751: } 8751: 8751: constexpr inline __attribute__((always_inline)) uint qt_builtin_clz(quint32 v) noexcept 8751: { 8751: return __builtin_clz(v); 8751: } 8751: 8751: constexpr inline __attribute__((always_inline)) uint qt_builtin_ctzll(quint64 v) noexcept 8751: { 8751: return __builtin_ctzll(v); 8751: } 8751: 8751: constexpr inline __attribute__((always_inline)) uint qt_builtin_clzll(quint64 v) noexcept 8751: { 8751: return __builtin_clzll(v); 8751: } 8751: 8751: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcount(quint32 v) noexcept 8751: { 8751: return __builtin_popcount(v); 8751: } 8751: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcount(quint8 v) noexcept 8751: { 8751: return __builtin_popcount(v); 8751: } 8751: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcount(quint16 v) noexcept 8751: { 8751: return __builtin_popcount(v); 8751: } 8751: 8751: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcountll(quint64 v) noexcept 8751: { 8751: return __builtin_popcountll(v); 8751: } 8751: # 681 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8751: } 8751: 8751: __attribute__((const)) constexpr inline uint qPopulationCount(quint32 v) noexcept 8751: { 8751: 8751: return QAlgorithmsPrivate::qt_builtin_popcount(v); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: } 8751: 8751: __attribute__((const)) constexpr inline uint qPopulationCount(quint8 v) noexcept 8751: { 8751: 8751: return QAlgorithmsPrivate::qt_builtin_popcount(v); 8751: 8751: 8751: 8751: 8751: } 8751: 8751: __attribute__((const)) constexpr inline uint qPopulationCount(quint16 v) noexcept 8751: { 8751: 8751: return QAlgorithmsPrivate::qt_builtin_popcount(v); 8751: 8751: 8751: 8751: 8751: 8751: } 8751: 8751: __attribute__((const)) constexpr inline uint qPopulationCount(quint64 v) noexcept 8751: { 8751: 8751: return QAlgorithmsPrivate::qt_builtin_popcountll(v); 8751: # 730 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8751: } 8751: 8751: __attribute__((const)) constexpr inline uint qPopulationCount(long unsigned int v) noexcept 8751: { 8751: return qPopulationCount(static_cast(v)); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: inline uint qCountTrailingZeroBits(quint32 v) noexcept 8751: { 8751: 8751: return v ? QAlgorithmsPrivate::qt_builtin_ctz(v) : 32U; 8751: # 758 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8751: } 8751: 8751: inline uint qCountTrailingZeroBits(quint8 v) noexcept 8751: { 8751: 8751: return v ? QAlgorithmsPrivate::qt_builtin_ctz(v) : 8U; 8751: # 773 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8751: } 8751: 8751: inline uint qCountTrailingZeroBits(quint16 v) noexcept 8751: { 8751: 8751: return v ? QAlgorithmsPrivate::qt_builtin_ctzs(v) : 16U; 8751: # 789 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8751: } 8751: 8751: inline uint qCountTrailingZeroBits(quint64 v) noexcept 8751: { 8751: 8751: return v ? QAlgorithmsPrivate::qt_builtin_ctzll(v) : 64; 8751: 8751: 8751: 8751: 8751: 8751: } 8751: 8751: inline uint qCountTrailingZeroBits(unsigned long v) noexcept 8751: { 8751: return qCountTrailingZeroBits(QIntegerForSizeof::Unsigned(v)); 8751: } 8751: 8751: inline uint qCountLeadingZeroBits(quint32 v) noexcept 8751: { 8751: 8751: return v ? QAlgorithmsPrivate::qt_builtin_clz(v) : 32U; 8751: # 820 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8751: } 8751: 8751: inline uint qCountLeadingZeroBits(quint8 v) noexcept 8751: { 8751: 8751: return v ? QAlgorithmsPrivate::qt_builtin_clz(v)-24U : 8U; 8751: 8751: 8751: 8751: 8751: 8751: 8751: } 8751: 8751: inline uint qCountLeadingZeroBits(quint16 v) noexcept 8751: { 8751: 8751: return v ? QAlgorithmsPrivate::qt_builtin_clzs(v) : 16U; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: } 8751: 8751: inline uint qCountLeadingZeroBits(quint64 v) noexcept 8751: { 8751: 8751: return v ? QAlgorithmsPrivate::qt_builtin_clzll(v) : 64U; 8751: # 860 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8751: } 8751: 8751: inline uint qCountLeadingZeroBits(unsigned long v) noexcept 8751: { 8751: return qCountLeadingZeroBits(QIntegerForSizeof::Unsigned(v)); 8751: } 8751: 8751: 8751: # 867 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8751: #pragma GCC diagnostic pop 8751: # 867 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qalgorithms.h" 3 4 8751: 8751: 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiterator.h" 1 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiterator.h" 3 4 8751: 8751: # 182 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiterator.h" 3 4 8751: 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 2 3 4 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhashfunctions.h" 1 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhashfunctions.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qpair.h" 1 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qpair.h" 3 4 8751: 8751: 8751: 8751: template 8751: struct QPair 8751: { 8751: typedef T1 first_type; 8751: typedef T2 second_type; 8751: 8751: constexpr QPair() 8751: noexcept((std::is_nothrow_default_constructible::value && std::is_nothrow_default_constructible::value)) 8751: 8751: : first(), second() {} 8751: constexpr QPair(const T1 &t1, const T2 &t2) 8751: noexcept((std::is_nothrow_copy_constructible::value && std::is_nothrow_copy_constructible::value)) 8751: 8751: : first(t1), second(t2) {} 8751: 8751: 8751: template 8751: constexpr QPair(const QPair &p) 8751: noexcept((std::is_nothrow_constructible::value && std::is_nothrow_constructible::value)) 8751: 8751: : first(p.first), second(p.second) {} 8751: template 8751: QPair &operator=(const QPair &p) 8751: noexcept((std::is_nothrow_assignable::value && std::is_nothrow_assignable::value)) 8751: 8751: { first = p.first; second = p.second; return *this; } 8751: 8751: template 8751: constexpr QPair(QPair &&p) 8751: noexcept((std::is_nothrow_constructible::value && std::is_nothrow_constructible::value)) 8751: 8751: 8751: : first(static_cast(p.first)), second(static_cast(p.second)) {} 8751: template 8751: QPair &operator=(QPair &&p) 8751: noexcept((std::is_nothrow_assignable::value && std::is_nothrow_assignable::value)) 8751: 8751: { first = std::move(p.first); second = std::move(p.second); return *this; } 8751: 8751: 8751: void swap(QPair &other) 8751: noexcept(noexcept(qSwap(other.first, other.first)) && noexcept(qSwap(other.second, other.second))) 8751: { 8751: 8751: qSwap(first, other.first); 8751: qSwap(second, other.second); 8751: } 8751: 8751: T1 first; 8751: T2 second; 8751: }; 8751: 8751: template 8751: void swap(QPair &lhs, QPair &rhs) noexcept(noexcept(lhs.swap(rhs))) 8751: { lhs.swap(rhs); } 8751: 8751: 8751: 8751: template 8751: class QTypeInfo > : public QTypeInfoMerger, T1, T2> {}; 8751: 8751: template 8751: constexpr inline bool operator==(const QPair &p1, const QPair &p2) 8751: noexcept(noexcept(p1.first == p2.first && p1.second == p2.second)) 8751: { return p1.first == p2.first && p1.second == p2.second; } 8751: 8751: template 8751: constexpr inline bool operator!=(const QPair &p1, const QPair &p2) 8751: noexcept(noexcept(!(p1 == p2))) 8751: { return !(p1 == p2); } 8751: 8751: template 8751: constexpr inline bool operator<(const QPair &p1, const QPair &p2) 8751: noexcept(noexcept(p1.first < p2.first || (!(p2.first < p1.first) && p1.second < p2.second))) 8751: { 8751: return p1.first < p2.first || (!(p2.first < p1.first) && p1.second < p2.second); 8751: } 8751: 8751: template 8751: constexpr inline bool operator>(const QPair &p1, const QPair &p2) 8751: noexcept(noexcept(p2 < p1)) 8751: { 8751: return p2 < p1; 8751: } 8751: 8751: template 8751: constexpr inline bool operator<=(const QPair &p1, const QPair &p2) 8751: noexcept(noexcept(!(p2 < p1))) 8751: { 8751: return !(p2 < p1); 8751: } 8751: 8751: template 8751: constexpr inline bool operator>=(const QPair &p1, const QPair &p2) 8751: noexcept(noexcept(!(p1 < p2))) 8751: { 8751: return !(p1 < p2); 8751: } 8751: 8751: template 8751: constexpr QPair qMakePair(const T1 &x, const T2 &y) 8751: noexcept(noexcept(QPair(x, y))) 8751: { 8751: return QPair(x, y); 8751: } 8751: 8751: 8751: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhashfunctions.h" 2 3 4 8751: 8751: # 1 "/usr/include/c++/8/numeric" 1 3 4 8751: # 58 "/usr/include/c++/8/numeric" 3 4 8751: 8751: # 59 "/usr/include/c++/8/numeric" 3 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/stl_numeric.h" 1 3 8751: # 65 "/usr/include/c++/8/bits/stl_numeric.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 80 "/usr/include/c++/8/bits/stl_numeric.h" 3 8751: template 8751: void 8751: iota(_ForwardIterator __first, _ForwardIterator __last, _Tp __value) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: for (; __first != __last; ++__first) 8751: { 8751: *__first = __value; 8751: ++__value; 8751: } 8751: } 8751: 8751: 8751: } 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 118 "/usr/include/c++/8/bits/stl_numeric.h" 3 8751: template 8751: inline _Tp 8751: accumulate(_InputIterator __first, _InputIterator __last, _Tp __init) 8751: { 8751: 8751: 8751: ; 8751: 8751: for (; __first != __last; ++__first) 8751: __init = __init + *__first; 8751: return __init; 8751: } 8751: # 144 "/usr/include/c++/8/bits/stl_numeric.h" 3 8751: template 8751: inline _Tp 8751: accumulate(_InputIterator __first, _InputIterator __last, _Tp __init, 8751: _BinaryOperation __binary_op) 8751: { 8751: 8751: 8751: ; 8751: 8751: for (; __first != __last; ++__first) 8751: __init = __binary_op(__init, *__first); 8751: return __init; 8751: } 8751: # 172 "/usr/include/c++/8/bits/stl_numeric.h" 3 8751: template 8751: inline _Tp 8751: inner_product(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _Tp __init) 8751: { 8751: 8751: 8751: 8751: ; 8751: 8751: for (; __first1 != __last1; ++__first1, (void)++__first2) 8751: __init = __init + (*__first1 * *__first2); 8751: return __init; 8751: } 8751: # 203 "/usr/include/c++/8/bits/stl_numeric.h" 3 8751: template 8751: inline _Tp 8751: inner_product(_InputIterator1 __first1, _InputIterator1 __last1, 8751: _InputIterator2 __first2, _Tp __init, 8751: _BinaryOperation1 __binary_op1, 8751: _BinaryOperation2 __binary_op2) 8751: { 8751: 8751: 8751: 8751: ; 8751: 8751: for (; __first1 != __last1; ++__first1, (void)++__first2) 8751: __init = __binary_op1(__init, __binary_op2(*__first1, *__first2)); 8751: return __init; 8751: } 8751: # 235 "/usr/include/c++/8/bits/stl_numeric.h" 3 8751: template 8751: _OutputIterator 8751: partial_sum(_InputIterator __first, _InputIterator __last, 8751: _OutputIterator __result) 8751: { 8751: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: if (__first == __last) 8751: return __result; 8751: _ValueType __value = *__first; 8751: *__result = __value; 8751: while (++__first != __last) 8751: { 8751: __value = __value + *__first; 8751: *++__result = __value; 8751: } 8751: return ++__result; 8751: } 8751: # 275 "/usr/include/c++/8/bits/stl_numeric.h" 3 8751: template 8751: _OutputIterator 8751: partial_sum(_InputIterator __first, _InputIterator __last, 8751: _OutputIterator __result, _BinaryOperation __binary_op) 8751: { 8751: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: if (__first == __last) 8751: return __result; 8751: _ValueType __value = *__first; 8751: *__result = __value; 8751: while (++__first != __last) 8751: { 8751: __value = __binary_op(__value, *__first); 8751: *++__result = __value; 8751: } 8751: return ++__result; 8751: } 8751: # 315 "/usr/include/c++/8/bits/stl_numeric.h" 3 8751: template 8751: _OutputIterator 8751: adjacent_difference(_InputIterator __first, 8751: _InputIterator __last, _OutputIterator __result) 8751: { 8751: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: if (__first == __last) 8751: return __result; 8751: _ValueType __value = *__first; 8751: *__result = __value; 8751: while (++__first != __last) 8751: { 8751: _ValueType __tmp = *__first; 8751: *++__result = __tmp - __value; 8751: __value = std::move(__tmp); 8751: } 8751: return ++__result; 8751: } 8751: # 357 "/usr/include/c++/8/bits/stl_numeric.h" 3 8751: template 8751: _OutputIterator 8751: adjacent_difference(_InputIterator __first, _InputIterator __last, 8751: _OutputIterator __result, _BinaryOperation __binary_op) 8751: { 8751: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8751: 8751: 8751: 8751: 8751: 8751: ; 8751: 8751: if (__first == __last) 8751: return __result; 8751: _ValueType __value = *__first; 8751: *__result = __value; 8751: while (++__first != __last) 8751: { 8751: _ValueType __tmp = *__first; 8751: *++__result = __binary_op(__tmp, __value); 8751: __value = std::move(__tmp); 8751: } 8751: return ++__result; 8751: } 8751: 8751: 8751: } 8751: # 63 "/usr/include/c++/8/numeric" 2 3 8751: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhashfunctions.h" 2 3 4 8751: # 59 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhashfunctions.h" 3 4 8751: 8751: 8751: class QBitArray; 8751: class QByteArray; 8751: class QString; 8751: class QStringRef; 8751: class QLatin1String; 8751: 8751: __attribute__((visibility("default"))) int qGlobalQHashSeed(); 8751: __attribute__((visibility("default"))) void qSetGlobalQHashSeed(int newSeed); 8751: 8751: __attribute__((visibility("default"))) __attribute__((pure)) uint qHashBits(const void *p, size_t size, uint seed = 0) noexcept; 8751: 8751: __attribute__((const)) constexpr inline uint qHash(char key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8751: __attribute__((const)) constexpr inline uint qHash(uchar key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8751: __attribute__((const)) constexpr inline uint qHash(signed char key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8751: __attribute__((const)) constexpr inline uint qHash(ushort key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8751: __attribute__((const)) constexpr inline uint qHash(short key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8751: __attribute__((const)) constexpr inline uint qHash(uint key, uint seed = 0) noexcept { return key ^ seed; } 8751: __attribute__((const)) constexpr inline uint qHash(int key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8751: __attribute__((const)) constexpr inline uint qHash(ulong key, uint seed = 0) noexcept 8751: { 8751: return (sizeof(ulong) > sizeof(uint)) 8751: ? (uint(((key >> (8 * sizeof(uint) - 1)) ^ key) & (~0U)) ^ seed) 8751: : (uint(key & (~0U)) ^ seed); 8751: } 8751: __attribute__((const)) constexpr inline uint qHash(long key, uint seed = 0) noexcept { return qHash(ulong(key), seed); } 8751: __attribute__((const)) constexpr inline uint qHash(quint64 key, uint seed = 0) noexcept 8751: { 8751: return uint(((key >> (8 * sizeof(uint) - 1)) ^ key) & (~0U)) ^ seed; 8751: } 8751: __attribute__((const)) constexpr inline uint qHash(qint64 key, uint seed = 0) noexcept { return qHash(quint64(key), seed); } 8751: __attribute__((visibility("default"))) __attribute__((const)) uint qHash(float key, uint seed = 0) noexcept; 8751: __attribute__((visibility("default"))) __attribute__((const)) uint qHash(double key, uint seed = 0) noexcept; 8751: 8751: __attribute__((visibility("default"))) __attribute__((const)) uint qHash(long double key, uint seed = 0) noexcept; 8751: 8751: __attribute__((const)) constexpr inline uint qHash(const QChar key, uint seed = 0) noexcept { return qHash(key.unicode(), seed); } 8751: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QByteArray &key, uint seed = 0) noexcept; 8751: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QString &key, uint seed = 0) noexcept; 8751: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QStringRef &key, uint seed = 0) noexcept; 8751: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QBitArray &key, uint seed = 0) noexcept; 8751: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(QLatin1String key, uint seed = 0) noexcept; 8751: __attribute__((visibility("default"))) __attribute__((pure)) uint qt_hash(const QString &key) noexcept; 8751: __attribute__((visibility("default"))) __attribute__((pure)) uint qt_hash(const QStringRef &key) noexcept; 8751: 8751: template inline uint qHash(const T *key, uint seed = 0) noexcept 8751: { 8751: return qHash(reinterpret_cast(key), seed); 8751: } 8751: template inline uint qHash(const T &t, uint seed) 8751: noexcept(noexcept(qHash(t))) 8751: { return qHash(t) ^ seed; } 8751: 8751: namespace QtPrivate { 8751: 8751: struct QHashCombine { 8751: typedef uint result_type; 8751: template 8751: constexpr result_type operator()(uint seed, const T &t) const noexcept(noexcept(qHash(t))) 8751: 8751: { return seed ^ (qHash(t) + 0x9e3779b9 + (seed << 6) + (seed >> 2)) ; } 8751: }; 8751: 8751: struct QHashCombineCommutative { 8751: 8751: 8751: 8751: 8751: 8751: typedef uint result_type; 8751: template 8751: constexpr result_type operator()(uint seed, const T &t) const noexcept(noexcept(qHash(t))) 8751: { return seed + qHash(t); } 8751: }; 8751: 8751: } 8751: 8751: template 8751: inline uint qHashRange(InputIterator first, InputIterator last, uint seed = 0) 8751: noexcept(noexcept(qHash(*first))) 8751: { 8751: return std::accumulate(first, last, seed, QtPrivate::QHashCombine()); 8751: } 8751: 8751: template 8751: inline uint qHashRangeCommutative(InputIterator first, InputIterator last, uint seed = 0) 8751: noexcept(noexcept(qHash(*first))) 8751: { 8751: return std::accumulate(first, last, seed, QtPrivate::QHashCombineCommutative()); 8751: } 8751: 8751: template inline uint qHash(const QPair &key, uint seed = 0) 8751: noexcept(noexcept(qHash(key.first, seed)) && noexcept(qHash(key.second, seed))) 8751: { 8751: uint h1 = qHash(key.first, seed); 8751: uint h2 = qHash(key.second, seed); 8751: return ((h1 << 16) | (h1 >> 16)) ^ h2 ^ seed; 8751: } 8751: 8751: template inline uint qHash(const std::pair &key, uint seed = 0) 8751: noexcept(noexcept(qHash(key.first, seed)) && noexcept(qHash(key.second, seed))) 8751: { 8751: QtPrivate::QHashCombine hash; 8751: seed = hash(seed, key.first); 8751: seed = hash(seed, key.second); 8751: return seed; 8751: } 8751: 8751: 8751: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 2 3 4 8751: 8751: 8751: # 1 "/usr/include/c++/8/list" 1 3 4 8751: # 58 "/usr/include/c++/8/list" 3 4 8751: 8751: # 59 "/usr/include/c++/8/list" 3 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/stl_list.h" 1 3 8751: # 63 "/usr/include/c++/8/bits/stl_list.h" 3 8751: # 1 "/usr/include/c++/8/bits/allocated_ptr.h" 1 3 8751: # 40 "/usr/include/c++/8/bits/allocated_ptr.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: template 8751: struct __allocated_ptr 8751: { 8751: using pointer = typename allocator_traits<_Alloc>::pointer; 8751: using value_type = typename allocator_traits<_Alloc>::value_type; 8751: 8751: 8751: __allocated_ptr(_Alloc& __a, pointer __ptr) noexcept 8751: : _M_alloc(std::__addressof(__a)), _M_ptr(__ptr) 8751: { } 8751: 8751: 8751: template>> 8751: __allocated_ptr(_Alloc& __a, _Ptr __ptr) 8751: : _M_alloc(std::__addressof(__a)), 8751: _M_ptr(pointer_traits::pointer_to(*__ptr)) 8751: { } 8751: 8751: 8751: __allocated_ptr(__allocated_ptr&& __gd) noexcept 8751: : _M_alloc(__gd._M_alloc), _M_ptr(__gd._M_ptr) 8751: { __gd._M_ptr = nullptr; } 8751: 8751: 8751: ~__allocated_ptr() 8751: { 8751: if (_M_ptr != nullptr) 8751: std::allocator_traits<_Alloc>::deallocate(*_M_alloc, _M_ptr, 1); 8751: } 8751: 8751: 8751: __allocated_ptr& 8751: operator=(std::nullptr_t) noexcept 8751: { 8751: _M_ptr = nullptr; 8751: return *this; 8751: } 8751: 8751: 8751: value_type* get() { return std::__to_address(_M_ptr); } 8751: 8751: private: 8751: _Alloc* _M_alloc; 8751: pointer _M_ptr; 8751: }; 8751: 8751: 8751: template 8751: __allocated_ptr<_Alloc> 8751: __allocate_guarded(_Alloc& __a) 8751: { 8751: return { __a, std::allocator_traits<_Alloc>::allocate(__a, 1) }; 8751: } 8751: 8751: 8751: } 8751: # 64 "/usr/include/c++/8/bits/stl_list.h" 2 3 8751: # 1 "/usr/include/c++/8/ext/aligned_buffer.h" 1 3 8751: # 32 "/usr/include/c++/8/ext/aligned_buffer.h" 3 8751: 8751: # 33 "/usr/include/c++/8/ext/aligned_buffer.h" 3 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: namespace __gnu_cxx 8751: { 8751: 8751: 8751: 8751: 8751: template 8751: struct __aligned_membuf 8751: { 8751: 8751: 8751: 8751: struct _Tp2 { _Tp _M_t; }; 8751: 8751: alignas(__alignof__(_Tp2::_M_t)) unsigned char _M_storage[sizeof(_Tp)]; 8751: 8751: __aligned_membuf() = default; 8751: 8751: 8751: __aligned_membuf(std::nullptr_t) { } 8751: 8751: void* 8751: _M_addr() noexcept 8751: { return static_cast(&_M_storage); } 8751: 8751: const void* 8751: _M_addr() const noexcept 8751: { return static_cast(&_M_storage); } 8751: 8751: _Tp* 8751: _M_ptr() noexcept 8751: { return static_cast<_Tp*>(_M_addr()); } 8751: 8751: const _Tp* 8751: _M_ptr() const noexcept 8751: { return static_cast(_M_addr()); } 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct __aligned_buffer 8751: : std::aligned_storage::value> 8751: { 8751: typename 8751: std::aligned_storage::value>::type 8751: _M_storage; 8751: 8751: __aligned_buffer() = default; 8751: 8751: 8751: __aligned_buffer(std::nullptr_t) { } 8751: 8751: void* 8751: _M_addr() noexcept 8751: { 8751: return static_cast(&_M_storage); 8751: } 8751: 8751: const void* 8751: _M_addr() const noexcept 8751: { 8751: return static_cast(&_M_storage); 8751: } 8751: 8751: _Tp* 8751: _M_ptr() noexcept 8751: { return static_cast<_Tp*>(_M_addr()); } 8751: 8751: const _Tp* 8751: _M_ptr() const noexcept 8751: { return static_cast(_M_addr()); } 8751: }; 8751: 8751: } 8751: # 65 "/usr/include/c++/8/bits/stl_list.h" 2 3 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: namespace __detail 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: struct _List_node_base 8751: { 8751: _List_node_base* _M_next; 8751: _List_node_base* _M_prev; 8751: 8751: static void 8751: swap(_List_node_base& __x, _List_node_base& __y) noexcept; 8751: 8751: void 8751: _M_transfer(_List_node_base* const __first, 8751: _List_node_base* const __last) noexcept; 8751: 8751: void 8751: _M_reverse() noexcept; 8751: 8751: void 8751: _M_hook(_List_node_base* const __position) noexcept; 8751: 8751: void 8751: _M_unhook() noexcept; 8751: }; 8751: 8751: 8751: struct _List_node_header : public _List_node_base 8751: { 8751: 8751: std::size_t _M_size; 8751: 8751: 8751: _List_node_header() noexcept 8751: { _M_init(); } 8751: 8751: 8751: _List_node_header(_List_node_header&& __x) noexcept 8751: : _List_node_base{ __x._M_next, __x._M_prev } 8751: 8751: , _M_size(__x._M_size) 8751: 8751: { 8751: if (__x._M_base()->_M_next == __x._M_base()) 8751: this->_M_next = this->_M_prev = this; 8751: else 8751: { 8751: this->_M_next->_M_prev = this->_M_prev->_M_next = this->_M_base(); 8751: __x._M_init(); 8751: } 8751: } 8751: 8751: void 8751: _M_move_nodes(_List_node_header&& __x) 8751: { 8751: _List_node_base* const __xnode = __x._M_base(); 8751: if (__xnode->_M_next == __xnode) 8751: _M_init(); 8751: else 8751: { 8751: _List_node_base* const __node = this->_M_base(); 8751: __node->_M_next = __xnode->_M_next; 8751: __node->_M_prev = __xnode->_M_prev; 8751: __node->_M_next->_M_prev = __node->_M_prev->_M_next = __node; 8751: 8751: _M_size = __x._M_size; 8751: 8751: __x._M_init(); 8751: } 8751: } 8751: 8751: 8751: void 8751: _M_init() noexcept 8751: { 8751: this->_M_next = this->_M_prev = this; 8751: 8751: this->_M_size = 0; 8751: 8751: } 8751: 8751: private: 8751: _List_node_base* _M_base() { return this; } 8751: }; 8751: } 8751: 8751: 8751: 8751: 8751: template 8751: struct _List_node : public __detail::_List_node_base 8751: { 8751: 8751: __gnu_cxx::__aligned_membuf<_Tp> _M_storage; 8751: _Tp* _M_valptr() { return _M_storage._M_ptr(); } 8751: _Tp const* _M_valptr() const { return _M_storage._M_ptr(); } 8751: 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct _List_iterator 8751: { 8751: typedef _List_iterator<_Tp> _Self; 8751: typedef _List_node<_Tp> _Node; 8751: 8751: typedef ptrdiff_t difference_type; 8751: typedef std::bidirectional_iterator_tag iterator_category; 8751: typedef _Tp value_type; 8751: typedef _Tp* pointer; 8751: typedef _Tp& reference; 8751: 8751: _List_iterator() noexcept 8751: : _M_node() { } 8751: 8751: explicit 8751: _List_iterator(__detail::_List_node_base* __x) noexcept 8751: : _M_node(__x) { } 8751: 8751: _Self 8751: _M_const_cast() const noexcept 8751: { return *this; } 8751: 8751: 8751: reference 8751: operator*() const noexcept 8751: { return *static_cast<_Node*>(_M_node)->_M_valptr(); } 8751: 8751: pointer 8751: operator->() const noexcept 8751: { return static_cast<_Node*>(_M_node)->_M_valptr(); } 8751: 8751: _Self& 8751: operator++() noexcept 8751: { 8751: _M_node = _M_node->_M_next; 8751: return *this; 8751: } 8751: 8751: _Self 8751: operator++(int) noexcept 8751: { 8751: _Self __tmp = *this; 8751: _M_node = _M_node->_M_next; 8751: return __tmp; 8751: } 8751: 8751: _Self& 8751: operator--() noexcept 8751: { 8751: _M_node = _M_node->_M_prev; 8751: return *this; 8751: } 8751: 8751: _Self 8751: operator--(int) noexcept 8751: { 8751: _Self __tmp = *this; 8751: _M_node = _M_node->_M_prev; 8751: return __tmp; 8751: } 8751: 8751: bool 8751: operator==(const _Self& __x) const noexcept 8751: { return _M_node == __x._M_node; } 8751: 8751: bool 8751: operator!=(const _Self& __x) const noexcept 8751: { return _M_node != __x._M_node; } 8751: 8751: 8751: __detail::_List_node_base* _M_node; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct _List_const_iterator 8751: { 8751: typedef _List_const_iterator<_Tp> _Self; 8751: typedef const _List_node<_Tp> _Node; 8751: typedef _List_iterator<_Tp> iterator; 8751: 8751: typedef ptrdiff_t difference_type; 8751: typedef std::bidirectional_iterator_tag iterator_category; 8751: typedef _Tp value_type; 8751: typedef const _Tp* pointer; 8751: typedef const _Tp& reference; 8751: 8751: _List_const_iterator() noexcept 8751: : _M_node() { } 8751: 8751: explicit 8751: _List_const_iterator(const __detail::_List_node_base* __x) 8751: noexcept 8751: : _M_node(__x) { } 8751: 8751: _List_const_iterator(const iterator& __x) noexcept 8751: : _M_node(__x._M_node) { } 8751: 8751: iterator 8751: _M_const_cast() const noexcept 8751: { return iterator(const_cast<__detail::_List_node_base*>(_M_node)); } 8751: 8751: 8751: reference 8751: operator*() const noexcept 8751: { return *static_cast<_Node*>(_M_node)->_M_valptr(); } 8751: 8751: pointer 8751: operator->() const noexcept 8751: { return static_cast<_Node*>(_M_node)->_M_valptr(); } 8751: 8751: _Self& 8751: operator++() noexcept 8751: { 8751: _M_node = _M_node->_M_next; 8751: return *this; 8751: } 8751: 8751: _Self 8751: operator++(int) noexcept 8751: { 8751: _Self __tmp = *this; 8751: _M_node = _M_node->_M_next; 8751: return __tmp; 8751: } 8751: 8751: _Self& 8751: operator--() noexcept 8751: { 8751: _M_node = _M_node->_M_prev; 8751: return *this; 8751: } 8751: 8751: _Self 8751: operator--(int) noexcept 8751: { 8751: _Self __tmp = *this; 8751: _M_node = _M_node->_M_prev; 8751: return __tmp; 8751: } 8751: 8751: bool 8751: operator==(const _Self& __x) const noexcept 8751: { return _M_node == __x._M_node; } 8751: 8751: bool 8751: operator!=(const _Self& __x) const noexcept 8751: { return _M_node != __x._M_node; } 8751: 8751: 8751: const __detail::_List_node_base* _M_node; 8751: }; 8751: 8751: template 8751: inline bool 8751: operator==(const _List_iterator<_Val>& __x, 8751: const _List_const_iterator<_Val>& __y) noexcept 8751: { return __x._M_node == __y._M_node; } 8751: 8751: template 8751: inline bool 8751: operator!=(const _List_iterator<_Val>& __x, 8751: const _List_const_iterator<_Val>& __y) noexcept 8751: { return __x._M_node != __y._M_node; } 8751: 8751: namespace __cxx11 { 8751: 8751: template 8751: class _List_base 8751: { 8751: protected: 8751: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8751: rebind<_Tp>::other _Tp_alloc_type; 8751: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tp_alloc_traits; 8751: typedef typename _Tp_alloc_traits::template 8751: rebind<_List_node<_Tp> >::other _Node_alloc_type; 8751: typedef __gnu_cxx::__alloc_traits<_Node_alloc_type> _Node_alloc_traits; 8751: 8751: 8751: static size_t 8751: _S_distance(const __detail::_List_node_base* __first, 8751: const __detail::_List_node_base* __last) 8751: { 8751: size_t __n = 0; 8751: while (__first != __last) 8751: { 8751: __first = __first->_M_next; 8751: ++__n; 8751: } 8751: return __n; 8751: } 8751: 8751: 8751: struct _List_impl 8751: : public _Node_alloc_type 8751: { 8751: __detail::_List_node_header _M_node; 8751: 8751: _List_impl() noexcept(noexcept(_Node_alloc_type())) 8751: : _Node_alloc_type() 8751: { } 8751: 8751: _List_impl(const _Node_alloc_type& __a) noexcept 8751: : _Node_alloc_type(__a) 8751: { } 8751: 8751: 8751: _List_impl(_List_impl&&) = default; 8751: 8751: _List_impl(_Node_alloc_type&& __a, _List_impl&& __x) 8751: : _Node_alloc_type(std::move(__a)), _M_node(std::move(__x._M_node)) 8751: { } 8751: 8751: _List_impl(_Node_alloc_type&& __a) noexcept 8751: : _Node_alloc_type(std::move(__a)) 8751: { } 8751: 8751: }; 8751: 8751: _List_impl _M_impl; 8751: 8751: 8751: size_t _M_get_size() const { return _M_impl._M_node._M_size; } 8751: 8751: void _M_set_size(size_t __n) { _M_impl._M_node._M_size = __n; } 8751: 8751: void _M_inc_size(size_t __n) { _M_impl._M_node._M_size += __n; } 8751: 8751: void _M_dec_size(size_t __n) { _M_impl._M_node._M_size -= __n; } 8751: 8751: 8751: size_t 8751: _M_distance(const __detail::_List_node_base* __first, 8751: const __detail::_List_node_base* __last) const 8751: { return _S_distance(__first, __last); } 8751: 8751: 8751: size_t _M_node_count() const { return _M_get_size(); } 8751: # 447 "/usr/include/c++/8/bits/stl_list.h" 3 8751: typename _Node_alloc_traits::pointer 8751: _M_get_node() 8751: { return _Node_alloc_traits::allocate(_M_impl, 1); } 8751: 8751: void 8751: _M_put_node(typename _Node_alloc_traits::pointer __p) noexcept 8751: { _Node_alloc_traits::deallocate(_M_impl, __p, 1); } 8751: 8751: public: 8751: typedef _Alloc allocator_type; 8751: 8751: _Node_alloc_type& 8751: _M_get_Node_allocator() noexcept 8751: { return _M_impl; } 8751: 8751: const _Node_alloc_type& 8751: _M_get_Node_allocator() const noexcept 8751: { return _M_impl; } 8751: 8751: 8751: _List_base() = default; 8751: 8751: 8751: 8751: 8751: _List_base(const _Node_alloc_type& __a) noexcept 8751: : _M_impl(__a) 8751: { } 8751: 8751: 8751: _List_base(_List_base&&) = default; 8751: 8751: 8751: _List_base(_List_base&& __x, _Node_alloc_type&& __a) 8751: : _M_impl(std::move(__a)) 8751: { 8751: if (__x._M_get_Node_allocator() == _M_get_Node_allocator()) 8751: _M_move_nodes(std::move(__x)); 8751: 8751: } 8751: 8751: 8751: 8751: _List_base(_Node_alloc_type&& __a, _List_base&& __x) 8751: : _M_impl(std::move(__a), std::move(__x._M_impl)) 8751: { } 8751: 8751: 8751: _List_base(_Node_alloc_type&& __a) 8751: : _M_impl(std::move(__a)) 8751: { } 8751: 8751: void 8751: _M_move_nodes(_List_base&& __x) 8751: { _M_impl._M_node._M_move_nodes(std::move(__x._M_impl._M_node)); } 8751: 8751: 8751: 8751: ~_List_base() noexcept 8751: { _M_clear(); } 8751: 8751: void 8751: _M_clear() noexcept; 8751: 8751: void 8751: _M_init() noexcept 8751: { this->_M_impl._M_node._M_init(); } 8751: }; 8751: # 562 "/usr/include/c++/8/bits/stl_list.h" 3 8751: template > 8751: class list : protected _List_base<_Tp, _Alloc> 8751: { 8751: # 575 "/usr/include/c++/8/bits/stl_list.h" 3 8751: static_assert(is_same::type, _Tp>::value, 8751: "std::list must have a non-const, non-volatile value_type"); 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef _List_base<_Tp, _Alloc> _Base; 8751: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 8751: typedef typename _Base::_Tp_alloc_traits _Tp_alloc_traits; 8751: typedef typename _Base::_Node_alloc_type _Node_alloc_type; 8751: typedef typename _Base::_Node_alloc_traits _Node_alloc_traits; 8751: 8751: public: 8751: typedef _Tp value_type; 8751: typedef typename _Tp_alloc_traits::pointer pointer; 8751: typedef typename _Tp_alloc_traits::const_pointer const_pointer; 8751: typedef typename _Tp_alloc_traits::reference reference; 8751: typedef typename _Tp_alloc_traits::const_reference const_reference; 8751: typedef _List_iterator<_Tp> iterator; 8751: typedef _List_const_iterator<_Tp> const_iterator; 8751: typedef std::reverse_iterator const_reverse_iterator; 8751: typedef std::reverse_iterator reverse_iterator; 8751: typedef size_t size_type; 8751: typedef ptrdiff_t difference_type; 8751: typedef _Alloc allocator_type; 8751: 8751: protected: 8751: 8751: 8751: typedef _List_node<_Tp> _Node; 8751: 8751: using _Base::_M_impl; 8751: using _Base::_M_put_node; 8751: using _Base::_M_get_node; 8751: using _Base::_M_get_Node_allocator; 8751: # 637 "/usr/include/c++/8/bits/stl_list.h" 3 8751: template 8751: _Node* 8751: _M_create_node(_Args&&... __args) 8751: { 8751: auto __p = this->_M_get_node(); 8751: auto& __alloc = _M_get_Node_allocator(); 8751: __allocated_ptr<_Node_alloc_type> __guard{__alloc, __p}; 8751: _Node_alloc_traits::construct(__alloc, __p->_M_valptr(), 8751: std::forward<_Args>(__args)...); 8751: __guard = nullptr; 8751: return __p; 8751: } 8751: 8751: 8751: 8751: static size_t 8751: _S_distance(const_iterator __first, const_iterator __last) 8751: { return std::distance(__first, __last); } 8751: 8751: 8751: size_t 8751: _M_node_count() const 8751: { return this->_M_get_size(); } 8751: # 672 "/usr/include/c++/8/bits/stl_list.h" 3 8751: public: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: list() = default; 8751: # 689 "/usr/include/c++/8/bits/stl_list.h" 3 8751: explicit 8751: list(const allocator_type& __a) noexcept 8751: : _Base(_Node_alloc_type(__a)) { } 8751: # 702 "/usr/include/c++/8/bits/stl_list.h" 3 8751: explicit 8751: list(size_type __n, const allocator_type& __a = allocator_type()) 8751: : _Base(_Node_alloc_type(__a)) 8751: { _M_default_initialize(__n); } 8751: # 715 "/usr/include/c++/8/bits/stl_list.h" 3 8751: list(size_type __n, const value_type& __value, 8751: const allocator_type& __a = allocator_type()) 8751: : _Base(_Node_alloc_type(__a)) 8751: { _M_fill_initialize(__n, __value); } 8751: # 742 "/usr/include/c++/8/bits/stl_list.h" 3 8751: list(const list& __x) 8751: : _Base(_Node_alloc_traits:: 8751: _S_select_on_copy(__x._M_get_Node_allocator())) 8751: { _M_initialize_dispatch(__x.begin(), __x.end(), __false_type()); } 8751: # 755 "/usr/include/c++/8/bits/stl_list.h" 3 8751: list(list&&) = default; 8751: # 765 "/usr/include/c++/8/bits/stl_list.h" 3 8751: list(initializer_list __l, 8751: const allocator_type& __a = allocator_type()) 8751: : _Base(_Node_alloc_type(__a)) 8751: { _M_initialize_dispatch(__l.begin(), __l.end(), __false_type()); } 8751: 8751: list(const list& __x, const allocator_type& __a) 8751: : _Base(_Node_alloc_type(__a)) 8751: { _M_initialize_dispatch(__x.begin(), __x.end(), __false_type()); } 8751: 8751: private: 8751: list(list&& __x, const allocator_type& __a, true_type) noexcept 8751: : _Base(_Node_alloc_type(__a), std::move(__x)) 8751: { } 8751: 8751: list(list&& __x, const allocator_type& __a, false_type) 8751: : _Base(_Node_alloc_type(__a)) 8751: { 8751: if (__x._M_get_Node_allocator() == this->_M_get_Node_allocator()) 8751: this->_M_move_nodes(std::move(__x)); 8751: else 8751: insert(begin(), std::__make_move_if_noexcept_iterator(__x.begin()), 8751: std::__make_move_if_noexcept_iterator(__x.end())); 8751: } 8751: 8751: public: 8751: list(list&& __x, const allocator_type& __a) 8751: noexcept(_Node_alloc_traits::_S_always_equal()) 8751: : list(std::move(__x), __a, 8751: typename _Node_alloc_traits::is_always_equal{}) 8751: { } 8751: # 808 "/usr/include/c++/8/bits/stl_list.h" 3 8751: template> 8751: list(_InputIterator __first, _InputIterator __last, 8751: const allocator_type& __a = allocator_type()) 8751: : _Base(_Node_alloc_type(__a)) 8751: { _M_initialize_dispatch(__first, __last, __false_type()); } 8751: # 834 "/usr/include/c++/8/bits/stl_list.h" 3 8751: ~list() = default; 8751: # 845 "/usr/include/c++/8/bits/stl_list.h" 3 8751: list& 8751: operator=(const list& __x); 8751: # 859 "/usr/include/c++/8/bits/stl_list.h" 3 8751: list& 8751: operator=(list&& __x) 8751: noexcept(_Node_alloc_traits::_S_nothrow_move()) 8751: { 8751: constexpr bool __move_storage = 8751: _Node_alloc_traits::_S_propagate_on_move_assign() 8751: || _Node_alloc_traits::_S_always_equal(); 8751: _M_move_assign(std::move(__x), __bool_constant<__move_storage>()); 8751: return *this; 8751: } 8751: # 877 "/usr/include/c++/8/bits/stl_list.h" 3 8751: list& 8751: operator=(initializer_list __l) 8751: { 8751: this->assign(__l.begin(), __l.end()); 8751: return *this; 8751: } 8751: # 895 "/usr/include/c++/8/bits/stl_list.h" 3 8751: void 8751: assign(size_type __n, const value_type& __val) 8751: { _M_fill_assign(__n, __val); } 8751: # 912 "/usr/include/c++/8/bits/stl_list.h" 3 8751: template> 8751: void 8751: assign(_InputIterator __first, _InputIterator __last) 8751: { _M_assign_dispatch(__first, __last, __false_type()); } 8751: # 936 "/usr/include/c++/8/bits/stl_list.h" 3 8751: void 8751: assign(initializer_list __l) 8751: { this->_M_assign_dispatch(__l.begin(), __l.end(), __false_type()); } 8751: 8751: 8751: 8751: allocator_type 8751: get_allocator() const noexcept 8751: { return allocator_type(_Base::_M_get_Node_allocator()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: iterator 8751: begin() noexcept 8751: { return iterator(this->_M_impl._M_node._M_next); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: begin() const noexcept 8751: { return const_iterator(this->_M_impl._M_node._M_next); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: iterator 8751: end() noexcept 8751: { return iterator(&this->_M_impl._M_node); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: end() const noexcept 8751: { return const_iterator(&this->_M_impl._M_node); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: rbegin() noexcept 8751: { return reverse_iterator(end()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: rbegin() const noexcept 8751: { return const_reverse_iterator(end()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: rend() noexcept 8751: { return reverse_iterator(begin()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: rend() const noexcept 8751: { return const_reverse_iterator(begin()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: cbegin() const noexcept 8751: { return const_iterator(this->_M_impl._M_node._M_next); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: cend() const noexcept 8751: { return const_iterator(&this->_M_impl._M_node); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: crbegin() const noexcept 8751: { return const_reverse_iterator(end()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: crend() const noexcept 8751: { return const_reverse_iterator(begin()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: bool 8751: empty() const noexcept 8751: { return this->_M_impl._M_node._M_next == &this->_M_impl._M_node; } 8751: 8751: 8751: size_type 8751: size() const noexcept 8751: { return _M_node_count(); } 8751: 8751: 8751: size_type 8751: max_size() const noexcept 8751: { return _Node_alloc_traits::max_size(_M_get_Node_allocator()); } 8751: # 1085 "/usr/include/c++/8/bits/stl_list.h" 3 8751: void 8751: resize(size_type __new_size); 8751: # 1098 "/usr/include/c++/8/bits/stl_list.h" 3 8751: void 8751: resize(size_type __new_size, const value_type& __x); 8751: # 1120 "/usr/include/c++/8/bits/stl_list.h" 3 8751: reference 8751: front() noexcept 8751: { return *begin(); } 8751: 8751: 8751: 8751: 8751: 8751: const_reference 8751: front() const noexcept 8751: { return *begin(); } 8751: 8751: 8751: 8751: 8751: 8751: reference 8751: back() noexcept 8751: { 8751: iterator __tmp = end(); 8751: --__tmp; 8751: return *__tmp; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: const_reference 8751: back() const noexcept 8751: { 8751: const_iterator __tmp = end(); 8751: --__tmp; 8751: return *__tmp; 8751: } 8751: # 1167 "/usr/include/c++/8/bits/stl_list.h" 3 8751: void 8751: push_front(const value_type& __x) 8751: { this->_M_insert(begin(), __x); } 8751: 8751: 8751: void 8751: push_front(value_type&& __x) 8751: { this->_M_insert(begin(), std::move(__x)); } 8751: 8751: template 8751: 8751: 8751: 8751: void 8751: 8751: emplace_front(_Args&&... __args) 8751: { 8751: this->_M_insert(begin(), std::forward<_Args>(__args)...); 8751: 8751: 8751: 8751: } 8751: # 1203 "/usr/include/c++/8/bits/stl_list.h" 3 8751: void 8751: pop_front() noexcept 8751: { this->_M_erase(begin()); } 8751: # 1217 "/usr/include/c++/8/bits/stl_list.h" 3 8751: void 8751: push_back(const value_type& __x) 8751: { this->_M_insert(end(), __x); } 8751: 8751: 8751: void 8751: push_back(value_type&& __x) 8751: { this->_M_insert(end(), std::move(__x)); } 8751: 8751: template 8751: 8751: 8751: 8751: void 8751: 8751: emplace_back(_Args&&... __args) 8751: { 8751: this->_M_insert(end(), std::forward<_Args>(__args)...); 8751: 8751: 8751: 8751: } 8751: # 1252 "/usr/include/c++/8/bits/stl_list.h" 3 8751: void 8751: pop_back() noexcept 8751: { this->_M_erase(iterator(this->_M_impl._M_node._M_prev)); } 8751: # 1269 "/usr/include/c++/8/bits/stl_list.h" 3 8751: template 8751: iterator 8751: emplace(const_iterator __position, _Args&&... __args); 8751: # 1284 "/usr/include/c++/8/bits/stl_list.h" 3 8751: iterator 8751: insert(const_iterator __position, const value_type& __x); 8751: # 1314 "/usr/include/c++/8/bits/stl_list.h" 3 8751: iterator 8751: insert(const_iterator __position, value_type&& __x) 8751: { return emplace(__position, std::move(__x)); } 8751: # 1333 "/usr/include/c++/8/bits/stl_list.h" 3 8751: iterator 8751: insert(const_iterator __p, initializer_list __l) 8751: { return this->insert(__p, __l.begin(), __l.end()); } 8751: # 1353 "/usr/include/c++/8/bits/stl_list.h" 3 8751: iterator 8751: insert(const_iterator __position, size_type __n, const value_type& __x); 8751: # 1392 "/usr/include/c++/8/bits/stl_list.h" 3 8751: template> 8751: iterator 8751: insert(const_iterator __position, _InputIterator __first, 8751: _InputIterator __last); 8751: # 1436 "/usr/include/c++/8/bits/stl_list.h" 3 8751: iterator 8751: 8751: erase(const_iterator __position) noexcept; 8751: # 1461 "/usr/include/c++/8/bits/stl_list.h" 3 8751: iterator 8751: 8751: erase(const_iterator __first, const_iterator __last) noexcept 8751: 8751: 8751: 8751: { 8751: while (__first != __last) 8751: __first = erase(__first); 8751: return __last._M_const_cast(); 8751: } 8751: # 1484 "/usr/include/c++/8/bits/stl_list.h" 3 8751: void 8751: swap(list& __x) noexcept 8751: { 8751: __detail::_List_node_base::swap(this->_M_impl._M_node, 8751: __x._M_impl._M_node); 8751: 8751: size_t __xsize = __x._M_get_size(); 8751: __x._M_set_size(this->_M_get_size()); 8751: this->_M_set_size(__xsize); 8751: 8751: _Node_alloc_traits::_S_on_swap(this->_M_get_Node_allocator(), 8751: __x._M_get_Node_allocator()); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: void 8751: clear() noexcept 8751: { 8751: _Base::_M_clear(); 8751: _Base::_M_init(); 8751: } 8751: # 1523 "/usr/include/c++/8/bits/stl_list.h" 3 8751: void 8751: 8751: splice(const_iterator __position, list&& __x) noexcept 8751: 8751: 8751: 8751: { 8751: if (!__x.empty()) 8751: { 8751: _M_check_equal_allocators(__x); 8751: 8751: this->_M_transfer(__position._M_const_cast(), 8751: __x.begin(), __x.end()); 8751: 8751: this->_M_inc_size(__x._M_get_size()); 8751: __x._M_set_size(0); 8751: } 8751: } 8751: 8751: 8751: void 8751: splice(const_iterator __position, list& __x) noexcept 8751: { splice(__position, std::move(__x)); } 8751: # 1559 "/usr/include/c++/8/bits/stl_list.h" 3 8751: void 8751: splice(const_iterator __position, list&& __x, const_iterator __i) noexcept 8751: # 1574 "/usr/include/c++/8/bits/stl_list.h" 3 8751: { 8751: iterator __j = __i._M_const_cast(); 8751: ++__j; 8751: if (__position == __i || __position == __j) 8751: return; 8751: 8751: if (this != std::__addressof(__x)) 8751: _M_check_equal_allocators(__x); 8751: 8751: this->_M_transfer(__position._M_const_cast(), 8751: __i._M_const_cast(), __j); 8751: 8751: this->_M_inc_size(1); 8751: __x._M_dec_size(1); 8751: } 8751: # 1601 "/usr/include/c++/8/bits/stl_list.h" 3 8751: void 8751: splice(const_iterator __position, list& __x, const_iterator __i) noexcept 8751: { splice(__position, std::move(__x), __i); } 8751: # 1620 "/usr/include/c++/8/bits/stl_list.h" 3 8751: void 8751: splice(const_iterator __position, list&& __x, const_iterator __first, 8751: const_iterator __last) noexcept 8751: # 1640 "/usr/include/c++/8/bits/stl_list.h" 3 8751: { 8751: if (__first != __last) 8751: { 8751: if (this != std::__addressof(__x)) 8751: _M_check_equal_allocators(__x); 8751: 8751: size_t __n = _S_distance(__first, __last); 8751: this->_M_inc_size(__n); 8751: __x._M_dec_size(__n); 8751: 8751: this->_M_transfer(__position._M_const_cast(), 8751: __first._M_const_cast(), 8751: __last._M_const_cast()); 8751: } 8751: } 8751: # 1670 "/usr/include/c++/8/bits/stl_list.h" 3 8751: void 8751: splice(const_iterator __position, list& __x, const_iterator __first, 8751: const_iterator __last) noexcept 8751: { splice(__position, std::move(__x), __first, __last); } 8751: # 1687 "/usr/include/c++/8/bits/stl_list.h" 3 8751: void 8751: remove(const _Tp& __value); 8751: # 1701 "/usr/include/c++/8/bits/stl_list.h" 3 8751: template 8751: void 8751: remove_if(_Predicate); 8751: # 1715 "/usr/include/c++/8/bits/stl_list.h" 3 8751: void 8751: unique(); 8751: # 1730 "/usr/include/c++/8/bits/stl_list.h" 3 8751: template 8751: void 8751: unique(_BinaryPredicate); 8751: # 1744 "/usr/include/c++/8/bits/stl_list.h" 3 8751: void 8751: merge(list&& __x); 8751: 8751: void 8751: merge(list& __x) 8751: { merge(std::move(__x)); } 8751: # 1769 "/usr/include/c++/8/bits/stl_list.h" 3 8751: template 8751: void 8751: merge(list&& __x, _StrictWeakOrdering __comp); 8751: 8751: template 8751: void 8751: merge(list& __x, _StrictWeakOrdering __comp) 8751: { merge(std::move(__x), __comp); } 8751: # 1788 "/usr/include/c++/8/bits/stl_list.h" 3 8751: void 8751: reverse() noexcept 8751: { this->_M_impl._M_node._M_reverse(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: void 8751: sort(); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: void 8751: sort(_StrictWeakOrdering); 8751: 8751: protected: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: void 8751: _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) 8751: { _M_fill_initialize(static_cast(__n), __x); } 8751: 8751: 8751: template 8751: void 8751: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 8751: __false_type) 8751: { 8751: for (; __first != __last; ++__first) 8751: 8751: emplace_back(*__first); 8751: 8751: 8751: 8751: } 8751: 8751: 8751: 8751: void 8751: _M_fill_initialize(size_type __n, const value_type& __x) 8751: { 8751: for (; __n; --__n) 8751: push_back(__x); 8751: } 8751: 8751: 8751: 8751: void 8751: _M_default_initialize(size_type __n) 8751: { 8751: for (; __n; --__n) 8751: emplace_back(); 8751: } 8751: 8751: 8751: void 8751: _M_default_append(size_type __n); 8751: # 1866 "/usr/include/c++/8/bits/stl_list.h" 3 8751: template 8751: void 8751: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 8751: { _M_fill_assign(__n, __val); } 8751: 8751: 8751: template 8751: void 8751: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 8751: __false_type); 8751: 8751: 8751: 8751: void 8751: _M_fill_assign(size_type __n, const value_type& __val); 8751: 8751: 8751: 8751: void 8751: _M_transfer(iterator __position, iterator __first, iterator __last) 8751: { __position._M_node->_M_transfer(__first._M_node, __last._M_node); } 8751: # 1898 "/usr/include/c++/8/bits/stl_list.h" 3 8751: template 8751: void 8751: _M_insert(iterator __position, _Args&&... __args) 8751: { 8751: _Node* __tmp = _M_create_node(std::forward<_Args>(__args)...); 8751: __tmp->_M_hook(__position._M_node); 8751: this->_M_inc_size(1); 8751: } 8751: 8751: 8751: 8751: void 8751: _M_erase(iterator __position) noexcept 8751: { 8751: this->_M_dec_size(1); 8751: __position._M_node->_M_unhook(); 8751: _Node* __n = static_cast<_Node*>(__position._M_node); 8751: 8751: _Node_alloc_traits::destroy(_M_get_Node_allocator(), __n->_M_valptr()); 8751: 8751: 8751: 8751: 8751: _M_put_node(__n); 8751: } 8751: 8751: 8751: void 8751: _M_check_equal_allocators(list& __x) noexcept 8751: { 8751: if (std::__alloc_neq:: 8751: _S_do_it(_M_get_Node_allocator(), __x._M_get_Node_allocator())) 8751: __builtin_abort(); 8751: } 8751: 8751: 8751: const_iterator 8751: _M_resize_pos(size_type& __new_size) const; 8751: 8751: 8751: void 8751: _M_move_assign(list&& __x, true_type) noexcept 8751: { 8751: this->_M_clear(); 8751: this->_M_move_nodes(std::move(__x)); 8751: std::__alloc_on_move(this->_M_get_Node_allocator(), 8751: __x._M_get_Node_allocator()); 8751: } 8751: 8751: void 8751: _M_move_assign(list&& __x, false_type) 8751: { 8751: if (__x._M_get_Node_allocator() == this->_M_get_Node_allocator()) 8751: _M_move_assign(std::move(__x), true_type{}); 8751: else 8751: 8751: 8751: _M_assign_dispatch(std::__make_move_if_noexcept_iterator(__x.begin()), 8751: std::__make_move_if_noexcept_iterator(__x.end()), 8751: __false_type{}); 8751: } 8751: 8751: }; 8751: # 1972 "/usr/include/c++/8/bits/stl_list.h" 3 8751: } 8751: # 1984 "/usr/include/c++/8/bits/stl_list.h" 3 8751: template 8751: inline bool 8751: operator==(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8751: { 8751: 8751: if (__x.size() != __y.size()) 8751: return false; 8751: 8751: 8751: typedef typename list<_Tp, _Alloc>::const_iterator const_iterator; 8751: const_iterator __end1 = __x.end(); 8751: const_iterator __end2 = __y.end(); 8751: 8751: const_iterator __i1 = __x.begin(); 8751: const_iterator __i2 = __y.begin(); 8751: while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) 8751: { 8751: ++__i1; 8751: ++__i2; 8751: } 8751: return __i1 == __end1 && __i2 == __end2; 8751: } 8751: # 2018 "/usr/include/c++/8/bits/stl_list.h" 3 8751: template 8751: inline bool 8751: operator<(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8751: { return std::lexicographical_compare(__x.begin(), __x.end(), 8751: __y.begin(), __y.end()); } 8751: 8751: 8751: template 8751: inline bool 8751: operator!=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8751: { return !(__x == __y); } 8751: 8751: 8751: template 8751: inline bool 8751: operator>(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8751: { return __y < __x; } 8751: 8751: 8751: template 8751: inline bool 8751: operator<=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8751: { return !(__y < __x); } 8751: 8751: 8751: template 8751: inline bool 8751: operator>=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8751: { return !(__x < __y); } 8751: 8751: 8751: template 8751: inline void 8751: swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y) 8751: noexcept(noexcept(__x.swap(__y))) 8751: { __x.swap(__y); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline ptrdiff_t 8751: __distance(std::_List_iterator<_Tp> __first, 8751: std::_List_iterator<_Tp> __last, 8751: input_iterator_tag __tag) 8751: { 8751: typedef std::_List_const_iterator<_Tp> _CIter; 8751: return std::__distance(_CIter(__first), _CIter(__last), __tag); 8751: } 8751: 8751: template 8751: inline ptrdiff_t 8751: __distance(std::_List_const_iterator<_Tp> __first, 8751: std::_List_const_iterator<_Tp> __last, 8751: input_iterator_tag) 8751: { 8751: typedef __detail::_List_node_header _Sentinel; 8751: std::_List_const_iterator<_Tp> __beyond = __last; 8751: ++__beyond; 8751: const bool __whole = __first == __beyond; 8751: if (__builtin_constant_p (__whole) && __whole) 8751: return static_cast(__last._M_node)->_M_size; 8751: 8751: ptrdiff_t __n = 0; 8751: while (__first != __last) 8751: { 8751: ++__first; 8751: ++__n; 8751: } 8751: return __n; 8751: } 8751: 8751: 8751: 8751: } 8751: # 64 "/usr/include/c++/8/list" 2 3 8751: # 1 "/usr/include/c++/8/bits/list.tcc" 1 3 8751: # 59 "/usr/include/c++/8/bits/list.tcc" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: template 8751: void 8751: _List_base<_Tp, _Alloc>:: 8751: _M_clear() noexcept 8751: { 8751: typedef _List_node<_Tp> _Node; 8751: __detail::_List_node_base* __cur = _M_impl._M_node._M_next; 8751: while (__cur != &_M_impl._M_node) 8751: { 8751: _Node* __tmp = static_cast<_Node*>(__cur); 8751: __cur = __tmp->_M_next; 8751: _Tp* __val = __tmp->_M_valptr(); 8751: 8751: _Node_alloc_traits::destroy(_M_get_Node_allocator(), __val); 8751: 8751: 8751: 8751: _M_put_node(__tmp); 8751: } 8751: } 8751: 8751: 8751: template 8751: template 8751: typename list<_Tp, _Alloc>::iterator 8751: list<_Tp, _Alloc>:: 8751: emplace(const_iterator __position, _Args&&... __args) 8751: { 8751: _Node* __tmp = _M_create_node(std::forward<_Args>(__args)...); 8751: __tmp->_M_hook(__position._M_const_cast()._M_node); 8751: this->_M_inc_size(1); 8751: return iterator(__tmp); 8751: } 8751: 8751: 8751: template 8751: typename list<_Tp, _Alloc>::iterator 8751: list<_Tp, _Alloc>:: 8751: 8751: insert(const_iterator __position, const value_type& __x) 8751: 8751: 8751: 8751: { 8751: _Node* __tmp = _M_create_node(__x); 8751: __tmp->_M_hook(__position._M_const_cast()._M_node); 8751: this->_M_inc_size(1); 8751: return iterator(__tmp); 8751: } 8751: 8751: 8751: template 8751: typename list<_Tp, _Alloc>::iterator 8751: list<_Tp, _Alloc>:: 8751: insert(const_iterator __position, size_type __n, const value_type& __x) 8751: { 8751: if (__n) 8751: { 8751: list __tmp(__n, __x, get_allocator()); 8751: iterator __it = __tmp.begin(); 8751: splice(__position, __tmp); 8751: return __it; 8751: } 8751: return __position._M_const_cast(); 8751: } 8751: 8751: template 8751: template 8751: typename list<_Tp, _Alloc>::iterator 8751: list<_Tp, _Alloc>:: 8751: insert(const_iterator __position, _InputIterator __first, 8751: _InputIterator __last) 8751: { 8751: list __tmp(__first, __last, get_allocator()); 8751: if (!__tmp.empty()) 8751: { 8751: iterator __it = __tmp.begin(); 8751: splice(__position, __tmp); 8751: return __it; 8751: } 8751: return __position._M_const_cast(); 8751: } 8751: 8751: 8751: template 8751: typename list<_Tp, _Alloc>::iterator 8751: list<_Tp, _Alloc>:: 8751: 8751: erase(const_iterator __position) noexcept 8751: 8751: 8751: 8751: { 8751: iterator __ret = iterator(__position._M_node->_M_next); 8751: _M_erase(__position._M_const_cast()); 8751: return __ret; 8751: } 8751: # 173 "/usr/include/c++/8/bits/list.tcc" 3 8751: template 8751: typename list<_Tp, _Alloc>::const_iterator 8751: list<_Tp, _Alloc>:: 8751: _M_resize_pos(size_type& __new_size) const 8751: { 8751: const_iterator __i; 8751: 8751: const size_type __len = size(); 8751: if (__new_size < __len) 8751: { 8751: if (__new_size <= __len / 2) 8751: { 8751: __i = begin(); 8751: std::advance(__i, __new_size); 8751: } 8751: else 8751: { 8751: __i = end(); 8751: ptrdiff_t __num_erase = __len - __new_size; 8751: std::advance(__i, -__num_erase); 8751: } 8751: __new_size = 0; 8751: return __i; 8751: } 8751: else 8751: __i = end(); 8751: 8751: 8751: 8751: 8751: 8751: __new_size -= __len; 8751: return __i; 8751: } 8751: 8751: 8751: template 8751: void 8751: list<_Tp, _Alloc>:: 8751: _M_default_append(size_type __n) 8751: { 8751: size_type __i = 0; 8751: try 8751: { 8751: for (; __i < __n; ++__i) 8751: emplace_back(); 8751: } 8751: catch(...) 8751: { 8751: for (; __i; --__i) 8751: pop_back(); 8751: throw; 8751: } 8751: } 8751: 8751: template 8751: void 8751: list<_Tp, _Alloc>:: 8751: resize(size_type __new_size) 8751: { 8751: const_iterator __i = _M_resize_pos(__new_size); 8751: if (__new_size) 8751: _M_default_append(__new_size); 8751: else 8751: erase(__i, end()); 8751: } 8751: 8751: template 8751: void 8751: list<_Tp, _Alloc>:: 8751: resize(size_type __new_size, const value_type& __x) 8751: { 8751: const_iterator __i = _M_resize_pos(__new_size); 8751: if (__new_size) 8751: insert(end(), __new_size, __x); 8751: else 8751: erase(__i, end()); 8751: } 8751: # 265 "/usr/include/c++/8/bits/list.tcc" 3 8751: template 8751: list<_Tp, _Alloc>& 8751: list<_Tp, _Alloc>:: 8751: operator=(const list& __x) 8751: { 8751: if (this != std::__addressof(__x)) 8751: { 8751: 8751: if (_Node_alloc_traits::_S_propagate_on_copy_assign()) 8751: { 8751: auto& __this_alloc = this->_M_get_Node_allocator(); 8751: auto& __that_alloc = __x._M_get_Node_allocator(); 8751: if (!_Node_alloc_traits::_S_always_equal() 8751: && __this_alloc != __that_alloc) 8751: { 8751: 8751: clear(); 8751: } 8751: std::__alloc_on_copy(__this_alloc, __that_alloc); 8751: } 8751: 8751: _M_assign_dispatch(__x.begin(), __x.end(), __false_type()); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: void 8751: list<_Tp, _Alloc>:: 8751: _M_fill_assign(size_type __n, const value_type& __val) 8751: { 8751: iterator __i = begin(); 8751: for (; __i != end() && __n > 0; ++__i, --__n) 8751: *__i = __val; 8751: if (__n > 0) 8751: insert(end(), __n, __val); 8751: else 8751: erase(__i, end()); 8751: } 8751: 8751: template 8751: template 8751: void 8751: list<_Tp, _Alloc>:: 8751: _M_assign_dispatch(_InputIterator __first2, _InputIterator __last2, 8751: __false_type) 8751: { 8751: iterator __first1 = begin(); 8751: iterator __last1 = end(); 8751: for (; __first1 != __last1 && __first2 != __last2; 8751: ++__first1, ++__first2) 8751: *__first1 = *__first2; 8751: if (__first2 == __last2) 8751: erase(__first1, __last1); 8751: else 8751: insert(__last1, __first2, __last2); 8751: } 8751: 8751: template 8751: void 8751: list<_Tp, _Alloc>:: 8751: remove(const value_type& __value) 8751: { 8751: iterator __first = begin(); 8751: iterator __last = end(); 8751: iterator __extra = __last; 8751: while (__first != __last) 8751: { 8751: iterator __next = __first; 8751: ++__next; 8751: if (*__first == __value) 8751: { 8751: 8751: 8751: 8751: if (std::__addressof(*__first) != std::__addressof(__value)) 8751: _M_erase(__first); 8751: else 8751: __extra = __first; 8751: } 8751: __first = __next; 8751: } 8751: if (__extra != __last) 8751: _M_erase(__extra); 8751: } 8751: 8751: template 8751: void 8751: list<_Tp, _Alloc>:: 8751: unique() 8751: { 8751: iterator __first = begin(); 8751: iterator __last = end(); 8751: if (__first == __last) 8751: return; 8751: iterator __next = __first; 8751: while (++__next != __last) 8751: { 8751: if (*__first == *__next) 8751: _M_erase(__next); 8751: else 8751: __first = __next; 8751: __next = __first; 8751: } 8751: } 8751: 8751: template 8751: void 8751: list<_Tp, _Alloc>:: 8751: 8751: merge(list&& __x) 8751: 8751: 8751: 8751: { 8751: 8751: 8751: if (this != std::__addressof(__x)) 8751: { 8751: _M_check_equal_allocators(__x); 8751: 8751: iterator __first1 = begin(); 8751: iterator __last1 = end(); 8751: iterator __first2 = __x.begin(); 8751: iterator __last2 = __x.end(); 8751: const size_t __orig_size = __x.size(); 8751: try { 8751: while (__first1 != __last1 && __first2 != __last2) 8751: if (*__first2 < *__first1) 8751: { 8751: iterator __next = __first2; 8751: _M_transfer(__first1, __first2, ++__next); 8751: __first2 = __next; 8751: } 8751: else 8751: ++__first1; 8751: if (__first2 != __last2) 8751: _M_transfer(__last1, __first2, __last2); 8751: 8751: this->_M_inc_size(__x._M_get_size()); 8751: __x._M_set_size(0); 8751: } 8751: catch(...) 8751: { 8751: const size_t __dist = std::distance(__first2, __last2); 8751: this->_M_inc_size(__orig_size - __dist); 8751: __x._M_set_size(__dist); 8751: throw; 8751: } 8751: } 8751: } 8751: 8751: template 8751: template 8751: void 8751: list<_Tp, _Alloc>:: 8751: 8751: merge(list&& __x, _StrictWeakOrdering __comp) 8751: 8751: 8751: 8751: { 8751: 8751: 8751: if (this != std::__addressof(__x)) 8751: { 8751: _M_check_equal_allocators(__x); 8751: 8751: iterator __first1 = begin(); 8751: iterator __last1 = end(); 8751: iterator __first2 = __x.begin(); 8751: iterator __last2 = __x.end(); 8751: const size_t __orig_size = __x.size(); 8751: try 8751: { 8751: while (__first1 != __last1 && __first2 != __last2) 8751: if (__comp(*__first2, *__first1)) 8751: { 8751: iterator __next = __first2; 8751: _M_transfer(__first1, __first2, ++__next); 8751: __first2 = __next; 8751: } 8751: else 8751: ++__first1; 8751: if (__first2 != __last2) 8751: _M_transfer(__last1, __first2, __last2); 8751: 8751: this->_M_inc_size(__x._M_get_size()); 8751: __x._M_set_size(0); 8751: } 8751: catch(...) 8751: { 8751: const size_t __dist = std::distance(__first2, __last2); 8751: this->_M_inc_size(__orig_size - __dist); 8751: __x._M_set_size(__dist); 8751: throw; 8751: } 8751: } 8751: } 8751: 8751: template 8751: void 8751: list<_Tp, _Alloc>:: 8751: sort() 8751: { 8751: 8751: if (this->_M_impl._M_node._M_next != &this->_M_impl._M_node 8751: && this->_M_impl._M_node._M_next->_M_next != &this->_M_impl._M_node) 8751: { 8751: list __carry; 8751: list __tmp[64]; 8751: list * __fill = __tmp; 8751: list * __counter; 8751: try 8751: { 8751: do 8751: { 8751: __carry.splice(__carry.begin(), *this, begin()); 8751: 8751: for(__counter = __tmp; 8751: __counter != __fill && !__counter->empty(); 8751: ++__counter) 8751: { 8751: __counter->merge(__carry); 8751: __carry.swap(*__counter); 8751: } 8751: __carry.swap(*__counter); 8751: if (__counter == __fill) 8751: ++__fill; 8751: } 8751: while ( !empty() ); 8751: 8751: for (__counter = __tmp + 1; __counter != __fill; ++__counter) 8751: __counter->merge(*(__counter - 1)); 8751: swap( *(__fill - 1) ); 8751: } 8751: catch(...) 8751: { 8751: this->splice(this->end(), __carry); 8751: for (int __i = 0; __i < sizeof(__tmp)/sizeof(__tmp[0]); ++__i) 8751: this->splice(this->end(), __tmp[__i]); 8751: throw; 8751: } 8751: } 8751: } 8751: 8751: template 8751: template 8751: void 8751: list<_Tp, _Alloc>:: 8751: remove_if(_Predicate __pred) 8751: { 8751: iterator __first = begin(); 8751: iterator __last = end(); 8751: while (__first != __last) 8751: { 8751: iterator __next = __first; 8751: ++__next; 8751: if (__pred(*__first)) 8751: _M_erase(__first); 8751: __first = __next; 8751: } 8751: } 8751: 8751: template 8751: template 8751: void 8751: list<_Tp, _Alloc>:: 8751: unique(_BinaryPredicate __binary_pred) 8751: { 8751: iterator __first = begin(); 8751: iterator __last = end(); 8751: if (__first == __last) 8751: return; 8751: iterator __next = __first; 8751: while (++__next != __last) 8751: { 8751: if (__binary_pred(*__first, *__next)) 8751: _M_erase(__next); 8751: else 8751: __first = __next; 8751: __next = __first; 8751: } 8751: } 8751: 8751: template 8751: template 8751: void 8751: list<_Tp, _Alloc>:: 8751: sort(_StrictWeakOrdering __comp) 8751: { 8751: 8751: if (this->_M_impl._M_node._M_next != &this->_M_impl._M_node 8751: && this->_M_impl._M_node._M_next->_M_next != &this->_M_impl._M_node) 8751: { 8751: list __carry; 8751: list __tmp[64]; 8751: list * __fill = __tmp; 8751: list * __counter; 8751: try 8751: { 8751: do 8751: { 8751: __carry.splice(__carry.begin(), *this, begin()); 8751: 8751: for(__counter = __tmp; 8751: __counter != __fill && !__counter->empty(); 8751: ++__counter) 8751: { 8751: __counter->merge(__carry, __comp); 8751: __carry.swap(*__counter); 8751: } 8751: __carry.swap(*__counter); 8751: if (__counter == __fill) 8751: ++__fill; 8751: } 8751: while ( !empty() ); 8751: 8751: for (__counter = __tmp + 1; __counter != __fill; ++__counter) 8751: __counter->merge(*(__counter - 1), __comp); 8751: swap(*(__fill - 1)); 8751: } 8751: catch(...) 8751: { 8751: this->splice(this->end(), __carry); 8751: for (int __i = 0; __i < sizeof(__tmp)/sizeof(__tmp[0]); ++__i) 8751: this->splice(this->end(), __tmp[__i]); 8751: throw; 8751: } 8751: } 8751: } 8751: 8751: 8751: 8751: } 8751: # 65 "/usr/include/c++/8/list" 2 3 8751: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8751: # 57 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 2 3 4 8751: 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 1 3 4 8751: # 34 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 3 4 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/syslimits.h" 1 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 1 3 4 8751: # 194 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 3 4 8751: # 1 "/usr/include/limits.h" 1 3 4 8751: # 26 "/usr/include/limits.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/libc-header-start.h" 1 3 4 8751: # 27 "/usr/include/limits.h" 2 3 4 8751: # 183 "/usr/include/limits.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/posix1_lim.h" 1 3 4 8751: # 160 "/usr/include/arm-linux-gnueabihf/bits/posix1_lim.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/local_lim.h" 1 3 4 8751: # 38 "/usr/include/arm-linux-gnueabihf/bits/local_lim.h" 3 4 8751: # 1 "/usr/include/linux/limits.h" 1 3 4 8751: # 39 "/usr/include/arm-linux-gnueabihf/bits/local_lim.h" 2 3 4 8751: # 161 "/usr/include/arm-linux-gnueabihf/bits/posix1_lim.h" 2 3 4 8751: # 184 "/usr/include/limits.h" 2 3 4 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/posix2_lim.h" 1 3 4 8751: # 188 "/usr/include/limits.h" 2 3 4 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/xopen_lim.h" 1 3 4 8751: # 64 "/usr/include/arm-linux-gnueabihf/bits/xopen_lim.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/bits/uio_lim.h" 1 3 4 8751: # 65 "/usr/include/arm-linux-gnueabihf/bits/xopen_lim.h" 2 3 4 8751: # 192 "/usr/include/limits.h" 2 3 4 8751: # 195 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 2 3 4 8751: # 8 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/syslimits.h" 2 3 4 8751: # 35 "/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed/limits.h" 2 3 4 8751: # 59 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template class QVector; 8751: template class QSet; 8751: 8751: template struct QListSpecialMethods 8751: { 8751: protected: 8751: ~QListSpecialMethods() {} 8751: }; 8751: template <> struct QListSpecialMethods; 8751: template <> struct QListSpecialMethods; 8751: 8751: struct __attribute__((visibility("default"))) QListData { 8751: 8751: 8751: struct NotArrayCompatibleLayout {}; 8751: struct NotIndirectLayout {}; 8751: struct ArrayCompatibleLayout : NotIndirectLayout {}; 8751: struct InlineWithPaddingLayout : NotArrayCompatibleLayout, NotIndirectLayout {}; 8751: struct IndirectLayout : NotArrayCompatibleLayout {}; 8751: 8751: struct Data { 8751: QtPrivate::RefCount ref; 8751: int alloc, begin, end; 8751: void *array[1]; 8751: }; 8751: enum { DataHeaderSize = sizeof(Data) - sizeof(void *) }; 8751: 8751: Data *detach(int alloc); 8751: Data *detach_grow(int *i, int n); 8751: void realloc(int alloc); 8751: void realloc_grow(int growth); 8751: inline void dispose() { dispose(d); } 8751: static void dispose(Data *d); 8751: static const Data shared_null; 8751: Data *d; 8751: void **erase(void **xi); 8751: void **append(int n); 8751: void **append(); 8751: void **append(const QListData &l); 8751: void **prepend(); 8751: void **insert(int i); 8751: void remove(int i); 8751: void remove(int i, int n); 8751: void move(int from, int to); 8751: inline int size() const noexcept { return d->end - d->begin; } 8751: inline bool isEmpty() const noexcept { return d->end == d->begin; } 8751: inline void **at(int i) const noexcept { return d->array + d->begin + i; } 8751: inline void **begin() const noexcept { return d->array + d->begin; } 8751: inline void **end() const noexcept { return d->array + d->end; } 8751: }; 8751: 8751: template 8751: class QList 8751: 8751: : public QListSpecialMethods 8751: 8751: { 8751: public: 8751: struct MemoryLayout 8751: : std::conditional< 8751: 8751: QTypeInfo::isStatic || QTypeInfo::isLarge, 8751: QListData::IndirectLayout, 8751: typename std::conditional< 8751: sizeof(T) == sizeof(void*), 8751: QListData::ArrayCompatibleLayout, 8751: QListData::InlineWithPaddingLayout 8751: >::type>::type {}; 8751: private: 8751: struct Node { void *v; 8751: 8751: 8751: 8751: inline T &t() 8751: { return *reinterpret_cast(QTypeInfo::isLarge || QTypeInfo::isStatic 8751: ? v : this); } 8751: 8751: }; 8751: 8751: union { QListData p; QListData::Data *d; }; 8751: 8751: public: 8751: inline QList() noexcept : d(const_cast(&QListData::shared_null)) { } 8751: QList(const QList &l); 8751: ~QList(); 8751: QList &operator=(const QList &l); 8751: 8751: inline QList(QList &&other) noexcept 8751: : d(other.d) { other.d = const_cast(&QListData::shared_null); } 8751: inline QList &operator=(QList &&other) noexcept 8751: { QList moved(std::move(other)); swap(moved); return *this; } 8751: 8751: inline void swap(QList &other) noexcept { qSwap(d, other.d); } 8751: 8751: inline QList(std::initializer_list args) 8751: : d(const_cast(&QListData::shared_null)) 8751: { reserve(int(args.size())); std::copy(args.begin(), args.end(), std::back_inserter(*this)); } 8751: 8751: bool operator==(const QList &l) const; 8751: inline bool operator!=(const QList &l) const { return !(*this == l); } 8751: 8751: inline int size() const noexcept { return p.size(); } 8751: 8751: inline void detach() { if (d->ref.isShared()) detach_helper(); } 8751: 8751: inline void detachShared() 8751: { 8751: 8751: if (d->ref.isShared() && this->d != &QListData::shared_null) 8751: detach_helper(); 8751: } 8751: 8751: inline bool isDetached() const { return !d->ref.isShared(); } 8751: 8751: inline void setSharable(bool sharable) 8751: { 8751: if (sharable == d->ref.isSharable()) 8751: return; 8751: if (!sharable) 8751: detach(); 8751: if (d != &QListData::shared_null) 8751: d->ref.setSharable(sharable); 8751: } 8751: 8751: inline bool isSharedWith(const QList &other) const noexcept { return d == other.d; } 8751: 8751: inline bool isEmpty() const noexcept { return p.isEmpty(); } 8751: 8751: void clear(); 8751: 8751: const T &at(int i) const; 8751: const T &operator[](int i) const; 8751: T &operator[](int i); 8751: 8751: void reserve(int size); 8751: void append(const T &t); 8751: void append(const QList &t); 8751: void prepend(const T &t); 8751: void insert(int i, const T &t); 8751: void replace(int i, const T &t); 8751: void removeAt(int i); 8751: int removeAll(const T &t); 8751: bool removeOne(const T &t); 8751: T takeAt(int i); 8751: T takeFirst(); 8751: T takeLast(); 8751: void move(int from, int to); 8751: void swap(int i, int j); 8751: int indexOf(const T &t, int from = 0) const; 8751: int lastIndexOf(const T &t, int from = -1) const; 8751: bool contains(const T &t) const; 8751: int count(const T &t) const; 8751: 8751: class const_iterator; 8751: 8751: class iterator { 8751: public: 8751: Node *i; 8751: typedef std::random_access_iterator_tag iterator_category; 8751: 8751: typedef qptrdiff difference_type; 8751: typedef T value_type; 8751: typedef T *pointer; 8751: typedef T &reference; 8751: 8751: inline iterator() noexcept : i(nullptr) {} 8751: inline iterator(Node *n) noexcept : i(n) {} 8751: 8751: 8751: 8751: inline iterator(const iterator &o) noexcept : i(o.i){} 8751: 8751: inline T &operator*() const { return i->t(); } 8751: inline T *operator->() const { return &i->t(); } 8751: inline T &operator[](difference_type j) const { return i[j].t(); } 8751: inline bool operator==(const iterator &o) const noexcept { return i == o.i; } 8751: inline bool operator!=(const iterator &o) const noexcept { return i != o.i; } 8751: inline bool operator<(const iterator& other) const noexcept { return i < other.i; } 8751: inline bool operator<=(const iterator& other) const noexcept { return i <= other.i; } 8751: inline bool operator>(const iterator& other) const noexcept { return i > other.i; } 8751: inline bool operator>=(const iterator& other) const noexcept { return i >= other.i; } 8751: # 264 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 3 4 8751: inline iterator &operator++() { ++i; return *this; } 8751: inline iterator operator++(int) { Node *n = i; ++i; return n; } 8751: inline iterator &operator--() { i--; return *this; } 8751: inline iterator operator--(int) { Node *n = i; i--; return n; } 8751: inline iterator &operator+=(difference_type j) { i+=j; return *this; } 8751: inline iterator &operator-=(difference_type j) { i-=j; return *this; } 8751: inline iterator operator+(difference_type j) const { return iterator(i+j); } 8751: inline iterator operator-(difference_type j) const { return iterator(i-j); } 8751: inline int operator-(iterator j) const { return int(i - j.i); } 8751: }; 8751: friend class iterator; 8751: 8751: class const_iterator { 8751: public: 8751: Node *i; 8751: typedef std::random_access_iterator_tag iterator_category; 8751: 8751: typedef qptrdiff difference_type; 8751: typedef T value_type; 8751: typedef const T *pointer; 8751: typedef const T &reference; 8751: 8751: inline const_iterator() noexcept : i(nullptr) {} 8751: inline const_iterator(Node *n) noexcept : i(n) {} 8751: 8751: 8751: 8751: inline const_iterator(const const_iterator &o) noexcept : i(o.i) {} 8751: 8751: 8751: inline explicit const_iterator(const iterator &o) noexcept : i(o.i) {} 8751: 8751: 8751: 8751: inline const T &operator*() const { return i->t(); } 8751: inline const T *operator->() const { return &i->t(); } 8751: inline const T &operator[](difference_type j) const { return i[j].t(); } 8751: inline bool operator==(const const_iterator &o) const noexcept { return i == o.i; } 8751: inline bool operator!=(const const_iterator &o) const noexcept { return i != o.i; } 8751: inline bool operator<(const const_iterator& other) const noexcept { return i < other.i; } 8751: inline bool operator<=(const const_iterator& other) const noexcept { return i <= other.i; } 8751: inline bool operator>(const const_iterator& other) const noexcept { return i > other.i; } 8751: inline bool operator>=(const const_iterator& other) const noexcept { return i >= other.i; } 8751: inline const_iterator &operator++() { ++i; return *this; } 8751: inline const_iterator operator++(int) { Node *n = i; ++i; return n; } 8751: inline const_iterator &operator--() { i--; return *this; } 8751: inline const_iterator operator--(int) { Node *n = i; i--; return n; } 8751: inline const_iterator &operator+=(difference_type j) { i+=j; return *this; } 8751: inline const_iterator &operator-=(difference_type j) { i-=j; return *this; } 8751: inline const_iterator operator+(difference_type j) const { return const_iterator(i+j); } 8751: inline const_iterator operator-(difference_type j) const { return const_iterator(i-j); } 8751: inline int operator-(const_iterator j) const { return int(i - j.i); } 8751: }; 8751: friend class const_iterator; 8751: 8751: 8751: typedef std::reverse_iterator reverse_iterator; 8751: typedef std::reverse_iterator const_reverse_iterator; 8751: inline iterator begin() { detach(); return reinterpret_cast(p.begin()); } 8751: inline const_iterator begin() const noexcept { return reinterpret_cast(p.begin()); } 8751: inline const_iterator cbegin() const noexcept { return reinterpret_cast(p.begin()); } 8751: inline const_iterator constBegin() const noexcept { return reinterpret_cast(p.begin()); } 8751: inline iterator end() { detach(); return reinterpret_cast(p.end()); } 8751: inline const_iterator end() const noexcept { return reinterpret_cast(p.end()); } 8751: inline const_iterator cend() const noexcept { return reinterpret_cast(p.end()); } 8751: inline const_iterator constEnd() const noexcept { return reinterpret_cast(p.end()); } 8751: reverse_iterator rbegin() { return reverse_iterator(end()); } 8751: reverse_iterator rend() { return reverse_iterator(begin()); } 8751: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8751: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8751: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8751: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8751: iterator insert(iterator before, const T &t); 8751: iterator erase(iterator pos); 8751: iterator erase(iterator first, iterator last); 8751: 8751: 8751: typedef iterator Iterator; 8751: typedef const_iterator ConstIterator; 8751: inline int count() const { return p.size(); } 8751: inline int length() const { return p.size(); } 8751: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8751: inline const T& constFirst() const { return first(); } 8751: inline const T& first() const { do { } while ((false) && (!isEmpty())); return at(0); } 8751: T& last() { do { } while ((false) && (!isEmpty())); return *(--end()); } 8751: const T& last() const { do { } while ((false) && (!isEmpty())); return at(count() - 1); } 8751: inline const T& constLast() const { return last(); } 8751: inline void removeFirst() { do { } while ((false) && (!isEmpty())); erase(begin()); } 8751: inline void removeLast() { do { } while ((false) && (!isEmpty())); erase(--end()); } 8751: inline bool startsWith(const T &t) const { return !isEmpty() && first() == t; } 8751: inline bool endsWith(const T &t) const { return !isEmpty() && last() == t; } 8751: QList mid(int pos, int length = -1) const; 8751: 8751: T value(int i) const; 8751: T value(int i, const T &defaultValue) const; 8751: 8751: 8751: inline void push_back(const T &t) { append(t); } 8751: inline void push_front(const T &t) { prepend(t); } 8751: inline T& front() { return first(); } 8751: inline const T& front() const { return first(); } 8751: inline T& back() { return last(); } 8751: inline const T& back() const { return last(); } 8751: inline void pop_front() { removeFirst(); } 8751: inline void pop_back() { removeLast(); } 8751: inline bool empty() const { return isEmpty(); } 8751: typedef int size_type; 8751: typedef T value_type; 8751: typedef value_type *pointer; 8751: typedef const value_type *const_pointer; 8751: typedef value_type &reference; 8751: typedef const value_type &const_reference; 8751: 8751: typedef qptrdiff difference_type; 8751: 8751: 8751: QList &operator+=(const QList &l); 8751: inline QList operator+(const QList &l) const 8751: { QList n = *this; n += l; return n; } 8751: inline QList &operator+=(const T &t) 8751: { append(t); return *this; } 8751: inline QList &operator<< (const T &t) 8751: { append(t); return *this; } 8751: inline QList &operator<<(const QList &l) 8751: { *this += l; return *this; } 8751: 8751: QVector toVector() const; 8751: QSet toSet() const; 8751: 8751: static QList fromVector(const QVector &vector); 8751: static QList fromSet(const QSet &set); 8751: 8751: static inline QList fromStdList(const std::list &list) 8751: { QList tmp; std::copy(list.begin(), list.end(), std::back_inserter(tmp)); return tmp; } 8751: inline std::list toStdList() const 8751: { std::list tmp; std::copy(constBegin(), constEnd(), std::back_inserter(tmp)); return tmp; } 8751: 8751: private: 8751: Node *detach_helper_grow(int i, int n); 8751: void detach_helper(int alloc); 8751: void detach_helper(); 8751: void dealloc(QListData::Data *d); 8751: 8751: void node_construct(Node *n, const T &t); 8751: void node_destruct(Node *n); 8751: void node_copy(Node *from, Node *to, Node *src); 8751: void node_destruct(Node *from, Node *to); 8751: 8751: bool isValidIterator(const iterator &i) const noexcept 8751: { 8751: return (constBegin().i <= i.i) && (i.i <= constEnd().i); 8751: } 8751: 8751: private: 8751: inline bool op_eq_impl(const QList &other, QListData::NotArrayCompatibleLayout) const; 8751: inline bool op_eq_impl(const QList &other, QListData::ArrayCompatibleLayout) const; 8751: inline bool contains_impl(const T &, QListData::NotArrayCompatibleLayout) const; 8751: inline bool contains_impl(const T &, QListData::ArrayCompatibleLayout) const; 8751: inline int count_impl(const T &, QListData::NotArrayCompatibleLayout) const; 8751: inline int count_impl(const T &, QListData::ArrayCompatibleLayout) const; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline void QList::node_construct(Node *n, const T &t) 8751: { 8751: if (QTypeInfo::isLarge || QTypeInfo::isStatic) n->v = new T(t); 8751: else if (QTypeInfo::isComplex) new (n) T(t); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: else ::memcpy(n, static_cast(&t), sizeof(T)); 8751: 8751: } 8751: 8751: template 8751: inline void QList::node_destruct(Node *n) 8751: { 8751: if (QTypeInfo::isLarge || QTypeInfo::isStatic) delete reinterpret_cast(n->v); 8751: else if (QTypeInfo::isComplex) reinterpret_cast(n)->~T(); 8751: } 8751: 8751: template 8751: inline void QList::node_copy(Node *from, Node *to, Node *src) 8751: { 8751: Node *current = from; 8751: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8751: try { 8751: while(current != to) { 8751: current->v = new T(*reinterpret_cast(src->v)); 8751: ++current; 8751: ++src; 8751: } 8751: } catch (...) { 8751: while (current-- != from) 8751: delete reinterpret_cast(current->v); 8751: throw; 8751: } 8751: 8751: } else if (QTypeInfo::isComplex) { 8751: try { 8751: while(current != to) { 8751: new (current) T(*reinterpret_cast(src)); 8751: ++current; 8751: ++src; 8751: } 8751: } catch (...) { 8751: while (current-- != from) 8751: (reinterpret_cast(current))->~T(); 8751: throw; 8751: } 8751: } else { 8751: if (src != from && to - from > 0) 8751: memcpy(from, src, (to - from) * sizeof(Node)); 8751: } 8751: } 8751: 8751: template 8751: inline void QList::node_destruct(Node *from, Node *to) 8751: { 8751: if (QTypeInfo::isLarge || QTypeInfo::isStatic) 8751: while(from != to) --to, delete reinterpret_cast(to->v); 8751: else if (QTypeInfo::isComplex) 8751: while (from != to) --to, reinterpret_cast(to)->~T(); 8751: } 8751: 8751: template 8751: inline QList &QList::operator=(const QList &l) 8751: { 8751: if (d != l.d) { 8751: QList tmp(l); 8751: tmp.swap(*this); 8751: } 8751: return *this; 8751: } 8751: template 8751: inline typename QList::iterator QList::insert(iterator before, const T &t) 8751: { 8751: do { } while ((false) && (isValidIterator(before))); 8751: 8751: int iBefore = int(before.i - reinterpret_cast(p.begin())); 8751: Node *n = 0; 8751: if (d->ref.isShared()) 8751: n = detach_helper_grow(iBefore, 1); 8751: else 8751: n = reinterpret_cast(p.insert(iBefore)); 8751: try { 8751: node_construct(n, t); 8751: } catch (...) { 8751: p.remove(iBefore); 8751: throw; 8751: } 8751: return n; 8751: } 8751: template 8751: inline typename QList::iterator QList::erase(iterator it) 8751: { 8751: do { } while ((false) && (isValidIterator(it))); 8751: if (d->ref.isShared()) { 8751: int offset = int(it.i - reinterpret_cast(p.begin())); 8751: it = begin(); 8751: it += offset; 8751: } 8751: node_destruct(it.i); 8751: return reinterpret_cast(p.erase(reinterpret_cast(it.i))); 8751: } 8751: template 8751: inline const T &QList::at(int i) const 8751: { do { } while ((false) && (i >= 0 && i < p.size())); 8751: return reinterpret_cast(p.at(i))->t(); } 8751: template 8751: inline const T &QList::operator[](int i) const 8751: { do { } while ((false) && (i >= 0 && i < p.size())); 8751: return reinterpret_cast(p.at(i))->t(); } 8751: template 8751: inline T &QList::operator[](int i) 8751: { do { } while ((false) && (i >= 0 && i < p.size())); 8751: detach(); return reinterpret_cast(p.at(i))->t(); } 8751: template 8751: inline void QList::removeAt(int i) 8751: { if(i >= 0 && i < p.size()) { detach(); 8751: node_destruct(reinterpret_cast(p.at(i))); p.remove(i); } } 8751: template 8751: inline T QList::takeAt(int i) 8751: { do { } while ((false) && (i >= 0 && i < p.size())); 8751: detach(); Node *n = reinterpret_cast(p.at(i)); T t = n->t(); node_destruct(n); 8751: p.remove(i); return t; } 8751: template 8751: inline T QList::takeFirst() 8751: { T t = first(); removeFirst(); return t; } 8751: template 8751: inline T QList::takeLast() 8751: { T t = last(); removeLast(); return t; } 8751: 8751: template 8751: void QList::reserve(int alloc) 8751: { 8751: if (d->alloc < alloc) { 8751: if (d->ref.isShared()) 8751: detach_helper(alloc); 8751: else 8751: p.realloc(alloc); 8751: } 8751: } 8751: 8751: template 8751: void QList::append(const T &t) 8751: { 8751: if (d->ref.isShared()) { 8751: Node *n = detach_helper_grow(0x7fffffff, 1); 8751: try { 8751: node_construct(n, t); 8751: } catch (...) { 8751: --d->end; 8751: throw; 8751: } 8751: } else { 8751: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8751: Node *n = reinterpret_cast(p.append()); 8751: try { 8751: node_construct(n, t); 8751: } catch (...) { 8751: --d->end; 8751: throw; 8751: } 8751: } else { 8751: Node *n, copy; 8751: node_construct(©, t); 8751: try { 8751: n = reinterpret_cast(p.append());; 8751: } catch (...) { 8751: node_destruct(©); 8751: throw; 8751: } 8751: *n = copy; 8751: } 8751: } 8751: } 8751: 8751: template 8751: inline void QList::prepend(const T &t) 8751: { 8751: if (d->ref.isShared()) { 8751: Node *n = detach_helper_grow(0, 1); 8751: try { 8751: node_construct(n, t); 8751: } catch (...) { 8751: ++d->begin; 8751: throw; 8751: } 8751: } else { 8751: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8751: Node *n = reinterpret_cast(p.prepend()); 8751: try { 8751: node_construct(n, t); 8751: } catch (...) { 8751: ++d->begin; 8751: throw; 8751: } 8751: } else { 8751: Node *n, copy; 8751: node_construct(©, t); 8751: try { 8751: n = reinterpret_cast(p.prepend());; 8751: } catch (...) { 8751: node_destruct(©); 8751: throw; 8751: } 8751: *n = copy; 8751: } 8751: } 8751: } 8751: 8751: template 8751: inline void QList::insert(int i, const T &t) 8751: { 8751: if (d->ref.isShared()) { 8751: Node *n = detach_helper_grow(i, 1); 8751: try { 8751: node_construct(n, t); 8751: } catch (...) { 8751: p.remove(i); 8751: throw; 8751: } 8751: } else { 8751: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8751: Node *n = reinterpret_cast(p.insert(i)); 8751: try { 8751: node_construct(n, t); 8751: } catch (...) { 8751: p.remove(i); 8751: throw; 8751: } 8751: } else { 8751: Node *n, copy; 8751: node_construct(©, t); 8751: try { 8751: n = reinterpret_cast(p.insert(i));; 8751: } catch (...) { 8751: node_destruct(©); 8751: throw; 8751: } 8751: *n = copy; 8751: } 8751: } 8751: } 8751: 8751: template 8751: inline void QList::replace(int i, const T &t) 8751: { 8751: do { } while ((false) && (i >= 0 && i < p.size())); 8751: detach(); 8751: reinterpret_cast(p.at(i))->t() = t; 8751: } 8751: 8751: template 8751: inline void QList::swap(int i, int j) 8751: { 8751: do { } while ((false) && (i >= 0 && i < p.size() && j >= 0 && j < p.size())) 8751: ; 8751: detach(); 8751: std::swap(d->array[d->begin + i], d->array[d->begin + j]); 8751: } 8751: 8751: template 8751: inline void QList::move(int from, int to) 8751: { 8751: do { } while ((false) && (from >= 0 && from < p.size() && to >= 0 && to < p.size())) 8751: ; 8751: detach(); 8751: p.move(from, to); 8751: } 8751: 8751: template 8751: QList QList::mid(int pos, int alength) const 8751: { 8751: using namespace QtPrivate; 8751: switch (QContainerImplHelper::mid(size(), &pos, &alength)) { 8751: case QContainerImplHelper::Null: 8751: case QContainerImplHelper::Empty: 8751: return QList(); 8751: case QContainerImplHelper::Full: 8751: return *this; 8751: case QContainerImplHelper::Subset: 8751: break; 8751: } 8751: 8751: QList cpy; 8751: if (alength <= 0) 8751: return cpy; 8751: cpy.reserve(alength); 8751: cpy.d->end = alength; 8751: try { 8751: cpy.node_copy(reinterpret_cast(cpy.p.begin()), 8751: reinterpret_cast(cpy.p.end()), 8751: reinterpret_cast(p.begin() + pos)); 8751: } catch (...) { 8751: 8751: cpy.d->end = 0; 8751: throw; 8751: } 8751: return cpy; 8751: } 8751: 8751: template 8751: T QList::value(int i) const 8751: { 8751: if (i < 0 || i >= p.size()) { 8751: return T(); 8751: } 8751: return reinterpret_cast(p.at(i))->t(); 8751: } 8751: 8751: template 8751: T QList::value(int i, const T& defaultValue) const 8751: { 8751: return ((i < 0 || i >= p.size()) ? defaultValue : reinterpret_cast(p.at(i))->t()); 8751: } 8751: 8751: template 8751: typename QList::Node *QList::detach_helper_grow(int i, int c) 8751: { 8751: Node *n = reinterpret_cast(p.begin()); 8751: QListData::Data *x = p.detach_grow(&i, c); 8751: try { 8751: node_copy(reinterpret_cast(p.begin()), 8751: reinterpret_cast(p.begin() + i), n); 8751: } catch (...) { 8751: p.dispose(); 8751: d = x; 8751: throw; 8751: } 8751: try { 8751: node_copy(reinterpret_cast(p.begin() + i + c), 8751: reinterpret_cast(p.end()), n + i); 8751: } catch (...) { 8751: node_destruct(reinterpret_cast(p.begin()), 8751: reinterpret_cast(p.begin() + i)); 8751: p.dispose(); 8751: d = x; 8751: throw; 8751: } 8751: 8751: if (!x->ref.deref()) 8751: dealloc(x); 8751: 8751: return reinterpret_cast(p.begin() + i); 8751: } 8751: 8751: template 8751: void QList::detach_helper(int alloc) 8751: { 8751: Node *n = reinterpret_cast(p.begin()); 8751: QListData::Data *x = p.detach(alloc); 8751: try { 8751: node_copy(reinterpret_cast(p.begin()), reinterpret_cast(p.end()), n); 8751: } catch (...) { 8751: p.dispose(); 8751: d = x; 8751: throw; 8751: } 8751: 8751: if (!x->ref.deref()) 8751: dealloc(x); 8751: } 8751: 8751: template 8751: void QList::detach_helper() 8751: { 8751: detach_helper(d->alloc); 8751: } 8751: 8751: template 8751: QList::QList(const QList &l) 8751: : QListSpecialMethods(l), d(l.d) 8751: { 8751: if (!d->ref.ref()) { 8751: p.detach(d->alloc); 8751: 8751: try { 8751: node_copy(reinterpret_cast(p.begin()), 8751: reinterpret_cast(p.end()), 8751: reinterpret_cast(l.p.begin())); 8751: } catch (...) { 8751: QListData::dispose(d); 8751: throw; 8751: } 8751: } 8751: } 8751: 8751: template 8751: QList::~QList() 8751: { 8751: if (!d->ref.deref()) 8751: dealloc(d); 8751: } 8751: 8751: template 8751: bool QList::operator==(const QList &l) const 8751: { 8751: if (d == l.d) 8751: return true; 8751: if (p.size() != l.p.size()) 8751: return false; 8751: return this->op_eq_impl(l, MemoryLayout()); 8751: } 8751: 8751: template 8751: inline bool QList::op_eq_impl(const QList &l, QListData::NotArrayCompatibleLayout) const 8751: { 8751: Node *i = reinterpret_cast(p.begin()); 8751: Node *e = reinterpret_cast(p.end()); 8751: Node *li = reinterpret_cast(l.p.begin()); 8751: for (; i != e; ++i, ++li) { 8751: if (!(i->t() == li->t())) 8751: return false; 8751: } 8751: return true; 8751: } 8751: 8751: template 8751: inline bool QList::op_eq_impl(const QList &l, QListData::ArrayCompatibleLayout) const 8751: { 8751: const T *lb = reinterpret_cast(l.p.begin()); 8751: const T *b = reinterpret_cast(p.begin()); 8751: const T *e = reinterpret_cast(p.end()); 8751: return std::equal(b, e, (lb)); 8751: } 8751: 8751: template 8751: void QList::dealloc(QListData::Data *data) 8751: { 8751: node_destruct(reinterpret_cast(data->array + data->begin), 8751: reinterpret_cast(data->array + data->end)); 8751: QListData::dispose(data); 8751: } 8751: 8751: 8751: template 8751: void QList::clear() 8751: { 8751: *this = QList(); 8751: } 8751: 8751: template 8751: int QList::removeAll(const T &_t) 8751: { 8751: int index = indexOf(_t); 8751: if (index == -1) 8751: return 0; 8751: 8751: const T t = _t; 8751: detach(); 8751: 8751: Node *i = reinterpret_cast(p.at(index)); 8751: Node *e = reinterpret_cast(p.end()); 8751: Node *n = i; 8751: node_destruct(i); 8751: while (++i != e) { 8751: if (i->t() == t) 8751: node_destruct(i); 8751: else 8751: *n++ = *i; 8751: } 8751: 8751: int removedCount = int(e - n); 8751: d->end -= removedCount; 8751: return removedCount; 8751: } 8751: 8751: template 8751: bool QList::removeOne(const T &_t) 8751: { 8751: int index = indexOf(_t); 8751: if (index != -1) { 8751: removeAt(index); 8751: return true; 8751: } 8751: return false; 8751: } 8751: 8751: template 8751: typename QList::iterator QList::erase(typename QList::iterator afirst, 8751: typename QList::iterator alast) 8751: { 8751: do { } while ((false) && (isValidIterator(afirst))); 8751: do { } while ((false) && (isValidIterator(alast))); 8751: 8751: if (d->ref.isShared()) { 8751: 8751: int offsetfirst = int(afirst.i - reinterpret_cast(p.begin())); 8751: int offsetlast = int(alast.i - reinterpret_cast(p.begin())); 8751: afirst = begin(); 8751: alast = afirst; 8751: afirst += offsetfirst; 8751: alast += offsetlast; 8751: } 8751: 8751: for (Node *n = afirst.i; n < alast.i; ++n) 8751: node_destruct(n); 8751: int idx = afirst - begin(); 8751: p.remove(idx, alast - afirst); 8751: return begin() + idx; 8751: } 8751: 8751: template 8751: QList &QList::operator+=(const QList &l) 8751: { 8751: if (!l.isEmpty()) { 8751: if (d == &QListData::shared_null) { 8751: *this = l; 8751: } else { 8751: Node *n = (d->ref.isShared()) 8751: ? detach_helper_grow(0x7fffffff, l.size()) 8751: : reinterpret_cast(p.append(l.p)); 8751: try { 8751: node_copy(n, reinterpret_cast(p.end()), 8751: reinterpret_cast(l.p.begin())); 8751: } catch (...) { 8751: 8751: d->end -= int(reinterpret_cast(p.end()) - n); 8751: throw; 8751: } 8751: } 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: inline void QList::append(const QList &t) 8751: { 8751: *this += t; 8751: } 8751: 8751: template 8751: int QList::indexOf(const T &t, int from) const 8751: { 8751: if (from < 0) 8751: from = qMax(from + p.size(), 0); 8751: if (from < p.size()) { 8751: Node *n = reinterpret_cast(p.at(from -1)); 8751: Node *e = reinterpret_cast(p.end()); 8751: while (++n != e) 8751: if (n->t() == t) 8751: return int(n - reinterpret_cast(p.begin())); 8751: } 8751: return -1; 8751: } 8751: 8751: template 8751: int QList::lastIndexOf(const T &t, int from) const 8751: { 8751: if (from < 0) 8751: from += p.size(); 8751: else if (from >= p.size()) 8751: from = p.size()-1; 8751: if (from >= 0) { 8751: Node *b = reinterpret_cast(p.begin()); 8751: Node *n = reinterpret_cast(p.at(from + 1)); 8751: while (n-- != b) { 8751: if (n->t() == t) 8751: return n - b; 8751: } 8751: } 8751: return -1; 8751: } 8751: 8751: template 8751: bool QList::contains(const T &t) const 8751: { 8751: return contains_impl(t, MemoryLayout()); 8751: } 8751: 8751: template 8751: inline bool QList::contains_impl(const T &t, QListData::NotArrayCompatibleLayout) const 8751: { 8751: Node *e = reinterpret_cast(p.end()); 8751: Node *i = reinterpret_cast(p.begin()); 8751: for (; i != e; ++i) 8751: if (i->t() == t) 8751: return true; 8751: return false; 8751: } 8751: 8751: template 8751: inline bool QList::contains_impl(const T &t, QListData::ArrayCompatibleLayout) const 8751: { 8751: const T *b = reinterpret_cast(p.begin()); 8751: const T *e = reinterpret_cast(p.end()); 8751: return std::find(b, e, t) != e; 8751: } 8751: 8751: template 8751: int QList::count(const T &t) const 8751: { 8751: return this->count_impl(t, MemoryLayout()); 8751: } 8751: 8751: template 8751: inline int QList::count_impl(const T &t, QListData::NotArrayCompatibleLayout) const 8751: { 8751: int c = 0; 8751: Node *e = reinterpret_cast(p.end()); 8751: Node *i = reinterpret_cast(p.begin()); 8751: for (; i != e; ++i) 8751: if (i->t() == t) 8751: ++c; 8751: return c; 8751: } 8751: 8751: template 8751: inline int QList::count_impl(const T &t, QListData::ArrayCompatibleLayout) const 8751: { 8751: return int(std::count(reinterpret_cast(p.begin()), 8751: reinterpret_cast(p.end()), 8751: t)); 8751: } 8751: 8751: template class QListIterator { typedef typename QList::const_iterator const_iterator; QList c; const_iterator i; public: inline QListIterator(const QList &container) : c(container), i(c.constBegin()) {} inline QListIterator &operator=(const QList &container) { c = container; i = c.constBegin(); return *this; } inline void toFront() { i = c.constBegin(); } inline void toBack() { i = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline const T &next() { return *i++; } inline const T &peekNext() const { return *i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline const T &previous() { return *--i; } inline const T &peekPrevious() const { const_iterator p = i; return *--p; } inline bool findNext(const T &t) { while (i != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(--i) == t) return true; return false; } }; 8751: template class QMutableListIterator { typedef typename QList::iterator iterator; typedef typename QList::const_iterator const_iterator; QList *c; iterator i, n; inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } public: inline QMutableListIterator(QList &container) : c(&container) { i = c->begin(); n = c->end(); } inline QMutableListIterator &operator=(QList &container) { c = &container; i = c->begin(); n = c->end(); return *this; } inline void toFront() { i = c->begin(); n = c->end(); } inline void toBack() { i = c->end(); n = i; } inline bool hasNext() const { return c->constEnd() != const_iterator(i); } inline T &next() { n = i++; return *n; } inline T &peekNext() const { return *i; } inline bool hasPrevious() const { return c->constBegin() != const_iterator(i); } inline T &previous() { n = --i; return *n; } inline T &peekPrevious() const { iterator p = i; return *--p; } inline void remove() { if (c->constEnd() != const_iterator(n)) { i = c->erase(n); n = c->end(); } } inline void setValue(const T &t) const { if (c->constEnd() != const_iterator(n)) *n = t; } inline T &value() { do { } while ((false) && (item_exists())); return *n; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline void insert(const T &t) { n = i = c->insert(i, t); ++i; } inline bool findNext(const T &t) { while (c->constEnd() != const_iterator(n = i)) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (c->constBegin() != const_iterator(i)) if (*(n = --i) == t) return true; n = c->end(); return false; } }; 8751: 8751: template 8751: uint qHash(const QList &key, uint seed = 0) 8751: noexcept(noexcept(qHashRange(key.cbegin(), key.cend(), seed))) 8751: { 8751: return qHashRange(key.cbegin(), key.cend(), seed); 8751: } 8751: 8751: template 8751: bool operator<(const QList &lhs, const QList &rhs) 8751: noexcept(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()))) 8751: 8751: { 8751: return std::lexicographical_compare(lhs.begin(), lhs.end(), 8751: rhs.begin(), rhs.end()); 8751: } 8751: 8751: template 8751: inline bool operator>(const QList &lhs, const QList &rhs) 8751: noexcept(noexcept(lhs < rhs)) 8751: { 8751: return rhs < lhs; 8751: } 8751: 8751: template 8751: inline bool operator<=(const QList &lhs, const QList &rhs) 8751: noexcept(noexcept(lhs < rhs)) 8751: { 8751: return !(lhs > rhs); 8751: } 8751: 8751: template 8751: inline bool operator>=(const QList &lhs, const QList &rhs) 8751: noexcept(noexcept(lhs < rhs)) 8751: { 8751: return !(lhs < rhs); 8751: } 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearraylist.h" 1 3 4 8751: # 42 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearraylist.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 1 3 4 8751: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearraylist.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef QListIterator QByteArrayListIterator; 8751: typedef QMutableListIterator QMutableByteArrayListIterator; 8751: 8751: typedef QList QByteArrayList; 8751: 8751: namespace QtPrivate { 8751: QByteArray __attribute__((visibility("default"))) QByteArrayList_join(const QByteArrayList *that, const char *separator, int separatorLength); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: template <> struct QListSpecialMethods 8751: 8751: { 8751: 8751: protected: 8751: ~QListSpecialMethods() {} 8751: 8751: public: 8751: inline QByteArray join() const 8751: { return QtPrivate::QByteArrayList_join(self(), nullptr, 0); } 8751: inline QByteArray join(const QByteArray &sep) const 8751: { return QtPrivate::QByteArrayList_join(self(), sep.constData(), sep.size()); } 8751: inline QByteArray join(char sep) const 8751: { return QtPrivate::QByteArrayList_join(self(), &sep, 1); } 8751: 8751: private: 8751: typedef QList Self; 8751: Self *self() { return static_cast(this); } 8751: const Self *self() const { return static_cast(this); } 8751: }; 8751: 8751: 8751: # 1094 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringlist.h" 1 3 4 8751: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringlist.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qregexp.h" 1 3 4 8751: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qregexp.h" 3 4 8751: 8751: 8751: 8751: struct QRegExpPrivate; 8751: class QStringList; 8751: class QRegExp; 8751: 8751: __attribute__((visibility("default"))) uint qHash(const QRegExp &key, uint seed = 0) noexcept; 8751: 8751: class __attribute__((visibility("default"))) QRegExp 8751: { 8751: public: 8751: enum PatternSyntax { 8751: RegExp, 8751: Wildcard, 8751: FixedString, 8751: RegExp2, 8751: WildcardUnix, 8751: W3CXmlSchema11 }; 8751: enum CaretMode { CaretAtZero, CaretAtOffset, CaretWontMatch }; 8751: 8751: QRegExp(); 8751: explicit QRegExp(const QString &pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive, 8751: PatternSyntax syntax = RegExp); 8751: QRegExp(const QRegExp &rx); 8751: ~QRegExp(); 8751: QRegExp &operator=(const QRegExp &rx); 8751: 8751: QRegExp &operator=(QRegExp &&other) noexcept { swap(other); return *this; } 8751: 8751: void swap(QRegExp &other) noexcept { qSwap(priv, other.priv); } 8751: 8751: bool operator==(const QRegExp &rx) const; 8751: inline bool operator!=(const QRegExp &rx) const { return !operator==(rx); } 8751: 8751: bool isEmpty() const; 8751: bool isValid() const; 8751: QString pattern() const; 8751: void setPattern(const QString &pattern); 8751: Qt::CaseSensitivity caseSensitivity() const; 8751: void setCaseSensitivity(Qt::CaseSensitivity cs); 8751: PatternSyntax patternSyntax() const; 8751: void setPatternSyntax(PatternSyntax syntax); 8751: 8751: bool isMinimal() const; 8751: void setMinimal(bool minimal); 8751: 8751: bool exactMatch(const QString &str) const; 8751: 8751: int indexIn(const QString &str, int offset = 0, CaretMode caretMode = CaretAtZero) const; 8751: int lastIndexIn(const QString &str, int offset = -1, CaretMode caretMode = CaretAtZero) const; 8751: int matchedLength() const; 8751: 8751: int captureCount() const; 8751: QStringList capturedTexts() const; 8751: QStringList capturedTexts(); 8751: QString cap(int nth = 0) const; 8751: QString cap(int nth = 0); 8751: int pos(int nth = 0) const; 8751: int pos(int nth = 0); 8751: QString errorString() const; 8751: QString errorString(); 8751: 8751: 8751: static QString escape(const QString &str); 8751: 8751: friend __attribute__((visibility("default"))) uint qHash(const QRegExp &key, uint seed) noexcept; 8751: 8751: private: 8751: QRegExpPrivate *priv; 8751: }; 8751: 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QRegExp)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QRegExp >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QRegExp) }; static inline const char *name() { return "QRegExp"; } }; 8751: 8751: 8751: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &out, const QRegExp ®Exp); 8751: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &in, QRegExp ®Exp); 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QRegExp &); 8751: 8751: 8751: 8751: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringlist.h" 2 3 4 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringmatcher.h" 1 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringmatcher.h" 3 4 8751: 8751: 8751: 8751: class QStringMatcherPrivate; 8751: 8751: class __attribute__((visibility("default"))) QStringMatcher 8751: { 8751: public: 8751: QStringMatcher(); 8751: explicit QStringMatcher(const QString &pattern, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: QStringMatcher(const QChar *uc, int len, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: QStringMatcher(const QStringMatcher &other); 8751: ~QStringMatcher(); 8751: 8751: QStringMatcher &operator=(const QStringMatcher &other); 8751: 8751: void setPattern(const QString &pattern); 8751: void setCaseSensitivity(Qt::CaseSensitivity cs); 8751: 8751: int indexIn(const QString &str, int from = 0) const; 8751: int indexIn(const QChar *str, int length, int from = 0) const; 8751: QString pattern() const; 8751: inline Qt::CaseSensitivity caseSensitivity() const { return q_cs; } 8751: 8751: private: 8751: QStringMatcherPrivate *d_ptr; 8751: QString q_pattern; 8751: Qt::CaseSensitivity q_cs; 8751: struct Data { 8751: uchar q_skiptable[256]; 8751: const QChar *uc; 8751: int len; 8751: }; 8751: union { 8751: uint q_data[256]; 8751: Data p; 8751: }; 8751: }; 8751: 8751: 8751: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringlist.h" 2 3 4 8751: 8751: 8751: 8751: class QRegExp; 8751: class QRegularExpression; 8751: 8751: typedef QListIterator QStringListIterator; 8751: typedef QMutableListIterator QMutableStringListIterator; 8751: 8751: class QStringList; 8751: 8751: 8751: 8751: 8751: template <> struct QListSpecialMethods 8751: 8751: { 8751: 8751: protected: 8751: ~QListSpecialMethods() {} 8751: 8751: public: 8751: inline void sort(Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: inline int removeDuplicates(); 8751: 8751: inline QString join(const QString &sep) const; 8751: inline QString join(QLatin1String sep) const; 8751: inline QString join(QChar sep) const; 8751: 8751: inline QStringList filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: inline QStringList &replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: 8751: 8751: inline QStringList filter(const QRegExp &rx) const; 8751: inline QStringList &replaceInStrings(const QRegExp &rx, const QString &after); 8751: 8751: 8751: 8751: 8751: inline QStringList filter(const QRegularExpression &re) const; 8751: inline QStringList &replaceInStrings(const QRegularExpression &re, const QString &after); 8751: 8751: 8751: 8751: 8751: private: 8751: inline QStringList *self(); 8751: inline const QStringList *self() const; 8751: }; 8751: 8751: 8751: class QStringList : public QList 8751: { 8751: 8751: public: 8751: inline QStringList() noexcept { } 8751: inline explicit QStringList(const QString &i) { append(i); } 8751: inline QStringList(const QList &l) : QList(l) { } 8751: 8751: inline QStringList(QList &&l) noexcept : QList(std::move(l)) { } 8751: 8751: 8751: inline QStringList(std::initializer_list args) : QList(args) { } 8751: 8751: 8751: QStringList &operator=(const QList &other) 8751: { QList::operator=(other); return *this; } 8751: 8751: QStringList &operator=(QList &&other) noexcept 8751: { QList::operator=(std::move(other)); return *this; } 8751: 8751: 8751: inline bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: 8751: inline QStringList operator+(const QStringList &other) const 8751: { QStringList n = *this; n += other; return n; } 8751: inline QStringList &operator<<(const QString &str) 8751: { append(str); return *this; } 8751: inline QStringList &operator<<(const QStringList &l) 8751: { *this += l; return *this; } 8751: inline QStringList &operator<<(const QList &l) 8751: { *this += l; return *this; } 8751: 8751: 8751: inline int indexOf(const QRegExp &rx, int from = 0) const; 8751: inline int lastIndexOf(const QRegExp &rx, int from = -1) const; 8751: inline int indexOf(QRegExp &rx, int from = 0) const; 8751: inline int lastIndexOf(QRegExp &rx, int from = -1) const; 8751: 8751: 8751: 8751: 8751: inline int indexOf(const QRegularExpression &re, int from = 0) const; 8751: inline int lastIndexOf(const QRegularExpression &re, int from = -1) const; 8751: 8751: 8751: 8751: using QList::indexOf; 8751: using QList::lastIndexOf; 8751: }; 8751: 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QStringList)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QStringList >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QStringList) }; static inline const char *name() { return "QStringList"; } }; 8751: 8751: 8751: inline QStringList *QListSpecialMethods::self() 8751: { return static_cast(this); } 8751: inline const QStringList *QListSpecialMethods::self() const 8751: { return static_cast(this); } 8751: 8751: namespace QtPrivate { 8751: void __attribute__((visibility("default"))) QStringList_sort(QStringList *that, Qt::CaseSensitivity cs); 8751: int __attribute__((visibility("default"))) QStringList_removeDuplicates(QStringList *that); 8751: QString __attribute__((visibility("default"))) QStringList_join(const QStringList *that, const QChar *sep, int seplen); 8751: __attribute__((visibility("default"))) QString QStringList_join(const QStringList &list, QLatin1String sep); 8751: QStringList __attribute__((visibility("default"))) QStringList_filter(const QStringList *that, const QString &str, 8751: Qt::CaseSensitivity cs); 8751: 8751: bool __attribute__((visibility("default"))) QStringList_contains(const QStringList *that, const QString &str, Qt::CaseSensitivity cs); 8751: void __attribute__((visibility("default"))) QStringList_replaceInStrings(QStringList *that, const QString &before, const QString &after, 8751: Qt::CaseSensitivity cs); 8751: 8751: 8751: void __attribute__((visibility("default"))) QStringList_replaceInStrings(QStringList *that, const QRegExp &rx, const QString &after); 8751: QStringList __attribute__((visibility("default"))) QStringList_filter(const QStringList *that, const QRegExp &re); 8751: int __attribute__((visibility("default"))) QStringList_indexOf(const QStringList *that, const QRegExp &rx, int from); 8751: int __attribute__((visibility("default"))) QStringList_lastIndexOf(const QStringList *that, const QRegExp &rx, int from); 8751: int __attribute__((visibility("default"))) QStringList_indexOf(const QStringList *that, QRegExp &rx, int from); 8751: int __attribute__((visibility("default"))) QStringList_lastIndexOf(const QStringList *that, QRegExp &rx, int from); 8751: 8751: 8751: 8751: 8751: void __attribute__((visibility("default"))) QStringList_replaceInStrings(QStringList *that, const QRegularExpression &rx, const QString &after); 8751: QStringList __attribute__((visibility("default"))) QStringList_filter(const QStringList *that, const QRegularExpression &re); 8751: int __attribute__((visibility("default"))) QStringList_indexOf(const QStringList *that, const QRegularExpression &re, int from); 8751: int __attribute__((visibility("default"))) QStringList_lastIndexOf(const QStringList *that, const QRegularExpression &re, int from); 8751: 8751: 8751: } 8751: 8751: inline void QListSpecialMethods::sort(Qt::CaseSensitivity cs) 8751: { 8751: QtPrivate::QStringList_sort(self(), cs); 8751: } 8751: 8751: inline int QListSpecialMethods::removeDuplicates() 8751: { 8751: return QtPrivate::QStringList_removeDuplicates(self()); 8751: } 8751: 8751: inline QString QListSpecialMethods::join(const QString &sep) const 8751: { 8751: return QtPrivate::QStringList_join(self(), sep.constData(), sep.length()); 8751: } 8751: 8751: QString QListSpecialMethods::join(QLatin1String sep) const 8751: { 8751: return QtPrivate::QStringList_join(*self(), sep); 8751: } 8751: 8751: inline QString QListSpecialMethods::join(QChar sep) const 8751: { 8751: return QtPrivate::QStringList_join(self(), &sep, 1); 8751: } 8751: 8751: inline QStringList QListSpecialMethods::filter(const QString &str, Qt::CaseSensitivity cs) const 8751: { 8751: return QtPrivate::QStringList_filter(self(), str, cs); 8751: } 8751: 8751: inline bool QStringList::contains(const QString &str, Qt::CaseSensitivity cs) const 8751: { 8751: return QtPrivate::QStringList_contains(this, str, cs); 8751: } 8751: 8751: inline QStringList &QListSpecialMethods::replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs) 8751: { 8751: QtPrivate::QStringList_replaceInStrings(self(), before, after, cs); 8751: return *self(); 8751: } 8751: 8751: inline QStringList operator+(const QList &one, const QStringList &other) 8751: { 8751: QStringList n = one; 8751: n += other; 8751: return n; 8751: } 8751: 8751: 8751: inline QStringList &QListSpecialMethods::replaceInStrings(const QRegExp &rx, const QString &after) 8751: { 8751: QtPrivate::QStringList_replaceInStrings(self(), rx, after); 8751: return *self(); 8751: } 8751: 8751: inline QStringList QListSpecialMethods::filter(const QRegExp &rx) const 8751: { 8751: return QtPrivate::QStringList_filter(self(), rx); 8751: } 8751: 8751: inline int QStringList::indexOf(const QRegExp &rx, int from) const 8751: { 8751: return QtPrivate::QStringList_indexOf(this, rx, from); 8751: } 8751: 8751: inline int QStringList::lastIndexOf(const QRegExp &rx, int from) const 8751: { 8751: return QtPrivate::QStringList_lastIndexOf(this, rx, from); 8751: } 8751: 8751: inline int QStringList::indexOf(QRegExp &rx, int from) const 8751: { 8751: return QtPrivate::QStringList_indexOf(this, rx, from); 8751: } 8751: 8751: inline int QStringList::lastIndexOf(QRegExp &rx, int from) const 8751: { 8751: return QtPrivate::QStringList_lastIndexOf(this, rx, from); 8751: } 8751: 8751: 8751: 8751: 8751: inline QStringList &QListSpecialMethods::replaceInStrings(const QRegularExpression &rx, const QString &after) 8751: { 8751: QtPrivate::QStringList_replaceInStrings(self(), rx, after); 8751: return *self(); 8751: } 8751: 8751: inline QStringList QListSpecialMethods::filter(const QRegularExpression &rx) const 8751: { 8751: return QtPrivate::QStringList_filter(self(), rx); 8751: } 8751: 8751: inline int QStringList::indexOf(const QRegularExpression &rx, int from) const 8751: { 8751: return QtPrivate::QStringList_indexOf(this, rx, from); 8751: } 8751: 8751: inline int QStringList::lastIndexOf(const QRegularExpression &rx, int from) const 8751: { 8751: return QtPrivate::QStringList_lastIndexOf(this, rx, from); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: # 1095 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlist.h" 2 3 4 8751: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 1 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 1 3 4 8751: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 2 3 4 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvarlengtharray.h" 1 3 4 8751: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvarlengtharray.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcontainerfwd.h" 1 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcontainerfwd.h" 3 4 8751: 8751: 8751: 8751: template class QCache; 8751: template class QHash; 8751: template class QLinkedList; 8751: template class QList; 8751: template class QMap; 8751: template class QMultiHash; 8751: template class QMultiMap; 8751: template struct QPair; 8751: template class QQueue; 8751: template class QSet; 8751: template class QStack; 8751: template class QVarLengthArray; 8751: template class QVector; 8751: 8751: 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvarlengtharray.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8751: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvarlengtharray.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: class QPodList; 8751: 8751: 8751: template 8751: class QVarLengthArray 8751: { 8751: public: 8751: inline explicit QVarLengthArray(int size = 0); 8751: 8751: inline QVarLengthArray(const QVarLengthArray &other) 8751: : a(Prealloc), s(0), ptr(reinterpret_cast(array)) 8751: { 8751: append(other.constData(), other.size()); 8751: } 8751: 8751: 8751: QVarLengthArray(std::initializer_list args) 8751: : a(Prealloc), s(0), ptr(reinterpret_cast(array)) 8751: { 8751: if (args.size()) 8751: append(args.begin(), int(args.size())); 8751: } 8751: 8751: 8751: inline ~QVarLengthArray() { 8751: if (QTypeInfo::isComplex) { 8751: T *i = ptr + s; 8751: while (i-- != ptr) 8751: i->~T(); 8751: } 8751: if (ptr != reinterpret_cast(array)) 8751: free(ptr); 8751: } 8751: inline QVarLengthArray &operator=(const QVarLengthArray &other) 8751: { 8751: if (this != &other) { 8751: clear(); 8751: append(other.constData(), other.size()); 8751: } 8751: return *this; 8751: } 8751: 8751: 8751: QVarLengthArray &operator=(std::initializer_list list) 8751: { 8751: resize(list.size()); 8751: std::copy(list.begin(), list.end(), 8751: (this->begin())); 8751: return *this; 8751: } 8751: 8751: 8751: inline void removeLast() { 8751: do { } while ((false) && (s > 0)); 8751: realloc(s - 1, a); 8751: } 8751: inline int size() const { return s; } 8751: inline int count() const { return s; } 8751: inline int length() const { return s; } 8751: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8751: inline const T& first() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8751: T& last() { do { } while ((false) && (!isEmpty())); return *(end() - 1); } 8751: const T& last() const { do { } while ((false) && (!isEmpty())); return *(end() - 1); } 8751: inline bool isEmpty() const { return (s == 0); } 8751: inline void resize(int size); 8751: inline void clear() { resize(0); } 8751: inline void squeeze(); 8751: 8751: inline int capacity() const { return a; } 8751: inline void reserve(int size); 8751: 8751: inline int indexOf(const T &t, int from = 0) const; 8751: inline int lastIndexOf(const T &t, int from = -1) const; 8751: inline bool contains(const T &t) const; 8751: 8751: inline T &operator[](int idx) { 8751: do { } while ((false) && (idx >= 0 && idx < s)); 8751: return ptr[idx]; 8751: } 8751: inline const T &operator[](int idx) const { 8751: do { } while ((false) && (idx >= 0 && idx < s)); 8751: return ptr[idx]; 8751: } 8751: inline const T &at(int idx) const { return operator[](idx); } 8751: 8751: T value(int i) const; 8751: T value(int i, const T &defaultValue) const; 8751: 8751: inline void append(const T &t) { 8751: if (s == a) { 8751: T copy(t); 8751: realloc(s, s<<1); 8751: const int idx = s++; 8751: if (QTypeInfo::isComplex) { 8751: new (ptr + idx) T(std::move(copy)); 8751: } else { 8751: ptr[idx] = std::move(copy); 8751: } 8751: } else { 8751: const int idx = s++; 8751: if (QTypeInfo::isComplex) { 8751: new (ptr + idx) T(t); 8751: } else { 8751: ptr[idx] = t; 8751: } 8751: } 8751: } 8751: 8751: void append(T &&t) { 8751: if (s == a) 8751: realloc(s, s << 1); 8751: const int idx = s++; 8751: if (QTypeInfo::isComplex) 8751: new (ptr + idx) T(std::move(t)); 8751: else 8751: ptr[idx] = std::move(t); 8751: } 8751: 8751: void append(const T *buf, int size); 8751: inline QVarLengthArray &operator<<(const T &t) 8751: { append(t); return *this; } 8751: inline QVarLengthArray &operator+=(const T &t) 8751: { append(t); return *this; } 8751: 8751: void prepend(const T &t); 8751: void insert(int i, const T &t); 8751: void insert(int i, int n, const T &t); 8751: void replace(int i, const T &t); 8751: void remove(int i); 8751: void remove(int i, int n); 8751: 8751: 8751: inline T *data() { return ptr; } 8751: inline const T *data() const { return ptr; } 8751: inline const T * constData() const { return ptr; } 8751: typedef int size_type; 8751: typedef T value_type; 8751: typedef value_type *pointer; 8751: typedef const value_type *const_pointer; 8751: typedef value_type &reference; 8751: typedef const value_type &const_reference; 8751: typedef qptrdiff difference_type; 8751: 8751: 8751: typedef T* iterator; 8751: typedef const T* const_iterator; 8751: typedef std::reverse_iterator reverse_iterator; 8751: typedef std::reverse_iterator const_reverse_iterator; 8751: 8751: inline iterator begin() { return ptr; } 8751: inline const_iterator begin() const { return ptr; } 8751: inline const_iterator cbegin() const { return ptr; } 8751: inline const_iterator constBegin() const { return ptr; } 8751: inline iterator end() { return ptr + s; } 8751: inline const_iterator end() const { return ptr + s; } 8751: inline const_iterator cend() const { return ptr + s; } 8751: inline const_iterator constEnd() const { return ptr + s; } 8751: reverse_iterator rbegin() { return reverse_iterator(end()); } 8751: reverse_iterator rend() { return reverse_iterator(begin()); } 8751: const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8751: const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8751: const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); } 8751: const_reverse_iterator crend() const { return const_reverse_iterator(begin()); } 8751: iterator insert(const_iterator before, int n, const T &x); 8751: inline iterator insert(const_iterator before, const T &x) { return insert(before, 1, x); } 8751: iterator erase(const_iterator begin, const_iterator end); 8751: inline iterator erase(const_iterator pos) { return erase(pos, pos+1); } 8751: 8751: 8751: inline bool empty() const { return isEmpty(); } 8751: inline void push_back(const T &t) { append(t); } 8751: void push_back(T &&t) { append(std::move(t)); } 8751: inline void pop_back() { removeLast(); } 8751: inline T &front() { return first(); } 8751: inline const T &front() const { return first(); } 8751: inline T &back() { return last(); } 8751: inline const T &back() const { return last(); } 8751: 8751: private: 8751: friend class QPodList; 8751: void realloc(int size, int alloc); 8751: 8751: int a; 8751: int s; 8751: T *ptr; 8751: union { 8751: char array[Prealloc * sizeof(T)]; 8751: qint64 q_for_alignment_1; 8751: double q_for_alignment_2; 8751: }; 8751: 8751: bool isValidIterator(const const_iterator &i) const 8751: { 8751: return (i <= constEnd()) && (constBegin() <= i); 8751: } 8751: }; 8751: 8751: template 8751: inline QVarLengthArray::QVarLengthArray(int asize) 8751: : s(asize) { 8751: static_assert(bool(Prealloc > 0), "QVarLengthArray Prealloc must be greater than 0."); 8751: do { } while ((false) && (s >= 0)); 8751: if (s > Prealloc) { 8751: ptr = reinterpret_cast(malloc(s * sizeof(T))); 8751: do { if (!(ptr)) qBadAlloc(); } while (false); 8751: a = s; 8751: } else { 8751: ptr = reinterpret_cast(array); 8751: a = Prealloc; 8751: } 8751: if (QTypeInfo::isComplex) { 8751: T *i = ptr + s; 8751: while (i != ptr) 8751: new (--i) T; 8751: } 8751: } 8751: 8751: template 8751: inline void QVarLengthArray::resize(int asize) 8751: { realloc(asize, qMax(asize, a)); } 8751: 8751: template 8751: inline void QVarLengthArray::reserve(int asize) 8751: { if (asize > a) realloc(s, asize); } 8751: 8751: template 8751: inline int QVarLengthArray::indexOf(const T &t, int from) const 8751: { 8751: if (from < 0) 8751: from = qMax(from + s, 0); 8751: if (from < s) { 8751: T *n = ptr + from - 1; 8751: T *e = ptr + s; 8751: while (++n != e) 8751: if (*n == t) 8751: return n - ptr; 8751: } 8751: return -1; 8751: } 8751: 8751: template 8751: inline int QVarLengthArray::lastIndexOf(const T &t, int from) const 8751: { 8751: if (from < 0) 8751: from += s; 8751: else if (from >= s) 8751: from = s - 1; 8751: if (from >= 0) { 8751: T *b = ptr; 8751: T *n = ptr + from + 1; 8751: while (n != b) { 8751: if (*--n == t) 8751: return n - b; 8751: } 8751: } 8751: return -1; 8751: } 8751: 8751: template 8751: inline bool QVarLengthArray::contains(const T &t) const 8751: { 8751: T *b = ptr; 8751: T *i = ptr + s; 8751: while (i != b) { 8751: if (*--i == t) 8751: return true; 8751: } 8751: return false; 8751: } 8751: 8751: template 8751: void QVarLengthArray::append(const T *abuf, int increment) 8751: { 8751: do { } while ((false) && (abuf)); 8751: if (increment <= 0) 8751: return; 8751: 8751: const int asize = s + increment; 8751: 8751: if (asize >= a) 8751: realloc(s, qMax(s*2, asize)); 8751: 8751: if (QTypeInfo::isComplex) { 8751: 8751: while (s < asize) 8751: new (ptr+(s++)) T(*abuf++); 8751: } else { 8751: memcpy(&ptr[s], abuf, increment * sizeof(T)); 8751: s = asize; 8751: } 8751: } 8751: 8751: template 8751: inline void QVarLengthArray::squeeze() 8751: { realloc(s, s); } 8751: 8751: template 8751: void QVarLengthArray::realloc(int asize, int aalloc) 8751: { 8751: do { } while ((false) && (aalloc >= asize)); 8751: T *oldPtr = ptr; 8751: int osize = s; 8751: 8751: const int copySize = qMin(asize, osize); 8751: do { const bool valueOfExpression = copySize >= 0; do { } while ((false) && (valueOfExpression)); if (valueOfExpression){} else __builtin_unreachable(); } while (false); 8751: if (aalloc != a) { 8751: if (aalloc > Prealloc) { 8751: T* newPtr = reinterpret_cast(malloc(aalloc * sizeof(T))); 8751: do { if (!(newPtr)) qBadAlloc(); } while (false); 8751: 8751: ptr = newPtr; 8751: a = aalloc; 8751: } else { 8751: ptr = reinterpret_cast(array); 8751: a = Prealloc; 8751: } 8751: s = 0; 8751: if (!QTypeInfoQuery::isRelocatable) { 8751: try { 8751: 8751: while (s < copySize) { 8751: new (ptr+s) T(*(oldPtr+s)); 8751: (oldPtr+s)->~T(); 8751: s++; 8751: } 8751: } catch (...) { 8751: 8751: int sClean = s; 8751: while (sClean < osize) 8751: (oldPtr+(sClean++))->~T(); 8751: if (oldPtr != reinterpret_cast(array) && oldPtr != ptr) 8751: free(oldPtr); 8751: throw; 8751: } 8751: } else { 8751: memcpy(ptr, oldPtr, copySize * sizeof(T)); 8751: } 8751: } 8751: s = copySize; 8751: 8751: if (QTypeInfo::isComplex) { 8751: 8751: while (osize > asize) 8751: (oldPtr+(--osize))->~T(); 8751: } 8751: 8751: if (oldPtr != reinterpret_cast(array) && oldPtr != ptr) 8751: free(oldPtr); 8751: 8751: if (QTypeInfo::isComplex) { 8751: 8751: while (s < asize) 8751: new (ptr+(s++)) T; 8751: } else { 8751: s = asize; 8751: } 8751: } 8751: 8751: template 8751: T QVarLengthArray::value(int i) const 8751: { 8751: if (uint(i) >= uint(size())) { 8751: return T(); 8751: } 8751: return at(i); 8751: } 8751: template 8751: T QVarLengthArray::value(int i, const T &defaultValue) const 8751: { 8751: return (uint(i) >= uint(size())) ? defaultValue : at(i); 8751: } 8751: 8751: template 8751: inline void QVarLengthArray::insert(int i, const T &t) 8751: { do { } while ((false) && (i >= 0 && i <= s)); 8751: insert(begin() + i, 1, t); } 8751: template 8751: inline void QVarLengthArray::insert(int i, int n, const T &t) 8751: { do { } while ((false) && (i >= 0 && i <= s)); 8751: insert(begin() + i, n, t); } 8751: template 8751: inline void QVarLengthArray::remove(int i, int n) 8751: { do { } while ((false) && (i >= 0 && n >= 0 && i + n <= s)); 8751: erase(begin() + i, begin() + i + n); } 8751: template 8751: inline void QVarLengthArray::remove(int i) 8751: { do { } while ((false) && (i >= 0 && i < s)); 8751: erase(begin() + i, begin() + i + 1); } 8751: template 8751: inline void QVarLengthArray::prepend(const T &t) 8751: { insert(begin(), 1, t); } 8751: 8751: template 8751: inline void QVarLengthArray::replace(int i, const T &t) 8751: { 8751: do { } while ((false) && (i >= 0 && i < s)); 8751: const T copy(t); 8751: data()[i] = copy; 8751: } 8751: 8751: 8751: template 8751: typename QVarLengthArray::iterator QVarLengthArray::insert(const_iterator before, size_type n, const T &t) 8751: { 8751: do { } while ((false) && (isValidIterator(before))); 8751: 8751: int offset = int(before - ptr); 8751: if (n != 0) { 8751: resize(s + n); 8751: const T copy(t); 8751: if (!QTypeInfoQuery::isRelocatable) { 8751: T *b = ptr + offset; 8751: T *j = ptr + s; 8751: T *i = j - n; 8751: while (i != b) 8751: *--j = *--i; 8751: i = b + n; 8751: while (i != b) 8751: *--i = copy; 8751: } else { 8751: T *b = ptr + offset; 8751: T *i = b + n; 8751: memmove(i, b, (s - offset - n) * sizeof(T)); 8751: while (i != b) 8751: new (--i) T(copy); 8751: } 8751: } 8751: return ptr + offset; 8751: } 8751: 8751: template 8751: typename QVarLengthArray::iterator QVarLengthArray::erase(const_iterator abegin, const_iterator aend) 8751: { 8751: do { } while ((false) && (isValidIterator(abegin))); 8751: do { } while ((false) && (isValidIterator(aend))); 8751: 8751: int f = int(abegin - ptr); 8751: int l = int(aend - ptr); 8751: int n = l - f; 8751: if (QTypeInfo::isComplex) { 8751: std::copy(ptr + l, ptr + s, (ptr + f)); 8751: T *i = ptr + s; 8751: T *b = ptr + s - n; 8751: while (i != b) { 8751: --i; 8751: i->~T(); 8751: } 8751: } else { 8751: memmove(ptr + f, ptr + l, (s - l) * sizeof(T)); 8751: } 8751: s -= n; 8751: return ptr + f; 8751: } 8751: 8751: template 8751: bool operator==(const QVarLengthArray &l, const QVarLengthArray &r) 8751: { 8751: if (l.size() != r.size()) 8751: return false; 8751: const T *rb = r.begin(); 8751: const T *b = l.begin(); 8751: const T *e = l.end(); 8751: return std::equal(b, e, (rb)); 8751: } 8751: 8751: template 8751: bool operator!=(const QVarLengthArray &l, const QVarLengthArray &r) 8751: { 8751: return !(l == r); 8751: } 8751: 8751: template 8751: bool operator<(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8751: noexcept(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()))) 8751: 8751: { 8751: return std::lexicographical_compare(lhs.begin(), lhs.end(), 8751: rhs.begin(), rhs.end()); 8751: } 8751: 8751: template 8751: inline bool operator>(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8751: noexcept(noexcept(lhs < rhs)) 8751: { 8751: return rhs < lhs; 8751: } 8751: 8751: template 8751: inline bool operator<=(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8751: noexcept(noexcept(lhs < rhs)) 8751: { 8751: return !(lhs > rhs); 8751: } 8751: 8751: template 8751: inline bool operator>=(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8751: noexcept(noexcept(lhs < rhs)) 8751: { 8751: return !(lhs < rhs); 8751: } 8751: 8751: 8751: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 2 3 4 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs.h" 1 3 4 8751: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h" 1 3 4 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h" 3 4 8751: 8751: 8751: 8751: namespace QtPrivate { 8751: template struct RemoveRef { typedef T Type; }; 8751: template struct RemoveRef { typedef T Type; }; 8751: template struct RemoveConstRef { typedef T Type; }; 8751: template struct RemoveConstRef { typedef T Type; }; 8751: # 69 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h" 3 4 8751: template struct List {}; 8751: template struct List { typedef Head Car; typedef List Cdr; }; 8751: template struct List_Append; 8751: template struct List_Append, List> { typedef List Value; }; 8751: template struct List_Left { 8751: typedef typename List_Append,typename List_Left::Value>::Value Value; 8751: }; 8751: template struct List_Left { typedef List<> Value; }; 8751: 8751: template struct List_Select { typedef typename List_Select::Value Value; }; 8751: template struct List_Select { typedef typename L::Car Value; }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct ApplyReturnValue { 8751: void *data; 8751: explicit ApplyReturnValue(void *data_) : data(data_) {} 8751: }; 8751: template 8751: void operator,(T &&value, const ApplyReturnValue &container) { 8751: if (container.data) 8751: *reinterpret_cast(container.data) = std::forward(value); 8751: } 8751: template 8751: void operator,(T, const ApplyReturnValue &) {} 8751: # 117 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h" 3 4 8751: template struct IndexesList {}; 8751: template struct IndexesAppend; 8751: template struct IndexesAppend, Right> 8751: { typedef IndexesList Value; }; 8751: template struct Indexes 8751: { typedef typename IndexesAppend::Value, N - 1>::Value Value; }; 8751: template <> struct Indexes<0> { typedef IndexesList<> Value; }; 8751: template struct FunctionPointer { enum {ArgumentCount = -1, IsPointerToMemberFunction = false}; }; 8751: 8751: template struct FunctorCall; 8751: template 8751: struct FunctorCall, List, R, Function> { 8751: static void call(Function &f, void **arg) { 8751: f((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]); 8751: } 8751: }; 8751: template 8751: struct FunctorCall, List, R, SlotRet (Obj::*)(SlotArgs...)> { 8751: static void call(SlotRet (Obj::*f)(SlotArgs...), Obj *o, void **arg) { 8751: (o->*f)((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]); 8751: } 8751: }; 8751: template 8751: struct FunctorCall, List, R, SlotRet (Obj::*)(SlotArgs...) const> { 8751: static void call(SlotRet (Obj::*f)(SlotArgs...) const, Obj *o, void **arg) { 8751: (o->*f)((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]); 8751: } 8751: }; 8751: # 160 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h" 3 4 8751: template struct FunctionPointer 8751: { 8751: typedef Obj Object; 8751: typedef List Arguments; 8751: typedef Ret ReturnType; 8751: typedef Ret (Obj::*Function) (Args...); 8751: enum {ArgumentCount = sizeof...(Args), IsPointerToMemberFunction = true}; 8751: template 8751: static void call(Function f, Obj *o, void **arg) { 8751: FunctorCall::Value, SignalArgs, R, Function>::call(f, o, arg); 8751: } 8751: }; 8751: template struct FunctionPointer 8751: { 8751: typedef Obj Object; 8751: typedef List Arguments; 8751: typedef Ret ReturnType; 8751: typedef Ret (Obj::*Function) (Args...) const; 8751: enum {ArgumentCount = sizeof...(Args), IsPointerToMemberFunction = true}; 8751: template 8751: static void call(Function f, Obj *o, void **arg) { 8751: FunctorCall::Value, SignalArgs, R, Function>::call(f, o, arg); 8751: } 8751: }; 8751: 8751: template struct FunctionPointer 8751: { 8751: typedef List Arguments; 8751: typedef Ret ReturnType; 8751: typedef Ret (*Function) (Args...); 8751: enum {ArgumentCount = sizeof...(Args), IsPointerToMemberFunction = false}; 8751: template 8751: static void call(Function f, void *, void **arg) { 8751: FunctorCall::Value, SignalArgs, R, Function>::call(f, arg); 8751: } 8751: }; 8751: # 236 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs_impl.h" 3 4 8751: template struct Functor 8751: { 8751: template 8751: static void call(Function &f, void *, void **arg) { 8751: FunctorCall::Value, SignalArgs, R, Function>::call(f, arg); 8751: } 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct IsEnumUnderlyingTypeSigned : std::false_type 8751: { 8751: }; 8751: 8751: template 8751: struct IsEnumUnderlyingTypeSigned::value>::type> 8751: : std::integral_constant::type>::value> 8751: { 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct AreArgumentsNarrowedBase : std::false_type 8751: { 8751: }; 8751: 8751: template 8751: struct AreArgumentsNarrowedBase::type> 8751: : std::integral_constant::value && std::is_integral::value) || 8751: (std::is_floating_point::value && std::is_floating_point::value && sizeof(From) > sizeof(To)) || 8751: ((std::is_integral::value || std::is_enum::value) && std::is_floating_point::value) || 8751: (std::is_integral::value && std::is_integral::value 8751: && (sizeof(From) > sizeof(To) 8751: || (std::is_signed::value ? !std::is_signed::value 8751: : (std::is_signed::value && sizeof(From) == sizeof(To))))) || 8751: (std::is_enum::value && std::is_integral::value 8751: && (sizeof(From) > sizeof(To) 8751: || (IsEnumUnderlyingTypeSigned::value ? !std::is_signed::value 8751: : (std::is_signed::value && sizeof(From) == sizeof(To))))) 8751: > 8751: { 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template struct AreArgumentsCompatible { 8751: static int test(const typename RemoveRef::Type&); 8751: static char test(...); 8751: static const typename RemoveRef::Type &dummy(); 8751: enum { value = sizeof(test(dummy())) == sizeof(int) }; 8751: 8751: 8751: 8751: 8751: }; 8751: template struct AreArgumentsCompatible { enum { value = false }; }; 8751: template struct AreArgumentsCompatible { enum { value = true }; }; 8751: 8751: template struct AreArgumentsCompatible { enum { value = true }; }; 8751: template struct AreArgumentsCompatible { enum { value = true }; }; 8751: template<> struct AreArgumentsCompatible { enum { value = true }; }; 8751: 8751: template struct CheckCompatibleArguments { enum { value = false }; }; 8751: template <> struct CheckCompatibleArguments, List<>> { enum { value = true }; }; 8751: template struct CheckCompatibleArguments> { enum { value = true }; }; 8751: template 8751: struct CheckCompatibleArguments, List> 8751: { 8751: enum { value = AreArgumentsCompatible::Type, typename RemoveConstRef::Type>::value 8751: && CheckCompatibleArguments, List>::value }; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template struct ComputeFunctorArgumentCount; 8751: 8751: template struct ComputeFunctorArgumentCountHelper 8751: { enum { Value = -1 }; }; 8751: template 8751: struct ComputeFunctorArgumentCountHelper, false> 8751: : ComputeFunctorArgumentCount, sizeof...(ArgList)>::Value> {}; 8751: 8751: template struct ComputeFunctorArgumentCount> 8751: { 8751: template static D dummy(); 8751: template static auto test(F f) -> decltype(((f.operator()((dummy())...)), int())); 8751: static char test(...); 8751: enum { 8751: Ok = sizeof(test(dummy())) == sizeof(int), 8751: Value = Ok ? int(sizeof...(ArgList)) : int(ComputeFunctorArgumentCountHelper, Ok>::Value) 8751: }; 8751: }; 8751: 8751: 8751: template struct FunctorReturnType; 8751: template struct FunctorReturnType> { 8751: template static D dummy(); 8751: typedef decltype(dummy().operator()((dummy())...)) Value; 8751: }; 8751: } 8751: 8751: 8751: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs.h" 2 3 4 8751: 8751: 8751: 8751: 8751: class QByteArray; 8751: struct QArrayData; 8751: typedef QArrayData QByteArrayData; 8751: 8751: class QString; 8751: # 262 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs.h" 3 4 8751: __attribute__((visibility("default"))) const char *qFlagLocation(const char *method); 8751: # 288 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobjectdefs.h" 3 4 8751: class QObject; 8751: class QMetaMethod; 8751: class QMetaEnum; 8751: class QMetaProperty; 8751: class QMetaClassInfo; 8751: 8751: 8751: class __attribute__((visibility("default"))) QGenericArgument 8751: { 8751: public: 8751: inline QGenericArgument(const char *aName = nullptr, const void *aData = nullptr) 8751: : _data(aData), _name(aName) {} 8751: inline void *data() const { return const_cast(_data); } 8751: inline const char *name() const { return _name; } 8751: 8751: private: 8751: const void *_data; 8751: const char *_name; 8751: }; 8751: 8751: class __attribute__((visibility("default"))) QGenericReturnArgument: public QGenericArgument 8751: { 8751: public: 8751: inline QGenericReturnArgument(const char *aName = nullptr, void *aData = nullptr) 8751: : QGenericArgument(aName, aData) 8751: {} 8751: }; 8751: 8751: template 8751: class QArgument: public QGenericArgument 8751: { 8751: public: 8751: inline QArgument(const char *aName, const T &aData) 8751: : QGenericArgument(aName, static_cast(&aData)) 8751: {} 8751: }; 8751: template 8751: class QArgument: public QGenericArgument 8751: { 8751: public: 8751: inline QArgument(const char *aName, T &aData) 8751: : QGenericArgument(aName, static_cast(&aData)) 8751: {} 8751: }; 8751: 8751: 8751: template 8751: class QReturnArgument: public QGenericReturnArgument 8751: { 8751: public: 8751: inline QReturnArgument(const char *aName, T &aData) 8751: : QGenericReturnArgument(aName, static_cast(&aData)) 8751: {} 8751: }; 8751: 8751: struct __attribute__((visibility("default"))) QMetaObject 8751: { 8751: class Connection; 8751: const char *className() const; 8751: const QMetaObject *superClass() const; 8751: 8751: bool inherits(const QMetaObject *metaObject) const noexcept; 8751: QObject *cast(QObject *obj) const; 8751: const QObject *cast(const QObject *obj) const; 8751: 8751: 8751: QString tr(const char *s, const char *c, int n = -1) const; 8751: 8751: 8751: int methodOffset() const; 8751: int enumeratorOffset() const; 8751: int propertyOffset() const; 8751: int classInfoOffset() const; 8751: 8751: int constructorCount() const; 8751: int methodCount() const; 8751: int enumeratorCount() const; 8751: int propertyCount() const; 8751: int classInfoCount() const; 8751: 8751: int indexOfConstructor(const char *constructor) const; 8751: int indexOfMethod(const char *method) const; 8751: int indexOfSignal(const char *signal) const; 8751: int indexOfSlot(const char *slot) const; 8751: int indexOfEnumerator(const char *name) const; 8751: int indexOfProperty(const char *name) const; 8751: int indexOfClassInfo(const char *name) const; 8751: 8751: QMetaMethod constructor(int index) const; 8751: QMetaMethod method(int index) const; 8751: QMetaEnum enumerator(int index) const; 8751: QMetaProperty property(int index) const; 8751: QMetaClassInfo classInfo(int index) const; 8751: QMetaProperty userProperty() const; 8751: 8751: static bool checkConnectArgs(const char *signal, const char *method); 8751: static bool checkConnectArgs(const QMetaMethod &signal, 8751: const QMetaMethod &method); 8751: static QByteArray normalizedSignature(const char *method); 8751: static QByteArray normalizedType(const char *type); 8751: 8751: 8751: static Connection connect(const QObject *sender, int signal_index, 8751: const QObject *receiver, int method_index, 8751: int type = 0, int *types = nullptr); 8751: 8751: static bool disconnect(const QObject *sender, int signal_index, 8751: const QObject *receiver, int method_index); 8751: static bool disconnectOne(const QObject *sender, int signal_index, 8751: const QObject *receiver, int method_index); 8751: 8751: static void connectSlotsByName(QObject *o); 8751: 8751: 8751: static void activate(QObject *sender, int signal_index, void **argv); 8751: static void activate(QObject *sender, const QMetaObject *, int local_signal_index, void **argv); 8751: static void activate(QObject *sender, int signal_offset, int local_signal_index, void **argv); 8751: 8751: static bool invokeMethod(QObject *obj, const char *member, 8751: Qt::ConnectionType, 8751: QGenericReturnArgument ret, 8751: QGenericArgument val0 = QGenericArgument(nullptr), 8751: QGenericArgument val1 = QGenericArgument(), 8751: QGenericArgument val2 = QGenericArgument(), 8751: QGenericArgument val3 = QGenericArgument(), 8751: QGenericArgument val4 = QGenericArgument(), 8751: QGenericArgument val5 = QGenericArgument(), 8751: QGenericArgument val6 = QGenericArgument(), 8751: QGenericArgument val7 = QGenericArgument(), 8751: QGenericArgument val8 = QGenericArgument(), 8751: QGenericArgument val9 = QGenericArgument()); 8751: 8751: static inline bool invokeMethod(QObject *obj, const char *member, 8751: QGenericReturnArgument ret, 8751: QGenericArgument val0 = QGenericArgument(nullptr), 8751: QGenericArgument val1 = QGenericArgument(), 8751: QGenericArgument val2 = QGenericArgument(), 8751: QGenericArgument val3 = QGenericArgument(), 8751: QGenericArgument val4 = QGenericArgument(), 8751: QGenericArgument val5 = QGenericArgument(), 8751: QGenericArgument val6 = QGenericArgument(), 8751: QGenericArgument val7 = QGenericArgument(), 8751: QGenericArgument val8 = QGenericArgument(), 8751: QGenericArgument val9 = QGenericArgument()) 8751: { 8751: return invokeMethod(obj, member, Qt::AutoConnection, ret, val0, val1, val2, val3, 8751: val4, val5, val6, val7, val8, val9); 8751: } 8751: 8751: static inline bool invokeMethod(QObject *obj, const char *member, 8751: Qt::ConnectionType type, 8751: QGenericArgument val0 = QGenericArgument(nullptr), 8751: QGenericArgument val1 = QGenericArgument(), 8751: QGenericArgument val2 = QGenericArgument(), 8751: QGenericArgument val3 = QGenericArgument(), 8751: QGenericArgument val4 = QGenericArgument(), 8751: QGenericArgument val5 = QGenericArgument(), 8751: QGenericArgument val6 = QGenericArgument(), 8751: QGenericArgument val7 = QGenericArgument(), 8751: QGenericArgument val8 = QGenericArgument(), 8751: QGenericArgument val9 = QGenericArgument()) 8751: { 8751: return invokeMethod(obj, member, type, QGenericReturnArgument(), val0, val1, val2, 8751: val3, val4, val5, val6, val7, val8, val9); 8751: } 8751: 8751: static inline bool invokeMethod(QObject *obj, const char *member, 8751: QGenericArgument val0 = QGenericArgument(nullptr), 8751: QGenericArgument val1 = QGenericArgument(), 8751: QGenericArgument val2 = QGenericArgument(), 8751: QGenericArgument val3 = QGenericArgument(), 8751: QGenericArgument val4 = QGenericArgument(), 8751: QGenericArgument val5 = QGenericArgument(), 8751: QGenericArgument val6 = QGenericArgument(), 8751: QGenericArgument val7 = QGenericArgument(), 8751: QGenericArgument val8 = QGenericArgument(), 8751: QGenericArgument val9 = QGenericArgument()) 8751: { 8751: return invokeMethod(obj, member, Qt::AutoConnection, QGenericReturnArgument(), val0, 8751: val1, val2, val3, val4, val5, val6, val7, val8, val9); 8751: } 8751: 8751: QObject *newInstance(QGenericArgument val0 = QGenericArgument(nullptr), 8751: QGenericArgument val1 = QGenericArgument(), 8751: QGenericArgument val2 = QGenericArgument(), 8751: QGenericArgument val3 = QGenericArgument(), 8751: QGenericArgument val4 = QGenericArgument(), 8751: QGenericArgument val5 = QGenericArgument(), 8751: QGenericArgument val6 = QGenericArgument(), 8751: QGenericArgument val7 = QGenericArgument(), 8751: QGenericArgument val8 = QGenericArgument(), 8751: QGenericArgument val9 = QGenericArgument()) const; 8751: 8751: enum Call { 8751: InvokeMetaMethod, 8751: ReadProperty, 8751: WriteProperty, 8751: ResetProperty, 8751: QueryPropertyDesignable, 8751: QueryPropertyScriptable, 8751: QueryPropertyStored, 8751: QueryPropertyEditable, 8751: QueryPropertyUser, 8751: CreateInstance, 8751: IndexOfMethod, 8751: RegisterPropertyMetaType, 8751: RegisterMethodArgumentMetaType 8751: }; 8751: 8751: int static_metacall(Call, int, void **) const; 8751: static int metacall(QObject *, Call, int, void **); 8751: 8751: struct { 8751: const QMetaObject *superdata; 8751: const QByteArrayData *stringdata; 8751: const uint *data; 8751: typedef void (*StaticMetacallFunction)(QObject *, QMetaObject::Call, int, void **); 8751: StaticMetacallFunction static_metacall; 8751: const QMetaObject * const *relatedMetaObjects; 8751: void *extradata; 8751: } d; 8751: }; 8751: 8751: class __attribute__((visibility("default"))) QMetaObject::Connection { 8751: void *d_ptr; 8751: explicit Connection(void *data) : d_ptr(data) { } 8751: friend class QObject; 8751: friend class QObjectPrivate; 8751: friend struct QMetaObject; 8751: bool isConnected_helper() const; 8751: public: 8751: ~Connection(); 8751: Connection(); 8751: Connection(const Connection &other); 8751: Connection &operator=(const Connection &other); 8751: 8751: 8751: 8751: typedef void *Connection::*RestrictedBool; 8751: operator RestrictedBool() const { return d_ptr && isConnected_helper() ? &Connection::d_ptr : nullptr; } 8751: 8751: 8751: 8751: inline Connection(Connection &&o) : d_ptr(o.d_ptr) { o.d_ptr = nullptr; } 8751: inline Connection &operator=(Connection &&other) 8751: { qSwap(d_ptr, other.d_ptr); return *this; } 8751: 8751: }; 8751: 8751: inline const QMetaObject *QMetaObject::superClass() const 8751: { return d.superdata; } 8751: 8751: namespace QtPrivate { 8751: 8751: template struct HasQ_OBJECT_Macro { 8751: template 8751: static char test(int (T::*)(QMetaObject::Call, int, void **)); 8751: static int test(int (Object::*)(QMetaObject::Call, int, void **)); 8751: enum { Value = sizeof(test(&Object::qt_metacall)) == sizeof(int) }; 8751: }; 8751: } 8751: 8751: 8751: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 2 3 4 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/vector" 1 3 4 8751: # 58 "/usr/include/c++/8/vector" 3 4 8751: 8751: # 59 "/usr/include/c++/8/vector" 3 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/stl_uninitialized.h" 1 3 8751: # 67 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: template 8751: struct __uninitialized_copy 8751: { 8751: template 8751: static _ForwardIterator 8751: __uninit_copy(_InputIterator __first, _InputIterator __last, 8751: _ForwardIterator __result) 8751: { 8751: _ForwardIterator __cur = __result; 8751: try 8751: { 8751: for (; __first != __last; ++__first, (void)++__cur) 8751: std::_Construct(std::__addressof(*__cur), *__first); 8751: return __cur; 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__result, __cur); 8751: throw; 8751: } 8751: } 8751: }; 8751: 8751: template<> 8751: struct __uninitialized_copy 8751: { 8751: template 8751: static _ForwardIterator 8751: __uninit_copy(_InputIterator __first, _InputIterator __last, 8751: _ForwardIterator __result) 8751: { return std::copy(__first, __last, __result); } 8751: }; 8751: # 113 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8751: template 8751: inline _ForwardIterator 8751: uninitialized_copy(_InputIterator __first, _InputIterator __last, 8751: _ForwardIterator __result) 8751: { 8751: typedef typename iterator_traits<_InputIterator>::value_type 8751: _ValueType1; 8751: typedef typename iterator_traits<_ForwardIterator>::value_type 8751: _ValueType2; 8751: 8751: 8751: 8751: 8751: typedef typename iterator_traits<_InputIterator>::reference _RefType1; 8751: typedef typename iterator_traits<_ForwardIterator>::reference _RefType2; 8751: const bool __assignable = is_assignable<_RefType2, _RefType1>::value; 8751: 8751: 8751: return std::__uninitialized_copy<__is_trivial(_ValueType1) 8751: && __is_trivial(_ValueType2) 8751: && __assignable>:: 8751: __uninit_copy(__first, __last, __result); 8751: } 8751: 8751: 8751: template 8751: struct __uninitialized_fill 8751: { 8751: template 8751: static void 8751: __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __x) 8751: { 8751: _ForwardIterator __cur = __first; 8751: try 8751: { 8751: for (; __cur != __last; ++__cur) 8751: std::_Construct(std::__addressof(*__cur), __x); 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__first, __cur); 8751: throw; 8751: } 8751: } 8751: }; 8751: 8751: template<> 8751: struct __uninitialized_fill 8751: { 8751: template 8751: static void 8751: __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __x) 8751: { std::fill(__first, __last, __x); } 8751: }; 8751: # 179 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8751: template 8751: inline void 8751: uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __x) 8751: { 8751: typedef typename iterator_traits<_ForwardIterator>::value_type 8751: _ValueType; 8751: 8751: 8751: 8751: 8751: const bool __assignable = is_copy_assignable<_ValueType>::value; 8751: 8751: 8751: std::__uninitialized_fill<__is_trivial(_ValueType) && __assignable>:: 8751: __uninit_fill(__first, __last, __x); 8751: } 8751: 8751: 8751: template 8751: struct __uninitialized_fill_n 8751: { 8751: template 8751: static _ForwardIterator 8751: __uninit_fill_n(_ForwardIterator __first, _Size __n, 8751: const _Tp& __x) 8751: { 8751: _ForwardIterator __cur = __first; 8751: try 8751: { 8751: for (; __n > 0; --__n, (void) ++__cur) 8751: std::_Construct(std::__addressof(*__cur), __x); 8751: return __cur; 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__first, __cur); 8751: throw; 8751: } 8751: } 8751: }; 8751: 8751: template<> 8751: struct __uninitialized_fill_n 8751: { 8751: template 8751: static _ForwardIterator 8751: __uninit_fill_n(_ForwardIterator __first, _Size __n, 8751: const _Tp& __x) 8751: { return std::fill_n(__first, __n, __x); } 8751: }; 8751: # 242 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8751: template 8751: inline _ForwardIterator 8751: uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) 8751: { 8751: typedef typename iterator_traits<_ForwardIterator>::value_type 8751: _ValueType; 8751: 8751: 8751: 8751: 8751: const bool __assignable = is_copy_assignable<_ValueType>::value; 8751: 8751: return __uninitialized_fill_n<__is_trivial(_ValueType) && __assignable>:: 8751: __uninit_fill_n(__first, __n, __x); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: _ForwardIterator 8751: __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 8751: _ForwardIterator __result, _Allocator& __alloc) 8751: { 8751: _ForwardIterator __cur = __result; 8751: try 8751: { 8751: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8751: for (; __first != __last; ++__first, (void)++__cur) 8751: __traits::construct(__alloc, std::__addressof(*__cur), *__first); 8751: return __cur; 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__result, __cur, __alloc); 8751: throw; 8751: } 8751: } 8751: 8751: template 8751: inline _ForwardIterator 8751: __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 8751: _ForwardIterator __result, allocator<_Tp>&) 8751: { return std::uninitialized_copy(__first, __last, __result); } 8751: 8751: template 8751: inline _ForwardIterator 8751: __uninitialized_move_a(_InputIterator __first, _InputIterator __last, 8751: _ForwardIterator __result, _Allocator& __alloc) 8751: { 8751: return std::__uninitialized_copy_a(std::make_move_iterator(__first), 8751: std::make_move_iterator(__last), 8751: __result, __alloc); 8751: } 8751: 8751: template 8751: inline _ForwardIterator 8751: __uninitialized_move_if_noexcept_a(_InputIterator __first, 8751: _InputIterator __last, 8751: _ForwardIterator __result, 8751: _Allocator& __alloc) 8751: { 8751: return std::__uninitialized_copy_a 8751: (std::__make_move_if_noexcept_iterator(__first), 8751: std::__make_move_if_noexcept_iterator(__last), __result, __alloc); 8751: } 8751: 8751: template 8751: void 8751: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __x, _Allocator& __alloc) 8751: { 8751: _ForwardIterator __cur = __first; 8751: try 8751: { 8751: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8751: for (; __cur != __last; ++__cur) 8751: __traits::construct(__alloc, std::__addressof(*__cur), __x); 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__first, __cur, __alloc); 8751: throw; 8751: } 8751: } 8751: 8751: template 8751: inline void 8751: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 8751: const _Tp& __x, allocator<_Tp2>&) 8751: { std::uninitialized_fill(__first, __last, __x); } 8751: 8751: template 8751: _ForwardIterator 8751: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 8751: const _Tp& __x, _Allocator& __alloc) 8751: { 8751: _ForwardIterator __cur = __first; 8751: try 8751: { 8751: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8751: for (; __n > 0; --__n, (void) ++__cur) 8751: __traits::construct(__alloc, std::__addressof(*__cur), __x); 8751: return __cur; 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__first, __cur, __alloc); 8751: throw; 8751: } 8751: } 8751: 8751: template 8751: inline _ForwardIterator 8751: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 8751: const _Tp& __x, allocator<_Tp2>&) 8751: { return std::uninitialized_fill_n(__first, __n, __x); } 8751: # 378 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8751: template 8751: inline _ForwardIterator 8751: __uninitialized_copy_move(_InputIterator1 __first1, 8751: _InputIterator1 __last1, 8751: _InputIterator2 __first2, 8751: _InputIterator2 __last2, 8751: _ForwardIterator __result, 8751: _Allocator& __alloc) 8751: { 8751: _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1, 8751: __result, 8751: __alloc); 8751: try 8751: { 8751: return std::__uninitialized_move_a(__first2, __last2, __mid, __alloc); 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__result, __mid, __alloc); 8751: throw; 8751: } 8751: } 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline _ForwardIterator 8751: __uninitialized_move_copy(_InputIterator1 __first1, 8751: _InputIterator1 __last1, 8751: _InputIterator2 __first2, 8751: _InputIterator2 __last2, 8751: _ForwardIterator __result, 8751: _Allocator& __alloc) 8751: { 8751: _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1, 8751: __result, 8751: __alloc); 8751: try 8751: { 8751: return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc); 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__result, __mid, __alloc); 8751: throw; 8751: } 8751: } 8751: 8751: 8751: 8751: 8751: template 8751: inline _ForwardIterator 8751: __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid, 8751: const _Tp& __x, _InputIterator __first, 8751: _InputIterator __last, _Allocator& __alloc) 8751: { 8751: std::__uninitialized_fill_a(__result, __mid, __x, __alloc); 8751: try 8751: { 8751: return std::__uninitialized_move_a(__first, __last, __mid, __alloc); 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__result, __mid, __alloc); 8751: throw; 8751: } 8751: } 8751: 8751: 8751: 8751: 8751: template 8751: inline void 8751: __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1, 8751: _ForwardIterator __first2, 8751: _ForwardIterator __last2, const _Tp& __x, 8751: _Allocator& __alloc) 8751: { 8751: _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1, 8751: __first2, 8751: __alloc); 8751: try 8751: { 8751: std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc); 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__first2, __mid2, __alloc); 8751: throw; 8751: } 8751: } 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct __uninitialized_default_1 8751: { 8751: template 8751: static void 8751: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 8751: { 8751: _ForwardIterator __cur = __first; 8751: try 8751: { 8751: for (; __cur != __last; ++__cur) 8751: std::_Construct(std::__addressof(*__cur)); 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__first, __cur); 8751: throw; 8751: } 8751: } 8751: }; 8751: 8751: template<> 8751: struct __uninitialized_default_1 8751: { 8751: template 8751: static void 8751: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 8751: { 8751: typedef typename iterator_traits<_ForwardIterator>::value_type 8751: _ValueType; 8751: 8751: std::fill(__first, __last, _ValueType()); 8751: } 8751: }; 8751: 8751: template 8751: struct __uninitialized_default_n_1 8751: { 8751: template 8751: static _ForwardIterator 8751: __uninit_default_n(_ForwardIterator __first, _Size __n) 8751: { 8751: _ForwardIterator __cur = __first; 8751: try 8751: { 8751: for (; __n > 0; --__n, (void) ++__cur) 8751: std::_Construct(std::__addressof(*__cur)); 8751: return __cur; 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__first, __cur); 8751: throw; 8751: } 8751: } 8751: }; 8751: 8751: template<> 8751: struct __uninitialized_default_n_1 8751: { 8751: template 8751: static _ForwardIterator 8751: __uninit_default_n(_ForwardIterator __first, _Size __n) 8751: { 8751: typedef typename iterator_traits<_ForwardIterator>::value_type 8751: _ValueType; 8751: 8751: return std::fill_n(__first, __n, _ValueType()); 8751: } 8751: }; 8751: 8751: 8751: 8751: 8751: template 8751: inline void 8751: __uninitialized_default(_ForwardIterator __first, 8751: _ForwardIterator __last) 8751: { 8751: typedef typename iterator_traits<_ForwardIterator>::value_type 8751: _ValueType; 8751: 8751: const bool __assignable = is_copy_assignable<_ValueType>::value; 8751: 8751: std::__uninitialized_default_1<__is_trivial(_ValueType) 8751: && __assignable>:: 8751: __uninit_default(__first, __last); 8751: } 8751: 8751: 8751: 8751: template 8751: inline _ForwardIterator 8751: __uninitialized_default_n(_ForwardIterator __first, _Size __n) 8751: { 8751: typedef typename iterator_traits<_ForwardIterator>::value_type 8751: _ValueType; 8751: 8751: const bool __assignable = is_copy_assignable<_ValueType>::value; 8751: 8751: return __uninitialized_default_n_1<__is_trivial(_ValueType) 8751: && __assignable>:: 8751: __uninit_default_n(__first, __n); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: template 8751: void 8751: __uninitialized_default_a(_ForwardIterator __first, 8751: _ForwardIterator __last, 8751: _Allocator& __alloc) 8751: { 8751: _ForwardIterator __cur = __first; 8751: try 8751: { 8751: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8751: for (; __cur != __last; ++__cur) 8751: __traits::construct(__alloc, std::__addressof(*__cur)); 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__first, __cur, __alloc); 8751: throw; 8751: } 8751: } 8751: 8751: template 8751: inline void 8751: __uninitialized_default_a(_ForwardIterator __first, 8751: _ForwardIterator __last, 8751: allocator<_Tp>&) 8751: { std::__uninitialized_default(__first, __last); } 8751: 8751: 8751: 8751: 8751: 8751: template 8751: _ForwardIterator 8751: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 8751: _Allocator& __alloc) 8751: { 8751: _ForwardIterator __cur = __first; 8751: try 8751: { 8751: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8751: for (; __n > 0; --__n, (void) ++__cur) 8751: __traits::construct(__alloc, std::__addressof(*__cur)); 8751: return __cur; 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__first, __cur, __alloc); 8751: throw; 8751: } 8751: } 8751: 8751: template 8751: inline _ForwardIterator 8751: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 8751: allocator<_Tp>&) 8751: { return std::__uninitialized_default_n(__first, __n); } 8751: 8751: template 8751: struct __uninitialized_default_novalue_1 8751: { 8751: template 8751: static void 8751: __uninit_default_novalue(_ForwardIterator __first, 8751: _ForwardIterator __last) 8751: { 8751: _ForwardIterator __cur = __first; 8751: try 8751: { 8751: for (; __cur != __last; ++__cur) 8751: std::_Construct_novalue(std::__addressof(*__cur)); 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__first, __cur); 8751: throw; 8751: } 8751: } 8751: }; 8751: 8751: template<> 8751: struct __uninitialized_default_novalue_1 8751: { 8751: template 8751: static void 8751: __uninit_default_novalue(_ForwardIterator __first, 8751: _ForwardIterator __last) 8751: { 8751: } 8751: }; 8751: 8751: template 8751: struct __uninitialized_default_novalue_n_1 8751: { 8751: template 8751: static _ForwardIterator 8751: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 8751: { 8751: _ForwardIterator __cur = __first; 8751: try 8751: { 8751: for (; __n > 0; --__n, (void) ++__cur) 8751: std::_Construct_novalue(std::__addressof(*__cur)); 8751: return __cur; 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__first, __cur); 8751: throw; 8751: } 8751: } 8751: }; 8751: 8751: template<> 8751: struct __uninitialized_default_novalue_n_1 8751: { 8751: template 8751: static _ForwardIterator 8751: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 8751: { return std::next(__first, __n); } 8751: }; 8751: 8751: 8751: 8751: 8751: template 8751: inline void 8751: __uninitialized_default_novalue(_ForwardIterator __first, 8751: _ForwardIterator __last) 8751: { 8751: typedef typename iterator_traits<_ForwardIterator>::value_type 8751: _ValueType; 8751: 8751: std::__uninitialized_default_novalue_1< 8751: is_trivially_default_constructible<_ValueType>::value>:: 8751: __uninit_default_novalue(__first, __last); 8751: } 8751: 8751: 8751: 8751: template 8751: inline _ForwardIterator 8751: __uninitialized_default_novalue_n(_ForwardIterator __first, _Size __n) 8751: { 8751: typedef typename iterator_traits<_ForwardIterator>::value_type 8751: _ValueType; 8751: 8751: return __uninitialized_default_novalue_n_1< 8751: is_trivially_default_constructible<_ValueType>::value>:: 8751: __uninit_default_novalue_n(__first, __n); 8751: } 8751: 8751: template 8751: _ForwardIterator 8751: __uninitialized_copy_n(_InputIterator __first, _Size __n, 8751: _ForwardIterator __result, input_iterator_tag) 8751: { 8751: _ForwardIterator __cur = __result; 8751: try 8751: { 8751: for (; __n > 0; --__n, (void) ++__first, ++__cur) 8751: std::_Construct(std::__addressof(*__cur), *__first); 8751: return __cur; 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__result, __cur); 8751: throw; 8751: } 8751: } 8751: 8751: template 8751: inline _ForwardIterator 8751: __uninitialized_copy_n(_RandomAccessIterator __first, _Size __n, 8751: _ForwardIterator __result, 8751: random_access_iterator_tag) 8751: { return std::uninitialized_copy(__first, __first + __n, __result); } 8751: 8751: template 8751: pair<_InputIterator, _ForwardIterator> 8751: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 8751: _ForwardIterator __result, input_iterator_tag) 8751: { 8751: _ForwardIterator __cur = __result; 8751: try 8751: { 8751: for (; __n > 0; --__n, (void) ++__first, ++__cur) 8751: std::_Construct(std::__addressof(*__cur), *__first); 8751: return {__first, __cur}; 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__result, __cur); 8751: throw; 8751: } 8751: } 8751: 8751: template 8751: inline pair<_RandomAccessIterator, _ForwardIterator> 8751: __uninitialized_copy_n_pair(_RandomAccessIterator __first, _Size __n, 8751: _ForwardIterator __result, 8751: random_access_iterator_tag) 8751: { 8751: auto __second_res = uninitialized_copy(__first, __first + __n, __result); 8751: auto __first_res = std::next(__first, __n); 8751: return {__first_res, __second_res}; 8751: } 8751: # 810 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8751: template 8751: inline _ForwardIterator 8751: uninitialized_copy_n(_InputIterator __first, _Size __n, 8751: _ForwardIterator __result) 8751: { return std::__uninitialized_copy_n(__first, __n, __result, 8751: std::__iterator_category(__first)); } 8751: 8751: template 8751: inline pair<_InputIterator, _ForwardIterator> 8751: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 8751: _ForwardIterator __result) 8751: { 8751: return 8751: std::__uninitialized_copy_n_pair(__first, __n, __result, 8751: std::__iterator_category(__first)); 8751: } 8751: # 882 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8751: 8751: } 8751: # 64 "/usr/include/c++/8/vector" 2 3 8751: # 1 "/usr/include/c++/8/bits/stl_vector.h" 1 3 8751: # 74 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: template 8751: struct _Vector_base 8751: { 8751: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8751: rebind<_Tp>::other _Tp_alloc_type; 8751: typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer 8751: pointer; 8751: 8751: struct _Vector_impl 8751: : public _Tp_alloc_type 8751: { 8751: pointer _M_start; 8751: pointer _M_finish; 8751: pointer _M_end_of_storage; 8751: 8751: _Vector_impl() 8751: : _Tp_alloc_type(), _M_start(), _M_finish(), _M_end_of_storage() 8751: { } 8751: 8751: _Vector_impl(_Tp_alloc_type const& __a) noexcept 8751: : _Tp_alloc_type(__a), _M_start(), _M_finish(), _M_end_of_storage() 8751: { } 8751: 8751: 8751: _Vector_impl(_Tp_alloc_type&& __a) noexcept 8751: : _Tp_alloc_type(std::move(__a)), 8751: _M_start(), _M_finish(), _M_end_of_storage() 8751: { } 8751: 8751: 8751: void _M_swap_data(_Vector_impl& __x) noexcept 8751: { 8751: std::swap(_M_start, __x._M_start); 8751: std::swap(_M_finish, __x._M_finish); 8751: std::swap(_M_end_of_storage, __x._M_end_of_storage); 8751: } 8751: # 231 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: }; 8751: 8751: public: 8751: typedef _Alloc allocator_type; 8751: 8751: _Tp_alloc_type& 8751: _M_get_Tp_allocator() noexcept 8751: { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); } 8751: 8751: const _Tp_alloc_type& 8751: _M_get_Tp_allocator() const noexcept 8751: { return *static_cast(&this->_M_impl); } 8751: 8751: allocator_type 8751: get_allocator() const noexcept 8751: { return allocator_type(_M_get_Tp_allocator()); } 8751: 8751: _Vector_base() 8751: : _M_impl() { } 8751: 8751: _Vector_base(const allocator_type& __a) noexcept 8751: : _M_impl(__a) { } 8751: 8751: _Vector_base(size_t __n) 8751: : _M_impl() 8751: { _M_create_storage(__n); } 8751: 8751: _Vector_base(size_t __n, const allocator_type& __a) 8751: : _M_impl(__a) 8751: { _M_create_storage(__n); } 8751: 8751: 8751: _Vector_base(_Tp_alloc_type&& __a) noexcept 8751: : _M_impl(std::move(__a)) { } 8751: 8751: _Vector_base(_Vector_base&& __x) noexcept 8751: : _M_impl(std::move(__x._M_get_Tp_allocator())) 8751: { this->_M_impl._M_swap_data(__x._M_impl); } 8751: 8751: _Vector_base(_Vector_base&& __x, const allocator_type& __a) 8751: : _M_impl(__a) 8751: { 8751: if (__x.get_allocator() == __a) 8751: this->_M_impl._M_swap_data(__x._M_impl); 8751: else 8751: { 8751: size_t __n = __x._M_impl._M_finish - __x._M_impl._M_start; 8751: _M_create_storage(__n); 8751: } 8751: } 8751: 8751: 8751: ~_Vector_base() noexcept 8751: { 8751: _M_deallocate(_M_impl._M_start, 8751: _M_impl._M_end_of_storage - _M_impl._M_start); 8751: } 8751: 8751: public: 8751: _Vector_impl _M_impl; 8751: 8751: pointer 8751: _M_allocate(size_t __n) 8751: { 8751: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 8751: return __n != 0 ? _Tr::allocate(_M_impl, __n) : pointer(); 8751: } 8751: 8751: void 8751: _M_deallocate(pointer __p, size_t __n) 8751: { 8751: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 8751: if (__p) 8751: _Tr::deallocate(_M_impl, __p, __n); 8751: } 8751: 8751: private: 8751: void 8751: _M_create_storage(size_t __n) 8751: { 8751: this->_M_impl._M_start = this->_M_allocate(__n); 8751: this->_M_impl._M_finish = this->_M_impl._M_start; 8751: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 8751: } 8751: }; 8751: # 338 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: template > 8751: class vector : protected _Vector_base<_Tp, _Alloc> 8751: { 8751: # 351 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: static_assert(is_same::type, _Tp>::value, 8751: "std::vector must have a non-const, non-volatile value_type"); 8751: 8751: 8751: 8751: 8751: 8751: 8751: typedef _Vector_base<_Tp, _Alloc> _Base; 8751: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 8751: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; 8751: 8751: public: 8751: typedef _Tp value_type; 8751: typedef typename _Base::pointer pointer; 8751: typedef typename _Alloc_traits::const_pointer const_pointer; 8751: typedef typename _Alloc_traits::reference reference; 8751: typedef typename _Alloc_traits::const_reference const_reference; 8751: typedef __gnu_cxx::__normal_iterator iterator; 8751: typedef __gnu_cxx::__normal_iterator 8751: const_iterator; 8751: typedef std::reverse_iterator const_reverse_iterator; 8751: typedef std::reverse_iterator reverse_iterator; 8751: typedef size_t size_type; 8751: typedef ptrdiff_t difference_type; 8751: typedef _Alloc allocator_type; 8751: 8751: protected: 8751: using _Base::_M_allocate; 8751: using _Base::_M_deallocate; 8751: using _Base::_M_impl; 8751: using _Base::_M_get_Tp_allocator; 8751: 8751: public: 8751: 8751: 8751: 8751: 8751: 8751: 8751: vector() 8751: 8751: noexcept(is_nothrow_default_constructible<_Alloc>::value) 8751: 8751: : _Base() { } 8751: 8751: 8751: 8751: 8751: 8751: explicit 8751: vector(const allocator_type& __a) noexcept 8751: : _Base(__a) { } 8751: # 414 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: explicit 8751: vector(size_type __n, const allocator_type& __a = allocator_type()) 8751: : _Base(__n, __a) 8751: { _M_default_initialize(__n); } 8751: # 427 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: vector(size_type __n, const value_type& __value, 8751: const allocator_type& __a = allocator_type()) 8751: : _Base(__n, __a) 8751: { _M_fill_initialize(__n, __value); } 8751: # 458 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: vector(const vector& __x) 8751: : _Base(__x.size(), 8751: _Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator())) 8751: { 8751: this->_M_impl._M_finish = 8751: std::__uninitialized_copy_a(__x.begin(), __x.end(), 8751: this->_M_impl._M_start, 8751: _M_get_Tp_allocator()); 8751: } 8751: # 476 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: vector(vector&& __x) noexcept 8751: : _Base(std::move(__x)) { } 8751: 8751: 8751: vector(const vector& __x, const allocator_type& __a) 8751: : _Base(__x.size(), __a) 8751: { 8751: this->_M_impl._M_finish = 8751: std::__uninitialized_copy_a(__x.begin(), __x.end(), 8751: this->_M_impl._M_start, 8751: _M_get_Tp_allocator()); 8751: } 8751: 8751: 8751: vector(vector&& __rv, const allocator_type& __m) 8751: noexcept(_Alloc_traits::_S_always_equal()) 8751: : _Base(std::move(__rv), __m) 8751: { 8751: if (__rv.get_allocator() != __m) 8751: { 8751: this->_M_impl._M_finish = 8751: std::__uninitialized_move_a(__rv.begin(), __rv.end(), 8751: this->_M_impl._M_start, 8751: _M_get_Tp_allocator()); 8751: __rv.clear(); 8751: } 8751: } 8751: # 515 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: vector(initializer_list __l, 8751: const allocator_type& __a = allocator_type()) 8751: : _Base(__a) 8751: { 8751: _M_range_initialize(__l.begin(), __l.end(), 8751: random_access_iterator_tag()); 8751: } 8751: # 541 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: template> 8751: vector(_InputIterator __first, _InputIterator __last, 8751: const allocator_type& __a = allocator_type()) 8751: : _Base(__a) 8751: { _M_initialize_dispatch(__first, __last, __false_type()); } 8751: # 565 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: ~vector() noexcept 8751: { 8751: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8751: _M_get_Tp_allocator()); 8751: ; 8751: } 8751: # 581 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: vector& 8751: operator=(const vector& __x); 8751: # 595 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: vector& 8751: operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move()) 8751: { 8751: constexpr bool __move_storage = 8751: _Alloc_traits::_S_propagate_on_move_assign() 8751: || _Alloc_traits::_S_always_equal(); 8751: _M_move_assign(std::move(__x), __bool_constant<__move_storage>()); 8751: return *this; 8751: } 8751: # 616 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: vector& 8751: operator=(initializer_list __l) 8751: { 8751: this->_M_assign_aux(__l.begin(), __l.end(), 8751: random_access_iterator_tag()); 8751: return *this; 8751: } 8751: # 635 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: void 8751: assign(size_type __n, const value_type& __val) 8751: { _M_fill_assign(__n, __val); } 8751: # 652 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: template> 8751: void 8751: assign(_InputIterator __first, _InputIterator __last) 8751: { _M_assign_dispatch(__first, __last, __false_type()); } 8751: # 680 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: void 8751: assign(initializer_list __l) 8751: { 8751: this->_M_assign_aux(__l.begin(), __l.end(), 8751: random_access_iterator_tag()); 8751: } 8751: 8751: 8751: 8751: using _Base::get_allocator; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: iterator 8751: begin() noexcept 8751: { return iterator(this->_M_impl._M_start); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: begin() const noexcept 8751: { return const_iterator(this->_M_impl._M_start); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: iterator 8751: end() noexcept 8751: { return iterator(this->_M_impl._M_finish); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: end() const noexcept 8751: { return const_iterator(this->_M_impl._M_finish); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: rbegin() noexcept 8751: { return reverse_iterator(end()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: rbegin() const noexcept 8751: { return const_reverse_iterator(end()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: rend() noexcept 8751: { return reverse_iterator(begin()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: rend() const noexcept 8751: { return const_reverse_iterator(begin()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: cbegin() const noexcept 8751: { return const_iterator(this->_M_impl._M_start); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: cend() const noexcept 8751: { return const_iterator(this->_M_impl._M_finish); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: crbegin() const noexcept 8751: { return const_reverse_iterator(end()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: crend() const noexcept 8751: { return const_reverse_iterator(begin()); } 8751: 8751: 8751: 8751: 8751: size_type 8751: size() const noexcept 8751: { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } 8751: 8751: 8751: size_type 8751: max_size() const noexcept 8751: { return _Alloc_traits::max_size(_M_get_Tp_allocator()); } 8751: # 823 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: void 8751: resize(size_type __new_size) 8751: { 8751: if (__new_size > size()) 8751: _M_default_append(__new_size - size()); 8751: else if (__new_size < size()) 8751: _M_erase_at_end(this->_M_impl._M_start + __new_size); 8751: } 8751: # 843 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: void 8751: resize(size_type __new_size, const value_type& __x) 8751: { 8751: if (__new_size > size()) 8751: _M_fill_insert(end(), __new_size - size(), __x); 8751: else if (__new_size < size()) 8751: _M_erase_at_end(this->_M_impl._M_start + __new_size); 8751: } 8751: # 875 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: void 8751: shrink_to_fit() 8751: { _M_shrink_to_fit(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: size_type 8751: capacity() const noexcept 8751: { return size_type(this->_M_impl._M_end_of_storage 8751: - this->_M_impl._M_start); } 8751: 8751: 8751: 8751: 8751: 8751: bool 8751: empty() const noexcept 8751: { return begin() == end(); } 8751: # 914 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: void 8751: reserve(size_type __n); 8751: # 929 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: reference 8751: operator[](size_type __n) noexcept 8751: { 8751: ; 8751: return *(this->_M_impl._M_start + __n); 8751: } 8751: # 947 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: const_reference 8751: operator[](size_type __n) const noexcept 8751: { 8751: ; 8751: return *(this->_M_impl._M_start + __n); 8751: } 8751: 8751: protected: 8751: 8751: void 8751: _M_range_check(size_type __n) const 8751: { 8751: if (__n >= this->size()) 8751: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8751: 8751: , 8751: __n, this->size()); 8751: } 8751: 8751: public: 8751: # 978 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: reference 8751: at(size_type __n) 8751: { 8751: _M_range_check(__n); 8751: return (*this)[__n]; 8751: } 8751: # 996 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: const_reference 8751: at(size_type __n) const 8751: { 8751: _M_range_check(__n); 8751: return (*this)[__n]; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: reference 8751: front() noexcept 8751: { 8751: ; 8751: return *begin(); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: const_reference 8751: front() const noexcept 8751: { 8751: ; 8751: return *begin(); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: reference 8751: back() noexcept 8751: { 8751: ; 8751: return *(end() - 1); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: const_reference 8751: back() const noexcept 8751: { 8751: ; 8751: return *(end() - 1); 8751: } 8751: # 1054 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: _Tp* 8751: data() noexcept 8751: { return _M_data_ptr(this->_M_impl._M_start); } 8751: 8751: const _Tp* 8751: data() const noexcept 8751: { return _M_data_ptr(this->_M_impl._M_start); } 8751: # 1073 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: void 8751: push_back(const value_type& __x) 8751: { 8751: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8751: { 8751: ; 8751: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8751: __x); 8751: ++this->_M_impl._M_finish; 8751: ; 8751: } 8751: else 8751: _M_realloc_insert(end(), __x); 8751: } 8751: 8751: 8751: void 8751: push_back(value_type&& __x) 8751: { emplace_back(std::move(__x)); } 8751: 8751: template 8751: 8751: 8751: 8751: void 8751: 8751: emplace_back(_Args&&... __args); 8751: # 1111 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: void 8751: pop_back() noexcept 8751: { 8751: ; 8751: --this->_M_impl._M_finish; 8751: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 8751: ; 8751: } 8751: # 1133 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: template 8751: iterator 8751: emplace(const_iterator __position, _Args&&... __args) 8751: { return _M_emplace_aux(__position, std::forward<_Args>(__args)...); } 8751: # 1149 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: iterator 8751: insert(const_iterator __position, const value_type& __x); 8751: # 1179 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: iterator 8751: insert(const_iterator __position, value_type&& __x) 8751: { return _M_insert_rval(__position, std::move(__x)); } 8751: # 1196 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: iterator 8751: insert(const_iterator __position, initializer_list __l) 8751: { 8751: auto __offset = __position - cbegin(); 8751: _M_range_insert(begin() + __offset, __l.begin(), __l.end(), 8751: std::random_access_iterator_tag()); 8751: return begin() + __offset; 8751: } 8751: # 1221 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: iterator 8751: insert(const_iterator __position, size_type __n, const value_type& __x) 8751: { 8751: difference_type __offset = __position - cbegin(); 8751: _M_fill_insert(begin() + __offset, __n, __x); 8751: return begin() + __offset; 8751: } 8751: # 1263 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: template> 8751: iterator 8751: insert(const_iterator __position, _InputIterator __first, 8751: _InputIterator __last) 8751: { 8751: difference_type __offset = __position - cbegin(); 8751: _M_insert_dispatch(begin() + __offset, 8751: __first, __last, __false_type()); 8751: return begin() + __offset; 8751: } 8751: # 1315 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: iterator 8751: 8751: erase(const_iterator __position) 8751: { return _M_erase(begin() + (__position - cbegin())); } 8751: # 1342 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: iterator 8751: 8751: erase(const_iterator __first, const_iterator __last) 8751: { 8751: const auto __beg = begin(); 8751: const auto __cbeg = cbegin(); 8751: return _M_erase(__beg + (__first - __cbeg), __beg + (__last - __cbeg)); 8751: } 8751: # 1366 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: void 8751: swap(vector& __x) noexcept 8751: { 8751: 8751: 8751: ; 8751: 8751: this->_M_impl._M_swap_data(__x._M_impl); 8751: _Alloc_traits::_S_on_swap(_M_get_Tp_allocator(), 8751: __x._M_get_Tp_allocator()); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: void 8751: clear() noexcept 8751: { _M_erase_at_end(this->_M_impl._M_start); } 8751: 8751: protected: 8751: 8751: 8751: 8751: 8751: template 8751: pointer 8751: _M_allocate_and_copy(size_type __n, 8751: _ForwardIterator __first, _ForwardIterator __last) 8751: { 8751: pointer __result = this->_M_allocate(__n); 8751: try 8751: { 8751: std::__uninitialized_copy_a(__first, __last, __result, 8751: _M_get_Tp_allocator()); 8751: return __result; 8751: } 8751: catch(...) 8751: { 8751: _M_deallocate(__result, __n); 8751: throw; 8751: } 8751: } 8751: # 1419 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: template 8751: void 8751: _M_initialize_dispatch(_Integer __n, _Integer __value, __true_type) 8751: { 8751: this->_M_impl._M_start = _M_allocate(static_cast(__n)); 8751: this->_M_impl._M_end_of_storage = 8751: this->_M_impl._M_start + static_cast(__n); 8751: _M_fill_initialize(static_cast(__n), __value); 8751: } 8751: 8751: 8751: template 8751: void 8751: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 8751: __false_type) 8751: { 8751: typedef typename std::iterator_traits<_InputIterator>:: 8751: iterator_category _IterCategory; 8751: _M_range_initialize(__first, __last, _IterCategory()); 8751: } 8751: 8751: 8751: template 8751: void 8751: _M_range_initialize(_InputIterator __first, 8751: _InputIterator __last, std::input_iterator_tag) 8751: { 8751: for (; __first != __last; ++__first) 8751: 8751: emplace_back(*__first); 8751: 8751: 8751: 8751: } 8751: 8751: 8751: template 8751: void 8751: _M_range_initialize(_ForwardIterator __first, 8751: _ForwardIterator __last, std::forward_iterator_tag) 8751: { 8751: const size_type __n = std::distance(__first, __last); 8751: this->_M_impl._M_start = this->_M_allocate(__n); 8751: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 8751: this->_M_impl._M_finish = 8751: std::__uninitialized_copy_a(__first, __last, 8751: this->_M_impl._M_start, 8751: _M_get_Tp_allocator()); 8751: } 8751: 8751: 8751: 8751: void 8751: _M_fill_initialize(size_type __n, const value_type& __value) 8751: { 8751: this->_M_impl._M_finish = 8751: std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value, 8751: _M_get_Tp_allocator()); 8751: } 8751: 8751: 8751: 8751: void 8751: _M_default_initialize(size_type __n) 8751: { 8751: this->_M_impl._M_finish = 8751: std::__uninitialized_default_n_a(this->_M_impl._M_start, __n, 8751: _M_get_Tp_allocator()); 8751: } 8751: # 1497 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: template 8751: void 8751: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 8751: { _M_fill_assign(__n, __val); } 8751: 8751: 8751: template 8751: void 8751: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 8751: __false_type) 8751: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 8751: 8751: 8751: template 8751: void 8751: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8751: std::input_iterator_tag); 8751: 8751: 8751: template 8751: void 8751: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 8751: std::forward_iterator_tag); 8751: 8751: 8751: 8751: void 8751: _M_fill_assign(size_type __n, const value_type& __val); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: void 8751: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, 8751: __true_type) 8751: { _M_fill_insert(__pos, __n, __val); } 8751: 8751: 8751: template 8751: void 8751: _M_insert_dispatch(iterator __pos, _InputIterator __first, 8751: _InputIterator __last, __false_type) 8751: { 8751: _M_range_insert(__pos, __first, __last, 8751: std::__iterator_category(__first)); 8751: } 8751: 8751: 8751: template 8751: void 8751: _M_range_insert(iterator __pos, _InputIterator __first, 8751: _InputIterator __last, std::input_iterator_tag); 8751: 8751: 8751: template 8751: void 8751: _M_range_insert(iterator __pos, _ForwardIterator __first, 8751: _ForwardIterator __last, std::forward_iterator_tag); 8751: 8751: 8751: 8751: void 8751: _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); 8751: 8751: 8751: 8751: void 8751: _M_default_append(size_type __n); 8751: 8751: bool 8751: _M_shrink_to_fit(); 8751: # 1584 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: struct _Temporary_value 8751: { 8751: template 8751: explicit 8751: _Temporary_value(vector* __vec, _Args&&... __args) : _M_this(__vec) 8751: { 8751: _Alloc_traits::construct(_M_this->_M_impl, _M_ptr(), 8751: std::forward<_Args>(__args)...); 8751: } 8751: 8751: ~_Temporary_value() 8751: { _Alloc_traits::destroy(_M_this->_M_impl, _M_ptr()); } 8751: 8751: value_type& 8751: _M_val() { return *reinterpret_cast<_Tp*>(&__buf); } 8751: 8751: private: 8751: pointer 8751: _M_ptr() { return pointer_traits::pointer_to(_M_val()); } 8751: 8751: vector* _M_this; 8751: typename aligned_storage::type __buf; 8751: }; 8751: 8751: 8751: 8751: template 8751: void 8751: _M_insert_aux(iterator __position, _Arg&& __arg); 8751: 8751: template 8751: void 8751: _M_realloc_insert(iterator __position, _Args&&... __args); 8751: 8751: 8751: iterator 8751: _M_insert_rval(const_iterator __position, value_type&& __v); 8751: 8751: 8751: template 8751: iterator 8751: _M_emplace_aux(const_iterator __position, _Args&&... __args); 8751: 8751: 8751: iterator 8751: _M_emplace_aux(const_iterator __position, value_type&& __v) 8751: { return _M_insert_rval(__position, std::move(__v)); } 8751: 8751: 8751: 8751: size_type 8751: _M_check_len(size_type __n, const char* __s) const 8751: { 8751: if (max_size() - size() < __n) 8751: __throw_length_error((__s)); 8751: 8751: const size_type __len = size() + std::max(size(), __n); 8751: return (__len < size() || __len > max_size()) ? max_size() : __len; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: void 8751: _M_erase_at_end(pointer __pos) noexcept 8751: { 8751: if (size_type __n = this->_M_impl._M_finish - __pos) 8751: { 8751: std::_Destroy(__pos, this->_M_impl._M_finish, 8751: _M_get_Tp_allocator()); 8751: this->_M_impl._M_finish = __pos; 8751: ; 8751: } 8751: } 8751: 8751: iterator 8751: _M_erase(iterator __position); 8751: 8751: iterator 8751: _M_erase(iterator __first, iterator __last); 8751: 8751: 8751: private: 8751: 8751: 8751: 8751: void 8751: _M_move_assign(vector&& __x, std::true_type) noexcept 8751: { 8751: vector __tmp(get_allocator()); 8751: this->_M_impl._M_swap_data(__tmp._M_impl); 8751: this->_M_impl._M_swap_data(__x._M_impl); 8751: std::__alloc_on_move(_M_get_Tp_allocator(), __x._M_get_Tp_allocator()); 8751: } 8751: 8751: 8751: 8751: void 8751: _M_move_assign(vector&& __x, std::false_type) 8751: { 8751: if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator()) 8751: _M_move_assign(std::move(__x), std::true_type()); 8751: else 8751: { 8751: 8751: 8751: this->assign(std::__make_move_if_noexcept_iterator(__x.begin()), 8751: std::__make_move_if_noexcept_iterator(__x.end())); 8751: __x.clear(); 8751: } 8751: } 8751: 8751: 8751: template 8751: _Up* 8751: _M_data_ptr(_Up* __ptr) const noexcept 8751: { return __ptr; } 8751: 8751: 8751: template 8751: typename std::pointer_traits<_Ptr>::element_type* 8751: _M_data_ptr(_Ptr __ptr) const 8751: { return empty() ? nullptr : std::__to_address(__ptr); } 8751: # 1724 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: }; 8751: # 1746 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: template 8751: inline bool 8751: operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8751: { return (__x.size() == __y.size() 8751: && std::equal(__x.begin(), __x.end(), __y.begin())); } 8751: # 1763 "/usr/include/c++/8/bits/stl_vector.h" 3 8751: template 8751: inline bool 8751: operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8751: { return std::lexicographical_compare(__x.begin(), __x.end(), 8751: __y.begin(), __y.end()); } 8751: 8751: 8751: template 8751: inline bool 8751: operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8751: { return !(__x == __y); } 8751: 8751: 8751: template 8751: inline bool 8751: operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8751: { return __y < __x; } 8751: 8751: 8751: template 8751: inline bool 8751: operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8751: { return !(__y < __x); } 8751: 8751: 8751: template 8751: inline bool 8751: operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8751: { return !(__x < __y); } 8751: 8751: 8751: template 8751: inline void 8751: swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y) 8751: noexcept(noexcept(__x.swap(__y))) 8751: { __x.swap(__y); } 8751: 8751: 8751: 8751: } 8751: # 65 "/usr/include/c++/8/vector" 2 3 8751: # 1 "/usr/include/c++/8/bits/stl_bvector.h" 1 3 8751: # 63 "/usr/include/c++/8/bits/stl_bvector.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: typedef unsigned long _Bit_type; 8751: enum { _S_word_bit = int(8 * sizeof(_Bit_type)) }; 8751: 8751: struct _Bit_reference 8751: { 8751: _Bit_type * _M_p; 8751: _Bit_type _M_mask; 8751: 8751: _Bit_reference(_Bit_type * __x, _Bit_type __y) 8751: : _M_p(__x), _M_mask(__y) { } 8751: 8751: _Bit_reference() noexcept : _M_p(0), _M_mask(0) { } 8751: 8751: operator bool() const noexcept 8751: { return !!(*_M_p & _M_mask); } 8751: 8751: _Bit_reference& 8751: operator=(bool __x) noexcept 8751: { 8751: if (__x) 8751: *_M_p |= _M_mask; 8751: else 8751: *_M_p &= ~_M_mask; 8751: return *this; 8751: } 8751: 8751: _Bit_reference& 8751: operator=(const _Bit_reference& __x) noexcept 8751: { return *this = bool(__x); } 8751: 8751: bool 8751: operator==(const _Bit_reference& __x) const 8751: { return bool(*this) == bool(__x); } 8751: 8751: bool 8751: operator<(const _Bit_reference& __x) const 8751: { return !bool(*this) && bool(__x); } 8751: 8751: void 8751: flip() noexcept 8751: { *_M_p ^= _M_mask; } 8751: }; 8751: 8751: 8751: inline void 8751: swap(_Bit_reference __x, _Bit_reference __y) noexcept 8751: { 8751: bool __tmp = __x; 8751: __x = __y; 8751: __y = __tmp; 8751: } 8751: 8751: inline void 8751: swap(_Bit_reference __x, bool& __y) noexcept 8751: { 8751: bool __tmp = __x; 8751: __x = __y; 8751: __y = __tmp; 8751: } 8751: 8751: inline void 8751: swap(bool& __x, _Bit_reference __y) noexcept 8751: { 8751: bool __tmp = __x; 8751: __x = __y; 8751: __y = __tmp; 8751: } 8751: 8751: 8751: struct _Bit_iterator_base 8751: : public std::iterator 8751: { 8751: _Bit_type * _M_p; 8751: unsigned int _M_offset; 8751: 8751: _Bit_iterator_base(_Bit_type * __x, unsigned int __y) 8751: : _M_p(__x), _M_offset(__y) { } 8751: 8751: void 8751: _M_bump_up() 8751: { 8751: if (_M_offset++ == int(_S_word_bit) - 1) 8751: { 8751: _M_offset = 0; 8751: ++_M_p; 8751: } 8751: } 8751: 8751: void 8751: _M_bump_down() 8751: { 8751: if (_M_offset-- == 0) 8751: { 8751: _M_offset = int(_S_word_bit) - 1; 8751: --_M_p; 8751: } 8751: } 8751: 8751: void 8751: _M_incr(ptrdiff_t __i) 8751: { 8751: difference_type __n = __i + _M_offset; 8751: _M_p += __n / int(_S_word_bit); 8751: __n = __n % int(_S_word_bit); 8751: if (__n < 0) 8751: { 8751: __n += int(_S_word_bit); 8751: --_M_p; 8751: } 8751: _M_offset = static_cast(__n); 8751: } 8751: 8751: bool 8751: operator==(const _Bit_iterator_base& __i) const 8751: { return _M_p == __i._M_p && _M_offset == __i._M_offset; } 8751: 8751: bool 8751: operator<(const _Bit_iterator_base& __i) const 8751: { 8751: return _M_p < __i._M_p 8751: || (_M_p == __i._M_p && _M_offset < __i._M_offset); 8751: } 8751: 8751: bool 8751: operator!=(const _Bit_iterator_base& __i) const 8751: { return !(*this == __i); } 8751: 8751: bool 8751: operator>(const _Bit_iterator_base& __i) const 8751: { return __i < *this; } 8751: 8751: bool 8751: operator<=(const _Bit_iterator_base& __i) const 8751: { return !(__i < *this); } 8751: 8751: bool 8751: operator>=(const _Bit_iterator_base& __i) const 8751: { return !(*this < __i); } 8751: }; 8751: 8751: inline ptrdiff_t 8751: operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 8751: { 8751: return (int(_S_word_bit) * (__x._M_p - __y._M_p) 8751: + __x._M_offset - __y._M_offset); 8751: } 8751: 8751: struct _Bit_iterator : public _Bit_iterator_base 8751: { 8751: typedef _Bit_reference reference; 8751: typedef _Bit_reference* pointer; 8751: typedef _Bit_iterator iterator; 8751: 8751: _Bit_iterator() : _Bit_iterator_base(0, 0) { } 8751: 8751: _Bit_iterator(_Bit_type * __x, unsigned int __y) 8751: : _Bit_iterator_base(__x, __y) { } 8751: 8751: iterator 8751: _M_const_cast() const 8751: { return *this; } 8751: 8751: reference 8751: operator*() const 8751: { return reference(_M_p, 1UL << _M_offset); } 8751: 8751: iterator& 8751: operator++() 8751: { 8751: _M_bump_up(); 8751: return *this; 8751: } 8751: 8751: iterator 8751: operator++(int) 8751: { 8751: iterator __tmp = *this; 8751: _M_bump_up(); 8751: return __tmp; 8751: } 8751: 8751: iterator& 8751: operator--() 8751: { 8751: _M_bump_down(); 8751: return *this; 8751: } 8751: 8751: iterator 8751: operator--(int) 8751: { 8751: iterator __tmp = *this; 8751: _M_bump_down(); 8751: return __tmp; 8751: } 8751: 8751: iterator& 8751: operator+=(difference_type __i) 8751: { 8751: _M_incr(__i); 8751: return *this; 8751: } 8751: 8751: iterator& 8751: operator-=(difference_type __i) 8751: { 8751: *this += -__i; 8751: return *this; 8751: } 8751: 8751: iterator 8751: operator+(difference_type __i) const 8751: { 8751: iterator __tmp = *this; 8751: return __tmp += __i; 8751: } 8751: 8751: iterator 8751: operator-(difference_type __i) const 8751: { 8751: iterator __tmp = *this; 8751: return __tmp -= __i; 8751: } 8751: 8751: reference 8751: operator[](difference_type __i) const 8751: { return *(*this + __i); } 8751: }; 8751: 8751: inline _Bit_iterator 8751: operator+(ptrdiff_t __n, const _Bit_iterator& __x) 8751: { return __x + __n; } 8751: 8751: struct _Bit_const_iterator : public _Bit_iterator_base 8751: { 8751: typedef bool reference; 8751: typedef bool const_reference; 8751: typedef const bool* pointer; 8751: typedef _Bit_const_iterator const_iterator; 8751: 8751: _Bit_const_iterator() : _Bit_iterator_base(0, 0) { } 8751: 8751: _Bit_const_iterator(_Bit_type * __x, unsigned int __y) 8751: : _Bit_iterator_base(__x, __y) { } 8751: 8751: _Bit_const_iterator(const _Bit_iterator& __x) 8751: : _Bit_iterator_base(__x._M_p, __x._M_offset) { } 8751: 8751: _Bit_iterator 8751: _M_const_cast() const 8751: { return _Bit_iterator(_M_p, _M_offset); } 8751: 8751: const_reference 8751: operator*() const 8751: { return _Bit_reference(_M_p, 1UL << _M_offset); } 8751: 8751: const_iterator& 8751: operator++() 8751: { 8751: _M_bump_up(); 8751: return *this; 8751: } 8751: 8751: const_iterator 8751: operator++(int) 8751: { 8751: const_iterator __tmp = *this; 8751: _M_bump_up(); 8751: return __tmp; 8751: } 8751: 8751: const_iterator& 8751: operator--() 8751: { 8751: _M_bump_down(); 8751: return *this; 8751: } 8751: 8751: const_iterator 8751: operator--(int) 8751: { 8751: const_iterator __tmp = *this; 8751: _M_bump_down(); 8751: return __tmp; 8751: } 8751: 8751: const_iterator& 8751: operator+=(difference_type __i) 8751: { 8751: _M_incr(__i); 8751: return *this; 8751: } 8751: 8751: const_iterator& 8751: operator-=(difference_type __i) 8751: { 8751: *this += -__i; 8751: return *this; 8751: } 8751: 8751: const_iterator 8751: operator+(difference_type __i) const 8751: { 8751: const_iterator __tmp = *this; 8751: return __tmp += __i; 8751: } 8751: 8751: const_iterator 8751: operator-(difference_type __i) const 8751: { 8751: const_iterator __tmp = *this; 8751: return __tmp -= __i; 8751: } 8751: 8751: const_reference 8751: operator[](difference_type __i) const 8751: { return *(*this + __i); } 8751: }; 8751: 8751: inline _Bit_const_iterator 8751: operator+(ptrdiff_t __n, const _Bit_const_iterator& __x) 8751: { return __x + __n; } 8751: 8751: inline void 8751: __fill_bvector(_Bit_type * __v, 8751: unsigned int __first, unsigned int __last, bool __x) 8751: { 8751: const _Bit_type __fmask = ~0ul << __first; 8751: const _Bit_type __lmask = ~0ul >> (_S_word_bit - __last); 8751: const _Bit_type __mask = __fmask & __lmask; 8751: 8751: if (__x) 8751: *__v |= __mask; 8751: else 8751: *__v &= ~__mask; 8751: } 8751: 8751: inline void 8751: fill(_Bit_iterator __first, _Bit_iterator __last, const bool& __x) 8751: { 8751: if (__first._M_p != __last._M_p) 8751: { 8751: _Bit_type* __first_p = __first._M_p; 8751: if (__first._M_offset != 0) 8751: __fill_bvector(__first_p++, __first._M_offset, _S_word_bit, __x); 8751: 8751: __builtin_memset(__first_p, __x ? ~0 : 0, 8751: (__last._M_p - __first_p) * sizeof(_Bit_type)); 8751: 8751: if (__last._M_offset != 0) 8751: __fill_bvector(__last._M_p, 0, __last._M_offset, __x); 8751: } 8751: else if (__first._M_offset != __last._M_offset) 8751: __fill_bvector(__first._M_p, __first._M_offset, __last._M_offset, __x); 8751: } 8751: 8751: template 8751: struct _Bvector_base 8751: { 8751: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8751: rebind<_Bit_type>::other _Bit_alloc_type; 8751: typedef typename __gnu_cxx::__alloc_traits<_Bit_alloc_type> 8751: _Bit_alloc_traits; 8751: typedef typename _Bit_alloc_traits::pointer _Bit_pointer; 8751: 8751: struct _Bvector_impl_data 8751: { 8751: _Bit_iterator _M_start; 8751: _Bit_iterator _M_finish; 8751: _Bit_pointer _M_end_of_storage; 8751: 8751: _Bvector_impl_data() noexcept 8751: : _M_start(), _M_finish(), _M_end_of_storage() 8751: { } 8751: 8751: 8751: _Bvector_impl_data(_Bvector_impl_data&& __x) noexcept 8751: : _M_start(__x._M_start), _M_finish(__x._M_finish) 8751: , _M_end_of_storage(__x._M_end_of_storage) 8751: { __x._M_reset(); } 8751: 8751: void 8751: _M_move_data(_Bvector_impl_data&& __x) noexcept 8751: { 8751: this->_M_start = __x._M_start; 8751: this->_M_finish = __x._M_finish; 8751: this->_M_end_of_storage = __x._M_end_of_storage; 8751: __x._M_reset(); 8751: } 8751: 8751: 8751: void 8751: _M_reset() noexcept 8751: { 8751: _M_start = _M_finish = _Bit_iterator(); 8751: _M_end_of_storage = _Bit_pointer(); 8751: } 8751: }; 8751: 8751: struct _Bvector_impl 8751: : public _Bit_alloc_type, public _Bvector_impl_data 8751: { 8751: public: 8751: _Bvector_impl() 8751: noexcept(noexcept(_Bit_alloc_type())) 8751: : _Bit_alloc_type() 8751: { } 8751: 8751: _Bvector_impl(const _Bit_alloc_type& __a) noexcept 8751: : _Bit_alloc_type(__a) 8751: { } 8751: 8751: 8751: _Bvector_impl(_Bvector_impl&&) = default; 8751: 8751: 8751: _Bit_type* 8751: _M_end_addr() const noexcept 8751: { 8751: if (this->_M_end_of_storage) 8751: return std::__addressof(this->_M_end_of_storage[-1]) + 1; 8751: return 0; 8751: } 8751: }; 8751: 8751: public: 8751: typedef _Alloc allocator_type; 8751: 8751: _Bit_alloc_type& 8751: _M_get_Bit_allocator() noexcept 8751: { return this->_M_impl; } 8751: 8751: const _Bit_alloc_type& 8751: _M_get_Bit_allocator() const noexcept 8751: { return this->_M_impl; } 8751: 8751: allocator_type 8751: get_allocator() const noexcept 8751: { return allocator_type(_M_get_Bit_allocator()); } 8751: 8751: 8751: _Bvector_base() = default; 8751: 8751: 8751: 8751: 8751: _Bvector_base(const allocator_type& __a) 8751: : _M_impl(__a) { } 8751: 8751: 8751: _Bvector_base(_Bvector_base&&) = default; 8751: 8751: 8751: ~_Bvector_base() 8751: { this->_M_deallocate(); } 8751: 8751: protected: 8751: _Bvector_impl _M_impl; 8751: 8751: _Bit_pointer 8751: _M_allocate(size_t __n) 8751: { return _Bit_alloc_traits::allocate(_M_impl, _S_nword(__n)); } 8751: 8751: void 8751: _M_deallocate() 8751: { 8751: if (_M_impl._M_start._M_p) 8751: { 8751: const size_t __n = _M_impl._M_end_addr() - _M_impl._M_start._M_p; 8751: _Bit_alloc_traits::deallocate(_M_impl, 8751: _M_impl._M_end_of_storage - __n, 8751: __n); 8751: _M_impl._M_reset(); 8751: } 8751: } 8751: 8751: 8751: void 8751: _M_move_data(_Bvector_base&& __x) noexcept 8751: { _M_impl._M_move_data(std::move(__x._M_impl)); } 8751: 8751: 8751: static size_t 8751: _S_nword(size_t __n) 8751: { return (__n + int(_S_word_bit) - 1) / int(_S_word_bit); } 8751: }; 8751: 8751: 8751: 8751: } 8751: 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: # 586 "/usr/include/c++/8/bits/stl_bvector.h" 3 8751: template 8751: class vector : protected _Bvector_base<_Alloc> 8751: { 8751: typedef _Bvector_base<_Alloc> _Base; 8751: typedef typename _Base::_Bit_pointer _Bit_pointer; 8751: typedef typename _Base::_Bit_alloc_traits _Bit_alloc_traits; 8751: 8751: 8751: template friend struct hash; 8751: 8751: 8751: public: 8751: typedef bool value_type; 8751: typedef size_t size_type; 8751: typedef ptrdiff_t difference_type; 8751: typedef _Bit_reference reference; 8751: typedef bool const_reference; 8751: typedef _Bit_reference* pointer; 8751: typedef const bool* const_pointer; 8751: typedef _Bit_iterator iterator; 8751: typedef _Bit_const_iterator const_iterator; 8751: typedef std::reverse_iterator const_reverse_iterator; 8751: typedef std::reverse_iterator reverse_iterator; 8751: typedef _Alloc allocator_type; 8751: 8751: allocator_type 8751: get_allocator() const 8751: { return _Base::get_allocator(); } 8751: 8751: protected: 8751: using _Base::_M_allocate; 8751: using _Base::_M_deallocate; 8751: using _Base::_S_nword; 8751: using _Base::_M_get_Bit_allocator; 8751: 8751: public: 8751: 8751: vector() = default; 8751: 8751: 8751: 8751: 8751: explicit 8751: vector(const allocator_type& __a) 8751: : _Base(__a) { } 8751: 8751: 8751: explicit 8751: vector(size_type __n, const allocator_type& __a = allocator_type()) 8751: : vector(__n, false, __a) 8751: { } 8751: 8751: vector(size_type __n, const bool& __value, 8751: const allocator_type& __a = allocator_type()) 8751: 8751: 8751: 8751: 8751: 8751: : _Base(__a) 8751: { 8751: _M_initialize(__n); 8751: _M_initialize_value(__value); 8751: } 8751: 8751: vector(const vector& __x) 8751: : _Base(_Bit_alloc_traits::_S_select_on_copy(__x._M_get_Bit_allocator())) 8751: { 8751: _M_initialize(__x.size()); 8751: _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); 8751: } 8751: 8751: 8751: vector(vector&&) = default; 8751: 8751: vector(vector&& __x, const allocator_type& __a) 8751: noexcept(_Bit_alloc_traits::_S_always_equal()) 8751: : _Base(__a) 8751: { 8751: if (__x.get_allocator() == __a) 8751: this->_M_move_data(std::move(__x)); 8751: else 8751: { 8751: _M_initialize(__x.size()); 8751: _M_copy_aligned(__x.begin(), __x.end(), begin()); 8751: __x.clear(); 8751: } 8751: } 8751: 8751: vector(const vector& __x, const allocator_type& __a) 8751: : _Base(__a) 8751: { 8751: _M_initialize(__x.size()); 8751: _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); 8751: } 8751: 8751: vector(initializer_list __l, 8751: const allocator_type& __a = allocator_type()) 8751: : _Base(__a) 8751: { 8751: _M_initialize_range(__l.begin(), __l.end(), 8751: random_access_iterator_tag()); 8751: } 8751: 8751: 8751: 8751: template> 8751: vector(_InputIterator __first, _InputIterator __last, 8751: const allocator_type& __a = allocator_type()) 8751: : _Base(__a) 8751: { _M_initialize_dispatch(__first, __last, __false_type()); } 8751: # 709 "/usr/include/c++/8/bits/stl_bvector.h" 3 8751: ~vector() noexcept { } 8751: 8751: vector& 8751: operator=(const vector& __x) 8751: { 8751: if (&__x == this) 8751: return *this; 8751: 8751: if (_Bit_alloc_traits::_S_propagate_on_copy_assign()) 8751: { 8751: if (this->_M_get_Bit_allocator() != __x._M_get_Bit_allocator()) 8751: { 8751: this->_M_deallocate(); 8751: std::__alloc_on_copy(_M_get_Bit_allocator(), 8751: __x._M_get_Bit_allocator()); 8751: _M_initialize(__x.size()); 8751: } 8751: else 8751: std::__alloc_on_copy(_M_get_Bit_allocator(), 8751: __x._M_get_Bit_allocator()); 8751: } 8751: 8751: if (__x.size() > capacity()) 8751: { 8751: this->_M_deallocate(); 8751: _M_initialize(__x.size()); 8751: } 8751: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 8751: begin()); 8751: return *this; 8751: } 8751: 8751: 8751: vector& 8751: operator=(vector&& __x) noexcept(_Bit_alloc_traits::_S_nothrow_move()) 8751: { 8751: if (_Bit_alloc_traits::_S_propagate_on_move_assign() 8751: || this->_M_get_Bit_allocator() == __x._M_get_Bit_allocator()) 8751: { 8751: this->_M_deallocate(); 8751: this->_M_move_data(std::move(__x)); 8751: std::__alloc_on_move(_M_get_Bit_allocator(), 8751: __x._M_get_Bit_allocator()); 8751: } 8751: else 8751: { 8751: if (__x.size() > capacity()) 8751: { 8751: this->_M_deallocate(); 8751: _M_initialize(__x.size()); 8751: } 8751: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 8751: begin()); 8751: __x.clear(); 8751: } 8751: return *this; 8751: } 8751: 8751: vector& 8751: operator=(initializer_list __l) 8751: { 8751: this->assign (__l.begin(), __l.end()); 8751: return *this; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: void 8751: assign(size_type __n, const bool& __x) 8751: { _M_fill_assign(__n, __x); } 8751: 8751: 8751: template> 8751: void 8751: assign(_InputIterator __first, _InputIterator __last) 8751: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 8751: # 800 "/usr/include/c++/8/bits/stl_bvector.h" 3 8751: void 8751: assign(initializer_list __l) 8751: { _M_assign_aux(__l.begin(), __l.end(), random_access_iterator_tag()); } 8751: 8751: 8751: iterator 8751: begin() noexcept 8751: { return this->_M_impl._M_start; } 8751: 8751: const_iterator 8751: begin() const noexcept 8751: { return this->_M_impl._M_start; } 8751: 8751: iterator 8751: end() noexcept 8751: { return this->_M_impl._M_finish; } 8751: 8751: const_iterator 8751: end() const noexcept 8751: { return this->_M_impl._M_finish; } 8751: 8751: reverse_iterator 8751: rbegin() noexcept 8751: { return reverse_iterator(end()); } 8751: 8751: const_reverse_iterator 8751: rbegin() const noexcept 8751: { return const_reverse_iterator(end()); } 8751: 8751: reverse_iterator 8751: rend() noexcept 8751: { return reverse_iterator(begin()); } 8751: 8751: const_reverse_iterator 8751: rend() const noexcept 8751: { return const_reverse_iterator(begin()); } 8751: 8751: 8751: const_iterator 8751: cbegin() const noexcept 8751: { return this->_M_impl._M_start; } 8751: 8751: const_iterator 8751: cend() const noexcept 8751: { return this->_M_impl._M_finish; } 8751: 8751: const_reverse_iterator 8751: crbegin() const noexcept 8751: { return const_reverse_iterator(end()); } 8751: 8751: const_reverse_iterator 8751: crend() const noexcept 8751: { return const_reverse_iterator(begin()); } 8751: 8751: 8751: size_type 8751: size() const noexcept 8751: { return size_type(end() - begin()); } 8751: 8751: size_type 8751: max_size() const noexcept 8751: { 8751: const size_type __isize = 8751: __gnu_cxx::__numeric_traits::__max 8751: - int(_S_word_bit) + 1; 8751: const size_type __asize 8751: = _Bit_alloc_traits::max_size(_M_get_Bit_allocator()); 8751: return (__asize <= __isize / int(_S_word_bit) 8751: ? __asize * int(_S_word_bit) : __isize); 8751: } 8751: 8751: size_type 8751: capacity() const noexcept 8751: { return size_type(const_iterator(this->_M_impl._M_end_addr(), 0) 8751: - begin()); } 8751: 8751: bool 8751: empty() const noexcept 8751: { return begin() == end(); } 8751: 8751: reference 8751: operator[](size_type __n) 8751: { 8751: return *iterator(this->_M_impl._M_start._M_p 8751: + __n / int(_S_word_bit), __n % int(_S_word_bit)); 8751: } 8751: 8751: const_reference 8751: operator[](size_type __n) const 8751: { 8751: return *const_iterator(this->_M_impl._M_start._M_p 8751: + __n / int(_S_word_bit), __n % int(_S_word_bit)); 8751: } 8751: 8751: protected: 8751: void 8751: _M_range_check(size_type __n) const 8751: { 8751: if (__n >= this->size()) 8751: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8751: 8751: , 8751: __n, this->size()); 8751: } 8751: 8751: public: 8751: reference 8751: at(size_type __n) 8751: { _M_range_check(__n); return (*this)[__n]; } 8751: 8751: const_reference 8751: at(size_type __n) const 8751: { _M_range_check(__n); return (*this)[__n]; } 8751: 8751: void 8751: reserve(size_type __n) 8751: { 8751: if (__n > max_size()) 8751: __throw_length_error(("vector::reserve")); 8751: if (capacity() < __n) 8751: _M_reallocate(__n); 8751: } 8751: 8751: reference 8751: front() 8751: { return *begin(); } 8751: 8751: const_reference 8751: front() const 8751: { return *begin(); } 8751: 8751: reference 8751: back() 8751: { return *(end() - 1); } 8751: 8751: const_reference 8751: back() const 8751: { return *(end() - 1); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: void 8751: data() noexcept { } 8751: 8751: void 8751: push_back(bool __x) 8751: { 8751: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 8751: *this->_M_impl._M_finish++ = __x; 8751: else 8751: _M_insert_aux(end(), __x); 8751: } 8751: 8751: void 8751: swap(vector& __x) noexcept 8751: { 8751: std::swap(this->_M_impl._M_start, __x._M_impl._M_start); 8751: std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); 8751: std::swap(this->_M_impl._M_end_of_storage, 8751: __x._M_impl._M_end_of_storage); 8751: _Bit_alloc_traits::_S_on_swap(_M_get_Bit_allocator(), 8751: __x._M_get_Bit_allocator()); 8751: } 8751: 8751: 8751: static void 8751: swap(reference __x, reference __y) noexcept 8751: { 8751: bool __tmp = __x; 8751: __x = __y; 8751: __y = __tmp; 8751: } 8751: 8751: iterator 8751: 8751: insert(const_iterator __position, const bool& __x = bool()) 8751: 8751: 8751: 8751: { 8751: const difference_type __n = __position - begin(); 8751: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr() 8751: && __position == end()) 8751: *this->_M_impl._M_finish++ = __x; 8751: else 8751: _M_insert_aux(__position._M_const_cast(), __x); 8751: return begin() + __n; 8751: } 8751: 8751: 8751: template> 8751: iterator 8751: insert(const_iterator __position, 8751: _InputIterator __first, _InputIterator __last) 8751: { 8751: difference_type __offset = __position - cbegin(); 8751: _M_insert_dispatch(__position._M_const_cast(), 8751: __first, __last, __false_type()); 8751: return begin() + __offset; 8751: } 8751: # 1016 "/usr/include/c++/8/bits/stl_bvector.h" 3 8751: iterator 8751: insert(const_iterator __position, size_type __n, const bool& __x) 8751: { 8751: difference_type __offset = __position - cbegin(); 8751: _M_fill_insert(__position._M_const_cast(), __n, __x); 8751: return begin() + __offset; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: iterator 8751: insert(const_iterator __p, initializer_list __l) 8751: { return this->insert(__p, __l.begin(), __l.end()); } 8751: 8751: 8751: void 8751: pop_back() 8751: { --this->_M_impl._M_finish; } 8751: 8751: iterator 8751: 8751: erase(const_iterator __position) 8751: 8751: 8751: 8751: { return _M_erase(__position._M_const_cast()); } 8751: 8751: iterator 8751: 8751: erase(const_iterator __first, const_iterator __last) 8751: 8751: 8751: 8751: { return _M_erase(__first._M_const_cast(), __last._M_const_cast()); } 8751: 8751: void 8751: resize(size_type __new_size, bool __x = bool()) 8751: { 8751: if (__new_size < size()) 8751: _M_erase_at_end(begin() + difference_type(__new_size)); 8751: else 8751: insert(end(), __new_size - size(), __x); 8751: } 8751: 8751: 8751: void 8751: shrink_to_fit() 8751: { _M_shrink_to_fit(); } 8751: 8751: 8751: void 8751: flip() noexcept 8751: { 8751: _Bit_type * const __end = this->_M_impl._M_end_addr(); 8751: for (_Bit_type * __p = this->_M_impl._M_start._M_p; __p != __end; ++__p) 8751: *__p = ~*__p; 8751: } 8751: 8751: void 8751: clear() noexcept 8751: { _M_erase_at_end(begin()); } 8751: 8751: 8751: template 8751: 8751: 8751: 8751: void 8751: 8751: emplace_back(_Args&&... __args) 8751: { 8751: push_back(bool(__args...)); 8751: 8751: 8751: 8751: } 8751: 8751: template 8751: iterator 8751: emplace(const_iterator __pos, _Args&&... __args) 8751: { return insert(__pos, bool(__args...)); } 8751: 8751: 8751: protected: 8751: 8751: iterator 8751: _M_copy_aligned(const_iterator __first, const_iterator __last, 8751: iterator __result) 8751: { 8751: _Bit_type* __q = std::copy(__first._M_p, __last._M_p, __result._M_p); 8751: return std::copy(const_iterator(__last._M_p, 0), __last, 8751: iterator(__q, 0)); 8751: } 8751: 8751: void 8751: _M_initialize(size_type __n) 8751: { 8751: if (__n) 8751: { 8751: _Bit_pointer __q = this->_M_allocate(__n); 8751: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 8751: this->_M_impl._M_start = iterator(std::__addressof(*__q), 0); 8751: } 8751: else 8751: { 8751: this->_M_impl._M_end_of_storage = _Bit_pointer(); 8751: this->_M_impl._M_start = iterator(0, 0); 8751: } 8751: this->_M_impl._M_finish = this->_M_impl._M_start + difference_type(__n); 8751: 8751: } 8751: 8751: void 8751: _M_initialize_value(bool __x) 8751: { 8751: if (_Bit_type* __p = this->_M_impl._M_start._M_p) 8751: __builtin_memset(__p, __x ? ~0 : 0, 8751: (this->_M_impl._M_end_addr() - __p) 8751: * sizeof(_Bit_type)); 8751: } 8751: 8751: void 8751: _M_reallocate(size_type __n); 8751: 8751: 8751: bool 8751: _M_shrink_to_fit(); 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: void 8751: _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) 8751: { 8751: _M_initialize(static_cast(__n)); 8751: _M_initialize_value(__x); 8751: } 8751: 8751: template 8751: void 8751: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 8751: __false_type) 8751: { _M_initialize_range(__first, __last, 8751: std::__iterator_category(__first)); } 8751: 8751: template 8751: void 8751: _M_initialize_range(_InputIterator __first, _InputIterator __last, 8751: std::input_iterator_tag) 8751: { 8751: for (; __first != __last; ++__first) 8751: push_back(*__first); 8751: } 8751: 8751: template 8751: void 8751: _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, 8751: std::forward_iterator_tag) 8751: { 8751: const size_type __n = std::distance(__first, __last); 8751: _M_initialize(__n); 8751: std::copy(__first, __last, this->_M_impl._M_start); 8751: } 8751: # 1202 "/usr/include/c++/8/bits/stl_bvector.h" 3 8751: void 8751: _M_fill_assign(size_t __n, bool __x) 8751: { 8751: if (__n > size()) 8751: { 8751: _M_initialize_value(__x); 8751: insert(end(), __n - size(), __x); 8751: } 8751: else 8751: { 8751: _M_erase_at_end(begin() + __n); 8751: _M_initialize_value(__x); 8751: } 8751: } 8751: 8751: template 8751: void 8751: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8751: std::input_iterator_tag) 8751: { 8751: iterator __cur = begin(); 8751: for (; __first != __last && __cur != end(); ++__cur, ++__first) 8751: *__cur = *__first; 8751: if (__first == __last) 8751: _M_erase_at_end(__cur); 8751: else 8751: insert(end(), __first, __last); 8751: } 8751: 8751: template 8751: void 8751: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 8751: std::forward_iterator_tag) 8751: { 8751: const size_type __len = std::distance(__first, __last); 8751: if (__len < size()) 8751: _M_erase_at_end(std::copy(__first, __last, begin())); 8751: else 8751: { 8751: _ForwardIterator __mid = __first; 8751: std::advance(__mid, size()); 8751: std::copy(__first, __mid, begin()); 8751: insert(end(), __mid, __last); 8751: } 8751: } 8751: 8751: 8751: 8751: 8751: 8751: template 8751: void 8751: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, 8751: __true_type) 8751: { _M_fill_insert(__pos, __n, __x); } 8751: 8751: template 8751: void 8751: _M_insert_dispatch(iterator __pos, 8751: _InputIterator __first, _InputIterator __last, 8751: __false_type) 8751: { _M_insert_range(__pos, __first, __last, 8751: std::__iterator_category(__first)); } 8751: 8751: void 8751: _M_fill_insert(iterator __position, size_type __n, bool __x); 8751: 8751: template 8751: void 8751: _M_insert_range(iterator __pos, _InputIterator __first, 8751: _InputIterator __last, std::input_iterator_tag) 8751: { 8751: for (; __first != __last; ++__first) 8751: { 8751: __pos = insert(__pos, *__first); 8751: ++__pos; 8751: } 8751: } 8751: 8751: template 8751: void 8751: _M_insert_range(iterator __position, _ForwardIterator __first, 8751: _ForwardIterator __last, std::forward_iterator_tag); 8751: 8751: void 8751: _M_insert_aux(iterator __position, bool __x); 8751: 8751: size_type 8751: _M_check_len(size_type __n, const char* __s) const 8751: { 8751: if (max_size() - size() < __n) 8751: __throw_length_error((__s)); 8751: 8751: const size_type __len = size() + std::max(size(), __n); 8751: return (__len < size() || __len > max_size()) ? max_size() : __len; 8751: } 8751: 8751: void 8751: _M_erase_at_end(iterator __pos) 8751: { this->_M_impl._M_finish = __pos; } 8751: 8751: iterator 8751: _M_erase(iterator __pos); 8751: 8751: iterator 8751: _M_erase(iterator __first, iterator __last); 8751: }; 8751: 8751: 8751: 8751: } 8751: 8751: 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: template 8751: struct hash> 8751: : public __hash_base> 8751: { 8751: size_t 8751: operator()(const std::vector&) const noexcept; 8751: }; 8751: 8751: 8751: } 8751: # 66 "/usr/include/c++/8/vector" 2 3 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/vector.tcc" 1 3 8751: # 59 "/usr/include/c++/8/bits/vector.tcc" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: template 8751: void 8751: vector<_Tp, _Alloc>:: 8751: reserve(size_type __n) 8751: { 8751: if (__n > this->max_size()) 8751: __throw_length_error(("vector::reserve")); 8751: if (this->capacity() < __n) 8751: { 8751: const size_type __old_size = size(); 8751: pointer __tmp = _M_allocate_and_copy(__n, 8751: std::__make_move_if_noexcept_iterator(this->_M_impl._M_start), 8751: std::__make_move_if_noexcept_iterator(this->_M_impl._M_finish)); 8751: ; 8751: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8751: _M_get_Tp_allocator()); 8751: _M_deallocate(this->_M_impl._M_start, 8751: this->_M_impl._M_end_of_storage 8751: - this->_M_impl._M_start); 8751: this->_M_impl._M_start = __tmp; 8751: this->_M_impl._M_finish = __tmp + __old_size; 8751: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 8751: } 8751: } 8751: 8751: 8751: template 8751: template 8751: 8751: 8751: 8751: void 8751: 8751: vector<_Tp, _Alloc>:: 8751: emplace_back(_Args&&... __args) 8751: { 8751: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8751: { 8751: ; 8751: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8751: std::forward<_Args>(__args)...); 8751: ++this->_M_impl._M_finish; 8751: ; 8751: } 8751: else 8751: _M_realloc_insert(end(), std::forward<_Args>(__args)...); 8751: 8751: 8751: 8751: } 8751: 8751: 8751: template 8751: typename vector<_Tp, _Alloc>::iterator 8751: vector<_Tp, _Alloc>:: 8751: 8751: insert(const_iterator __position, const value_type& __x) 8751: 8751: 8751: 8751: { 8751: const size_type __n = __position - begin(); 8751: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8751: if (__position == end()) 8751: { 8751: ; 8751: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8751: __x); 8751: ++this->_M_impl._M_finish; 8751: ; 8751: } 8751: else 8751: { 8751: 8751: const auto __pos = begin() + (__position - cbegin()); 8751: 8751: 8751: _Temporary_value __x_copy(this, __x); 8751: _M_insert_aux(__pos, std::move(__x_copy._M_val())); 8751: 8751: 8751: 8751: } 8751: else 8751: 8751: _M_realloc_insert(begin() + (__position - cbegin()), __x); 8751: 8751: 8751: 8751: 8751: return iterator(this->_M_impl._M_start + __n); 8751: } 8751: 8751: template 8751: typename vector<_Tp, _Alloc>::iterator 8751: vector<_Tp, _Alloc>:: 8751: _M_erase(iterator __position) 8751: { 8751: if (__position + 1 != end()) 8751: std::move(__position + 1, end(), __position); 8751: --this->_M_impl._M_finish; 8751: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 8751: ; 8751: return __position; 8751: } 8751: 8751: template 8751: typename vector<_Tp, _Alloc>::iterator 8751: vector<_Tp, _Alloc>:: 8751: _M_erase(iterator __first, iterator __last) 8751: { 8751: if (__first != __last) 8751: { 8751: if (__last != end()) 8751: std::move(__last, end(), __first); 8751: _M_erase_at_end(__first.base() + (end() - __last)); 8751: } 8751: return __first; 8751: } 8751: 8751: template 8751: vector<_Tp, _Alloc>& 8751: vector<_Tp, _Alloc>:: 8751: operator=(const vector<_Tp, _Alloc>& __x) 8751: { 8751: if (&__x != this) 8751: { 8751: ; 8751: 8751: if (_Alloc_traits::_S_propagate_on_copy_assign()) 8751: { 8751: if (!_Alloc_traits::_S_always_equal() 8751: && _M_get_Tp_allocator() != __x._M_get_Tp_allocator()) 8751: { 8751: 8751: this->clear(); 8751: _M_deallocate(this->_M_impl._M_start, 8751: this->_M_impl._M_end_of_storage 8751: - this->_M_impl._M_start); 8751: this->_M_impl._M_start = nullptr; 8751: this->_M_impl._M_finish = nullptr; 8751: this->_M_impl._M_end_of_storage = nullptr; 8751: } 8751: std::__alloc_on_copy(_M_get_Tp_allocator(), 8751: __x._M_get_Tp_allocator()); 8751: } 8751: 8751: const size_type __xlen = __x.size(); 8751: if (__xlen > capacity()) 8751: { 8751: pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), 8751: __x.end()); 8751: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8751: _M_get_Tp_allocator()); 8751: _M_deallocate(this->_M_impl._M_start, 8751: this->_M_impl._M_end_of_storage 8751: - this->_M_impl._M_start); 8751: this->_M_impl._M_start = __tmp; 8751: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen; 8751: } 8751: else if (size() >= __xlen) 8751: { 8751: std::_Destroy(std::copy(__x.begin(), __x.end(), begin()), 8751: end(), _M_get_Tp_allocator()); 8751: } 8751: else 8751: { 8751: std::copy(__x._M_impl._M_start, __x._M_impl._M_start + size(), 8751: this->_M_impl._M_start); 8751: std::__uninitialized_copy_a(__x._M_impl._M_start + size(), 8751: __x._M_impl._M_finish, 8751: this->_M_impl._M_finish, 8751: _M_get_Tp_allocator()); 8751: } 8751: this->_M_impl._M_finish = this->_M_impl._M_start + __xlen; 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: void 8751: vector<_Tp, _Alloc>:: 8751: _M_fill_assign(size_t __n, const value_type& __val) 8751: { 8751: if (__n > capacity()) 8751: { 8751: vector __tmp(__n, __val, _M_get_Tp_allocator()); 8751: __tmp._M_impl._M_swap_data(this->_M_impl); 8751: } 8751: else if (__n > size()) 8751: { 8751: std::fill(begin(), end(), __val); 8751: const size_type __add = __n - size(); 8751: ; 8751: this->_M_impl._M_finish = 8751: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 8751: __add, __val, _M_get_Tp_allocator()); 8751: ; 8751: } 8751: else 8751: _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val)); 8751: } 8751: 8751: template 8751: template 8751: void 8751: vector<_Tp, _Alloc>:: 8751: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8751: std::input_iterator_tag) 8751: { 8751: pointer __cur(this->_M_impl._M_start); 8751: for (; __first != __last && __cur != this->_M_impl._M_finish; 8751: ++__cur, ++__first) 8751: *__cur = *__first; 8751: if (__first == __last) 8751: _M_erase_at_end(__cur); 8751: else 8751: _M_range_insert(end(), __first, __last, 8751: std::__iterator_category(__first)); 8751: } 8751: 8751: template 8751: template 8751: void 8751: vector<_Tp, _Alloc>:: 8751: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 8751: std::forward_iterator_tag) 8751: { 8751: const size_type __len = std::distance(__first, __last); 8751: 8751: if (__len > capacity()) 8751: { 8751: pointer __tmp(_M_allocate_and_copy(__len, __first, __last)); 8751: ; 8751: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8751: _M_get_Tp_allocator()); 8751: _M_deallocate(this->_M_impl._M_start, 8751: this->_M_impl._M_end_of_storage 8751: - this->_M_impl._M_start); 8751: this->_M_impl._M_start = __tmp; 8751: this->_M_impl._M_finish = this->_M_impl._M_start + __len; 8751: this->_M_impl._M_end_of_storage = this->_M_impl._M_finish; 8751: } 8751: else if (size() >= __len) 8751: _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start)); 8751: else 8751: { 8751: _ForwardIterator __mid = __first; 8751: std::advance(__mid, size()); 8751: std::copy(__first, __mid, this->_M_impl._M_start); 8751: const size_type __attribute__((__unused__)) __n = __len - size(); 8751: ; 8751: this->_M_impl._M_finish = 8751: std::__uninitialized_copy_a(__mid, __last, 8751: this->_M_impl._M_finish, 8751: _M_get_Tp_allocator()); 8751: ; 8751: } 8751: } 8751: 8751: 8751: template 8751: auto 8751: vector<_Tp, _Alloc>:: 8751: _M_insert_rval(const_iterator __position, value_type&& __v) -> iterator 8751: { 8751: const auto __n = __position - cbegin(); 8751: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8751: if (__position == cend()) 8751: { 8751: ; 8751: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8751: std::move(__v)); 8751: ++this->_M_impl._M_finish; 8751: ; 8751: } 8751: else 8751: _M_insert_aux(begin() + __n, std::move(__v)); 8751: else 8751: _M_realloc_insert(begin() + __n, std::move(__v)); 8751: 8751: return iterator(this->_M_impl._M_start + __n); 8751: } 8751: 8751: template 8751: template 8751: auto 8751: vector<_Tp, _Alloc>:: 8751: _M_emplace_aux(const_iterator __position, _Args&&... __args) 8751: -> iterator 8751: { 8751: const auto __n = __position - cbegin(); 8751: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8751: if (__position == cend()) 8751: { 8751: ; 8751: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8751: std::forward<_Args>(__args)...); 8751: ++this->_M_impl._M_finish; 8751: ; 8751: } 8751: else 8751: { 8751: 8751: 8751: 8751: _Temporary_value __tmp(this, std::forward<_Args>(__args)...); 8751: _M_insert_aux(begin() + __n, std::move(__tmp._M_val())); 8751: } 8751: else 8751: _M_realloc_insert(begin() + __n, std::forward<_Args>(__args)...); 8751: 8751: return iterator(this->_M_impl._M_start + __n); 8751: } 8751: 8751: template 8751: template 8751: void 8751: vector<_Tp, _Alloc>:: 8751: _M_insert_aux(iterator __position, _Arg&& __arg) 8751: 8751: 8751: 8751: 8751: 8751: 8751: { 8751: ; 8751: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8751: std::move(*(this->_M_impl._M_finish - 1))); 8751: ++this->_M_impl._M_finish; 8751: ; 8751: 8751: 8751: 8751: std::move_backward(__position.base(), this->_M_impl._M_finish - 2, this->_M_impl._M_finish - 1) 8751: 8751: ; 8751: 8751: 8751: 8751: *__position = std::forward<_Arg>(__arg); 8751: 8751: } 8751: 8751: 8751: template 8751: template 8751: void 8751: vector<_Tp, _Alloc>:: 8751: _M_realloc_insert(iterator __position, _Args&&... __args) 8751: 8751: 8751: 8751: 8751: 8751: 8751: { 8751: const size_type __len = 8751: _M_check_len(size_type(1), "vector::_M_realloc_insert"); 8751: pointer __old_start = this->_M_impl._M_start; 8751: pointer __old_finish = this->_M_impl._M_finish; 8751: const size_type __elems_before = __position - begin(); 8751: pointer __new_start(this->_M_allocate(__len)); 8751: pointer __new_finish(__new_start); 8751: try 8751: { 8751: 8751: 8751: 8751: 8751: 8751: _Alloc_traits::construct(this->_M_impl, 8751: __new_start + __elems_before, 8751: 8751: std::forward<_Args>(__args)...); 8751: 8751: 8751: 8751: __new_finish = pointer(); 8751: 8751: __new_finish 8751: = std::__uninitialized_move_if_noexcept_a 8751: (__old_start, __position.base(), 8751: __new_start, _M_get_Tp_allocator()); 8751: 8751: ++__new_finish; 8751: 8751: __new_finish 8751: = std::__uninitialized_move_if_noexcept_a 8751: (__position.base(), __old_finish, 8751: __new_finish, _M_get_Tp_allocator()); 8751: } 8751: catch(...) 8751: { 8751: if (!__new_finish) 8751: _Alloc_traits::destroy(this->_M_impl, 8751: __new_start + __elems_before); 8751: else 8751: std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); 8751: _M_deallocate(__new_start, __len); 8751: throw; 8751: } 8751: ; 8751: std::_Destroy(__old_start, __old_finish, _M_get_Tp_allocator()); 8751: _M_deallocate(__old_start, 8751: this->_M_impl._M_end_of_storage - __old_start); 8751: this->_M_impl._M_start = __new_start; 8751: this->_M_impl._M_finish = __new_finish; 8751: this->_M_impl._M_end_of_storage = __new_start + __len; 8751: } 8751: 8751: template 8751: void 8751: vector<_Tp, _Alloc>:: 8751: _M_fill_insert(iterator __position, size_type __n, const value_type& __x) 8751: { 8751: if (__n != 0) 8751: { 8751: if (size_type(this->_M_impl._M_end_of_storage 8751: - this->_M_impl._M_finish) >= __n) 8751: { 8751: 8751: 8751: 8751: _Temporary_value __tmp(this, __x); 8751: value_type& __x_copy = __tmp._M_val(); 8751: 8751: const size_type __elems_after = end() - __position; 8751: pointer __old_finish(this->_M_impl._M_finish); 8751: if (__elems_after > __n) 8751: { 8751: ; 8751: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 8751: this->_M_impl._M_finish, 8751: this->_M_impl._M_finish, 8751: _M_get_Tp_allocator()); 8751: this->_M_impl._M_finish += __n; 8751: ; 8751: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 8751: ; 8751: std::fill(__position.base(), __position.base() + __n, 8751: __x_copy); 8751: } 8751: else 8751: { 8751: ; 8751: this->_M_impl._M_finish = 8751: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 8751: __n - __elems_after, 8751: __x_copy, 8751: _M_get_Tp_allocator()); 8751: ; 8751: std::__uninitialized_move_a(__position.base(), __old_finish, 8751: this->_M_impl._M_finish, 8751: _M_get_Tp_allocator()); 8751: this->_M_impl._M_finish += __elems_after; 8751: ; 8751: std::fill(__position.base(), __old_finish, __x_copy); 8751: } 8751: } 8751: else 8751: { 8751: const size_type __len = 8751: _M_check_len(__n, "vector::_M_fill_insert"); 8751: const size_type __elems_before = __position - begin(); 8751: pointer __new_start(this->_M_allocate(__len)); 8751: pointer __new_finish(__new_start); 8751: try 8751: { 8751: 8751: std::__uninitialized_fill_n_a(__new_start + __elems_before, 8751: __n, __x, 8751: _M_get_Tp_allocator()); 8751: __new_finish = pointer(); 8751: 8751: __new_finish 8751: = std::__uninitialized_move_if_noexcept_a 8751: (this->_M_impl._M_start, __position.base(), 8751: __new_start, _M_get_Tp_allocator()); 8751: 8751: __new_finish += __n; 8751: 8751: __new_finish 8751: = std::__uninitialized_move_if_noexcept_a 8751: (__position.base(), this->_M_impl._M_finish, 8751: __new_finish, _M_get_Tp_allocator()); 8751: } 8751: catch(...) 8751: { 8751: if (!__new_finish) 8751: std::_Destroy(__new_start + __elems_before, 8751: __new_start + __elems_before + __n, 8751: _M_get_Tp_allocator()); 8751: else 8751: std::_Destroy(__new_start, __new_finish, 8751: _M_get_Tp_allocator()); 8751: _M_deallocate(__new_start, __len); 8751: throw; 8751: } 8751: ; 8751: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8751: _M_get_Tp_allocator()); 8751: _M_deallocate(this->_M_impl._M_start, 8751: this->_M_impl._M_end_of_storage 8751: - this->_M_impl._M_start); 8751: this->_M_impl._M_start = __new_start; 8751: this->_M_impl._M_finish = __new_finish; 8751: this->_M_impl._M_end_of_storage = __new_start + __len; 8751: } 8751: } 8751: } 8751: 8751: 8751: template 8751: void 8751: vector<_Tp, _Alloc>:: 8751: _M_default_append(size_type __n) 8751: { 8751: if (__n != 0) 8751: { 8751: size_type __size = size(); 8751: size_type __navail = size_type(this->_M_impl._M_end_of_storage 8751: - this->_M_impl._M_finish); 8751: 8751: if (__size > max_size() || __navail > max_size() - __size) 8751: __builtin_unreachable(); 8751: 8751: if (__navail >= __n) 8751: { 8751: ; 8751: this->_M_impl._M_finish = 8751: std::__uninitialized_default_n_a(this->_M_impl._M_finish, 8751: __n, _M_get_Tp_allocator()); 8751: ; 8751: } 8751: else 8751: { 8751: const size_type __len = 8751: _M_check_len(__n, "vector::_M_default_append"); 8751: const size_type __old_size = __size; 8751: pointer __new_start(this->_M_allocate(__len)); 8751: pointer __new_finish(__new_start); 8751: try 8751: { 8751: __new_finish 8751: = std::__uninitialized_move_if_noexcept_a 8751: (this->_M_impl._M_start, this->_M_impl._M_finish, 8751: __new_start, _M_get_Tp_allocator()); 8751: __new_finish = 8751: std::__uninitialized_default_n_a(__new_finish, __n, 8751: _M_get_Tp_allocator()); 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__new_start, __new_finish, 8751: _M_get_Tp_allocator()); 8751: _M_deallocate(__new_start, __len); 8751: throw; 8751: } 8751: ; 8751: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8751: _M_get_Tp_allocator()); 8751: _M_deallocate(this->_M_impl._M_start, 8751: this->_M_impl._M_end_of_storage 8751: - this->_M_impl._M_start); 8751: this->_M_impl._M_start = __new_start; 8751: this->_M_impl._M_finish = __new_finish; 8751: this->_M_impl._M_end_of_storage = __new_start + __len; 8751: } 8751: } 8751: } 8751: 8751: template 8751: bool 8751: vector<_Tp, _Alloc>:: 8751: _M_shrink_to_fit() 8751: { 8751: if (capacity() == size()) 8751: return false; 8751: ; 8751: return std::__shrink_to_fit_aux::_S_do_it(*this); 8751: } 8751: 8751: 8751: template 8751: template 8751: void 8751: vector<_Tp, _Alloc>:: 8751: _M_range_insert(iterator __pos, _InputIterator __first, 8751: _InputIterator __last, std::input_iterator_tag) 8751: { 8751: if (__pos == end()) 8751: { 8751: for (; __first != __last; ++__first) 8751: insert(end(), *__first); 8751: } 8751: else if (__first != __last) 8751: { 8751: vector __tmp(__first, __last, _M_get_Tp_allocator()); 8751: insert(__pos, 8751: std::make_move_iterator(__tmp.begin()), 8751: std::make_move_iterator(__tmp.end())); 8751: } 8751: } 8751: 8751: template 8751: template 8751: void 8751: vector<_Tp, _Alloc>:: 8751: _M_range_insert(iterator __position, _ForwardIterator __first, 8751: _ForwardIterator __last, std::forward_iterator_tag) 8751: { 8751: if (__first != __last) 8751: { 8751: const size_type __n = std::distance(__first, __last); 8751: if (size_type(this->_M_impl._M_end_of_storage 8751: - this->_M_impl._M_finish) >= __n) 8751: { 8751: const size_type __elems_after = end() - __position; 8751: pointer __old_finish(this->_M_impl._M_finish); 8751: if (__elems_after > __n) 8751: { 8751: ; 8751: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 8751: this->_M_impl._M_finish, 8751: this->_M_impl._M_finish, 8751: _M_get_Tp_allocator()); 8751: this->_M_impl._M_finish += __n; 8751: ; 8751: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 8751: ; 8751: std::copy(__first, __last, __position); 8751: } 8751: else 8751: { 8751: _ForwardIterator __mid = __first; 8751: std::advance(__mid, __elems_after); 8751: ; 8751: std::__uninitialized_copy_a(__mid, __last, 8751: this->_M_impl._M_finish, 8751: _M_get_Tp_allocator()); 8751: this->_M_impl._M_finish += __n - __elems_after; 8751: ; 8751: std::__uninitialized_move_a(__position.base(), 8751: __old_finish, 8751: this->_M_impl._M_finish, 8751: _M_get_Tp_allocator()); 8751: this->_M_impl._M_finish += __elems_after; 8751: ; 8751: std::copy(__first, __mid, __position); 8751: } 8751: } 8751: else 8751: { 8751: const size_type __len = 8751: _M_check_len(__n, "vector::_M_range_insert"); 8751: pointer __new_start(this->_M_allocate(__len)); 8751: pointer __new_finish(__new_start); 8751: try 8751: { 8751: __new_finish 8751: = std::__uninitialized_move_if_noexcept_a 8751: (this->_M_impl._M_start, __position.base(), 8751: __new_start, _M_get_Tp_allocator()); 8751: __new_finish 8751: = std::__uninitialized_copy_a(__first, __last, 8751: __new_finish, 8751: _M_get_Tp_allocator()); 8751: __new_finish 8751: = std::__uninitialized_move_if_noexcept_a 8751: (__position.base(), this->_M_impl._M_finish, 8751: __new_finish, _M_get_Tp_allocator()); 8751: } 8751: catch(...) 8751: { 8751: std::_Destroy(__new_start, __new_finish, 8751: _M_get_Tp_allocator()); 8751: _M_deallocate(__new_start, __len); 8751: throw; 8751: } 8751: ; 8751: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8751: _M_get_Tp_allocator()); 8751: _M_deallocate(this->_M_impl._M_start, 8751: this->_M_impl._M_end_of_storage 8751: - this->_M_impl._M_start); 8751: this->_M_impl._M_start = __new_start; 8751: this->_M_impl._M_finish = __new_finish; 8751: this->_M_impl._M_end_of_storage = __new_start + __len; 8751: } 8751: } 8751: } 8751: 8751: 8751: 8751: template 8751: void 8751: vector:: 8751: _M_reallocate(size_type __n) 8751: { 8751: _Bit_pointer __q = this->_M_allocate(__n); 8751: iterator __start(std::__addressof(*__q), 0); 8751: iterator __finish(_M_copy_aligned(begin(), end(), __start)); 8751: this->_M_deallocate(); 8751: this->_M_impl._M_start = __start; 8751: this->_M_impl._M_finish = __finish; 8751: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 8751: } 8751: 8751: template 8751: void 8751: vector:: 8751: _M_fill_insert(iterator __position, size_type __n, bool __x) 8751: { 8751: if (__n == 0) 8751: return; 8751: if (capacity() - size() >= __n) 8751: { 8751: std::copy_backward(__position, end(), 8751: this->_M_impl._M_finish + difference_type(__n)); 8751: std::fill(__position, __position + difference_type(__n), __x); 8751: this->_M_impl._M_finish += difference_type(__n); 8751: } 8751: else 8751: { 8751: const size_type __len = 8751: _M_check_len(__n, "vector::_M_fill_insert"); 8751: _Bit_pointer __q = this->_M_allocate(__len); 8751: iterator __start(std::__addressof(*__q), 0); 8751: iterator __i = _M_copy_aligned(begin(), __position, __start); 8751: std::fill(__i, __i + difference_type(__n), __x); 8751: iterator __finish = std::copy(__position, end(), 8751: __i + difference_type(__n)); 8751: this->_M_deallocate(); 8751: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 8751: this->_M_impl._M_start = __start; 8751: this->_M_impl._M_finish = __finish; 8751: } 8751: } 8751: 8751: template 8751: template 8751: void 8751: vector:: 8751: _M_insert_range(iterator __position, _ForwardIterator __first, 8751: _ForwardIterator __last, std::forward_iterator_tag) 8751: { 8751: if (__first != __last) 8751: { 8751: size_type __n = std::distance(__first, __last); 8751: if (capacity() - size() >= __n) 8751: { 8751: std::copy_backward(__position, end(), 8751: this->_M_impl._M_finish 8751: + difference_type(__n)); 8751: std::copy(__first, __last, __position); 8751: this->_M_impl._M_finish += difference_type(__n); 8751: } 8751: else 8751: { 8751: const size_type __len = 8751: _M_check_len(__n, "vector::_M_insert_range"); 8751: _Bit_pointer __q = this->_M_allocate(__len); 8751: iterator __start(std::__addressof(*__q), 0); 8751: iterator __i = _M_copy_aligned(begin(), __position, __start); 8751: __i = std::copy(__first, __last, __i); 8751: iterator __finish = std::copy(__position, end(), __i); 8751: this->_M_deallocate(); 8751: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 8751: this->_M_impl._M_start = __start; 8751: this->_M_impl._M_finish = __finish; 8751: } 8751: } 8751: } 8751: 8751: template 8751: void 8751: vector:: 8751: _M_insert_aux(iterator __position, bool __x) 8751: { 8751: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 8751: { 8751: std::copy_backward(__position, this->_M_impl._M_finish, 8751: this->_M_impl._M_finish + 1); 8751: *__position = __x; 8751: ++this->_M_impl._M_finish; 8751: } 8751: else 8751: { 8751: const size_type __len = 8751: _M_check_len(size_type(1), "vector::_M_insert_aux"); 8751: _Bit_pointer __q = this->_M_allocate(__len); 8751: iterator __start(std::__addressof(*__q), 0); 8751: iterator __i = _M_copy_aligned(begin(), __position, __start); 8751: *__i++ = __x; 8751: iterator __finish = std::copy(__position, end(), __i); 8751: this->_M_deallocate(); 8751: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 8751: this->_M_impl._M_start = __start; 8751: this->_M_impl._M_finish = __finish; 8751: } 8751: } 8751: 8751: template 8751: typename vector::iterator 8751: vector:: 8751: _M_erase(iterator __position) 8751: { 8751: if (__position + 1 != end()) 8751: std::copy(__position + 1, end(), __position); 8751: --this->_M_impl._M_finish; 8751: return __position; 8751: } 8751: 8751: template 8751: typename vector::iterator 8751: vector:: 8751: _M_erase(iterator __first, iterator __last) 8751: { 8751: if (__first != __last) 8751: _M_erase_at_end(std::copy(__last, end(), __first)); 8751: return __first; 8751: } 8751: 8751: 8751: template 8751: bool 8751: vector:: 8751: _M_shrink_to_fit() 8751: { 8751: if (capacity() - size() < int(_S_word_bit)) 8751: return false; 8751: try 8751: { 8751: _M_reallocate(size()); 8751: return true; 8751: } 8751: catch(...) 8751: { return false; } 8751: } 8751: 8751: 8751: 8751: 8751: } 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: template 8751: size_t 8751: hash>:: 8751: operator()(const std::vector& __b) const noexcept 8751: { 8751: size_t __hash = 0; 8751: using std::_S_word_bit; 8751: using std::_Bit_type; 8751: 8751: const size_t __words = __b.size() / _S_word_bit; 8751: if (__words) 8751: { 8751: const size_t __clength = __words * sizeof(_Bit_type); 8751: __hash = std::_Hash_impl::hash(__b._M_impl._M_start._M_p, __clength); 8751: } 8751: 8751: const size_t __extrabits = __b.size() % _S_word_bit; 8751: if (__extrabits) 8751: { 8751: _Bit_type __hiword = *__b._M_impl._M_finish._M_p; 8751: __hiword &= ~((~static_cast<_Bit_type>(0)) << __extrabits); 8751: 8751: const size_t __clength 8751: = (__extrabits + 8 - 1) / 8; 8751: if (__words) 8751: __hash = std::_Hash_impl::hash(&__hiword, __clength, __hash); 8751: else 8751: __hash = std::_Hash_impl::hash(&__hiword, __clength); 8751: } 8751: 8751: return __hash; 8751: } 8751: 8751: 8751: } 8751: # 70 "/usr/include/c++/8/vector" 2 3 8751: # 54 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 2 3 4 8751: 8751: # 1 "/usr/include/c++/8/map" 1 3 4 8751: # 58 "/usr/include/c++/8/map" 3 4 8751: 8751: # 59 "/usr/include/c++/8/map" 3 8751: 8751: # 1 "/usr/include/c++/8/bits/stl_tree.h" 1 3 8751: # 61 "/usr/include/c++/8/bits/stl_tree.h" 3 8751: 8751: # 62 "/usr/include/c++/8/bits/stl_tree.h" 3 8751: # 75 "/usr/include/c++/8/bits/stl_tree.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 99 "/usr/include/c++/8/bits/stl_tree.h" 3 8751: enum _Rb_tree_color { _S_red = false, _S_black = true }; 8751: 8751: struct _Rb_tree_node_base 8751: { 8751: typedef _Rb_tree_node_base* _Base_ptr; 8751: typedef const _Rb_tree_node_base* _Const_Base_ptr; 8751: 8751: _Rb_tree_color _M_color; 8751: _Base_ptr _M_parent; 8751: _Base_ptr _M_left; 8751: _Base_ptr _M_right; 8751: 8751: static _Base_ptr 8751: _S_minimum(_Base_ptr __x) noexcept 8751: { 8751: while (__x->_M_left != 0) __x = __x->_M_left; 8751: return __x; 8751: } 8751: 8751: static _Const_Base_ptr 8751: _S_minimum(_Const_Base_ptr __x) noexcept 8751: { 8751: while (__x->_M_left != 0) __x = __x->_M_left; 8751: return __x; 8751: } 8751: 8751: static _Base_ptr 8751: _S_maximum(_Base_ptr __x) noexcept 8751: { 8751: while (__x->_M_right != 0) __x = __x->_M_right; 8751: return __x; 8751: } 8751: 8751: static _Const_Base_ptr 8751: _S_maximum(_Const_Base_ptr __x) noexcept 8751: { 8751: while (__x->_M_right != 0) __x = __x->_M_right; 8751: return __x; 8751: } 8751: }; 8751: 8751: 8751: template 8751: struct _Rb_tree_key_compare 8751: { 8751: _Key_compare _M_key_compare; 8751: 8751: _Rb_tree_key_compare() 8751: noexcept(is_nothrow_default_constructible<_Key_compare>::value) 8751: 8751: : _M_key_compare() 8751: { } 8751: 8751: _Rb_tree_key_compare(const _Key_compare& __comp) 8751: : _M_key_compare(__comp) 8751: { } 8751: 8751: 8751: 8751: _Rb_tree_key_compare(const _Rb_tree_key_compare&) = default; 8751: 8751: _Rb_tree_key_compare(_Rb_tree_key_compare&& __x) 8751: noexcept(is_nothrow_copy_constructible<_Key_compare>::value) 8751: : _M_key_compare(__x._M_key_compare) 8751: { } 8751: 8751: }; 8751: 8751: 8751: struct _Rb_tree_header 8751: { 8751: _Rb_tree_node_base _M_header; 8751: size_t _M_node_count; 8751: 8751: _Rb_tree_header() noexcept 8751: { 8751: _M_header._M_color = _S_red; 8751: _M_reset(); 8751: } 8751: 8751: 8751: _Rb_tree_header(_Rb_tree_header&& __x) noexcept 8751: { 8751: if (__x._M_header._M_parent != nullptr) 8751: _M_move_data(__x); 8751: else 8751: { 8751: _M_header._M_color = _S_red; 8751: _M_reset(); 8751: } 8751: } 8751: 8751: 8751: void 8751: _M_move_data(_Rb_tree_header& __from) 8751: { 8751: _M_header._M_color = __from._M_header._M_color; 8751: _M_header._M_parent = __from._M_header._M_parent; 8751: _M_header._M_left = __from._M_header._M_left; 8751: _M_header._M_right = __from._M_header._M_right; 8751: _M_header._M_parent->_M_parent = &_M_header; 8751: _M_node_count = __from._M_node_count; 8751: 8751: __from._M_reset(); 8751: } 8751: 8751: void 8751: _M_reset() 8751: { 8751: _M_header._M_parent = 0; 8751: _M_header._M_left = &_M_header; 8751: _M_header._M_right = &_M_header; 8751: _M_node_count = 0; 8751: } 8751: }; 8751: 8751: template 8751: struct _Rb_tree_node : public _Rb_tree_node_base 8751: { 8751: typedef _Rb_tree_node<_Val>* _Link_type; 8751: # 231 "/usr/include/c++/8/bits/stl_tree.h" 3 8751: __gnu_cxx::__aligned_membuf<_Val> _M_storage; 8751: 8751: _Val* 8751: _M_valptr() 8751: { return _M_storage._M_ptr(); } 8751: 8751: const _Val* 8751: _M_valptr() const 8751: { return _M_storage._M_ptr(); } 8751: 8751: }; 8751: 8751: __attribute__ ((__pure__)) _Rb_tree_node_base* 8751: _Rb_tree_increment(_Rb_tree_node_base* __x) throw (); 8751: 8751: __attribute__ ((__pure__)) const _Rb_tree_node_base* 8751: _Rb_tree_increment(const _Rb_tree_node_base* __x) throw (); 8751: 8751: __attribute__ ((__pure__)) _Rb_tree_node_base* 8751: _Rb_tree_decrement(_Rb_tree_node_base* __x) throw (); 8751: 8751: __attribute__ ((__pure__)) const _Rb_tree_node_base* 8751: _Rb_tree_decrement(const _Rb_tree_node_base* __x) throw (); 8751: 8751: template 8751: struct _Rb_tree_iterator 8751: { 8751: typedef _Tp value_type; 8751: typedef _Tp& reference; 8751: typedef _Tp* pointer; 8751: 8751: typedef bidirectional_iterator_tag iterator_category; 8751: typedef ptrdiff_t difference_type; 8751: 8751: typedef _Rb_tree_iterator<_Tp> _Self; 8751: typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; 8751: typedef _Rb_tree_node<_Tp>* _Link_type; 8751: 8751: _Rb_tree_iterator() noexcept 8751: : _M_node() { } 8751: 8751: explicit 8751: _Rb_tree_iterator(_Base_ptr __x) noexcept 8751: : _M_node(__x) { } 8751: 8751: reference 8751: operator*() const noexcept 8751: { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } 8751: 8751: pointer 8751: operator->() const noexcept 8751: { return static_cast<_Link_type> (_M_node)->_M_valptr(); } 8751: 8751: _Self& 8751: operator++() noexcept 8751: { 8751: _M_node = _Rb_tree_increment(_M_node); 8751: return *this; 8751: } 8751: 8751: _Self 8751: operator++(int) noexcept 8751: { 8751: _Self __tmp = *this; 8751: _M_node = _Rb_tree_increment(_M_node); 8751: return __tmp; 8751: } 8751: 8751: _Self& 8751: operator--() noexcept 8751: { 8751: _M_node = _Rb_tree_decrement(_M_node); 8751: return *this; 8751: } 8751: 8751: _Self 8751: operator--(int) noexcept 8751: { 8751: _Self __tmp = *this; 8751: _M_node = _Rb_tree_decrement(_M_node); 8751: return __tmp; 8751: } 8751: 8751: bool 8751: operator==(const _Self& __x) const noexcept 8751: { return _M_node == __x._M_node; } 8751: 8751: bool 8751: operator!=(const _Self& __x) const noexcept 8751: { return _M_node != __x._M_node; } 8751: 8751: _Base_ptr _M_node; 8751: }; 8751: 8751: template 8751: struct _Rb_tree_const_iterator 8751: { 8751: typedef _Tp value_type; 8751: typedef const _Tp& reference; 8751: typedef const _Tp* pointer; 8751: 8751: typedef _Rb_tree_iterator<_Tp> iterator; 8751: 8751: typedef bidirectional_iterator_tag iterator_category; 8751: typedef ptrdiff_t difference_type; 8751: 8751: typedef _Rb_tree_const_iterator<_Tp> _Self; 8751: typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr; 8751: typedef const _Rb_tree_node<_Tp>* _Link_type; 8751: 8751: _Rb_tree_const_iterator() noexcept 8751: : _M_node() { } 8751: 8751: explicit 8751: _Rb_tree_const_iterator(_Base_ptr __x) noexcept 8751: : _M_node(__x) { } 8751: 8751: _Rb_tree_const_iterator(const iterator& __it) noexcept 8751: : _M_node(__it._M_node) { } 8751: 8751: iterator 8751: _M_const_cast() const noexcept 8751: { return iterator(const_cast(_M_node)); } 8751: 8751: reference 8751: operator*() const noexcept 8751: { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } 8751: 8751: pointer 8751: operator->() const noexcept 8751: { return static_cast<_Link_type>(_M_node)->_M_valptr(); } 8751: 8751: _Self& 8751: operator++() noexcept 8751: { 8751: _M_node = _Rb_tree_increment(_M_node); 8751: return *this; 8751: } 8751: 8751: _Self 8751: operator++(int) noexcept 8751: { 8751: _Self __tmp = *this; 8751: _M_node = _Rb_tree_increment(_M_node); 8751: return __tmp; 8751: } 8751: 8751: _Self& 8751: operator--() noexcept 8751: { 8751: _M_node = _Rb_tree_decrement(_M_node); 8751: return *this; 8751: } 8751: 8751: _Self 8751: operator--(int) noexcept 8751: { 8751: _Self __tmp = *this; 8751: _M_node = _Rb_tree_decrement(_M_node); 8751: return __tmp; 8751: } 8751: 8751: bool 8751: operator==(const _Self& __x) const noexcept 8751: { return _M_node == __x._M_node; } 8751: 8751: bool 8751: operator!=(const _Self& __x) const noexcept 8751: { return _M_node != __x._M_node; } 8751: 8751: _Base_ptr _M_node; 8751: }; 8751: 8751: template 8751: inline bool 8751: operator==(const _Rb_tree_iterator<_Val>& __x, 8751: const _Rb_tree_const_iterator<_Val>& __y) noexcept 8751: { return __x._M_node == __y._M_node; } 8751: 8751: template 8751: inline bool 8751: operator!=(const _Rb_tree_iterator<_Val>& __x, 8751: const _Rb_tree_const_iterator<_Val>& __y) noexcept 8751: { return __x._M_node != __y._M_node; } 8751: 8751: void 8751: _Rb_tree_insert_and_rebalance(const bool __insert_left, 8751: _Rb_tree_node_base* __x, 8751: _Rb_tree_node_base* __p, 8751: _Rb_tree_node_base& __header) throw (); 8751: 8751: _Rb_tree_node_base* 8751: _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z, 8751: _Rb_tree_node_base& __header) throw (); 8751: # 442 "/usr/include/c++/8/bits/stl_tree.h" 3 8751: template > 8751: class _Rb_tree 8751: { 8751: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8751: rebind<_Rb_tree_node<_Val> >::other _Node_allocator; 8751: 8751: typedef __gnu_cxx::__alloc_traits<_Node_allocator> _Alloc_traits; 8751: 8751: 8751: static_assert(__is_invocable<_Compare&, const _Key&, const _Key&>{}, 8751: "comparison object must be invocable with two arguments of key type"); 8751: # 462 "/usr/include/c++/8/bits/stl_tree.h" 3 8751: protected: 8751: typedef _Rb_tree_node_base* _Base_ptr; 8751: typedef const _Rb_tree_node_base* _Const_Base_ptr; 8751: typedef _Rb_tree_node<_Val>* _Link_type; 8751: typedef const _Rb_tree_node<_Val>* _Const_Link_type; 8751: 8751: private: 8751: 8751: 8751: struct _Reuse_or_alloc_node 8751: { 8751: _Reuse_or_alloc_node(_Rb_tree& __t) 8751: : _M_root(__t._M_root()), _M_nodes(__t._M_rightmost()), _M_t(__t) 8751: { 8751: if (_M_root) 8751: { 8751: _M_root->_M_parent = 0; 8751: 8751: if (_M_nodes->_M_left) 8751: _M_nodes = _M_nodes->_M_left; 8751: } 8751: else 8751: _M_nodes = 0; 8751: } 8751: 8751: 8751: _Reuse_or_alloc_node(const _Reuse_or_alloc_node&) = delete; 8751: 8751: 8751: ~_Reuse_or_alloc_node() 8751: { _M_t._M_erase(static_cast<_Link_type>(_M_root)); } 8751: 8751: template 8751: _Link_type 8751: 8751: 8751: 8751: operator()(_Arg&& __arg) 8751: 8751: { 8751: _Link_type __node = static_cast<_Link_type>(_M_extract()); 8751: if (__node) 8751: { 8751: _M_t._M_destroy_node(__node); 8751: _M_t._M_construct_node(__node, std::forward<_Arg>(__arg)); 8751: return __node; 8751: } 8751: 8751: return _M_t._M_create_node(std::forward<_Arg>(__arg)); 8751: } 8751: 8751: private: 8751: _Base_ptr 8751: _M_extract() 8751: { 8751: if (!_M_nodes) 8751: return _M_nodes; 8751: 8751: _Base_ptr __node = _M_nodes; 8751: _M_nodes = _M_nodes->_M_parent; 8751: if (_M_nodes) 8751: { 8751: if (_M_nodes->_M_right == __node) 8751: { 8751: _M_nodes->_M_right = 0; 8751: 8751: if (_M_nodes->_M_left) 8751: { 8751: _M_nodes = _M_nodes->_M_left; 8751: 8751: while (_M_nodes->_M_right) 8751: _M_nodes = _M_nodes->_M_right; 8751: 8751: if (_M_nodes->_M_left) 8751: _M_nodes = _M_nodes->_M_left; 8751: } 8751: } 8751: else 8751: _M_nodes->_M_left = 0; 8751: } 8751: else 8751: _M_root = 0; 8751: 8751: return __node; 8751: } 8751: 8751: _Base_ptr _M_root; 8751: _Base_ptr _M_nodes; 8751: _Rb_tree& _M_t; 8751: }; 8751: 8751: 8751: 8751: struct _Alloc_node 8751: { 8751: _Alloc_node(_Rb_tree& __t) 8751: : _M_t(__t) { } 8751: 8751: template 8751: _Link_type 8751: 8751: 8751: 8751: operator()(_Arg&& __arg) const 8751: 8751: { return _M_t._M_create_node(std::forward<_Arg>(__arg)); } 8751: 8751: private: 8751: _Rb_tree& _M_t; 8751: }; 8751: 8751: public: 8751: typedef _Key key_type; 8751: typedef _Val value_type; 8751: typedef value_type* pointer; 8751: typedef const value_type* const_pointer; 8751: typedef value_type& reference; 8751: typedef const value_type& const_reference; 8751: typedef size_t size_type; 8751: typedef ptrdiff_t difference_type; 8751: typedef _Alloc allocator_type; 8751: 8751: _Node_allocator& 8751: _M_get_Node_allocator() noexcept 8751: { return this->_M_impl; } 8751: 8751: const _Node_allocator& 8751: _M_get_Node_allocator() const noexcept 8751: { return this->_M_impl; } 8751: 8751: allocator_type 8751: get_allocator() const noexcept 8751: { return allocator_type(_M_get_Node_allocator()); } 8751: 8751: protected: 8751: _Link_type 8751: _M_get_node() 8751: { return _Alloc_traits::allocate(_M_get_Node_allocator(), 1); } 8751: 8751: void 8751: _M_put_node(_Link_type __p) noexcept 8751: { _Alloc_traits::deallocate(_M_get_Node_allocator(), __p, 1); } 8751: # 630 "/usr/include/c++/8/bits/stl_tree.h" 3 8751: template 8751: void 8751: _M_construct_node(_Link_type __node, _Args&&... __args) 8751: { 8751: try 8751: { 8751: ::new(__node) _Rb_tree_node<_Val>; 8751: _Alloc_traits::construct(_M_get_Node_allocator(), 8751: __node->_M_valptr(), 8751: std::forward<_Args>(__args)...); 8751: } 8751: catch(...) 8751: { 8751: __node->~_Rb_tree_node<_Val>(); 8751: _M_put_node(__node); 8751: throw; 8751: } 8751: } 8751: 8751: template 8751: _Link_type 8751: _M_create_node(_Args&&... __args) 8751: { 8751: _Link_type __tmp = _M_get_node(); 8751: _M_construct_node(__tmp, std::forward<_Args>(__args)...); 8751: return __tmp; 8751: } 8751: 8751: void 8751: _M_destroy_node(_Link_type __p) noexcept 8751: { 8751: _Alloc_traits::destroy(_M_get_Node_allocator(), __p->_M_valptr()); 8751: __p->~_Rb_tree_node<_Val>(); 8751: } 8751: 8751: 8751: void 8751: _M_drop_node(_Link_type __p) noexcept 8751: { 8751: _M_destroy_node(__p); 8751: _M_put_node(__p); 8751: } 8751: 8751: template 8751: _Link_type 8751: _M_clone_node(_Const_Link_type __x, _NodeGen& __node_gen) 8751: { 8751: _Link_type __tmp = __node_gen(*__x->_M_valptr()); 8751: __tmp->_M_color = __x->_M_color; 8751: __tmp->_M_left = 0; 8751: __tmp->_M_right = 0; 8751: return __tmp; 8751: } 8751: 8751: protected: 8751: 8751: 8751: 8751: 8751: template 8751: 8751: struct _Rb_tree_impl 8751: : public _Node_allocator 8751: , public _Rb_tree_key_compare<_Key_compare> 8751: , public _Rb_tree_header 8751: { 8751: typedef _Rb_tree_key_compare<_Key_compare> _Base_key_compare; 8751: 8751: _Rb_tree_impl() 8751: noexcept(is_nothrow_default_constructible<_Node_allocator>::value && is_nothrow_default_constructible<_Base_key_compare>::value) 8751: 8751: 8751: : _Node_allocator() 8751: { } 8751: 8751: _Rb_tree_impl(const _Rb_tree_impl& __x) 8751: : _Node_allocator(_Alloc_traits::_S_select_on_copy(__x)) 8751: , _Base_key_compare(__x._M_key_compare) 8751: { } 8751: 8751: 8751: 8751: 8751: 8751: 8751: _Rb_tree_impl(_Rb_tree_impl&&) = default; 8751: 8751: _Rb_tree_impl(const _Key_compare& __comp, _Node_allocator&& __a) 8751: : _Node_allocator(std::move(__a)), _Base_key_compare(__comp) 8751: { } 8751: 8751: }; 8751: 8751: _Rb_tree_impl<_Compare> _M_impl; 8751: 8751: protected: 8751: _Base_ptr& 8751: _M_root() noexcept 8751: { return this->_M_impl._M_header._M_parent; } 8751: 8751: _Const_Base_ptr 8751: _M_root() const noexcept 8751: { return this->_M_impl._M_header._M_parent; } 8751: 8751: _Base_ptr& 8751: _M_leftmost() noexcept 8751: { return this->_M_impl._M_header._M_left; } 8751: 8751: _Const_Base_ptr 8751: _M_leftmost() const noexcept 8751: { return this->_M_impl._M_header._M_left; } 8751: 8751: _Base_ptr& 8751: _M_rightmost() noexcept 8751: { return this->_M_impl._M_header._M_right; } 8751: 8751: _Const_Base_ptr 8751: _M_rightmost() const noexcept 8751: { return this->_M_impl._M_header._M_right; } 8751: 8751: _Link_type 8751: _M_begin() noexcept 8751: { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } 8751: 8751: _Const_Link_type 8751: _M_begin() const noexcept 8751: { 8751: return static_cast<_Const_Link_type> 8751: (this->_M_impl._M_header._M_parent); 8751: } 8751: 8751: _Base_ptr 8751: _M_end() noexcept 8751: { return &this->_M_impl._M_header; } 8751: 8751: _Const_Base_ptr 8751: _M_end() const noexcept 8751: { return &this->_M_impl._M_header; } 8751: 8751: static const_reference 8751: _S_value(_Const_Link_type __x) 8751: { return *__x->_M_valptr(); } 8751: 8751: static const _Key& 8751: _S_key(_Const_Link_type __x) 8751: { return _KeyOfValue()(_S_value(__x)); } 8751: 8751: static _Link_type 8751: _S_left(_Base_ptr __x) noexcept 8751: { return static_cast<_Link_type>(__x->_M_left); } 8751: 8751: static _Const_Link_type 8751: _S_left(_Const_Base_ptr __x) noexcept 8751: { return static_cast<_Const_Link_type>(__x->_M_left); } 8751: 8751: static _Link_type 8751: _S_right(_Base_ptr __x) noexcept 8751: { return static_cast<_Link_type>(__x->_M_right); } 8751: 8751: static _Const_Link_type 8751: _S_right(_Const_Base_ptr __x) noexcept 8751: { return static_cast<_Const_Link_type>(__x->_M_right); } 8751: 8751: static const_reference 8751: _S_value(_Const_Base_ptr __x) 8751: { return *static_cast<_Const_Link_type>(__x)->_M_valptr(); } 8751: 8751: static const _Key& 8751: _S_key(_Const_Base_ptr __x) 8751: { return _KeyOfValue()(_S_value(__x)); } 8751: 8751: static _Base_ptr 8751: _S_minimum(_Base_ptr __x) noexcept 8751: { return _Rb_tree_node_base::_S_minimum(__x); } 8751: 8751: static _Const_Base_ptr 8751: _S_minimum(_Const_Base_ptr __x) noexcept 8751: { return _Rb_tree_node_base::_S_minimum(__x); } 8751: 8751: static _Base_ptr 8751: _S_maximum(_Base_ptr __x) noexcept 8751: { return _Rb_tree_node_base::_S_maximum(__x); } 8751: 8751: static _Const_Base_ptr 8751: _S_maximum(_Const_Base_ptr __x) noexcept 8751: { return _Rb_tree_node_base::_S_maximum(__x); } 8751: 8751: public: 8751: typedef _Rb_tree_iterator iterator; 8751: typedef _Rb_tree_const_iterator const_iterator; 8751: 8751: typedef std::reverse_iterator reverse_iterator; 8751: typedef std::reverse_iterator const_reverse_iterator; 8751: # 832 "/usr/include/c++/8/bits/stl_tree.h" 3 8751: pair<_Base_ptr, _Base_ptr> 8751: _M_get_insert_unique_pos(const key_type& __k); 8751: 8751: pair<_Base_ptr, _Base_ptr> 8751: _M_get_insert_equal_pos(const key_type& __k); 8751: 8751: pair<_Base_ptr, _Base_ptr> 8751: _M_get_insert_hint_unique_pos(const_iterator __pos, 8751: const key_type& __k); 8751: 8751: pair<_Base_ptr, _Base_ptr> 8751: _M_get_insert_hint_equal_pos(const_iterator __pos, 8751: const key_type& __k); 8751: 8751: private: 8751: 8751: template 8751: iterator 8751: _M_insert_(_Base_ptr __x, _Base_ptr __y, _Arg&& __v, _NodeGen&); 8751: 8751: iterator 8751: _M_insert_node(_Base_ptr __x, _Base_ptr __y, _Link_type __z); 8751: 8751: template 8751: iterator 8751: _M_insert_lower(_Base_ptr __y, _Arg&& __v); 8751: 8751: template 8751: iterator 8751: _M_insert_equal_lower(_Arg&& __x); 8751: 8751: iterator 8751: _M_insert_lower_node(_Base_ptr __p, _Link_type __z); 8751: 8751: iterator 8751: _M_insert_equal_lower_node(_Link_type __z); 8751: # 883 "/usr/include/c++/8/bits/stl_tree.h" 3 8751: template 8751: _Link_type 8751: _M_copy(_Const_Link_type __x, _Base_ptr __p, _NodeGen&); 8751: 8751: template 8751: _Link_type 8751: _M_copy(const _Rb_tree& __x, _NodeGen& __gen) 8751: { 8751: _Link_type __root = _M_copy(__x._M_begin(), _M_end(), __gen); 8751: _M_leftmost() = _S_minimum(__root); 8751: _M_rightmost() = _S_maximum(__root); 8751: _M_impl._M_node_count = __x._M_impl._M_node_count; 8751: return __root; 8751: } 8751: 8751: _Link_type 8751: _M_copy(const _Rb_tree& __x) 8751: { 8751: _Alloc_node __an(*this); 8751: return _M_copy(__x, __an); 8751: } 8751: 8751: void 8751: _M_erase(_Link_type __x); 8751: 8751: iterator 8751: _M_lower_bound(_Link_type __x, _Base_ptr __y, 8751: const _Key& __k); 8751: 8751: const_iterator 8751: _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8751: const _Key& __k) const; 8751: 8751: iterator 8751: _M_upper_bound(_Link_type __x, _Base_ptr __y, 8751: const _Key& __k); 8751: 8751: const_iterator 8751: _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8751: const _Key& __k) const; 8751: 8751: public: 8751: 8751: 8751: 8751: 8751: _Rb_tree() = default; 8751: 8751: 8751: _Rb_tree(const _Compare& __comp, 8751: const allocator_type& __a = allocator_type()) 8751: : _M_impl(__comp, _Node_allocator(__a)) { } 8751: 8751: _Rb_tree(const _Rb_tree& __x) 8751: : _M_impl(__x._M_impl) 8751: { 8751: if (__x._M_root() != 0) 8751: _M_root() = _M_copy(__x); 8751: } 8751: 8751: 8751: _Rb_tree(const allocator_type& __a) 8751: : _M_impl(_Compare(), _Node_allocator(__a)) 8751: { } 8751: 8751: _Rb_tree(const _Rb_tree& __x, const allocator_type& __a) 8751: : _M_impl(__x._M_impl._M_key_compare, _Node_allocator(__a)) 8751: { 8751: if (__x._M_root() != nullptr) 8751: _M_root() = _M_copy(__x); 8751: } 8751: 8751: _Rb_tree(_Rb_tree&&) = default; 8751: 8751: _Rb_tree(_Rb_tree&& __x, const allocator_type& __a) 8751: : _Rb_tree(std::move(__x), _Node_allocator(__a)) 8751: { } 8751: 8751: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a); 8751: 8751: 8751: ~_Rb_tree() noexcept 8751: { _M_erase(_M_begin()); } 8751: 8751: _Rb_tree& 8751: operator=(const _Rb_tree& __x); 8751: 8751: 8751: _Compare 8751: key_comp() const 8751: { return _M_impl._M_key_compare; } 8751: 8751: iterator 8751: begin() noexcept 8751: { return iterator(this->_M_impl._M_header._M_left); } 8751: 8751: const_iterator 8751: begin() const noexcept 8751: { return const_iterator(this->_M_impl._M_header._M_left); } 8751: 8751: iterator 8751: end() noexcept 8751: { return iterator(&this->_M_impl._M_header); } 8751: 8751: const_iterator 8751: end() const noexcept 8751: { return const_iterator(&this->_M_impl._M_header); } 8751: 8751: reverse_iterator 8751: rbegin() noexcept 8751: { return reverse_iterator(end()); } 8751: 8751: const_reverse_iterator 8751: rbegin() const noexcept 8751: { return const_reverse_iterator(end()); } 8751: 8751: reverse_iterator 8751: rend() noexcept 8751: { return reverse_iterator(begin()); } 8751: 8751: const_reverse_iterator 8751: rend() const noexcept 8751: { return const_reverse_iterator(begin()); } 8751: 8751: bool 8751: empty() const noexcept 8751: { return _M_impl._M_node_count == 0; } 8751: 8751: size_type 8751: size() const noexcept 8751: { return _M_impl._M_node_count; } 8751: 8751: size_type 8751: max_size() const noexcept 8751: { return _Alloc_traits::max_size(_M_get_Node_allocator()); } 8751: 8751: void 8751: swap(_Rb_tree& __t) 8751: noexcept(__is_nothrow_swappable<_Compare>::value); 8751: 8751: 8751: 8751: template 8751: pair 8751: _M_insert_unique(_Arg&& __x); 8751: 8751: template 8751: iterator 8751: _M_insert_equal(_Arg&& __x); 8751: 8751: template 8751: iterator 8751: _M_insert_unique_(const_iterator __pos, _Arg&& __x, _NodeGen&); 8751: 8751: template 8751: iterator 8751: _M_insert_unique_(const_iterator __pos, _Arg&& __x) 8751: { 8751: _Alloc_node __an(*this); 8751: return _M_insert_unique_(__pos, std::forward<_Arg>(__x), __an); 8751: } 8751: 8751: template 8751: iterator 8751: _M_insert_equal_(const_iterator __pos, _Arg&& __x, _NodeGen&); 8751: 8751: template 8751: iterator 8751: _M_insert_equal_(const_iterator __pos, _Arg&& __x) 8751: { 8751: _Alloc_node __an(*this); 8751: return _M_insert_equal_(__pos, std::forward<_Arg>(__x), __an); 8751: } 8751: 8751: template 8751: pair 8751: _M_emplace_unique(_Args&&... __args); 8751: 8751: template 8751: iterator 8751: _M_emplace_equal(_Args&&... __args); 8751: 8751: template 8751: iterator 8751: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args); 8751: 8751: template 8751: iterator 8751: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args); 8751: # 1103 "/usr/include/c++/8/bits/stl_tree.h" 3 8751: template 8751: void 8751: _M_insert_unique(_InputIterator __first, _InputIterator __last); 8751: 8751: template 8751: void 8751: _M_insert_equal(_InputIterator __first, _InputIterator __last); 8751: 8751: private: 8751: void 8751: _M_erase_aux(const_iterator __position); 8751: 8751: void 8751: _M_erase_aux(const_iterator __first, const_iterator __last); 8751: 8751: public: 8751: 8751: 8751: 8751: __attribute ((__abi_tag__ ("cxx11"))) 8751: iterator 8751: erase(const_iterator __position) 8751: { 8751: ; 8751: const_iterator __result = __position; 8751: ++__result; 8751: _M_erase_aux(__position); 8751: return __result._M_const_cast(); 8751: } 8751: 8751: 8751: __attribute ((__abi_tag__ ("cxx11"))) 8751: iterator 8751: erase(iterator __position) 8751: { 8751: ; 8751: iterator __result = __position; 8751: ++__result; 8751: _M_erase_aux(__position); 8751: return __result; 8751: } 8751: # 1159 "/usr/include/c++/8/bits/stl_tree.h" 3 8751: size_type 8751: erase(const key_type& __x); 8751: 8751: 8751: 8751: 8751: __attribute ((__abi_tag__ ("cxx11"))) 8751: iterator 8751: erase(const_iterator __first, const_iterator __last) 8751: { 8751: _M_erase_aux(__first, __last); 8751: return __last._M_const_cast(); 8751: } 8751: # 1181 "/usr/include/c++/8/bits/stl_tree.h" 3 8751: void 8751: erase(const key_type* __first, const key_type* __last); 8751: 8751: void 8751: clear() noexcept 8751: { 8751: _M_erase(_M_begin()); 8751: _M_impl._M_reset(); 8751: } 8751: 8751: 8751: iterator 8751: find(const key_type& __k); 8751: 8751: const_iterator 8751: find(const key_type& __k) const; 8751: 8751: size_type 8751: count(const key_type& __k) const; 8751: 8751: iterator 8751: lower_bound(const key_type& __k) 8751: { return _M_lower_bound(_M_begin(), _M_end(), __k); } 8751: 8751: const_iterator 8751: lower_bound(const key_type& __k) const 8751: { return _M_lower_bound(_M_begin(), _M_end(), __k); } 8751: 8751: iterator 8751: upper_bound(const key_type& __k) 8751: { return _M_upper_bound(_M_begin(), _M_end(), __k); } 8751: 8751: const_iterator 8751: upper_bound(const key_type& __k) const 8751: { return _M_upper_bound(_M_begin(), _M_end(), __k); } 8751: 8751: pair 8751: equal_range(const key_type& __k); 8751: 8751: pair 8751: equal_range(const key_type& __k) const; 8751: # 1341 "/usr/include/c++/8/bits/stl_tree.h" 3 8751: bool 8751: __rb_verify() const; 8751: 8751: 8751: _Rb_tree& 8751: operator=(_Rb_tree&&) 8751: noexcept(_Alloc_traits::_S_nothrow_move() 8751: && is_nothrow_move_assignable<_Compare>::value); 8751: 8751: template 8751: void 8751: _M_assign_unique(_Iterator, _Iterator); 8751: 8751: template 8751: void 8751: _M_assign_equal(_Iterator, _Iterator); 8751: 8751: private: 8751: 8751: void 8751: _M_move_data(_Rb_tree& __x, std::true_type) 8751: { _M_impl._M_move_data(__x._M_impl); } 8751: 8751: 8751: 8751: void 8751: _M_move_data(_Rb_tree&, std::false_type); 8751: 8751: 8751: void 8751: _M_move_assign(_Rb_tree&, std::true_type); 8751: 8751: 8751: 8751: void 8751: _M_move_assign(_Rb_tree&, std::false_type); 8751: # 1544 "/usr/include/c++/8/bits/stl_tree.h" 3 8751: }; 8751: 8751: template 8751: inline bool 8751: operator==(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8751: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8751: { 8751: return __x.size() == __y.size() 8751: && std::equal(__x.begin(), __x.end(), __y.begin()); 8751: } 8751: 8751: template 8751: inline bool 8751: operator<(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8751: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8751: { 8751: return std::lexicographical_compare(__x.begin(), __x.end(), 8751: __y.begin(), __y.end()); 8751: } 8751: 8751: template 8751: inline bool 8751: operator!=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8751: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8751: { return !(__x == __y); } 8751: 8751: template 8751: inline bool 8751: operator>(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8751: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8751: { return __y < __x; } 8751: 8751: template 8751: inline bool 8751: operator<=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8751: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8751: { return !(__y < __x); } 8751: 8751: template 8751: inline bool 8751: operator>=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8751: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8751: { return !(__x < __y); } 8751: 8751: template 8751: inline void 8751: swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8751: { __x.swap(__y); } 8751: 8751: 8751: template 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a) 8751: : _M_impl(__x._M_impl._M_key_compare, std::move(__a)) 8751: { 8751: using __eq = typename _Alloc_traits::is_always_equal; 8751: if (__x._M_root() != nullptr) 8751: _M_move_data(__x, __eq()); 8751: } 8751: 8751: template 8751: void 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_move_data(_Rb_tree& __x, std::false_type) 8751: { 8751: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 8751: _M_move_data(__x, std::true_type()); 8751: else 8751: { 8751: _Alloc_node __an(*this); 8751: auto __lbd = 8751: [&__an](const value_type& __cval) 8751: { 8751: auto& __val = const_cast(__cval); 8751: return __an(std::move_if_noexcept(__val)); 8751: }; 8751: _M_root() = _M_copy(__x, __lbd); 8751: } 8751: } 8751: 8751: template 8751: inline void 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_move_assign(_Rb_tree& __x, true_type) 8751: { 8751: clear(); 8751: if (__x._M_root() != nullptr) 8751: _M_move_data(__x, std::true_type()); 8751: std::__alloc_on_move(_M_get_Node_allocator(), 8751: __x._M_get_Node_allocator()); 8751: } 8751: 8751: template 8751: void 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_move_assign(_Rb_tree& __x, false_type) 8751: { 8751: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 8751: return _M_move_assign(__x, true_type{}); 8751: 8751: 8751: 8751: _Reuse_or_alloc_node __roan(*this); 8751: _M_impl._M_reset(); 8751: if (__x._M_root() != nullptr) 8751: { 8751: auto __lbd = 8751: [&__roan](const value_type& __cval) 8751: { 8751: auto& __val = const_cast(__cval); 8751: return __roan(std::move_if_noexcept(__val)); 8751: }; 8751: _M_root() = _M_copy(__x, __lbd); 8751: __x.clear(); 8751: } 8751: } 8751: 8751: template 8751: inline _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: operator=(_Rb_tree&& __x) 8751: noexcept(_Alloc_traits::_S_nothrow_move() 8751: && is_nothrow_move_assignable<_Compare>::value) 8751: { 8751: _M_impl._M_key_compare = std::move(__x._M_impl._M_key_compare); 8751: _M_move_assign(__x, __bool_constant<_Alloc_traits::_S_nothrow_move()>()); 8751: return *this; 8751: } 8751: 8751: template 8751: template 8751: void 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_assign_unique(_Iterator __first, _Iterator __last) 8751: { 8751: _Reuse_or_alloc_node __roan(*this); 8751: _M_impl._M_reset(); 8751: for (; __first != __last; ++__first) 8751: _M_insert_unique_(end(), *__first, __roan); 8751: } 8751: 8751: template 8751: template 8751: void 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_assign_equal(_Iterator __first, _Iterator __last) 8751: { 8751: _Reuse_or_alloc_node __roan(*this); 8751: _M_impl._M_reset(); 8751: for (; __first != __last; ++__first) 8751: _M_insert_equal_(end(), *__first, __roan); 8751: } 8751: 8751: 8751: template 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: operator=(const _Rb_tree& __x) 8751: { 8751: if (this != &__x) 8751: { 8751: 8751: 8751: if (_Alloc_traits::_S_propagate_on_copy_assign()) 8751: { 8751: auto& __this_alloc = this->_M_get_Node_allocator(); 8751: auto& __that_alloc = __x._M_get_Node_allocator(); 8751: if (!_Alloc_traits::_S_always_equal() 8751: && __this_alloc != __that_alloc) 8751: { 8751: 8751: 8751: clear(); 8751: std::__alloc_on_copy(__this_alloc, __that_alloc); 8751: } 8751: } 8751: 8751: 8751: _Reuse_or_alloc_node __roan(*this); 8751: _M_impl._M_reset(); 8751: _M_impl._M_key_compare = __x._M_impl._M_key_compare; 8751: if (__x._M_root() != 0) 8751: _M_root() = _M_copy(__x, __roan); 8751: } 8751: 8751: return *this; 8751: } 8751: 8751: template 8751: 8751: template 8751: 8751: 8751: 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_insert_(_Base_ptr __x, _Base_ptr __p, 8751: 8751: _Arg&& __v, 8751: 8751: 8751: 8751: _NodeGen& __node_gen) 8751: { 8751: bool __insert_left = (__x != 0 || __p == _M_end() 8751: || _M_impl._M_key_compare(_KeyOfValue()(__v), 8751: _S_key(__p))); 8751: 8751: _Link_type __z = __node_gen(std::forward<_Arg>(__v)); 8751: 8751: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8751: this->_M_impl._M_header); 8751: ++_M_impl._M_node_count; 8751: return iterator(__z); 8751: } 8751: 8751: template 8751: 8751: template 8751: 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: 8751: _M_insert_lower(_Base_ptr __p, _Arg&& __v) 8751: 8751: 8751: 8751: { 8751: bool __insert_left = (__p == _M_end() 8751: || !_M_impl._M_key_compare(_S_key(__p), 8751: _KeyOfValue()(__v))); 8751: 8751: _Link_type __z = _M_create_node(std::forward<_Arg>(__v)); 8751: 8751: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8751: this->_M_impl._M_header); 8751: ++_M_impl._M_node_count; 8751: return iterator(__z); 8751: } 8751: 8751: template 8751: 8751: template 8751: 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: 8751: _M_insert_equal_lower(_Arg&& __v) 8751: 8751: 8751: 8751: { 8751: _Link_type __x = _M_begin(); 8751: _Base_ptr __y = _M_end(); 8751: while (__x != 0) 8751: { 8751: __y = __x; 8751: __x = !_M_impl._M_key_compare(_S_key(__x), _KeyOfValue()(__v)) ? 8751: _S_left(__x) : _S_right(__x); 8751: } 8751: return _M_insert_lower(__y, std::forward<_Arg>(__v)); 8751: } 8751: 8751: template 8751: template 8751: typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type 8751: _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>:: 8751: _M_copy(_Const_Link_type __x, _Base_ptr __p, _NodeGen& __node_gen) 8751: { 8751: 8751: _Link_type __top = _M_clone_node(__x, __node_gen); 8751: __top->_M_parent = __p; 8751: 8751: try 8751: { 8751: if (__x->_M_right) 8751: __top->_M_right = _M_copy(_S_right(__x), __top, __node_gen); 8751: __p = __top; 8751: __x = _S_left(__x); 8751: 8751: while (__x != 0) 8751: { 8751: _Link_type __y = _M_clone_node(__x, __node_gen); 8751: __p->_M_left = __y; 8751: __y->_M_parent = __p; 8751: if (__x->_M_right) 8751: __y->_M_right = _M_copy(_S_right(__x), __y, __node_gen); 8751: __p = __y; 8751: __x = _S_left(__x); 8751: } 8751: } 8751: catch(...) 8751: { 8751: _M_erase(__top); 8751: throw; 8751: } 8751: return __top; 8751: } 8751: 8751: template 8751: void 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_erase(_Link_type __x) 8751: { 8751: 8751: while (__x != 0) 8751: { 8751: _M_erase(_S_right(__x)); 8751: _Link_type __y = _S_left(__x); 8751: _M_drop_node(__x); 8751: __x = __y; 8751: } 8751: } 8751: 8751: template 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8751: _Compare, _Alloc>::iterator 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_lower_bound(_Link_type __x, _Base_ptr __y, 8751: const _Key& __k) 8751: { 8751: while (__x != 0) 8751: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 8751: __y = __x, __x = _S_left(__x); 8751: else 8751: __x = _S_right(__x); 8751: return iterator(__y); 8751: } 8751: 8751: template 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8751: _Compare, _Alloc>::const_iterator 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8751: const _Key& __k) const 8751: { 8751: while (__x != 0) 8751: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 8751: __y = __x, __x = _S_left(__x); 8751: else 8751: __x = _S_right(__x); 8751: return const_iterator(__y); 8751: } 8751: 8751: template 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8751: _Compare, _Alloc>::iterator 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_upper_bound(_Link_type __x, _Base_ptr __y, 8751: const _Key& __k) 8751: { 8751: while (__x != 0) 8751: if (_M_impl._M_key_compare(__k, _S_key(__x))) 8751: __y = __x, __x = _S_left(__x); 8751: else 8751: __x = _S_right(__x); 8751: return iterator(__y); 8751: } 8751: 8751: template 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8751: _Compare, _Alloc>::const_iterator 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8751: const _Key& __k) const 8751: { 8751: while (__x != 0) 8751: if (_M_impl._M_key_compare(__k, _S_key(__x))) 8751: __y = __x, __x = _S_left(__x); 8751: else 8751: __x = _S_right(__x); 8751: return const_iterator(__y); 8751: } 8751: 8751: template 8751: pair::iterator, 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8751: _Compare, _Alloc>::iterator> 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: equal_range(const _Key& __k) 8751: { 8751: _Link_type __x = _M_begin(); 8751: _Base_ptr __y = _M_end(); 8751: while (__x != 0) 8751: { 8751: if (_M_impl._M_key_compare(_S_key(__x), __k)) 8751: __x = _S_right(__x); 8751: else if (_M_impl._M_key_compare(__k, _S_key(__x))) 8751: __y = __x, __x = _S_left(__x); 8751: else 8751: { 8751: _Link_type __xu(__x); 8751: _Base_ptr __yu(__y); 8751: __y = __x, __x = _S_left(__x); 8751: __xu = _S_right(__xu); 8751: return pair(_M_lower_bound(__x, __y, __k), 8751: _M_upper_bound(__xu, __yu, __k)); 8751: } 8751: } 8751: return pair(iterator(__y), 8751: iterator(__y)); 8751: } 8751: 8751: template 8751: pair::const_iterator, 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8751: _Compare, _Alloc>::const_iterator> 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: equal_range(const _Key& __k) const 8751: { 8751: _Const_Link_type __x = _M_begin(); 8751: _Const_Base_ptr __y = _M_end(); 8751: while (__x != 0) 8751: { 8751: if (_M_impl._M_key_compare(_S_key(__x), __k)) 8751: __x = _S_right(__x); 8751: else if (_M_impl._M_key_compare(__k, _S_key(__x))) 8751: __y = __x, __x = _S_left(__x); 8751: else 8751: { 8751: _Const_Link_type __xu(__x); 8751: _Const_Base_ptr __yu(__y); 8751: __y = __x, __x = _S_left(__x); 8751: __xu = _S_right(__xu); 8751: return pair(_M_lower_bound(__x, __y, __k), 8751: _M_upper_bound(__xu, __yu, __k)); 8751: } 8751: } 8751: return pair(const_iterator(__y), 8751: const_iterator(__y)); 8751: } 8751: 8751: template 8751: void 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: swap(_Rb_tree& __t) 8751: noexcept(__is_nothrow_swappable<_Compare>::value) 8751: { 8751: if (_M_root() == 0) 8751: { 8751: if (__t._M_root() != 0) 8751: _M_impl._M_move_data(__t._M_impl); 8751: } 8751: else if (__t._M_root() == 0) 8751: __t._M_impl._M_move_data(_M_impl); 8751: else 8751: { 8751: std::swap(_M_root(),__t._M_root()); 8751: std::swap(_M_leftmost(),__t._M_leftmost()); 8751: std::swap(_M_rightmost(),__t._M_rightmost()); 8751: 8751: _M_root()->_M_parent = _M_end(); 8751: __t._M_root()->_M_parent = __t._M_end(); 8751: std::swap(this->_M_impl._M_node_count, __t._M_impl._M_node_count); 8751: } 8751: 8751: std::swap(this->_M_impl._M_key_compare, __t._M_impl._M_key_compare); 8751: 8751: _Alloc_traits::_S_on_swap(_M_get_Node_allocator(), 8751: __t._M_get_Node_allocator()); 8751: } 8751: 8751: template 8751: pair::_Base_ptr, 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8751: _Compare, _Alloc>::_Base_ptr> 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_get_insert_unique_pos(const key_type& __k) 8751: { 8751: typedef pair<_Base_ptr, _Base_ptr> _Res; 8751: _Link_type __x = _M_begin(); 8751: _Base_ptr __y = _M_end(); 8751: bool __comp = true; 8751: while (__x != 0) 8751: { 8751: __y = __x; 8751: __comp = _M_impl._M_key_compare(__k, _S_key(__x)); 8751: __x = __comp ? _S_left(__x) : _S_right(__x); 8751: } 8751: iterator __j = iterator(__y); 8751: if (__comp) 8751: { 8751: if (__j == begin()) 8751: return _Res(__x, __y); 8751: else 8751: --__j; 8751: } 8751: if (_M_impl._M_key_compare(_S_key(__j._M_node), __k)) 8751: return _Res(__x, __y); 8751: return _Res(__j._M_node, 0); 8751: } 8751: 8751: template 8751: pair::_Base_ptr, 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8751: _Compare, _Alloc>::_Base_ptr> 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_get_insert_equal_pos(const key_type& __k) 8751: { 8751: typedef pair<_Base_ptr, _Base_ptr> _Res; 8751: _Link_type __x = _M_begin(); 8751: _Base_ptr __y = _M_end(); 8751: while (__x != 0) 8751: { 8751: __y = __x; 8751: __x = _M_impl._M_key_compare(__k, _S_key(__x)) ? 8751: _S_left(__x) : _S_right(__x); 8751: } 8751: return _Res(__x, __y); 8751: } 8751: 8751: template 8751: 8751: template 8751: 8751: pair::iterator, bool> 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: 8751: _M_insert_unique(_Arg&& __v) 8751: 8751: 8751: 8751: { 8751: typedef pair _Res; 8751: pair<_Base_ptr, _Base_ptr> __res 8751: = _M_get_insert_unique_pos(_KeyOfValue()(__v)); 8751: 8751: if (__res.second) 8751: { 8751: _Alloc_node __an(*this); 8751: return _Res(_M_insert_(__res.first, __res.second, 8751: std::forward<_Arg>(__v), __an), 8751: true); 8751: } 8751: 8751: return _Res(iterator(__res.first), false); 8751: } 8751: 8751: template 8751: 8751: template 8751: 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: 8751: _M_insert_equal(_Arg&& __v) 8751: 8751: 8751: 8751: { 8751: pair<_Base_ptr, _Base_ptr> __res 8751: = _M_get_insert_equal_pos(_KeyOfValue()(__v)); 8751: _Alloc_node __an(*this); 8751: return _M_insert_(__res.first, __res.second, 8751: std::forward<_Arg>(__v), __an); 8751: } 8751: 8751: template 8751: pair::_Base_ptr, 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8751: _Compare, _Alloc>::_Base_ptr> 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_get_insert_hint_unique_pos(const_iterator __position, 8751: const key_type& __k) 8751: { 8751: iterator __pos = __position._M_const_cast(); 8751: typedef pair<_Base_ptr, _Base_ptr> _Res; 8751: 8751: 8751: if (__pos._M_node == _M_end()) 8751: { 8751: if (size() > 0 8751: && _M_impl._M_key_compare(_S_key(_M_rightmost()), __k)) 8751: return _Res(0, _M_rightmost()); 8751: else 8751: return _M_get_insert_unique_pos(__k); 8751: } 8751: else if (_M_impl._M_key_compare(__k, _S_key(__pos._M_node))) 8751: { 8751: 8751: iterator __before = __pos; 8751: if (__pos._M_node == _M_leftmost()) 8751: return _Res(_M_leftmost(), _M_leftmost()); 8751: else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), __k)) 8751: { 8751: if (_S_right(__before._M_node) == 0) 8751: return _Res(0, __before._M_node); 8751: else 8751: return _Res(__pos._M_node, __pos._M_node); 8751: } 8751: else 8751: return _M_get_insert_unique_pos(__k); 8751: } 8751: else if (_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) 8751: { 8751: 8751: iterator __after = __pos; 8751: if (__pos._M_node == _M_rightmost()) 8751: return _Res(0, _M_rightmost()); 8751: else if (_M_impl._M_key_compare(__k, _S_key((++__after)._M_node))) 8751: { 8751: if (_S_right(__pos._M_node) == 0) 8751: return _Res(0, __pos._M_node); 8751: else 8751: return _Res(__after._M_node, __after._M_node); 8751: } 8751: else 8751: return _M_get_insert_unique_pos(__k); 8751: } 8751: else 8751: 8751: return _Res(__pos._M_node, 0); 8751: } 8751: 8751: template 8751: 8751: template 8751: 8751: 8751: 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_insert_unique_(const_iterator __position, 8751: 8751: _Arg&& __v, 8751: 8751: 8751: 8751: _NodeGen& __node_gen) 8751: { 8751: pair<_Base_ptr, _Base_ptr> __res 8751: = _M_get_insert_hint_unique_pos(__position, _KeyOfValue()(__v)); 8751: 8751: if (__res.second) 8751: return _M_insert_(__res.first, __res.second, 8751: std::forward<_Arg>(__v), 8751: __node_gen); 8751: return iterator(__res.first); 8751: } 8751: 8751: template 8751: pair::_Base_ptr, 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8751: _Compare, _Alloc>::_Base_ptr> 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_get_insert_hint_equal_pos(const_iterator __position, const key_type& __k) 8751: { 8751: iterator __pos = __position._M_const_cast(); 8751: typedef pair<_Base_ptr, _Base_ptr> _Res; 8751: 8751: 8751: if (__pos._M_node == _M_end()) 8751: { 8751: if (size() > 0 8751: && !_M_impl._M_key_compare(__k, _S_key(_M_rightmost()))) 8751: return _Res(0, _M_rightmost()); 8751: else 8751: return _M_get_insert_equal_pos(__k); 8751: } 8751: else if (!_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) 8751: { 8751: 8751: iterator __before = __pos; 8751: if (__pos._M_node == _M_leftmost()) 8751: return _Res(_M_leftmost(), _M_leftmost()); 8751: else if (!_M_impl._M_key_compare(__k, _S_key((--__before)._M_node))) 8751: { 8751: if (_S_right(__before._M_node) == 0) 8751: return _Res(0, __before._M_node); 8751: else 8751: return _Res(__pos._M_node, __pos._M_node); 8751: } 8751: else 8751: return _M_get_insert_equal_pos(__k); 8751: } 8751: else 8751: { 8751: 8751: iterator __after = __pos; 8751: if (__pos._M_node == _M_rightmost()) 8751: return _Res(0, _M_rightmost()); 8751: else if (!_M_impl._M_key_compare(_S_key((++__after)._M_node), __k)) 8751: { 8751: if (_S_right(__pos._M_node) == 0) 8751: return _Res(0, __pos._M_node); 8751: else 8751: return _Res(__after._M_node, __after._M_node); 8751: } 8751: else 8751: return _Res(0, 0); 8751: } 8751: } 8751: 8751: template 8751: 8751: template 8751: 8751: 8751: 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_insert_equal_(const_iterator __position, 8751: 8751: _Arg&& __v, 8751: 8751: 8751: 8751: _NodeGen& __node_gen) 8751: { 8751: pair<_Base_ptr, _Base_ptr> __res 8751: = _M_get_insert_hint_equal_pos(__position, _KeyOfValue()(__v)); 8751: 8751: if (__res.second) 8751: return _M_insert_(__res.first, __res.second, 8751: std::forward<_Arg>(__v), 8751: __node_gen); 8751: 8751: return _M_insert_equal_lower(std::forward<_Arg>(__v)); 8751: } 8751: 8751: 8751: template 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_insert_node(_Base_ptr __x, _Base_ptr __p, _Link_type __z) 8751: { 8751: bool __insert_left = (__x != 0 || __p == _M_end() 8751: || _M_impl._M_key_compare(_S_key(__z), 8751: _S_key(__p))); 8751: 8751: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8751: this->_M_impl._M_header); 8751: ++_M_impl._M_node_count; 8751: return iterator(__z); 8751: } 8751: 8751: template 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_insert_lower_node(_Base_ptr __p, _Link_type __z) 8751: { 8751: bool __insert_left = (__p == _M_end() 8751: || !_M_impl._M_key_compare(_S_key(__p), 8751: _S_key(__z))); 8751: 8751: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8751: this->_M_impl._M_header); 8751: ++_M_impl._M_node_count; 8751: return iterator(__z); 8751: } 8751: 8751: template 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_insert_equal_lower_node(_Link_type __z) 8751: { 8751: _Link_type __x = _M_begin(); 8751: _Base_ptr __y = _M_end(); 8751: while (__x != 0) 8751: { 8751: __y = __x; 8751: __x = !_M_impl._M_key_compare(_S_key(__x), _S_key(__z)) ? 8751: _S_left(__x) : _S_right(__x); 8751: } 8751: return _M_insert_lower_node(__y, __z); 8751: } 8751: 8751: template 8751: template 8751: pair::iterator, bool> 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_emplace_unique(_Args&&... __args) 8751: { 8751: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8751: 8751: try 8751: { 8751: typedef pair _Res; 8751: auto __res = _M_get_insert_unique_pos(_S_key(__z)); 8751: if (__res.second) 8751: return _Res(_M_insert_node(__res.first, __res.second, __z), true); 8751: 8751: _M_drop_node(__z); 8751: return _Res(iterator(__res.first), false); 8751: } 8751: catch(...) 8751: { 8751: _M_drop_node(__z); 8751: throw; 8751: } 8751: } 8751: 8751: template 8751: template 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_emplace_equal(_Args&&... __args) 8751: { 8751: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8751: 8751: try 8751: { 8751: auto __res = _M_get_insert_equal_pos(_S_key(__z)); 8751: return _M_insert_node(__res.first, __res.second, __z); 8751: } 8751: catch(...) 8751: { 8751: _M_drop_node(__z); 8751: throw; 8751: } 8751: } 8751: 8751: template 8751: template 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args) 8751: { 8751: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8751: 8751: try 8751: { 8751: auto __res = _M_get_insert_hint_unique_pos(__pos, _S_key(__z)); 8751: 8751: if (__res.second) 8751: return _M_insert_node(__res.first, __res.second, __z); 8751: 8751: _M_drop_node(__z); 8751: return iterator(__res.first); 8751: } 8751: catch(...) 8751: { 8751: _M_drop_node(__z); 8751: throw; 8751: } 8751: } 8751: 8751: template 8751: template 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args) 8751: { 8751: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8751: 8751: try 8751: { 8751: auto __res = _M_get_insert_hint_equal_pos(__pos, _S_key(__z)); 8751: 8751: if (__res.second) 8751: return _M_insert_node(__res.first, __res.second, __z); 8751: 8751: return _M_insert_equal_lower_node(__z); 8751: } 8751: catch(...) 8751: { 8751: _M_drop_node(__z); 8751: throw; 8751: } 8751: } 8751: 8751: 8751: template 8751: template 8751: void 8751: _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: 8751: _M_insert_unique(_II __first, _II __last) 8751: { 8751: _Alloc_node __an(*this); 8751: for (; __first != __last; ++__first) 8751: _M_insert_unique_(end(), *__first, __an); 8751: } 8751: 8751: template 8751: template 8751: void 8751: _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: 8751: _M_insert_equal(_II __first, _II __last) 8751: { 8751: _Alloc_node __an(*this); 8751: for (; __first != __last; ++__first) 8751: _M_insert_equal_(end(), *__first, __an); 8751: } 8751: 8751: template 8751: void 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_erase_aux(const_iterator __position) 8751: { 8751: _Link_type __y = 8751: static_cast<_Link_type>(_Rb_tree_rebalance_for_erase 8751: (const_cast<_Base_ptr>(__position._M_node), 8751: this->_M_impl._M_header)); 8751: _M_drop_node(__y); 8751: --_M_impl._M_node_count; 8751: } 8751: 8751: template 8751: void 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: _M_erase_aux(const_iterator __first, const_iterator __last) 8751: { 8751: if (__first == begin() && __last == end()) 8751: clear(); 8751: else 8751: while (__first != __last) 8751: _M_erase_aux(__first++); 8751: } 8751: 8751: template 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: erase(const _Key& __x) 8751: { 8751: pair __p = equal_range(__x); 8751: const size_type __old_size = size(); 8751: _M_erase_aux(__p.first, __p.second); 8751: return __old_size - size(); 8751: } 8751: 8751: template 8751: void 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: erase(const _Key* __first, const _Key* __last) 8751: { 8751: while (__first != __last) 8751: erase(*__first++); 8751: } 8751: 8751: template 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8751: _Compare, _Alloc>::iterator 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: find(const _Key& __k) 8751: { 8751: iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 8751: return (__j == end() 8751: || _M_impl._M_key_compare(__k, 8751: _S_key(__j._M_node))) ? end() : __j; 8751: } 8751: 8751: template 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8751: _Compare, _Alloc>::const_iterator 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: find(const _Key& __k) const 8751: { 8751: const_iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 8751: return (__j == end() 8751: || _M_impl._M_key_compare(__k, 8751: _S_key(__j._M_node))) ? end() : __j; 8751: } 8751: 8751: template 8751: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 8751: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8751: count(const _Key& __k) const 8751: { 8751: pair __p = equal_range(__k); 8751: const size_type __n = std::distance(__p.first, __p.second); 8751: return __n; 8751: } 8751: 8751: __attribute__ ((__pure__)) unsigned int 8751: _Rb_tree_black_count(const _Rb_tree_node_base* __node, 8751: const _Rb_tree_node_base* __root) throw (); 8751: 8751: template 8751: bool 8751: _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const 8751: { 8751: if (_M_impl._M_node_count == 0 || begin() == end()) 8751: return _M_impl._M_node_count == 0 && begin() == end() 8751: && this->_M_impl._M_header._M_left == _M_end() 8751: && this->_M_impl._M_header._M_right == _M_end(); 8751: 8751: unsigned int __len = _Rb_tree_black_count(_M_leftmost(), _M_root()); 8751: for (const_iterator __it = begin(); __it != end(); ++__it) 8751: { 8751: _Const_Link_type __x = static_cast<_Const_Link_type>(__it._M_node); 8751: _Const_Link_type __L = _S_left(__x); 8751: _Const_Link_type __R = _S_right(__x); 8751: 8751: if (__x->_M_color == _S_red) 8751: if ((__L && __L->_M_color == _S_red) 8751: || (__R && __R->_M_color == _S_red)) 8751: return false; 8751: 8751: if (__L && _M_impl._M_key_compare(_S_key(__x), _S_key(__L))) 8751: return false; 8751: if (__R && _M_impl._M_key_compare(_S_key(__R), _S_key(__x))) 8751: return false; 8751: 8751: if (!__L && !__R && _Rb_tree_black_count(__x, _M_root()) != __len) 8751: return false; 8751: } 8751: 8751: if (_M_leftmost() != _Rb_tree_node_base::_S_minimum(_M_root())) 8751: return false; 8751: if (_M_rightmost() != _Rb_tree_node_base::_S_maximum(_M_root())) 8751: return false; 8751: return true; 8751: } 8751: # 2627 "/usr/include/c++/8/bits/stl_tree.h" 3 8751: 8751: } 8751: # 61 "/usr/include/c++/8/map" 2 3 8751: # 1 "/usr/include/c++/8/bits/stl_map.h" 1 3 8751: # 63 "/usr/include/c++/8/bits/stl_map.h" 3 8751: # 1 "/usr/include/c++/8/tuple" 1 3 8751: # 32 "/usr/include/c++/8/tuple" 3 8751: 8751: # 33 "/usr/include/c++/8/tuple" 3 8751: 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/array" 1 3 8751: # 32 "/usr/include/c++/8/array" 3 8751: 8751: # 33 "/usr/include/c++/8/array" 3 8751: # 43 "/usr/include/c++/8/array" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: template 8751: struct __array_traits 8751: { 8751: typedef _Tp _Type[_Nm]; 8751: typedef __is_swappable<_Tp> _Is_swappable; 8751: typedef __is_nothrow_swappable<_Tp> _Is_nothrow_swappable; 8751: 8751: static constexpr _Tp& 8751: _S_ref(const _Type& __t, std::size_t __n) noexcept 8751: { return const_cast<_Tp&>(__t[__n]); } 8751: 8751: static constexpr _Tp* 8751: _S_ptr(const _Type& __t) noexcept 8751: { return const_cast<_Tp*>(__t); } 8751: }; 8751: 8751: template 8751: struct __array_traits<_Tp, 0> 8751: { 8751: struct _Type { }; 8751: typedef true_type _Is_swappable; 8751: typedef true_type _Is_nothrow_swappable; 8751: 8751: static constexpr _Tp& 8751: _S_ref(const _Type&, std::size_t) noexcept 8751: { return *static_cast<_Tp*>(nullptr); } 8751: 8751: static constexpr _Tp* 8751: _S_ptr(const _Type&) noexcept 8751: { return nullptr; } 8751: }; 8751: # 93 "/usr/include/c++/8/array" 3 8751: template 8751: struct array 8751: { 8751: typedef _Tp value_type; 8751: typedef value_type* pointer; 8751: typedef const value_type* const_pointer; 8751: typedef value_type& reference; 8751: typedef const value_type& const_reference; 8751: typedef value_type* iterator; 8751: typedef const value_type* const_iterator; 8751: typedef std::size_t size_type; 8751: typedef std::ptrdiff_t difference_type; 8751: typedef std::reverse_iterator reverse_iterator; 8751: typedef std::reverse_iterator const_reverse_iterator; 8751: 8751: 8751: typedef std::__array_traits<_Tp, _Nm> _AT_Type; 8751: typename _AT_Type::_Type _M_elems; 8751: 8751: 8751: 8751: 8751: void 8751: fill(const value_type& __u) 8751: { std::fill_n(begin(), size(), __u); } 8751: 8751: void 8751: swap(array& __other) 8751: noexcept(_AT_Type::_Is_nothrow_swappable::value) 8751: { std::swap_ranges(begin(), end(), __other.begin()); } 8751: 8751: 8751: iterator 8751: begin() noexcept 8751: { return iterator(data()); } 8751: 8751: const_iterator 8751: begin() const noexcept 8751: { return const_iterator(data()); } 8751: 8751: iterator 8751: end() noexcept 8751: { return iterator(data() + _Nm); } 8751: 8751: const_iterator 8751: end() const noexcept 8751: { return const_iterator(data() + _Nm); } 8751: 8751: reverse_iterator 8751: rbegin() noexcept 8751: { return reverse_iterator(end()); } 8751: 8751: const_reverse_iterator 8751: rbegin() const noexcept 8751: { return const_reverse_iterator(end()); } 8751: 8751: reverse_iterator 8751: rend() noexcept 8751: { return reverse_iterator(begin()); } 8751: 8751: const_reverse_iterator 8751: rend() const noexcept 8751: { return const_reverse_iterator(begin()); } 8751: 8751: const_iterator 8751: cbegin() const noexcept 8751: { return const_iterator(data()); } 8751: 8751: const_iterator 8751: cend() const noexcept 8751: { return const_iterator(data() + _Nm); } 8751: 8751: const_reverse_iterator 8751: crbegin() const noexcept 8751: { return const_reverse_iterator(end()); } 8751: 8751: const_reverse_iterator 8751: crend() const noexcept 8751: { return const_reverse_iterator(begin()); } 8751: 8751: 8751: constexpr size_type 8751: size() const noexcept { return _Nm; } 8751: 8751: constexpr size_type 8751: max_size() const noexcept { return _Nm; } 8751: 8751: constexpr bool 8751: empty() const noexcept { return size() == 0; } 8751: 8751: 8751: reference 8751: operator[](size_type __n) noexcept 8751: { return _AT_Type::_S_ref(_M_elems, __n); } 8751: 8751: constexpr const_reference 8751: operator[](size_type __n) const noexcept 8751: { return _AT_Type::_S_ref(_M_elems, __n); } 8751: 8751: reference 8751: at(size_type __n) 8751: { 8751: if (__n >= _Nm) 8751: std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 8751: , 8751: __n, _Nm); 8751: return _AT_Type::_S_ref(_M_elems, __n); 8751: } 8751: 8751: constexpr const_reference 8751: at(size_type __n) const 8751: { 8751: 8751: 8751: return __n < _Nm ? _AT_Type::_S_ref(_M_elems, __n) 8751: : (std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 8751: , 8751: __n, _Nm), 8751: _AT_Type::_S_ref(_M_elems, 0)); 8751: } 8751: 8751: reference 8751: front() noexcept 8751: { return *begin(); } 8751: 8751: constexpr const_reference 8751: front() const noexcept 8751: { return _AT_Type::_S_ref(_M_elems, 0); } 8751: 8751: reference 8751: back() noexcept 8751: { return _Nm ? *(end() - 1) : *end(); } 8751: 8751: constexpr const_reference 8751: back() const noexcept 8751: { 8751: return _Nm ? _AT_Type::_S_ref(_M_elems, _Nm - 1) 8751: : _AT_Type::_S_ref(_M_elems, 0); 8751: } 8751: 8751: pointer 8751: data() noexcept 8751: { return _AT_Type::_S_ptr(_M_elems); } 8751: 8751: const_pointer 8751: data() const noexcept 8751: { return _AT_Type::_S_ptr(_M_elems); } 8751: }; 8751: # 250 "/usr/include/c++/8/array" 3 8751: template 8751: inline bool 8751: operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8751: { return std::equal(__one.begin(), __one.end(), __two.begin()); } 8751: 8751: template 8751: inline bool 8751: operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8751: { return !(__one == __two); } 8751: 8751: template 8751: inline bool 8751: operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b) 8751: { 8751: return std::lexicographical_compare(__a.begin(), __a.end(), 8751: __b.begin(), __b.end()); 8751: } 8751: 8751: template 8751: inline bool 8751: operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8751: { return __two < __one; } 8751: 8751: template 8751: inline bool 8751: operator<=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8751: { return !(__one > __two); } 8751: 8751: template 8751: inline bool 8751: operator>=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8751: { return !(__one < __two); } 8751: 8751: 8751: template 8751: inline 8751: 8751: 8751: typename enable_if< 8751: std::__array_traits<_Tp, _Nm>::_Is_swappable::value 8751: >::type 8751: 8751: 8751: 8751: swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two) 8751: noexcept(noexcept(__one.swap(__two))) 8751: { __one.swap(__two); } 8751: 8751: 8751: template 8751: typename enable_if< 8751: !std::__array_traits<_Tp, _Nm>::_Is_swappable::value>::type 8751: swap(array<_Tp, _Nm>&, array<_Tp, _Nm>&) = delete; 8751: 8751: 8751: template 8751: constexpr _Tp& 8751: get(array<_Tp, _Nm>& __arr) noexcept 8751: { 8751: static_assert(_Int < _Nm, "array index is within bounds"); 8751: return std::__array_traits<_Tp, _Nm>:: 8751: _S_ref(__arr._M_elems, _Int); 8751: } 8751: 8751: template 8751: constexpr _Tp&& 8751: get(array<_Tp, _Nm>&& __arr) noexcept 8751: { 8751: static_assert(_Int < _Nm, "array index is within bounds"); 8751: return std::move(std::get<_Int>(__arr)); 8751: } 8751: 8751: template 8751: constexpr const _Tp& 8751: get(const array<_Tp, _Nm>& __arr) noexcept 8751: { 8751: static_assert(_Int < _Nm, "array index is within bounds"); 8751: return std::__array_traits<_Tp, _Nm>:: 8751: _S_ref(__arr._M_elems, _Int); 8751: } 8751: 8751: template 8751: constexpr const _Tp&& 8751: get(const array<_Tp, _Nm>&& __arr) noexcept 8751: { 8751: static_assert(_Int < _Nm, "array index is within bounds"); 8751: return std::move(std::get<_Int>(__arr)); 8751: } 8751: 8751: 8751: } 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct tuple_size; 8751: 8751: 8751: template 8751: struct tuple_size> 8751: : public integral_constant { }; 8751: 8751: 8751: template 8751: struct tuple_element; 8751: 8751: 8751: template 8751: struct tuple_element<_Int, std::array<_Tp, _Nm>> 8751: { 8751: static_assert(_Int < _Nm, "index is out of bounds"); 8751: typedef _Tp type; 8751: }; 8751: 8751: template 8751: struct __is_tuple_like_impl> : true_type 8751: { }; 8751: 8751: 8751: } 8751: # 40 "/usr/include/c++/8/tuple" 2 3 8751: # 1 "/usr/include/c++/8/bits/uses_allocator.h" 1 3 8751: # 35 "/usr/include/c++/8/bits/uses_allocator.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: struct __erased_type { }; 8751: 8751: template 8751: using __is_erased_or_convertible 8751: = __or_, is_convertible<_Alloc, _Tp>>; 8751: 8751: 8751: struct allocator_arg_t { explicit allocator_arg_t() = default; }; 8751: 8751: constexpr allocator_arg_t allocator_arg = 8751: allocator_arg_t(); 8751: 8751: template> 8751: struct __uses_allocator_helper 8751: : false_type { }; 8751: 8751: template 8751: struct __uses_allocator_helper<_Tp, _Alloc, 8751: __void_t> 8751: : __is_erased_or_convertible<_Alloc, typename _Tp::allocator_type>::type 8751: { }; 8751: 8751: 8751: template 8751: struct uses_allocator 8751: : __uses_allocator_helper<_Tp, _Alloc>::type 8751: { }; 8751: 8751: struct __uses_alloc_base { }; 8751: 8751: struct __uses_alloc0 : __uses_alloc_base 8751: { 8751: struct _Sink { void operator=(const void*) { } } _M_a; 8751: }; 8751: 8751: template 8751: struct __uses_alloc1 : __uses_alloc_base { const _Alloc* _M_a; }; 8751: 8751: template 8751: struct __uses_alloc2 : __uses_alloc_base { const _Alloc* _M_a; }; 8751: 8751: template 8751: struct __uses_alloc; 8751: 8751: template 8751: struct __uses_alloc 8751: : conditional< 8751: is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value, 8751: __uses_alloc1<_Alloc>, 8751: __uses_alloc2<_Alloc>>::type 8751: { 8751: static_assert(__or_< 8751: is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>, 8751: is_constructible<_Tp, _Args..., _Alloc>>::value, "construction with" 8751: " an allocator must be possible if uses_allocator is true"); 8751: }; 8751: 8751: template 8751: struct __uses_alloc 8751: : __uses_alloc0 { }; 8751: 8751: template 8751: using __uses_alloc_t = 8751: __uses_alloc::value, _Tp, _Alloc, _Args...>; 8751: 8751: template 8751: inline __uses_alloc_t<_Tp, _Alloc, _Args...> 8751: __use_alloc(const _Alloc& __a) 8751: { 8751: __uses_alloc_t<_Tp, _Alloc, _Args...> __ret; 8751: __ret._M_a = std::__addressof(__a); 8751: return __ret; 8751: } 8751: 8751: template 8751: void 8751: __use_alloc(const _Alloc&&) = delete; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template class _Predicate, 8751: typename _Tp, typename _Alloc, typename... _Args> 8751: struct __is_uses_allocator_predicate 8751: : conditional::value, 8751: __or_<_Predicate<_Tp, allocator_arg_t, _Alloc, _Args...>, 8751: _Predicate<_Tp, _Args..., _Alloc>>, 8751: _Predicate<_Tp, _Args...>>::type { }; 8751: 8751: template 8751: struct __is_uses_allocator_constructible 8751: : __is_uses_allocator_predicate 8751: { }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct __is_nothrow_uses_allocator_constructible 8751: : __is_uses_allocator_predicate 8751: { }; 8751: # 156 "/usr/include/c++/8/bits/uses_allocator.h" 3 8751: template 8751: void __uses_allocator_construct_impl(__uses_alloc0 __a, _Tp* __ptr, 8751: _Args&&... __args) 8751: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)...); } 8751: 8751: template 8751: void __uses_allocator_construct_impl(__uses_alloc1<_Alloc> __a, _Tp* __ptr, 8751: _Args&&... __args) 8751: { 8751: ::new ((void*)__ptr) _Tp(allocator_arg, *__a._M_a, 8751: std::forward<_Args>(__args)...); 8751: } 8751: 8751: template 8751: void __uses_allocator_construct_impl(__uses_alloc2<_Alloc> __a, _Tp* __ptr, 8751: _Args&&... __args) 8751: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)..., *__a._M_a); } 8751: 8751: template 8751: void __uses_allocator_construct(const _Alloc& __a, _Tp* __ptr, 8751: _Args&&... __args) 8751: { 8751: __uses_allocator_construct_impl(__use_alloc<_Tp, _Alloc, _Args...>(__a), 8751: __ptr, std::forward<_Args>(__args)...); 8751: } 8751: 8751: 8751: } 8751: # 41 "/usr/include/c++/8/tuple" 2 3 8751: # 1 "/usr/include/c++/8/bits/invoke.h" 1 3 8751: # 33 "/usr/include/c++/8/bits/invoke.h" 3 8751: 8751: # 34 "/usr/include/c++/8/bits/invoke.h" 3 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 52 "/usr/include/c++/8/bits/invoke.h" 3 8751: template::type> 8751: constexpr _Up&& 8751: __invfwd(typename remove_reference<_Tp>::type& __t) noexcept 8751: { return static_cast<_Up&&>(__t); } 8751: 8751: template 8751: constexpr _Res 8751: __invoke_impl(__invoke_other, _Fn&& __f, _Args&&... __args) 8751: { return std::forward<_Fn>(__f)(std::forward<_Args>(__args)...); } 8751: 8751: template 8751: constexpr _Res 8751: __invoke_impl(__invoke_memfun_ref, _MemFun&& __f, _Tp&& __t, 8751: _Args&&... __args) 8751: { return (__invfwd<_Tp>(__t).*__f)(std::forward<_Args>(__args)...); } 8751: 8751: template 8751: constexpr _Res 8751: __invoke_impl(__invoke_memfun_deref, _MemFun&& __f, _Tp&& __t, 8751: _Args&&... __args) 8751: { 8751: return ((*std::forward<_Tp>(__t)).*__f)(std::forward<_Args>(__args)...); 8751: } 8751: 8751: template 8751: constexpr _Res 8751: __invoke_impl(__invoke_memobj_ref, _MemPtr&& __f, _Tp&& __t) 8751: { return __invfwd<_Tp>(__t).*__f; } 8751: 8751: template 8751: constexpr _Res 8751: __invoke_impl(__invoke_memobj_deref, _MemPtr&& __f, _Tp&& __t) 8751: { return (*std::forward<_Tp>(__t)).*__f; } 8751: 8751: 8751: template 8751: constexpr typename __invoke_result<_Callable, _Args...>::type 8751: __invoke(_Callable&& __fn, _Args&&... __args) 8751: noexcept(__is_nothrow_invocable<_Callable, _Args...>::value) 8751: { 8751: using __result = __invoke_result<_Callable, _Args...>; 8751: using __type = typename __result::type; 8751: using __tag = typename __result::__invoke_type; 8751: return std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), 8751: std::forward<_Args>(__args)...); 8751: } 8751: 8751: 8751: } 8751: # 42 "/usr/include/c++/8/tuple" 2 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: class tuple; 8751: 8751: template 8751: struct __is_empty_non_tuple : is_empty<_Tp> { }; 8751: 8751: 8751: template 8751: struct __is_empty_non_tuple> : false_type { }; 8751: 8751: 8751: template 8751: using __empty_not_final 8751: = typename conditional<__is_final(_Tp), false_type, 8751: __is_empty_non_tuple<_Tp>>::type; 8751: 8751: template::value> 8751: struct _Head_base; 8751: 8751: template 8751: struct _Head_base<_Idx, _Head, true> 8751: : public _Head 8751: { 8751: constexpr _Head_base() 8751: : _Head() { } 8751: 8751: constexpr _Head_base(const _Head& __h) 8751: : _Head(__h) { } 8751: 8751: constexpr _Head_base(const _Head_base&) = default; 8751: constexpr _Head_base(_Head_base&&) = default; 8751: 8751: template 8751: constexpr _Head_base(_UHead&& __h) 8751: : _Head(std::forward<_UHead>(__h)) { } 8751: 8751: _Head_base(allocator_arg_t, __uses_alloc0) 8751: : _Head() { } 8751: 8751: template 8751: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 8751: : _Head(allocator_arg, *__a._M_a) { } 8751: 8751: template 8751: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 8751: : _Head(*__a._M_a) { } 8751: 8751: template 8751: _Head_base(__uses_alloc0, _UHead&& __uhead) 8751: : _Head(std::forward<_UHead>(__uhead)) { } 8751: 8751: template 8751: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 8751: : _Head(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) { } 8751: 8751: template 8751: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 8751: : _Head(std::forward<_UHead>(__uhead), *__a._M_a) { } 8751: 8751: static constexpr _Head& 8751: _M_head(_Head_base& __b) noexcept { return __b; } 8751: 8751: static constexpr const _Head& 8751: _M_head(const _Head_base& __b) noexcept { return __b; } 8751: }; 8751: 8751: template 8751: struct _Head_base<_Idx, _Head, false> 8751: { 8751: constexpr _Head_base() 8751: : _M_head_impl() { } 8751: 8751: constexpr _Head_base(const _Head& __h) 8751: : _M_head_impl(__h) { } 8751: 8751: constexpr _Head_base(const _Head_base&) = default; 8751: constexpr _Head_base(_Head_base&&) = default; 8751: 8751: template 8751: constexpr _Head_base(_UHead&& __h) 8751: : _M_head_impl(std::forward<_UHead>(__h)) { } 8751: 8751: _Head_base(allocator_arg_t, __uses_alloc0) 8751: : _M_head_impl() { } 8751: 8751: template 8751: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 8751: : _M_head_impl(allocator_arg, *__a._M_a) { } 8751: 8751: template 8751: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 8751: : _M_head_impl(*__a._M_a) { } 8751: 8751: template 8751: _Head_base(__uses_alloc0, _UHead&& __uhead) 8751: : _M_head_impl(std::forward<_UHead>(__uhead)) { } 8751: 8751: template 8751: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 8751: : _M_head_impl(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) 8751: { } 8751: 8751: template 8751: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 8751: : _M_head_impl(std::forward<_UHead>(__uhead), *__a._M_a) { } 8751: 8751: static constexpr _Head& 8751: _M_head(_Head_base& __b) noexcept { return __b._M_head_impl; } 8751: 8751: static constexpr const _Head& 8751: _M_head(const _Head_base& __b) noexcept { return __b._M_head_impl; } 8751: 8751: _Head _M_head_impl; 8751: }; 8751: # 176 "/usr/include/c++/8/tuple" 3 8751: template 8751: struct _Tuple_impl; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct _Tuple_impl<_Idx, _Head, _Tail...> 8751: : public _Tuple_impl<_Idx + 1, _Tail...>, 8751: private _Head_base<_Idx, _Head> 8751: { 8751: template friend class _Tuple_impl; 8751: 8751: typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited; 8751: typedef _Head_base<_Idx, _Head> _Base; 8751: 8751: static constexpr _Head& 8751: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8751: 8751: static constexpr const _Head& 8751: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8751: 8751: static constexpr _Inherited& 8751: _M_tail(_Tuple_impl& __t) noexcept { return __t; } 8751: 8751: static constexpr const _Inherited& 8751: _M_tail(const _Tuple_impl& __t) noexcept { return __t; } 8751: 8751: constexpr _Tuple_impl() 8751: : _Inherited(), _Base() { } 8751: 8751: explicit 8751: constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail) 8751: : _Inherited(__tail...), _Base(__head) { } 8751: 8751: template::type> 8751: explicit 8751: constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail) 8751: : _Inherited(std::forward<_UTail>(__tail)...), 8751: _Base(std::forward<_UHead>(__head)) { } 8751: 8751: constexpr _Tuple_impl(const _Tuple_impl&) = default; 8751: 8751: constexpr 8751: _Tuple_impl(_Tuple_impl&& __in) 8751: noexcept(__and_, 8751: is_nothrow_move_constructible<_Inherited>>::value) 8751: : _Inherited(std::move(_M_tail(__in))), 8751: _Base(std::forward<_Head>(_M_head(__in))) { } 8751: 8751: template 8751: constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in) 8751: : _Inherited(_Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), 8751: _Base(_Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } 8751: 8751: template 8751: constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 8751: : _Inherited(std::move 8751: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 8751: _Base(std::forward<_UHead> 8751: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } 8751: 8751: template 8751: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 8751: : _Inherited(__tag, __a), 8751: _Base(__tag, __use_alloc<_Head>(__a)) { } 8751: 8751: template 8751: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8751: const _Head& __head, const _Tail&... __tail) 8751: : _Inherited(__tag, __a, __tail...), 8751: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } 8751: 8751: template::type> 8751: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8751: _UHead&& __head, _UTail&&... __tail) 8751: : _Inherited(__tag, __a, std::forward<_UTail>(__tail)...), 8751: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8751: std::forward<_UHead>(__head)) { } 8751: 8751: template 8751: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8751: const _Tuple_impl& __in) 8751: : _Inherited(__tag, __a, _M_tail(__in)), 8751: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } 8751: 8751: template 8751: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8751: _Tuple_impl&& __in) 8751: : _Inherited(__tag, __a, std::move(_M_tail(__in))), 8751: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8751: std::forward<_Head>(_M_head(__in))) { } 8751: 8751: template 8751: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8751: const _Tuple_impl<_Idx, _UElements...>& __in) 8751: : _Inherited(__tag, __a, 8751: _Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), 8751: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8751: _Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } 8751: 8751: template 8751: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8751: _Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 8751: : _Inherited(__tag, __a, std::move 8751: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 8751: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8751: std::forward<_UHead> 8751: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } 8751: 8751: _Tuple_impl& 8751: operator=(const _Tuple_impl& __in) 8751: { 8751: _M_head(*this) = _M_head(__in); 8751: _M_tail(*this) = _M_tail(__in); 8751: return *this; 8751: } 8751: 8751: _Tuple_impl& 8751: operator=(_Tuple_impl&& __in) 8751: noexcept(__and_, 8751: is_nothrow_move_assignable<_Inherited>>::value) 8751: { 8751: _M_head(*this) = std::forward<_Head>(_M_head(__in)); 8751: _M_tail(*this) = std::move(_M_tail(__in)); 8751: return *this; 8751: } 8751: 8751: template 8751: _Tuple_impl& 8751: operator=(const _Tuple_impl<_Idx, _UElements...>& __in) 8751: { 8751: _M_head(*this) = _Tuple_impl<_Idx, _UElements...>::_M_head(__in); 8751: _M_tail(*this) = _Tuple_impl<_Idx, _UElements...>::_M_tail(__in); 8751: return *this; 8751: } 8751: 8751: template 8751: _Tuple_impl& 8751: operator=(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 8751: { 8751: _M_head(*this) = std::forward<_UHead> 8751: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in)); 8751: _M_tail(*this) = std::move 8751: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in)); 8751: return *this; 8751: } 8751: 8751: protected: 8751: void 8751: _M_swap(_Tuple_impl& __in) 8751: noexcept(__is_nothrow_swappable<_Head>::value 8751: && noexcept(_M_tail(__in)._M_swap(_M_tail(__in)))) 8751: { 8751: using std::swap; 8751: swap(_M_head(*this), _M_head(__in)); 8751: _Inherited::_M_swap(_M_tail(__in)); 8751: } 8751: }; 8751: 8751: 8751: template 8751: struct _Tuple_impl<_Idx, _Head> 8751: : private _Head_base<_Idx, _Head> 8751: { 8751: template friend class _Tuple_impl; 8751: 8751: typedef _Head_base<_Idx, _Head> _Base; 8751: 8751: static constexpr _Head& 8751: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8751: 8751: static constexpr const _Head& 8751: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8751: 8751: constexpr _Tuple_impl() 8751: : _Base() { } 8751: 8751: explicit 8751: constexpr _Tuple_impl(const _Head& __head) 8751: : _Base(__head) { } 8751: 8751: template 8751: explicit 8751: constexpr _Tuple_impl(_UHead&& __head) 8751: : _Base(std::forward<_UHead>(__head)) { } 8751: 8751: constexpr _Tuple_impl(const _Tuple_impl&) = default; 8751: 8751: constexpr 8751: _Tuple_impl(_Tuple_impl&& __in) 8751: noexcept(is_nothrow_move_constructible<_Head>::value) 8751: : _Base(std::forward<_Head>(_M_head(__in))) { } 8751: 8751: template 8751: constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UHead>& __in) 8751: : _Base(_Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } 8751: 8751: template 8751: constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead>&& __in) 8751: : _Base(std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 8751: { } 8751: 8751: template 8751: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 8751: : _Base(__tag, __use_alloc<_Head>(__a)) { } 8751: 8751: template 8751: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8751: const _Head& __head) 8751: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } 8751: 8751: template 8751: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8751: _UHead&& __head) 8751: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8751: std::forward<_UHead>(__head)) { } 8751: 8751: template 8751: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8751: const _Tuple_impl& __in) 8751: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } 8751: 8751: template 8751: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8751: _Tuple_impl&& __in) 8751: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8751: std::forward<_Head>(_M_head(__in))) { } 8751: 8751: template 8751: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8751: const _Tuple_impl<_Idx, _UHead>& __in) 8751: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8751: _Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } 8751: 8751: template 8751: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8751: _Tuple_impl<_Idx, _UHead>&& __in) 8751: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8751: std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 8751: { } 8751: 8751: _Tuple_impl& 8751: operator=(const _Tuple_impl& __in) 8751: { 8751: _M_head(*this) = _M_head(__in); 8751: return *this; 8751: } 8751: 8751: _Tuple_impl& 8751: operator=(_Tuple_impl&& __in) 8751: noexcept(is_nothrow_move_assignable<_Head>::value) 8751: { 8751: _M_head(*this) = std::forward<_Head>(_M_head(__in)); 8751: return *this; 8751: } 8751: 8751: template 8751: _Tuple_impl& 8751: operator=(const _Tuple_impl<_Idx, _UHead>& __in) 8751: { 8751: _M_head(*this) = _Tuple_impl<_Idx, _UHead>::_M_head(__in); 8751: return *this; 8751: } 8751: 8751: template 8751: _Tuple_impl& 8751: operator=(_Tuple_impl<_Idx, _UHead>&& __in) 8751: { 8751: _M_head(*this) 8751: = std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in)); 8751: return *this; 8751: } 8751: 8751: protected: 8751: void 8751: _M_swap(_Tuple_impl& __in) 8751: noexcept(__is_nothrow_swappable<_Head>::value) 8751: { 8751: using std::swap; 8751: swap(_M_head(*this), _M_head(__in)); 8751: } 8751: }; 8751: 8751: 8751: 8751: template 8751: struct _TC 8751: { 8751: template 8751: static constexpr bool _ConstructibleTuple() 8751: { 8751: return __and_...>::value; 8751: } 8751: 8751: template 8751: static constexpr bool _ImplicitlyConvertibleTuple() 8751: { 8751: return __and_...>::value; 8751: } 8751: 8751: template 8751: static constexpr bool _MoveConstructibleTuple() 8751: { 8751: return __and_...>::value; 8751: } 8751: 8751: template 8751: static constexpr bool _ImplicitlyMoveConvertibleTuple() 8751: { 8751: return __and_...>::value; 8751: } 8751: 8751: template 8751: static constexpr bool _NonNestedTuple() 8751: { 8751: return __and_<__not_, 8751: typename remove_cv< 8751: typename remove_reference<_SrcTuple>::type 8751: >::type>>, 8751: __not_>, 8751: __not_> 8751: >::value; 8751: } 8751: template 8751: static constexpr bool _NotSameTuple() 8751: { 8751: return __not_, 8751: typename remove_const< 8751: typename remove_reference<_UElements...>::type 8751: >::type>>::value; 8751: } 8751: }; 8751: 8751: template 8751: struct _TC 8751: { 8751: template 8751: static constexpr bool _ConstructibleTuple() 8751: { 8751: return false; 8751: } 8751: 8751: template 8751: static constexpr bool _ImplicitlyConvertibleTuple() 8751: { 8751: return false; 8751: } 8751: 8751: template 8751: static constexpr bool _MoveConstructibleTuple() 8751: { 8751: return false; 8751: } 8751: 8751: template 8751: static constexpr bool _ImplicitlyMoveConvertibleTuple() 8751: { 8751: return false; 8751: } 8751: 8751: template 8751: static constexpr bool _NonNestedTuple() 8751: { 8751: return true; 8751: } 8751: template 8751: static constexpr bool _NotSameTuple() 8751: { 8751: return true; 8751: } 8751: }; 8751: 8751: 8751: template 8751: class tuple : public _Tuple_impl<0, _Elements...> 8751: { 8751: typedef _Tuple_impl<0, _Elements...> _Inherited; 8751: 8751: 8751: 8751: template 8751: struct _TC2 8751: { 8751: static constexpr bool _DefaultConstructibleTuple() 8751: { 8751: return __and_...>::value; 8751: } 8751: static constexpr bool _ImplicitlyDefaultConstructibleTuple() 8751: { 8751: return __and_<__is_implicitly_default_constructible<_Elements>...> 8751: ::value; 8751: } 8751: }; 8751: 8751: public: 8751: template:: 8751: _ImplicitlyDefaultConstructibleTuple(), 8751: bool>::type = true> 8751: constexpr tuple() 8751: : _Inherited() { } 8751: 8751: template:: 8751: _DefaultConstructibleTuple() 8751: && 8751: !_TC2<_Dummy>:: 8751: _ImplicitlyDefaultConstructibleTuple(), 8751: bool>::type = false> 8751: explicit constexpr tuple() 8751: : _Inherited() { } 8751: 8751: 8751: 8751: template using _TCC = 8751: _TC::value, 8751: _Elements...>; 8751: 8751: template::template 8751: _ConstructibleTuple<_Elements...>() 8751: && _TCC<_Dummy>::template 8751: _ImplicitlyConvertibleTuple<_Elements...>() 8751: && (sizeof...(_Elements) >= 1), 8751: bool>::type=true> 8751: constexpr tuple(const _Elements&... __elements) 8751: : _Inherited(__elements...) { } 8751: 8751: template::template 8751: _ConstructibleTuple<_Elements...>() 8751: && !_TCC<_Dummy>::template 8751: _ImplicitlyConvertibleTuple<_Elements...>() 8751: && (sizeof...(_Elements) >= 1), 8751: bool>::type=false> 8751: explicit constexpr tuple(const _Elements&... __elements) 8751: : _Inherited(__elements...) { } 8751: 8751: 8751: 8751: template using _TMC = 8751: _TC<(sizeof...(_Elements) == sizeof...(_UElements)) 8751: && (_TC<(sizeof...(_UElements)==1), _Elements...>:: 8751: template _NotSameTuple<_UElements...>()), 8751: _Elements...>; 8751: 8751: 8751: 8751: template using _TMCT = 8751: _TC<(sizeof...(_Elements) == sizeof...(_UElements)) 8751: && !is_same, 8751: tuple<_UElements...>>::value, 8751: _Elements...>; 8751: 8751: template::template 8751: _MoveConstructibleTuple<_UElements...>() 8751: && _TMC<_UElements...>::template 8751: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8751: && (sizeof...(_Elements) >= 1), 8751: bool>::type=true> 8751: constexpr tuple(_UElements&&... __elements) 8751: : _Inherited(std::forward<_UElements>(__elements)...) { } 8751: 8751: template::template 8751: _MoveConstructibleTuple<_UElements...>() 8751: && !_TMC<_UElements...>::template 8751: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8751: && (sizeof...(_Elements) >= 1), 8751: bool>::type=false> 8751: explicit constexpr tuple(_UElements&&... __elements) 8751: : _Inherited(std::forward<_UElements>(__elements)...) { } 8751: 8751: constexpr tuple(const tuple&) = default; 8751: 8751: constexpr tuple(tuple&&) = default; 8751: 8751: 8751: 8751: template using _TNTC = 8751: _TC::value && sizeof...(_Elements) == 1, 8751: _Elements...>; 8751: 8751: template::template 8751: _ConstructibleTuple<_UElements...>() 8751: && _TMCT<_UElements...>::template 8751: _ImplicitlyConvertibleTuple<_UElements...>() 8751: && _TNTC<_Dummy>::template 8751: _NonNestedTuple&>(), 8751: bool>::type=true> 8751: constexpr tuple(const tuple<_UElements...>& __in) 8751: : _Inherited(static_cast&>(__in)) 8751: { } 8751: 8751: template::template 8751: _ConstructibleTuple<_UElements...>() 8751: && !_TMCT<_UElements...>::template 8751: _ImplicitlyConvertibleTuple<_UElements...>() 8751: && _TNTC<_Dummy>::template 8751: _NonNestedTuple&>(), 8751: bool>::type=false> 8751: explicit constexpr tuple(const tuple<_UElements...>& __in) 8751: : _Inherited(static_cast&>(__in)) 8751: { } 8751: 8751: template::template 8751: _MoveConstructibleTuple<_UElements...>() 8751: && _TMCT<_UElements...>::template 8751: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8751: && _TNTC<_Dummy>::template 8751: _NonNestedTuple&&>(), 8751: bool>::type=true> 8751: constexpr tuple(tuple<_UElements...>&& __in) 8751: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } 8751: 8751: template::template 8751: _MoveConstructibleTuple<_UElements...>() 8751: && !_TMCT<_UElements...>::template 8751: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8751: && _TNTC<_Dummy>::template 8751: _NonNestedTuple&&>(), 8751: bool>::type=false> 8751: explicit constexpr tuple(tuple<_UElements...>&& __in) 8751: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } 8751: 8751: 8751: 8751: template 8751: tuple(allocator_arg_t __tag, const _Alloc& __a) 8751: : _Inherited(__tag, __a) { } 8751: 8751: template::template 8751: _ConstructibleTuple<_Elements...>() 8751: && _TCC<_Dummy>::template 8751: _ImplicitlyConvertibleTuple<_Elements...>(), 8751: bool>::type=true> 8751: tuple(allocator_arg_t __tag, const _Alloc& __a, 8751: const _Elements&... __elements) 8751: : _Inherited(__tag, __a, __elements...) { } 8751: 8751: template::template 8751: _ConstructibleTuple<_Elements...>() 8751: && !_TCC<_Dummy>::template 8751: _ImplicitlyConvertibleTuple<_Elements...>(), 8751: bool>::type=false> 8751: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8751: const _Elements&... __elements) 8751: : _Inherited(__tag, __a, __elements...) { } 8751: 8751: template::template 8751: _MoveConstructibleTuple<_UElements...>() 8751: && _TMC<_UElements...>::template 8751: _ImplicitlyMoveConvertibleTuple<_UElements...>(), 8751: bool>::type=true> 8751: tuple(allocator_arg_t __tag, const _Alloc& __a, 8751: _UElements&&... __elements) 8751: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 8751: { } 8751: 8751: template::template 8751: _MoveConstructibleTuple<_UElements...>() 8751: && !_TMC<_UElements...>::template 8751: _ImplicitlyMoveConvertibleTuple<_UElements...>(), 8751: bool>::type=false> 8751: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8751: _UElements&&... __elements) 8751: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 8751: { } 8751: 8751: template 8751: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 8751: : _Inherited(__tag, __a, static_cast(__in)) { } 8751: 8751: template 8751: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 8751: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 8751: 8751: template::template 8751: _ConstructibleTuple<_UElements...>() 8751: && _TMCT<_UElements...>::template 8751: _ImplicitlyConvertibleTuple<_UElements...>() 8751: && _TNTC<_Dummy>::template 8751: _NonNestedTuple&&>(), 8751: bool>::type=true> 8751: tuple(allocator_arg_t __tag, const _Alloc& __a, 8751: const tuple<_UElements...>& __in) 8751: : _Inherited(__tag, __a, 8751: static_cast&>(__in)) 8751: { } 8751: 8751: template::template 8751: _ConstructibleTuple<_UElements...>() 8751: && !_TMCT<_UElements...>::template 8751: _ImplicitlyConvertibleTuple<_UElements...>() 8751: && _TNTC<_Dummy>::template 8751: _NonNestedTuple&&>(), 8751: bool>::type=false> 8751: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8751: const tuple<_UElements...>& __in) 8751: : _Inherited(__tag, __a, 8751: static_cast&>(__in)) 8751: { } 8751: 8751: template::template 8751: _MoveConstructibleTuple<_UElements...>() 8751: && _TMCT<_UElements...>::template 8751: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8751: && _TNTC<_Dummy>::template 8751: _NonNestedTuple&&>(), 8751: bool>::type=true> 8751: tuple(allocator_arg_t __tag, const _Alloc& __a, 8751: tuple<_UElements...>&& __in) 8751: : _Inherited(__tag, __a, 8751: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 8751: { } 8751: 8751: template::template 8751: _MoveConstructibleTuple<_UElements...>() 8751: && !_TMCT<_UElements...>::template 8751: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8751: && _TNTC<_Dummy>::template 8751: _NonNestedTuple&&>(), 8751: bool>::type=false> 8751: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8751: tuple<_UElements...>&& __in) 8751: : _Inherited(__tag, __a, 8751: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 8751: { } 8751: 8751: tuple& 8751: operator=(const tuple& __in) 8751: { 8751: static_cast<_Inherited&>(*this) = __in; 8751: return *this; 8751: } 8751: 8751: tuple& 8751: operator=(tuple&& __in) 8751: noexcept(is_nothrow_move_assignable<_Inherited>::value) 8751: { 8751: static_cast<_Inherited&>(*this) = std::move(__in); 8751: return *this; 8751: } 8751: 8751: template 8751: typename 8751: enable_if::type 8751: operator=(const tuple<_UElements...>& __in) 8751: { 8751: static_cast<_Inherited&>(*this) = __in; 8751: return *this; 8751: } 8751: 8751: template 8751: typename 8751: enable_if::type 8751: operator=(tuple<_UElements...>&& __in) 8751: { 8751: static_cast<_Inherited&>(*this) = std::move(__in); 8751: return *this; 8751: } 8751: 8751: void 8751: swap(tuple& __in) 8751: noexcept(noexcept(__in._M_swap(__in))) 8751: { _Inherited::_M_swap(__in); } 8751: }; 8751: # 889 "/usr/include/c++/8/tuple" 3 8751: template<> 8751: class tuple<> 8751: { 8751: public: 8751: void swap(tuple&) noexcept { } 8751: 8751: 8751: tuple() = default; 8751: 8751: template 8751: tuple(allocator_arg_t, const _Alloc&) { } 8751: template 8751: tuple(allocator_arg_t, const _Alloc&, const tuple&) { } 8751: }; 8751: 8751: 8751: 8751: template 8751: class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2> 8751: { 8751: typedef _Tuple_impl<0, _T1, _T2> _Inherited; 8751: 8751: public: 8751: template , 8751: __is_implicitly_default_constructible<_U2>> 8751: ::value, bool>::type = true> 8751: 8751: constexpr tuple() 8751: : _Inherited() { } 8751: 8751: template , 8751: is_default_constructible<_U2>, 8751: __not_< 8751: __and_<__is_implicitly_default_constructible<_U1>, 8751: __is_implicitly_default_constructible<_U2>>>> 8751: ::value, bool>::type = false> 8751: 8751: explicit constexpr tuple() 8751: : _Inherited() { } 8751: 8751: 8751: 8751: template using _TCC = 8751: _TC::value, _T1, _T2>; 8751: 8751: template::template 8751: _ConstructibleTuple<_T1, _T2>() 8751: && _TCC<_Dummy>::template 8751: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8751: bool>::type = true> 8751: constexpr tuple(const _T1& __a1, const _T2& __a2) 8751: : _Inherited(__a1, __a2) { } 8751: 8751: template::template 8751: _ConstructibleTuple<_T1, _T2>() 8751: && !_TCC<_Dummy>::template 8751: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8751: bool>::type = false> 8751: explicit constexpr tuple(const _T1& __a1, const _T2& __a2) 8751: : _Inherited(__a1, __a2) { } 8751: 8751: 8751: 8751: using _TMC = _TC; 8751: 8751: template() 8751: && _TMC::template 8751: _ImplicitlyMoveConvertibleTuple<_U1, _U2>() 8751: && !is_same::type, 8751: allocator_arg_t>::value, 8751: bool>::type = true> 8751: constexpr tuple(_U1&& __a1, _U2&& __a2) 8751: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } 8751: 8751: template() 8751: && !_TMC::template 8751: _ImplicitlyMoveConvertibleTuple<_U1, _U2>() 8751: && !is_same::type, 8751: allocator_arg_t>::value, 8751: bool>::type = false> 8751: explicit constexpr tuple(_U1&& __a1, _U2&& __a2) 8751: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } 8751: 8751: constexpr tuple(const tuple&) = default; 8751: 8751: constexpr tuple(tuple&&) = default; 8751: 8751: template() 8751: && _TMC::template 8751: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8751: bool>::type = true> 8751: constexpr tuple(const tuple<_U1, _U2>& __in) 8751: : _Inherited(static_cast&>(__in)) { } 8751: 8751: template() 8751: && !_TMC::template 8751: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8751: bool>::type = false> 8751: explicit constexpr tuple(const tuple<_U1, _U2>& __in) 8751: : _Inherited(static_cast&>(__in)) { } 8751: 8751: template() 8751: && _TMC::template 8751: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8751: bool>::type = true> 8751: constexpr tuple(tuple<_U1, _U2>&& __in) 8751: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } 8751: 8751: template() 8751: && !_TMC::template 8751: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8751: bool>::type = false> 8751: explicit constexpr tuple(tuple<_U1, _U2>&& __in) 8751: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } 8751: 8751: template() 8751: && _TMC::template 8751: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8751: bool>::type = true> 8751: constexpr tuple(const pair<_U1, _U2>& __in) 8751: : _Inherited(__in.first, __in.second) { } 8751: 8751: template() 8751: && !_TMC::template 8751: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8751: bool>::type = false> 8751: explicit constexpr tuple(const pair<_U1, _U2>& __in) 8751: : _Inherited(__in.first, __in.second) { } 8751: 8751: template() 8751: && _TMC::template 8751: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8751: bool>::type = true> 8751: constexpr tuple(pair<_U1, _U2>&& __in) 8751: : _Inherited(std::forward<_U1>(__in.first), 8751: std::forward<_U2>(__in.second)) { } 8751: 8751: template() 8751: && !_TMC::template 8751: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8751: bool>::type = false> 8751: explicit constexpr tuple(pair<_U1, _U2>&& __in) 8751: : _Inherited(std::forward<_U1>(__in.first), 8751: std::forward<_U2>(__in.second)) { } 8751: 8751: 8751: 8751: template 8751: tuple(allocator_arg_t __tag, const _Alloc& __a) 8751: : _Inherited(__tag, __a) { } 8751: 8751: template::template 8751: _ConstructibleTuple<_T1, _T2>() 8751: && _TCC<_Dummy>::template 8751: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8751: bool>::type=true> 8751: 8751: tuple(allocator_arg_t __tag, const _Alloc& __a, 8751: const _T1& __a1, const _T2& __a2) 8751: : _Inherited(__tag, __a, __a1, __a2) { } 8751: 8751: template::template 8751: _ConstructibleTuple<_T1, _T2>() 8751: && !_TCC<_Dummy>::template 8751: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8751: bool>::type=false> 8751: 8751: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8751: const _T1& __a1, const _T2& __a2) 8751: : _Inherited(__tag, __a, __a1, __a2) { } 8751: 8751: template() 8751: && _TMC::template 8751: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8751: bool>::type = true> 8751: tuple(allocator_arg_t __tag, const _Alloc& __a, _U1&& __a1, _U2&& __a2) 8751: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 8751: std::forward<_U2>(__a2)) { } 8751: 8751: template() 8751: && !_TMC::template 8751: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8751: bool>::type = false> 8751: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8751: _U1&& __a1, _U2&& __a2) 8751: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 8751: std::forward<_U2>(__a2)) { } 8751: 8751: template 8751: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 8751: : _Inherited(__tag, __a, static_cast(__in)) { } 8751: 8751: template 8751: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 8751: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 8751: 8751: template() 8751: && _TMC::template 8751: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8751: bool>::type = true> 8751: tuple(allocator_arg_t __tag, const _Alloc& __a, 8751: const tuple<_U1, _U2>& __in) 8751: : _Inherited(__tag, __a, 8751: static_cast&>(__in)) 8751: { } 8751: 8751: template() 8751: && !_TMC::template 8751: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8751: bool>::type = false> 8751: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8751: const tuple<_U1, _U2>& __in) 8751: : _Inherited(__tag, __a, 8751: static_cast&>(__in)) 8751: { } 8751: 8751: template() 8751: && _TMC::template 8751: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8751: bool>::type = true> 8751: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_U1, _U2>&& __in) 8751: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 8751: { } 8751: 8751: template() 8751: && !_TMC::template 8751: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8751: bool>::type = false> 8751: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8751: tuple<_U1, _U2>&& __in) 8751: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 8751: { } 8751: 8751: template() 8751: && _TMC::template 8751: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8751: bool>::type = true> 8751: tuple(allocator_arg_t __tag, const _Alloc& __a, 8751: const pair<_U1, _U2>& __in) 8751: : _Inherited(__tag, __a, __in.first, __in.second) { } 8751: 8751: template() 8751: && !_TMC::template 8751: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8751: bool>::type = false> 8751: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8751: const pair<_U1, _U2>& __in) 8751: : _Inherited(__tag, __a, __in.first, __in.second) { } 8751: 8751: template() 8751: && _TMC::template 8751: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8751: bool>::type = true> 8751: tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __in) 8751: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 8751: std::forward<_U2>(__in.second)) { } 8751: 8751: template() 8751: && !_TMC::template 8751: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8751: bool>::type = false> 8751: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8751: pair<_U1, _U2>&& __in) 8751: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 8751: std::forward<_U2>(__in.second)) { } 8751: 8751: tuple& 8751: operator=(const tuple& __in) 8751: { 8751: static_cast<_Inherited&>(*this) = __in; 8751: return *this; 8751: } 8751: 8751: tuple& 8751: operator=(tuple&& __in) 8751: noexcept(is_nothrow_move_assignable<_Inherited>::value) 8751: { 8751: static_cast<_Inherited&>(*this) = std::move(__in); 8751: return *this; 8751: } 8751: 8751: template 8751: tuple& 8751: operator=(const tuple<_U1, _U2>& __in) 8751: { 8751: static_cast<_Inherited&>(*this) = __in; 8751: return *this; 8751: } 8751: 8751: template 8751: tuple& 8751: operator=(tuple<_U1, _U2>&& __in) 8751: { 8751: static_cast<_Inherited&>(*this) = std::move(__in); 8751: return *this; 8751: } 8751: 8751: template 8751: tuple& 8751: operator=(const pair<_U1, _U2>& __in) 8751: { 8751: this->_M_head(*this) = __in.first; 8751: this->_M_tail(*this)._M_head(*this) = __in.second; 8751: return *this; 8751: } 8751: 8751: template 8751: tuple& 8751: operator=(pair<_U1, _U2>&& __in) 8751: { 8751: this->_M_head(*this) = std::forward<_U1>(__in.first); 8751: this->_M_tail(*this)._M_head(*this) = std::forward<_U2>(__in.second); 8751: return *this; 8751: } 8751: 8751: void 8751: swap(tuple& __in) 8751: noexcept(noexcept(__in._M_swap(__in))) 8751: { _Inherited::_M_swap(__in); } 8751: }; 8751: 8751: 8751: 8751: template 8751: struct tuple_size> 8751: : public integral_constant { }; 8751: # 1278 "/usr/include/c++/8/tuple" 3 8751: template 8751: struct tuple_element<__i, tuple<_Head, _Tail...> > 8751: : tuple_element<__i - 1, tuple<_Tail...> > { }; 8751: 8751: 8751: 8751: 8751: template 8751: struct tuple_element<0, tuple<_Head, _Tail...> > 8751: { 8751: typedef _Head type; 8751: }; 8751: 8751: 8751: 8751: 8751: template 8751: struct tuple_element<__i, tuple<>> 8751: { 8751: static_assert(__i < tuple_size>::value, 8751: "tuple index is in range"); 8751: }; 8751: 8751: template 8751: constexpr _Head& 8751: __get_helper(_Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 8751: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 8751: 8751: template 8751: constexpr const _Head& 8751: __get_helper(const _Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 8751: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 8751: 8751: 8751: template 8751: constexpr __tuple_element_t<__i, tuple<_Elements...>>& 8751: get(tuple<_Elements...>& __t) noexcept 8751: { return std::__get_helper<__i>(__t); } 8751: 8751: 8751: template 8751: constexpr const __tuple_element_t<__i, tuple<_Elements...>>& 8751: get(const tuple<_Elements...>& __t) noexcept 8751: { return std::__get_helper<__i>(__t); } 8751: 8751: 8751: template 8751: constexpr __tuple_element_t<__i, tuple<_Elements...>>&& 8751: get(tuple<_Elements...>&& __t) noexcept 8751: { 8751: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 8751: return std::forward<__element_type&&>(std::get<__i>(__t)); 8751: } 8751: 8751: 8751: template 8751: constexpr const __tuple_element_t<__i, tuple<_Elements...>>&& 8751: get(const tuple<_Elements...>&& __t) noexcept 8751: { 8751: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 8751: return std::forward(std::get<__i>(__t)); 8751: } 8751: # 1382 "/usr/include/c++/8/tuple" 3 8751: template 8751: struct __tuple_compare 8751: { 8751: static constexpr bool 8751: __eq(const _Tp& __t, const _Up& __u) 8751: { 8751: return bool(std::get<__i>(__t) == std::get<__i>(__u)) 8751: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__eq(__t, __u); 8751: } 8751: 8751: static constexpr bool 8751: __less(const _Tp& __t, const _Up& __u) 8751: { 8751: return bool(std::get<__i>(__t) < std::get<__i>(__u)) 8751: || (!bool(std::get<__i>(__u) < std::get<__i>(__t)) 8751: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__less(__t, __u)); 8751: } 8751: }; 8751: 8751: template 8751: struct __tuple_compare<_Tp, _Up, __size, __size> 8751: { 8751: static constexpr bool 8751: __eq(const _Tp&, const _Up&) { return true; } 8751: 8751: static constexpr bool 8751: __less(const _Tp&, const _Up&) { return false; } 8751: }; 8751: 8751: template 8751: constexpr bool 8751: operator==(const tuple<_TElements...>& __t, 8751: const tuple<_UElements...>& __u) 8751: { 8751: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 8751: "tuple objects can only be compared if they have equal sizes."); 8751: using __compare = __tuple_compare, 8751: tuple<_UElements...>, 8751: 0, sizeof...(_TElements)>; 8751: return __compare::__eq(__t, __u); 8751: } 8751: 8751: template 8751: constexpr bool 8751: operator<(const tuple<_TElements...>& __t, 8751: const tuple<_UElements...>& __u) 8751: { 8751: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 8751: "tuple objects can only be compared if they have equal sizes."); 8751: using __compare = __tuple_compare, 8751: tuple<_UElements...>, 8751: 0, sizeof...(_TElements)>; 8751: return __compare::__less(__t, __u); 8751: } 8751: 8751: template 8751: constexpr bool 8751: operator!=(const tuple<_TElements...>& __t, 8751: const tuple<_UElements...>& __u) 8751: { return !(__t == __u); } 8751: 8751: template 8751: constexpr bool 8751: operator>(const tuple<_TElements...>& __t, 8751: const tuple<_UElements...>& __u) 8751: { return __u < __t; } 8751: 8751: template 8751: constexpr bool 8751: operator<=(const tuple<_TElements...>& __t, 8751: const tuple<_UElements...>& __u) 8751: { return !(__u < __t); } 8751: 8751: template 8751: constexpr bool 8751: operator>=(const tuple<_TElements...>& __t, 8751: const tuple<_UElements...>& __u) 8751: { return !(__t < __u); } 8751: 8751: 8751: template 8751: constexpr tuple::__type...> 8751: make_tuple(_Elements&&... __args) 8751: { 8751: typedef tuple::__type...> 8751: __result_type; 8751: return __result_type(std::forward<_Elements>(__args)...); 8751: } 8751: 8751: 8751: 8751: template 8751: constexpr tuple<_Elements&&...> 8751: forward_as_tuple(_Elements&&... __args) noexcept 8751: { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...); } 8751: 8751: template 8751: struct __make_tuple_impl; 8751: 8751: template 8751: struct __make_tuple_impl<_Idx, tuple<_Tp...>, _Tuple, _Nm> 8751: : __make_tuple_impl<_Idx + 1, 8751: tuple<_Tp..., __tuple_element_t<_Idx, _Tuple>>, 8751: _Tuple, _Nm> 8751: { }; 8751: 8751: template 8751: struct __make_tuple_impl<_Nm, tuple<_Tp...>, _Tuple, _Nm> 8751: { 8751: typedef tuple<_Tp...> __type; 8751: }; 8751: 8751: template 8751: struct __do_make_tuple 8751: : __make_tuple_impl<0, tuple<>, _Tuple, std::tuple_size<_Tuple>::value> 8751: { }; 8751: 8751: 8751: template 8751: struct __make_tuple 8751: : public __do_make_tuple::type>::type> 8751: { }; 8751: 8751: 8751: template 8751: struct __combine_tuples; 8751: 8751: template<> 8751: struct __combine_tuples<> 8751: { 8751: typedef tuple<> __type; 8751: }; 8751: 8751: template 8751: struct __combine_tuples> 8751: { 8751: typedef tuple<_Ts...> __type; 8751: }; 8751: 8751: template 8751: struct __combine_tuples, tuple<_T2s...>, _Rem...> 8751: { 8751: typedef typename __combine_tuples, 8751: _Rem...>::__type __type; 8751: }; 8751: 8751: 8751: template 8751: struct __tuple_cat_result 8751: { 8751: typedef typename __combine_tuples 8751: ::__type...>::__type __type; 8751: }; 8751: 8751: 8751: 8751: template 8751: struct __make_1st_indices; 8751: 8751: template<> 8751: struct __make_1st_indices<> 8751: { 8751: typedef std::_Index_tuple<> __type; 8751: }; 8751: 8751: template 8751: struct __make_1st_indices<_Tp, _Tpls...> 8751: { 8751: typedef typename std::_Build_index_tuple::type>::value>::__type __type; 8751: }; 8751: 8751: 8751: 8751: 8751: template 8751: struct __tuple_concater; 8751: 8751: template 8751: struct __tuple_concater<_Ret, std::_Index_tuple<_Is...>, _Tp, _Tpls...> 8751: { 8751: template 8751: static constexpr _Ret 8751: _S_do(_Tp&& __tp, _Tpls&&... __tps, _Us&&... __us) 8751: { 8751: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 8751: typedef __tuple_concater<_Ret, __idx, _Tpls...> __next; 8751: return __next::_S_do(std::forward<_Tpls>(__tps)..., 8751: std::forward<_Us>(__us)..., 8751: std::get<_Is>(std::forward<_Tp>(__tp))...); 8751: } 8751: }; 8751: 8751: template 8751: struct __tuple_concater<_Ret, std::_Index_tuple<>> 8751: { 8751: template 8751: static constexpr _Ret 8751: _S_do(_Us&&... __us) 8751: { 8751: return _Ret(std::forward<_Us>(__us)...); 8751: } 8751: }; 8751: 8751: 8751: template...>::value>::type> 8751: constexpr auto 8751: tuple_cat(_Tpls&&... __tpls) 8751: -> typename __tuple_cat_result<_Tpls...>::__type 8751: { 8751: typedef typename __tuple_cat_result<_Tpls...>::__type __ret; 8751: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 8751: typedef __tuple_concater<__ret, __idx, _Tpls...> __concater; 8751: return __concater::_S_do(std::forward<_Tpls>(__tpls)...); 8751: } 8751: 8751: 8751: 8751: 8751: template 8751: constexpr tuple<_Elements&...> 8751: tie(_Elements&... __args) noexcept 8751: { return tuple<_Elements&...>(__args...); } 8751: 8751: 8751: template 8751: inline 8751: 8751: 8751: typename enable_if<__and_<__is_swappable<_Elements>...>::value 8751: >::type 8751: 8751: 8751: 8751: swap(tuple<_Elements...>& __x, tuple<_Elements...>& __y) 8751: noexcept(noexcept(__x.swap(__y))) 8751: { __x.swap(__y); } 8751: 8751: 8751: template 8751: typename enable_if...>::value>::type 8751: swap(tuple<_Elements...>&, tuple<_Elements...>&) = delete; 8751: 8751: 8751: 8751: 8751: 8751: 8751: struct _Swallow_assign 8751: { 8751: template 8751: const _Swallow_assign& 8751: operator=(const _Tp&) const 8751: { return *this; } 8751: }; 8751: 8751: 8751: 8751: constexpr _Swallow_assign ignore{}; 8751: 8751: 8751: template 8751: struct uses_allocator, _Alloc> : true_type { }; 8751: 8751: 8751: template 8751: template 8751: inline 8751: pair<_T1, _T2>:: 8751: pair(piecewise_construct_t, 8751: tuple<_Args1...> __first, tuple<_Args2...> __second) 8751: : pair(__first, __second, 8751: typename _Build_index_tuple::__type(), 8751: typename _Build_index_tuple::__type()) 8751: { } 8751: 8751: template 8751: template 8751: inline 8751: pair<_T1, _T2>:: 8751: pair(tuple<_Args1...>& __tuple1, tuple<_Args2...>& __tuple2, 8751: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>) 8751: : first(std::forward<_Args1>(std::get<_Indexes1>(__tuple1))...), 8751: second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...) 8751: { } 8751: # 1711 "/usr/include/c++/8/tuple" 3 8751: 8751: } 8751: # 64 "/usr/include/c++/8/bits/stl_map.h" 2 3 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: template 8751: class multimap; 8751: # 98 "/usr/include/c++/8/bits/stl_map.h" 3 8751: template , 8751: typename _Alloc = std::allocator > > 8751: class map 8751: { 8751: public: 8751: typedef _Key key_type; 8751: typedef _Tp mapped_type; 8751: typedef std::pair value_type; 8751: typedef _Compare key_compare; 8751: typedef _Alloc allocator_type; 8751: 8751: private: 8751: # 126 "/usr/include/c++/8/bits/stl_map.h" 3 8751: public: 8751: class value_compare 8751: : public std::binary_function 8751: { 8751: friend class map<_Key, _Tp, _Compare, _Alloc>; 8751: protected: 8751: _Compare comp; 8751: 8751: value_compare(_Compare __c) 8751: : comp(__c) { } 8751: 8751: public: 8751: bool operator()(const value_type& __x, const value_type& __y) const 8751: { return comp(__x.first, __y.first); } 8751: }; 8751: 8751: private: 8751: 8751: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8751: rebind::other _Pair_alloc_type; 8751: 8751: typedef _Rb_tree, 8751: key_compare, _Pair_alloc_type> _Rep_type; 8751: 8751: 8751: _Rep_type _M_t; 8751: 8751: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 8751: 8751: public: 8751: 8751: 8751: typedef typename _Alloc_traits::pointer pointer; 8751: typedef typename _Alloc_traits::const_pointer const_pointer; 8751: typedef typename _Alloc_traits::reference reference; 8751: typedef typename _Alloc_traits::const_reference const_reference; 8751: typedef typename _Rep_type::iterator iterator; 8751: typedef typename _Rep_type::const_iterator const_iterator; 8751: typedef typename _Rep_type::size_type size_type; 8751: typedef typename _Rep_type::difference_type difference_type; 8751: typedef typename _Rep_type::reverse_iterator reverse_iterator; 8751: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 8751: # 183 "/usr/include/c++/8/bits/stl_map.h" 3 8751: map() = default; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: explicit 8751: map(const _Compare& __comp, 8751: const allocator_type& __a = allocator_type()) 8751: : _M_t(__comp, _Pair_alloc_type(__a)) { } 8751: # 205 "/usr/include/c++/8/bits/stl_map.h" 3 8751: map(const map&) = default; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: map(map&&) = default; 8751: # 226 "/usr/include/c++/8/bits/stl_map.h" 3 8751: map(initializer_list __l, 8751: const _Compare& __comp = _Compare(), 8751: const allocator_type& __a = allocator_type()) 8751: : _M_t(__comp, _Pair_alloc_type(__a)) 8751: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 8751: 8751: 8751: explicit 8751: map(const allocator_type& __a) 8751: : _M_t(_Compare(), _Pair_alloc_type(__a)) { } 8751: 8751: 8751: map(const map& __m, const allocator_type& __a) 8751: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 8751: 8751: 8751: map(map&& __m, const allocator_type& __a) 8751: noexcept(is_nothrow_copy_constructible<_Compare>::value 8751: && _Alloc_traits::_S_always_equal()) 8751: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 8751: 8751: 8751: map(initializer_list __l, const allocator_type& __a) 8751: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8751: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 8751: 8751: 8751: template 8751: map(_InputIterator __first, _InputIterator __last, 8751: const allocator_type& __a) 8751: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8751: { _M_t._M_insert_unique(__first, __last); } 8751: # 270 "/usr/include/c++/8/bits/stl_map.h" 3 8751: template 8751: map(_InputIterator __first, _InputIterator __last) 8751: : _M_t() 8751: { _M_t._M_insert_unique(__first, __last); } 8751: # 287 "/usr/include/c++/8/bits/stl_map.h" 3 8751: template 8751: map(_InputIterator __first, _InputIterator __last, 8751: const _Compare& __comp, 8751: const allocator_type& __a = allocator_type()) 8751: : _M_t(__comp, _Pair_alloc_type(__a)) 8751: { _M_t._M_insert_unique(__first, __last); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ~map() = default; 8751: # 316 "/usr/include/c++/8/bits/stl_map.h" 3 8751: map& 8751: operator=(const map&) = default; 8751: 8751: 8751: map& 8751: operator=(map&&) = default; 8751: # 334 "/usr/include/c++/8/bits/stl_map.h" 3 8751: map& 8751: operator=(initializer_list __l) 8751: { 8751: _M_t._M_assign_unique(__l.begin(), __l.end()); 8751: return *this; 8751: } 8751: 8751: 8751: 8751: allocator_type 8751: get_allocator() const noexcept 8751: { return allocator_type(_M_t.get_allocator()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: iterator 8751: begin() noexcept 8751: { return _M_t.begin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: begin() const noexcept 8751: { return _M_t.begin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: iterator 8751: end() noexcept 8751: { return _M_t.end(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: end() const noexcept 8751: { return _M_t.end(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: rbegin() noexcept 8751: { return _M_t.rbegin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: rbegin() const noexcept 8751: { return _M_t.rbegin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: rend() noexcept 8751: { return _M_t.rend(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: rend() const noexcept 8751: { return _M_t.rend(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: cbegin() const noexcept 8751: { return _M_t.begin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: cend() const noexcept 8751: { return _M_t.end(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: crbegin() const noexcept 8751: { return _M_t.rbegin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: crend() const noexcept 8751: { return _M_t.rend(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: bool 8751: empty() const noexcept 8751: { return _M_t.empty(); } 8751: 8751: 8751: size_type 8751: size() const noexcept 8751: { return _M_t.size(); } 8751: 8751: 8751: size_type 8751: max_size() const noexcept 8751: { return _M_t.max_size(); } 8751: # 489 "/usr/include/c++/8/bits/stl_map.h" 3 8751: mapped_type& 8751: operator[](const key_type& __k) 8751: { 8751: 8751: 8751: 8751: iterator __i = lower_bound(__k); 8751: 8751: if (__i == end() || key_comp()(__k, (*__i).first)) 8751: 8751: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 8751: std::tuple(__k), 8751: std::tuple<>()); 8751: 8751: 8751: 8751: return (*__i).second; 8751: } 8751: 8751: 8751: mapped_type& 8751: operator[](key_type&& __k) 8751: { 8751: 8751: 8751: 8751: iterator __i = lower_bound(__k); 8751: 8751: if (__i == end() || key_comp()(__k, (*__i).first)) 8751: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 8751: std::forward_as_tuple(std::move(__k)), 8751: std::tuple<>()); 8751: return (*__i).second; 8751: } 8751: # 534 "/usr/include/c++/8/bits/stl_map.h" 3 8751: mapped_type& 8751: at(const key_type& __k) 8751: { 8751: iterator __i = lower_bound(__k); 8751: if (__i == end() || key_comp()(__k, (*__i).first)) 8751: __throw_out_of_range(("map::at")); 8751: return (*__i).second; 8751: } 8751: 8751: const mapped_type& 8751: at(const key_type& __k) const 8751: { 8751: const_iterator __i = lower_bound(__k); 8751: if (__i == end() || key_comp()(__k, (*__i).first)) 8751: __throw_out_of_range(("map::at")); 8751: return (*__i).second; 8751: } 8751: # 572 "/usr/include/c++/8/bits/stl_map.h" 3 8751: template 8751: std::pair 8751: emplace(_Args&&... __args) 8751: { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); } 8751: # 602 "/usr/include/c++/8/bits/stl_map.h" 3 8751: template 8751: iterator 8751: emplace_hint(const_iterator __pos, _Args&&... __args) 8751: { 8751: return _M_t._M_emplace_hint_unique(__pos, 8751: std::forward<_Args>(__args)...); 8751: } 8751: # 800 "/usr/include/c++/8/bits/stl_map.h" 3 8751: std::pair 8751: insert(const value_type& __x) 8751: { return _M_t._M_insert_unique(__x); } 8751: 8751: 8751: 8751: 8751: std::pair 8751: insert(value_type&& __x) 8751: { return _M_t._M_insert_unique(std::move(__x)); } 8751: 8751: template::value>::type> 8751: std::pair 8751: insert(_Pair&& __x) 8751: { return _M_t._M_insert_unique(std::forward<_Pair>(__x)); } 8751: # 828 "/usr/include/c++/8/bits/stl_map.h" 3 8751: void 8751: insert(std::initializer_list __list) 8751: { insert(__list.begin(), __list.end()); } 8751: # 857 "/usr/include/c++/8/bits/stl_map.h" 3 8751: iterator 8751: 8751: insert(const_iterator __position, const value_type& __x) 8751: 8751: 8751: 8751: { return _M_t._M_insert_unique_(__position, __x); } 8751: 8751: 8751: 8751: 8751: iterator 8751: insert(const_iterator __position, value_type&& __x) 8751: { return _M_t._M_insert_unique_(__position, std::move(__x)); } 8751: 8751: template::value>::type> 8751: iterator 8751: insert(const_iterator __position, _Pair&& __x) 8751: { return _M_t._M_insert_unique_(__position, 8751: std::forward<_Pair>(__x)); } 8751: # 890 "/usr/include/c++/8/bits/stl_map.h" 3 8751: template 8751: void 8751: insert(_InputIterator __first, _InputIterator __last) 8751: { _M_t._M_insert_unique(__first, __last); } 8751: # 1030 "/usr/include/c++/8/bits/stl_map.h" 3 8751: iterator 8751: erase(const_iterator __position) 8751: { return _M_t.erase(__position); } 8751: 8751: 8751: __attribute ((__abi_tag__ ("cxx11"))) 8751: iterator 8751: erase(iterator __position) 8751: { return _M_t.erase(__position); } 8751: # 1067 "/usr/include/c++/8/bits/stl_map.h" 3 8751: size_type 8751: erase(const key_type& __x) 8751: { return _M_t.erase(__x); } 8751: # 1087 "/usr/include/c++/8/bits/stl_map.h" 3 8751: iterator 8751: erase(const_iterator __first, const_iterator __last) 8751: { return _M_t.erase(__first, __last); } 8751: # 1121 "/usr/include/c++/8/bits/stl_map.h" 3 8751: void 8751: swap(map& __x) 8751: noexcept(__is_nothrow_swappable<_Compare>::value) 8751: { _M_t.swap(__x._M_t); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: void 8751: clear() noexcept 8751: { _M_t.clear(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: key_compare 8751: key_comp() const 8751: { return _M_t.key_comp(); } 8751: 8751: 8751: 8751: 8751: 8751: value_compare 8751: value_comp() const 8751: { return value_compare(_M_t.key_comp()); } 8751: # 1168 "/usr/include/c++/8/bits/stl_map.h" 3 8751: iterator 8751: find(const key_type& __x) 8751: { return _M_t.find(__x); } 8751: # 1193 "/usr/include/c++/8/bits/stl_map.h" 3 8751: const_iterator 8751: find(const key_type& __x) const 8751: { return _M_t.find(__x); } 8751: # 1214 "/usr/include/c++/8/bits/stl_map.h" 3 8751: size_type 8751: count(const key_type& __x) const 8751: { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } 8751: # 1238 "/usr/include/c++/8/bits/stl_map.h" 3 8751: iterator 8751: lower_bound(const key_type& __x) 8751: { return _M_t.lower_bound(__x); } 8751: # 1263 "/usr/include/c++/8/bits/stl_map.h" 3 8751: const_iterator 8751: lower_bound(const key_type& __x) const 8751: { return _M_t.lower_bound(__x); } 8751: # 1283 "/usr/include/c++/8/bits/stl_map.h" 3 8751: iterator 8751: upper_bound(const key_type& __x) 8751: { return _M_t.upper_bound(__x); } 8751: # 1303 "/usr/include/c++/8/bits/stl_map.h" 3 8751: const_iterator 8751: upper_bound(const key_type& __x) const 8751: { return _M_t.upper_bound(__x); } 8751: # 1332 "/usr/include/c++/8/bits/stl_map.h" 3 8751: std::pair 8751: equal_range(const key_type& __x) 8751: { return _M_t.equal_range(__x); } 8751: # 1361 "/usr/include/c++/8/bits/stl_map.h" 3 8751: std::pair 8751: equal_range(const key_type& __x) const 8751: { return _M_t.equal_range(__x); } 8751: # 1378 "/usr/include/c++/8/bits/stl_map.h" 3 8751: template 8751: friend bool 8751: operator==(const map<_K1, _T1, _C1, _A1>&, 8751: const map<_K1, _T1, _C1, _A1>&); 8751: 8751: template 8751: friend bool 8751: operator<(const map<_K1, _T1, _C1, _A1>&, 8751: const map<_K1, _T1, _C1, _A1>&); 8751: }; 8751: # 1433 "/usr/include/c++/8/bits/stl_map.h" 3 8751: template 8751: inline bool 8751: operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8751: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8751: { return __x._M_t == __y._M_t; } 8751: # 1450 "/usr/include/c++/8/bits/stl_map.h" 3 8751: template 8751: inline bool 8751: operator<(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8751: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8751: { return __x._M_t < __y._M_t; } 8751: 8751: 8751: template 8751: inline bool 8751: operator!=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8751: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8751: { return !(__x == __y); } 8751: 8751: 8751: template 8751: inline bool 8751: operator>(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8751: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8751: { return __y < __x; } 8751: 8751: 8751: template 8751: inline bool 8751: operator<=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8751: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8751: { return !(__y < __x); } 8751: 8751: 8751: template 8751: inline bool 8751: operator>=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8751: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8751: { return !(__x < __y); } 8751: 8751: 8751: template 8751: inline void 8751: swap(map<_Key, _Tp, _Compare, _Alloc>& __x, 8751: map<_Key, _Tp, _Compare, _Alloc>& __y) 8751: noexcept(noexcept(__x.swap(__y))) 8751: { __x.swap(__y); } 8751: 8751: 8751: # 1515 "/usr/include/c++/8/bits/stl_map.h" 3 8751: 8751: } 8751: # 62 "/usr/include/c++/8/map" 2 3 8751: # 1 "/usr/include/c++/8/bits/stl_multimap.h" 1 3 8751: # 64 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: template 8751: class map; 8751: # 96 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: template , 8751: typename _Alloc = std::allocator > > 8751: class multimap 8751: { 8751: public: 8751: typedef _Key key_type; 8751: typedef _Tp mapped_type; 8751: typedef std::pair value_type; 8751: typedef _Compare key_compare; 8751: typedef _Alloc allocator_type; 8751: 8751: private: 8751: # 125 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: public: 8751: class value_compare 8751: : public std::binary_function 8751: { 8751: friend class multimap<_Key, _Tp, _Compare, _Alloc>; 8751: protected: 8751: _Compare comp; 8751: 8751: value_compare(_Compare __c) 8751: : comp(__c) { } 8751: 8751: public: 8751: bool operator()(const value_type& __x, const value_type& __y) const 8751: { return comp(__x.first, __y.first); } 8751: }; 8751: 8751: private: 8751: 8751: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8751: rebind::other _Pair_alloc_type; 8751: 8751: typedef _Rb_tree, 8751: key_compare, _Pair_alloc_type> _Rep_type; 8751: 8751: _Rep_type _M_t; 8751: 8751: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 8751: 8751: public: 8751: 8751: 8751: typedef typename _Alloc_traits::pointer pointer; 8751: typedef typename _Alloc_traits::const_pointer const_pointer; 8751: typedef typename _Alloc_traits::reference reference; 8751: typedef typename _Alloc_traits::const_reference const_reference; 8751: typedef typename _Rep_type::iterator iterator; 8751: typedef typename _Rep_type::const_iterator const_iterator; 8751: typedef typename _Rep_type::size_type size_type; 8751: typedef typename _Rep_type::difference_type difference_type; 8751: typedef typename _Rep_type::reverse_iterator reverse_iterator; 8751: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 8751: # 180 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: multimap() = default; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: explicit 8751: multimap(const _Compare& __comp, 8751: const allocator_type& __a = allocator_type()) 8751: : _M_t(__comp, _Pair_alloc_type(__a)) { } 8751: # 202 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: multimap(const multimap&) = default; 8751: # 211 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: multimap(multimap&&) = default; 8751: # 223 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: multimap(initializer_list __l, 8751: const _Compare& __comp = _Compare(), 8751: const allocator_type& __a = allocator_type()) 8751: : _M_t(__comp, _Pair_alloc_type(__a)) 8751: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 8751: 8751: 8751: explicit 8751: multimap(const allocator_type& __a) 8751: : _M_t(_Compare(), _Pair_alloc_type(__a)) { } 8751: 8751: 8751: multimap(const multimap& __m, const allocator_type& __a) 8751: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 8751: 8751: 8751: multimap(multimap&& __m, const allocator_type& __a) 8751: noexcept(is_nothrow_copy_constructible<_Compare>::value 8751: && _Alloc_traits::_S_always_equal()) 8751: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 8751: 8751: 8751: multimap(initializer_list __l, const allocator_type& __a) 8751: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8751: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 8751: 8751: 8751: template 8751: multimap(_InputIterator __first, _InputIterator __last, 8751: const allocator_type& __a) 8751: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8751: { _M_t._M_insert_equal(__first, __last); } 8751: # 266 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: template 8751: multimap(_InputIterator __first, _InputIterator __last) 8751: : _M_t() 8751: { _M_t._M_insert_equal(__first, __last); } 8751: # 282 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: template 8751: multimap(_InputIterator __first, _InputIterator __last, 8751: const _Compare& __comp, 8751: const allocator_type& __a = allocator_type()) 8751: : _M_t(__comp, _Pair_alloc_type(__a)) 8751: { _M_t._M_insert_equal(__first, __last); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: ~multimap() = default; 8751: # 311 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: multimap& 8751: operator=(const multimap&) = default; 8751: 8751: 8751: multimap& 8751: operator=(multimap&&) = default; 8751: # 329 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: multimap& 8751: operator=(initializer_list __l) 8751: { 8751: _M_t._M_assign_equal(__l.begin(), __l.end()); 8751: return *this; 8751: } 8751: 8751: 8751: 8751: allocator_type 8751: get_allocator() const noexcept 8751: { return allocator_type(_M_t.get_allocator()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: iterator 8751: begin() noexcept 8751: { return _M_t.begin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: begin() const noexcept 8751: { return _M_t.begin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: iterator 8751: end() noexcept 8751: { return _M_t.end(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: end() const noexcept 8751: { return _M_t.end(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: rbegin() noexcept 8751: { return _M_t.rbegin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: rbegin() const noexcept 8751: { return _M_t.rbegin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: rend() noexcept 8751: { return _M_t.rend(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: rend() const noexcept 8751: { return _M_t.rend(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: cbegin() const noexcept 8751: { return _M_t.begin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_iterator 8751: cend() const noexcept 8751: { return _M_t.end(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: crbegin() const noexcept 8751: { return _M_t.rbegin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: const_reverse_iterator 8751: crend() const noexcept 8751: { return _M_t.rend(); } 8751: 8751: 8751: 8751: 8751: bool 8751: empty() const noexcept 8751: { return _M_t.empty(); } 8751: 8751: 8751: size_type 8751: size() const noexcept 8751: { return _M_t.size(); } 8751: 8751: 8751: size_type 8751: max_size() const noexcept 8751: { return _M_t.max_size(); } 8751: # 487 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: template 8751: iterator 8751: emplace(_Args&&... __args) 8751: { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); } 8751: # 514 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: template 8751: iterator 8751: emplace_hint(const_iterator __pos, _Args&&... __args) 8751: { 8751: return _M_t._M_emplace_hint_equal(__pos, 8751: std::forward<_Args>(__args)...); 8751: } 8751: # 536 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: iterator 8751: insert(const value_type& __x) 8751: { return _M_t._M_insert_equal(__x); } 8751: 8751: 8751: 8751: 8751: iterator 8751: insert(value_type&& __x) 8751: { return _M_t._M_insert_equal(std::move(__x)); } 8751: 8751: template::value>::type> 8751: iterator 8751: insert(_Pair&& __x) 8751: { return _M_t._M_insert_equal(std::forward<_Pair>(__x)); } 8751: # 577 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: iterator 8751: 8751: insert(const_iterator __position, const value_type& __x) 8751: 8751: 8751: 8751: { return _M_t._M_insert_equal_(__position, __x); } 8751: 8751: 8751: 8751: 8751: iterator 8751: insert(const_iterator __position, value_type&& __x) 8751: { return _M_t._M_insert_equal_(__position, std::move(__x)); } 8751: 8751: template::value>::type> 8751: iterator 8751: insert(const_iterator __position, _Pair&& __x) 8751: { return _M_t._M_insert_equal_(__position, 8751: std::forward<_Pair>(__x)); } 8751: # 611 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: template 8751: void 8751: insert(_InputIterator __first, _InputIterator __last) 8751: { _M_t._M_insert_equal(__first, __last); } 8751: # 624 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: void 8751: insert(initializer_list __l) 8751: { this->insert(__l.begin(), __l.end()); } 8751: # 701 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: iterator 8751: erase(const_iterator __position) 8751: { return _M_t.erase(__position); } 8751: 8751: 8751: __attribute ((__abi_tag__ ("cxx11"))) 8751: iterator 8751: erase(iterator __position) 8751: { return _M_t.erase(__position); } 8751: # 738 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: size_type 8751: erase(const key_type& __x) 8751: { return _M_t.erase(__x); } 8751: # 759 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: iterator 8751: erase(const_iterator __first, const_iterator __last) 8751: { return _M_t.erase(__first, __last); } 8751: # 796 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: void 8751: swap(multimap& __x) 8751: noexcept(__is_nothrow_swappable<_Compare>::value) 8751: { _M_t.swap(__x._M_t); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: void 8751: clear() noexcept 8751: { _M_t.clear(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: key_compare 8751: key_comp() const 8751: { return _M_t.key_comp(); } 8751: 8751: 8751: 8751: 8751: 8751: value_compare 8751: value_comp() const 8751: { return value_compare(_M_t.key_comp()); } 8751: # 842 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: iterator 8751: find(const key_type& __x) 8751: { return _M_t.find(__x); } 8751: # 866 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: const_iterator 8751: find(const key_type& __x) const 8751: { return _M_t.find(__x); } 8751: # 884 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: size_type 8751: count(const key_type& __x) const 8751: { return _M_t.count(__x); } 8751: # 908 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: iterator 8751: lower_bound(const key_type& __x) 8751: { return _M_t.lower_bound(__x); } 8751: # 933 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: const_iterator 8751: lower_bound(const key_type& __x) const 8751: { return _M_t.lower_bound(__x); } 8751: # 953 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: iterator 8751: upper_bound(const key_type& __x) 8751: { return _M_t.upper_bound(__x); } 8751: # 973 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: const_iterator 8751: upper_bound(const key_type& __x) const 8751: { return _M_t.upper_bound(__x); } 8751: # 1000 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: std::pair 8751: equal_range(const key_type& __x) 8751: { return _M_t.equal_range(__x); } 8751: # 1027 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: std::pair 8751: equal_range(const key_type& __x) const 8751: { return _M_t.equal_range(__x); } 8751: # 1044 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: template 8751: friend bool 8751: operator==(const multimap<_K1, _T1, _C1, _A1>&, 8751: const multimap<_K1, _T1, _C1, _A1>&); 8751: 8751: template 8751: friend bool 8751: operator<(const multimap<_K1, _T1, _C1, _A1>&, 8751: const multimap<_K1, _T1, _C1, _A1>&); 8751: }; 8751: # 1098 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: template 8751: inline bool 8751: operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8751: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8751: { return __x._M_t == __y._M_t; } 8751: # 1115 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: template 8751: inline bool 8751: operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8751: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8751: { return __x._M_t < __y._M_t; } 8751: 8751: 8751: template 8751: inline bool 8751: operator!=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8751: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8751: { return !(__x == __y); } 8751: 8751: 8751: template 8751: inline bool 8751: operator>(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8751: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8751: { return __y < __x; } 8751: 8751: 8751: template 8751: inline bool 8751: operator<=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8751: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8751: { return !(__y < __x); } 8751: 8751: 8751: template 8751: inline bool 8751: operator>=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8751: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8751: { return !(__x < __y); } 8751: 8751: 8751: template 8751: inline void 8751: swap(multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8751: multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8751: noexcept(noexcept(__x.swap(__y))) 8751: { __x.swap(__y); } 8751: 8751: 8751: # 1180 "/usr/include/c++/8/bits/stl_multimap.h" 3 8751: 8751: } 8751: # 63 "/usr/include/c++/8/map" 2 3 8751: # 56 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct QMetaTypeId2; 8751: 8751: template 8751: inline constexpr int qMetaTypeId(); 8751: # 216 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 3 4 8751: class QDataStream; 8751: class QMetaTypeInterface; 8751: struct QMetaObject; 8751: 8751: namespace QtPrivate 8751: { 8751: 8751: 8751: 8751: 8751: template 8751: To convertImplicit(const From& from) 8751: { 8751: return from; 8751: } 8751: 8751: 8751: struct AbstractDebugStreamFunction 8751: { 8751: typedef void (*Stream)(const AbstractDebugStreamFunction *, QDebug&, const void *); 8751: typedef void (*Destroy)(AbstractDebugStreamFunction *); 8751: explicit AbstractDebugStreamFunction(Stream s = nullptr, Destroy d = nullptr) 8751: : stream(s), destroy(d) {} 8751: AbstractDebugStreamFunction(const AbstractDebugStreamFunction &) = delete; AbstractDebugStreamFunction &operator=(const AbstractDebugStreamFunction &) = delete; 8751: Stream stream; 8751: Destroy destroy; 8751: }; 8751: 8751: template 8751: struct BuiltInDebugStreamFunction : public AbstractDebugStreamFunction 8751: { 8751: BuiltInDebugStreamFunction() 8751: : AbstractDebugStreamFunction(stream, destroy) {} 8751: static void stream(const AbstractDebugStreamFunction *, QDebug& dbg, const void *r) 8751: { 8751: const T *rhs = static_cast(r); 8751: operator<<(dbg, *rhs); 8751: } 8751: 8751: static void destroy(AbstractDebugStreamFunction *_this) 8751: { 8751: delete static_cast(_this); 8751: } 8751: }; 8751: 8751: 8751: struct AbstractComparatorFunction 8751: { 8751: typedef bool (*LessThan)(const AbstractComparatorFunction *, const void *, const void *); 8751: typedef bool (*Equals)(const AbstractComparatorFunction *, const void *, const void *); 8751: typedef void (*Destroy)(AbstractComparatorFunction *); 8751: explicit AbstractComparatorFunction(LessThan lt = nullptr, Equals e = nullptr, Destroy d = nullptr) 8751: : lessThan(lt), equals(e), destroy(d) {} 8751: AbstractComparatorFunction(const AbstractComparatorFunction &) = delete; AbstractComparatorFunction &operator=(const AbstractComparatorFunction &) = delete; 8751: LessThan lessThan; 8751: Equals equals; 8751: Destroy destroy; 8751: }; 8751: 8751: template 8751: struct BuiltInComparatorFunction : public AbstractComparatorFunction 8751: { 8751: BuiltInComparatorFunction() 8751: : AbstractComparatorFunction(lessThan, equals, destroy) {} 8751: static bool lessThan(const AbstractComparatorFunction *, const void *l, const void *r) 8751: { 8751: const T *lhs = static_cast(l); 8751: const T *rhs = static_cast(r); 8751: return *lhs < *rhs; 8751: } 8751: 8751: static bool equals(const AbstractComparatorFunction *, const void *l, const void *r) 8751: { 8751: const T *lhs = static_cast(l); 8751: const T *rhs = static_cast(r); 8751: return *lhs == *rhs; 8751: } 8751: 8751: static void destroy(AbstractComparatorFunction *_this) 8751: { 8751: delete static_cast(_this); 8751: } 8751: }; 8751: 8751: template 8751: struct BuiltInEqualsComparatorFunction : public AbstractComparatorFunction 8751: { 8751: BuiltInEqualsComparatorFunction() 8751: : AbstractComparatorFunction(nullptr, equals, destroy) {} 8751: static bool equals(const AbstractComparatorFunction *, const void *l, const void *r) 8751: { 8751: const T *lhs = static_cast(l); 8751: const T *rhs = static_cast(r); 8751: return *lhs == *rhs; 8751: } 8751: 8751: static void destroy(AbstractComparatorFunction *_this) 8751: { 8751: delete static_cast(_this); 8751: } 8751: }; 8751: 8751: struct AbstractConverterFunction 8751: { 8751: typedef bool (*Converter)(const AbstractConverterFunction *, const void *, void*); 8751: explicit AbstractConverterFunction(Converter c = nullptr) 8751: : convert(c) {} 8751: AbstractConverterFunction(const AbstractConverterFunction &) = delete; AbstractConverterFunction &operator=(const AbstractConverterFunction &) = delete; 8751: Converter convert; 8751: }; 8751: 8751: template 8751: struct ConverterMemberFunction : public AbstractConverterFunction 8751: { 8751: explicit ConverterMemberFunction(To(From::*function)() const) 8751: : AbstractConverterFunction(convert), 8751: m_function(function) {} 8751: ~ConverterMemberFunction(); 8751: static bool convert(const AbstractConverterFunction *_this, const void *in, void *out) 8751: { 8751: const From *f = static_cast(in); 8751: To *t = static_cast(out); 8751: const ConverterMemberFunction *_typedThis = 8751: static_cast(_this); 8751: *t = (f->*_typedThis->m_function)(); 8751: return true; 8751: } 8751: 8751: To(From::* const m_function)() const; 8751: }; 8751: 8751: template 8751: struct ConverterMemberFunctionOk : public AbstractConverterFunction 8751: { 8751: explicit ConverterMemberFunctionOk(To(From::*function)(bool *) const) 8751: : AbstractConverterFunction(convert), 8751: m_function(function) {} 8751: ~ConverterMemberFunctionOk(); 8751: static bool convert(const AbstractConverterFunction *_this, const void *in, void *out) 8751: { 8751: const From *f = static_cast(in); 8751: To *t = static_cast(out); 8751: bool ok = false; 8751: const ConverterMemberFunctionOk *_typedThis = 8751: static_cast(_this); 8751: *t = (f->*_typedThis->m_function)(&ok); 8751: if (!ok) 8751: *t = To(); 8751: return ok; 8751: } 8751: 8751: To(From::* const m_function)(bool*) const; 8751: }; 8751: 8751: template 8751: struct ConverterFunctor : public AbstractConverterFunction 8751: { 8751: explicit ConverterFunctor(UnaryFunction function) 8751: : AbstractConverterFunction(convert), 8751: m_function(function) {} 8751: ~ConverterFunctor(); 8751: static bool convert(const AbstractConverterFunction *_this, const void *in, void *out) 8751: { 8751: const From *f = static_cast(in); 8751: To *t = static_cast(out); 8751: const ConverterFunctor *_typedThis = 8751: static_cast(_this); 8751: *t = _typedThis->m_function(*f); 8751: return true; 8751: } 8751: 8751: UnaryFunction m_function; 8751: }; 8751: 8751: template 8751: struct ValueTypeIsMetaType; 8751: template 8751: struct AssociativeValueTypeIsMetaType; 8751: template 8751: struct IsMetaTypePair; 8751: template 8751: struct MetaTypeSmartPointerHelper; 8751: } 8751: 8751: class __attribute__((visibility("default"))) QMetaType { 8751: enum ExtensionFlag { NoExtensionFlags, 8751: CreateEx = 0x1, DestroyEx = 0x2, 8751: ConstructEx = 0x4, DestructEx = 0x8, 8751: NameEx = 0x10, SizeEx = 0x20, 8751: CtorEx = 0x40, DtorEx = 0x80, 8751: FlagsEx = 0x100, MetaObjectEx = 0x200 8751: }; 8751: public: 8751: 8751: 8751: enum Type { 8751: 8751: Void = 43, Bool = 1, Int = 2, UInt = 3, LongLong = 4, ULongLong = 5, Double = 6, Long = 32, Short = 33, Char = 34, ULong = 35, UShort = 36, UChar = 37, Float = 38, SChar = 40, Nullptr = 51, VoidStar = 31, QChar = 7, QString = 10, QStringList = 11, QByteArray = 12, QBitArray = 13, QDate = 14, QTime = 15, QDateTime = 16, QUrl = 17, QLocale = 18, QRect = 19, QRectF = 20, QSize = 21, QSizeF = 22, QLine = 23, QLineF = 24, QPoint = 25, QPointF = 26, QRegExp = 27, QEasingCurve = 29, QUuid = 30, QVariant = 41, QModelIndex = 42, QRegularExpression = 44, QJsonValue = 45, QJsonObject = 46, QJsonArray = 47, QJsonDocument = 48, QPersistentModelIndex = 50, QObjectStar = 39, QVariantMap = 8, QVariantList = 9, QVariantHash = 28, QByteArrayList = 49, QFont = 64, QPixmap = 65, QBrush = 66, QColor = 67, QPalette = 68, QIcon = 69, QImage = 70, QPolygon = 71, QRegion = 72, QBitmap = 73, QCursor = 74, QKeySequence = 75, QPen = 76, QTextLength = 77, QTextFormat = 78, QMatrix = 79, QTransform = 80, QMatrix4x4 = 81, QVector2D = 82, QVector3D = 83, QVector4D = 84, QQuaternion = 85, QPolygonF = 86, QSizePolicy = 121, 8751: 8751: FirstCoreType = Bool, 8751: LastCoreType = Nullptr, 8751: FirstGuiType = QFont, 8751: LastGuiType = QPolygonF, 8751: FirstWidgetsType = QSizePolicy, 8751: LastWidgetsType = QSizePolicy, 8751: HighestInternalId = LastWidgetsType, 8751: 8751: QReal = sizeof(qreal) == sizeof(double) ? Double : Float, 8751: 8751: UnknownType = 0, 8751: User = 1024 8751: }; 8751: # 455 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 3 4 8751: enum TypeFlag { 8751: NeedsConstruction = 0x1, 8751: NeedsDestruction = 0x2, 8751: MovableType = 0x4, 8751: PointerToQObject = 0x8, 8751: IsEnumeration = 0x10, 8751: SharedPointerToQObject = 0x20, 8751: WeakPointerToQObject = 0x40, 8751: TrackingPointerToQObject = 0x80, 8751: WasDeclaredAsMetaType = 0x100, 8751: IsGadget = 0x200 8751: }; 8751: typedef QFlags TypeFlags; 8751: 8751: typedef void (*Deleter)(void *); 8751: typedef void *(*Creator)(const void *); 8751: 8751: typedef void (*Destructor)(void *); 8751: typedef void *(*Constructor)(void *, const void *); 8751: 8751: typedef void (*SaveOperator)(QDataStream &, const void *); 8751: typedef void (*LoadOperator)(QDataStream &, void *); 8751: 8751: static void registerStreamOperators(const char *typeName, SaveOperator saveOp, 8751: LoadOperator loadOp); 8751: static void registerStreamOperators(int type, SaveOperator saveOp, 8751: LoadOperator loadOp); 8751: 8751: static int registerType(const char *typeName, Deleter deleter, 8751: Creator creator); 8751: static int registerType(const char *typeName, Deleter deleter, 8751: Creator creator, 8751: Destructor destructor, 8751: Constructor constructor, 8751: int size, 8751: QMetaType::TypeFlags flags, 8751: const QMetaObject *metaObject); 8751: static bool unregisterType(int type); 8751: static int registerNormalizedType(const ::QByteArray &normalizedTypeName, Deleter deleter, 8751: Creator creator, 8751: Destructor destructor, 8751: Constructor constructor, 8751: int size, 8751: QMetaType::TypeFlags flags, 8751: const QMetaObject *metaObject); 8751: static int registerNormalizedType(const ::QByteArray &normalizedTypeName, Destructor destructor, 8751: Constructor constructor, 8751: int size, 8751: QMetaType::TypeFlags flags, 8751: const QMetaObject *metaObject); 8751: static int registerTypedef(const char *typeName, int aliasId); 8751: static int registerNormalizedTypedef(const ::QByteArray &normalizedTypeName, int aliasId); 8751: static int type(const char *typeName); 8751: 8751: static int type(const ::QByteArray &typeName); 8751: static const char *typeName(int type); 8751: static int sizeOf(int type); 8751: static TypeFlags typeFlags(int type); 8751: static const QMetaObject *metaObjectForType(int type); 8751: static bool isRegistered(int type); 8751: static void *create(int type, const void *copy = nullptr); 8751: 8751: 8751: 8751: 8751: static void destroy(int type, void *data); 8751: static void *construct(int type, void *where, const void *copy); 8751: static void destruct(int type, void *where); 8751: 8751: 8751: static bool save(QDataStream &stream, int type, const void *data); 8751: static bool load(QDataStream &stream, int type, void *data); 8751: 8751: 8751: explicit QMetaType(const int type); 8751: inline ~QMetaType(); 8751: 8751: inline bool isValid() const; 8751: inline bool isRegistered() const; 8751: inline int sizeOf() const; 8751: inline TypeFlags flags() const; 8751: inline const QMetaObject *metaObject() const; 8751: 8751: inline void *create(const void *copy = nullptr) const; 8751: inline void destroy(void *data) const; 8751: inline void *construct(void *where, const void *copy = nullptr) const; 8751: inline void destruct(void *data) const; 8751: 8751: public: 8751: template 8751: static bool registerComparators() 8751: { 8751: static_assert(bool((!QMetaTypeId2::IsBuiltIn)), "QMetaType::registerComparators: The type must be a custom type.") 8751: ; 8751: 8751: const int typeId = qMetaTypeId(); 8751: static const QtPrivate::BuiltInComparatorFunction f; 8751: return registerComparatorFunction( &f, typeId); 8751: } 8751: template 8751: static bool registerEqualsComparator() 8751: { 8751: static_assert(bool((!QMetaTypeId2::IsBuiltIn)), "QMetaType::registerEqualsComparator: The type must be a custom type.") 8751: ; 8751: const int typeId = qMetaTypeId(); 8751: static const QtPrivate::BuiltInEqualsComparatorFunction f; 8751: return registerComparatorFunction( &f, typeId); 8751: } 8751: 8751: template 8751: static bool hasRegisteredComparators() 8751: { 8751: return hasRegisteredComparators(qMetaTypeId()); 8751: } 8751: static bool hasRegisteredComparators(int typeId); 8751: 8751: 8751: 8751: template 8751: static bool registerDebugStreamOperator() 8751: { 8751: static_assert(bool((!QMetaTypeId2::IsBuiltIn)), "QMetaType::registerDebugStreamOperator: The type must be a custom type.") 8751: ; 8751: 8751: const int typeId = qMetaTypeId(); 8751: static const QtPrivate::BuiltInDebugStreamFunction f; 8751: return registerDebugStreamOperatorFunction(&f, typeId); 8751: } 8751: template 8751: static bool hasRegisteredDebugStreamOperator() 8751: { 8751: return hasRegisteredDebugStreamOperator(qMetaTypeId()); 8751: } 8751: static bool hasRegisteredDebugStreamOperator(int typeId); 8751: 8751: 8751: 8751: template 8751: static bool registerConverter() 8751: { 8751: return registerConverter(QtPrivate::convertImplicit); 8751: } 8751: # 607 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 3 4 8751: template 8751: static bool registerConverter(To(From::*function)() const) 8751: { 8751: static_assert(bool((!QMetaTypeId2::IsBuiltIn || !QMetaTypeId2::IsBuiltIn)), "QMetaType::registerConverter: At least one of the types must be a custom type.") 8751: ; 8751: 8751: const int fromTypeId = qMetaTypeId(); 8751: const int toTypeId = qMetaTypeId(); 8751: static const QtPrivate::ConverterMemberFunction f(function); 8751: return registerConverterFunction(&f, fromTypeId, toTypeId); 8751: } 8751: 8751: 8751: template 8751: static bool registerConverter(To(From::*function)(bool*) const) 8751: { 8751: static_assert(bool((!QMetaTypeId2::IsBuiltIn || !QMetaTypeId2::IsBuiltIn)), "QMetaType::registerConverter: At least one of the types must be a custom type.") 8751: ; 8751: 8751: const int fromTypeId = qMetaTypeId(); 8751: const int toTypeId = qMetaTypeId(); 8751: static const QtPrivate::ConverterMemberFunctionOk f(function); 8751: return registerConverterFunction(&f, fromTypeId, toTypeId); 8751: } 8751: 8751: 8751: template 8751: static bool registerConverter(UnaryFunction function) 8751: { 8751: static_assert(bool((!QMetaTypeId2::IsBuiltIn || !QMetaTypeId2::IsBuiltIn)), "QMetaType::registerConverter: At least one of the types must be a custom type.") 8751: ; 8751: 8751: const int fromTypeId = qMetaTypeId(); 8751: const int toTypeId = qMetaTypeId(); 8751: static const QtPrivate::ConverterFunctor f(function); 8751: return registerConverterFunction(&f, fromTypeId, toTypeId); 8751: } 8751: 8751: 8751: static bool convert(const void *from, int fromTypeId, void *to, int toTypeId); 8751: static bool compare(const void *lhs, const void *rhs, int typeId, int* result); 8751: static bool equals(const void *lhs, const void *rhs, int typeId, int* result); 8751: static bool debugStream(QDebug& dbg, const void *rhs, int typeId); 8751: 8751: template 8751: static bool hasRegisteredConverterFunction() 8751: { 8751: return hasRegisteredConverterFunction(qMetaTypeId(), qMetaTypeId()); 8751: } 8751: 8751: static bool hasRegisteredConverterFunction(int fromTypeId, int toTypeId); 8751: 8751: private: 8751: static QMetaType typeInfo(const int type); 8751: inline QMetaType(const ExtensionFlag extensionFlags, const QMetaTypeInterface *info, 8751: Creator creator, 8751: Deleter deleter, 8751: SaveOperator saveOp, 8751: LoadOperator loadOp, 8751: Constructor constructor, 8751: Destructor destructor, 8751: uint sizeOf, 8751: uint theTypeFlags, 8751: int typeId, 8751: const QMetaObject *metaObject); 8751: QMetaType(const QMetaType &other); 8751: QMetaType &operator =(const QMetaType &); 8751: inline bool isExtended(const ExtensionFlag flag) const { return m_extensionFlags & flag; } 8751: 8751: 8751: void ctor(const QMetaTypeInterface *info); 8751: void dtor(); 8751: uint sizeExtended() const; 8751: QMetaType::TypeFlags flagsExtended() const; 8751: const QMetaObject *metaObjectExtended() const; 8751: void *createExtended(const void *copy = nullptr) const; 8751: void destroyExtended(void *data) const; 8751: void *constructExtended(void *where, const void *copy = nullptr) const; 8751: void destructExtended(void *data) const; 8751: 8751: static bool registerComparatorFunction(const QtPrivate::AbstractComparatorFunction *f, int type); 8751: 8751: static bool registerDebugStreamOperatorFunction(const QtPrivate::AbstractDebugStreamFunction *f, int type); 8751: 8751: 8751: 8751: 8751: 8751: template friend struct QtPrivate::ValueTypeIsMetaType; 8751: template friend struct QtPrivate::ConverterMemberFunction; 8751: template friend struct QtPrivate::ConverterMemberFunctionOk; 8751: template friend struct QtPrivate::ConverterFunctor; 8751: template friend struct QtPrivate::AssociativeValueTypeIsMetaType; 8751: template friend struct QtPrivate::IsMetaTypePair; 8751: template friend struct QtPrivate::MetaTypeSmartPointerHelper; 8751: 8751: 8751: 8751: 8751: static bool registerConverterFunction(const QtPrivate::AbstractConverterFunction *f, int from, int to); 8751: static void unregisterConverterFunction(int from, int to); 8751: private: 8751: 8751: Creator m_creator_unused; 8751: Deleter m_deleter_unused; 8751: SaveOperator m_saveOp; 8751: LoadOperator m_loadOp; 8751: Constructor m_constructor; 8751: Destructor m_destructor; 8751: void *m_extension; 8751: uint m_size; 8751: uint m_typeFlags; 8751: uint m_extensionFlags; 8751: int m_typeId; 8751: const QMetaObject *m_metaObject; 8751: }; 8751: 8751: 8751: 8751: constexpr inline QFlags operator|(QMetaType::TypeFlags::enum_type f1, QMetaType::TypeFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QMetaType::TypeFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QMetaType::TypeFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: 8751: namespace QtPrivate { 8751: 8751: template 8751: ConverterMemberFunction::~ConverterMemberFunction() 8751: { 8751: QMetaType::unregisterConverterFunction(qMetaTypeId(), qMetaTypeId()); 8751: } 8751: template 8751: ConverterMemberFunctionOk::~ConverterMemberFunctionOk() 8751: { 8751: QMetaType::unregisterConverterFunction(qMetaTypeId(), qMetaTypeId()); 8751: } 8751: template 8751: ConverterFunctor::~ConverterFunctor() 8751: { 8751: QMetaType::unregisterConverterFunction(qMetaTypeId(), qMetaTypeId()); 8751: } 8751: 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: namespace QtMetaTypePrivate { 8751: template 8751: struct QMetaTypeFunctionHelper { 8751: static void Destruct(void *t) 8751: { 8751: (void)t; 8751: static_cast(t)->~T(); 8751: } 8751: 8751: static void *Construct(void *where, const void *t) 8751: { 8751: if (t) 8751: return new (where) T(*static_cast(t)); 8751: return new (where) T; 8751: } 8751: 8751: static void Save(QDataStream &stream, const void *t) 8751: { 8751: stream << *static_cast(t); 8751: } 8751: 8751: static void Load(QDataStream &stream, void *t) 8751: { 8751: stream >> *static_cast(t); 8751: } 8751: 8751: }; 8751: 8751: template 8751: struct QMetaTypeFunctionHelper { 8751: static void Destruct(void *) {} 8751: static void *Construct(void *, const void *) { return nullptr; } 8751: 8751: static void Save(QDataStream &, const void *) {} 8751: static void Load(QDataStream &, void *) {} 8751: 8751: }; 8751: template <> 8751: struct QMetaTypeFunctionHelper 8751: : public QMetaTypeFunctionHelper 8751: {}; 8751: 8751: struct VariantData 8751: { 8751: VariantData(const int metaTypeId_, 8751: const void *data_, 8751: const uint flags_) 8751: : metaTypeId(metaTypeId_) 8751: , data(data_) 8751: , flags(flags_) 8751: { 8751: } 8751: VariantData(const VariantData &other) 8751: : metaTypeId(other.metaTypeId), data(other.data), flags(other.flags){} 8751: const int metaTypeId; 8751: const void *data; 8751: const uint flags; 8751: private: 8751: 8751: VariantData &operator=(const VariantData &) = delete; 8751: }; 8751: 8751: template 8751: struct IteratorOwnerCommon 8751: { 8751: static void assign(void **ptr, const_iterator iterator) 8751: { 8751: *ptr = new const_iterator(iterator); 8751: } 8751: static void assign(void **ptr, void * const * src) 8751: { 8751: *ptr = new const_iterator(*static_cast(*src)); 8751: } 8751: 8751: static void advance(void **iterator, int step) 8751: { 8751: const_iterator &it = *static_cast(*iterator); 8751: std::advance(it, step); 8751: } 8751: 8751: static void destroy(void **ptr) 8751: { 8751: delete static_cast(*ptr); 8751: } 8751: 8751: static bool equal(void * const *it, void * const *other) 8751: { 8751: return *static_cast(*it) == *static_cast(*other); 8751: } 8751: }; 8751: 8751: template 8751: struct IteratorOwner : IteratorOwnerCommon 8751: { 8751: static const void *getData(void * const *iterator) 8751: { 8751: return &**static_cast(*iterator); 8751: } 8751: 8751: static const void *getData(const_iterator it) 8751: { 8751: return &*it; 8751: } 8751: }; 8751: 8751: struct __attribute__((visibility("default"))) VectorBoolElements 8751: { 8751: static const bool true_element; 8751: static const bool false_element; 8751: }; 8751: 8751: template<> 8751: struct IteratorOwner::const_iterator> : IteratorOwnerCommon::const_iterator> 8751: { 8751: public: 8751: static const void *getData(void * const *iterator) 8751: { 8751: return **static_cast::const_iterator*>(*iterator) ? 8751: &VectorBoolElements::true_element : &VectorBoolElements::false_element; 8751: } 8751: 8751: static const void *getData(const std::vector::const_iterator& it) 8751: { 8751: return *it ? &VectorBoolElements::true_element : &VectorBoolElements::false_element; 8751: } 8751: }; 8751: 8751: template 8751: struct IteratorOwner 8751: { 8751: private: 8751: 8751: 8751: 8751: struct Dummy {}; 8751: typedef typename std::conditional::value, Dummy, value_type>::type value_type_OR_Dummy; 8751: public: 8751: static void assign(void **ptr, const value_type_OR_Dummy *iterator ) 8751: { 8751: *ptr = const_cast(iterator); 8751: } 8751: static void assign(void **ptr, void * const * src) 8751: { 8751: *ptr = static_cast(*src); 8751: } 8751: 8751: static void advance(void **iterator, int step) 8751: { 8751: value_type *it = static_cast(*iterator); 8751: std::advance(it, step); 8751: *iterator = it; 8751: } 8751: 8751: static void destroy(void **) 8751: { 8751: } 8751: 8751: static const void *getData(void * const *iterator) 8751: { 8751: return *iterator; 8751: } 8751: 8751: static const void *getData(const value_type_OR_Dummy *it) 8751: { 8751: return it; 8751: } 8751: 8751: static bool equal(void * const *it, void * const *other) 8751: { 8751: return static_cast(*it) == static_cast(*other); 8751: } 8751: }; 8751: 8751: enum IteratorCapability 8751: { 8751: ForwardCapability = 1, 8751: BiDirectionalCapability = 2, 8751: RandomAccessCapability = 4 8751: }; 8751: 8751: template::iterator_category> 8751: struct CapabilitiesImpl; 8751: 8751: template 8751: struct CapabilitiesImpl 8751: { enum { IteratorCapabilities = ForwardCapability }; }; 8751: template 8751: struct CapabilitiesImpl 8751: { enum { IteratorCapabilities = BiDirectionalCapability | ForwardCapability }; }; 8751: template 8751: struct CapabilitiesImpl 8751: { enum { IteratorCapabilities = RandomAccessCapability | BiDirectionalCapability | ForwardCapability }; }; 8751: 8751: template 8751: struct ContainerAPI : CapabilitiesImpl 8751: { 8751: static int size(const T *t) { return int(std::distance(t->begin(), t->end())); } 8751: }; 8751: 8751: template 8751: struct ContainerAPI > : CapabilitiesImpl > 8751: { static int size(const QList *t) { return t->size(); } }; 8751: 8751: template 8751: struct ContainerAPI > : CapabilitiesImpl > 8751: { static int size(const QVector *t) { return t->size(); } }; 8751: 8751: template 8751: struct ContainerAPI > : CapabilitiesImpl > 8751: { static int size(const std::vector *t) { return int(t->size()); } }; 8751: 8751: template 8751: struct ContainerAPI > : CapabilitiesImpl > 8751: { static int size(const std::list *t) { return int(t->size()); } }; 8751: 8751: class QSequentialIterableImpl 8751: { 8751: public: 8751: const void * _iterable; 8751: void *_iterator; 8751: int _metaType_id; 8751: uint _metaType_flags; 8751: uint _iteratorCapabilities; 8751: typedef int(*sizeFunc)(const void *p); 8751: typedef const void * (*atFunc)(const void *p, int); 8751: typedef void (*moveIteratorFunc)(const void *p, void **); 8751: typedef void (*advanceFunc)(void **p, int); 8751: typedef VariantData (*getFunc)( void * const *p, int metaTypeId, uint flags); 8751: typedef void (*destroyIterFunc)(void **p); 8751: typedef bool (*equalIterFunc)(void * const *p, void * const *other); 8751: typedef void (*copyIterFunc)(void **, void * const *); 8751: 8751: sizeFunc _size; 8751: atFunc _at; 8751: moveIteratorFunc _moveToBegin; 8751: moveIteratorFunc _moveToEnd; 8751: advanceFunc _advance; 8751: getFunc _get; 8751: destroyIterFunc _destroyIter; 8751: equalIterFunc _equalIter; 8751: copyIterFunc _copyIter; 8751: 8751: template 8751: static int sizeImpl(const void *p) 8751: { return ContainerAPI::size(static_cast(p)); } 8751: 8751: template 8751: static const void* atImpl(const void *p, int idx) 8751: { 8751: typename T::const_iterator i = static_cast(p)->begin(); 8751: std::advance(i, idx); 8751: return IteratorOwner::getData(i); 8751: } 8751: 8751: template 8751: static void moveToBeginImpl(const void *container, void **iterator) 8751: { IteratorOwner::assign(iterator, static_cast(container)->begin()); } 8751: 8751: template 8751: static void moveToEndImpl(const void *container, void **iterator) 8751: { IteratorOwner::assign(iterator, static_cast(container)->end()); } 8751: 8751: template 8751: static VariantData getImpl(void * const *iterator, int metaTypeId, uint flags) 8751: { return VariantData(metaTypeId, IteratorOwner::getData(iterator), flags); } 8751: 8751: public: 8751: template QSequentialIterableImpl(const T*p) 8751: : _iterable(p) 8751: , _iterator(nullptr) 8751: , _metaType_id(qMetaTypeId()) 8751: , _metaType_flags(QTypeInfo::isPointer) 8751: , _iteratorCapabilities(ContainerAPI::IteratorCapabilities) 8751: , _size(sizeImpl) 8751: , _at(atImpl) 8751: , _moveToBegin(moveToBeginImpl) 8751: , _moveToEnd(moveToEndImpl) 8751: , _advance(IteratorOwner::advance) 8751: , _get(getImpl) 8751: , _destroyIter(IteratorOwner::destroy) 8751: , _equalIter(IteratorOwner::equal) 8751: , _copyIter(IteratorOwner::assign) 8751: { 8751: } 8751: 8751: QSequentialIterableImpl() 8751: : _iterable(nullptr) 8751: , _iterator(nullptr) 8751: , _metaType_id(QMetaType::UnknownType) 8751: , _metaType_flags(0) 8751: , _iteratorCapabilities(0) 8751: , _size(nullptr) 8751: , _at(nullptr) 8751: , _moveToBegin(nullptr) 8751: , _moveToEnd(nullptr) 8751: , _advance(nullptr) 8751: , _get(nullptr) 8751: , _destroyIter(nullptr) 8751: , _equalIter(nullptr) 8751: , _copyIter(nullptr) 8751: { 8751: } 8751: 8751: inline void moveToBegin() { _moveToBegin(_iterable, &_iterator); } 8751: inline void moveToEnd() { _moveToEnd(_iterable, &_iterator); } 8751: inline bool equal(const QSequentialIterableImpl&other) const { return _equalIter(&_iterator, &other._iterator); } 8751: inline QSequentialIterableImpl &advance(int i) { 8751: do { } while ((false) && (i > 0 || _iteratorCapabilities & BiDirectionalCapability)); 8751: _advance(&_iterator, i); 8751: return *this; 8751: } 8751: 8751: inline VariantData getCurrent() const { return _get(&_iterator, _metaType_id, _metaType_flags); } 8751: 8751: VariantData at(int idx) const 8751: { return VariantData(_metaType_id, _at(_iterable, idx), _metaType_flags); } 8751: 8751: int size() const { do { } while ((false) && (_iterable)); return _size(_iterable); } 8751: 8751: inline void destroyIter() { _destroyIter(&_iterator); } 8751: 8751: void copy(const QSequentialIterableImpl &other) 8751: { 8751: *this = other; 8751: _copyIter(&_iterator, &other._iterator); 8751: } 8751: }; 8751: } template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = ((((Q_MOVABLE_TYPE)) & Q_PRIMITIVE_TYPE) == 0), isStatic = ((((Q_MOVABLE_TYPE)) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || (((Q_MOVABLE_TYPE)) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QtMetaTypePrivate:: QSequentialIterableImpl)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QtMetaTypePrivate:: QSequentialIterableImpl >::value, isDummy = ((((Q_MOVABLE_TYPE)) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QtMetaTypePrivate:: QSequentialIterableImpl) }; static inline const char *name() { return "QtMetaTypePrivate:: QSequentialIterableImpl"; } }; namespace QtMetaTypePrivate { 8751: 8751: template 8751: struct QSequentialIterableConvertFunctor 8751: { 8751: QSequentialIterableImpl operator()(const From &f) const 8751: { 8751: return QSequentialIterableImpl(&f); 8751: } 8751: }; 8751: } 8751: 8751: namespace QtMetaTypePrivate { 8751: template::value> 8751: struct AssociativeContainerAccessor 8751: { 8751: static const typename T::key_type& getKey(const typename T::const_iterator &it) 8751: { 8751: return it.key(); 8751: } 8751: 8751: static const typename T::mapped_type& getValue(const typename T::const_iterator &it) 8751: { 8751: return it.value(); 8751: } 8751: }; 8751: 8751: template >::value> 8751: struct StlStyleAssociativeContainerAccessor; 8751: 8751: template 8751: struct StlStyleAssociativeContainerAccessor 8751: { 8751: static const typename T::key_type& getKey(const typename T::const_iterator &it) 8751: { 8751: return it->first; 8751: } 8751: 8751: static const typename T::mapped_type& getValue(const typename T::const_iterator &it) 8751: { 8751: return it->second; 8751: } 8751: }; 8751: 8751: template 8751: struct AssociativeContainerAccessor : public StlStyleAssociativeContainerAccessor 8751: { 8751: }; 8751: 8751: class QAssociativeIterableImpl 8751: { 8751: public: 8751: const void *_iterable; 8751: void *_iterator; 8751: int _metaType_id_key; 8751: uint _metaType_flags_key; 8751: int _metaType_id_value; 8751: uint _metaType_flags_value; 8751: typedef int(*sizeFunc)(const void *p); 8751: typedef void (*findFunc)(const void *container, const void *p, void **iterator); 8751: typedef void (*beginFunc)(const void *p, void **); 8751: typedef void (*advanceFunc)(void **p, int); 8751: typedef VariantData (*getFunc)(void * const *p, int metaTypeId, uint flags); 8751: typedef void (*destroyIterFunc)(void **p); 8751: typedef bool (*equalIterFunc)(void * const *p, void * const *other); 8751: typedef void (*copyIterFunc)(void **, void * const *); 8751: 8751: sizeFunc _size; 8751: findFunc _find; 8751: beginFunc _begin; 8751: beginFunc _end; 8751: advanceFunc _advance; 8751: getFunc _getKey; 8751: getFunc _getValue; 8751: destroyIterFunc _destroyIter; 8751: equalIterFunc _equalIter; 8751: copyIterFunc _copyIter; 8751: 8751: template 8751: static int sizeImpl(const void *p) 8751: { return int(std::distance(static_cast(p)->begin(), 8751: static_cast(p)->end())); } 8751: 8751: template 8751: static void findImpl(const void *container, const void *p, void **iterator) 8751: { IteratorOwner::assign(iterator, 8751: static_cast(container)->find(*static_cast(p))); } 8751: 8751: template 8751: static void advanceImpl(void **p, int step) 8751: { std::advance(*static_cast(*p), step); } 8751: 8751: template 8751: static void beginImpl(const void *container, void **iterator) 8751: { IteratorOwner::assign(iterator, static_cast(container)->begin()); } 8751: 8751: template 8751: static void endImpl(const void *container, void **iterator) 8751: { IteratorOwner::assign(iterator, static_cast(container)->end()); } 8751: 8751: template 8751: static VariantData getKeyImpl(void * const *iterator, int metaTypeId, uint flags) 8751: { return VariantData(metaTypeId, &AssociativeContainerAccessor::getKey(*static_cast(*iterator)), flags); } 8751: 8751: template 8751: static VariantData getValueImpl(void * const *iterator, int metaTypeId, uint flags) 8751: { return VariantData(metaTypeId, &AssociativeContainerAccessor::getValue(*static_cast(*iterator)), flags); } 8751: 8751: public: 8751: template QAssociativeIterableImpl(const T*p) 8751: : _iterable(p) 8751: , _iterator(nullptr) 8751: , _metaType_id_key(qMetaTypeId()) 8751: , _metaType_flags_key(QTypeInfo::isPointer) 8751: , _metaType_id_value(qMetaTypeId()) 8751: , _metaType_flags_value(QTypeInfo::isPointer) 8751: , _size(sizeImpl) 8751: , _find(findImpl) 8751: , _begin(beginImpl) 8751: , _end(endImpl) 8751: , _advance(advanceImpl) 8751: , _getKey(getKeyImpl) 8751: , _getValue(getValueImpl) 8751: , _destroyIter(IteratorOwner::destroy) 8751: , _equalIter(IteratorOwner::equal) 8751: , _copyIter(IteratorOwner::assign) 8751: { 8751: } 8751: 8751: QAssociativeIterableImpl() 8751: : _iterable(nullptr) 8751: , _iterator(nullptr) 8751: , _metaType_id_key(QMetaType::UnknownType) 8751: , _metaType_flags_key(0) 8751: , _metaType_id_value(QMetaType::UnknownType) 8751: , _metaType_flags_value(0) 8751: , _size(nullptr) 8751: , _find(nullptr) 8751: , _begin(nullptr) 8751: , _end(nullptr) 8751: , _advance(nullptr) 8751: , _getKey(nullptr) 8751: , _getValue(nullptr) 8751: , _destroyIter(nullptr) 8751: , _equalIter(nullptr) 8751: , _copyIter(nullptr) 8751: { 8751: } 8751: 8751: inline void begin() { _begin(_iterable, &_iterator); } 8751: inline void end() { _end(_iterable, &_iterator); } 8751: inline bool equal(const QAssociativeIterableImpl&other) const { return _equalIter(&_iterator, &other._iterator); } 8751: inline QAssociativeIterableImpl &advance(int i) { _advance(&_iterator, i); return *this; } 8751: 8751: inline void destroyIter() { _destroyIter(&_iterator); } 8751: 8751: inline VariantData getCurrentKey() const { return _getKey(&_iterator, _metaType_id_key, _metaType_flags_key); } 8751: inline VariantData getCurrentValue() const { return _getValue(&_iterator, _metaType_id_value, _metaType_flags_value); } 8751: 8751: inline void find(const VariantData &key) 8751: { _find(_iterable, key.data, &_iterator); } 8751: 8751: int size() const { do { } while ((false) && (_iterable)); return _size(_iterable); } 8751: 8751: void copy(const QAssociativeIterableImpl &other) 8751: { 8751: *this = other; 8751: _copyIter(&_iterator, &other._iterator); 8751: } 8751: }; 8751: } template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = ((((Q_MOVABLE_TYPE)) & Q_PRIMITIVE_TYPE) == 0), isStatic = ((((Q_MOVABLE_TYPE)) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || (((Q_MOVABLE_TYPE)) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QtMetaTypePrivate:: QAssociativeIterableImpl)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QtMetaTypePrivate:: QAssociativeIterableImpl >::value, isDummy = ((((Q_MOVABLE_TYPE)) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QtMetaTypePrivate:: QAssociativeIterableImpl) }; static inline const char *name() { return "QtMetaTypePrivate:: QAssociativeIterableImpl"; } }; namespace QtMetaTypePrivate { 8751: 8751: template 8751: struct QAssociativeIterableConvertFunctor 8751: { 8751: QAssociativeIterableImpl operator()(const From& f) const 8751: { 8751: return QAssociativeIterableImpl(&f); 8751: } 8751: }; 8751: 8751: class QPairVariantInterfaceImpl 8751: { 8751: const void *_pair; 8751: int _metaType_id_first; 8751: uint _metaType_flags_first; 8751: int _metaType_id_second; 8751: uint _metaType_flags_second; 8751: 8751: typedef VariantData (*getFunc)(const void * const *p, int metaTypeId, uint flags); 8751: 8751: getFunc _getFirst; 8751: getFunc _getSecond; 8751: 8751: template 8751: static VariantData getFirstImpl(const void * const *pair, int metaTypeId, uint flags) 8751: { return VariantData(metaTypeId, &static_cast(*pair)->first, flags); } 8751: template 8751: static VariantData getSecondImpl(const void * const *pair, int metaTypeId, uint flags) 8751: { return VariantData(metaTypeId, &static_cast(*pair)->second, flags); } 8751: 8751: public: 8751: template QPairVariantInterfaceImpl(const T*p) 8751: : _pair(p) 8751: , _metaType_id_first(qMetaTypeId()) 8751: , _metaType_flags_first(QTypeInfo::isPointer) 8751: , _metaType_id_second(qMetaTypeId()) 8751: , _metaType_flags_second(QTypeInfo::isPointer) 8751: , _getFirst(getFirstImpl) 8751: , _getSecond(getSecondImpl) 8751: { 8751: } 8751: 8751: QPairVariantInterfaceImpl() 8751: : _pair(nullptr) 8751: , _metaType_id_first(QMetaType::UnknownType) 8751: , _metaType_flags_first(0) 8751: , _metaType_id_second(QMetaType::UnknownType) 8751: , _metaType_flags_second(0) 8751: , _getFirst(nullptr) 8751: , _getSecond(nullptr) 8751: { 8751: } 8751: 8751: inline VariantData first() const { return _getFirst(&_pair, _metaType_id_first, _metaType_flags_first); } 8751: inline VariantData second() const { return _getSecond(&_pair, _metaType_id_second, _metaType_flags_second); } 8751: }; 8751: } template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = ((((Q_MOVABLE_TYPE)) & Q_PRIMITIVE_TYPE) == 0), isStatic = ((((Q_MOVABLE_TYPE)) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || (((Q_MOVABLE_TYPE)) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QtMetaTypePrivate:: QPairVariantInterfaceImpl)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QtMetaTypePrivate:: QPairVariantInterfaceImpl >::value, isDummy = ((((Q_MOVABLE_TYPE)) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QtMetaTypePrivate:: QPairVariantInterfaceImpl) }; static inline const char *name() { return "QtMetaTypePrivate:: QPairVariantInterfaceImpl"; } }; namespace QtMetaTypePrivate { 8751: 8751: template 8751: struct QPairVariantInterfaceConvertFunctor; 8751: 8751: template 8751: struct QPairVariantInterfaceConvertFunctor > 8751: { 8751: QPairVariantInterfaceImpl operator()(const QPair& f) const 8751: { 8751: return QPairVariantInterfaceImpl(&f); 8751: } 8751: }; 8751: 8751: template 8751: struct QPairVariantInterfaceConvertFunctor > 8751: { 8751: QPairVariantInterfaceImpl operator()(const std::pair& f) const 8751: { 8751: return QPairVariantInterfaceImpl(&f); 8751: } 8751: }; 8751: 8751: } 8751: 8751: class QObject; 8751: class QWidget; 8751: 8751: 8751: 8751: 8751: template class QSharedPointer; template class QWeakPointer; template class QPointer; 8751: 8751: namespace QtPrivate 8751: { 8751: template 8751: struct IsPointerToTypeDerivedFromQObject 8751: { 8751: enum { Value = false }; 8751: }; 8751: 8751: 8751: template<> 8751: struct IsPointerToTypeDerivedFromQObject 8751: { 8751: enum { Value = false }; 8751: }; 8751: template<> 8751: struct IsPointerToTypeDerivedFromQObject 8751: { 8751: enum { Value = false }; 8751: }; 8751: template<> 8751: struct IsPointerToTypeDerivedFromQObject 8751: { 8751: enum { Value = true }; 8751: }; 8751: 8751: template 8751: struct IsPointerToTypeDerivedFromQObject 8751: { 8751: typedef qint8 yes_type; 8751: typedef qint64 no_type; 8751: 8751: 8751: static yes_type checkType(QObject* ); 8751: 8751: static no_type checkType(...); 8751: static_assert(bool(sizeof(T)), "Type argument of Q_DECLARE_METATYPE(T*) must be fully defined"); 8751: enum { Value = sizeof(checkType(static_cast(nullptr))) == sizeof(yes_type) }; 8751: }; 8751: 8751: template 8751: struct IsGadgetHelper { enum { Value = false }; }; 8751: 8751: template 8751: struct IsGadgetHelper 8751: { 8751: template 8751: static char checkType(void (X::*)()); 8751: static void *checkType(void (T::*)()); 8751: enum { Value = sizeof(checkType(&T::qt_check_for_QGADGET_macro)) == sizeof(void *) }; 8751: }; 8751: 8751: 8751: template char qt_getEnumMetaObject(const T&); 8751: 8751: template 8751: struct IsQEnumHelper { 8751: static const T &declval(); 8751: 8751: 8751: 8751: 8751: enum { Value = sizeof(qt_getEnumMetaObject(declval())) == sizeof(QMetaObject*) }; 8751: }; 8751: template<> struct IsQEnumHelper { enum { Value = false }; }; 8751: 8751: template 8751: struct MetaObjectForType 8751: { 8751: static inline const QMetaObject *value() { return nullptr; } 8751: }; 8751: template<> 8751: struct MetaObjectForType 8751: { 8751: static inline const QMetaObject *value() { return nullptr; } 8751: }; 8751: template 8751: struct MetaObjectForType::Value>::type> 8751: { 8751: static inline const QMetaObject *value() { return &T::staticMetaObject; } 8751: }; 8751: template 8751: struct MetaObjectForType::Value>::type> 8751: { 8751: static inline const QMetaObject *value() { return &T::staticMetaObject; } 8751: }; 8751: template 8751: struct MetaObjectForType::Value>::type > 8751: { 8751: static inline const QMetaObject *value() { return qt_getEnumMetaObject(T()); } 8751: }; 8751: 8751: template 8751: struct IsSharedPointerToTypeDerivedFromQObject 8751: { 8751: enum { Value = false }; 8751: }; 8751: 8751: template 8751: struct IsSharedPointerToTypeDerivedFromQObject > : IsPointerToTypeDerivedFromQObject 8751: { 8751: }; 8751: 8751: template 8751: struct IsWeakPointerToTypeDerivedFromQObject 8751: { 8751: enum { Value = false }; 8751: }; 8751: 8751: template 8751: struct IsWeakPointerToTypeDerivedFromQObject > : IsPointerToTypeDerivedFromQObject 8751: { 8751: }; 8751: 8751: template 8751: struct IsTrackingPointerToTypeDerivedFromQObject 8751: { 8751: enum { Value = false }; 8751: }; 8751: 8751: template 8751: struct IsTrackingPointerToTypeDerivedFromQObject > 8751: { 8751: enum { Value = true }; 8751: }; 8751: 8751: template 8751: struct IsSequentialContainer 8751: { 8751: enum { Value = false }; 8751: }; 8751: 8751: template 8751: struct IsAssociativeContainer 8751: { 8751: enum { Value = false }; 8751: }; 8751: 8751: template::Value> 8751: struct SequentialContainerConverterHelper 8751: { 8751: static bool registerConverter(int) 8751: { 8751: return false; 8751: } 8751: }; 8751: 8751: template::Defined> 8751: struct ValueTypeIsMetaType 8751: { 8751: static bool registerConverter(int) 8751: { 8751: return false; 8751: } 8751: }; 8751: 8751: template 8751: struct SequentialContainerConverterHelper : ValueTypeIsMetaType 8751: { 8751: }; 8751: 8751: template::Value> 8751: struct AssociativeContainerConverterHelper 8751: { 8751: static bool registerConverter(int) 8751: { 8751: return false; 8751: } 8751: }; 8751: 8751: template::Defined> 8751: struct AssociativeValueTypeIsMetaType 8751: { 8751: static bool registerConverter(int) 8751: { 8751: return false; 8751: } 8751: }; 8751: 8751: template::Defined> 8751: struct KeyAndValueTypeIsMetaType 8751: { 8751: static bool registerConverter(int) 8751: { 8751: return false; 8751: } 8751: }; 8751: 8751: template 8751: struct KeyAndValueTypeIsMetaType : AssociativeValueTypeIsMetaType 8751: { 8751: }; 8751: 8751: template 8751: struct AssociativeContainerConverterHelper : KeyAndValueTypeIsMetaType 8751: { 8751: }; 8751: 8751: template::Defined 8751: && QMetaTypeId2::Defined> 8751: struct IsMetaTypePair 8751: { 8751: static bool registerConverter(int) 8751: { 8751: return false; 8751: } 8751: }; 8751: 8751: template 8751: struct IsMetaTypePair 8751: { 8751: inline static bool registerConverter(int id); 8751: }; 8751: 8751: template 8751: struct IsPair 8751: { 8751: static bool registerConverter(int) 8751: { 8751: return false; 8751: } 8751: }; 8751: template 8751: struct IsPair > : IsMetaTypePair > {}; 8751: template 8751: struct IsPair > : IsMetaTypePair > {}; 8751: 8751: template 8751: struct MetaTypePairHelper : IsPair {}; 8751: 8751: template 8751: struct MetaTypeSmartPointerHelper 8751: { 8751: static bool registerConverter(int) { return false; } 8751: }; 8751: 8751: __attribute__((visibility("default"))) bool isBuiltinType(const QByteArray &type); 8751: } 8751: 8751: template ::Value ? QMetaType::PointerToQObject : 8751: QtPrivate::IsGadgetHelper::Value ? QMetaType::IsGadget : 8751: QtPrivate::IsQEnumHelper::Value ? QMetaType::IsEnumeration : 0> 8751: struct QMetaTypeIdQObject 8751: { 8751: enum { 8751: Defined = 0 8751: }; 8751: }; 8751: 8751: template 8751: struct QMetaTypeId : public QMetaTypeIdQObject 8751: { 8751: }; 8751: 8751: template 8751: struct QMetaTypeId2 8751: { 8751: enum { Defined = QMetaTypeId::Defined, IsBuiltIn=false }; 8751: static inline constexpr int qt_metatype_id() { return QMetaTypeId::qt_metatype_id(); } 8751: }; 8751: 8751: template 8751: struct QMetaTypeId2 : QMetaTypeId2 {}; 8751: 8751: template 8751: struct QMetaTypeId2 { enum {Defined = false }; }; 8751: 8751: namespace QtPrivate { 8751: template ::Defined> 8751: struct QMetaTypeIdHelper { 8751: static inline constexpr int qt_metatype_id() 8751: { return QMetaTypeId2::qt_metatype_id(); } 8751: }; 8751: template struct QMetaTypeIdHelper { 8751: static inline constexpr int qt_metatype_id() 8751: { return -1; } 8751: }; 8751: 8751: 8751: template 8751: struct IsPointerToTypeDerivedFromQObject { enum { Value = false }; }; 8751: 8751: template 8751: struct QMetaTypeTypeFlags 8751: { 8751: enum { Flags = (QTypeInfoQuery::isRelocatable ? QMetaType::MovableType : 0) 8751: | (QTypeInfo::isComplex ? QMetaType::NeedsConstruction : 0) 8751: | (QTypeInfo::isComplex ? QMetaType::NeedsDestruction : 0) 8751: | (IsPointerToTypeDerivedFromQObject::Value ? QMetaType::PointerToQObject : 0) 8751: | (IsSharedPointerToTypeDerivedFromQObject::Value ? QMetaType::SharedPointerToQObject : 0) 8751: | (IsWeakPointerToTypeDerivedFromQObject::Value ? QMetaType::WeakPointerToQObject : 0) 8751: | (IsTrackingPointerToTypeDerivedFromQObject::Value ? QMetaType::TrackingPointerToQObject : 0) 8751: | (std::is_enum::value ? QMetaType::IsEnumeration : 0) 8751: | (IsGadgetHelper::Value ? QMetaType::IsGadget : 0) 8751: }; 8751: }; 8751: 8751: template 8751: struct MetaTypeDefinedHelper 8751: { 8751: enum DefinedType { Defined = defined }; 8751: }; 8751: 8751: template 8751: struct QSmartPointerConvertFunctor 8751: { 8751: QObject* operator()(const SmartPointer &p) const 8751: { 8751: return p.operator->(); 8751: } 8751: }; 8751: 8751: template 8751: struct QSmartPointerConvertFunctor > 8751: { 8751: QObject* operator()(const QWeakPointer &p) const 8751: { 8751: return p.data(); 8751: } 8751: }; 8751: } 8751: 8751: template 8751: int qRegisterNormalizedMetaType(const ::QByteArray &normalizedTypeName 8751: 8751: , T * dummy = 0 8751: , typename QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::DefinedType defined = QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::Defined 8751: 8751: ) 8751: { 8751: 8751: do { } while ((false) && (normalizedTypeName == QMetaObject::normalizedType(normalizedTypeName.constData()))); 8751: 8751: const int typedefOf = dummy ? -1 : QtPrivate::QMetaTypeIdHelper::qt_metatype_id(); 8751: if (typedefOf != -1) 8751: return QMetaType::registerNormalizedTypedef(normalizedTypeName, typedefOf); 8751: 8751: QMetaType::TypeFlags flags(QtPrivate::QMetaTypeTypeFlags::Flags); 8751: 8751: if (defined) 8751: flags |= QMetaType::WasDeclaredAsMetaType; 8751: 8751: const int id = QMetaType::registerNormalizedType(normalizedTypeName, 8751: QtMetaTypePrivate::QMetaTypeFunctionHelper::Destruct, 8751: QtMetaTypePrivate::QMetaTypeFunctionHelper::Construct, 8751: int(sizeof(T)), 8751: flags, 8751: QtPrivate::MetaObjectForType::value()); 8751: 8751: if (id > 0) { 8751: QtPrivate::SequentialContainerConverterHelper::registerConverter(id); 8751: QtPrivate::AssociativeContainerConverterHelper::registerConverter(id); 8751: QtPrivate::MetaTypePairHelper::registerConverter(id); 8751: QtPrivate::MetaTypeSmartPointerHelper::registerConverter(id); 8751: } 8751: 8751: return id; 8751: } 8751: 8751: template 8751: int qRegisterMetaType(const char *typeName 8751: 8751: , T * dummy = nullptr 8751: , typename QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::DefinedType defined = QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::Defined 8751: 8751: ) 8751: { 8751: 8751: 8751: 8751: ::QByteArray normalizedTypeName = QMetaObject::normalizedType(typeName); 8751: 8751: return qRegisterNormalizedMetaType(normalizedTypeName, dummy, defined); 8751: } 8751: 8751: 8751: template 8751: void qRegisterMetaTypeStreamOperators(const char *typeName 8751: 8751: , T * = nullptr 8751: 8751: ) 8751: { 8751: qRegisterMetaType(typeName); 8751: QMetaType::registerStreamOperators(typeName, QtMetaTypePrivate::QMetaTypeFunctionHelper::Save, 8751: QtMetaTypePrivate::QMetaTypeFunctionHelper::Load); 8751: } 8751: 8751: 8751: template 8751: inline constexpr int qMetaTypeId() 8751: { 8751: static_assert(bool(QMetaTypeId2::Defined), "Type is not registered, please use the Q_DECLARE_METATYPE macro to make it known to Qt's meta-object system"); 8751: return QMetaTypeId2::qt_metatype_id(); 8751: } 8751: 8751: template 8751: inline constexpr int qRegisterMetaType() 8751: { 8751: return qMetaTypeId(); 8751: } 8751: 8751: 8751: 8751: template 8751: inline constexpr int qMetaTypeId(T *) 8751: { return qMetaTypeId(); } 8751: 8751: template 8751: inline constexpr int qRegisterMetaType(T *) 8751: { return qRegisterMetaType(); } 8751: 8751: 8751: 8751: 8751: template 8751: struct QMetaTypeIdQObject 8751: { 8751: enum { 8751: Defined = 1 8751: }; 8751: 8751: static int qt_metatype_id() 8751: { 8751: static QBasicAtomicInt metatype_id = { 0 }; 8751: if (const int id = metatype_id.loadAcquire()) 8751: return id; 8751: const char * const cName = T::staticMetaObject.className(); 8751: QByteArray typeName; 8751: typeName.reserve(int(strlen(cName)) + 1); 8751: typeName.append(cName).append('*'); 8751: const int newId = qRegisterNormalizedMetaType( 8751: typeName, 8751: reinterpret_cast(quintptr(-1))); 8751: metatype_id.storeRelease(newId); 8751: return newId; 8751: } 8751: }; 8751: 8751: template 8751: struct QMetaTypeIdQObject 8751: { 8751: enum { 8751: Defined = std::is_default_constructible::value 8751: }; 8751: 8751: static int qt_metatype_id() 8751: { 8751: static QBasicAtomicInt metatype_id = { 0 }; 8751: if (const int id = metatype_id.loadAcquire()) 8751: return id; 8751: const char * const cName = T::staticMetaObject.className(); 8751: const int newId = qRegisterNormalizedMetaType( 8751: cName, 8751: reinterpret_cast(quintptr(-1))); 8751: metatype_id.storeRelease(newId); 8751: return newId; 8751: } 8751: }; 8751: 8751: template 8751: struct QMetaTypeIdQObject 8751: { 8751: enum { 8751: Defined = 1 8751: }; 8751: 8751: static int qt_metatype_id() 8751: { 8751: static QBasicAtomicInt metatype_id = { 0 }; 8751: if (const int id = metatype_id.loadAcquire()) 8751: return id; 8751: const char *eName = qt_getEnumName(T()); 8751: const char *cName = qt_getEnumMetaObject(T())->className(); 8751: QByteArray typeName; 8751: typeName.reserve(int(strlen(cName) + 2 + strlen(eName))); 8751: typeName.append(cName).append("::").append(eName); 8751: const int newId = qRegisterNormalizedMetaType( 8751: typeName, 8751: reinterpret_cast(quintptr(-1))); 8751: metatype_id.storeRelease(newId); 8751: return newId; 8751: } 8751: }; 8751: 8751: 8751: 8751: template 8751: inline int qRegisterMetaTypeStreamOperators() 8751: { 8751: int id = qMetaTypeId(); 8751: QMetaType::registerStreamOperators(id, QtMetaTypePrivate::QMetaTypeFunctionHelper::Save, 8751: QtMetaTypePrivate::QMetaTypeFunctionHelper::Load); 8751: return id; 8751: } 8751: # 1881 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 3 4 8751: class QChar; class QString; class QStringList; class QByteArray; class QBitArray; class QDate; class QTime; class QDateTime; class QUrl; class QLocale; class QRect; class QRectF; class QSize; class QSizeF; class QLine; class QLineF; class QPoint; class QPointF; class QRegExp; class QEasingCurve; class QUuid; class QVariant; class QModelIndex; class QRegularExpression; class QJsonValue; class QJsonObject; class QJsonArray; class QJsonDocument; class QPersistentModelIndex; 8751: class QFont; class QPixmap; class QBrush; class QColor; class QPalette; class QIcon; class QImage; class QPolygon; class QRegion; class QBitmap; class QCursor; class QKeySequence; class QPen; class QTextLength; class QTextFormat; class QMatrix; class QTransform; class QMatrix4x4; class QVector2D; class QVector3D; class QVector4D; class QQuaternion; class QPolygonF; 8751: class QSizePolicy; 8751: 8751: 8751: 8751: typedef QList QVariantList; 8751: typedef QMap QVariantMap; 8751: typedef QHash QVariantHash; 8751: 8751: typedef QList QByteArrayList; 8751: # 1968 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 3 4 8751: namespace QtPrivate { 8751: 8751: template 8751: struct SharedPointerMetaTypeIdHelper 8751: { 8751: enum { 8751: Defined = 0 8751: }; 8751: static int qt_metatype_id() 8751: { 8751: return -1; 8751: } 8751: }; 8751: 8751: } 8751: # 2042 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 3 4 8751: 8751: 8751: template class QList; template struct QMetaTypeId< QList > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("QList")) + 1 + tNameLen + 1 + 1); typeName.append("QList", int(sizeof("QList")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QList >( typeName, reinterpret_cast< QList *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } template class QVector; template struct QMetaTypeId< QVector > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("QVector")) + 1 + tNameLen + 1 + 1); typeName.append("QVector", int(sizeof("QVector")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QVector >( typeName, reinterpret_cast< QVector *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } template class QQueue; template struct QMetaTypeId< QQueue > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("QQueue")) + 1 + tNameLen + 1 + 1); typeName.append("QQueue", int(sizeof("QQueue")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QQueue >( typeName, reinterpret_cast< QQueue *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } template class QStack; template struct QMetaTypeId< QStack > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("QStack")) + 1 + tNameLen + 1 + 1); typeName.append("QStack", int(sizeof("QStack")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QStack >( typeName, reinterpret_cast< QStack *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } template class QSet; template struct QMetaTypeId< QSet > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("QSet")) + 1 + tNameLen + 1 + 1); typeName.append("QSet", int(sizeof("QSet")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QSet >( typeName, reinterpret_cast< QSet *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } template class QLinkedList; template struct QMetaTypeId< QLinkedList > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("QLinkedList")) + 1 + tNameLen + 1 + 1); typeName.append("QLinkedList", int(sizeof("QLinkedList")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QLinkedList >( typeName, reinterpret_cast< QLinkedList *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } 8751: 8751: 8751: 8751: 8751: 8751: template struct QMetaTypeId< std::vector > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("std::vector")) + 1 + tNameLen + 1 + 1); typeName.append("std::vector", int(sizeof("std::vector")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< std::vector >( typeName, reinterpret_cast< std::vector *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } 8751: template struct QMetaTypeId< std::list > { enum { Defined = QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.load()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); const int tNameLen = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof("std::list")) + 1 + tNameLen + 1 + 1); typeName.append("std::list", int(sizeof("std::list")) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< std::list >( typeName, reinterpret_cast< std::list *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer > { enum { Value = true }; }; } 8751: 8751: 8751: 8751: 8751: 8751: 8751: template class QHash; template class QMap; template struct QPair; 8751: # 2074 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetatype.h" 3 4 8751: namespace QtPrivate { template struct IsAssociativeContainer > { enum { Value = true }; }; } template struct QMetaTypeId< QHash > { enum { Defined = QMetaTypeId2::Defined && QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); const char *uName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); do { } while ((false) && (uName)); const int tNameLen = int(qstrlen(tName)); const int uNameLen = int(qstrlen(uName)); QByteArray typeName; typeName.reserve(int(sizeof("QHash")) + 1 + tNameLen + 1 + uNameLen + 1 + 1); typeName.append("QHash", int(sizeof("QHash")) - 1) .append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QHash >( typeName, reinterpret_cast< QHash *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8751: namespace QtPrivate { template struct IsAssociativeContainer > { enum { Value = true }; }; } template struct QMetaTypeId< QMap > { enum { Defined = QMetaTypeId2::Defined && QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); const char *uName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); do { } while ((false) && (uName)); const int tNameLen = int(qstrlen(tName)); const int uNameLen = int(qstrlen(uName)); QByteArray typeName; typeName.reserve(int(sizeof("QMap")) + 1 + tNameLen + 1 + uNameLen + 1 + 1); typeName.append("QMap", int(sizeof("QMap")) - 1) .append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QMap >( typeName, reinterpret_cast< QMap *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8751: namespace QtPrivate { template struct IsAssociativeContainer > { enum { Value = true }; }; } template struct QMetaTypeId< std::map > { enum { Defined = QMetaTypeId2::Defined && QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); const char *uName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); do { } while ((false) && (uName)); const int tNameLen = int(qstrlen(tName)); const int uNameLen = int(qstrlen(uName)); QByteArray typeName; typeName.reserve(int(sizeof("std::map")) + 1 + tNameLen + 1 + uNameLen + 1 + 1); typeName.append("std::map", int(sizeof("std::map")) - 1) .append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< std::map >( typeName, reinterpret_cast< std::map *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8751: 8751: template struct QMetaTypeId< QPair > { enum { Defined = QMetaTypeId2::Defined && QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); const char *uName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); do { } while ((false) && (uName)); const int tNameLen = int(qstrlen(tName)); const int uNameLen = int(qstrlen(uName)); QByteArray typeName; typeName.reserve(int(sizeof("QPair")) + 1 + tNameLen + 1 + uNameLen + 1 + 1); typeName.append("QPair", int(sizeof("QPair")) - 1) .append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< QPair >( typeName, reinterpret_cast< QPair *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8751: template struct QMetaTypeId< std::pair > { enum { Defined = QMetaTypeId2::Defined && QMetaTypeId2::Defined }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char *tName = QMetaType::typeName(qMetaTypeId()); const char *uName = QMetaType::typeName(qMetaTypeId()); do { } while ((false) && (tName)); do { } while ((false) && (uName)); const int tNameLen = int(qstrlen(tName)); const int uNameLen = int(qstrlen(uName)); QByteArray typeName; typeName.reserve(int(sizeof("std::pair")) + 1 + tNameLen + 1 + uNameLen + 1 + 1); typeName.append("std::pair", int(sizeof("std::pair")) - 1) .append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< std::pair >( typeName, reinterpret_cast< std::pair *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8751: 8751: 8751: 8751: 8751: 8751: namespace QtPrivate { template struct SharedPointerMetaTypeIdHelper, true> { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char * const cName = T::staticMetaObject.className(); QByteArray typeName; typeName.reserve(int(sizeof("QSharedPointer") + 1 + strlen(cName) + 1)); typeName.append("QSharedPointer", int(sizeof("QSharedPointer")) - 1) .append('<').append(cName).append('>'); const int newId = qRegisterNormalizedMetaType< QSharedPointer >( typeName, reinterpret_cast< QSharedPointer *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; template struct MetaTypeSmartPointerHelper , typename std::enable_if::Value>::type> { static bool registerConverter(int id) { const int toId = QMetaType::QObjectStar; if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { QtPrivate::QSmartPointerConvertFunctor > o; static const QtPrivate::ConverterFunctor, QObject*, QSmartPointerConvertFunctor > > f(o); return QMetaType::registerConverterFunction(&f, id, toId); } return true; } }; } template struct QMetaTypeId< QSharedPointer > : QtPrivate::SharedPointerMetaTypeIdHelper< QSharedPointer, QtPrivate::IsPointerToTypeDerivedFromQObject::Value> { }; namespace QtPrivate { template struct SharedPointerMetaTypeIdHelper, true> { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char * const cName = T::staticMetaObject.className(); QByteArray typeName; typeName.reserve(int(sizeof("QWeakPointer") + 1 + strlen(cName) + 1)); typeName.append("QWeakPointer", int(sizeof("QWeakPointer")) - 1) .append('<').append(cName).append('>'); const int newId = qRegisterNormalizedMetaType< QWeakPointer >( typeName, reinterpret_cast< QWeakPointer *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; template struct MetaTypeSmartPointerHelper , typename std::enable_if::Value>::type> { static bool registerConverter(int id) { const int toId = QMetaType::QObjectStar; if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { QtPrivate::QSmartPointerConvertFunctor > o; static const QtPrivate::ConverterFunctor, QObject*, QSmartPointerConvertFunctor > > f(o); return QMetaType::registerConverterFunction(&f, id, toId); } return true; } }; } template struct QMetaTypeId< QWeakPointer > : QtPrivate::SharedPointerMetaTypeIdHelper< QWeakPointer, QtPrivate::IsPointerToTypeDerivedFromQObject::Value> { }; namespace QtPrivate { template struct SharedPointerMetaTypeIdHelper, true> { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const char * const cName = T::staticMetaObject.className(); QByteArray typeName; typeName.reserve(int(sizeof("QPointer") + 1 + strlen(cName) + 1)); typeName.append("QPointer", int(sizeof("QPointer")) - 1) .append('<').append(cName).append('>'); const int newId = qRegisterNormalizedMetaType< QPointer >( typeName, reinterpret_cast< QPointer *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; template struct MetaTypeSmartPointerHelper , typename std::enable_if::Value>::type> { static bool registerConverter(int id) { const int toId = QMetaType::QObjectStar; if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { QtPrivate::QSmartPointerConvertFunctor > o; static const QtPrivate::ConverterFunctor, QObject*, QSmartPointerConvertFunctor > > f(o); return QMetaType::registerConverterFunction(&f, id, toId); } return true; } }; } template struct QMetaTypeId< QPointer > : QtPrivate::SharedPointerMetaTypeIdHelper< QPointer, QtPrivate::IsPointerToTypeDerivedFromQObject::Value> { }; 8751: 8751: 8751: 8751: 8751: 8751: inline QMetaType::QMetaType(const ExtensionFlag extensionFlags, const QMetaTypeInterface *info, 8751: Creator creator, 8751: Deleter deleter, 8751: SaveOperator saveOp, 8751: LoadOperator loadOp, 8751: Constructor constructor, 8751: Destructor destructor, 8751: uint size, 8751: uint theTypeFlags, 8751: int typeId, 8751: const QMetaObject *_metaObject) 8751: : m_creator_unused(creator) 8751: , m_deleter_unused(deleter) 8751: , m_saveOp(saveOp) 8751: , m_loadOp(loadOp) 8751: , m_constructor(constructor) 8751: , m_destructor(destructor) 8751: , m_extension(nullptr) 8751: , m_size(size) 8751: , m_typeFlags(theTypeFlags) 8751: , m_extensionFlags(extensionFlags) 8751: , m_typeId(typeId) 8751: , m_metaObject(_metaObject) 8751: { 8751: if (__builtin_expect(!!(isExtended(CtorEx) || typeId == QMetaType::Void), false)) 8751: ctor(info); 8751: } 8751: 8751: inline QMetaType::~QMetaType() 8751: { 8751: if (__builtin_expect(!!(isExtended(DtorEx)), false)) 8751: dtor(); 8751: } 8751: 8751: inline bool QMetaType::isValid() const 8751: { 8751: return m_typeId != UnknownType; 8751: } 8751: 8751: inline bool QMetaType::isRegistered() const 8751: { 8751: return isValid(); 8751: } 8751: 8751: inline void *QMetaType::create(const void *copy) const 8751: { 8751: 8751: return createExtended(copy); 8751: } 8751: 8751: inline void QMetaType::destroy(void *data) const 8751: { 8751: 8751: destroyExtended(data); 8751: } 8751: 8751: inline void *QMetaType::construct(void *where, const void *copy) const 8751: { 8751: if (__builtin_expect(!!(isExtended(ConstructEx)), false)) 8751: return constructExtended(where, copy); 8751: return m_constructor(where, copy); 8751: } 8751: 8751: inline void QMetaType::destruct(void *data) const 8751: { 8751: if (__builtin_expect(!!(isExtended(DestructEx)), false)) 8751: return destructExtended(data); 8751: if (__builtin_expect(!!(!data), false)) 8751: return; 8751: m_destructor(data); 8751: } 8751: 8751: inline int QMetaType::sizeOf() const 8751: { 8751: if (__builtin_expect(!!(isExtended(SizeEx)), false)) 8751: return sizeExtended(); 8751: return m_size; 8751: } 8751: 8751: inline QMetaType::TypeFlags QMetaType::flags() const 8751: { 8751: if (__builtin_expect(!!(isExtended(FlagsEx)), false)) 8751: return flagsExtended(); 8751: return QMetaType::TypeFlags(m_typeFlags); 8751: } 8751: 8751: inline const QMetaObject *QMetaType::metaObject() const 8751: { 8751: if (__builtin_expect(!!(isExtended(MetaObjectEx)), false)) 8751: return metaObjectExtended(); 8751: return m_metaObject; 8751: } 8751: 8751: 8751: 8751: 8751: template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 43 }; static inline constexpr int qt_metatype_id() { return 43; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 1 }; static inline constexpr int qt_metatype_id() { return 1; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 2 }; static inline constexpr int qt_metatype_id() { return 2; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 3 }; static inline constexpr int qt_metatype_id() { return 3; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 4 }; static inline constexpr int qt_metatype_id() { return 4; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 5 }; static inline constexpr int qt_metatype_id() { return 5; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 6 }; static inline constexpr int qt_metatype_id() { return 6; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 32 }; static inline constexpr int qt_metatype_id() { return 32; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 33 }; static inline constexpr int qt_metatype_id() { return 33; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 34 }; static inline constexpr int qt_metatype_id() { return 34; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 35 }; static inline constexpr int qt_metatype_id() { return 35; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 36 }; static inline constexpr int qt_metatype_id() { return 36; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 37 }; static inline constexpr int qt_metatype_id() { return 37; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 38 }; static inline constexpr int qt_metatype_id() { return 38; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 40 }; static inline constexpr int qt_metatype_id() { return 40; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 51 }; static inline constexpr int qt_metatype_id() { return 51; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 31 }; static inline constexpr int qt_metatype_id() { return 31; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 7 }; static inline constexpr int qt_metatype_id() { return 7; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 10 }; static inline constexpr int qt_metatype_id() { return 10; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 11 }; static inline constexpr int qt_metatype_id() { return 11; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 12 }; static inline constexpr int qt_metatype_id() { return 12; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 13 }; static inline constexpr int qt_metatype_id() { return 13; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 14 }; static inline constexpr int qt_metatype_id() { return 14; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 15 }; static inline constexpr int qt_metatype_id() { return 15; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 16 }; static inline constexpr int qt_metatype_id() { return 16; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 17 }; static inline constexpr int qt_metatype_id() { return 17; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 18 }; static inline constexpr int qt_metatype_id() { return 18; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 19 }; static inline constexpr int qt_metatype_id() { return 19; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 20 }; static inline constexpr int qt_metatype_id() { return 20; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 21 }; static inline constexpr int qt_metatype_id() { return 21; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 22 }; static inline constexpr int qt_metatype_id() { return 22; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 23 }; static inline constexpr int qt_metatype_id() { return 23; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 24 }; static inline constexpr int qt_metatype_id() { return 24; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 25 }; static inline constexpr int qt_metatype_id() { return 25; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 26 }; static inline constexpr int qt_metatype_id() { return 26; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 27 }; static inline constexpr int qt_metatype_id() { return 27; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 29 }; static inline constexpr int qt_metatype_id() { return 29; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 30 }; static inline constexpr int qt_metatype_id() { return 30; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 41 }; static inline constexpr int qt_metatype_id() { return 41; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 42 }; static inline constexpr int qt_metatype_id() { return 42; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 44 }; static inline constexpr int qt_metatype_id() { return 44; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 45 }; static inline constexpr int qt_metatype_id() { return 45; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 46 }; static inline constexpr int qt_metatype_id() { return 46; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 47 }; static inline constexpr int qt_metatype_id() { return 47; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 48 }; static inline constexpr int qt_metatype_id() { return 48; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 50 }; static inline constexpr int qt_metatype_id() { return 50; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 39 }; static inline constexpr int qt_metatype_id() { return 39; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 8 }; static inline constexpr int qt_metatype_id() { return 8; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 9 }; static inline constexpr int qt_metatype_id() { return 9; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 28 }; static inline constexpr int qt_metatype_id() { return 28; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 49 }; static inline constexpr int qt_metatype_id() { return 49; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 64 }; static inline constexpr int qt_metatype_id() { return 64; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 65 }; static inline constexpr int qt_metatype_id() { return 65; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 66 }; static inline constexpr int qt_metatype_id() { return 66; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 67 }; static inline constexpr int qt_metatype_id() { return 67; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 68 }; static inline constexpr int qt_metatype_id() { return 68; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 69 }; static inline constexpr int qt_metatype_id() { return 69; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 70 }; static inline constexpr int qt_metatype_id() { return 70; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 71 }; static inline constexpr int qt_metatype_id() { return 71; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 72 }; static inline constexpr int qt_metatype_id() { return 72; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 73 }; static inline constexpr int qt_metatype_id() { return 73; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 74 }; static inline constexpr int qt_metatype_id() { return 74; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 75 }; static inline constexpr int qt_metatype_id() { return 75; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 76 }; static inline constexpr int qt_metatype_id() { return 76; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 77 }; static inline constexpr int qt_metatype_id() { return 77; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 78 }; static inline constexpr int qt_metatype_id() { return 78; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 79 }; static inline constexpr int qt_metatype_id() { return 79; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 80 }; static inline constexpr int qt_metatype_id() { return 80; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 81 }; static inline constexpr int qt_metatype_id() { return 81; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 82 }; static inline constexpr int qt_metatype_id() { return 82; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 83 }; static inline constexpr int qt_metatype_id() { return 83; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 84 }; static inline constexpr int qt_metatype_id() { return 84; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 85 }; static inline constexpr int qt_metatype_id() { return 85; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 86 }; static inline constexpr int qt_metatype_id() { return 86; } }; template<> struct QMetaTypeId2 { enum { Defined = 1, IsBuiltIn = true, MetaType = 121 }; static inline constexpr int qt_metatype_id() { return 121; } }; 8751: 8751: template <> struct QMetaTypeId< QtMetaTypePrivate::QSequentialIterableImpl > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< QtMetaTypePrivate::QSequentialIterableImpl >("QtMetaTypePrivate::QSequentialIterableImpl", reinterpret_cast< QtMetaTypePrivate::QSequentialIterableImpl *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8751: template <> struct QMetaTypeId< QtMetaTypePrivate::QAssociativeIterableImpl > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< QtMetaTypePrivate::QAssociativeIterableImpl >("QtMetaTypePrivate::QAssociativeIterableImpl", reinterpret_cast< QtMetaTypePrivate::QAssociativeIterableImpl *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8751: template <> struct QMetaTypeId< QtMetaTypePrivate::QPairVariantInterfaceImpl > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< QtMetaTypePrivate::QPairVariantInterfaceImpl >("QtMetaTypePrivate::QPairVariantInterfaceImpl", reinterpret_cast< QtMetaTypePrivate::QPairVariantInterfaceImpl *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8751: 8751: 8751: 8751: template 8751: inline bool QtPrivate::IsMetaTypePair::registerConverter(int id) 8751: { 8751: const int toId = qMetaTypeId(); 8751: if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { 8751: QtMetaTypePrivate::QPairVariantInterfaceConvertFunctor o; 8751: static const QtPrivate::ConverterFunctor > f(o); 8751: return QMetaType::registerConverterFunction(&f, id, toId); 8751: } 8751: return true; 8751: } 8751: 8751: namespace QtPrivate { 8751: template 8751: struct ValueTypeIsMetaType 8751: { 8751: static bool registerConverter(int id) 8751: { 8751: const int toId = qMetaTypeId(); 8751: if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { 8751: QtMetaTypePrivate::QSequentialIterableConvertFunctor o; 8751: static const QtPrivate::ConverterFunctor > f(o); 8751: return QMetaType::registerConverterFunction(&f, id, toId); 8751: } 8751: return true; 8751: } 8751: }; 8751: 8751: template 8751: struct AssociativeValueTypeIsMetaType 8751: { 8751: static bool registerConverter(int id) 8751: { 8751: const int toId = qMetaTypeId(); 8751: if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { 8751: QtMetaTypePrivate::QAssociativeIterableConvertFunctor o; 8751: static const QtPrivate::ConverterFunctor > f(o); 8751: return QMetaType::registerConverterFunction(&f, id, toId); 8751: } 8751: return true; 8751: } 8751: }; 8751: } 8751: 8751: 8751: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 1 3 4 8751: # 54 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 3 4 8751: # 1 "/usr/include/c++/8/functional" 1 3 4 8751: # 46 "/usr/include/c++/8/functional" 3 4 8751: 8751: # 47 "/usr/include/c++/8/functional" 3 8751: # 58 "/usr/include/c++/8/functional" 3 8751: # 1 "/usr/include/c++/8/bits/refwrap.h" 1 3 8751: # 33 "/usr/include/c++/8/bits/refwrap.h" 3 8751: 8751: # 34 "/usr/include/c++/8/bits/refwrap.h" 3 8751: # 43 "/usr/include/c++/8/bits/refwrap.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct _Maybe_unary_or_binary_function { }; 8751: 8751: 8751: template 8751: struct _Maybe_unary_or_binary_function<_Res, _T1> 8751: : std::unary_function<_T1, _Res> { }; 8751: 8751: 8751: template 8751: struct _Maybe_unary_or_binary_function<_Res, _T1, _T2> 8751: : std::binary_function<_T1, _T2, _Res> { }; 8751: 8751: template 8751: struct _Mem_fn_traits; 8751: 8751: template 8751: struct _Mem_fn_traits_base 8751: { 8751: using __result_type = _Res; 8751: using __maybe_type 8751: = _Maybe_unary_or_binary_function<_Res, _Class*, _ArgTypes...>; 8751: using __arity = integral_constant; 8751: }; 8751: # 97 "/usr/include/c++/8/bits/refwrap.h" 3 8751: 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; }; 8751: 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; }; 8751: 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; }; 8751: # 111 "/usr/include/c++/8/bits/refwrap.h" 3 8751: template> 8751: struct _Maybe_get_result_type 8751: { }; 8751: 8751: template 8751: struct _Maybe_get_result_type<_Functor, 8751: __void_t> 8751: { typedef typename _Functor::result_type result_type; }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct _Weak_result_type_impl 8751: : _Maybe_get_result_type<_Functor> 8751: { }; 8751: 8751: 8751: template 8751: struct _Weak_result_type_impl<_Res(_ArgTypes...) > 8751: { typedef _Res result_type; }; 8751: 8751: 8751: template 8751: struct _Weak_result_type_impl<_Res(_ArgTypes......) > 8751: { typedef _Res result_type; }; 8751: 8751: 8751: template 8751: struct _Weak_result_type_impl<_Res(*)(_ArgTypes...) > 8751: { typedef _Res result_type; }; 8751: 8751: 8751: template 8751: struct 8751: _Weak_result_type_impl<_Res(*)(_ArgTypes......) > 8751: { typedef _Res result_type; }; 8751: 8751: 8751: template::value> 8751: struct _Weak_result_type_memfun 8751: : _Weak_result_type_impl<_Functor> 8751: { }; 8751: 8751: 8751: template 8751: struct _Weak_result_type_memfun<_MemFunPtr, true> 8751: { 8751: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 8751: }; 8751: 8751: 8751: template 8751: struct _Weak_result_type_memfun<_Func _Class::*, false> 8751: { }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct _Weak_result_type 8751: : _Weak_result_type_memfun::type> 8751: { }; 8751: 8751: 8751: template> 8751: struct _Refwrap_base_arg1 8751: { }; 8751: 8751: 8751: template 8751: struct _Refwrap_base_arg1<_Tp, 8751: __void_t> 8751: { 8751: typedef typename _Tp::argument_type argument_type; 8751: }; 8751: 8751: 8751: template> 8751: struct _Refwrap_base_arg2 8751: { }; 8751: 8751: 8751: template 8751: struct _Refwrap_base_arg2<_Tp, 8751: __void_t> 8751: { 8751: typedef typename _Tp::first_argument_type first_argument_type; 8751: typedef typename _Tp::second_argument_type second_argument_type; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct _Reference_wrapper_base 8751: : _Weak_result_type<_Tp>, _Refwrap_base_arg1<_Tp>, _Refwrap_base_arg2<_Tp> 8751: { }; 8751: 8751: 8751: template 8751: struct _Reference_wrapper_base<_Res(_T1) > 8751: : unary_function<_T1, _Res> 8751: { }; 8751: 8751: template 8751: struct _Reference_wrapper_base<_Res(_T1) const> 8751: : unary_function<_T1, _Res> 8751: { }; 8751: 8751: template 8751: struct _Reference_wrapper_base<_Res(_T1) volatile> 8751: : unary_function<_T1, _Res> 8751: { }; 8751: 8751: template 8751: struct _Reference_wrapper_base<_Res(_T1) const volatile> 8751: : unary_function<_T1, _Res> 8751: { }; 8751: 8751: 8751: template 8751: struct _Reference_wrapper_base<_Res(_T1, _T2) > 8751: : binary_function<_T1, _T2, _Res> 8751: { }; 8751: 8751: template 8751: struct _Reference_wrapper_base<_Res(_T1, _T2) const> 8751: : binary_function<_T1, _T2, _Res> 8751: { }; 8751: 8751: template 8751: struct _Reference_wrapper_base<_Res(_T1, _T2) volatile> 8751: : binary_function<_T1, _T2, _Res> 8751: { }; 8751: 8751: template 8751: struct _Reference_wrapper_base<_Res(_T1, _T2) const volatile> 8751: : binary_function<_T1, _T2, _Res> 8751: { }; 8751: 8751: 8751: template 8751: struct _Reference_wrapper_base<_Res(*)(_T1) > 8751: : unary_function<_T1, _Res> 8751: { }; 8751: 8751: 8751: template 8751: struct _Reference_wrapper_base<_Res(*)(_T1, _T2) > 8751: : binary_function<_T1, _T2, _Res> 8751: { }; 8751: 8751: template::value> 8751: struct _Reference_wrapper_base_memfun 8751: : _Reference_wrapper_base<_Tp> 8751: { }; 8751: 8751: template 8751: struct _Reference_wrapper_base_memfun<_MemFunPtr, true> 8751: : _Mem_fn_traits<_MemFunPtr>::__maybe_type 8751: { 8751: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: class reference_wrapper 8751: : public _Reference_wrapper_base_memfun::type> 8751: { 8751: _Tp* _M_data; 8751: 8751: public: 8751: typedef _Tp type; 8751: 8751: reference_wrapper(_Tp& __indata) noexcept 8751: : _M_data(std::__addressof(__indata)) 8751: { } 8751: 8751: reference_wrapper(_Tp&&) = delete; 8751: 8751: reference_wrapper(const reference_wrapper&) = default; 8751: 8751: reference_wrapper& 8751: operator=(const reference_wrapper&) = default; 8751: 8751: operator _Tp&() const noexcept 8751: { return this->get(); } 8751: 8751: _Tp& 8751: get() const noexcept 8751: { return *_M_data; } 8751: 8751: template 8751: typename result_of<_Tp&(_Args&&...)>::type 8751: operator()(_Args&&... __args) const 8751: { 8751: return std::__invoke(get(), std::forward<_Args>(__args)...); 8751: } 8751: }; 8751: 8751: 8751: 8751: template 8751: inline reference_wrapper<_Tp> 8751: ref(_Tp& __t) noexcept 8751: { return reference_wrapper<_Tp>(__t); } 8751: 8751: 8751: template 8751: inline reference_wrapper 8751: cref(const _Tp& __t) noexcept 8751: { return reference_wrapper(__t); } 8751: 8751: template 8751: void ref(const _Tp&&) = delete; 8751: 8751: template 8751: void cref(const _Tp&&) = delete; 8751: 8751: 8751: template 8751: inline reference_wrapper<_Tp> 8751: ref(reference_wrapper<_Tp> __t) noexcept 8751: { return __t; } 8751: 8751: 8751: template 8751: inline reference_wrapper 8751: cref(reference_wrapper<_Tp> __t) noexcept 8751: { return { __t.get() }; } 8751: 8751: 8751: 8751: 8751: } 8751: # 59 "/usr/include/c++/8/functional" 2 3 8751: # 1 "/usr/include/c++/8/bits/std_function.h" 1 3 8751: # 33 "/usr/include/c++/8/bits/std_function.h" 3 8751: 8751: # 34 "/usr/include/c++/8/bits/std_function.h" 3 8751: # 47 "/usr/include/c++/8/bits/std_function.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: class bad_function_call : public std::exception 8751: { 8751: public: 8751: virtual ~bad_function_call() noexcept; 8751: 8751: const char* what() const noexcept; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct __is_location_invariant 8751: : is_trivially_copyable<_Tp>::type 8751: { }; 8751: 8751: class _Undefined_class; 8751: 8751: union _Nocopy_types 8751: { 8751: void* _M_object; 8751: const void* _M_const_object; 8751: void (*_M_function_pointer)(); 8751: void (_Undefined_class::*_M_member_pointer)(); 8751: }; 8751: 8751: union [[gnu::may_alias]] _Any_data 8751: { 8751: void* _M_access() { return &_M_pod_data[0]; } 8751: const void* _M_access() const { return &_M_pod_data[0]; } 8751: 8751: template 8751: _Tp& 8751: _M_access() 8751: { return *static_cast<_Tp*>(_M_access()); } 8751: 8751: template 8751: const _Tp& 8751: _M_access() const 8751: { return *static_cast(_M_access()); } 8751: 8751: _Nocopy_types _M_unused; 8751: char _M_pod_data[sizeof(_Nocopy_types)]; 8751: }; 8751: 8751: enum _Manager_operation 8751: { 8751: __get_type_info, 8751: __get_functor_ptr, 8751: __clone_functor, 8751: __destroy_functor 8751: }; 8751: 8751: 8751: 8751: template 8751: struct _Simple_type_wrapper 8751: { 8751: _Simple_type_wrapper(_Tp __value) : __value(__value) { } 8751: 8751: _Tp __value; 8751: }; 8751: 8751: template 8751: struct __is_location_invariant<_Simple_type_wrapper<_Tp> > 8751: : __is_location_invariant<_Tp> 8751: { }; 8751: 8751: template 8751: class function; 8751: 8751: 8751: class _Function_base 8751: { 8751: public: 8751: static const std::size_t _M_max_size = sizeof(_Nocopy_types); 8751: static const std::size_t _M_max_align = __alignof__(_Nocopy_types); 8751: 8751: template 8751: class _Base_manager 8751: { 8751: protected: 8751: static const bool __stored_locally = 8751: (__is_location_invariant<_Functor>::value 8751: && sizeof(_Functor) <= _M_max_size 8751: && __alignof__(_Functor) <= _M_max_align 8751: && (_M_max_align % __alignof__(_Functor) == 0)); 8751: 8751: typedef integral_constant _Local_storage; 8751: 8751: 8751: static _Functor* 8751: _M_get_pointer(const _Any_data& __source) 8751: { 8751: const _Functor* __ptr = 8751: __stored_locally? std::__addressof(__source._M_access<_Functor>()) 8751: : __source._M_access<_Functor*>(); 8751: return const_cast<_Functor*>(__ptr); 8751: } 8751: 8751: 8751: 8751: static void 8751: _M_clone(_Any_data& __dest, const _Any_data& __source, true_type) 8751: { 8751: ::new (__dest._M_access()) _Functor(__source._M_access<_Functor>()); 8751: } 8751: 8751: 8751: 8751: static void 8751: _M_clone(_Any_data& __dest, const _Any_data& __source, false_type) 8751: { 8751: __dest._M_access<_Functor*>() = 8751: new _Functor(*__source._M_access<_Functor*>()); 8751: } 8751: 8751: 8751: 8751: static void 8751: _M_destroy(_Any_data& __victim, true_type) 8751: { 8751: __victim._M_access<_Functor>().~_Functor(); 8751: } 8751: 8751: 8751: static void 8751: _M_destroy(_Any_data& __victim, false_type) 8751: { 8751: delete __victim._M_access<_Functor*>(); 8751: } 8751: 8751: public: 8751: static bool 8751: _M_manager(_Any_data& __dest, const _Any_data& __source, 8751: _Manager_operation __op) 8751: { 8751: switch (__op) 8751: { 8751: 8751: case __get_type_info: 8751: __dest._M_access() = &typeid(_Functor); 8751: break; 8751: 8751: case __get_functor_ptr: 8751: __dest._M_access<_Functor*>() = _M_get_pointer(__source); 8751: break; 8751: 8751: case __clone_functor: 8751: _M_clone(__dest, __source, _Local_storage()); 8751: break; 8751: 8751: case __destroy_functor: 8751: _M_destroy(__dest, _Local_storage()); 8751: break; 8751: } 8751: return false; 8751: } 8751: 8751: static void 8751: _M_init_functor(_Any_data& __functor, _Functor&& __f) 8751: { _M_init_functor(__functor, std::move(__f), _Local_storage()); } 8751: 8751: template 8751: static bool 8751: _M_not_empty_function(const function<_Signature>& __f) 8751: { return static_cast(__f); } 8751: 8751: template 8751: static bool 8751: _M_not_empty_function(_Tp* __fp) 8751: { return __fp != nullptr; } 8751: 8751: template 8751: static bool 8751: _M_not_empty_function(_Tp _Class::* __mp) 8751: { return __mp != nullptr; } 8751: 8751: template 8751: static bool 8751: _M_not_empty_function(const _Tp&) 8751: { return true; } 8751: 8751: private: 8751: static void 8751: _M_init_functor(_Any_data& __functor, _Functor&& __f, true_type) 8751: { ::new (__functor._M_access()) _Functor(std::move(__f)); } 8751: 8751: static void 8751: _M_init_functor(_Any_data& __functor, _Functor&& __f, false_type) 8751: { __functor._M_access<_Functor*>() = new _Functor(std::move(__f)); } 8751: }; 8751: 8751: _Function_base() : _M_manager(nullptr) { } 8751: 8751: ~_Function_base() 8751: { 8751: if (_M_manager) 8751: _M_manager(_M_functor, _M_functor, __destroy_functor); 8751: } 8751: 8751: bool _M_empty() const { return !_M_manager; } 8751: 8751: typedef bool (*_Manager_type)(_Any_data&, const _Any_data&, 8751: _Manager_operation); 8751: 8751: _Any_data _M_functor; 8751: _Manager_type _M_manager; 8751: }; 8751: 8751: template 8751: class _Function_handler; 8751: 8751: template 8751: class _Function_handler<_Res(_ArgTypes...), _Functor> 8751: : public _Function_base::_Base_manager<_Functor> 8751: { 8751: typedef _Function_base::_Base_manager<_Functor> _Base; 8751: 8751: public: 8751: static _Res 8751: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8751: { 8751: return (*_Base::_M_get_pointer(__functor))( 8751: std::forward<_ArgTypes>(__args)...); 8751: } 8751: }; 8751: 8751: template 8751: class _Function_handler 8751: : public _Function_base::_Base_manager<_Functor> 8751: { 8751: typedef _Function_base::_Base_manager<_Functor> _Base; 8751: 8751: public: 8751: static void 8751: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8751: { 8751: (*_Base::_M_get_pointer(__functor))( 8751: std::forward<_ArgTypes>(__args)...); 8751: } 8751: }; 8751: 8751: template 8751: class _Function_handler<_Res(_ArgTypes...), _Member _Class::*> 8751: : public _Function_handler 8751: { 8751: typedef _Function_handler 8751: _Base; 8751: 8751: public: 8751: static _Res 8751: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8751: { 8751: return std::__invoke(_Base::_M_get_pointer(__functor)->__value, 8751: std::forward<_ArgTypes>(__args)...); 8751: } 8751: }; 8751: 8751: template 8751: class _Function_handler 8751: : public _Function_base::_Base_manager< 8751: _Simple_type_wrapper< _Member _Class::* > > 8751: { 8751: typedef _Member _Class::* _Functor; 8751: typedef _Simple_type_wrapper<_Functor> _Wrapper; 8751: typedef _Function_base::_Base_manager<_Wrapper> _Base; 8751: 8751: public: 8751: static bool 8751: _M_manager(_Any_data& __dest, const _Any_data& __source, 8751: _Manager_operation __op) 8751: { 8751: switch (__op) 8751: { 8751: 8751: case __get_type_info: 8751: __dest._M_access() = &typeid(_Functor); 8751: break; 8751: 8751: case __get_functor_ptr: 8751: __dest._M_access<_Functor*>() = 8751: &_Base::_M_get_pointer(__source)->__value; 8751: break; 8751: 8751: default: 8751: _Base::_M_manager(__dest, __source, __op); 8751: } 8751: return false; 8751: } 8751: 8751: static void 8751: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8751: { 8751: std::__invoke(_Base::_M_get_pointer(__functor)->__value, 8751: std::forward<_ArgTypes>(__args)...); 8751: } 8751: }; 8751: 8751: template 8751: using __check_func_return_type 8751: = __or_, is_same<_From, _To>, is_convertible<_From, _To>>; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: class function<_Res(_ArgTypes...)> 8751: : public _Maybe_unary_or_binary_function<_Res, _ArgTypes...>, 8751: private _Function_base 8751: { 8751: template::type> 8751: struct _Callable : __check_func_return_type<_Res2, _Res> { }; 8751: 8751: 8751: 8751: template 8751: struct _Callable : false_type { }; 8751: 8751: template 8751: using _Requires = typename enable_if<_Cond::value, _Tp>::type; 8751: 8751: public: 8751: typedef _Res result_type; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: function() noexcept 8751: : _Function_base() { } 8751: 8751: 8751: 8751: 8751: 8751: function(nullptr_t) noexcept 8751: : _Function_base() { } 8751: # 413 "/usr/include/c++/8/bits/std_function.h" 3 8751: function(const function& __x); 8751: # 422 "/usr/include/c++/8/bits/std_function.h" 3 8751: function(function&& __x) noexcept : _Function_base() 8751: { 8751: __x.swap(*this); 8751: } 8751: # 443 "/usr/include/c++/8/bits/std_function.h" 3 8751: template>, void>, 8751: typename = _Requires<_Callable<_Functor>, void>> 8751: function(_Functor); 8751: # 460 "/usr/include/c++/8/bits/std_function.h" 3 8751: function& 8751: operator=(const function& __x) 8751: { 8751: function(__x).swap(*this); 8751: return *this; 8751: } 8751: # 478 "/usr/include/c++/8/bits/std_function.h" 3 8751: function& 8751: operator=(function&& __x) noexcept 8751: { 8751: function(std::move(__x)).swap(*this); 8751: return *this; 8751: } 8751: # 492 "/usr/include/c++/8/bits/std_function.h" 3 8751: function& 8751: operator=(nullptr_t) noexcept 8751: { 8751: if (_M_manager) 8751: { 8751: _M_manager(_M_functor, _M_functor, __destroy_functor); 8751: _M_manager = nullptr; 8751: _M_invoker = nullptr; 8751: } 8751: return *this; 8751: } 8751: # 520 "/usr/include/c++/8/bits/std_function.h" 3 8751: template 8751: _Requires<_Callable::type>, function&> 8751: operator=(_Functor&& __f) 8751: { 8751: function(std::forward<_Functor>(__f)).swap(*this); 8751: return *this; 8751: } 8751: 8751: 8751: template 8751: function& 8751: operator=(reference_wrapper<_Functor> __f) noexcept 8751: { 8751: function(__f).swap(*this); 8751: return *this; 8751: } 8751: # 546 "/usr/include/c++/8/bits/std_function.h" 3 8751: void swap(function& __x) noexcept 8751: { 8751: std::swap(_M_functor, __x._M_functor); 8751: std::swap(_M_manager, __x._M_manager); 8751: std::swap(_M_invoker, __x._M_invoker); 8751: } 8751: # 563 "/usr/include/c++/8/bits/std_function.h" 3 8751: explicit operator bool() const noexcept 8751: { return !_M_empty(); } 8751: # 576 "/usr/include/c++/8/bits/std_function.h" 3 8751: _Res operator()(_ArgTypes... __args) const; 8751: # 589 "/usr/include/c++/8/bits/std_function.h" 3 8751: const type_info& target_type() const noexcept; 8751: # 602 "/usr/include/c++/8/bits/std_function.h" 3 8751: template _Functor* target() noexcept; 8751: 8751: template const _Functor* target() const noexcept; 8751: 8751: 8751: 8751: private: 8751: using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...); 8751: _Invoker_type _M_invoker; 8751: }; 8751: # 651 "/usr/include/c++/8/bits/std_function.h" 3 8751: template 8751: function<_Res(_ArgTypes...)>:: 8751: function(const function& __x) 8751: : _Function_base() 8751: { 8751: if (static_cast(__x)) 8751: { 8751: __x._M_manager(_M_functor, __x._M_functor, __clone_functor); 8751: _M_invoker = __x._M_invoker; 8751: _M_manager = __x._M_manager; 8751: } 8751: } 8751: 8751: template 8751: template 8751: function<_Res(_ArgTypes...)>:: 8751: function(_Functor __f) 8751: : _Function_base() 8751: { 8751: typedef _Function_handler<_Res(_ArgTypes...), _Functor> _My_handler; 8751: 8751: if (_My_handler::_M_not_empty_function(__f)) 8751: { 8751: _My_handler::_M_init_functor(_M_functor, std::move(__f)); 8751: _M_invoker = &_My_handler::_M_invoke; 8751: _M_manager = &_My_handler::_M_manager; 8751: } 8751: } 8751: 8751: template 8751: _Res 8751: function<_Res(_ArgTypes...)>:: 8751: operator()(_ArgTypes... __args) const 8751: { 8751: if (_M_empty()) 8751: __throw_bad_function_call(); 8751: return _M_invoker(_M_functor, std::forward<_ArgTypes>(__args)...); 8751: } 8751: 8751: 8751: template 8751: const type_info& 8751: function<_Res(_ArgTypes...)>:: 8751: target_type() const noexcept 8751: { 8751: if (_M_manager) 8751: { 8751: _Any_data __typeinfo_result; 8751: _M_manager(__typeinfo_result, _M_functor, __get_type_info); 8751: return *__typeinfo_result._M_access(); 8751: } 8751: else 8751: return typeid(void); 8751: } 8751: 8751: template 8751: template 8751: _Functor* 8751: function<_Res(_ArgTypes...)>:: 8751: target() noexcept 8751: { 8751: const function* __const_this = this; 8751: const _Functor* __func = __const_this->template target<_Functor>(); 8751: return const_cast<_Functor*>(__func); 8751: } 8751: 8751: template 8751: template 8751: const _Functor* 8751: function<_Res(_ArgTypes...)>:: 8751: target() const noexcept 8751: { 8751: if (typeid(_Functor) == target_type() && _M_manager) 8751: { 8751: _Any_data __ptr; 8751: _M_manager(__ptr, _M_functor, __get_functor_ptr); 8751: return __ptr._M_access(); 8751: } 8751: else 8751: return nullptr; 8751: } 8751: # 743 "/usr/include/c++/8/bits/std_function.h" 3 8751: template 8751: inline bool 8751: operator==(const function<_Res(_Args...)>& __f, nullptr_t) noexcept 8751: { return !static_cast(__f); } 8751: 8751: 8751: template 8751: inline bool 8751: operator==(nullptr_t, const function<_Res(_Args...)>& __f) noexcept 8751: { return !static_cast(__f); } 8751: # 761 "/usr/include/c++/8/bits/std_function.h" 3 8751: template 8751: inline bool 8751: operator!=(const function<_Res(_Args...)>& __f, nullptr_t) noexcept 8751: { return static_cast(__f); } 8751: 8751: 8751: template 8751: inline bool 8751: operator!=(nullptr_t, const function<_Res(_Args...)>& __f) noexcept 8751: { return static_cast(__f); } 8751: # 782 "/usr/include/c++/8/bits/std_function.h" 3 8751: template 8751: inline void 8751: swap(function<_Res(_Args...)>& __x, function<_Res(_Args...)>& __y) noexcept 8751: { __x.swap(__y); } 8751: 8751: 8751: } 8751: # 60 "/usr/include/c++/8/functional" 2 3 8751: # 68 "/usr/include/c++/8/functional" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 86 "/usr/include/c++/8/functional" 3 8751: template::value> 8751: class _Mem_fn_base 8751: : public _Mem_fn_traits<_MemFunPtr>::__maybe_type 8751: { 8751: using _Traits = _Mem_fn_traits<_MemFunPtr>; 8751: 8751: using _Arity = typename _Traits::__arity; 8751: using _Varargs = typename _Traits::__vararg; 8751: 8751: template 8751: friend struct _Bind_check_arity; 8751: 8751: _MemFunPtr _M_pmf; 8751: 8751: public: 8751: 8751: using result_type = typename _Traits::__result_type; 8751: 8751: explicit constexpr 8751: _Mem_fn_base(_MemFunPtr __pmf) noexcept : _M_pmf(__pmf) { } 8751: 8751: template 8751: auto 8751: operator()(_Args&&... __args) const 8751: noexcept(noexcept( 8751: std::__invoke(_M_pmf, std::forward<_Args>(__args)...))) 8751: -> decltype(std::__invoke(_M_pmf, std::forward<_Args>(__args)...)) 8751: { return std::__invoke(_M_pmf, std::forward<_Args>(__args)...); } 8751: }; 8751: 8751: 8751: template 8751: class _Mem_fn_base<_MemObjPtr, false> 8751: { 8751: using _Arity = integral_constant; 8751: using _Varargs = false_type; 8751: 8751: template 8751: friend struct _Bind_check_arity; 8751: 8751: _MemObjPtr _M_pm; 8751: 8751: public: 8751: explicit constexpr 8751: _Mem_fn_base(_MemObjPtr __pm) noexcept : _M_pm(__pm) { } 8751: 8751: template 8751: auto 8751: operator()(_Tp&& __obj) const 8751: noexcept(noexcept(std::__invoke(_M_pm, std::forward<_Tp>(__obj)))) 8751: -> decltype(std::__invoke(_M_pm, std::forward<_Tp>(__obj))) 8751: { return std::__invoke(_M_pm, std::forward<_Tp>(__obj)); } 8751: }; 8751: 8751: template 8751: struct _Mem_fn; 8751: 8751: template 8751: struct _Mem_fn<_Res _Class::*> 8751: : _Mem_fn_base<_Res _Class::*> 8751: { 8751: using _Mem_fn_base<_Res _Class::*>::_Mem_fn_base; 8751: }; 8751: # 158 "/usr/include/c++/8/functional" 3 8751: template 8751: inline _Mem_fn<_Tp _Class::*> 8751: mem_fn(_Tp _Class::* __pm) noexcept 8751: { 8751: return _Mem_fn<_Tp _Class::*>(__pm); 8751: } 8751: # 173 "/usr/include/c++/8/functional" 3 8751: template 8751: struct is_bind_expression 8751: : public false_type { }; 8751: # 184 "/usr/include/c++/8/functional" 3 8751: template 8751: struct is_placeholder 8751: : public integral_constant 8751: { }; 8751: # 199 "/usr/include/c++/8/functional" 3 8751: template struct _Placeholder { }; 8751: 8751: 8751: 8751: 8751: 8751: namespace placeholders 8751: { 8751: 8751: 8751: 8751: 8751: extern const _Placeholder<1> _1; 8751: extern const _Placeholder<2> _2; 8751: extern const _Placeholder<3> _3; 8751: extern const _Placeholder<4> _4; 8751: extern const _Placeholder<5> _5; 8751: extern const _Placeholder<6> _6; 8751: extern const _Placeholder<7> _7; 8751: extern const _Placeholder<8> _8; 8751: extern const _Placeholder<9> _9; 8751: extern const _Placeholder<10> _10; 8751: extern const _Placeholder<11> _11; 8751: extern const _Placeholder<12> _12; 8751: extern const _Placeholder<13> _13; 8751: extern const _Placeholder<14> _14; 8751: extern const _Placeholder<15> _15; 8751: extern const _Placeholder<16> _16; 8751: extern const _Placeholder<17> _17; 8751: extern const _Placeholder<18> _18; 8751: extern const _Placeholder<19> _19; 8751: extern const _Placeholder<20> _20; 8751: extern const _Placeholder<21> _21; 8751: extern const _Placeholder<22> _22; 8751: extern const _Placeholder<23> _23; 8751: extern const _Placeholder<24> _24; 8751: extern const _Placeholder<25> _25; 8751: extern const _Placeholder<26> _26; 8751: extern const _Placeholder<27> _27; 8751: extern const _Placeholder<28> _28; 8751: extern const _Placeholder<29> _29; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct is_placeholder<_Placeholder<_Num> > 8751: : public integral_constant 8751: { }; 8751: 8751: template 8751: struct is_placeholder > 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: 8751: template 8751: using _Safe_tuple_element_t 8751: = typename enable_if<(__i < tuple_size<_Tuple>::value), 8751: tuple_element<__i, _Tuple>>::type::type; 8751: # 275 "/usr/include/c++/8/functional" 3 8751: template::value, 8751: bool _IsPlaceholder = (is_placeholder<_Arg>::value > 0)> 8751: class _Mu; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: class _Mu, false, false> 8751: { 8751: public: 8751: 8751: 8751: 8751: 8751: template 8751: _Tp& 8751: operator()(_CVRef& __arg, _Tuple&) const volatile 8751: { return __arg.get(); } 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: class _Mu<_Arg, true, false> 8751: { 8751: public: 8751: template 8751: auto 8751: operator()(_CVArg& __arg, 8751: tuple<_Args...>& __tuple) const volatile 8751: -> decltype(__arg(declval<_Args>()...)) 8751: { 8751: 8751: typedef typename _Build_index_tuple::__type 8751: _Indexes; 8751: return this->__call(__arg, __tuple, _Indexes()); 8751: } 8751: 8751: private: 8751: 8751: 8751: template 8751: auto 8751: __call(_CVArg& __arg, tuple<_Args...>& __tuple, 8751: const _Index_tuple<_Indexes...>&) const volatile 8751: -> decltype(__arg(declval<_Args>()...)) 8751: { 8751: return __arg(std::get<_Indexes>(std::move(__tuple))...); 8751: } 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: class _Mu<_Arg, false, true> 8751: { 8751: public: 8751: template 8751: _Safe_tuple_element_t<(is_placeholder<_Arg>::value - 1), _Tuple>&& 8751: operator()(const volatile _Arg&, _Tuple& __tuple) const volatile 8751: { 8751: return 8751: ::std::get<(is_placeholder<_Arg>::value - 1)>(std::move(__tuple)); 8751: } 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: class _Mu<_Arg, false, false> 8751: { 8751: public: 8751: template 8751: _CVArg&& 8751: operator()(_CVArg&& __arg, _Tuple&) const volatile 8751: { return std::forward<_CVArg>(__arg); } 8751: }; 8751: 8751: 8751: template 8751: inline auto 8751: __volget(volatile tuple<_Tp...>& __tuple) 8751: -> __tuple_element_t<_Ind, tuple<_Tp...>> volatile& 8751: { return std::get<_Ind>(const_cast&>(__tuple)); } 8751: 8751: 8751: template 8751: inline auto 8751: __volget(const volatile tuple<_Tp...>& __tuple) 8751: -> __tuple_element_t<_Ind, tuple<_Tp...>> const volatile& 8751: { return std::get<_Ind>(const_cast&>(__tuple)); } 8751: 8751: 8751: template 8751: struct _Bind; 8751: 8751: template 8751: class _Bind<_Functor(_Bound_args...)> 8751: : public _Weak_result_type<_Functor> 8751: { 8751: typedef typename _Build_index_tuple::__type 8751: _Bound_indexes; 8751: 8751: _Functor _M_f; 8751: tuple<_Bound_args...> _M_bound_args; 8751: 8751: 8751: template 8751: _Result 8751: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 8751: { 8751: return std::__invoke(_M_f, 8751: _Mu<_Bound_args>()(std::get<_Indexes>(_M_bound_args), __args)... 8751: ); 8751: } 8751: 8751: 8751: template 8751: _Result 8751: __call_c(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 8751: { 8751: return std::__invoke(_M_f, 8751: _Mu<_Bound_args>()(std::get<_Indexes>(_M_bound_args), __args)... 8751: ); 8751: } 8751: 8751: 8751: template 8751: _Result 8751: __call_v(tuple<_Args...>&& __args, 8751: _Index_tuple<_Indexes...>) volatile 8751: { 8751: return std::__invoke(_M_f, 8751: _Mu<_Bound_args>()(__volget<_Indexes>(_M_bound_args), __args)... 8751: ); 8751: } 8751: 8751: 8751: template 8751: _Result 8751: __call_c_v(tuple<_Args...>&& __args, 8751: _Index_tuple<_Indexes...>) const volatile 8751: { 8751: return std::__invoke(_M_f, 8751: _Mu<_Bound_args>()(__volget<_Indexes>(_M_bound_args), __args)... 8751: ); 8751: } 8751: 8751: template 8751: using _Mu_type = decltype( 8751: _Mu::type>()( 8751: std::declval<_BoundArg&>(), std::declval<_CallArgs&>()) ); 8751: 8751: template 8751: using _Res_type_impl 8751: = typename result_of< _Fn&(_Mu_type<_BArgs, _CallArgs>&&...) >::type; 8751: 8751: template 8751: using _Res_type = _Res_type_impl<_Functor, _CallArgs, _Bound_args...>; 8751: 8751: template 8751: using __dependent = typename 8751: enable_if::value+1), _Functor>::type; 8751: 8751: template class __cv_quals> 8751: using _Res_type_cv = _Res_type_impl< 8751: typename __cv_quals<__dependent<_CallArgs>>::type, 8751: _CallArgs, 8751: typename __cv_quals<_Bound_args>::type...>; 8751: 8751: public: 8751: template 8751: explicit _Bind(const _Functor& __f, _Args&&... __args) 8751: : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...) 8751: { } 8751: 8751: template 8751: explicit _Bind(_Functor&& __f, _Args&&... __args) 8751: : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...) 8751: { } 8751: 8751: _Bind(const _Bind&) = default; 8751: 8751: _Bind(_Bind&& __b) 8751: : _M_f(std::move(__b._M_f)), _M_bound_args(std::move(__b._M_bound_args)) 8751: { } 8751: 8751: 8751: template>> 8751: _Result 8751: operator()(_Args&&... __args) 8751: { 8751: return this->__call<_Result>( 8751: std::forward_as_tuple(std::forward<_Args>(__args)...), 8751: _Bound_indexes()); 8751: } 8751: 8751: 8751: template, add_const>> 8751: _Result 8751: operator()(_Args&&... __args) const 8751: { 8751: return this->__call_c<_Result>( 8751: std::forward_as_tuple(std::forward<_Args>(__args)...), 8751: _Bound_indexes()); 8751: } 8751: # 505 "/usr/include/c++/8/functional" 3 8751: template, add_volatile>> 8751: 8751: _Result 8751: operator()(_Args&&... __args) volatile 8751: { 8751: return this->__call_v<_Result>( 8751: std::forward_as_tuple(std::forward<_Args>(__args)...), 8751: _Bound_indexes()); 8751: } 8751: 8751: 8751: template, add_cv>> 8751: 8751: _Result 8751: operator()(_Args&&... __args) const volatile 8751: { 8751: return this->__call_c_v<_Result>( 8751: std::forward_as_tuple(std::forward<_Args>(__args)...), 8751: _Bound_indexes()); 8751: } 8751: }; 8751: 8751: 8751: template 8751: struct _Bind_result; 8751: 8751: template 8751: class _Bind_result<_Result, _Functor(_Bound_args...)> 8751: { 8751: typedef typename _Build_index_tuple::__type 8751: _Bound_indexes; 8751: 8751: _Functor _M_f; 8751: tuple<_Bound_args...> _M_bound_args; 8751: 8751: 8751: template 8751: using __enable_if_void 8751: = typename enable_if{}>::type; 8751: 8751: template 8751: using __disable_if_void 8751: = typename enable_if{}, _Result>::type; 8751: 8751: 8751: template 8751: __disable_if_void<_Res> 8751: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 8751: { 8751: return std::__invoke(_M_f, _Mu<_Bound_args>() 8751: (std::get<_Indexes>(_M_bound_args), __args)...); 8751: } 8751: 8751: 8751: template 8751: __enable_if_void<_Res> 8751: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 8751: { 8751: std::__invoke(_M_f, _Mu<_Bound_args>() 8751: (std::get<_Indexes>(_M_bound_args), __args)...); 8751: } 8751: 8751: 8751: template 8751: __disable_if_void<_Res> 8751: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 8751: { 8751: return std::__invoke(_M_f, _Mu<_Bound_args>() 8751: (std::get<_Indexes>(_M_bound_args), __args)...); 8751: } 8751: 8751: 8751: template 8751: __enable_if_void<_Res> 8751: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 8751: { 8751: std::__invoke(_M_f, _Mu<_Bound_args>() 8751: (std::get<_Indexes>(_M_bound_args), __args)...); 8751: } 8751: 8751: 8751: template 8751: __disable_if_void<_Res> 8751: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) volatile 8751: { 8751: return std::__invoke(_M_f, _Mu<_Bound_args>() 8751: (__volget<_Indexes>(_M_bound_args), __args)...); 8751: } 8751: 8751: 8751: template 8751: __enable_if_void<_Res> 8751: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) volatile 8751: { 8751: std::__invoke(_M_f, _Mu<_Bound_args>() 8751: (__volget<_Indexes>(_M_bound_args), __args)...); 8751: } 8751: 8751: 8751: template 8751: __disable_if_void<_Res> 8751: __call(tuple<_Args...>&& __args, 8751: _Index_tuple<_Indexes...>) const volatile 8751: { 8751: return std::__invoke(_M_f, _Mu<_Bound_args>() 8751: (__volget<_Indexes>(_M_bound_args), __args)...); 8751: } 8751: 8751: 8751: template 8751: __enable_if_void<_Res> 8751: __call(tuple<_Args...>&& __args, 8751: _Index_tuple<_Indexes...>) const volatile 8751: { 8751: std::__invoke(_M_f, _Mu<_Bound_args>() 8751: (__volget<_Indexes>(_M_bound_args), __args)...); 8751: } 8751: 8751: public: 8751: typedef _Result result_type; 8751: 8751: template 8751: explicit _Bind_result(const _Functor& __f, _Args&&... __args) 8751: : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...) 8751: { } 8751: 8751: template 8751: explicit _Bind_result(_Functor&& __f, _Args&&... __args) 8751: : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...) 8751: { } 8751: 8751: _Bind_result(const _Bind_result&) = default; 8751: 8751: _Bind_result(_Bind_result&& __b) 8751: : _M_f(std::move(__b._M_f)), _M_bound_args(std::move(__b._M_bound_args)) 8751: { } 8751: 8751: 8751: template 8751: result_type 8751: operator()(_Args&&... __args) 8751: { 8751: return this->__call<_Result>( 8751: std::forward_as_tuple(std::forward<_Args>(__args)...), 8751: _Bound_indexes()); 8751: } 8751: 8751: 8751: template 8751: result_type 8751: operator()(_Args&&... __args) const 8751: { 8751: return this->__call<_Result>( 8751: std::forward_as_tuple(std::forward<_Args>(__args)...), 8751: _Bound_indexes()); 8751: } 8751: 8751: 8751: template 8751: 8751: result_type 8751: operator()(_Args&&... __args) volatile 8751: { 8751: return this->__call<_Result>( 8751: std::forward_as_tuple(std::forward<_Args>(__args)...), 8751: _Bound_indexes()); 8751: } 8751: 8751: 8751: template 8751: 8751: result_type 8751: operator()(_Args&&... __args) const volatile 8751: { 8751: return this->__call<_Result>( 8751: std::forward_as_tuple(std::forward<_Args>(__args)...), 8751: _Bound_indexes()); 8751: } 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct is_bind_expression<_Bind<_Signature> > 8751: : public true_type { }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct is_bind_expression > 8751: : public true_type { }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct is_bind_expression > 8751: : public true_type { }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct is_bind_expression> 8751: : public true_type { }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct is_bind_expression<_Bind_result<_Result, _Signature>> 8751: : public true_type { }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct is_bind_expression> 8751: : public true_type { }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct is_bind_expression> 8751: : public true_type { }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct is_bind_expression> 8751: : public true_type { }; 8751: 8751: template 8751: struct _Bind_check_arity { }; 8751: 8751: template 8751: struct _Bind_check_arity<_Ret (*)(_Args...), _BoundArgs...> 8751: { 8751: static_assert(sizeof...(_BoundArgs) == sizeof...(_Args), 8751: "Wrong number of arguments for function"); 8751: }; 8751: 8751: template 8751: struct _Bind_check_arity<_Ret (*)(_Args......), _BoundArgs...> 8751: { 8751: static_assert(sizeof...(_BoundArgs) >= sizeof...(_Args), 8751: "Wrong number of arguments for function"); 8751: }; 8751: 8751: template 8751: struct _Bind_check_arity<_Tp _Class::*, _BoundArgs...> 8751: { 8751: using _Arity = typename _Mem_fn<_Tp _Class::*>::_Arity; 8751: using _Varargs = typename _Mem_fn<_Tp _Class::*>::_Varargs; 8751: static_assert(_Varargs::value 8751: ? sizeof...(_BoundArgs) >= _Arity::value + 1 8751: : sizeof...(_BoundArgs) == _Arity::value + 1, 8751: "Wrong number of arguments for pointer-to-member"); 8751: }; 8751: 8751: 8751: 8751: 8751: template::type> 8751: using __is_socketlike = __or_, is_enum<_Tp2>>; 8751: 8751: template 8751: struct _Bind_helper 8751: : _Bind_check_arity::type, _BoundArgs...> 8751: { 8751: typedef typename decay<_Func>::type __func_type; 8751: typedef _Bind<__func_type(typename decay<_BoundArgs>::type...)> type; 8751: }; 8751: 8751: 8751: 8751: 8751: template 8751: struct _Bind_helper 8751: { }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline typename 8751: _Bind_helper<__is_socketlike<_Func>::value, _Func, _BoundArgs...>::type 8751: bind(_Func&& __f, _BoundArgs&&... __args) 8751: { 8751: typedef _Bind_helper __helper_type; 8751: return typename __helper_type::type(std::forward<_Func>(__f), 8751: std::forward<_BoundArgs>(__args)...); 8751: } 8751: 8751: template 8751: struct _Bindres_helper 8751: : _Bind_check_arity::type, _BoundArgs...> 8751: { 8751: typedef typename decay<_Func>::type __functor_type; 8751: typedef _Bind_result<_Result, 8751: __functor_type(typename decay<_BoundArgs>::type...)> 8751: type; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: inline 8751: typename _Bindres_helper<_Result, _Func, _BoundArgs...>::type 8751: bind(_Func&& __f, _BoundArgs&&... __args) 8751: { 8751: typedef _Bindres_helper<_Result, _Func, _BoundArgs...> __helper_type; 8751: return typename __helper_type::type(std::forward<_Func>(__f), 8751: std::forward<_BoundArgs>(__args)...); 8751: } 8751: # 1192 "/usr/include/c++/8/functional" 3 8751: 8751: } 8751: # 55 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: # 69 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 3 4 8751: template inline bool qMapLessThanKey(const Key &key1, const Key &key2) 8751: { 8751: return key1 < key2; 8751: } 8751: 8751: template inline bool qMapLessThanKey(const Ptr *key1, const Ptr *key2) 8751: { 8751: return std::less()(key1, key2); 8751: } 8751: 8751: struct QMapDataBase; 8751: template struct QMapData; 8751: 8751: struct __attribute__((visibility("default"))) QMapNodeBase 8751: { 8751: quintptr p; 8751: QMapNodeBase *left; 8751: QMapNodeBase *right; 8751: 8751: enum Color { Red = 0, Black = 1 }; 8751: enum { Mask = 3 }; 8751: 8751: const QMapNodeBase *nextNode() const; 8751: QMapNodeBase *nextNode() { return const_cast(const_cast(this)->nextNode()); } 8751: const QMapNodeBase *previousNode() const; 8751: QMapNodeBase *previousNode() { return const_cast(const_cast(this)->previousNode()); } 8751: 8751: Color color() const { return Color(p & 1); } 8751: void setColor(Color c) { if (c == Black) p |= Black; else p &= ~Black; } 8751: QMapNodeBase *parent() const { return reinterpret_cast(p & ~Mask); } 8751: void setParent(QMapNodeBase *pp) { p = (p & Mask) | quintptr(pp); } 8751: 8751: template 8751: static typename std::enable_if::isComplex>::type 8751: callDestructorIfNecessary(T &t) noexcept { (void)t;; t.~T(); } 8751: template 8751: static typename std::enable_if::isComplex>::type 8751: callDestructorIfNecessary(T &) noexcept {} 8751: }; 8751: 8751: template 8751: struct QMapNode : public QMapNodeBase 8751: { 8751: Key key; 8751: T value; 8751: 8751: inline QMapNode *leftNode() const { return static_cast(left); } 8751: inline QMapNode *rightNode() const { return static_cast(right); } 8751: 8751: inline const QMapNode *nextNode() const { return static_cast(QMapNodeBase::nextNode()); } 8751: inline const QMapNode *previousNode() const { return static_cast(QMapNodeBase::previousNode()); } 8751: inline QMapNode *nextNode() { return static_cast(QMapNodeBase::nextNode()); } 8751: inline QMapNode *previousNode() { return static_cast(QMapNodeBase::previousNode()); } 8751: 8751: QMapNode *copy(QMapData *d) const; 8751: 8751: void destroySubTree() 8751: { 8751: callDestructorIfNecessary(key); 8751: callDestructorIfNecessary(value); 8751: doDestroySubTree(std::integral_constant::isComplex || QTypeInfo::isComplex>()); 8751: } 8751: 8751: QMapNode *lowerBound(const Key &key); 8751: QMapNode *upperBound(const Key &key); 8751: 8751: private: 8751: void doDestroySubTree(std::false_type) {} 8751: void doDestroySubTree(std::true_type) 8751: { 8751: if (left) 8751: leftNode()->destroySubTree(); 8751: if (right) 8751: rightNode()->destroySubTree(); 8751: } 8751: 8751: QMapNode() = delete; 8751: QMapNode(const QMapNode &) = delete; QMapNode &operator=(const QMapNode &) = delete; 8751: }; 8751: 8751: template 8751: inline QMapNode *QMapNode::lowerBound(const Key &akey) 8751: { 8751: QMapNode *n = this; 8751: QMapNode *lastNode = nullptr; 8751: while (n) { 8751: if (!qMapLessThanKey(n->key, akey)) { 8751: lastNode = n; 8751: n = n->leftNode(); 8751: } else { 8751: n = n->rightNode(); 8751: } 8751: } 8751: return lastNode; 8751: } 8751: 8751: template 8751: inline QMapNode *QMapNode::upperBound(const Key &akey) 8751: { 8751: QMapNode *n = this; 8751: QMapNode *lastNode = nullptr; 8751: while (n) { 8751: if (qMapLessThanKey(akey, n->key)) { 8751: lastNode = n; 8751: n = n->leftNode(); 8751: } else { 8751: n = n->rightNode(); 8751: } 8751: } 8751: return lastNode; 8751: } 8751: 8751: 8751: 8751: struct __attribute__((visibility("default"))) QMapDataBase 8751: { 8751: QtPrivate::RefCount ref; 8751: int size; 8751: QMapNodeBase header; 8751: QMapNodeBase *mostLeftNode; 8751: 8751: void rotateLeft(QMapNodeBase *x); 8751: void rotateRight(QMapNodeBase *x); 8751: void rebalance(QMapNodeBase *x); 8751: void freeNodeAndRebalance(QMapNodeBase *z); 8751: void recalcMostLeftNode(); 8751: 8751: QMapNodeBase *createNode(int size, int alignment, QMapNodeBase *parent, bool left); 8751: void freeTree(QMapNodeBase *root, int alignment); 8751: 8751: static const QMapDataBase shared_null; 8751: 8751: static QMapDataBase *createData(); 8751: static void freeData(QMapDataBase *d); 8751: }; 8751: 8751: template 8751: struct QMapData : public QMapDataBase 8751: { 8751: typedef QMapNode Node; 8751: 8751: Node *root() const { return static_cast(header.left); } 8751: 8751: 8751: 8751: const Node *end() const { return reinterpret_cast(&header); } 8751: Node *end() { return reinterpret_cast(&header); } 8751: const Node *begin() const { if (root()) return static_cast(mostLeftNode); return end(); } 8751: Node *begin() { if (root()) return static_cast(mostLeftNode); return end(); } 8751: 8751: void deleteNode(Node *z); 8751: Node *findNode(const Key &akey) const; 8751: void nodeRange(const Key &akey, Node **firstNode, Node **lastNode); 8751: 8751: Node *createNode(const Key &k, const T &v, Node *parent = nullptr, bool left = false) 8751: { 8751: Node *n = static_cast(QMapDataBase::createNode(sizeof(Node), alignof(Node), 8751: parent, left)); 8751: try { 8751: new (&n->key) Key(k); 8751: try { 8751: new (&n->value) T(v); 8751: } catch (...) { 8751: n->key.~Key(); 8751: throw; 8751: } 8751: } catch (...) { 8751: QMapDataBase::freeNodeAndRebalance(n); 8751: throw; 8751: } 8751: return n; 8751: } 8751: 8751: static QMapData *create() { 8751: return static_cast(createData()); 8751: } 8751: 8751: void destroy() { 8751: if (root()) { 8751: root()->destroySubTree(); 8751: freeTree(header.left, alignof(Node)); 8751: } 8751: freeData(this); 8751: } 8751: }; 8751: 8751: template 8751: QMapNode *QMapNode::copy(QMapData *d) const 8751: { 8751: QMapNode *n = d->createNode(key, value); 8751: n->setColor(color()); 8751: if (left) { 8751: n->left = leftNode()->copy(d); 8751: n->left->setParent(n); 8751: } else { 8751: n->left = nullptr; 8751: } 8751: if (right) { 8751: n->right = rightNode()->copy(d); 8751: n->right->setParent(n); 8751: } else { 8751: n->right = nullptr; 8751: } 8751: return n; 8751: } 8751: 8751: template 8751: void QMapData::deleteNode(QMapNode *z) 8751: { 8751: QMapNodeBase::callDestructorIfNecessary(z->key); 8751: QMapNodeBase::callDestructorIfNecessary(z->value); 8751: freeNodeAndRebalance(z); 8751: } 8751: 8751: template 8751: QMapNode *QMapData::findNode(const Key &akey) const 8751: { 8751: if (Node *r = root()) { 8751: Node *lb = r->lowerBound(akey); 8751: if (lb && !qMapLessThanKey(akey, lb->key)) 8751: return lb; 8751: } 8751: return nullptr; 8751: } 8751: 8751: 8751: template 8751: void QMapData::nodeRange(const Key &akey, QMapNode **firstNode, QMapNode **lastNode) 8751: { 8751: Node *n = root(); 8751: Node *l = end(); 8751: while (n) { 8751: if (qMapLessThanKey(akey, n->key)) { 8751: l = n; 8751: n = n->leftNode(); 8751: } else if (qMapLessThanKey(n->key, akey)) { 8751: n = n->rightNode(); 8751: } else { 8751: *firstNode = n->leftNode() ? n->leftNode()->lowerBound(akey) : nullptr; 8751: if (!*firstNode) 8751: *firstNode = n; 8751: *lastNode = n->rightNode() ? n->rightNode()->upperBound(akey) : nullptr; 8751: if (!*lastNode) 8751: *lastNode = l; 8751: return; 8751: } 8751: } 8751: *firstNode = *lastNode = l; 8751: } 8751: 8751: 8751: template 8751: class QMap 8751: { 8751: typedef QMapNode Node; 8751: 8751: QMapData *d; 8751: 8751: public: 8751: inline QMap() noexcept : d(static_cast *>(const_cast(&QMapDataBase::shared_null))) { } 8751: 8751: inline QMap(std::initializer_list > list) 8751: : d(static_cast *>(const_cast(&QMapDataBase::shared_null))) 8751: { 8751: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8751: insert(it->first, it->second); 8751: } 8751: 8751: QMap(const QMap &other); 8751: 8751: inline ~QMap() { if (!d->ref.deref()) d->destroy(); } 8751: 8751: QMap &operator=(const QMap &other); 8751: 8751: inline QMap(QMap &&other) noexcept 8751: : d(other.d) 8751: { 8751: other.d = static_cast *>( 8751: const_cast(&QMapDataBase::shared_null)); 8751: } 8751: 8751: inline QMap &operator=(QMap &&other) noexcept 8751: { QMap moved(std::move(other)); swap(moved); return *this; } 8751: 8751: inline void swap(QMap &other) noexcept { qSwap(d, other.d); } 8751: explicit QMap(const typename std::map &other); 8751: std::map toStdMap() const; 8751: 8751: bool operator==(const QMap &other) const; 8751: inline bool operator!=(const QMap &other) const { return !(*this == other); } 8751: 8751: inline int size() const { return d->size; } 8751: 8751: inline bool isEmpty() const { return d->size == 0; } 8751: 8751: inline void detach() { if (d->ref.isShared()) detach_helper(); } 8751: inline bool isDetached() const { return !d->ref.isShared(); } 8751: 8751: inline void setSharable(bool sharable) 8751: { 8751: if (sharable == d->ref.isSharable()) 8751: return; 8751: if (!sharable) 8751: detach(); 8751: 8751: d->ref.setSharable(sharable); 8751: } 8751: 8751: inline bool isSharedWith(const QMap &other) const { return d == other.d; } 8751: 8751: void clear(); 8751: 8751: int remove(const Key &key); 8751: T take(const Key &key); 8751: 8751: bool contains(const Key &key) const; 8751: const Key key(const T &value, const Key &defaultKey = Key()) const; 8751: const T value(const Key &key, const T &defaultValue = T()) const; 8751: T &operator[](const Key &key); 8751: const T operator[](const Key &key) const; 8751: 8751: QList uniqueKeys() const; 8751: QList keys() const; 8751: QList keys(const T &value) const; 8751: QList values() const; 8751: QList values(const Key &key) const; 8751: int count(const Key &key) const; 8751: 8751: inline const Key &firstKey() const { do { } while ((false) && (!isEmpty())); return constBegin().key(); } 8751: inline const Key &lastKey() const { do { } while ((false) && (!isEmpty())); return (constEnd() - 1).key(); } 8751: 8751: inline T &first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8751: inline const T &first() const { do { } while ((false) && (!isEmpty())); return *constBegin(); } 8751: inline T &last() { do { } while ((false) && (!isEmpty())); return *(end() - 1); } 8751: inline const T &last() const { do { } while ((false) && (!isEmpty())); return *(constEnd() - 1); } 8751: 8751: class const_iterator; 8751: 8751: class iterator 8751: { 8751: friend class const_iterator; 8751: Node *i; 8751: 8751: public: 8751: typedef std::bidirectional_iterator_tag iterator_category; 8751: typedef qptrdiff difference_type; 8751: typedef T value_type; 8751: typedef T *pointer; 8751: typedef T &reference; 8751: 8751: inline iterator() : i(nullptr) { } 8751: inline iterator(Node *node) : i(node) { } 8751: 8751: inline const Key &key() const { return i->key; } 8751: inline T &value() const { return i->value; } 8751: inline T &operator*() const { return i->value; } 8751: inline T *operator->() const { return &i->value; } 8751: inline bool operator==(const iterator &o) const { return i == o.i; } 8751: inline bool operator!=(const iterator &o) const { return i != o.i; } 8751: 8751: inline iterator &operator++() { 8751: i = i->nextNode(); 8751: return *this; 8751: } 8751: inline iterator operator++(int) { 8751: iterator r = *this; 8751: i = i->nextNode(); 8751: return r; 8751: } 8751: inline iterator &operator--() { 8751: i = i->previousNode(); 8751: return *this; 8751: } 8751: inline iterator operator--(int) { 8751: iterator r = *this; 8751: i = i->previousNode(); 8751: return r; 8751: } 8751: inline iterator operator+(int j) const 8751: { iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8751: inline iterator operator-(int j) const { return operator+(-j); } 8751: inline iterator &operator+=(int j) { return *this = *this + j; } 8751: inline iterator &operator-=(int j) { return *this = *this - j; } 8751: # 460 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 3 4 8751: friend class QMap; 8751: }; 8751: friend class iterator; 8751: 8751: class const_iterator 8751: { 8751: friend class iterator; 8751: const Node *i; 8751: 8751: public: 8751: typedef std::bidirectional_iterator_tag iterator_category; 8751: typedef qptrdiff difference_type; 8751: typedef T value_type; 8751: typedef const T *pointer; 8751: typedef const T &reference; 8751: 8751: constexpr inline const_iterator() : i(nullptr) { } 8751: inline const_iterator(const Node *node) : i(node) { } 8751: 8751: explicit inline const_iterator(const iterator &o) 8751: 8751: 8751: 8751: { i = o.i; } 8751: 8751: inline const Key &key() const { return i->key; } 8751: inline const T &value() const { return i->value; } 8751: inline const T &operator*() const { return i->value; } 8751: inline const T *operator->() const { return &i->value; } 8751: constexpr inline bool operator==(const const_iterator &o) const { return i == o.i; } 8751: constexpr inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8751: 8751: inline const_iterator &operator++() { 8751: i = i->nextNode(); 8751: return *this; 8751: } 8751: inline const_iterator operator++(int) { 8751: const_iterator r = *this; 8751: i = i->nextNode(); 8751: return r; 8751: } 8751: inline const_iterator &operator--() { 8751: i = i->previousNode(); 8751: return *this; 8751: } 8751: inline const_iterator operator--(int) { 8751: const_iterator r = *this; 8751: i = i->previousNode(); 8751: return r; 8751: } 8751: inline const_iterator operator+(int j) const 8751: { const_iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8751: inline const_iterator operator-(int j) const { return operator+(-j); } 8751: inline const_iterator &operator+=(int j) { return *this = *this + j; } 8751: inline const_iterator &operator-=(int j) { return *this = *this - j; } 8751: 8751: 8751: private: 8751: inline bool operator==(const iterator &o) const { return operator==(const_iterator(o)); } 8751: inline bool operator!=(const iterator &o) const { return operator!=(const_iterator(o)); } 8751: 8751: friend class QMap; 8751: }; 8751: friend class const_iterator; 8751: 8751: class key_iterator 8751: { 8751: const_iterator i; 8751: 8751: public: 8751: typedef typename const_iterator::iterator_category iterator_category; 8751: typedef typename const_iterator::difference_type difference_type; 8751: typedef Key value_type; 8751: typedef const Key *pointer; 8751: typedef const Key &reference; 8751: 8751: key_iterator() = default; 8751: explicit key_iterator(const_iterator o) : i(o) { } 8751: 8751: const Key &operator*() const { return i.key(); } 8751: const Key *operator->() const { return &i.key(); } 8751: bool operator==(key_iterator o) const { return i == o.i; } 8751: bool operator!=(key_iterator o) const { return i != o.i; } 8751: 8751: inline key_iterator &operator++() { ++i; return *this; } 8751: inline key_iterator operator++(int) { return key_iterator(i++);} 8751: inline key_iterator &operator--() { --i; return *this; } 8751: inline key_iterator operator--(int) { return key_iterator(i--); } 8751: const_iterator base() const { return i; } 8751: }; 8751: 8751: 8751: 8751: inline iterator begin() { detach(); return iterator(d->begin()); } 8751: inline const_iterator begin() const { return const_iterator(d->begin()); } 8751: inline const_iterator constBegin() const { return const_iterator(d->begin()); } 8751: inline const_iterator cbegin() const { return const_iterator(d->begin()); } 8751: inline iterator end() { detach(); return iterator(d->end()); } 8751: inline const_iterator end() const { return const_iterator(d->end()); } 8751: inline const_iterator constEnd() const { return const_iterator(d->end()); } 8751: inline const_iterator cend() const { return const_iterator(d->end()); } 8751: inline key_iterator keyBegin() const { return key_iterator(begin()); } 8751: inline key_iterator keyEnd() const { return key_iterator(end()); } 8751: iterator erase(iterator it); 8751: 8751: 8751: typedef iterator Iterator; 8751: typedef const_iterator ConstIterator; 8751: inline int count() const { return d->size; } 8751: iterator find(const Key &key); 8751: const_iterator find(const Key &key) const; 8751: const_iterator constFind(const Key &key) const; 8751: iterator lowerBound(const Key &key); 8751: const_iterator lowerBound(const Key &key) const; 8751: iterator upperBound(const Key &key); 8751: const_iterator upperBound(const Key &key) const; 8751: iterator insert(const Key &key, const T &value); 8751: iterator insert(const_iterator pos, const Key &key, const T &value); 8751: iterator insertMulti(const Key &key, const T &value); 8751: iterator insertMulti(const_iterator pos, const Key &akey, const T &avalue); 8751: QMap &unite(const QMap &other); 8751: 8751: 8751: typedef Key key_type; 8751: typedef T mapped_type; 8751: typedef qptrdiff difference_type; 8751: typedef int size_type; 8751: inline bool empty() const { return isEmpty(); } 8751: QPair equal_range(const Key &akey); 8751: QPair equal_range(const Key &akey) const; 8751: 8751: 8751: 8751: 8751: 8751: private: 8751: void detach_helper(); 8751: bool isValidIterator(const const_iterator &ci) const 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: (void)ci;; 8751: return true; 8751: 8751: } 8751: }; 8751: 8751: template 8751: inline QMap::QMap(const QMap &other) 8751: { 8751: if (other.d->ref.ref()) { 8751: d = other.d; 8751: } else { 8751: d = QMapData::create(); 8751: if (other.d->header.left) { 8751: d->header.left = static_cast(other.d->header.left)->copy(d); 8751: d->header.left->setParent(&d->header); 8751: d->recalcMostLeftNode(); 8751: } 8751: } 8751: } 8751: 8751: template 8751: inline QMap &QMap::operator=(const QMap &other) 8751: { 8751: if (d != other.d) { 8751: QMap tmp(other); 8751: tmp.swap(*this); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: inline void QMap::clear() 8751: { 8751: *this = QMap(); 8751: } 8751: 8751: 8751: # 642 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 3 4 8751: #pragma GCC diagnostic push 8751: # 642 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 3 4 8751: 8751: 8751: 8751: template 8751: inline const T QMap::value(const Key &akey, const T &adefaultValue) const 8751: { 8751: Node *n = d->findNode(akey); 8751: return n ? n->value : adefaultValue; 8751: } 8751: 8751: 8751: # 652 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 3 4 8751: #pragma GCC diagnostic pop 8751: # 652 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 3 4 8751: 8751: 8751: template 8751: inline const T QMap::operator[](const Key &akey) const 8751: { 8751: return value(akey); 8751: } 8751: 8751: template 8751: inline T &QMap::operator[](const Key &akey) 8751: { 8751: detach(); 8751: Node *n = d->findNode(akey); 8751: if (!n) 8751: return *insert(akey, T()); 8751: return n->value; 8751: } 8751: 8751: template 8751: inline int QMap::count(const Key &akey) const 8751: { 8751: Node *firstNode; 8751: Node *lastNode; 8751: d->nodeRange(akey, &firstNode, &lastNode); 8751: 8751: const_iterator ci_first(firstNode); 8751: const const_iterator ci_last(lastNode); 8751: int cnt = 0; 8751: while (ci_first != ci_last) { 8751: ++cnt; 8751: ++ci_first; 8751: } 8751: return cnt; 8751: } 8751: 8751: template 8751: inline bool QMap::contains(const Key &akey) const 8751: { 8751: return d->findNode(akey) != nullptr; 8751: } 8751: 8751: template 8751: inline typename QMap::iterator QMap::insert(const Key &akey, const T &avalue) 8751: { 8751: detach(); 8751: Node *n = d->root(); 8751: Node *y = d->end(); 8751: Node *lastNode = nullptr; 8751: bool left = true; 8751: while (n) { 8751: y = n; 8751: if (!qMapLessThanKey(n->key, akey)) { 8751: lastNode = n; 8751: left = true; 8751: n = n->leftNode(); 8751: } else { 8751: left = false; 8751: n = n->rightNode(); 8751: } 8751: } 8751: if (lastNode && !qMapLessThanKey(akey, lastNode->key)) { 8751: lastNode->value = avalue; 8751: return iterator(lastNode); 8751: } 8751: Node *z = d->createNode(akey, avalue, y, left); 8751: return iterator(z); 8751: } 8751: 8751: template 8751: typename QMap::iterator QMap::insert(const_iterator pos, const Key &akey, const T &avalue) 8751: { 8751: if (d->ref.isShared()) 8751: return this->insert(akey, avalue); 8751: 8751: do { } while ((false) && (isValidIterator(pos))); 8751: 8751: if (pos == constEnd()) { 8751: 8751: Node *n = static_cast(pos.i->left); 8751: if (n) { 8751: while (n->right) 8751: n = static_cast(n->right); 8751: 8751: if (!qMapLessThanKey(n->key, akey)) 8751: return this->insert(akey, avalue); 8751: 8751: 8751: 8751: 8751: Node *z = d->createNode(akey, avalue, n, false); 8751: return iterator(z); 8751: } 8751: return this->insert(akey, avalue); 8751: } else { 8751: 8751: 8751: Node *next = const_cast(pos.i); 8751: if (qMapLessThanKey(next->key, akey)) 8751: return this->insert(akey, avalue); 8751: 8751: if (pos == constBegin()) { 8751: 8751: 8751: if (!qMapLessThanKey(akey, next->key)) { 8751: next->value = avalue; 8751: return iterator(next); 8751: } 8751: 8751: Node *z = d->createNode(akey, avalue, begin().i, true); 8751: return iterator(z); 8751: } else { 8751: Node *prev = const_cast(pos.i->previousNode()); 8751: if (!qMapLessThanKey(prev->key, akey)) { 8751: return this->insert(akey, avalue); 8751: } 8751: 8751: if (!qMapLessThanKey(akey, next->key)) { 8751: next->value = avalue; 8751: return iterator(next); 8751: } 8751: 8751: 8751: if (prev->right == nullptr) { 8751: Node *z = d->createNode(akey, avalue, prev, false); 8751: return iterator(z); 8751: } 8751: if (next->left == nullptr) { 8751: Node *z = d->createNode(akey, avalue, next, true); 8751: return iterator(z); 8751: } 8751: do { } while ((false) && (false)); 8751: return this->insert(akey, avalue); 8751: } 8751: } 8751: } 8751: 8751: template 8751: inline typename QMap::iterator QMap::insertMulti(const Key &akey, 8751: const T &avalue) 8751: { 8751: detach(); 8751: Node* y = d->end(); 8751: Node* x = static_cast(d->root()); 8751: bool left = true; 8751: while (x != nullptr) { 8751: left = !qMapLessThanKey(x->key, akey); 8751: y = x; 8751: x = left ? x->leftNode() : x->rightNode(); 8751: } 8751: Node *z = d->createNode(akey, avalue, y, left); 8751: return iterator(z); 8751: } 8751: 8751: template 8751: typename QMap::iterator QMap::insertMulti(const_iterator pos, const Key &akey, const T &avalue) 8751: { 8751: if (d->ref.isShared()) 8751: return this->insertMulti(akey, avalue); 8751: 8751: do { } while ((false) && (isValidIterator(pos))); 8751: 8751: if (pos == constEnd()) { 8751: 8751: Node *n = static_cast(pos.i->left); 8751: if (n) { 8751: while (n->right) 8751: n = static_cast(n->right); 8751: 8751: if (!qMapLessThanKey(n->key, akey)) 8751: return this->insertMulti(akey, avalue); 8751: Node *z = d->createNode(akey, avalue, n, false); 8751: return iterator(z); 8751: } 8751: return this->insertMulti(akey, avalue); 8751: } else { 8751: 8751: 8751: Node *next = const_cast(pos.i); 8751: if (qMapLessThanKey(next->key, akey)) 8751: return this->insertMulti(akey, avalue); 8751: 8751: if (pos == constBegin()) { 8751: 8751: Node *z = d->createNode(akey, avalue, begin().i, true); 8751: return iterator(z); 8751: } else { 8751: Node *prev = const_cast(pos.i->previousNode()); 8751: if (!qMapLessThanKey(prev->key, akey)) 8751: return this->insertMulti(akey, avalue); 8751: 8751: 8751: if (prev->right == nullptr) { 8751: Node *z = d->createNode(akey, avalue, prev, false); 8751: return iterator(z); 8751: } 8751: if (next->left == nullptr) { 8751: Node *z = d->createNode(akey, avalue, next, true); 8751: return iterator(z); 8751: } 8751: do { } while ((false) && (false)); 8751: return this->insertMulti(akey, avalue); 8751: } 8751: } 8751: } 8751: 8751: 8751: template 8751: inline typename QMap::const_iterator QMap::constFind(const Key &akey) const 8751: { 8751: Node *n = d->findNode(akey); 8751: return const_iterator(n ? n : d->end()); 8751: } 8751: 8751: template 8751: inline typename QMap::const_iterator QMap::find(const Key &akey) const 8751: { 8751: return constFind(akey); 8751: } 8751: 8751: template 8751: inline typename QMap::iterator QMap::find(const Key &akey) 8751: { 8751: detach(); 8751: Node *n = d->findNode(akey); 8751: return iterator(n ? n : d->end()); 8751: } 8751: 8751: template 8751: inline QMap &QMap::unite(const QMap &other) 8751: { 8751: QMap copy(other); 8751: const_iterator it = copy.constEnd(); 8751: const const_iterator b = copy.constBegin(); 8751: while (it != b) { 8751: --it; 8751: insertMulti(it.key(), it.value()); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: QPair::iterator, typename QMap::iterator> QMap::equal_range(const Key &akey) 8751: { 8751: detach(); 8751: Node *firstNode, *lastNode; 8751: d->nodeRange(akey, &firstNode, &lastNode); 8751: return QPair(iterator(firstNode), iterator(lastNode)); 8751: } 8751: 8751: template 8751: QPair::const_iterator, typename QMap::const_iterator> 8751: QMap::equal_range(const Key &akey) const 8751: { 8751: Node *firstNode, *lastNode; 8751: d->nodeRange(akey, &firstNode, &lastNode); 8751: return qMakePair(const_iterator(firstNode), const_iterator(lastNode)); 8751: } 8751: # 932 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h" 3 4 8751: template 8751: int QMap::remove(const Key &akey) 8751: { 8751: detach(); 8751: int n = 0; 8751: while (Node *node = d->findNode(akey)) { 8751: d->deleteNode(node); 8751: ++n; 8751: } 8751: return n; 8751: } 8751: 8751: template 8751: T QMap::take(const Key &akey) 8751: { 8751: detach(); 8751: 8751: Node *node = d->findNode(akey); 8751: if (node) { 8751: T t = node->value; 8751: d->deleteNode(node); 8751: return t; 8751: } 8751: return T(); 8751: } 8751: 8751: template 8751: typename QMap::iterator QMap::erase(iterator it) 8751: { 8751: if (it == iterator(d->end())) 8751: return it; 8751: 8751: do { } while ((false) && (isValidIterator(const_iterator(it)))); 8751: 8751: if (d->ref.isShared()) { 8751: const_iterator oldBegin = constBegin(); 8751: const_iterator old = const_iterator(it); 8751: int backStepsWithSameKey = 0; 8751: 8751: while (old != oldBegin) { 8751: --old; 8751: if (qMapLessThanKey(old.key(), it.key())) 8751: break; 8751: ++backStepsWithSameKey; 8751: } 8751: 8751: it = find(old.key()); 8751: do { } while ((false) && (it != iterator(d->end()))); 8751: 8751: while (backStepsWithSameKey > 0) { 8751: ++it; 8751: --backStepsWithSameKey; 8751: } 8751: } 8751: 8751: Node *n = it.i; 8751: ++it; 8751: d->deleteNode(n); 8751: return it; 8751: } 8751: 8751: template 8751: void QMap::detach_helper() 8751: { 8751: QMapData *x = QMapData::create(); 8751: if (d->header.left) { 8751: x->header.left = static_cast(d->header.left)->copy(x); 8751: x->header.left->setParent(&x->header); 8751: } 8751: if (!d->ref.deref()) 8751: d->destroy(); 8751: d = x; 8751: d->recalcMostLeftNode(); 8751: } 8751: 8751: template 8751: QList QMap::uniqueKeys() const 8751: { 8751: QList res; 8751: res.reserve(size()); 8751: const_iterator i = begin(); 8751: if (i != end()) { 8751: for (;;) { 8751: const Key &aKey = i.key(); 8751: res.append(aKey); 8751: do { 8751: if (++i == end()) 8751: goto break_out_of_outer_loop; 8751: } while (!qMapLessThanKey(aKey, i.key())); 8751: } 8751: } 8751: break_out_of_outer_loop: 8751: return res; 8751: } 8751: 8751: template 8751: QList QMap::keys() const 8751: { 8751: QList res; 8751: res.reserve(size()); 8751: const_iterator i = begin(); 8751: while (i != end()) { 8751: res.append(i.key()); 8751: ++i; 8751: } 8751: return res; 8751: } 8751: 8751: template 8751: QList QMap::keys(const T &avalue) const 8751: { 8751: QList res; 8751: const_iterator i = begin(); 8751: while (i != end()) { 8751: if (i.value() == avalue) 8751: res.append(i.key()); 8751: ++i; 8751: } 8751: return res; 8751: } 8751: 8751: template 8751: const Key QMap::key(const T &avalue, const Key &defaultKey) const 8751: { 8751: const_iterator i = begin(); 8751: while (i != end()) { 8751: if (i.value() == avalue) 8751: return i.key(); 8751: ++i; 8751: } 8751: 8751: return defaultKey; 8751: } 8751: 8751: template 8751: QList QMap::values() const 8751: { 8751: QList res; 8751: res.reserve(size()); 8751: const_iterator i = begin(); 8751: while (i != end()) { 8751: res.append(i.value()); 8751: ++i; 8751: } 8751: return res; 8751: } 8751: 8751: template 8751: QList QMap::values(const Key &akey) const 8751: { 8751: QList res; 8751: Node *n = d->findNode(akey); 8751: if (n) { 8751: const_iterator it(n); 8751: do { 8751: res.append(*it); 8751: ++it; 8751: } while (it != constEnd() && !qMapLessThanKey(akey, it.key())); 8751: } 8751: return res; 8751: } 8751: 8751: template 8751: inline typename QMap::const_iterator QMap::lowerBound(const Key &akey) const 8751: { 8751: Node *lb = d->root() ? d->root()->lowerBound(akey) : nullptr; 8751: if (!lb) 8751: lb = d->end(); 8751: return const_iterator(lb); 8751: } 8751: 8751: template 8751: inline typename QMap::iterator QMap::lowerBound(const Key &akey) 8751: { 8751: detach(); 8751: Node *lb = d->root() ? d->root()->lowerBound(akey) : nullptr; 8751: if (!lb) 8751: lb = d->end(); 8751: return iterator(lb); 8751: } 8751: 8751: template 8751: inline typename QMap::const_iterator 8751: QMap::upperBound(const Key &akey) const 8751: { 8751: Node *ub = d->root() ? d->root()->upperBound(akey) : nullptr; 8751: if (!ub) 8751: ub = d->end(); 8751: return const_iterator(ub); 8751: } 8751: 8751: template 8751: inline typename QMap::iterator QMap::upperBound(const Key &akey) 8751: { 8751: detach(); 8751: Node *ub = d->root() ? d->root()->upperBound(akey) : nullptr; 8751: if (!ub) 8751: ub = d->end(); 8751: return iterator(ub); 8751: } 8751: 8751: template 8751: bool QMap::operator==(const QMap &other) const 8751: { 8751: if (size() != other.size()) 8751: return false; 8751: if (d == other.d) 8751: return true; 8751: 8751: const_iterator it1 = begin(); 8751: const_iterator it2 = other.begin(); 8751: 8751: while (it1 != end()) { 8751: if (!(it1.value() == it2.value()) || qMapLessThanKey(it1.key(), it2.key()) || qMapLessThanKey(it2.key(), it1.key())) 8751: return false; 8751: ++it2; 8751: ++it1; 8751: } 8751: return true; 8751: } 8751: 8751: template 8751: QMap::QMap(const std::map &other) 8751: { 8751: d = QMapData::create(); 8751: typename std::map::const_iterator it = other.end(); 8751: while (it != other.begin()) { 8751: --it; 8751: d->createNode((*it).first, (*it).second, d->begin(), true); 8751: } 8751: } 8751: 8751: template 8751: std::map QMap::toStdMap() const 8751: { 8751: std::map map; 8751: const_iterator it = end(); 8751: while (it != begin()) { 8751: --it; 8751: map.insert(map.begin(), std::pair(it.key(), it.value())); 8751: } 8751: return map; 8751: } 8751: 8751: template 8751: class QMultiMap : public QMap 8751: { 8751: public: 8751: QMultiMap() noexcept {} 8751: 8751: inline QMultiMap(std::initializer_list > list) 8751: { 8751: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8751: insert(it->first, it->second); 8751: } 8751: 8751: QMultiMap(const QMap &other) : QMap(other) {} 8751: 8751: QMultiMap(QMap &&other) noexcept : QMap(std::move(other)) {} 8751: 8751: void swap(QMultiMap &other) noexcept { QMap::swap(other); } 8751: 8751: inline typename QMap::iterator replace(const Key &key, const T &value) 8751: { return QMap::insert(key, value); } 8751: inline typename QMap::iterator insert(const Key &key, const T &value) 8751: { return QMap::insertMulti(key, value); } 8751: inline typename QMap::iterator insert(typename QMap::const_iterator pos, const Key &key, const T &value) 8751: { return QMap::insertMulti(pos, key, value); } 8751: 8751: inline QMultiMap &operator+=(const QMultiMap &other) 8751: { this->unite(other); return *this; } 8751: inline QMultiMap operator+(const QMultiMap &other) const 8751: { QMultiMap result = *this; result += other; return result; } 8751: 8751: using QMap::contains; 8751: using QMap::remove; 8751: using QMap::count; 8751: using QMap::find; 8751: using QMap::constFind; 8751: 8751: bool contains(const Key &key, const T &value) const; 8751: 8751: int remove(const Key &key, const T &value); 8751: 8751: int count(const Key &key, const T &value) const; 8751: 8751: typename QMap::iterator find(const Key &key, const T &value) { 8751: typename QMap::iterator i(find(key)); 8751: typename QMap::iterator end(this->end()); 8751: while (i != end && !qMapLessThanKey(key, i.key())) { 8751: if (i.value() == value) 8751: return i; 8751: ++i; 8751: } 8751: return end; 8751: } 8751: typename QMap::const_iterator find(const Key &key, const T &value) const { 8751: typename QMap::const_iterator i(constFind(key)); 8751: typename QMap::const_iterator end(QMap::constEnd()); 8751: while (i != end && !qMapLessThanKey(key, i.key())) { 8751: if (i.value() == value) 8751: return i; 8751: ++i; 8751: } 8751: return end; 8751: } 8751: typename QMap::const_iterator constFind(const Key &key, const T &value) const 8751: { return find(key, value); } 8751: private: 8751: T &operator[](const Key &key); 8751: const T operator[](const Key &key) const; 8751: }; 8751: 8751: template 8751: inline bool QMultiMap::contains(const Key &key, const T &value) const 8751: { 8751: return constFind(key, value) != QMap::constEnd(); 8751: } 8751: 8751: template 8751: inline int QMultiMap::remove(const Key &key, const T &value) 8751: { 8751: int n = 0; 8751: typename QMap::iterator i(find(key)); 8751: typename QMap::iterator end(QMap::end()); 8751: while (i != end && !qMapLessThanKey(key, i.key())) { 8751: if (i.value() == value) { 8751: i = this->erase(i); 8751: ++n; 8751: } else { 8751: ++i; 8751: } 8751: } 8751: return n; 8751: } 8751: 8751: template 8751: inline int QMultiMap::count(const Key &key, const T &value) const 8751: { 8751: int n = 0; 8751: typename QMap::const_iterator i(constFind(key)); 8751: typename QMap::const_iterator end(QMap::constEnd()); 8751: while (i != end && !qMapLessThanKey(key, i.key())) { 8751: if (i.value() == value) 8751: ++n; 8751: ++i; 8751: } 8751: return n; 8751: } 8751: 8751: template class QMapIterator { typedef typename QMap::const_iterator const_iterator; typedef const_iterator Item; QMap c; const_iterator i, n; inline bool item_exists() const { return n != c.constEnd(); } public: inline QMapIterator(const QMap &container) : c(container), i(c.constBegin()), n(c.constEnd()) {} inline QMapIterator &operator=(const QMap &container) { c = container; i = c.constBegin(); n = c.constEnd(); return *this; } inline void toFront() { i = c.constBegin(); n = c.constEnd(); } inline void toBack() { i = c.constEnd(); n = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline Item next() { n = i++; return n; } inline Item peekNext() const { return i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline Item previous() { n = --i; return n; } inline Item peekPrevious() const { const_iterator p = i; return --p; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline const Key &key() const { do { } while ((false) && (item_exists())); return n.key(); } inline bool findNext(const T &t) { while ((n = i) != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(n = --i) == t) return true; n = c.constEnd(); return false; } }; 8751: template class QMutableMapIterator { typedef typename QMap::iterator iterator; typedef typename QMap::const_iterator const_iterator; typedef iterator Item; QMap *c; iterator i, n; inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } public: inline QMutableMapIterator(QMap &container) : c(&container) { i = c->begin(); n = c->end(); } inline QMutableMapIterator &operator=(QMap &container) { c = &container; i = c->begin(); n = c->end(); return *this; } inline void toFront() { i = c->begin(); n = c->end(); } inline void toBack() { i = c->end(); n = c->end(); } inline bool hasNext() const { return const_iterator(i) != c->constEnd(); } inline Item next() { n = i++; return n; } inline Item peekNext() const { return i; } inline bool hasPrevious() const { return const_iterator(i) != c->constBegin(); } inline Item previous() { n = --i; return n; } inline Item peekPrevious() const { iterator p = i; return --p; } inline void remove() { if (const_iterator(n) != c->constEnd()) { i = c->erase(n); n = c->end(); } } inline void setValue(const T &t) { if (const_iterator(n) != c->constEnd()) *n = t; } inline T &value() { do { } while ((false) && (item_exists())); return *n; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline const Key &key() const { do { } while ((false) && (item_exists())); return n.key(); } inline bool findNext(const T &t) { while (const_iterator(n = i) != c->constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (const_iterator(i) != c->constBegin()) if (*(n = --i) == t) return true; n = c->end(); return false; } }; 8751: 8751: 8751: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhash.h" 1 3 4 8751: # 62 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhash.h" 3 4 8751: 8751: 8751: struct __attribute__((visibility("default"))) QHashData 8751: { 8751: struct Node { 8751: Node *next; 8751: uint h; 8751: }; 8751: 8751: Node *fakeNext; 8751: Node **buckets; 8751: QtPrivate::RefCount ref; 8751: int size; 8751: int nodeSize; 8751: short userNumBits; 8751: short numBits; 8751: int numBuckets; 8751: uint seed; 8751: uint sharable : 1; 8751: uint strictAlignment : 1; 8751: uint reserved : 30; 8751: 8751: void *allocateNode(int nodeAlign); 8751: void freeNode(void *node); 8751: QHashData *detach_helper(void (*node_duplicate)(Node *, void *), void (*node_delete)(Node *), 8751: int nodeSize, int nodeAlign); 8751: bool willGrow(); 8751: void hasShrunk(); 8751: void rehash(int hint); 8751: void free_helper(void (*node_delete)(Node *)); 8751: Node *firstNode(); 8751: 8751: 8751: 8751: 8751: static Node *nextNode(Node *node); 8751: static Node *previousNode(Node *node); 8751: 8751: static const QHashData shared_null; 8751: }; 8751: 8751: inline bool QHashData::willGrow() 8751: { 8751: if (size >= numBuckets) { 8751: rehash(numBits + 1); 8751: return true; 8751: } else { 8751: return false; 8751: } 8751: } 8751: 8751: inline void QHashData::hasShrunk() 8751: { 8751: if (size <= (numBuckets >> 3) && numBits > userNumBits) { 8751: try { 8751: rehash(qMax(int(numBits) - 2, int(userNumBits))); 8751: } catch (const std::bad_alloc &) { 8751: 8751: } 8751: } 8751: } 8751: 8751: inline QHashData::Node *QHashData::firstNode() 8751: { 8751: Node *e = reinterpret_cast(this); 8751: Node **bucket = buckets; 8751: int n = numBuckets; 8751: while (n--) { 8751: if (*bucket != e) 8751: return *bucket; 8751: ++bucket; 8751: } 8751: return e; 8751: } 8751: 8751: struct QHashDummyValue 8751: { 8751: }; 8751: 8751: inline bool operator==(const QHashDummyValue & , const QHashDummyValue & ) 8751: { 8751: return true; 8751: } 8751: 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE | Q_DUMMY_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE | Q_DUMMY_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE | Q_DUMMY_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QHashDummyValue)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QHashDummyValue >::value, isDummy = (((Q_MOVABLE_TYPE | Q_DUMMY_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QHashDummyValue) }; static inline const char *name() { return "QHashDummyValue"; } }; 8751: 8751: template 8751: struct QHashNode 8751: { 8751: QHashNode *next; 8751: const uint h; 8751: const Key key; 8751: T value; 8751: 8751: inline QHashNode(const Key &key0, const T &value0, uint hash, QHashNode *n) 8751: : next(n), h(hash), key(key0), value(value0) {} 8751: inline bool same_key(uint h0, const Key &key0) const { return h0 == h && key0 == key; } 8751: 8751: private: 8751: QHashNode(const QHashNode &) = delete; QHashNode &operator=(const QHashNode &) = delete; 8751: }; 8751: 8751: 8751: template 8751: struct QHashNode 8751: { 8751: union { 8751: QHashNode *next; 8751: QHashDummyValue value; 8751: }; 8751: const uint h; 8751: const Key key; 8751: 8751: inline QHashNode(const Key &key0, const QHashDummyValue &, uint hash, QHashNode *n) 8751: : next(n), h(hash), key(key0) {} 8751: inline bool same_key(uint h0, const Key &key0) const { return h0 == h && key0 == key; } 8751: 8751: private: 8751: QHashNode(const QHashNode &) = delete; QHashNode &operator=(const QHashNode &) = delete; 8751: }; 8751: # 226 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhash.h" 3 4 8751: template 8751: class QHash 8751: { 8751: typedef QHashNode Node; 8751: 8751: union { 8751: QHashData *d; 8751: QHashNode *e; 8751: }; 8751: 8751: static inline Node *concrete(QHashData::Node *node) { 8751: return reinterpret_cast(node); 8751: } 8751: 8751: static inline int alignOfNode() { return qMax(sizeof(void*), alignof(Node)); } 8751: 8751: public: 8751: inline QHash() noexcept : d(const_cast(&QHashData::shared_null)) { } 8751: 8751: inline QHash(std::initializer_list > list) 8751: : d(const_cast(&QHashData::shared_null)) 8751: { 8751: reserve(int(list.size())); 8751: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8751: insert(it->first, it->second); 8751: } 8751: 8751: QHash(const QHash &other) : d(other.d) { d->ref.ref(); if (!d->sharable) detach(); } 8751: ~QHash() { if (!d->ref.deref()) freeData(d); } 8751: 8751: QHash &operator=(const QHash &other); 8751: 8751: QHash(QHash &&other) noexcept : d(other.d) { other.d = const_cast(&QHashData::shared_null); } 8751: QHash &operator=(QHash &&other) noexcept 8751: { QHash moved(std::move(other)); swap(moved); return *this; } 8751: 8751: void swap(QHash &other) noexcept { qSwap(d, other.d); } 8751: 8751: bool operator==(const QHash &other) const; 8751: bool operator!=(const QHash &other) const { return !(*this == other); } 8751: 8751: inline int size() const { return d->size; } 8751: 8751: inline bool isEmpty() const { return d->size == 0; } 8751: 8751: inline int capacity() const { return d->numBuckets; } 8751: void reserve(int size); 8751: inline void squeeze() { reserve(1); } 8751: 8751: inline void detach() { if (d->ref.isShared()) detach_helper(); } 8751: inline bool isDetached() const { return !d->ref.isShared(); } 8751: 8751: inline void setSharable(bool sharable) { if (!sharable) detach(); if (d != &QHashData::shared_null) d->sharable = sharable; } 8751: 8751: bool isSharedWith(const QHash &other) const { return d == other.d; } 8751: 8751: void clear(); 8751: 8751: int remove(const Key &key); 8751: T take(const Key &key); 8751: 8751: bool contains(const Key &key) const; 8751: const Key key(const T &value) const; 8751: const Key key(const T &value, const Key &defaultKey) const; 8751: const T value(const Key &key) const; 8751: const T value(const Key &key, const T &defaultValue) const; 8751: T &operator[](const Key &key); 8751: const T operator[](const Key &key) const; 8751: 8751: QList uniqueKeys() const; 8751: QList keys() const; 8751: QList keys(const T &value) const; 8751: QList values() const; 8751: QList values(const Key &key) const; 8751: int count(const Key &key) const; 8751: 8751: class const_iterator; 8751: 8751: class iterator 8751: { 8751: friend class const_iterator; 8751: friend class QHash; 8751: friend class QSet; 8751: QHashData::Node *i; 8751: 8751: public: 8751: typedef std::bidirectional_iterator_tag iterator_category; 8751: typedef qptrdiff difference_type; 8751: typedef T value_type; 8751: typedef T *pointer; 8751: typedef T &reference; 8751: 8751: inline iterator() : i(nullptr) { } 8751: explicit inline iterator(void *node) : i(reinterpret_cast(node)) { } 8751: 8751: inline const Key &key() const { return concrete(i)->key; } 8751: inline T &value() const { return concrete(i)->value; } 8751: inline T &operator*() const { return concrete(i)->value; } 8751: inline T *operator->() const { return &concrete(i)->value; } 8751: inline bool operator==(const iterator &o) const { return i == o.i; } 8751: inline bool operator!=(const iterator &o) const { return i != o.i; } 8751: 8751: inline iterator &operator++() { 8751: i = QHashData::nextNode(i); 8751: return *this; 8751: } 8751: inline iterator operator++(int) { 8751: iterator r = *this; 8751: i = QHashData::nextNode(i); 8751: return r; 8751: } 8751: inline iterator &operator--() { 8751: i = QHashData::previousNode(i); 8751: return *this; 8751: } 8751: inline iterator operator--(int) { 8751: iterator r = *this; 8751: i = QHashData::previousNode(i); 8751: return r; 8751: } 8751: inline iterator operator+(int j) const 8751: { iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8751: inline iterator operator-(int j) const { return operator+(-j); } 8751: inline iterator &operator+=(int j) { return *this = *this + j; } 8751: inline iterator &operator-=(int j) { return *this = *this - j; } 8751: # 359 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhash.h" 3 4 8751: }; 8751: friend class iterator; 8751: 8751: class const_iterator 8751: { 8751: friend class iterator; 8751: friend class QHash; 8751: friend class QSet; 8751: QHashData::Node *i; 8751: 8751: public: 8751: typedef std::bidirectional_iterator_tag iterator_category; 8751: typedef qptrdiff difference_type; 8751: typedef T value_type; 8751: typedef const T *pointer; 8751: typedef const T &reference; 8751: 8751: constexpr inline const_iterator() : i(nullptr) { } 8751: explicit inline const_iterator(void *node) 8751: : i(reinterpret_cast(node)) { } 8751: 8751: explicit inline const_iterator(const iterator &o) 8751: 8751: 8751: 8751: { i = o.i; } 8751: 8751: inline const Key &key() const { return concrete(i)->key; } 8751: inline const T &value() const { return concrete(i)->value; } 8751: inline const T &operator*() const { return concrete(i)->value; } 8751: inline const T *operator->() const { return &concrete(i)->value; } 8751: constexpr inline bool operator==(const const_iterator &o) const { return i == o.i; } 8751: constexpr inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8751: 8751: inline const_iterator &operator++() { 8751: i = QHashData::nextNode(i); 8751: return *this; 8751: } 8751: inline const_iterator operator++(int) { 8751: const_iterator r = *this; 8751: i = QHashData::nextNode(i); 8751: return r; 8751: } 8751: inline const_iterator &operator--() { 8751: i = QHashData::previousNode(i); 8751: return *this; 8751: } 8751: inline const_iterator operator--(int) { 8751: const_iterator r = *this; 8751: i = QHashData::previousNode(i); 8751: return r; 8751: } 8751: inline const_iterator operator+(int j) const 8751: { const_iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8751: inline const_iterator operator-(int j) const { return operator+(-j); } 8751: inline const_iterator &operator+=(int j) { return *this = *this + j; } 8751: inline const_iterator &operator-=(int j) { return *this = *this - j; } 8751: 8751: 8751: 8751: private: 8751: inline bool operator==(const iterator &o) const { return operator==(const_iterator(o)); } 8751: inline bool operator!=(const iterator &o) const { return operator!=(const_iterator(o)); } 8751: 8751: }; 8751: friend class const_iterator; 8751: 8751: class key_iterator 8751: { 8751: const_iterator i; 8751: 8751: public: 8751: typedef typename const_iterator::iterator_category iterator_category; 8751: typedef typename const_iterator::difference_type difference_type; 8751: typedef Key value_type; 8751: typedef const Key *pointer; 8751: typedef const Key &reference; 8751: 8751: key_iterator() = default; 8751: explicit key_iterator(const_iterator o) : i(o) { } 8751: 8751: const Key &operator*() const { return i.key(); } 8751: const Key *operator->() const { return &i.key(); } 8751: bool operator==(key_iterator o) const { return i == o.i; } 8751: bool operator!=(key_iterator o) const { return i != o.i; } 8751: 8751: inline key_iterator &operator++() { ++i; return *this; } 8751: inline key_iterator operator++(int) { return key_iterator(i++);} 8751: inline key_iterator &operator--() { --i; return *this; } 8751: inline key_iterator operator--(int) { return key_iterator(i--); } 8751: const_iterator base() const { return i; } 8751: }; 8751: 8751: 8751: inline iterator begin() { detach(); return iterator(d->firstNode()); } 8751: inline const_iterator begin() const { return const_iterator(d->firstNode()); } 8751: inline const_iterator cbegin() const { return const_iterator(d->firstNode()); } 8751: inline const_iterator constBegin() const { return const_iterator(d->firstNode()); } 8751: inline iterator end() { detach(); return iterator(e); } 8751: inline const_iterator end() const { return const_iterator(e); } 8751: inline const_iterator cend() const { return const_iterator(e); } 8751: inline const_iterator constEnd() const { return const_iterator(e); } 8751: inline key_iterator keyBegin() const { return key_iterator(begin()); } 8751: inline key_iterator keyEnd() const { return key_iterator(end()); } 8751: 8751: QPair equal_range(const Key &key); 8751: QPair equal_range(const Key &key) const noexcept; 8751: iterator erase(iterator it) { return erase(const_iterator(it.i)); } 8751: iterator erase(const_iterator it); 8751: 8751: 8751: typedef iterator Iterator; 8751: typedef const_iterator ConstIterator; 8751: inline int count() const { return d->size; } 8751: iterator find(const Key &key); 8751: const_iterator find(const Key &key) const; 8751: const_iterator constFind(const Key &key) const; 8751: iterator insert(const Key &key, const T &value); 8751: iterator insertMulti(const Key &key, const T &value); 8751: QHash &unite(const QHash &other); 8751: 8751: 8751: typedef T mapped_type; 8751: typedef Key key_type; 8751: typedef qptrdiff difference_type; 8751: typedef int size_type; 8751: 8751: inline bool empty() const { return isEmpty(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: private: 8751: void detach_helper(); 8751: void freeData(QHashData *d); 8751: Node **findNode(const Key &key, uint *hp = nullptr) const; 8751: Node **findNode(const Key &key, uint h) const; 8751: Node *createNode(uint h, const Key &key, const T &value, Node **nextNode); 8751: void deleteNode(Node *node); 8751: static void deleteNode2(QHashData::Node *node); 8751: 8751: static void duplicateNode(QHashData::Node *originalNode, void *newNode); 8751: 8751: bool isValidIterator(const iterator &it) const noexcept 8751: { return isValidNode(it.i); } 8751: bool isValidIterator(const const_iterator &it) const noexcept 8751: { return isValidNode(it.i); } 8751: bool isValidNode(QHashData::Node *node) const noexcept 8751: { 8751: 8751: 8751: 8751: 8751: 8751: (void)node;; 8751: return true; 8751: 8751: } 8751: friend class QSet; 8751: }; 8751: 8751: 8751: template 8751: inline void QHash::deleteNode(Node *node) 8751: { 8751: deleteNode2(reinterpret_cast(node)); 8751: d->freeNode(node); 8751: } 8751: 8751: template 8751: inline void QHash::deleteNode2(QHashData::Node *node) 8751: { 8751: 8751: 8751: 8751: concrete(node)->~Node(); 8751: 8751: } 8751: 8751: template 8751: inline void QHash::duplicateNode(QHashData::Node *node, void *newNode) 8751: { 8751: Node *concreteNode = concrete(node); 8751: new (newNode) Node(concreteNode->key, concreteNode->value, concreteNode->h, nullptr); 8751: } 8751: 8751: template 8751: inline typename QHash::Node * 8751: QHash::createNode(uint ah, const Key &akey, const T &avalue, Node **anextNode) 8751: { 8751: Node *node = new (d->allocateNode(alignOfNode())) Node(akey, avalue, ah, *anextNode); 8751: *anextNode = node; 8751: ++d->size; 8751: return node; 8751: } 8751: 8751: template 8751: inline QHash &QHash::unite(const QHash &other) 8751: { 8751: if (d == &QHashData::shared_null) { 8751: *this = other; 8751: } else { 8751: QHash copy(other); 8751: const_iterator it = copy.constEnd(); 8751: while (it != copy.constBegin()) { 8751: --it; 8751: insertMulti(it.key(), it.value()); 8751: } 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: void QHash::freeData(QHashData *x) 8751: { 8751: x->free_helper(deleteNode2); 8751: } 8751: 8751: template 8751: inline void QHash::clear() 8751: { 8751: *this = QHash(); 8751: } 8751: 8751: template 8751: void QHash::detach_helper() 8751: { 8751: QHashData *x = d->detach_helper(duplicateNode, deleteNode2, sizeof(Node), alignOfNode()); 8751: if (!d->ref.deref()) 8751: freeData(d); 8751: d = x; 8751: } 8751: 8751: template 8751: inline QHash &QHash::operator=(const QHash &other) 8751: { 8751: if (d != other.d) { 8751: QHashData *o = other.d; 8751: o->ref.ref(); 8751: if (!d->ref.deref()) 8751: freeData(d); 8751: d = o; 8751: if (!d->sharable) 8751: detach_helper(); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: inline const T QHash::value(const Key &akey) const 8751: { 8751: Node *node; 8751: if (d->size == 0 || (node = *findNode(akey)) == e) { 8751: return T(); 8751: } else { 8751: return node->value; 8751: } 8751: } 8751: 8751: template 8751: inline const T QHash::value(const Key &akey, const T &adefaultValue) const 8751: { 8751: Node *node; 8751: if (d->size == 0 || (node = *findNode(akey)) == e) { 8751: return adefaultValue; 8751: } else { 8751: return node->value; 8751: } 8751: } 8751: 8751: template 8751: QList QHash::uniqueKeys() const 8751: { 8751: QList res; 8751: res.reserve(size()); 8751: const_iterator i = begin(); 8751: if (i != end()) { 8751: for (;;) { 8751: const Key &aKey = i.key(); 8751: res.append(aKey); 8751: do { 8751: if (++i == end()) 8751: goto break_out_of_outer_loop; 8751: } while (aKey == i.key()); 8751: } 8751: } 8751: break_out_of_outer_loop: 8751: return res; 8751: } 8751: 8751: template 8751: QList QHash::keys() const 8751: { 8751: QList res; 8751: res.reserve(size()); 8751: const_iterator i = begin(); 8751: while (i != end()) { 8751: res.append(i.key()); 8751: ++i; 8751: } 8751: return res; 8751: } 8751: 8751: template 8751: QList QHash::keys(const T &avalue) const 8751: { 8751: QList res; 8751: const_iterator i = begin(); 8751: while (i != end()) { 8751: if (i.value() == avalue) 8751: res.append(i.key()); 8751: ++i; 8751: } 8751: return res; 8751: } 8751: 8751: template 8751: const Key QHash::key(const T &avalue) const 8751: { 8751: return key(avalue, Key()); 8751: } 8751: 8751: template 8751: const Key QHash::key(const T &avalue, const Key &defaultValue) const 8751: { 8751: const_iterator i = begin(); 8751: while (i != end()) { 8751: if (i.value() == avalue) 8751: return i.key(); 8751: ++i; 8751: } 8751: 8751: return defaultValue; 8751: } 8751: 8751: template 8751: QList QHash::values() const 8751: { 8751: QList res; 8751: res.reserve(size()); 8751: const_iterator i = begin(); 8751: while (i != end()) { 8751: res.append(i.value()); 8751: ++i; 8751: } 8751: return res; 8751: } 8751: 8751: template 8751: QList QHash::values(const Key &akey) const 8751: { 8751: QList res; 8751: Node *node = *findNode(akey); 8751: if (node != e) { 8751: do { 8751: res.append(node->value); 8751: } while ((node = node->next) != e && node->key == akey); 8751: } 8751: return res; 8751: } 8751: 8751: template 8751: int QHash::count(const Key &akey) const 8751: { 8751: int cnt = 0; 8751: Node *node = *findNode(akey); 8751: if (node != e) { 8751: do { 8751: ++cnt; 8751: } while ((node = node->next) != e && node->key == akey); 8751: } 8751: return cnt; 8751: } 8751: 8751: template 8751: inline const T QHash::operator[](const Key &akey) const 8751: { 8751: return value(akey); 8751: } 8751: 8751: template 8751: inline T &QHash::operator[](const Key &akey) 8751: { 8751: detach(); 8751: 8751: uint h; 8751: Node **node = findNode(akey, &h); 8751: if (*node == e) { 8751: if (d->willGrow()) 8751: node = findNode(akey, h); 8751: return createNode(h, akey, T(), node)->value; 8751: } 8751: return (*node)->value; 8751: } 8751: 8751: template 8751: inline typename QHash::iterator QHash::insert(const Key &akey, 8751: const T &avalue) 8751: { 8751: detach(); 8751: 8751: uint h; 8751: Node **node = findNode(akey, &h); 8751: if (*node == e) { 8751: if (d->willGrow()) 8751: node = findNode(akey, h); 8751: return iterator(createNode(h, akey, avalue, node)); 8751: } 8751: 8751: if (!std::is_same::value) 8751: (*node)->value = avalue; 8751: return iterator(*node); 8751: } 8751: 8751: template 8751: inline typename QHash::iterator QHash::insertMulti(const Key &akey, 8751: const T &avalue) 8751: { 8751: detach(); 8751: d->willGrow(); 8751: 8751: uint h; 8751: Node **nextNode = findNode(akey, &h); 8751: return iterator(createNode(h, akey, avalue, nextNode)); 8751: } 8751: 8751: template 8751: int QHash::remove(const Key &akey) 8751: { 8751: if (isEmpty()) 8751: return 0; 8751: detach(); 8751: 8751: int oldSize = d->size; 8751: Node **node = findNode(akey); 8751: if (*node != e) { 8751: bool deleteNext = true; 8751: do { 8751: Node *next = (*node)->next; 8751: deleteNext = (next != e && next->key == (*node)->key); 8751: deleteNode(*node); 8751: *node = next; 8751: --d->size; 8751: } while (deleteNext); 8751: d->hasShrunk(); 8751: } 8751: return oldSize - d->size; 8751: } 8751: 8751: template 8751: T QHash::take(const Key &akey) 8751: { 8751: if (isEmpty()) 8751: return T(); 8751: detach(); 8751: 8751: Node **node = findNode(akey); 8751: if (*node != e) { 8751: T t = (*node)->value; 8751: Node *next = (*node)->next; 8751: deleteNode(*node); 8751: *node = next; 8751: --d->size; 8751: d->hasShrunk(); 8751: return t; 8751: } 8751: return T(); 8751: } 8751: 8751: template 8751: typename QHash::iterator QHash::erase(const_iterator it) 8751: { 8751: do { } while ((false) && (isValidIterator(it))); 8751: 8751: if (it == const_iterator(e)) 8751: return iterator(it.i); 8751: 8751: if (d->ref.isShared()) { 8751: 8751: int bucketNum = (it.i->h % d->numBuckets); 8751: const_iterator bucketIterator(*(d->buckets + bucketNum)); 8751: int stepsFromBucketStartToIte = 0; 8751: while (bucketIterator != it) { 8751: ++stepsFromBucketStartToIte; 8751: ++bucketIterator; 8751: } 8751: detach(); 8751: it = const_iterator(*(d->buckets + bucketNum)); 8751: while (stepsFromBucketStartToIte > 0) { 8751: --stepsFromBucketStartToIte; 8751: ++it; 8751: } 8751: } 8751: 8751: iterator ret(it.i); 8751: ++ret; 8751: 8751: Node *node = concrete(it.i); 8751: Node **node_ptr = reinterpret_cast(&d->buckets[node->h % d->numBuckets]); 8751: while (*node_ptr != node) 8751: node_ptr = &(*node_ptr)->next; 8751: *node_ptr = node->next; 8751: deleteNode(node); 8751: --d->size; 8751: return ret; 8751: } 8751: 8751: template 8751: inline void QHash::reserve(int asize) 8751: { 8751: detach(); 8751: d->rehash(-qMax(asize, 1)); 8751: } 8751: 8751: template 8751: inline typename QHash::const_iterator QHash::find(const Key &akey) const 8751: { 8751: return const_iterator(*findNode(akey)); 8751: } 8751: 8751: template 8751: inline typename QHash::const_iterator QHash::constFind(const Key &akey) const 8751: { 8751: return const_iterator(*findNode(akey)); 8751: } 8751: 8751: template 8751: inline typename QHash::iterator QHash::find(const Key &akey) 8751: { 8751: detach(); 8751: return iterator(*findNode(akey)); 8751: } 8751: 8751: template 8751: inline bool QHash::contains(const Key &akey) const 8751: { 8751: return *findNode(akey) != e; 8751: } 8751: 8751: template 8751: typename QHash::Node **QHash::findNode(const Key &akey, uint h) const 8751: { 8751: Node **node; 8751: 8751: if (d->numBuckets) { 8751: node = reinterpret_cast(&d->buckets[h % d->numBuckets]); 8751: do { } while ((false) && (*node == e || (*node)->next)); 8751: while (*node != e && !(*node)->same_key(h, akey)) 8751: node = &(*node)->next; 8751: } else { 8751: node = const_cast(reinterpret_cast(&e)); 8751: } 8751: return node; 8751: } 8751: 8751: template 8751: typename QHash::Node **QHash::findNode(const Key &akey, 8751: uint *ahp) const 8751: { 8751: uint h = 0; 8751: 8751: if (d->numBuckets || ahp) { 8751: h = qHash(akey, d->seed); 8751: if (ahp) 8751: *ahp = h; 8751: } 8751: return findNode(akey, h); 8751: } 8751: 8751: template 8751: bool QHash::operator==(const QHash &other) const 8751: { 8751: if (size() != other.size()) 8751: return false; 8751: if (d == other.d) 8751: return true; 8751: 8751: const_iterator it = begin(); 8751: 8751: while (it != end()) { 8751: 8751: 8751: auto thisEqualRangeEnd = it; 8751: while (thisEqualRangeEnd != end() && it.key() == thisEqualRangeEnd.key()) 8751: ++thisEqualRangeEnd; 8751: 8751: const auto otherEqualRange = other.equal_range(it.key()); 8751: 8751: if (std::distance(it, thisEqualRangeEnd) != std::distance(otherEqualRange.first, otherEqualRange.second)) 8751: return false; 8751: # 962 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhash.h" 3 4 8751: if (!std::is_permutation(it, thisEqualRangeEnd, otherEqualRange.first 8751: 8751: 8751: 8751: )) { 8751: return false; 8751: } 8751: 8751: it = thisEqualRangeEnd; 8751: } 8751: 8751: return true; 8751: } 8751: 8751: template 8751: QPair::iterator, typename QHash::iterator> QHash::equal_range(const Key &akey) 8751: { 8751: detach(); 8751: auto pair = qAsConst(*this).equal_range(akey); 8751: return qMakePair(iterator(pair.first.i), iterator(pair.second.i)); 8751: } 8751: 8751: template 8751: QPair::const_iterator, typename QHash::const_iterator> QHash::equal_range(const Key &akey) const noexcept 8751: { 8751: Node *node = *findNode(akey); 8751: const_iterator firstIt = const_iterator(node); 8751: 8751: if (node != e) { 8751: 8751: 8751: 8751: 8751: while (node->next != e && node->next->key == akey) 8751: node = node->next; 8751: 8751: 8751: 8751: 8751: 8751: node = concrete(QHashData::nextNode(reinterpret_cast(node))); 8751: } 8751: 8751: return qMakePair(firstIt, const_iterator(node)); 8751: } 8751: 8751: template 8751: class QMultiHash : public QHash 8751: { 8751: public: 8751: QMultiHash() noexcept {} 8751: 8751: inline QMultiHash(std::initializer_list > list) 8751: { 8751: this->reserve(int(list.size())); 8751: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8751: insert(it->first, it->second); 8751: } 8751: 8751: 8751: 8751: 8751: QMultiHash(const QHash &other) : QHash(other) {} 8751: 8751: QMultiHash(QHash &&other) noexcept : QHash(std::move(other)) {} 8751: 8751: void swap(QMultiHash &other) noexcept { QHash::swap(other); } 8751: 8751: inline typename QHash::iterator replace(const Key &key, const T &value) 8751: { return QHash::insert(key, value); } 8751: 8751: inline typename QHash::iterator insert(const Key &key, const T &value) 8751: { return QHash::insertMulti(key, value); } 8751: 8751: inline QMultiHash &operator+=(const QMultiHash &other) 8751: { this->unite(other); return *this; } 8751: inline QMultiHash operator+(const QMultiHash &other) const 8751: { QMultiHash result = *this; result += other; return result; } 8751: 8751: using QHash::contains; 8751: using QHash::remove; 8751: using QHash::count; 8751: using QHash::find; 8751: using QHash::constFind; 8751: 8751: bool contains(const Key &key, const T &value) const; 8751: 8751: int remove(const Key &key, const T &value); 8751: 8751: int count(const Key &key, const T &value) const; 8751: 8751: typename QHash::iterator find(const Key &key, const T &value) { 8751: typename QHash::iterator i(find(key)); 8751: typename QHash::iterator end(this->end()); 8751: while (i != end && i.key() == key) { 8751: if (i.value() == value) 8751: return i; 8751: ++i; 8751: } 8751: return end; 8751: } 8751: typename QHash::const_iterator find(const Key &key, const T &value) const { 8751: typename QHash::const_iterator i(constFind(key)); 8751: typename QHash::const_iterator end(QHash::constEnd()); 8751: while (i != end && i.key() == key) { 8751: if (i.value() == value) 8751: return i; 8751: ++i; 8751: } 8751: return end; 8751: } 8751: typename QHash::const_iterator constFind(const Key &key, const T &value) const 8751: { return find(key, value); } 8751: private: 8751: T &operator[](const Key &key); 8751: const T operator[](const Key &key) const; 8751: }; 8751: 8751: template 8751: inline bool QMultiHash::contains(const Key &key, const T &value) const 8751: { 8751: return constFind(key, value) != QHash::constEnd(); 8751: } 8751: 8751: template 8751: inline int QMultiHash::remove(const Key &key, const T &value) 8751: { 8751: int n = 0; 8751: typename QHash::iterator i(find(key)); 8751: typename QHash::iterator end(QHash::end()); 8751: while (i != end && i.key() == key) { 8751: if (i.value() == value) { 8751: i = this->erase(i); 8751: ++n; 8751: } else { 8751: ++i; 8751: } 8751: } 8751: return n; 8751: } 8751: 8751: template 8751: inline int QMultiHash::count(const Key &key, const T &value) const 8751: { 8751: int n = 0; 8751: typename QHash::const_iterator i(constFind(key)); 8751: typename QHash::const_iterator end(QHash::constEnd()); 8751: while (i != end && i.key() == key) { 8751: if (i.value() == value) 8751: ++n; 8751: ++i; 8751: } 8751: return n; 8751: } 8751: 8751: template class QHashIterator { typedef typename QHash::const_iterator const_iterator; typedef const_iterator Item; QHash c; const_iterator i, n; inline bool item_exists() const { return n != c.constEnd(); } public: inline QHashIterator(const QHash &container) : c(container), i(c.constBegin()), n(c.constEnd()) {} inline QHashIterator &operator=(const QHash &container) { c = container; i = c.constBegin(); n = c.constEnd(); return *this; } inline void toFront() { i = c.constBegin(); n = c.constEnd(); } inline void toBack() { i = c.constEnd(); n = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline Item next() { n = i++; return n; } inline Item peekNext() const { return i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline Item previous() { n = --i; return n; } inline Item peekPrevious() const { const_iterator p = i; return --p; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline const Key &key() const { do { } while ((false) && (item_exists())); return n.key(); } inline bool findNext(const T &t) { while ((n = i) != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(n = --i) == t) return true; n = c.constEnd(); return false; } }; 8751: template class QMutableHashIterator { typedef typename QHash::iterator iterator; typedef typename QHash::const_iterator const_iterator; typedef iterator Item; QHash *c; iterator i, n; inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } public: inline QMutableHashIterator(QHash &container) : c(&container) { i = c->begin(); n = c->end(); } inline QMutableHashIterator &operator=(QHash &container) { c = &container; i = c->begin(); n = c->end(); return *this; } inline void toFront() { i = c->begin(); n = c->end(); } inline void toBack() { i = c->end(); n = c->end(); } inline bool hasNext() const { return const_iterator(i) != c->constEnd(); } inline Item next() { n = i++; return n; } inline Item peekNext() const { return i; } inline bool hasPrevious() const { return const_iterator(i) != c->constBegin(); } inline Item previous() { n = --i; return n; } inline Item peekPrevious() const { iterator p = i; return --p; } inline void remove() { if (const_iterator(n) != c->constEnd()) { i = c->erase(n); n = c->end(); } } inline void setValue(const T &t) { if (const_iterator(n) != c->constEnd()) *n = t; } inline T &value() { do { } while ((false) && (item_exists())); return *n; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline const Key &key() const { do { } while ((false) && (item_exists())); return n.key(); } inline bool findNext(const T &t) { while (const_iterator(n = i) != c->constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (const_iterator(i) != c->constBegin()) if (*(n = --i) == t) return true; n = c->end(); return false; } }; 8751: 8751: template 8751: uint qHash(const QHash &key, uint seed = 0) 8751: noexcept(noexcept(qHash(std::declval())) && noexcept(qHash(std::declval()))) 8751: { 8751: QtPrivate::QHashCombineCommutative hash; 8751: for (auto it = key.begin(), end = key.end(); it != end; ++it) { 8751: const Key &k = it.key(); 8751: const T &v = it.value(); 8751: seed = hash(seed, std::pair(k, v)); 8751: } 8751: return seed; 8751: } 8751: 8751: template 8751: inline uint qHash(const QMultiHash &key, uint seed = 0) 8751: noexcept(noexcept(qHash(std::declval())) && noexcept(qHash(std::declval()))) 8751: { 8751: const QHash &key2 = key; 8751: return qHash(key2, seed); 8751: } 8751: 8751: 8751: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 2 3 4 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringlist.h" 1 3 4 8751: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 1 3 4 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qscopedpointer.h" 1 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qscopedpointer.h" 3 4 8751: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8751: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qscopedpointer.h" 2 3 4 8751: 8751: 8751: 8751: template 8751: struct QScopedPointerDeleter 8751: { 8751: static inline void cleanup(T *pointer) 8751: { 8751: 8751: 8751: 8751: typedef char IsIncompleteType[ sizeof(T) ? 1 : -1 ]; 8751: (void) sizeof(IsIncompleteType); 8751: 8751: delete pointer; 8751: } 8751: }; 8751: 8751: template 8751: struct QScopedPointerArrayDeleter 8751: { 8751: static inline void cleanup(T *pointer) 8751: { 8751: 8751: 8751: 8751: typedef char IsIncompleteType[ sizeof(T) ? 1 : -1 ]; 8751: (void) sizeof(IsIncompleteType); 8751: 8751: delete [] pointer; 8751: } 8751: }; 8751: 8751: struct QScopedPointerPodDeleter 8751: { 8751: static inline void cleanup(void *pointer) { if (pointer) free(pointer); } 8751: }; 8751: 8751: 8751: template 8751: struct QScopedPointerObjectDeleteLater 8751: { 8751: static inline void cleanup(T *pointer) { if (pointer) pointer->deleteLater(); } 8751: }; 8751: 8751: class QObject; 8751: typedef QScopedPointerObjectDeleteLater QScopedPointerDeleteLater; 8751: 8751: 8751: template > 8751: class QScopedPointer 8751: { 8751: typedef T *QScopedPointer:: *RestrictedBool; 8751: public: 8751: explicit QScopedPointer(T *p = nullptr) noexcept : d(p) 8751: { 8751: } 8751: 8751: inline ~QScopedPointer() 8751: { 8751: T *oldD = this->d; 8751: Cleanup::cleanup(oldD); 8751: } 8751: 8751: inline T &operator*() const 8751: { 8751: do { } while ((false) && (d)); 8751: return *d; 8751: } 8751: 8751: T *operator->() const noexcept 8751: { 8751: return d; 8751: } 8751: 8751: bool operator!() const noexcept 8751: { 8751: return !d; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: operator RestrictedBool() const noexcept 8751: { 8751: return isNull() ? nullptr : &QScopedPointer::d; 8751: } 8751: 8751: 8751: T *data() const noexcept 8751: { 8751: return d; 8751: } 8751: 8751: bool isNull() const noexcept 8751: { 8751: return !d; 8751: } 8751: 8751: void reset(T *other = nullptr) noexcept(noexcept(Cleanup::cleanup(std::declval()))) 8751: { 8751: if (d == other) 8751: return; 8751: T *oldD = d; 8751: d = other; 8751: Cleanup::cleanup(oldD); 8751: } 8751: 8751: T *take() noexcept 8751: { 8751: T *oldD = d; 8751: d = nullptr; 8751: return oldD; 8751: } 8751: 8751: void swap(QScopedPointer &other) noexcept 8751: { 8751: qSwap(d, other.d); 8751: } 8751: 8751: typedef T *pointer; 8751: 8751: protected: 8751: T *d; 8751: 8751: private: 8751: QScopedPointer(const QScopedPointer &) = delete; QScopedPointer &operator=(const QScopedPointer &) = delete; 8751: }; 8751: 8751: template 8751: inline bool operator==(const QScopedPointer &lhs, const QScopedPointer &rhs) noexcept 8751: { 8751: return lhs.data() == rhs.data(); 8751: } 8751: 8751: template 8751: inline bool operator!=(const QScopedPointer &lhs, const QScopedPointer &rhs) noexcept 8751: { 8751: return lhs.data() != rhs.data(); 8751: } 8751: 8751: template 8751: inline bool operator==(const QScopedPointer &lhs, std::nullptr_t) noexcept 8751: { 8751: return lhs.isNull(); 8751: } 8751: 8751: template 8751: inline bool operator==(std::nullptr_t, const QScopedPointer &rhs) noexcept 8751: { 8751: return rhs.isNull(); 8751: } 8751: 8751: template 8751: inline bool operator!=(const QScopedPointer &lhs, std::nullptr_t) noexcept 8751: { 8751: return !lhs.isNull(); 8751: } 8751: 8751: template 8751: inline bool operator!=(std::nullptr_t, const QScopedPointer &rhs) noexcept 8751: { 8751: return !rhs.isNull(); 8751: } 8751: 8751: template 8751: inline void swap(QScopedPointer &p1, QScopedPointer &p2) noexcept 8751: { p1.swap(p2); } 8751: 8751: 8751: namespace QtPrivate { 8751: template struct QScopedArrayEnsureSameType; 8751: template struct QScopedArrayEnsureSameType { typedef X* Type; }; 8751: template struct QScopedArrayEnsureSameType { typedef X* Type; }; 8751: } 8751: 8751: template > 8751: class QScopedArrayPointer : public QScopedPointer 8751: { 8751: public: 8751: inline QScopedArrayPointer() : QScopedPointer(nullptr) {} 8751: 8751: template 8751: explicit inline QScopedArrayPointer(D *p, typename QtPrivate::QScopedArrayEnsureSameType::Type = nullptr) 8751: : QScopedPointer(p) 8751: { 8751: } 8751: 8751: inline T &operator[](int i) 8751: { 8751: return this->d[i]; 8751: } 8751: 8751: inline const T &operator[](int i) const 8751: { 8751: return this->d[i]; 8751: } 8751: 8751: void swap(QScopedArrayPointer &other) noexcept 8751: { QScopedPointer::swap(other); } 8751: 8751: private: 8751: explicit inline QScopedArrayPointer(void *) { 8751: # 260 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qscopedpointer.h" 3 4 8751: } 8751: 8751: QScopedArrayPointer(const QScopedArrayPointer &) = delete; QScopedArrayPointer &operator=(const QScopedArrayPointer &) = delete; 8751: }; 8751: 8751: template 8751: inline void swap(QScopedArrayPointer &lhs, QScopedArrayPointer &rhs) noexcept 8751: { lhs.swap(rhs); } 8751: 8751: 8751: # 54 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 2 3 4 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject_impl.h" 1 3 4 8751: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject_impl.h" 3 4 8751: 8751: 8751: 8751: namespace QtPrivate { 8751: # 65 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject_impl.h" 3 4 8751: template struct TypesAreDeclaredMetaType { enum { Value = false }; }; 8751: template <> struct TypesAreDeclaredMetaType> { enum { Value = true }; }; 8751: template struct TypesAreDeclaredMetaType > 8751: { enum { Value = QMetaTypeId2::Defined && TypesAreDeclaredMetaType>::Value }; }; 8751: 8751: template ::Value > struct ConnectionTypes 8751: { static const int *types() { return nullptr; } }; 8751: template <> struct ConnectionTypes, true> 8751: { static const int *types() { return nullptr; } }; 8751: template struct ConnectionTypes, true> 8751: { static const int *types() { static const int t[sizeof...(Args) + 1] = { (QtPrivate::QMetaTypeIdHelper::qt_metatype_id())..., 0 }; return t; } }; 8751: 8751: 8751: class QSlotObjectBase { 8751: QAtomicInt m_ref; 8751: 8751: 8751: 8751: typedef void (*ImplFn)(int which, QSlotObjectBase* this_, QObject *receiver, void **args, bool *ret); 8751: const ImplFn m_impl; 8751: protected: 8751: enum Operation { 8751: Destroy, 8751: Call, 8751: Compare, 8751: 8751: NumOperations 8751: }; 8751: public: 8751: explicit QSlotObjectBase(ImplFn fn) : m_ref(1), m_impl(fn) {} 8751: 8751: inline int ref() noexcept { return m_ref.ref(); } 8751: inline void destroyIfLastRef() noexcept 8751: { if (!m_ref.deref()) m_impl(Destroy, this, nullptr, nullptr, nullptr); } 8751: 8751: inline bool compare(void **a) { bool ret = false; m_impl(Compare, this, nullptr, a, &ret); return ret; } 8751: inline void call(QObject *r, void **a) { m_impl(Call, this, r, a, nullptr); } 8751: protected: 8751: ~QSlotObjectBase() {} 8751: private: 8751: QSlotObjectBase(const QSlotObjectBase &) = delete; QSlotObjectBase &operator=(const QSlotObjectBase &) = delete; 8751: }; 8751: 8751: 8751: template class QSlotObject : public QSlotObjectBase 8751: { 8751: typedef QtPrivate::FunctionPointer FuncType; 8751: Func function; 8751: static void impl(int which, QSlotObjectBase *this_, QObject *r, void **a, bool *ret) 8751: { 8751: switch (which) { 8751: case Destroy: 8751: delete static_cast(this_); 8751: break; 8751: case Call: 8751: FuncType::template call(static_cast(this_)->function, static_cast(r), a); 8751: break; 8751: case Compare: 8751: *ret = *reinterpret_cast(a) == static_cast(this_)->function; 8751: break; 8751: case NumOperations: ; 8751: } 8751: } 8751: public: 8751: explicit QSlotObject(Func f) : QSlotObjectBase(&impl), function(f) {} 8751: }; 8751: 8751: 8751: template class QStaticSlotObject : public QSlotObjectBase 8751: { 8751: typedef QtPrivate::FunctionPointer FuncType; 8751: Func function; 8751: static void impl(int which, QSlotObjectBase *this_, QObject *r, void **a, bool *ret) 8751: { 8751: switch (which) { 8751: case Destroy: 8751: delete static_cast(this_); 8751: break; 8751: case Call: 8751: FuncType::template call(static_cast(this_)->function, r, a); 8751: break; 8751: case Compare: 8751: case NumOperations: 8751: (void)ret;; 8751: } 8751: } 8751: public: 8751: explicit QStaticSlotObject(Func f) : QSlotObjectBase(&impl), function(f) {} 8751: }; 8751: 8751: 8751: 8751: template class QFunctorSlotObject : public QSlotObjectBase 8751: { 8751: typedef QtPrivate::Functor FuncType; 8751: Func function; 8751: static void impl(int which, QSlotObjectBase *this_, QObject *r, void **a, bool *ret) 8751: { 8751: switch (which) { 8751: case Destroy: 8751: delete static_cast(this_); 8751: break; 8751: case Call: 8751: FuncType::template call(static_cast(this_)->function, r, a); 8751: break; 8751: case Compare: 8751: case NumOperations: 8751: (void)ret;; 8751: } 8751: } 8751: public: 8751: explicit QFunctorSlotObject(const Func &f) : QSlotObjectBase(&impl), function(f) {} 8751: }; 8751: } 8751: 8751: 8751: 8751: # 57 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 2 3 4 8751: 8751: 8751: # 1 "/usr/include/c++/8/chrono" 1 3 4 8751: # 32 "/usr/include/c++/8/chrono" 3 4 8751: 8751: # 33 "/usr/include/c++/8/chrono" 3 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/ratio" 1 3 8751: # 32 "/usr/include/c++/8/ratio" 3 8751: 8751: # 33 "/usr/include/c++/8/ratio" 3 8751: # 43 "/usr/include/c++/8/ratio" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 55 "/usr/include/c++/8/ratio" 3 8751: template 8751: struct __static_sign 8751: : integral_constant 8751: { }; 8751: 8751: template 8751: struct __static_abs 8751: : integral_constant::value> 8751: { }; 8751: 8751: template 8751: struct __static_gcd 8751: : __static_gcd<_Qn, (_Pn % _Qn)> 8751: { }; 8751: 8751: template 8751: struct __static_gcd<_Pn, 0> 8751: : integral_constant::value> 8751: { }; 8751: 8751: template 8751: struct __static_gcd<0, _Qn> 8751: : integral_constant::value> 8751: { }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct __safe_multiply 8751: { 8751: private: 8751: static const uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 8751: 8751: static const uintmax_t __a0 = __static_abs<_Pn>::value % __c; 8751: static const uintmax_t __a1 = __static_abs<_Pn>::value / __c; 8751: static const uintmax_t __b0 = __static_abs<_Qn>::value % __c; 8751: static const uintmax_t __b1 = __static_abs<_Qn>::value / __c; 8751: 8751: static_assert(__a1 == 0 || __b1 == 0, 8751: "overflow in multiplication"); 8751: static_assert(__a0 * __b1 + __b0 * __a1 < (__c >> 1), 8751: "overflow in multiplication"); 8751: static_assert(__b0 * __a0 <= 0x7fffffffffffffffLL, 8751: "overflow in multiplication"); 8751: static_assert((__a0 * __b1 + __b0 * __a1) * __c 8751: <= 0x7fffffffffffffffLL - __b0 * __a0, 8751: "overflow in multiplication"); 8751: 8751: public: 8751: static const intmax_t value = _Pn * _Qn; 8751: }; 8751: 8751: 8751: 8751: template 8751: struct __big_less 8751: : integral_constant 8751: { }; 8751: 8751: template 8751: struct __big_add 8751: { 8751: static constexpr uintmax_t __lo = __lo1 + __lo2; 8751: static constexpr uintmax_t __hi = (__hi1 + __hi2 + 8751: (__lo1 + __lo2 < __lo1)); 8751: }; 8751: 8751: 8751: template 8751: struct __big_sub 8751: { 8751: static_assert(!__big_less<__hi1, __lo1, __hi2, __lo2>::value, 8751: "Internal library error"); 8751: static constexpr uintmax_t __lo = __lo1 - __lo2; 8751: static constexpr uintmax_t __hi = (__hi1 - __hi2 - 8751: (__lo1 < __lo2)); 8751: }; 8751: 8751: 8751: template 8751: struct __big_mul 8751: { 8751: private: 8751: static constexpr uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 8751: static constexpr uintmax_t __x0 = __x % __c; 8751: static constexpr uintmax_t __x1 = __x / __c; 8751: static constexpr uintmax_t __y0 = __y % __c; 8751: static constexpr uintmax_t __y1 = __y / __c; 8751: static constexpr uintmax_t __x0y0 = __x0 * __y0; 8751: static constexpr uintmax_t __x0y1 = __x0 * __y1; 8751: static constexpr uintmax_t __x1y0 = __x1 * __y0; 8751: static constexpr uintmax_t __x1y1 = __x1 * __y1; 8751: static constexpr uintmax_t __mix = __x0y1 + __x1y0; 8751: static constexpr uintmax_t __mix_lo = __mix * __c; 8751: static constexpr uintmax_t __mix_hi 8751: = __mix / __c + ((__mix < __x0y1) ? __c : 0); 8751: typedef __big_add<__mix_hi, __mix_lo, __x1y1, __x0y0> _Res; 8751: public: 8751: static constexpr uintmax_t __hi = _Res::__hi; 8751: static constexpr uintmax_t __lo = _Res::__lo; 8751: }; 8751: 8751: 8751: 8751: template 8751: struct __big_div_impl 8751: { 8751: private: 8751: static_assert(__d >= (uintmax_t(1) << (sizeof(intmax_t) * 8 - 1)), 8751: "Internal library error"); 8751: static_assert(__n1 < __d, "Internal library error"); 8751: static constexpr uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 8751: static constexpr uintmax_t __d1 = __d / __c; 8751: static constexpr uintmax_t __d0 = __d % __c; 8751: 8751: static constexpr uintmax_t __q1x = __n1 / __d1; 8751: static constexpr uintmax_t __r1x = __n1 % __d1; 8751: static constexpr uintmax_t __m = __q1x * __d0; 8751: static constexpr uintmax_t __r1y = __r1x * __c + __n0 / __c; 8751: static constexpr uintmax_t __r1z = __r1y + __d; 8751: static constexpr uintmax_t __r1 8751: = ((__r1y < __m) ? ((__r1z >= __d) && (__r1z < __m)) 8751: ? (__r1z + __d) : __r1z : __r1y) - __m; 8751: static constexpr uintmax_t __q1 8751: = __q1x - ((__r1y < __m) 8751: ? ((__r1z >= __d) && (__r1z < __m)) ? 2 : 1 : 0); 8751: static constexpr uintmax_t __q0x = __r1 / __d1; 8751: static constexpr uintmax_t __r0x = __r1 % __d1; 8751: static constexpr uintmax_t __n = __q0x * __d0; 8751: static constexpr uintmax_t __r0y = __r0x * __c + __n0 % __c; 8751: static constexpr uintmax_t __r0z = __r0y + __d; 8751: static constexpr uintmax_t __r0 8751: = ((__r0y < __n) ? ((__r0z >= __d) && (__r0z < __n)) 8751: ? (__r0z + __d) : __r0z : __r0y) - __n; 8751: static constexpr uintmax_t __q0 8751: = __q0x - ((__r0y < __n) ? ((__r0z >= __d) 8751: && (__r0z < __n)) ? 2 : 1 : 0); 8751: 8751: public: 8751: static constexpr uintmax_t __quot = __q1 * __c + __q0; 8751: static constexpr uintmax_t __rem = __r0; 8751: 8751: private: 8751: typedef __big_mul<__quot, __d> _Prod; 8751: typedef __big_add<_Prod::__hi, _Prod::__lo, 0, __rem> _Sum; 8751: static_assert(_Sum::__hi == __n1 && _Sum::__lo == __n0, 8751: "Internal library error"); 8751: }; 8751: 8751: template 8751: struct __big_div 8751: { 8751: private: 8751: static_assert(__d != 0, "Internal library error"); 8751: static_assert(sizeof (uintmax_t) == sizeof (unsigned long long), 8751: "This library calls __builtin_clzll on uintmax_t, which " 8751: "is unsafe on your platform. Please complain to " 8751: "http://gcc.gnu.org/bugzilla/"); 8751: static constexpr int __shift = __builtin_clzll(__d); 8751: static constexpr int __coshift_ = sizeof(uintmax_t) * 8 - __shift; 8751: static constexpr int __coshift = (__shift != 0) ? __coshift_ : 0; 8751: static constexpr uintmax_t __c1 = uintmax_t(1) << __shift; 8751: static constexpr uintmax_t __c2 = uintmax_t(1) << __coshift; 8751: static constexpr uintmax_t __new_d = __d * __c1; 8751: static constexpr uintmax_t __new_n0 = __n0 * __c1; 8751: static constexpr uintmax_t __n1_shifted = (__n1 % __d) * __c1; 8751: static constexpr uintmax_t __n0_top = (__shift != 0) ? (__n0 / __c2) : 0; 8751: static constexpr uintmax_t __new_n1 = __n1_shifted + __n0_top; 8751: typedef __big_div_impl<__new_n1, __new_n0, __new_d> _Res; 8751: 8751: public: 8751: static constexpr uintmax_t __quot_hi = __n1 / __d; 8751: static constexpr uintmax_t __quot_lo = _Res::__quot; 8751: static constexpr uintmax_t __rem = _Res::__rem / __c1; 8751: 8751: private: 8751: typedef __big_mul<__quot_lo, __d> _P0; 8751: typedef __big_mul<__quot_hi, __d> _P1; 8751: typedef __big_add<_P0::__hi, _P0::__lo, _P1::__lo, __rem> _Sum; 8751: 8751: static_assert(_P1::__hi == 0, "Internal library error"); 8751: static_assert(_Sum::__hi >= _P0::__hi, "Internal library error"); 8751: 8751: static_assert(_Sum::__hi == __n1 && _Sum::__lo == __n0, 8751: "Internal library error"); 8751: static_assert(__rem < __d, "Internal library error"); 8751: }; 8751: # 262 "/usr/include/c++/8/ratio" 3 8751: template 8751: struct ratio 8751: { 8751: static_assert(_Den != 0, "denominator cannot be zero"); 8751: static_assert(_Num >= -0x7fffffffffffffffLL && _Den >= -0x7fffffffffffffffLL, 8751: "out of range"); 8751: 8751: 8751: static constexpr intmax_t num = 8751: _Num * __static_sign<_Den>::value / __static_gcd<_Num, _Den>::value; 8751: 8751: static constexpr intmax_t den = 8751: __static_abs<_Den>::value / __static_gcd<_Num, _Den>::value; 8751: 8751: typedef ratio type; 8751: }; 8751: 8751: template 8751: constexpr intmax_t ratio<_Num, _Den>::num; 8751: 8751: template 8751: constexpr intmax_t ratio<_Num, _Den>::den; 8751: 8751: template 8751: struct __ratio_multiply 8751: { 8751: private: 8751: static const intmax_t __gcd1 = 8751: __static_gcd<_R1::num, _R2::den>::value; 8751: static const intmax_t __gcd2 = 8751: __static_gcd<_R2::num, _R1::den>::value; 8751: 8751: public: 8751: typedef ratio< 8751: __safe_multiply<(_R1::num / __gcd1), 8751: (_R2::num / __gcd2)>::value, 8751: __safe_multiply<(_R1::den / __gcd2), 8751: (_R2::den / __gcd1)>::value> type; 8751: 8751: static constexpr intmax_t num = type::num; 8751: static constexpr intmax_t den = type::den; 8751: }; 8751: 8751: template 8751: constexpr intmax_t __ratio_multiply<_R1, _R2>::num; 8751: 8751: template 8751: constexpr intmax_t __ratio_multiply<_R1, _R2>::den; 8751: 8751: 8751: template 8751: using ratio_multiply = typename __ratio_multiply<_R1, _R2>::type; 8751: 8751: template 8751: struct __ratio_divide 8751: { 8751: static_assert(_R2::num != 0, "division by 0"); 8751: 8751: typedef typename __ratio_multiply< 8751: _R1, 8751: ratio<_R2::den, _R2::num>>::type type; 8751: 8751: static constexpr intmax_t num = type::num; 8751: static constexpr intmax_t den = type::den; 8751: }; 8751: 8751: template 8751: constexpr intmax_t __ratio_divide<_R1, _R2>::num; 8751: 8751: template 8751: constexpr intmax_t __ratio_divide<_R1, _R2>::den; 8751: 8751: 8751: template 8751: using ratio_divide = typename __ratio_divide<_R1, _R2>::type; 8751: 8751: 8751: template 8751: struct ratio_equal 8751: : integral_constant 8751: { }; 8751: 8751: 8751: template 8751: struct ratio_not_equal 8751: : integral_constant::value> 8751: { }; 8751: 8751: 8751: template, 8751: typename _Right = __big_mul<_R2::num,_R1::den> > 8751: struct __ratio_less_impl_1 8751: : integral_constant::value> 8751: { }; 8751: 8751: template::value 8751: != __static_sign<_R2::num>::value)), 8751: bool = (__static_sign<_R1::num>::value == -1 8751: && __static_sign<_R2::num>::value == -1)> 8751: struct __ratio_less_impl 8751: : __ratio_less_impl_1<_R1, _R2>::type 8751: { }; 8751: 8751: template 8751: struct __ratio_less_impl<_R1, _R2, true, false> 8751: : integral_constant 8751: { }; 8751: 8751: template 8751: struct __ratio_less_impl<_R1, _R2, false, true> 8751: : __ratio_less_impl_1, 8751: ratio<-_R1::num, _R1::den> >::type 8751: { }; 8751: 8751: 8751: template 8751: struct ratio_less 8751: : __ratio_less_impl<_R1, _R2>::type 8751: { }; 8751: 8751: 8751: template 8751: struct ratio_less_equal 8751: : integral_constant::value> 8751: { }; 8751: 8751: 8751: template 8751: struct ratio_greater 8751: : integral_constant::value> 8751: { }; 8751: 8751: 8751: template 8751: struct ratio_greater_equal 8751: : integral_constant::value> 8751: { }; 8751: # 421 "/usr/include/c++/8/ratio" 3 8751: template= 0), 8751: bool = (_R2::num >= 0), 8751: bool = ratio_less::value, _R1::den>, 8751: ratio<__static_abs<_R2::num>::value, _R2::den> >::value> 8751: struct __ratio_add_impl 8751: { 8751: private: 8751: typedef typename __ratio_add_impl< 8751: ratio<-_R1::num, _R1::den>, 8751: ratio<-_R2::num, _R2::den> >::type __t; 8751: public: 8751: typedef ratio<-__t::num, __t::den> type; 8751: }; 8751: 8751: 8751: template 8751: struct __ratio_add_impl<_R1, _R2, true, true, __b> 8751: { 8751: private: 8751: static constexpr uintmax_t __g = __static_gcd<_R1::den, _R2::den>::value; 8751: static constexpr uintmax_t __d2 = _R2::den / __g; 8751: typedef __big_mul<_R1::den, __d2> __d; 8751: typedef __big_mul<_R1::num, _R2::den / __g> __x; 8751: typedef __big_mul<_R2::num, _R1::den / __g> __y; 8751: typedef __big_add<__x::__hi, __x::__lo, __y::__hi, __y::__lo> __n; 8751: static_assert(__n::__hi >= __x::__hi, "Internal library error"); 8751: typedef __big_div<__n::__hi, __n::__lo, __g> __ng; 8751: static constexpr uintmax_t __g2 = __static_gcd<__ng::__rem, __g>::value; 8751: typedef __big_div<__n::__hi, __n::__lo, __g2> __n_final; 8751: static_assert(__n_final::__rem == 0, "Internal library error"); 8751: static_assert(__n_final::__quot_hi == 0 && 8751: __n_final::__quot_lo <= 0x7fffffffffffffffLL, "overflow in addition"); 8751: typedef __big_mul<_R1::den / __g2, __d2> __d_final; 8751: static_assert(__d_final::__hi == 0 && 8751: __d_final::__lo <= 0x7fffffffffffffffLL, "overflow in addition"); 8751: public: 8751: typedef ratio<__n_final::__quot_lo, __d_final::__lo> type; 8751: }; 8751: 8751: template 8751: struct __ratio_add_impl<_R1, _R2, false, true, true> 8751: : __ratio_add_impl<_R2, _R1> 8751: { }; 8751: 8751: 8751: template 8751: struct __ratio_add_impl<_R1, _R2, true, false, false> 8751: { 8751: private: 8751: static constexpr uintmax_t __g = __static_gcd<_R1::den, _R2::den>::value; 8751: static constexpr uintmax_t __d2 = _R2::den / __g; 8751: typedef __big_mul<_R1::den, __d2> __d; 8751: typedef __big_mul<_R1::num, _R2::den / __g> __x; 8751: typedef __big_mul<-_R2::num, _R1::den / __g> __y; 8751: typedef __big_sub<__x::__hi, __x::__lo, __y::__hi, __y::__lo> __n; 8751: typedef __big_div<__n::__hi, __n::__lo, __g> __ng; 8751: static constexpr uintmax_t __g2 = __static_gcd<__ng::__rem, __g>::value; 8751: typedef __big_div<__n::__hi, __n::__lo, __g2> __n_final; 8751: static_assert(__n_final::__rem == 0, "Internal library error"); 8751: static_assert(__n_final::__quot_hi == 0 && 8751: __n_final::__quot_lo <= 0x7fffffffffffffffLL, "overflow in addition"); 8751: typedef __big_mul<_R1::den / __g2, __d2> __d_final; 8751: static_assert(__d_final::__hi == 0 && 8751: __d_final::__lo <= 0x7fffffffffffffffLL, "overflow in addition"); 8751: public: 8751: typedef ratio<__n_final::__quot_lo, __d_final::__lo> type; 8751: }; 8751: 8751: template 8751: struct __ratio_add 8751: { 8751: typedef typename __ratio_add_impl<_R1, _R2>::type type; 8751: static constexpr intmax_t num = type::num; 8751: static constexpr intmax_t den = type::den; 8751: }; 8751: 8751: template 8751: constexpr intmax_t __ratio_add<_R1, _R2>::num; 8751: 8751: template 8751: constexpr intmax_t __ratio_add<_R1, _R2>::den; 8751: 8751: 8751: template 8751: using ratio_add = typename __ratio_add<_R1, _R2>::type; 8751: 8751: template 8751: struct __ratio_subtract 8751: { 8751: typedef typename __ratio_add< 8751: _R1, 8751: ratio<-_R2::num, _R2::den>>::type type; 8751: 8751: static constexpr intmax_t num = type::num; 8751: static constexpr intmax_t den = type::den; 8751: }; 8751: 8751: template 8751: constexpr intmax_t __ratio_subtract<_R1, _R2>::num; 8751: 8751: template 8751: constexpr intmax_t __ratio_subtract<_R1, _R2>::den; 8751: 8751: 8751: template 8751: using ratio_subtract = typename __ratio_subtract<_R1, _R2>::type; 8751: 8751: 8751: typedef ratio<1, 1000000000000000000> atto; 8751: typedef ratio<1, 1000000000000000> femto; 8751: typedef ratio<1, 1000000000000> pico; 8751: typedef ratio<1, 1000000000> nano; 8751: typedef ratio<1, 1000000> micro; 8751: typedef ratio<1, 1000> milli; 8751: typedef ratio<1, 100> centi; 8751: typedef ratio<1, 10> deci; 8751: typedef ratio< 10, 1> deca; 8751: typedef ratio< 100, 1> hecto; 8751: typedef ratio< 1000, 1> kilo; 8751: typedef ratio< 1000000, 1> mega; 8751: typedef ratio< 1000000000, 1> giga; 8751: typedef ratio< 1000000000000, 1> tera; 8751: typedef ratio< 1000000000000000, 1> peta; 8751: typedef ratio< 1000000000000000000, 1> exa; 8751: 8751: 8751: 8751: } 8751: # 39 "/usr/include/c++/8/chrono" 2 3 8751: 8751: 8751: # 1 "/usr/include/c++/8/ctime" 1 3 8751: # 39 "/usr/include/c++/8/ctime" 3 8751: 8751: # 40 "/usr/include/c++/8/ctime" 3 8751: # 58 "/usr/include/c++/8/ctime" 3 8751: namespace std 8751: { 8751: using ::clock_t; 8751: using ::time_t; 8751: using ::tm; 8751: 8751: using ::clock; 8751: using ::difftime; 8751: using ::mktime; 8751: using ::time; 8751: using ::asctime; 8751: using ::ctime; 8751: using ::gmtime; 8751: using ::localtime; 8751: using ::strftime; 8751: } 8751: # 42 "/usr/include/c++/8/chrono" 2 3 8751: # 1 "/usr/include/c++/8/bits/parse_numbers.h" 1 3 8751: # 33 "/usr/include/c++/8/bits/parse_numbers.h" 3 8751: 8751: # 34 "/usr/include/c++/8/bits/parse_numbers.h" 3 8751: # 43 "/usr/include/c++/8/chrono" 2 3 8751: 8751: 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: # 61 "/usr/include/c++/8/chrono" 3 8751: namespace chrono 8751: { 8751: template> 8751: struct duration; 8751: 8751: template 8751: struct time_point; 8751: } 8751: 8751: 8751: 8751: template 8751: struct __duration_common_type_wrapper 8751: { 8751: private: 8751: typedef __static_gcd<_Period1::num, _Period2::num> __gcd_num; 8751: typedef __static_gcd<_Period1::den, _Period2::den> __gcd_den; 8751: typedef typename _CT::type __cr; 8751: typedef ratio<__gcd_num::value, 8751: (_Period1::den / __gcd_den::value) * _Period2::den> __r; 8751: public: 8751: typedef __success_type> type; 8751: }; 8751: 8751: template 8751: struct __duration_common_type_wrapper<__failure_type, _Period1, _Period2> 8751: { typedef __failure_type type; }; 8751: 8751: template 8751: struct common_type, 8751: chrono::duration<_Rep2, _Period2>> 8751: : public __duration_common_type_wrapper>::type, _Period1, _Period2>::type 8751: { }; 8751: 8751: 8751: 8751: template 8751: struct __timepoint_common_type_wrapper 8751: { 8751: typedef __success_type> 8751: type; 8751: }; 8751: 8751: template 8751: struct __timepoint_common_type_wrapper<__failure_type, _Clock> 8751: { typedef __failure_type type; }; 8751: 8751: template 8751: struct common_type, 8751: chrono::time_point<_Clock, _Duration2>> 8751: : public __timepoint_common_type_wrapper>::type, _Clock>::type 8751: { }; 8751: 8751: namespace chrono 8751: { 8751: 8751: template 8751: struct __duration_cast_impl 8751: { 8751: template 8751: static constexpr _ToDur 8751: __cast(const duration<_Rep, _Period>& __d) 8751: { 8751: typedef typename _ToDur::rep __to_rep; 8751: return _ToDur(static_cast<__to_rep>(static_cast<_CR>(__d.count()) 8751: * static_cast<_CR>(_CF::num) 8751: / static_cast<_CR>(_CF::den))); 8751: } 8751: }; 8751: 8751: template 8751: struct __duration_cast_impl<_ToDur, _CF, _CR, true, true> 8751: { 8751: template 8751: static constexpr _ToDur 8751: __cast(const duration<_Rep, _Period>& __d) 8751: { 8751: typedef typename _ToDur::rep __to_rep; 8751: return _ToDur(static_cast<__to_rep>(__d.count())); 8751: } 8751: }; 8751: 8751: template 8751: struct __duration_cast_impl<_ToDur, _CF, _CR, true, false> 8751: { 8751: template 8751: static constexpr _ToDur 8751: __cast(const duration<_Rep, _Period>& __d) 8751: { 8751: typedef typename _ToDur::rep __to_rep; 8751: return _ToDur(static_cast<__to_rep>( 8751: static_cast<_CR>(__d.count()) / static_cast<_CR>(_CF::den))); 8751: } 8751: }; 8751: 8751: template 8751: struct __duration_cast_impl<_ToDur, _CF, _CR, false, true> 8751: { 8751: template 8751: static constexpr _ToDur 8751: __cast(const duration<_Rep, _Period>& __d) 8751: { 8751: typedef typename _ToDur::rep __to_rep; 8751: return _ToDur(static_cast<__to_rep>( 8751: static_cast<_CR>(__d.count()) * static_cast<_CR>(_CF::num))); 8751: } 8751: }; 8751: 8751: template 8751: struct __is_duration 8751: : std::false_type 8751: { }; 8751: 8751: template 8751: struct __is_duration> 8751: : std::true_type 8751: { }; 8751: 8751: template 8751: using __enable_if_is_duration 8751: = typename enable_if<__is_duration<_Tp>::value, _Tp>::type; 8751: 8751: template 8751: using __disable_if_is_duration 8751: = typename enable_if::value, _Tp>::type; 8751: 8751: 8751: template 8751: constexpr __enable_if_is_duration<_ToDur> 8751: duration_cast(const duration<_Rep, _Period>& __d) 8751: { 8751: typedef typename _ToDur::period __to_period; 8751: typedef typename _ToDur::rep __to_rep; 8751: typedef ratio_divide<_Period, __to_period> __cf; 8751: typedef typename common_type<__to_rep, _Rep, intmax_t>::type 8751: __cr; 8751: typedef __duration_cast_impl<_ToDur, __cf, __cr, 8751: __cf::num == 1, __cf::den == 1> __dc; 8751: return __dc::__cast(__d); 8751: } 8751: 8751: 8751: template 8751: struct treat_as_floating_point 8751: : is_floating_point<_Rep> 8751: { }; 8751: # 274 "/usr/include/c++/8/chrono" 3 8751: template 8751: struct duration_values 8751: { 8751: static constexpr _Rep 8751: zero() 8751: { return _Rep(0); } 8751: 8751: static constexpr _Rep 8751: max() 8751: { return numeric_limits<_Rep>::max(); } 8751: 8751: static constexpr _Rep 8751: min() 8751: { return numeric_limits<_Rep>::lowest(); } 8751: }; 8751: 8751: template 8751: struct __is_ratio 8751: : std::false_type 8751: { }; 8751: 8751: template 8751: struct __is_ratio> 8751: : std::true_type 8751: { }; 8751: 8751: 8751: template 8751: struct duration 8751: { 8751: private: 8751: template 8751: using __is_float = treat_as_floating_point<_Rep2>; 8751: 8751: 8751: template 8751: using __is_harmonic 8751: = __bool_constant::den == 1>; 8751: 8751: public: 8751: 8751: typedef _Rep rep; 8751: typedef _Period period; 8751: 8751: static_assert(!__is_duration<_Rep>::value, "rep cannot be a duration"); 8751: static_assert(__is_ratio<_Period>::value, 8751: "period must be a specialization of ratio"); 8751: static_assert(_Period::num > 0, "period must be positive"); 8751: 8751: 8751: constexpr duration() = default; 8751: 8751: duration(const duration&) = default; 8751: 8751: template, 8751: __or_<__is_float, __not_<__is_float<_Rep2>>>>> 8751: constexpr explicit duration(const _Rep2& __rep) 8751: : __r(static_cast(__rep)) { } 8751: 8751: template, 8751: __and_<__is_harmonic<_Period2>, 8751: __not_<__is_float<_Rep2>>>>>> 8751: constexpr duration(const duration<_Rep2, _Period2>& __d) 8751: : __r(duration_cast(__d).count()) { } 8751: 8751: ~duration() = default; 8751: duration& operator=(const duration&) = default; 8751: 8751: 8751: constexpr rep 8751: count() const 8751: { return __r; } 8751: 8751: 8751: constexpr duration 8751: operator+() const 8751: { return *this; } 8751: 8751: constexpr duration 8751: operator-() const 8751: { return duration(-__r); } 8751: 8751: duration& 8751: operator++() 8751: { 8751: ++__r; 8751: return *this; 8751: } 8751: 8751: duration 8751: operator++(int) 8751: { return duration(__r++); } 8751: 8751: duration& 8751: operator--() 8751: { 8751: --__r; 8751: return *this; 8751: } 8751: 8751: duration 8751: operator--(int) 8751: { return duration(__r--); } 8751: 8751: duration& 8751: operator+=(const duration& __d) 8751: { 8751: __r += __d.count(); 8751: return *this; 8751: } 8751: 8751: duration& 8751: operator-=(const duration& __d) 8751: { 8751: __r -= __d.count(); 8751: return *this; 8751: } 8751: 8751: duration& 8751: operator*=(const rep& __rhs) 8751: { 8751: __r *= __rhs; 8751: return *this; 8751: } 8751: 8751: duration& 8751: operator/=(const rep& __rhs) 8751: { 8751: __r /= __rhs; 8751: return *this; 8751: } 8751: 8751: 8751: template 8751: 8751: typename enable_if::value, 8751: duration&>::type 8751: operator%=(const rep& __rhs) 8751: { 8751: __r %= __rhs; 8751: return *this; 8751: } 8751: 8751: template 8751: 8751: typename enable_if::value, 8751: duration&>::type 8751: operator%=(const duration& __d) 8751: { 8751: __r %= __d.count(); 8751: return *this; 8751: } 8751: 8751: 8751: static constexpr duration 8751: zero() 8751: { return duration(duration_values::zero()); } 8751: 8751: static constexpr duration 8751: min() 8751: { return duration(duration_values::min()); } 8751: 8751: static constexpr duration 8751: max() 8751: { return duration(duration_values::max()); } 8751: 8751: private: 8751: rep __r; 8751: }; 8751: 8751: template 8751: constexpr typename common_type, 8751: duration<_Rep2, _Period2>>::type 8751: operator+(const duration<_Rep1, _Period1>& __lhs, 8751: const duration<_Rep2, _Period2>& __rhs) 8751: { 8751: typedef duration<_Rep1, _Period1> __dur1; 8751: typedef duration<_Rep2, _Period2> __dur2; 8751: typedef typename common_type<__dur1,__dur2>::type __cd; 8751: return __cd(__cd(__lhs).count() + __cd(__rhs).count()); 8751: } 8751: 8751: template 8751: constexpr typename common_type, 8751: duration<_Rep2, _Period2>>::type 8751: operator-(const duration<_Rep1, _Period1>& __lhs, 8751: const duration<_Rep2, _Period2>& __rhs) 8751: { 8751: typedef duration<_Rep1, _Period1> __dur1; 8751: typedef duration<_Rep2, _Period2> __dur2; 8751: typedef typename common_type<__dur1,__dur2>::type __cd; 8751: return __cd(__cd(__lhs).count() - __cd(__rhs).count()); 8751: } 8751: 8751: 8751: 8751: template::type> 8751: using __common_rep_t 8751: = typename enable_if::value, _CRep>::type; 8751: 8751: template 8751: constexpr duration<__common_rep_t<_Rep1, _Rep2>, _Period> 8751: operator*(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 8751: { 8751: typedef duration::type, _Period> 8751: __cd; 8751: return __cd(__cd(__d).count() * __s); 8751: } 8751: 8751: template 8751: constexpr duration<__common_rep_t<_Rep2, _Rep1>, _Period> 8751: operator*(const _Rep1& __s, const duration<_Rep2, _Period>& __d) 8751: { return __d * __s; } 8751: 8751: template 8751: constexpr 8751: duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period> 8751: operator/(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 8751: { 8751: typedef duration::type, _Period> 8751: __cd; 8751: return __cd(__cd(__d).count() / __s); 8751: } 8751: 8751: template 8751: constexpr typename common_type<_Rep1, _Rep2>::type 8751: operator/(const duration<_Rep1, _Period1>& __lhs, 8751: const duration<_Rep2, _Period2>& __rhs) 8751: { 8751: typedef duration<_Rep1, _Period1> __dur1; 8751: typedef duration<_Rep2, _Period2> __dur2; 8751: typedef typename common_type<__dur1,__dur2>::type __cd; 8751: return __cd(__lhs).count() / __cd(__rhs).count(); 8751: } 8751: 8751: 8751: template 8751: constexpr 8751: duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period> 8751: operator%(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 8751: { 8751: typedef duration::type, _Period> 8751: __cd; 8751: return __cd(__cd(__d).count() % __s); 8751: } 8751: 8751: template 8751: constexpr typename common_type, 8751: duration<_Rep2, _Period2>>::type 8751: operator%(const duration<_Rep1, _Period1>& __lhs, 8751: const duration<_Rep2, _Period2>& __rhs) 8751: { 8751: typedef duration<_Rep1, _Period1> __dur1; 8751: typedef duration<_Rep2, _Period2> __dur2; 8751: typedef typename common_type<__dur1,__dur2>::type __cd; 8751: return __cd(__cd(__lhs).count() % __cd(__rhs).count()); 8751: } 8751: 8751: 8751: template 8751: constexpr bool 8751: operator==(const duration<_Rep1, _Period1>& __lhs, 8751: const duration<_Rep2, _Period2>& __rhs) 8751: { 8751: typedef duration<_Rep1, _Period1> __dur1; 8751: typedef duration<_Rep2, _Period2> __dur2; 8751: typedef typename common_type<__dur1,__dur2>::type __ct; 8751: return __ct(__lhs).count() == __ct(__rhs).count(); 8751: } 8751: 8751: template 8751: constexpr bool 8751: operator<(const duration<_Rep1, _Period1>& __lhs, 8751: const duration<_Rep2, _Period2>& __rhs) 8751: { 8751: typedef duration<_Rep1, _Period1> __dur1; 8751: typedef duration<_Rep2, _Period2> __dur2; 8751: typedef typename common_type<__dur1,__dur2>::type __ct; 8751: return __ct(__lhs).count() < __ct(__rhs).count(); 8751: } 8751: 8751: template 8751: constexpr bool 8751: operator!=(const duration<_Rep1, _Period1>& __lhs, 8751: const duration<_Rep2, _Period2>& __rhs) 8751: { return !(__lhs == __rhs); } 8751: 8751: template 8751: constexpr bool 8751: operator<=(const duration<_Rep1, _Period1>& __lhs, 8751: const duration<_Rep2, _Period2>& __rhs) 8751: { return !(__rhs < __lhs); } 8751: 8751: template 8751: constexpr bool 8751: operator>(const duration<_Rep1, _Period1>& __lhs, 8751: const duration<_Rep2, _Period2>& __rhs) 8751: { return __rhs < __lhs; } 8751: 8751: template 8751: constexpr bool 8751: operator>=(const duration<_Rep1, _Period1>& __lhs, 8751: const duration<_Rep2, _Period2>& __rhs) 8751: { return !(__lhs < __rhs); } 8751: 8751: 8751: typedef duration nanoseconds; 8751: 8751: 8751: typedef duration microseconds; 8751: 8751: 8751: typedef duration milliseconds; 8751: 8751: 8751: typedef duration seconds; 8751: 8751: 8751: typedef duration> minutes; 8751: 8751: 8751: typedef duration> hours; 8751: 8751: 8751: template 8751: struct time_point 8751: { 8751: typedef _Clock clock; 8751: typedef _Dur duration; 8751: typedef typename duration::rep rep; 8751: typedef typename duration::period period; 8751: 8751: constexpr time_point() : __d(duration::zero()) 8751: { } 8751: 8751: constexpr explicit time_point(const duration& __dur) 8751: : __d(__dur) 8751: { } 8751: 8751: 8751: template>> 8751: constexpr time_point(const time_point& __t) 8751: : __d(__t.time_since_epoch()) 8751: { } 8751: 8751: 8751: constexpr duration 8751: time_since_epoch() const 8751: { return __d; } 8751: 8751: 8751: time_point& 8751: operator+=(const duration& __dur) 8751: { 8751: __d += __dur; 8751: return *this; 8751: } 8751: 8751: time_point& 8751: operator-=(const duration& __dur) 8751: { 8751: __d -= __dur; 8751: return *this; 8751: } 8751: 8751: 8751: static constexpr time_point 8751: min() 8751: { return time_point(duration::min()); } 8751: 8751: static constexpr time_point 8751: max() 8751: { return time_point(duration::max()); } 8751: 8751: private: 8751: duration __d; 8751: }; 8751: 8751: 8751: template 8751: constexpr typename enable_if<__is_duration<_ToDur>::value, 8751: time_point<_Clock, _ToDur>>::type 8751: time_point_cast(const time_point<_Clock, _Dur>& __t) 8751: { 8751: typedef time_point<_Clock, _ToDur> __time_point; 8751: return __time_point(duration_cast<_ToDur>(__t.time_since_epoch())); 8751: } 8751: # 707 "/usr/include/c++/8/chrono" 3 8751: template 8751: constexpr time_point<_Clock, 8751: typename common_type<_Dur1, duration<_Rep2, _Period2>>::type> 8751: operator+(const time_point<_Clock, _Dur1>& __lhs, 8751: const duration<_Rep2, _Period2>& __rhs) 8751: { 8751: typedef duration<_Rep2, _Period2> __dur2; 8751: typedef typename common_type<_Dur1,__dur2>::type __ct; 8751: typedef time_point<_Clock, __ct> __time_point; 8751: return __time_point(__lhs.time_since_epoch() + __rhs); 8751: } 8751: 8751: template 8751: constexpr time_point<_Clock, 8751: typename common_type, _Dur2>::type> 8751: operator+(const duration<_Rep1, _Period1>& __lhs, 8751: const time_point<_Clock, _Dur2>& __rhs) 8751: { 8751: typedef duration<_Rep1, _Period1> __dur1; 8751: typedef typename common_type<__dur1,_Dur2>::type __ct; 8751: typedef time_point<_Clock, __ct> __time_point; 8751: return __time_point(__rhs.time_since_epoch() + __lhs); 8751: } 8751: 8751: template 8751: constexpr time_point<_Clock, 8751: typename common_type<_Dur1, duration<_Rep2, _Period2>>::type> 8751: operator-(const time_point<_Clock, _Dur1>& __lhs, 8751: const duration<_Rep2, _Period2>& __rhs) 8751: { 8751: typedef duration<_Rep2, _Period2> __dur2; 8751: typedef typename common_type<_Dur1,__dur2>::type __ct; 8751: typedef time_point<_Clock, __ct> __time_point; 8751: return __time_point(__lhs.time_since_epoch() -__rhs); 8751: } 8751: 8751: template 8751: constexpr typename common_type<_Dur1, _Dur2>::type 8751: operator-(const time_point<_Clock, _Dur1>& __lhs, 8751: const time_point<_Clock, _Dur2>& __rhs) 8751: { return __lhs.time_since_epoch() - __rhs.time_since_epoch(); } 8751: 8751: template 8751: constexpr bool 8751: operator==(const time_point<_Clock, _Dur1>& __lhs, 8751: const time_point<_Clock, _Dur2>& __rhs) 8751: { return __lhs.time_since_epoch() == __rhs.time_since_epoch(); } 8751: 8751: template 8751: constexpr bool 8751: operator!=(const time_point<_Clock, _Dur1>& __lhs, 8751: const time_point<_Clock, _Dur2>& __rhs) 8751: { return !(__lhs == __rhs); } 8751: 8751: template 8751: constexpr bool 8751: operator<(const time_point<_Clock, _Dur1>& __lhs, 8751: const time_point<_Clock, _Dur2>& __rhs) 8751: { return __lhs.time_since_epoch() < __rhs.time_since_epoch(); } 8751: 8751: template 8751: constexpr bool 8751: operator<=(const time_point<_Clock, _Dur1>& __lhs, 8751: const time_point<_Clock, _Dur2>& __rhs) 8751: { return !(__rhs < __lhs); } 8751: 8751: template 8751: constexpr bool 8751: operator>(const time_point<_Clock, _Dur1>& __lhs, 8751: const time_point<_Clock, _Dur2>& __rhs) 8751: { return __rhs < __lhs; } 8751: 8751: template 8751: constexpr bool 8751: operator>=(const time_point<_Clock, _Dur1>& __lhs, 8751: const time_point<_Clock, _Dur2>& __rhs) 8751: { return !(__lhs < __rhs); } 8751: # 807 "/usr/include/c++/8/chrono" 3 8751: inline namespace _V2 { 8751: 8751: 8751: 8751: 8751: 8751: 8751: struct system_clock 8751: { 8751: typedef chrono::nanoseconds duration; 8751: typedef duration::rep rep; 8751: typedef duration::period period; 8751: typedef chrono::time_point time_point; 8751: 8751: static_assert(system_clock::duration::min() 8751: < system_clock::duration::zero(), 8751: "a clock's minimum duration cannot be less than its epoch"); 8751: 8751: static constexpr bool is_steady = false; 8751: 8751: static time_point 8751: now() noexcept; 8751: 8751: 8751: static std::time_t 8751: to_time_t(const time_point& __t) noexcept 8751: { 8751: return std::time_t(duration_cast 8751: (__t.time_since_epoch()).count()); 8751: } 8751: 8751: static time_point 8751: from_time_t(std::time_t __t) noexcept 8751: { 8751: typedef chrono::time_point __from; 8751: return time_point_cast 8751: (__from(chrono::seconds(__t))); 8751: } 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: struct steady_clock 8751: { 8751: typedef chrono::nanoseconds duration; 8751: typedef duration::rep rep; 8751: typedef duration::period period; 8751: typedef chrono::time_point time_point; 8751: 8751: static constexpr bool is_steady = true; 8751: 8751: static time_point 8751: now() noexcept; 8751: }; 8751: # 874 "/usr/include/c++/8/chrono" 3 8751: using high_resolution_clock = system_clock; 8751: 8751: } 8751: } 8751: # 976 "/usr/include/c++/8/chrono" 3 8751: 8751: } 8751: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: class QEvent; 8751: class QTimerEvent; 8751: class QChildEvent; 8751: struct QMetaObject; 8751: class QVariant; 8751: class QObjectPrivate; 8751: class QObject; 8751: class QThread; 8751: class QWidget; 8751: 8751: class QRegExp; 8751: 8751: 8751: class QRegularExpression; 8751: 8751: 8751: class QObjectUserData; 8751: 8751: struct QDynamicMetaObjectData; 8751: 8751: typedef QList QObjectList; 8751: 8751: __attribute__((visibility("default"))) void qt_qFindChildren_helper(const QObject *parent, const QString &name, 8751: const QMetaObject &mo, QList *list, Qt::FindChildOptions options); 8751: __attribute__((visibility("default"))) void qt_qFindChildren_helper(const QObject *parent, const QRegExp &re, 8751: const QMetaObject &mo, QList *list, Qt::FindChildOptions options); 8751: __attribute__((visibility("default"))) void qt_qFindChildren_helper(const QObject *parent, const QRegularExpression &re, 8751: const QMetaObject &mo, QList *list, Qt::FindChildOptions options); 8751: __attribute__((visibility("default"))) QObject *qt_qFindChild_helper(const QObject *parent, const QString &name, const QMetaObject &mo, Qt::FindChildOptions options); 8751: 8751: class __attribute__((visibility("default"))) QObjectData { 8751: public: 8751: virtual ~QObjectData() = 0; 8751: QObject *q_ptr; 8751: QObject *parent; 8751: QObjectList children; 8751: 8751: uint isWidget : 1; 8751: uint blockSig : 1; 8751: uint wasDeleted : 1; 8751: uint isDeletingChildren : 1; 8751: uint sendChildEvents : 1; 8751: uint receiveChildEvents : 1; 8751: uint isWindow : 1; 8751: uint unused : 25; 8751: int postedEvents; 8751: QDynamicMetaObjectData *metaObject; 8751: QMetaObject *dynamicMetaObject() const; 8751: }; 8751: 8751: 8751: class __attribute__((visibility("default"))) QObject 8751: { 8751: public: 8751: # 118 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8751: #pragma GCC diagnostic push 8751: # 118 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8751: 8751: # 118 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8751: #pragma GCC diagnostic ignored "-Wsuggest-override" 8751: # 118 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8751: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8751: # 118 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8751: #pragma GCC diagnostic ignored "-Wattributes" 8751: # 118 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8751: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8751: # 118 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8751: #pragma GCC diagnostic pop 8751: # 118 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8751: struct QPrivateSignal {}; 8751: 8751: inline QObjectPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QObjectPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QObjectPrivate; 8751: 8751: public: 8751: explicit QObject(QObject *parent=nullptr); 8751: virtual ~QObject(); 8751: 8751: virtual bool event(QEvent *event); 8751: virtual bool eventFilter(QObject *watched, QEvent *event); 8751: # 144 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8751: QString objectName() const; 8751: void setObjectName(const QString &name); 8751: 8751: inline bool isWidgetType() const { return d_ptr->isWidget; } 8751: inline bool isWindowType() const { return d_ptr->isWindow; } 8751: 8751: inline bool signalsBlocked() const noexcept { return d_ptr->blockSig; } 8751: bool blockSignals(bool b) noexcept; 8751: 8751: QThread *thread() const; 8751: void moveToThread(QThread *thread); 8751: 8751: int startTimer(int interval, Qt::TimerType timerType = Qt::CoarseTimer); 8751: 8751: inline __attribute__((always_inline)) 8751: int startTimer(std::chrono::milliseconds time, Qt::TimerType timerType = Qt::CoarseTimer) 8751: { 8751: return startTimer(int(time.count()), timerType); 8751: } 8751: 8751: void killTimer(int id); 8751: 8751: template 8751: inline T findChild(const QString &aName = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8751: { 8751: typedef typename std::remove_cv::type>::type ObjType; 8751: return static_cast(qt_qFindChild_helper(this, aName, ObjType::staticMetaObject, options)); 8751: } 8751: 8751: template 8751: inline QList findChildren(const QString &aName = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8751: { 8751: typedef typename std::remove_cv::type>::type ObjType; 8751: QList list; 8751: qt_qFindChildren_helper(this, aName, ObjType::staticMetaObject, 8751: reinterpret_cast *>(&list), options); 8751: return list; 8751: } 8751: 8751: 8751: template 8751: inline QList findChildren(const QRegExp &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8751: { 8751: typedef typename std::remove_cv::type>::type ObjType; 8751: QList list; 8751: qt_qFindChildren_helper(this, re, ObjType::staticMetaObject, 8751: reinterpret_cast *>(&list), options); 8751: return list; 8751: } 8751: 8751: 8751: 8751: template 8751: inline QList findChildren(const QRegularExpression &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8751: { 8751: typedef typename std::remove_cv::type>::type ObjType; 8751: QList list; 8751: qt_qFindChildren_helper(this, re, ObjType::staticMetaObject, 8751: reinterpret_cast *>(&list), options); 8751: return list; 8751: } 8751: 8751: 8751: inline const QObjectList &children() const { return d_ptr->children; } 8751: 8751: void setParent(QObject *parent); 8751: void installEventFilter(QObject *filterObj); 8751: void removeEventFilter(QObject *obj); 8751: 8751: static QMetaObject::Connection connect(const QObject *sender, const char *signal, 8751: const QObject *receiver, const char *member, Qt::ConnectionType = Qt::AutoConnection); 8751: 8751: static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal, 8751: const QObject *receiver, const QMetaMethod &method, 8751: Qt::ConnectionType type = Qt::AutoConnection); 8751: 8751: inline QMetaObject::Connection connect(const QObject *sender, const char *signal, 8751: const char *member, Qt::ConnectionType type = Qt::AutoConnection) const; 8751: # 232 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8751: template 8751: static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, 8751: const typename QtPrivate::FunctionPointer::Object *receiver, Func2 slot, 8751: Qt::ConnectionType type = Qt::AutoConnection) 8751: { 8751: typedef QtPrivate::FunctionPointer SignalType; 8751: typedef QtPrivate::FunctionPointer SlotType; 8751: 8751: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8751: ; 8751: 8751: 8751: static_assert(bool(int(SignalType::ArgumentCount) >= int(SlotType::ArgumentCount)), "The slot requires more arguments than the signal provides.") 8751: ; 8751: static_assert(bool((QtPrivate::CheckCompatibleArguments::value)), "Signal and slot arguments are not compatible.") 8751: ; 8751: static_assert(bool((QtPrivate::AreArgumentsCompatible::value)), "Return type of the slot is not compatible with the return type of the signal.") 8751: ; 8751: 8751: const int *types = nullptr; 8751: if (type == Qt::QueuedConnection || type == Qt::BlockingQueuedConnection) 8751: types = QtPrivate::ConnectionTypes::types(); 8751: 8751: return connectImpl(sender, reinterpret_cast(&signal), 8751: receiver, reinterpret_cast(&slot), 8751: new QtPrivate::QSlotObject::Value, 8751: typename SignalType::ReturnType>(slot), 8751: type, types, &SignalType::Object::staticMetaObject); 8751: } 8751: 8751: 8751: template 8751: static inline typename std::enable_if::ArgumentCount) >= 0, QMetaObject::Connection>::type 8751: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, Func2 slot) 8751: { 8751: return connect(sender, signal, sender, slot, Qt::DirectConnection); 8751: } 8751: 8751: 8751: template 8751: static inline typename std::enable_if::ArgumentCount) >= 0 && 8751: !QtPrivate::FunctionPointer::IsPointerToMemberFunction, QMetaObject::Connection>::type 8751: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, const QObject *context, Func2 slot, 8751: Qt::ConnectionType type = Qt::AutoConnection) 8751: { 8751: typedef QtPrivate::FunctionPointer SignalType; 8751: typedef QtPrivate::FunctionPointer SlotType; 8751: 8751: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8751: ; 8751: 8751: 8751: static_assert(bool(int(SignalType::ArgumentCount) >= int(SlotType::ArgumentCount)), "The slot requires more arguments than the signal provides.") 8751: ; 8751: static_assert(bool((QtPrivate::CheckCompatibleArguments::value)), "Signal and slot arguments are not compatible.") 8751: ; 8751: static_assert(bool((QtPrivate::AreArgumentsCompatible::value)), "Return type of the slot is not compatible with the return type of the signal.") 8751: ; 8751: 8751: const int *types = nullptr; 8751: if (type == Qt::QueuedConnection || type == Qt::BlockingQueuedConnection) 8751: types = QtPrivate::ConnectionTypes::types(); 8751: 8751: return connectImpl(sender, reinterpret_cast(&signal), context, nullptr, 8751: new QtPrivate::QStaticSlotObject::Value, 8751: typename SignalType::ReturnType>(slot), 8751: type, types, &SignalType::Object::staticMetaObject); 8751: } 8751: 8751: 8751: template 8751: static inline typename std::enable_if::ArgumentCount == -1, QMetaObject::Connection>::type 8751: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, Func2 slot) 8751: { 8751: return connect(sender, signal, sender, slot, Qt::DirectConnection); 8751: } 8751: 8751: 8751: template 8751: static inline typename std::enable_if::ArgumentCount == -1, QMetaObject::Connection>::type 8751: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, const QObject *context, Func2 slot, 8751: Qt::ConnectionType type = Qt::AutoConnection) 8751: { 8751: typedef QtPrivate::FunctionPointer SignalType; 8751: const int FunctorArgumentCount = QtPrivate::ComputeFunctorArgumentCount::Value; 8751: 8751: static_assert(bool((FunctorArgumentCount >= 0)), "Signal and slot arguments are not compatible.") 8751: ; 8751: const int SlotArgumentCount = (FunctorArgumentCount >= 0) ? FunctorArgumentCount : 0; 8751: typedef typename QtPrivate::FunctorReturnType::Value>::Value SlotReturnType; 8751: 8751: static_assert(bool((QtPrivate::AreArgumentsCompatible::value)), "Return type of the slot is not compatible with the return type of the signal.") 8751: ; 8751: 8751: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8751: ; 8751: 8751: const int *types = nullptr; 8751: if (type == Qt::QueuedConnection || type == Qt::BlockingQueuedConnection) 8751: types = QtPrivate::ConnectionTypes::types(); 8751: 8751: return connectImpl(sender, reinterpret_cast(&signal), context, nullptr, 8751: new QtPrivate::QFunctorSlotObject::Value, 8751: typename SignalType::ReturnType>(slot), 8751: type, types, &SignalType::Object::staticMetaObject); 8751: } 8751: 8751: 8751: static bool disconnect(const QObject *sender, const char *signal, 8751: const QObject *receiver, const char *member); 8751: static bool disconnect(const QObject *sender, const QMetaMethod &signal, 8751: const QObject *receiver, const QMetaMethod &member); 8751: inline bool disconnect(const char *signal = nullptr, 8751: const QObject *receiver = nullptr, const char *member = nullptr) const 8751: { return disconnect(this, signal, receiver, member); } 8751: inline bool disconnect(const QObject *receiver, const char *member = nullptr) const 8751: { return disconnect(this, nullptr, receiver, member); } 8751: static bool disconnect(const QMetaObject::Connection &); 8751: 8751: 8751: 8751: 8751: 8751: template 8751: static inline bool disconnect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, 8751: const typename QtPrivate::FunctionPointer::Object *receiver, Func2 slot) 8751: { 8751: typedef QtPrivate::FunctionPointer SignalType; 8751: typedef QtPrivate::FunctionPointer SlotType; 8751: 8751: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8751: ; 8751: 8751: 8751: static_assert(bool((QtPrivate::CheckCompatibleArguments::value)), "Signal and slot arguments are not compatible.") 8751: ; 8751: 8751: return disconnectImpl(sender, reinterpret_cast(&signal), receiver, reinterpret_cast(&slot), 8751: &SignalType::Object::staticMetaObject); 8751: } 8751: template 8751: static inline bool disconnect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, 8751: const QObject *receiver, void **zero) 8751: { 8751: 8751: 8751: 8751: do { } while ((false) && (!zero)); 8751: typedef QtPrivate::FunctionPointer SignalType; 8751: return disconnectImpl(sender, reinterpret_cast(&signal), receiver, zero, 8751: &SignalType::Object::staticMetaObject); 8751: } 8751: 8751: 8751: 8751: 8751: void dumpObjectTree(); 8751: void dumpObjectInfo(); 8751: 8751: void dumpObjectTree() const; 8751: void dumpObjectInfo() const; 8751: 8751: 8751: bool setProperty(const char *name, const QVariant &value); 8751: QVariant property(const char *name) const; 8751: QList dynamicPropertyNames() const; 8751: 8751: 8751: 8751: static uint registerUserData(); 8751: void setUserData(uint id, QObjectUserData* data); 8751: QObjectUserData* userData(uint id) const; 8751: 8751: 8751: public : 8751: void destroyed(QObject * = nullptr); 8751: void objectNameChanged(const QString &objectName, QPrivateSignal); 8751: 8751: public: 8751: inline QObject *parent() const { return d_ptr->parent; } 8751: 8751: inline bool inherits(const char *classname) const 8751: { return const_cast(this)->qt_metacast(classname) != nullptr; } 8751: 8751: public : 8751: void deleteLater(); 8751: 8751: protected: 8751: QObject *sender() const; 8751: int senderSignalIndex() const; 8751: int receivers(const char* signal) const; 8751: bool isSignalConnected(const QMetaMethod &signal) const; 8751: 8751: virtual void timerEvent(QTimerEvent *event); 8751: virtual void childEvent(QChildEvent *event); 8751: virtual void customEvent(QEvent *event); 8751: 8751: virtual void connectNotify(const QMetaMethod &signal); 8751: virtual void disconnectNotify(const QMetaMethod &signal); 8751: 8751: protected: 8751: QObject(QObjectPrivate &dd, QObject *parent = nullptr); 8751: 8751: protected: 8751: QScopedPointer d_ptr; 8751: 8751: static const QMetaObject staticQtMetaObject; 8751: friend inline const QMetaObject *qt_getQtMetaObject() noexcept; 8751: 8751: friend struct QMetaObject; 8751: friend struct QMetaObjectPrivate; 8751: friend class QMetaCallEvent; 8751: friend class QApplication; 8751: friend class QApplicationPrivate; 8751: friend class QCoreApplication; 8751: friend class QCoreApplicationPrivate; 8751: friend class QWidget; 8751: friend class QThreadData; 8751: 8751: private: 8751: QObject(const QObject &) = delete; QObject &operator=(const QObject &) = delete; 8751: 8751: 8751: private: 8751: static QMetaObject::Connection connectImpl(const QObject *sender, void **signal, 8751: const QObject *receiver, void **slotPtr, 8751: QtPrivate::QSlotObjectBase *slot, Qt::ConnectionType type, 8751: const int *types, const QMetaObject *senderMetaObject); 8751: 8751: static bool disconnectImpl(const QObject *sender, void **signal, const QObject *receiver, void **slot, 8751: const QMetaObject *senderMetaObject); 8751: 8751: }; 8751: 8751: inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal, 8751: const char *amember, Qt::ConnectionType atype) const 8751: { return connect(asender, asignal, this, amember, atype); } 8751: 8751: inline const QMetaObject *qt_getQtMetaObject() noexcept 8751: { return &QObject::staticQtMetaObject; } 8751: 8751: 8751: class __attribute__((visibility("default"))) QObjectUserData { 8751: public: 8751: virtual ~QObjectUserData(); 8751: }; 8751: # 508 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8751: template 8751: inline T qobject_cast(QObject *object) 8751: { 8751: typedef typename std::remove_cv::type>::type ObjType; 8751: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "qobject_cast requires the type to have a Q_OBJECT macro") 8751: ; 8751: return static_cast(ObjType::staticMetaObject.cast(object)); 8751: } 8751: 8751: template 8751: inline T qobject_cast(const QObject *object) 8751: { 8751: typedef typename std::remove_cv::type>::type ObjType; 8751: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "qobject_cast requires the type to have a Q_OBJECT macro") 8751: ; 8751: return static_cast(ObjType::staticMetaObject.cast(object)); 8751: } 8751: 8751: 8751: template inline const char * qobject_interface_iid() 8751: { return nullptr; } 8751: # 541 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 3 4 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QObject *); 8751: 8751: 8751: class QSignalBlocker 8751: { 8751: public: 8751: inline explicit QSignalBlocker(QObject *o) noexcept; 8751: inline explicit QSignalBlocker(QObject &o) noexcept; 8751: inline ~QSignalBlocker(); 8751: 8751: 8751: inline QSignalBlocker(QSignalBlocker &&other) noexcept; 8751: inline QSignalBlocker &operator=(QSignalBlocker &&other) noexcept; 8751: 8751: 8751: inline void reblock() noexcept; 8751: inline void unblock() noexcept; 8751: private: 8751: QSignalBlocker(const QSignalBlocker &) = delete; QSignalBlocker &operator=(const QSignalBlocker &) = delete; 8751: QObject * m_o; 8751: bool m_blocked; 8751: bool m_inhibited; 8751: }; 8751: 8751: QSignalBlocker::QSignalBlocker(QObject *o) noexcept 8751: : m_o(o), 8751: m_blocked(o && o->blockSignals(true)), 8751: m_inhibited(false) 8751: {} 8751: 8751: QSignalBlocker::QSignalBlocker(QObject &o) noexcept 8751: : m_o(&o), 8751: m_blocked(o.blockSignals(true)), 8751: m_inhibited(false) 8751: {} 8751: 8751: 8751: QSignalBlocker::QSignalBlocker(QSignalBlocker &&other) noexcept 8751: : m_o(other.m_o), 8751: m_blocked(other.m_blocked), 8751: m_inhibited(other.m_inhibited) 8751: { 8751: other.m_o = nullptr; 8751: } 8751: 8751: QSignalBlocker &QSignalBlocker::operator=(QSignalBlocker &&other) noexcept 8751: { 8751: if (this != &other) { 8751: 8751: 8751: if (m_o != other.m_o || (!m_inhibited && other.m_inhibited)) 8751: unblock(); 8751: m_o = other.m_o; 8751: m_blocked = other.m_blocked; 8751: m_inhibited = other.m_inhibited; 8751: 8751: other.m_o = nullptr; 8751: } 8751: return *this; 8751: } 8751: 8751: 8751: QSignalBlocker::~QSignalBlocker() 8751: { 8751: if (m_o && !m_inhibited) 8751: m_o->blockSignals(m_blocked); 8751: } 8751: 8751: void QSignalBlocker::reblock() noexcept 8751: { 8751: if (m_o) m_o->blockSignals(true); 8751: m_inhibited = false; 8751: } 8751: 8751: void QSignalBlocker::unblock() noexcept 8751: { 8751: if (m_o) m_o->blockSignals(m_blocked); 8751: m_inhibited = true; 8751: } 8751: 8751: namespace QtPrivate { 8751: inline QObject & deref_for_methodcall(QObject &o) { return o; } 8751: inline QObject & deref_for_methodcall(QObject *o) { return *o; } 8751: } 8751: 8751: 8751: 8751: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 2 3 4 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qbytearraylist.h" 1 3 4 8751: # 54 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: class QBitArray; 8751: class QDataStream; 8751: class QDate; 8751: class QDateTime; 8751: class QEasingCurve; 8751: class QLine; 8751: class QLineF; 8751: class QLocale; 8751: class QMatrix; 8751: class QTransform; 8751: class QStringList; 8751: class QTime; 8751: class QPoint; 8751: class QPointF; 8751: class QSize; 8751: class QSizeF; 8751: class QRect; 8751: class QRectF; 8751: 8751: class QRegExp; 8751: 8751: 8751: class QRegularExpression; 8751: 8751: class QTextFormat; 8751: class QTextLength; 8751: class QUrl; 8751: class QVariant; 8751: class QVariantComparisonHelper; 8751: 8751: template 8751: inline QVariant qVariantFromValue(const T &); 8751: 8751: template 8751: inline T qvariant_cast(const QVariant &); 8751: 8751: namespace QtPrivate { 8751: 8751: template 8751: struct ObjectInvoker 8751: { 8751: static ReturnType invoke(Argument a) 8751: { 8751: return Derived::object(a); 8751: } 8751: }; 8751: 8751: template 8751: struct MetaTypeInvoker 8751: { 8751: static ReturnType invoke(Argument a) 8751: { 8751: return Derived::metaType(a); 8751: } 8751: }; 8751: 8751: template ::Value> 8751: struct TreatAsQObjectBeforeMetaType : ObjectInvoker 8751: { 8751: }; 8751: 8751: template 8751: struct TreatAsQObjectBeforeMetaType : MetaTypeInvoker 8751: { 8751: }; 8751: 8751: template struct QVariantValueHelper; 8751: } 8751: 8751: class __attribute__((visibility("default"))) QVariant 8751: { 8751: public: 8751: enum Type { 8751: Invalid = QMetaType::UnknownType, 8751: Bool = QMetaType::Bool, 8751: Int = QMetaType::Int, 8751: UInt = QMetaType::UInt, 8751: LongLong = QMetaType::LongLong, 8751: ULongLong = QMetaType::ULongLong, 8751: Double = QMetaType::Double, 8751: Char = QMetaType::QChar, 8751: Map = QMetaType::QVariantMap, 8751: List = QMetaType::QVariantList, 8751: String = QMetaType::QString, 8751: StringList = QMetaType::QStringList, 8751: ByteArray = QMetaType::QByteArray, 8751: BitArray = QMetaType::QBitArray, 8751: Date = QMetaType::QDate, 8751: Time = QMetaType::QTime, 8751: DateTime = QMetaType::QDateTime, 8751: Url = QMetaType::QUrl, 8751: Locale = QMetaType::QLocale, 8751: Rect = QMetaType::QRect, 8751: RectF = QMetaType::QRectF, 8751: Size = QMetaType::QSize, 8751: SizeF = QMetaType::QSizeF, 8751: Line = QMetaType::QLine, 8751: LineF = QMetaType::QLineF, 8751: Point = QMetaType::QPoint, 8751: PointF = QMetaType::QPointF, 8751: RegExp = QMetaType::QRegExp, 8751: RegularExpression = QMetaType::QRegularExpression, 8751: Hash = QMetaType::QVariantHash, 8751: EasingCurve = QMetaType::QEasingCurve, 8751: Uuid = QMetaType::QUuid, 8751: ModelIndex = QMetaType::QModelIndex, 8751: PersistentModelIndex = QMetaType::QPersistentModelIndex, 8751: LastCoreType = QMetaType::LastCoreType, 8751: 8751: Font = QMetaType::QFont, 8751: Pixmap = QMetaType::QPixmap, 8751: Brush = QMetaType::QBrush, 8751: Color = QMetaType::QColor, 8751: Palette = QMetaType::QPalette, 8751: Image = QMetaType::QImage, 8751: Polygon = QMetaType::QPolygon, 8751: Region = QMetaType::QRegion, 8751: Bitmap = QMetaType::QBitmap, 8751: Cursor = QMetaType::QCursor, 8751: KeySequence = QMetaType::QKeySequence, 8751: Pen = QMetaType::QPen, 8751: TextLength = QMetaType::QTextLength, 8751: TextFormat = QMetaType::QTextFormat, 8751: Matrix = QMetaType::QMatrix, 8751: Transform = QMetaType::QTransform, 8751: Matrix4x4 = QMetaType::QMatrix4x4, 8751: Vector2D = QMetaType::QVector2D, 8751: Vector3D = QMetaType::QVector3D, 8751: Vector4D = QMetaType::QVector4D, 8751: Quaternion = QMetaType::QQuaternion, 8751: PolygonF = QMetaType::QPolygonF, 8751: Icon = QMetaType::QIcon, 8751: LastGuiType = QMetaType::LastGuiType, 8751: 8751: SizePolicy = QMetaType::QSizePolicy, 8751: 8751: UserType = QMetaType::User, 8751: LastType = 0xffffffff 8751: }; 8751: 8751: QVariant() noexcept : d() {} 8751: ~QVariant(); 8751: QVariant(Type type); 8751: QVariant(int typeId, const void *copy); 8751: QVariant(int typeId, const void *copy, uint flags); 8751: QVariant(const QVariant &other); 8751: 8751: 8751: QVariant(QDataStream &s); 8751: 8751: 8751: QVariant(int i); 8751: QVariant(uint ui); 8751: QVariant(qlonglong ll); 8751: QVariant(qulonglong ull); 8751: QVariant(bool b); 8751: QVariant(double d); 8751: QVariant(float f); 8751: 8751: 8751: 8751: 8751: QVariant(const QByteArray &bytearray); 8751: QVariant(const QBitArray &bitarray); 8751: QVariant(const QString &string); 8751: QVariant(QLatin1String string); 8751: QVariant(const QStringList &stringlist); 8751: QVariant(QChar qchar); 8751: QVariant(const QDate &date); 8751: QVariant(const QTime &time); 8751: QVariant(const QDateTime &datetime); 8751: QVariant(const QList &list); 8751: QVariant(const QMap &map); 8751: QVariant(const QHash &hash); 8751: 8751: QVariant(const QSize &size); 8751: QVariant(const QSizeF &size); 8751: QVariant(const QPoint &pt); 8751: QVariant(const QPointF &pt); 8751: QVariant(const QLine &line); 8751: QVariant(const QLineF &line); 8751: QVariant(const QRect &rect); 8751: QVariant(const QRectF &rect); 8751: 8751: QVariant(const QLocale &locale); 8751: 8751: QVariant(const QRegExp ®Exp); 8751: 8751: 8751: 8751: QVariant(const QRegularExpression &re); 8751: 8751: QVariant(const QUrl &url); 8751: QVariant(const QEasingCurve &easing); 8751: QVariant(const QUuid &uuid); 8751: QVariant(const QModelIndex &modelIndex); 8751: QVariant(const QPersistentModelIndex &modelIndex); 8751: QVariant(const QJsonValue &jsonValue); 8751: QVariant(const QJsonObject &jsonObject); 8751: QVariant(const QJsonArray &jsonArray); 8751: QVariant(const QJsonDocument &jsonDocument); 8751: 8751: 8751: QVariant& operator=(const QVariant &other); 8751: 8751: inline QVariant(QVariant &&other) noexcept : d(other.d) 8751: { other.d = Private(); } 8751: inline QVariant &operator=(QVariant &&other) noexcept 8751: { qSwap(d, other.d); return *this; } 8751: 8751: 8751: inline void swap(QVariant &other) noexcept { qSwap(d, other.d); } 8751: 8751: Type type() const; 8751: int userType() const; 8751: const char *typeName() const; 8751: 8751: bool canConvert(int targetTypeId) const; 8751: bool convert(int targetTypeId); 8751: 8751: inline bool isValid() const; 8751: bool isNull() const; 8751: 8751: void clear(); 8751: 8751: void detach(); 8751: inline bool isDetached() const; 8751: 8751: int toInt(bool *ok = nullptr) const; 8751: uint toUInt(bool *ok = nullptr) const; 8751: qlonglong toLongLong(bool *ok = nullptr) const; 8751: qulonglong toULongLong(bool *ok = nullptr) const; 8751: bool toBool() const; 8751: double toDouble(bool *ok = nullptr) const; 8751: float toFloat(bool *ok = nullptr) const; 8751: qreal toReal(bool *ok = nullptr) const; 8751: QByteArray toByteArray() const; 8751: QBitArray toBitArray() const; 8751: QString toString() const; 8751: QStringList toStringList() const; 8751: QChar toChar() const; 8751: QDate toDate() const; 8751: QTime toTime() const; 8751: QDateTime toDateTime() const; 8751: QList toList() const; 8751: QMap toMap() const; 8751: QHash toHash() const; 8751: 8751: 8751: QPoint toPoint() const; 8751: QPointF toPointF() const; 8751: QRect toRect() const; 8751: QSize toSize() const; 8751: QSizeF toSizeF() const; 8751: QLine toLine() const; 8751: QLineF toLineF() const; 8751: QRectF toRectF() const; 8751: 8751: QLocale toLocale() const; 8751: 8751: QRegExp toRegExp() const; 8751: 8751: 8751: 8751: QRegularExpression toRegularExpression() const; 8751: 8751: QUrl toUrl() const; 8751: QEasingCurve toEasingCurve() const; 8751: QUuid toUuid() const; 8751: QModelIndex toModelIndex() const; 8751: QPersistentModelIndex toPersistentModelIndex() const; 8751: QJsonValue toJsonValue() const; 8751: QJsonObject toJsonObject() const; 8751: QJsonArray toJsonArray() const; 8751: QJsonDocument toJsonDocument() const; 8751: 8751: 8751: 8751: void load(QDataStream &ds); 8751: void save(QDataStream &ds) const; 8751: 8751: static const char *typeToName(int typeId); 8751: static Type nameToType(const char *name); 8751: 8751: void *data(); 8751: const void *constData() const; 8751: inline const void *data() const { return constData(); } 8751: 8751: template 8751: inline void setValue(const T &value); 8751: 8751: template 8751: inline T value() const 8751: { return qvariant_cast(*this); } 8751: 8751: template 8751: static inline QVariant fromValue(const T &value) 8751: { return qVariantFromValue(value); } 8751: 8751: template 8751: bool canConvert() const 8751: { return canConvert(qMetaTypeId()); } 8751: 8751: public: 8751: 8751: struct PrivateShared 8751: { 8751: inline PrivateShared(void *v) : ptr(v), ref(1) { } 8751: void *ptr; 8751: QAtomicInt ref; 8751: }; 8751: struct Private 8751: { 8751: inline Private() noexcept : type(Invalid), is_shared(false), is_null(true) 8751: { data.ptr = nullptr; } 8751: 8751: 8751: explicit inline Private(uint variantType) noexcept 8751: : type(variantType), is_shared(false), is_null(false) 8751: {} 8751: 8751: inline Private(const Private &other) noexcept 8751: : data(other.data), type(other.type), 8751: is_shared(other.is_shared), is_null(other.is_null) 8751: {} 8751: union Data 8751: { 8751: char c; 8751: uchar uc; 8751: short s; 8751: signed char sc; 8751: ushort us; 8751: int i; 8751: uint u; 8751: long l; 8751: ulong ul; 8751: bool b; 8751: double d; 8751: float f; 8751: qreal real; 8751: qlonglong ll; 8751: qulonglong ull; 8751: QObject *o; 8751: void *ptr; 8751: PrivateShared *shared; 8751: } data; 8751: uint type : 30; 8751: uint is_shared : 1; 8751: uint is_null : 1; 8751: }; 8751: public: 8751: typedef void (*f_construct)(Private *, const void *); 8751: typedef void (*f_clear)(Private *); 8751: typedef bool (*f_null)(const Private *); 8751: 8751: typedef void (*f_load)(Private *, QDataStream &); 8751: typedef void (*f_save)(const Private *, QDataStream &); 8751: 8751: typedef bool (*f_compare)(const Private *, const Private *); 8751: typedef bool (*f_convert)(const QVariant::Private *d, int t, void *, bool *); 8751: typedef bool (*f_canConvert)(const QVariant::Private *d, int t); 8751: typedef void (*f_debugStream)(QDebug, const QVariant &); 8751: struct Handler { 8751: f_construct construct; 8751: f_clear clear; 8751: f_null isNull; 8751: 8751: f_load load; 8751: f_save save; 8751: 8751: f_compare compare; 8751: f_convert convert; 8751: f_canConvert canConvert; 8751: f_debugStream debugStream; 8751: }; 8751: 8751: 8751: inline bool operator==(const QVariant &v) const 8751: { return cmp(v); } 8751: inline bool operator!=(const QVariant &v) const 8751: { return !cmp(v); } 8751: inline bool operator<(const QVariant &v) const 8751: { return compare(v) < 0; } 8751: inline bool operator<=(const QVariant &v) const 8751: { return compare(v) <= 0; } 8751: inline bool operator>(const QVariant &v) const 8751: { return compare(v) > 0; } 8751: inline bool operator>=(const QVariant &v) const 8751: { return compare(v) >= 0; } 8751: 8751: protected: 8751: friend inline bool operator==(const QVariant &, const QVariantComparisonHelper &); 8751: 8751: friend __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QVariant &); 8751: 8751: 8751: 8751: template 8751: friend inline T qvariant_cast(const QVariant &); 8751: template friend struct QtPrivate::QVariantValueHelper; 8751: protected: 8751: 8751: 8751: 8751: Private d; 8751: void create(int type, const void *copy); 8751: bool cmp(const QVariant &other) const; 8751: int compare(const QVariant &other) const; 8751: bool convert(const int t, void *ptr) const; 8751: 8751: private: 8751: 8751: inline QVariant(void *) = delete; 8751: 8751: 8751: 8751: 8751: 8751: 8751: QVariant(QMetaType::Type) = delete; 8751: 8751: 8751: 8751: 8751: 8751: 8751: QVariant(Qt::GlobalColor) = delete; 8751: QVariant(Qt::BrushStyle) = delete; 8751: QVariant(Qt::PenStyle) = delete; 8751: QVariant(Qt::CursorShape) = delete; 8751: 8751: 8751: inline QVariant(const char *) = delete; 8751: 8751: public: 8751: typedef Private DataPtr; 8751: inline DataPtr &data_ptr() { return d; } 8751: inline const DataPtr &data_ptr() const { return d; } 8751: }; 8751: 8751: template 8751: inline QVariant qVariantFromValue(const T &t) 8751: { 8751: return QVariant(qMetaTypeId(), &t, QTypeInfo::isPointer); 8751: } 8751: 8751: template <> 8751: inline QVariant qVariantFromValue(const QVariant &t) { return t; } 8751: 8751: template 8751: inline void qVariantSetValue(QVariant &v, const T &t) 8751: { 8751: 8751: const uint type = qMetaTypeId(); 8751: QVariant::Private &d = v.data_ptr(); 8751: if (v.isDetached() && (type == d.type || (type <= uint(QVariant::Char) && d.type <= uint(QVariant::Char)))) { 8751: d.type = type; 8751: d.is_null = false; 8751: T *old = reinterpret_cast(d.is_shared ? d.data.shared->ptr : &d.data.ptr); 8751: if (QTypeInfo::isComplex) 8751: old->~T(); 8751: new (old) T(t); 8751: } else { 8751: v = QVariant(type, &t, QTypeInfo::isPointer); 8751: } 8751: } 8751: 8751: template <> 8751: inline void qVariantSetValue(QVariant &v, const QVariant &t) 8751: { 8751: v = t; 8751: } 8751: 8751: inline bool QVariant::isValid() const { return d.type != Invalid; } 8751: 8751: template 8751: inline void QVariant::setValue(const T &avalue) 8751: { qVariantSetValue(*this, avalue); } 8751: 8751: 8751: __attribute__((visibility("default"))) QDataStream& operator>> (QDataStream& s, QVariant& p); 8751: __attribute__((visibility("default"))) QDataStream& operator<< (QDataStream& s, const QVariant& p); 8751: __attribute__((visibility("default"))) QDataStream& operator>> (QDataStream& s, QVariant::Type& p); 8751: __attribute__((visibility("default"))) QDataStream& operator<< (QDataStream& s, const QVariant::Type p); 8751: 8751: 8751: inline bool QVariant::isDetached() const 8751: { return !d.is_shared || d.data.shared->ref.load() == 1; } 8751: # 557 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 3 4 8751: class QVariantComparisonHelper 8751: { 8751: public: 8751: inline QVariantComparisonHelper(const QVariant &var) 8751: : v(&var) {} 8751: private: 8751: friend inline bool operator==(const QVariant &, const QVariantComparisonHelper &); 8751: const QVariant *v; 8751: }; 8751: 8751: inline bool operator==(const QVariant &v1, const QVariantComparisonHelper &v2) 8751: { 8751: return v1.cmp(*v2.v); 8751: } 8751: 8751: inline bool operator!=(const QVariant &v1, const QVariantComparisonHelper &v2) 8751: { 8751: return !operator==(v1, v2); 8751: } 8751: 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QVariant)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QVariant >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QVariant) }; static inline const char *name() { return "QVariant"; } }; inline void swap(QVariant &value1, QVariant &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8751: 8751: class __attribute__((visibility("default"))) QSequentialIterable 8751: { 8751: QtMetaTypePrivate::QSequentialIterableImpl m_impl; 8751: public: 8751: struct __attribute__((visibility("default"))) const_iterator 8751: { 8751: private: 8751: QtMetaTypePrivate::QSequentialIterableImpl m_impl; 8751: QAtomicInt *ref; 8751: friend class QSequentialIterable; 8751: explicit const_iterator(const QSequentialIterable &iter, QAtomicInt *ref_); 8751: 8751: explicit const_iterator(const QtMetaTypePrivate::QSequentialIterableImpl &impl, QAtomicInt *ref_); 8751: 8751: void begin(); 8751: void end(); 8751: public: 8751: ~const_iterator(); 8751: 8751: const_iterator(const const_iterator &other); 8751: 8751: const_iterator& operator=(const const_iterator &other); 8751: 8751: const QVariant operator*() const; 8751: bool operator==(const const_iterator &o) const; 8751: bool operator!=(const const_iterator &o) const; 8751: const_iterator &operator++(); 8751: const_iterator operator++(int); 8751: const_iterator &operator--(); 8751: const_iterator operator--(int); 8751: const_iterator &operator+=(int j); 8751: const_iterator &operator-=(int j); 8751: const_iterator operator+(int j) const; 8751: const_iterator operator-(int j) const; 8751: }; 8751: 8751: friend struct const_iterator; 8751: 8751: 8751: explicit QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl impl); 8751: 8751: 8751: 8751: 8751: const_iterator begin() const; 8751: const_iterator end() const; 8751: 8751: QVariant at(int idx) const; 8751: int size() const; 8751: 8751: bool canReverseIterate() const; 8751: }; 8751: 8751: class __attribute__((visibility("default"))) QAssociativeIterable 8751: { 8751: QtMetaTypePrivate::QAssociativeIterableImpl m_impl; 8751: public: 8751: struct __attribute__((visibility("default"))) const_iterator 8751: { 8751: private: 8751: QtMetaTypePrivate::QAssociativeIterableImpl m_impl; 8751: QAtomicInt *ref; 8751: friend class QAssociativeIterable; 8751: explicit const_iterator(const QAssociativeIterable &iter, QAtomicInt *ref_); 8751: 8751: explicit const_iterator(const QtMetaTypePrivate::QAssociativeIterableImpl &impl, QAtomicInt *ref_); 8751: 8751: void begin(); 8751: void end(); 8751: void find(const QVariant &key); 8751: public: 8751: ~const_iterator(); 8751: const_iterator(const const_iterator &other); 8751: 8751: const_iterator& operator=(const const_iterator &other); 8751: 8751: const QVariant key() const; 8751: 8751: const QVariant value() const; 8751: 8751: const QVariant operator*() const; 8751: bool operator==(const const_iterator &o) const; 8751: bool operator!=(const const_iterator &o) const; 8751: const_iterator &operator++(); 8751: const_iterator operator++(int); 8751: const_iterator &operator--(); 8751: const_iterator operator--(int); 8751: const_iterator &operator+=(int j); 8751: const_iterator &operator-=(int j); 8751: const_iterator operator+(int j) const; 8751: const_iterator operator-(int j) const; 8751: }; 8751: 8751: friend struct const_iterator; 8751: 8751: 8751: explicit QAssociativeIterable(QtMetaTypePrivate::QAssociativeIterableImpl impl); 8751: 8751: 8751: 8751: 8751: const_iterator begin() const; 8751: const_iterator end() const; 8751: const_iterator find(const QVariant &key) const; 8751: 8751: QVariant value(const QVariant &key) const; 8751: 8751: int size() const; 8751: }; 8751: 8751: 8751: namespace QtPrivate { 8751: template 8751: struct QVariantValueHelper : TreatAsQObjectBeforeMetaType, T, const QVariant &, T> 8751: { 8751: static T metaType(const QVariant &v) 8751: { 8751: const int vid = qMetaTypeId(); 8751: if (vid == v.userType()) 8751: return *reinterpret_cast(v.constData()); 8751: T t; 8751: if (v.convert(vid, &t)) 8751: return t; 8751: return T(); 8751: } 8751: 8751: static T object(const QVariant &v) 8751: { 8751: return qobject_cast(QMetaType::typeFlags(v.userType()) & QMetaType::PointerToQObject 8751: ? v.d.data.o 8751: : QVariantValueHelper::metaType(v)); 8751: } 8751: 8751: }; 8751: 8751: template 8751: struct QVariantValueHelperInterface : QVariantValueHelper 8751: { 8751: }; 8751: 8751: template<> 8751: struct QVariantValueHelperInterface 8751: { 8751: static QSequentialIterable invoke(const QVariant &v) 8751: { 8751: const int typeId = v.userType(); 8751: if (typeId == qMetaTypeId()) { 8751: return QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl(reinterpret_cast(v.constData()))); 8751: } 8751: if (typeId == qMetaTypeId()) { 8751: return QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl(reinterpret_cast(v.constData()))); 8751: } 8751: 8751: if (typeId == qMetaTypeId()) { 8751: return QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl(reinterpret_cast(v.constData()))); 8751: } 8751: 8751: return QSequentialIterable(v.value()); 8751: } 8751: }; 8751: template<> 8751: struct QVariantValueHelperInterface 8751: { 8751: static QAssociativeIterable invoke(const QVariant &v) 8751: { 8751: const int typeId = v.userType(); 8751: if (typeId == qMetaTypeId()) { 8751: return QAssociativeIterable(QtMetaTypePrivate::QAssociativeIterableImpl(reinterpret_cast(v.constData()))); 8751: } 8751: if (typeId == qMetaTypeId()) { 8751: return QAssociativeIterable(QtMetaTypePrivate::QAssociativeIterableImpl(reinterpret_cast(v.constData()))); 8751: } 8751: return QAssociativeIterable(v.value()); 8751: } 8751: }; 8751: template<> 8751: struct QVariantValueHelperInterface 8751: { 8751: static QVariantList invoke(const QVariant &v) 8751: { 8751: const int typeId = v.userType(); 8751: if (typeId == qMetaTypeId() || typeId == qMetaTypeId() || QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8751: QSequentialIterable iter = QVariantValueHelperInterface::invoke(v); 8751: QVariantList l; 8751: l.reserve(iter.size()); 8751: for (QSequentialIterable::const_iterator it = iter.begin(), end = iter.end(); it != end; ++it) 8751: l << *it; 8751: return l; 8751: } 8751: return QVariantValueHelper::invoke(v); 8751: } 8751: }; 8751: template<> 8751: struct QVariantValueHelperInterface 8751: { 8751: static QVariantHash invoke(const QVariant &v) 8751: { 8751: const int typeId = v.userType(); 8751: if (typeId == qMetaTypeId() || QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8751: QAssociativeIterable iter = QVariantValueHelperInterface::invoke(v); 8751: QVariantHash l; 8751: l.reserve(iter.size()); 8751: for (QAssociativeIterable::const_iterator it = iter.begin(), end = iter.end(); it != end; ++it) 8751: l.insertMulti(it.key().toString(), it.value()); 8751: return l; 8751: } 8751: return QVariantValueHelper::invoke(v); 8751: } 8751: }; 8751: template<> 8751: struct QVariantValueHelperInterface 8751: { 8751: static QVariantMap invoke(const QVariant &v) 8751: { 8751: const int typeId = v.userType(); 8751: if (typeId == qMetaTypeId() || QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8751: QAssociativeIterable iter = QVariantValueHelperInterface::invoke(v); 8751: QVariantMap l; 8751: for (QAssociativeIterable::const_iterator it = iter.begin(), end = iter.end(); it != end; ++it) 8751: l.insertMulti(it.key().toString(), it.value()); 8751: return l; 8751: } 8751: return QVariantValueHelper::invoke(v); 8751: } 8751: }; 8751: template<> 8751: struct QVariantValueHelperInterface > 8751: { 8751: static QPair invoke(const QVariant &v) 8751: { 8751: const int typeId = v.userType(); 8751: if (typeId == qMetaTypeId >()) 8751: return QVariantValueHelper >::invoke(v); 8751: 8751: if (QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8751: QtMetaTypePrivate::QPairVariantInterfaceImpl pi = v.value(); 8751: 8751: const QtMetaTypePrivate::VariantData d1 = pi.first(); 8751: QVariant v1(d1.metaTypeId, d1.data, d1.flags); 8751: if (d1.metaTypeId == qMetaTypeId()) 8751: v1 = *reinterpret_cast(d1.data); 8751: 8751: const QtMetaTypePrivate::VariantData d2 = pi.second(); 8751: QVariant v2(d2.metaTypeId, d2.data, d2.flags); 8751: if (d2.metaTypeId == qMetaTypeId()) 8751: v2 = *reinterpret_cast(d2.data); 8751: 8751: return QPair(v1, v2); 8751: } 8751: return QVariantValueHelper >::invoke(v); 8751: } 8751: }; 8751: } 8751: 8751: template inline T qvariant_cast(const QVariant &v) 8751: { 8751: return QtPrivate::QVariantValueHelperInterface::invoke(v); 8751: } 8751: 8751: template<> inline QVariant qvariant_cast(const QVariant &v) 8751: { 8751: if (v.userType() == QMetaType::QVariant) 8751: return *reinterpret_cast(v.constData()); 8751: return v; 8751: } 8751: # 858 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 3 4 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QVariant &); 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QVariant::Type); 8751: 8751: 8751: 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 2 3 4 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qshareddata.h" 1 3 4 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qshareddata.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 1 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qshareddata.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template class QSharedDataPointer; 8751: 8751: class __attribute__((visibility("default"))) QSharedData 8751: { 8751: public: 8751: mutable QAtomicInt ref; 8751: 8751: inline QSharedData() : ref(0) { } 8751: inline QSharedData(const QSharedData &) : ref(0) { } 8751: 8751: private: 8751: 8751: QSharedData &operator=(const QSharedData &); 8751: }; 8751: 8751: template class QSharedDataPointer 8751: { 8751: public: 8751: typedef T Type; 8751: typedef T *pointer; 8751: 8751: inline void detach() { if (d && d->ref.load() != 1) detach_helper(); } 8751: inline T &operator*() { detach(); return *d; } 8751: inline const T &operator*() const { return *d; } 8751: inline T *operator->() { detach(); return d; } 8751: inline const T *operator->() const { return d; } 8751: inline operator T *() { detach(); return d; } 8751: inline operator const T *() const { return d; } 8751: inline T *data() { detach(); return d; } 8751: inline const T *data() const { return d; } 8751: inline const T *constData() const { return d; } 8751: 8751: inline bool operator==(const QSharedDataPointer &other) const { return d == other.d; } 8751: inline bool operator!=(const QSharedDataPointer &other) const { return d != other.d; } 8751: 8751: inline QSharedDataPointer() { d = nullptr; } 8751: inline ~QSharedDataPointer() { if (d && !d->ref.deref()) delete d; } 8751: 8751: explicit QSharedDataPointer(T *data) noexcept; 8751: inline QSharedDataPointer(const QSharedDataPointer &o) : d(o.d) { if (d) d->ref.ref(); } 8751: inline QSharedDataPointer & operator=(const QSharedDataPointer &o) { 8751: if (o.d != d) { 8751: if (o.d) 8751: o.d->ref.ref(); 8751: T *old = d; 8751: d = o.d; 8751: if (old && !old->ref.deref()) 8751: delete old; 8751: } 8751: return *this; 8751: } 8751: inline QSharedDataPointer &operator=(T *o) { 8751: if (o != d) { 8751: if (o) 8751: o->ref.ref(); 8751: T *old = d; 8751: d = o; 8751: if (old && !old->ref.deref()) 8751: delete old; 8751: } 8751: return *this; 8751: } 8751: 8751: QSharedDataPointer(QSharedDataPointer &&o) noexcept : d(o.d) { o.d = nullptr; } 8751: inline QSharedDataPointer &operator=(QSharedDataPointer &&other) noexcept 8751: { qSwap(d, other.d); return *this; } 8751: 8751: 8751: inline bool operator!() const { return !d; } 8751: 8751: inline void swap(QSharedDataPointer &other) noexcept 8751: { qSwap(d, other.d); } 8751: 8751: protected: 8751: T *clone(); 8751: 8751: private: 8751: void detach_helper(); 8751: 8751: T *d; 8751: }; 8751: 8751: template class QExplicitlySharedDataPointer 8751: { 8751: public: 8751: typedef T Type; 8751: typedef T *pointer; 8751: 8751: inline T &operator*() const { return *d; } 8751: inline T *operator->() { return d; } 8751: inline T *operator->() const { return d; } 8751: inline T *data() const { return d; } 8751: inline const T *constData() const { return d; } 8751: 8751: inline void detach() { if (d && d->ref.load() != 1) detach_helper(); } 8751: 8751: inline void reset() 8751: { 8751: if(d && !d->ref.deref()) 8751: delete d; 8751: 8751: d = nullptr; 8751: } 8751: 8751: inline operator bool () const { return d != nullptr; } 8751: 8751: inline bool operator==(const QExplicitlySharedDataPointer &other) const { return d == other.d; } 8751: inline bool operator!=(const QExplicitlySharedDataPointer &other) const { return d != other.d; } 8751: inline bool operator==(const T *ptr) const { return d == ptr; } 8751: inline bool operator!=(const T *ptr) const { return d != ptr; } 8751: 8751: inline QExplicitlySharedDataPointer() { d = nullptr; } 8751: inline ~QExplicitlySharedDataPointer() { if (d && !d->ref.deref()) delete d; } 8751: 8751: explicit QExplicitlySharedDataPointer(T *data) noexcept; 8751: inline QExplicitlySharedDataPointer(const QExplicitlySharedDataPointer &o) : d(o.d) { if (d) d->ref.ref(); } 8751: 8751: template 8751: inline QExplicitlySharedDataPointer(const QExplicitlySharedDataPointer &o) 8751: 8751: 8751: 8751: : d(o.data()) 8751: 8751: { 8751: if(d) 8751: d->ref.ref(); 8751: } 8751: 8751: inline QExplicitlySharedDataPointer & operator=(const QExplicitlySharedDataPointer &o) { 8751: if (o.d != d) { 8751: if (o.d) 8751: o.d->ref.ref(); 8751: T *old = d; 8751: d = o.d; 8751: if (old && !old->ref.deref()) 8751: delete old; 8751: } 8751: return *this; 8751: } 8751: inline QExplicitlySharedDataPointer &operator=(T *o) { 8751: if (o != d) { 8751: if (o) 8751: o->ref.ref(); 8751: T *old = d; 8751: d = o; 8751: if (old && !old->ref.deref()) 8751: delete old; 8751: } 8751: return *this; 8751: } 8751: 8751: inline QExplicitlySharedDataPointer(QExplicitlySharedDataPointer &&o) noexcept : d(o.d) { o.d = nullptr; } 8751: inline QExplicitlySharedDataPointer &operator=(QExplicitlySharedDataPointer &&other) noexcept 8751: { qSwap(d, other.d); return *this; } 8751: 8751: 8751: inline bool operator!() const { return !d; } 8751: 8751: inline void swap(QExplicitlySharedDataPointer &other) noexcept 8751: { qSwap(d, other.d); } 8751: 8751: protected: 8751: T *clone(); 8751: 8751: private: 8751: void detach_helper(); 8751: 8751: T *d; 8751: }; 8751: 8751: template 8751: inline QSharedDataPointer::QSharedDataPointer(T *adata) noexcept 8751: : d(adata) 8751: { if (d) d->ref.ref(); } 8751: 8751: template 8751: inline T *QSharedDataPointer::clone() 8751: { 8751: return new T(*d); 8751: } 8751: 8751: template 8751: void QSharedDataPointer::detach_helper() 8751: { 8751: T *x = clone(); 8751: x->ref.ref(); 8751: if (!d->ref.deref()) 8751: delete d; 8751: d = x; 8751: } 8751: 8751: template 8751: inline T *QExplicitlySharedDataPointer::clone() 8751: { 8751: return new T(*d); 8751: } 8751: 8751: template 8751: void QExplicitlySharedDataPointer::detach_helper() 8751: { 8751: T *x = clone(); 8751: x->ref.ref(); 8751: if (!d->ref.deref()) 8751: delete d; 8751: d = x; 8751: } 8751: 8751: template 8751: inline QExplicitlySharedDataPointer::QExplicitlySharedDataPointer(T *adata) noexcept 8751: : d(adata) 8751: { if (d) d->ref.ref(); } 8751: 8751: template 8751: inline void qSwap(QSharedDataPointer &p1, QSharedDataPointer &p2) 8751: { p1.swap(p2); } 8751: 8751: template 8751: inline void qSwap(QExplicitlySharedDataPointer &p1, QExplicitlySharedDataPointer &p2) 8751: { p1.swap(p2); } 8751: 8751: 8751: namespace std { 8751: template 8751: inline void swap(::QSharedDataPointer &p1, ::QSharedDataPointer &p2) 8751: { p1.swap(p2); } 8751: 8751: template 8751: inline void swap(::QExplicitlySharedDataPointer &p1, ::QExplicitlySharedDataPointer &p2) 8751: { p1.swap(p2); } 8751: } 8751: 8751: 8751: template 8751: inline uint qHash(const QSharedDataPointer &ptr, uint seed = 0) noexcept 8751: { 8751: return qHash(ptr.data(), seed); 8751: } 8751: template 8751: inline uint qHash(const QExplicitlySharedDataPointer &ptr, uint seed = 0) noexcept 8751: { 8751: return qHash(ptr.data(), seed); 8751: } 8751: 8751: template class QTypeInfo > { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QSharedDataPointer)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QSharedDataPointer >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QSharedDataPointer) }; static inline const char *name() { return "QSharedDataPointer"; } }; 8751: template class QTypeInfo > { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QExplicitlySharedDataPointer)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QExplicitlySharedDataPointer >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QExplicitlySharedDataPointer) }; static inline const char *name() { return "QExplicitlySharedDataPointer"; } }; 8751: 8751: 8751: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 2 3 4 8751: 8751: 8751: 8751: 8751: class QDataStream; 8751: class QDate; 8751: class QDateTime; 8751: class QLocale; 8751: class QTime; 8751: class QVariant; 8751: class QTextStream; 8751: class QTextStreamPrivate; 8751: 8751: class QLocalePrivate; 8751: 8751: __attribute__((visibility("default"))) uint qHash(const QLocale &key, uint seed = 0) noexcept; 8751: 8751: class __attribute__((visibility("default"))) QLocale 8751: { 8751: public: static const QMetaObject staticMetaObject; void qt_check_for_QGADGET_macro(); typedef void QtGadgetHelper; private: 8751: # 66 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 3 4 8751: #pragma GCC diagnostic push 8751: # 66 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 3 4 8751: 8751: # 66 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 3 4 8751: #pragma GCC diagnostic ignored "-Wattributes" 8751: # 66 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 3 4 8751: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8751: # 66 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 3 4 8751: #pragma GCC diagnostic pop 8751: # 66 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 3 4 8751: 8751: friend class QString; 8751: friend class QStringRef; 8751: friend class QByteArray; 8751: friend class QIntValidator; 8751: friend class QDoubleValidatorPrivate; 8751: friend class QTextStream; 8751: friend class QTextStreamPrivate; 8751: 8751: public: 8751: 8751: 8751: enum Language { 8751: AnyLanguage = 0, 8751: C = 1, 8751: Abkhazian = 2, 8751: Oromo = 3, 8751: Afar = 4, 8751: Afrikaans = 5, 8751: Albanian = 6, 8751: Amharic = 7, 8751: Arabic = 8, 8751: Armenian = 9, 8751: Assamese = 10, 8751: Aymara = 11, 8751: Azerbaijani = 12, 8751: Bashkir = 13, 8751: Basque = 14, 8751: Bengali = 15, 8751: Dzongkha = 16, 8751: Bihari = 17, 8751: Bislama = 18, 8751: Breton = 19, 8751: Bulgarian = 20, 8751: Burmese = 21, 8751: Belarusian = 22, 8751: Khmer = 23, 8751: Catalan = 24, 8751: Chinese = 25, 8751: Corsican = 26, 8751: Croatian = 27, 8751: Czech = 28, 8751: Danish = 29, 8751: Dutch = 30, 8751: English = 31, 8751: Esperanto = 32, 8751: Estonian = 33, 8751: Faroese = 34, 8751: Fijian = 35, 8751: Finnish = 36, 8751: French = 37, 8751: WesternFrisian = 38, 8751: Gaelic = 39, 8751: Galician = 40, 8751: Georgian = 41, 8751: German = 42, 8751: Greek = 43, 8751: Greenlandic = 44, 8751: Guarani = 45, 8751: Gujarati = 46, 8751: Hausa = 47, 8751: Hebrew = 48, 8751: Hindi = 49, 8751: Hungarian = 50, 8751: Icelandic = 51, 8751: Indonesian = 52, 8751: Interlingua = 53, 8751: Interlingue = 54, 8751: Inuktitut = 55, 8751: Inupiak = 56, 8751: Irish = 57, 8751: Italian = 58, 8751: Japanese = 59, 8751: Javanese = 60, 8751: Kannada = 61, 8751: Kashmiri = 62, 8751: Kazakh = 63, 8751: Kinyarwanda = 64, 8751: Kirghiz = 65, 8751: Korean = 66, 8751: Kurdish = 67, 8751: Rundi = 68, 8751: Lao = 69, 8751: Latin = 70, 8751: Latvian = 71, 8751: Lingala = 72, 8751: Lithuanian = 73, 8751: Macedonian = 74, 8751: Malagasy = 75, 8751: Malay = 76, 8751: Malayalam = 77, 8751: Maltese = 78, 8751: Maori = 79, 8751: Marathi = 80, 8751: Marshallese = 81, 8751: Mongolian = 82, 8751: NauruLanguage = 83, 8751: Nepali = 84, 8751: NorwegianBokmal = 85, 8751: Occitan = 86, 8751: Oriya = 87, 8751: Pashto = 88, 8751: Persian = 89, 8751: Polish = 90, 8751: Portuguese = 91, 8751: Punjabi = 92, 8751: Quechua = 93, 8751: Romansh = 94, 8751: Romanian = 95, 8751: Russian = 96, 8751: Samoan = 97, 8751: Sango = 98, 8751: Sanskrit = 99, 8751: Serbian = 100, 8751: Ossetic = 101, 8751: SouthernSotho = 102, 8751: Tswana = 103, 8751: Shona = 104, 8751: Sindhi = 105, 8751: Sinhala = 106, 8751: Swati = 107, 8751: Slovak = 108, 8751: Slovenian = 109, 8751: Somali = 110, 8751: Spanish = 111, 8751: Sundanese = 112, 8751: Swahili = 113, 8751: Swedish = 114, 8751: Sardinian = 115, 8751: Tajik = 116, 8751: Tamil = 117, 8751: Tatar = 118, 8751: Telugu = 119, 8751: Thai = 120, 8751: Tibetan = 121, 8751: Tigrinya = 122, 8751: Tongan = 123, 8751: Tsonga = 124, 8751: Turkish = 125, 8751: Turkmen = 126, 8751: Tahitian = 127, 8751: Uighur = 128, 8751: Ukrainian = 129, 8751: Urdu = 130, 8751: Uzbek = 131, 8751: Vietnamese = 132, 8751: Volapuk = 133, 8751: Welsh = 134, 8751: Wolof = 135, 8751: Xhosa = 136, 8751: Yiddish = 137, 8751: Yoruba = 138, 8751: Zhuang = 139, 8751: Zulu = 140, 8751: NorwegianNynorsk = 141, 8751: Bosnian = 142, 8751: Divehi = 143, 8751: Manx = 144, 8751: Cornish = 145, 8751: Akan = 146, 8751: Konkani = 147, 8751: Ga = 148, 8751: Igbo = 149, 8751: Kamba = 150, 8751: Syriac = 151, 8751: Blin = 152, 8751: Geez = 153, 8751: Koro = 154, 8751: Sidamo = 155, 8751: Atsam = 156, 8751: Tigre = 157, 8751: Jju = 158, 8751: Friulian = 159, 8751: Venda = 160, 8751: Ewe = 161, 8751: Walamo = 162, 8751: Hawaiian = 163, 8751: Tyap = 164, 8751: Nyanja = 165, 8751: Filipino = 166, 8751: SwissGerman = 167, 8751: SichuanYi = 168, 8751: Kpelle = 169, 8751: LowGerman = 170, 8751: SouthNdebele = 171, 8751: NorthernSotho = 172, 8751: NorthernSami = 173, 8751: Taroko = 174, 8751: Gusii = 175, 8751: Taita = 176, 8751: Fulah = 177, 8751: Kikuyu = 178, 8751: Samburu = 179, 8751: Sena = 180, 8751: NorthNdebele = 181, 8751: Rombo = 182, 8751: Tachelhit = 183, 8751: Kabyle = 184, 8751: Nyankole = 185, 8751: Bena = 186, 8751: Vunjo = 187, 8751: Bambara = 188, 8751: Embu = 189, 8751: Cherokee = 190, 8751: Morisyen = 191, 8751: Makonde = 192, 8751: Langi = 193, 8751: Ganda = 194, 8751: Bemba = 195, 8751: Kabuverdianu = 196, 8751: Meru = 197, 8751: Kalenjin = 198, 8751: Nama = 199, 8751: Machame = 200, 8751: Colognian = 201, 8751: Masai = 202, 8751: Soga = 203, 8751: Luyia = 204, 8751: Asu = 205, 8751: Teso = 206, 8751: Saho = 207, 8751: KoyraChiini = 208, 8751: Rwa = 209, 8751: Luo = 210, 8751: Chiga = 211, 8751: CentralMoroccoTamazight = 212, 8751: KoyraboroSenni = 213, 8751: Shambala = 214, 8751: Bodo = 215, 8751: Avaric = 216, 8751: Chamorro = 217, 8751: Chechen = 218, 8751: Church = 219, 8751: Chuvash = 220, 8751: Cree = 221, 8751: Haitian = 222, 8751: Herero = 223, 8751: HiriMotu = 224, 8751: Kanuri = 225, 8751: Komi = 226, 8751: Kongo = 227, 8751: Kwanyama = 228, 8751: Limburgish = 229, 8751: LubaKatanga = 230, 8751: Luxembourgish = 231, 8751: Navaho = 232, 8751: Ndonga = 233, 8751: Ojibwa = 234, 8751: Pali = 235, 8751: Walloon = 236, 8751: Aghem = 237, 8751: Basaa = 238, 8751: Zarma = 239, 8751: Duala = 240, 8751: JolaFonyi = 241, 8751: Ewondo = 242, 8751: Bafia = 243, 8751: MakhuwaMeetto = 244, 8751: Mundang = 245, 8751: Kwasio = 246, 8751: Nuer = 247, 8751: Sakha = 248, 8751: Sangu = 249, 8751: CongoSwahili = 250, 8751: Tasawaq = 251, 8751: Vai = 252, 8751: Walser = 253, 8751: Yangben = 254, 8751: Avestan = 255, 8751: Asturian = 256, 8751: Ngomba = 257, 8751: Kako = 258, 8751: Meta = 259, 8751: Ngiemboon = 260, 8751: Aragonese = 261, 8751: Akkadian = 262, 8751: AncientEgyptian = 263, 8751: AncientGreek = 264, 8751: Aramaic = 265, 8751: Balinese = 266, 8751: Bamun = 267, 8751: BatakToba = 268, 8751: Buginese = 269, 8751: Buhid = 270, 8751: Carian = 271, 8751: Chakma = 272, 8751: ClassicalMandaic = 273, 8751: Coptic = 274, 8751: Dogri = 275, 8751: EasternCham = 276, 8751: EasternKayah = 277, 8751: Etruscan = 278, 8751: Gothic = 279, 8751: Hanunoo = 280, 8751: Ingush = 281, 8751: LargeFloweryMiao = 282, 8751: Lepcha = 283, 8751: Limbu = 284, 8751: Lisu = 285, 8751: Lu = 286, 8751: Lycian = 287, 8751: Lydian = 288, 8751: Mandingo = 289, 8751: Manipuri = 290, 8751: Meroitic = 291, 8751: NorthernThai = 292, 8751: OldIrish = 293, 8751: OldNorse = 294, 8751: OldPersian = 295, 8751: OldTurkish = 296, 8751: Pahlavi = 297, 8751: Parthian = 298, 8751: Phoenician = 299, 8751: PrakritLanguage = 300, 8751: Rejang = 301, 8751: Sabaean = 302, 8751: Samaritan = 303, 8751: Santali = 304, 8751: Saurashtra = 305, 8751: Sora = 306, 8751: Sylheti = 307, 8751: Tagbanwa = 308, 8751: TaiDam = 309, 8751: TaiNua = 310, 8751: Ugaritic = 311, 8751: Akoose = 312, 8751: Lakota = 313, 8751: StandardMoroccanTamazight = 314, 8751: Mapuche = 315, 8751: CentralKurdish = 316, 8751: LowerSorbian = 317, 8751: UpperSorbian = 318, 8751: Kenyang = 319, 8751: Mohawk = 320, 8751: Nko = 321, 8751: Prussian = 322, 8751: Kiche = 323, 8751: SouthernSami = 324, 8751: LuleSami = 325, 8751: InariSami = 326, 8751: SkoltSami = 327, 8751: Warlpiri = 328, 8751: ManichaeanMiddlePersian = 329, 8751: Mende = 330, 8751: AncientNorthArabian = 331, 8751: LinearA = 332, 8751: HmongNjua = 333, 8751: Ho = 334, 8751: Lezghian = 335, 8751: Bassa = 336, 8751: Mono = 337, 8751: TedimChin = 338, 8751: Maithili = 339, 8751: Ahom = 340, 8751: AmericanSignLanguage = 341, 8751: ArdhamagadhiPrakrit = 342, 8751: Bhojpuri = 343, 8751: HieroglyphicLuwian = 344, 8751: LiteraryChinese = 345, 8751: Mazanderani = 346, 8751: Mru = 347, 8751: Newari = 348, 8751: NorthernLuri = 349, 8751: Palauan = 350, 8751: Papiamento = 351, 8751: Saraiki = 352, 8751: TokelauLanguage = 353, 8751: TokPisin = 354, 8751: TuvaluLanguage = 355, 8751: UncodedLanguages = 356, 8751: Cantonese = 357, 8751: Osage = 358, 8751: Tangut = 359, 8751: 8751: Norwegian = NorwegianBokmal, 8751: Moldavian = Romanian, 8751: SerboCroatian = Serbian, 8751: Tagalog = Filipino, 8751: Twi = Akan, 8751: Afan = Oromo, 8751: Byelorussian = Belarusian, 8751: Bhutani = Dzongkha, 8751: Cambodian = Khmer, 8751: Kurundi = Rundi, 8751: RhaetoRomance = Romansh, 8751: Chewa = Nyanja, 8751: Frisian = WesternFrisian, 8751: Uigur = Uighur, 8751: 8751: LastLanguage = Tangut 8751: }; 8751: 8751: enum Script { 8751: AnyScript = 0, 8751: ArabicScript = 1, 8751: CyrillicScript = 2, 8751: DeseretScript = 3, 8751: GurmukhiScript = 4, 8751: SimplifiedHanScript = 5, 8751: TraditionalHanScript = 6, 8751: LatinScript = 7, 8751: MongolianScript = 8, 8751: TifinaghScript = 9, 8751: ArmenianScript = 10, 8751: BengaliScript = 11, 8751: CherokeeScript = 12, 8751: DevanagariScript = 13, 8751: EthiopicScript = 14, 8751: GeorgianScript = 15, 8751: GreekScript = 16, 8751: GujaratiScript = 17, 8751: HebrewScript = 18, 8751: JapaneseScript = 19, 8751: KhmerScript = 20, 8751: KannadaScript = 21, 8751: KoreanScript = 22, 8751: LaoScript = 23, 8751: MalayalamScript = 24, 8751: MyanmarScript = 25, 8751: OriyaScript = 26, 8751: TamilScript = 27, 8751: TeluguScript = 28, 8751: ThaanaScript = 29, 8751: ThaiScript = 30, 8751: TibetanScript = 31, 8751: SinhalaScript = 32, 8751: SyriacScript = 33, 8751: YiScript = 34, 8751: VaiScript = 35, 8751: AvestanScript = 36, 8751: BalineseScript = 37, 8751: BamumScript = 38, 8751: BatakScript = 39, 8751: BopomofoScript = 40, 8751: BrahmiScript = 41, 8751: BugineseScript = 42, 8751: BuhidScript = 43, 8751: CanadianAboriginalScript = 44, 8751: CarianScript = 45, 8751: ChakmaScript = 46, 8751: ChamScript = 47, 8751: CopticScript = 48, 8751: CypriotScript = 49, 8751: EgyptianHieroglyphsScript = 50, 8751: FraserScript = 51, 8751: GlagoliticScript = 52, 8751: GothicScript = 53, 8751: HanScript = 54, 8751: HangulScript = 55, 8751: HanunooScript = 56, 8751: ImperialAramaicScript = 57, 8751: InscriptionalPahlaviScript = 58, 8751: InscriptionalParthianScript = 59, 8751: JavaneseScript = 60, 8751: KaithiScript = 61, 8751: KatakanaScript = 62, 8751: KayahLiScript = 63, 8751: KharoshthiScript = 64, 8751: LannaScript = 65, 8751: LepchaScript = 66, 8751: LimbuScript = 67, 8751: LinearBScript = 68, 8751: LycianScript = 69, 8751: LydianScript = 70, 8751: MandaeanScript = 71, 8751: MeiteiMayekScript = 72, 8751: MeroiticScript = 73, 8751: MeroiticCursiveScript = 74, 8751: NkoScript = 75, 8751: NewTaiLueScript = 76, 8751: OghamScript = 77, 8751: OlChikiScript = 78, 8751: OldItalicScript = 79, 8751: OldPersianScript = 80, 8751: OldSouthArabianScript = 81, 8751: OrkhonScript = 82, 8751: OsmanyaScript = 83, 8751: PhagsPaScript = 84, 8751: PhoenicianScript = 85, 8751: PollardPhoneticScript = 86, 8751: RejangScript = 87, 8751: RunicScript = 88, 8751: SamaritanScript = 89, 8751: SaurashtraScript = 90, 8751: SharadaScript = 91, 8751: ShavianScript = 92, 8751: SoraSompengScript = 93, 8751: CuneiformScript = 94, 8751: SundaneseScript = 95, 8751: SylotiNagriScript = 96, 8751: TagalogScript = 97, 8751: TagbanwaScript = 98, 8751: TaiLeScript = 99, 8751: TaiVietScript = 100, 8751: TakriScript = 101, 8751: UgariticScript = 102, 8751: BrailleScript = 103, 8751: HiraganaScript = 104, 8751: CaucasianAlbanianScript = 105, 8751: BassaVahScript = 106, 8751: DuployanScript = 107, 8751: ElbasanScript = 108, 8751: GranthaScript = 109, 8751: PahawhHmongScript = 110, 8751: KhojkiScript = 111, 8751: LinearAScript = 112, 8751: MahajaniScript = 113, 8751: ManichaeanScript = 114, 8751: MendeKikakuiScript = 115, 8751: ModiScript = 116, 8751: MroScript = 117, 8751: OldNorthArabianScript = 118, 8751: NabataeanScript = 119, 8751: PalmyreneScript = 120, 8751: PauCinHauScript = 121, 8751: OldPermicScript = 122, 8751: PsalterPahlaviScript = 123, 8751: SiddhamScript = 124, 8751: KhudawadiScript = 125, 8751: TirhutaScript = 126, 8751: VarangKshitiScript = 127, 8751: AhomScript = 128, 8751: AnatolianHieroglyphsScript = 129, 8751: HatranScript = 130, 8751: MultaniScript = 131, 8751: OldHungarianScript = 132, 8751: SignWritingScript = 133, 8751: AdlamScript = 134, 8751: BhaiksukiScript = 135, 8751: MarchenScript = 136, 8751: NewaScript = 137, 8751: OsageScript = 138, 8751: TangutScript = 139, 8751: HanWithBopomofoScript = 140, 8751: JamoScript = 141, 8751: 8751: SimplifiedChineseScript = SimplifiedHanScript, 8751: TraditionalChineseScript = TraditionalHanScript, 8751: 8751: LastScript = JamoScript 8751: }; 8751: enum Country { 8751: AnyCountry = 0, 8751: Afghanistan = 1, 8751: Albania = 2, 8751: Algeria = 3, 8751: AmericanSamoa = 4, 8751: Andorra = 5, 8751: Angola = 6, 8751: Anguilla = 7, 8751: Antarctica = 8, 8751: AntiguaAndBarbuda = 9, 8751: Argentina = 10, 8751: Armenia = 11, 8751: Aruba = 12, 8751: Australia = 13, 8751: Austria = 14, 8751: Azerbaijan = 15, 8751: Bahamas = 16, 8751: Bahrain = 17, 8751: Bangladesh = 18, 8751: Barbados = 19, 8751: Belarus = 20, 8751: Belgium = 21, 8751: Belize = 22, 8751: Benin = 23, 8751: Bermuda = 24, 8751: Bhutan = 25, 8751: Bolivia = 26, 8751: BosniaAndHerzegowina = 27, 8751: Botswana = 28, 8751: BouvetIsland = 29, 8751: Brazil = 30, 8751: BritishIndianOceanTerritory = 31, 8751: Brunei = 32, 8751: Bulgaria = 33, 8751: BurkinaFaso = 34, 8751: Burundi = 35, 8751: Cambodia = 36, 8751: Cameroon = 37, 8751: Canada = 38, 8751: CapeVerde = 39, 8751: CaymanIslands = 40, 8751: CentralAfricanRepublic = 41, 8751: Chad = 42, 8751: Chile = 43, 8751: China = 44, 8751: ChristmasIsland = 45, 8751: CocosIslands = 46, 8751: Colombia = 47, 8751: Comoros = 48, 8751: CongoKinshasa = 49, 8751: CongoBrazzaville = 50, 8751: CookIslands = 51, 8751: CostaRica = 52, 8751: IvoryCoast = 53, 8751: Croatia = 54, 8751: Cuba = 55, 8751: Cyprus = 56, 8751: CzechRepublic = 57, 8751: Denmark = 58, 8751: Djibouti = 59, 8751: Dominica = 60, 8751: DominicanRepublic = 61, 8751: EastTimor = 62, 8751: Ecuador = 63, 8751: Egypt = 64, 8751: ElSalvador = 65, 8751: EquatorialGuinea = 66, 8751: Eritrea = 67, 8751: Estonia = 68, 8751: Ethiopia = 69, 8751: FalklandIslands = 70, 8751: FaroeIslands = 71, 8751: Fiji = 72, 8751: Finland = 73, 8751: France = 74, 8751: Guernsey = 75, 8751: FrenchGuiana = 76, 8751: FrenchPolynesia = 77, 8751: FrenchSouthernTerritories = 78, 8751: Gabon = 79, 8751: Gambia = 80, 8751: Georgia = 81, 8751: Germany = 82, 8751: Ghana = 83, 8751: Gibraltar = 84, 8751: Greece = 85, 8751: Greenland = 86, 8751: Grenada = 87, 8751: Guadeloupe = 88, 8751: Guam = 89, 8751: Guatemala = 90, 8751: Guinea = 91, 8751: GuineaBissau = 92, 8751: Guyana = 93, 8751: Haiti = 94, 8751: HeardAndMcDonaldIslands = 95, 8751: Honduras = 96, 8751: HongKong = 97, 8751: Hungary = 98, 8751: Iceland = 99, 8751: India = 100, 8751: Indonesia = 101, 8751: Iran = 102, 8751: Iraq = 103, 8751: Ireland = 104, 8751: Israel = 105, 8751: Italy = 106, 8751: Jamaica = 107, 8751: Japan = 108, 8751: Jordan = 109, 8751: Kazakhstan = 110, 8751: Kenya = 111, 8751: Kiribati = 112, 8751: NorthKorea = 113, 8751: SouthKorea = 114, 8751: Kuwait = 115, 8751: Kyrgyzstan = 116, 8751: Laos = 117, 8751: Latvia = 118, 8751: Lebanon = 119, 8751: Lesotho = 120, 8751: Liberia = 121, 8751: Libya = 122, 8751: Liechtenstein = 123, 8751: Lithuania = 124, 8751: Luxembourg = 125, 8751: Macau = 126, 8751: Macedonia = 127, 8751: Madagascar = 128, 8751: Malawi = 129, 8751: Malaysia = 130, 8751: Maldives = 131, 8751: Mali = 132, 8751: Malta = 133, 8751: MarshallIslands = 134, 8751: Martinique = 135, 8751: Mauritania = 136, 8751: Mauritius = 137, 8751: Mayotte = 138, 8751: Mexico = 139, 8751: Micronesia = 140, 8751: Moldova = 141, 8751: Monaco = 142, 8751: Mongolia = 143, 8751: Montserrat = 144, 8751: Morocco = 145, 8751: Mozambique = 146, 8751: Myanmar = 147, 8751: Namibia = 148, 8751: NauruCountry = 149, 8751: Nepal = 150, 8751: Netherlands = 151, 8751: CuraSao = 152, 8751: NewCaledonia = 153, 8751: NewZealand = 154, 8751: Nicaragua = 155, 8751: Niger = 156, 8751: Nigeria = 157, 8751: Niue = 158, 8751: NorfolkIsland = 159, 8751: NorthernMarianaIslands = 160, 8751: Norway = 161, 8751: Oman = 162, 8751: Pakistan = 163, 8751: Palau = 164, 8751: PalestinianTerritories = 165, 8751: Panama = 166, 8751: PapuaNewGuinea = 167, 8751: Paraguay = 168, 8751: Peru = 169, 8751: Philippines = 170, 8751: Pitcairn = 171, 8751: Poland = 172, 8751: Portugal = 173, 8751: PuertoRico = 174, 8751: Qatar = 175, 8751: Reunion = 176, 8751: Romania = 177, 8751: Russia = 178, 8751: Rwanda = 179, 8751: SaintKittsAndNevis = 180, 8751: SaintLucia = 181, 8751: SaintVincentAndTheGrenadines = 182, 8751: Samoa = 183, 8751: SanMarino = 184, 8751: SaoTomeAndPrincipe = 185, 8751: SaudiArabia = 186, 8751: Senegal = 187, 8751: Seychelles = 188, 8751: SierraLeone = 189, 8751: Singapore = 190, 8751: Slovakia = 191, 8751: Slovenia = 192, 8751: SolomonIslands = 193, 8751: Somalia = 194, 8751: SouthAfrica = 195, 8751: SouthGeorgiaAndTheSouthSandwichIslands = 196, 8751: Spain = 197, 8751: SriLanka = 198, 8751: SaintHelena = 199, 8751: SaintPierreAndMiquelon = 200, 8751: Sudan = 201, 8751: Suriname = 202, 8751: SvalbardAndJanMayenIslands = 203, 8751: Swaziland = 204, 8751: Sweden = 205, 8751: Switzerland = 206, 8751: Syria = 207, 8751: Taiwan = 208, 8751: Tajikistan = 209, 8751: Tanzania = 210, 8751: Thailand = 211, 8751: Togo = 212, 8751: TokelauCountry = 213, 8751: Tonga = 214, 8751: TrinidadAndTobago = 215, 8751: Tunisia = 216, 8751: Turkey = 217, 8751: Turkmenistan = 218, 8751: TurksAndCaicosIslands = 219, 8751: TuvaluCountry = 220, 8751: Uganda = 221, 8751: Ukraine = 222, 8751: UnitedArabEmirates = 223, 8751: UnitedKingdom = 224, 8751: UnitedStates = 225, 8751: UnitedStatesMinorOutlyingIslands = 226, 8751: Uruguay = 227, 8751: Uzbekistan = 228, 8751: Vanuatu = 229, 8751: VaticanCityState = 230, 8751: Venezuela = 231, 8751: Vietnam = 232, 8751: BritishVirginIslands = 233, 8751: UnitedStatesVirginIslands = 234, 8751: WallisAndFutunaIslands = 235, 8751: WesternSahara = 236, 8751: Yemen = 237, 8751: CanaryIslands = 238, 8751: Zambia = 239, 8751: Zimbabwe = 240, 8751: ClippertonIsland = 241, 8751: Montenegro = 242, 8751: Serbia = 243, 8751: SaintBarthelemy = 244, 8751: SaintMartin = 245, 8751: LatinAmericaAndTheCaribbean = 246, 8751: AscensionIsland = 247, 8751: AlandIslands = 248, 8751: DiegoGarcia = 249, 8751: CeutaAndMelilla = 250, 8751: IsleOfMan = 251, 8751: Jersey = 252, 8751: TristanDaCunha = 253, 8751: SouthSudan = 254, 8751: Bonaire = 255, 8751: SintMaarten = 256, 8751: Kosovo = 257, 8751: EuropeanUnion = 258, 8751: OutlyingOceania = 259, 8751: 8751: Tokelau = TokelauCountry, 8751: Tuvalu = TuvaluCountry, 8751: DemocraticRepublicOfCongo = CongoKinshasa, 8751: PeoplesRepublicOfCongo = CongoBrazzaville, 8751: DemocraticRepublicOfKorea = NorthKorea, 8751: RepublicOfKorea = SouthKorea, 8751: RussianFederation = Russia, 8751: SyrianArabRepublic = Syria, 8751: 8751: LastCountry = OutlyingOceania 8751: }; 8751: 8751: 8751: friend constexpr const QMetaObject *qt_getEnumMetaObject(Language) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Language) noexcept { return "Language"; } 8751: friend constexpr const QMetaObject *qt_getEnumMetaObject(Country) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Country) noexcept { return "Country"; } 8751: friend constexpr const QMetaObject *qt_getEnumMetaObject(Script) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Script) noexcept { return "Script"; } 8751: 8751: enum MeasurementSystem { 8751: MetricSystem, 8751: ImperialUSSystem, 8751: ImperialUKSystem, 8751: ImperialSystem = ImperialUSSystem 8751: }; 8751: friend constexpr const QMetaObject *qt_getEnumMetaObject(MeasurementSystem) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(MeasurementSystem) noexcept { return "MeasurementSystem"; } 8751: 8751: enum FormatType { LongFormat, ShortFormat, NarrowFormat }; 8751: enum NumberOption { 8751: DefaultNumberOptions = 0x0, 8751: OmitGroupSeparator = 0x01, 8751: RejectGroupSeparator = 0x02, 8751: OmitLeadingZeroInExponent = 0x04, 8751: RejectLeadingZeroInExponent = 0x08, 8751: IncludeTrailingZeroesAfterDot = 0x10, 8751: RejectTrailingZeroesAfterDot = 0x20 8751: }; 8751: typedef QFlags NumberOptions; 8751: 8751: enum FloatingPointPrecisionOption { 8751: FloatingPointShortest = -128 8751: }; 8751: 8751: enum CurrencySymbolFormat { 8751: CurrencyIsoCode, 8751: CurrencySymbol, 8751: CurrencyDisplayName 8751: }; 8751: 8751: QLocale(); 8751: QLocale(const QString &name); 8751: QLocale(Language language, Country country = AnyCountry); 8751: QLocale(Language language, Script script, Country country); 8751: QLocale(const QLocale &other); 8751: 8751: QLocale &operator=(QLocale &&other) noexcept { swap(other); return *this; } 8751: 8751: QLocale &operator=(const QLocale &other); 8751: ~QLocale(); 8751: 8751: void swap(QLocale &other) noexcept { qSwap(d, other.d); } 8751: 8751: Language language() const; 8751: Script script() const; 8751: Country country() const; 8751: QString name() const; 8751: 8751: QString bcp47Name() const; 8751: QString nativeLanguageName() const; 8751: QString nativeCountryName() const; 8751: 8751: short toShort(const QString &s, bool *ok = nullptr) const; 8751: ushort toUShort(const QString &s, bool *ok = nullptr) const; 8751: int toInt(const QString &s, bool *ok = nullptr) const; 8751: uint toUInt(const QString &s, bool *ok = nullptr) const; 8751: qlonglong toLongLong(const QString &s, bool *ok = nullptr) const; 8751: qulonglong toULongLong(const QString &s, bool *ok = nullptr) const; 8751: float toFloat(const QString &s, bool *ok = nullptr) const; 8751: double toDouble(const QString &s, bool *ok = nullptr) const; 8751: 8751: short toShort(const QStringRef &s, bool *ok = nullptr) const; 8751: ushort toUShort(const QStringRef &s, bool *ok = nullptr) const; 8751: int toInt(const QStringRef &s, bool *ok = nullptr) const; 8751: uint toUInt(const QStringRef &s, bool *ok = nullptr) const; 8751: qlonglong toLongLong(const QStringRef &s, bool *ok = nullptr) const; 8751: qulonglong toULongLong(const QStringRef &s, bool *ok = nullptr) const; 8751: float toFloat(const QStringRef &s, bool *ok = nullptr) const; 8751: double toDouble(const QStringRef &s, bool *ok = nullptr) const; 8751: 8751: QString toString(qlonglong i) const; 8751: QString toString(qulonglong i) const; 8751: inline QString toString(short i) const; 8751: inline QString toString(ushort i) const; 8751: inline QString toString(int i) const; 8751: inline QString toString(uint i) const; 8751: QString toString(double i, char f = 'g', int prec = 6) const; 8751: inline QString toString(float i, char f = 'g', int prec = 6) const; 8751: QString toString(const QDate &date, const QString &formatStr) const; 8751: QString toString(const QDate &date, FormatType format = LongFormat) const; 8751: QString toString(const QTime &time, const QString &formatStr) const; 8751: QString toString(const QTime &time, FormatType format = LongFormat) const; 8751: QString toString(const QDateTime &dateTime, FormatType format = LongFormat) const; 8751: QString toString(const QDateTime &dateTime, const QString &format) const; 8751: 8751: QString dateFormat(FormatType format = LongFormat) const; 8751: QString timeFormat(FormatType format = LongFormat) const; 8751: QString dateTimeFormat(FormatType format = LongFormat) const; 8751: 8751: QDate toDate(const QString &string, FormatType = LongFormat) const; 8751: QTime toTime(const QString &string, FormatType = LongFormat) const; 8751: QDateTime toDateTime(const QString &string, FormatType format = LongFormat) const; 8751: QDate toDate(const QString &string, const QString &format) const; 8751: QTime toTime(const QString &string, const QString &format) const; 8751: QDateTime toDateTime(const QString &string, const QString &format) const; 8751: 8751: 8751: 8751: 8751: QChar decimalPoint() const; 8751: QChar groupSeparator() const; 8751: QChar percent() const; 8751: QChar zeroDigit() const; 8751: QChar negativeSign() const; 8751: QChar positiveSign() const; 8751: QChar exponential() const; 8751: 8751: QString monthName(int, FormatType format = LongFormat) const; 8751: QString standaloneMonthName(int, FormatType format = LongFormat) const; 8751: QString dayName(int, FormatType format = LongFormat) const; 8751: QString standaloneDayName(int, FormatType format = LongFormat) const; 8751: 8751: Qt::DayOfWeek firstDayOfWeek() const; 8751: QList weekdays() const; 8751: 8751: QString amText() const; 8751: QString pmText() const; 8751: 8751: MeasurementSystem measurementSystem() const; 8751: 8751: Qt::LayoutDirection textDirection() const; 8751: 8751: QString toUpper(const QString &str) const; 8751: QString toLower(const QString &str) const; 8751: 8751: QString currencySymbol(CurrencySymbolFormat = CurrencySymbol) const; 8751: QString toCurrencyString(qlonglong, const QString &symbol = QString()) const; 8751: QString toCurrencyString(qulonglong, const QString &symbol = QString()) const; 8751: inline QString toCurrencyString(short, const QString &symbol = QString()) const; 8751: inline QString toCurrencyString(ushort, const QString &symbol = QString()) const; 8751: inline QString toCurrencyString(int, const QString &symbol = QString()) const; 8751: inline QString toCurrencyString(uint, const QString &symbol = QString()) const; 8751: 8751: 8751: 8751: 8751: 8751: QString toCurrencyString(double, const QString &symbol = QString()) const; 8751: QString toCurrencyString(double, const QString &symbol, int precision) const; 8751: inline QString toCurrencyString(float i, const QString &symbol = QString()) const 8751: { return toCurrencyString(double(i), symbol); } 8751: inline QString toCurrencyString(float i, const QString &symbol, int precision) const 8751: { return toCurrencyString(double(i), symbol, precision); } 8751: 8751: 8751: QStringList uiLanguages() const; 8751: 8751: bool operator==(const QLocale &other) const; 8751: bool operator!=(const QLocale &other) const; 8751: 8751: static QString languageToString(Language language); 8751: static QString countryToString(Country country); 8751: static QString scriptToString(Script script); 8751: static void setDefault(const QLocale &locale); 8751: 8751: static QLocale c() { return QLocale(C); } 8751: static QLocale system(); 8751: 8751: static QList matchingLocales(QLocale::Language language, QLocale::Script script, QLocale::Country country); 8751: static QList countriesForLanguage(Language lang); 8751: 8751: void setNumberOptions(NumberOptions options); 8751: NumberOptions numberOptions() const; 8751: 8751: enum QuotationStyle { StandardQuotation, AlternateQuotation }; 8751: QString quoteString(const QString &str, QuotationStyle style = StandardQuotation) const; 8751: QString quoteString(const QStringRef &str, QuotationStyle style = StandardQuotation) const; 8751: 8751: QString createSeparatedList(const QStringList &strl) const; 8751: 8751: private: 8751: QLocale(QLocalePrivate &dd); 8751: friend class QLocalePrivate; 8751: friend __attribute__((visibility("default"))) uint qHash(const QLocale &key, uint seed) noexcept; 8751: 8751: QSharedDataPointer d; 8751: }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QLocale)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QLocale >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QLocale) }; static inline const char *name() { return "QLocale"; } }; inline void swap(QLocale &value1, QLocale &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8751: constexpr inline QFlags operator|(QLocale::NumberOptions::enum_type f1, QLocale::NumberOptions::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QLocale::NumberOptions::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QLocale::NumberOptions::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: 8751: inline QString QLocale::toString(short i) const 8751: { return toString(qlonglong(i)); } 8751: inline QString QLocale::toString(ushort i) const 8751: { return toString(qulonglong(i)); } 8751: inline QString QLocale::toString(int i) const 8751: { return toString(qlonglong(i)); } 8751: inline QString QLocale::toString(uint i) const 8751: { return toString(qulonglong(i)); } 8751: inline QString QLocale::toString(float i, char f, int prec) const 8751: { return toString(double(i), f, prec); } 8751: 8751: inline QString QLocale::toCurrencyString(short i, const QString &symbol) const 8751: { return toCurrencyString(qlonglong(i), symbol); } 8751: inline QString QLocale::toCurrencyString(ushort i, const QString &symbol) const 8751: { return toCurrencyString(qulonglong(i), symbol); } 8751: inline QString QLocale::toCurrencyString(int i, const QString &symbol) const 8751: { return toCurrencyString(qlonglong(i), symbol); } 8751: inline QString QLocale::toCurrencyString(uint i, const QString &symbol) const 8751: { return toCurrencyString(qulonglong(i), symbol); } 8751: 8751: 8751: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QLocale &); 8751: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QLocale &); 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QLocale &); 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QLocale" 2 3 4 8751: # 27 "/<>/templates/lib/abstractlocalizer.h" 2 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QSharedPointer" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer.h" 1 3 4 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 1 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer.h" 2 3 4 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer_impl.h" 1 3 4 8751: # 63 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer_impl.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qatomic.h" 1 3 4 8751: # 64 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer_impl.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: # 90 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer_impl.h" 3 4 8751: template class QWeakPointer; 8751: template class QSharedPointer; 8751: template class QEnableSharedFromThis; 8751: 8751: class QVariant; 8751: 8751: template 8751: QSharedPointer qSharedPointerCast(const QSharedPointer &ptr); 8751: template 8751: QSharedPointer qSharedPointerDynamicCast(const QSharedPointer &ptr); 8751: template 8751: QSharedPointer qSharedPointerConstCast(const QSharedPointer &ptr); 8751: 8751: 8751: template 8751: QSharedPointer qSharedPointerObjectCast(const QSharedPointer &ptr); 8751: 8751: 8751: namespace QtSharedPointer { 8751: template class ExternalRefCount; 8751: 8751: template QSharedPointer copyAndSetPointer(X * ptr, const QSharedPointer &src); 8751: 8751: 8751: __attribute__((visibility("default"))) void internalSafetyCheckAdd(const void *, const volatile void *); 8751: __attribute__((visibility("default"))) void internalSafetyCheckRemove(const void *); 8751: 8751: template 8751: inline void executeDeleter(T *t, RetVal (Klass:: *memberDeleter)()) 8751: { (t->*memberDeleter)(); } 8751: template 8751: inline void executeDeleter(T *t, Deleter d) 8751: { d(t); } 8751: struct NormalDeleter {}; 8751: 8751: 8751: template struct RemovePointer; 8751: template struct RemovePointer { typedef T Type; }; 8751: template struct RemovePointer > { typedef T Type; }; 8751: template struct RemovePointer > { typedef T Type; }; 8751: # 141 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer_impl.h" 3 4 8751: struct ExternalRefCountData 8751: { 8751: typedef void (*DestroyerFn)(ExternalRefCountData *); 8751: QBasicAtomicInt weakref; 8751: QBasicAtomicInt strongref; 8751: DestroyerFn destroyer; 8751: 8751: inline ExternalRefCountData(DestroyerFn d) 8751: : destroyer(d) 8751: { 8751: strongref.store(1); 8751: weakref.store(1); 8751: } 8751: inline ExternalRefCountData(Qt::Initialization) { } 8751: ~ExternalRefCountData() { do { } while ((false) && (!weakref.load())); do { } while ((false) && (strongref.load() <= 0)); } 8751: 8751: void destroy() { destroyer(this); } 8751: 8751: 8751: __attribute__((visibility("default"))) static ExternalRefCountData *getAndRef(const QObject *); 8751: __attribute__((visibility("default"))) void setQObjectShared(const QObject *, bool enable); 8751: __attribute__((visibility("default"))) void checkQObjectShared(const QObject *); 8751: 8751: inline void checkQObjectShared(...) { } 8751: inline void setQObjectShared(...) { } 8751: 8751: inline void operator delete(void *ptr) { ::operator delete(ptr); } 8751: inline void operator delete(void *, void *) { } 8751: }; 8751: 8751: 8751: template 8751: struct CustomDeleter 8751: { 8751: Deleter deleter; 8751: T *ptr; 8751: 8751: CustomDeleter(T *p, Deleter d) : deleter(d), ptr(p) {} 8751: void execute() { executeDeleter(ptr, deleter); } 8751: }; 8751: # 189 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer_impl.h" 3 4 8751: template 8751: struct CustomDeleter 8751: { 8751: T *ptr; 8751: 8751: CustomDeleter(T *p, NormalDeleter) : ptr(p) {} 8751: void execute() { delete ptr; } 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct ExternalRefCountWithCustomDeleter: public ExternalRefCountData 8751: { 8751: typedef ExternalRefCountWithCustomDeleter Self; 8751: typedef ExternalRefCountData BaseClass; 8751: CustomDeleter extra; 8751: 8751: static inline void deleter(ExternalRefCountData *self) 8751: { 8751: Self *realself = static_cast(self); 8751: realself->extra.execute(); 8751: 8751: 8751: realself->extra.~CustomDeleter(); 8751: } 8751: static void safetyCheckDeleter(ExternalRefCountData *self) 8751: { 8751: internalSafetyCheckRemove(self); 8751: deleter(self); 8751: } 8751: 8751: static inline Self *create(T *ptr, Deleter userDeleter, DestroyerFn actualDeleter) 8751: { 8751: Self *d = static_cast(::operator new(sizeof(Self))); 8751: 8751: 8751: new (&d->extra) CustomDeleter(ptr, userDeleter); 8751: new (d) BaseClass(actualDeleter); 8751: 8751: return d; 8751: } 8751: private: 8751: 8751: ExternalRefCountWithCustomDeleter() = delete; 8751: ~ExternalRefCountWithCustomDeleter() = delete; 8751: ExternalRefCountWithCustomDeleter(const ExternalRefCountWithCustomDeleter &) = delete; ExternalRefCountWithCustomDeleter &operator=(const ExternalRefCountWithCustomDeleter &) = delete; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: template 8751: struct ExternalRefCountWithContiguousData: public ExternalRefCountData 8751: { 8751: typedef ExternalRefCountData Parent; 8751: T data; 8751: 8751: static void deleter(ExternalRefCountData *self) 8751: { 8751: ExternalRefCountWithContiguousData *that = 8751: static_cast(self); 8751: that->data.~T(); 8751: (void)that;; 8751: } 8751: static void safetyCheckDeleter(ExternalRefCountData *self) 8751: { 8751: internalSafetyCheckRemove(self); 8751: deleter(self); 8751: } 8751: static void noDeleter(ExternalRefCountData *) { } 8751: 8751: static inline ExternalRefCountData *create(T **ptr, DestroyerFn destroy) 8751: { 8751: ExternalRefCountWithContiguousData *d = 8751: static_cast(::operator new(sizeof(ExternalRefCountWithContiguousData))); 8751: 8751: 8751: 8751: new (d) Parent(destroy); 8751: 8751: *ptr = &d->data; 8751: return d; 8751: } 8751: 8751: private: 8751: 8751: ExternalRefCountWithContiguousData() = delete; 8751: ~ExternalRefCountWithContiguousData() = delete; 8751: ExternalRefCountWithContiguousData(const ExternalRefCountWithContiguousData &) = delete; ExternalRefCountWithContiguousData &operator=(const ExternalRefCountWithContiguousData &) = delete; 8751: }; 8751: 8751: 8751: __attribute__((visibility("default"))) QWeakPointer weakPointerFromVariant_internal(const QVariant &variant); 8751: __attribute__((visibility("default"))) QSharedPointer sharedPointerFromVariant_internal(const QVariant &variant); 8751: 8751: } 8751: 8751: template class QSharedPointer 8751: { 8751: typedef T *QSharedPointer:: *RestrictedBool; 8751: typedef QtSharedPointer::ExternalRefCountData Data; 8751: public: 8751: typedef T Type; 8751: typedef T element_type; 8751: typedef T value_type; 8751: typedef value_type *pointer; 8751: typedef const value_type *const_pointer; 8751: typedef value_type &reference; 8751: typedef const value_type &const_reference; 8751: typedef qptrdiff difference_type; 8751: 8751: T *data() const noexcept { return value; } 8751: bool isNull() const noexcept { return !data(); } 8751: operator RestrictedBool() const noexcept { return isNull() ? nullptr : &QSharedPointer::value; } 8751: bool operator !() const noexcept { return isNull(); } 8751: T &operator*() const { return *data(); } 8751: T *operator->() const noexcept { return data(); } 8751: 8751: constexpr QSharedPointer() noexcept : value(nullptr), d(nullptr) { } 8751: ~QSharedPointer() { deref(); } 8751: 8751: constexpr QSharedPointer(std::nullptr_t) noexcept : value(nullptr), d(nullptr) { } 8751: 8751: template 8751: inline explicit QSharedPointer(X *ptr) : value(ptr) 8751: { internalConstruct(ptr, QtSharedPointer::NormalDeleter()); } 8751: 8751: template 8751: inline QSharedPointer(X *ptr, Deleter deleter) : value(ptr) 8751: { internalConstruct(ptr, deleter); } 8751: 8751: template 8751: QSharedPointer(std::nullptr_t, Deleter) : value(nullptr), d(nullptr) { } 8751: 8751: QSharedPointer(const QSharedPointer &other) noexcept : value(other.value), d(other.d) 8751: { if (d) ref(); } 8751: QSharedPointer &operator=(const QSharedPointer &other) noexcept 8751: { 8751: QSharedPointer copy(other); 8751: swap(copy); 8751: return *this; 8751: } 8751: 8751: QSharedPointer(QSharedPointer &&other) noexcept 8751: : value(other.value), d(other.d) 8751: { 8751: other.d = nullptr; 8751: other.value = nullptr; 8751: } 8751: QSharedPointer &operator=(QSharedPointer &&other) noexcept 8751: { 8751: QSharedPointer moved(std::move(other)); 8751: swap(moved); 8751: return *this; 8751: } 8751: 8751: template 8751: QSharedPointer(QSharedPointer &&other) noexcept 8751: : value(other.value), d(other.d) 8751: { 8751: other.d = nullptr; 8751: other.value = nullptr; 8751: } 8751: 8751: template 8751: QSharedPointer &operator=(QSharedPointer &&other) noexcept 8751: { 8751: QSharedPointer moved(std::move(other)); 8751: swap(moved); 8751: return *this; 8751: } 8751: 8751: 8751: 8751: template 8751: QSharedPointer(const QSharedPointer &other) noexcept : value(other.value), d(other.d) 8751: { if (d) ref(); } 8751: 8751: template 8751: inline QSharedPointer &operator=(const QSharedPointer &other) 8751: { 8751: QSharedPointer copy(other); 8751: swap(copy); 8751: return *this; 8751: } 8751: 8751: template 8751: inline QSharedPointer(const QWeakPointer &other) : value(nullptr), d(nullptr) 8751: { *this = other; } 8751: 8751: template 8751: inline QSharedPointer &operator=(const QWeakPointer &other) 8751: { internalSet(other.d, other.value); return *this; } 8751: 8751: inline void swap(QSharedPointer &other) 8751: { this->internalSwap(other); } 8751: 8751: inline void reset() { clear(); } 8751: inline void reset(T *t) 8751: { QSharedPointer copy(t); swap(copy); } 8751: template 8751: inline void reset(T *t, Deleter deleter) 8751: { QSharedPointer copy(t, deleter); swap(copy); } 8751: 8751: template 8751: QSharedPointer staticCast() const 8751: { 8751: return qSharedPointerCast(*this); 8751: } 8751: 8751: template 8751: QSharedPointer dynamicCast() const 8751: { 8751: return qSharedPointerDynamicCast(*this); 8751: } 8751: 8751: template 8751: QSharedPointer constCast() const 8751: { 8751: return qSharedPointerConstCast(*this); 8751: } 8751: 8751: 8751: template 8751: QSharedPointer objectCast() const 8751: { 8751: return qSharedPointerObjectCast(*this); 8751: } 8751: 8751: 8751: inline void clear() { QSharedPointer copy; swap(copy); } 8751: 8751: QWeakPointer toWeakRef() const; 8751: 8751: template 8751: static QSharedPointer create(Args && ...arguments) 8751: { 8751: typedef QtSharedPointer::ExternalRefCountWithContiguousData Private; 8751: 8751: 8751: 8751: typename Private::DestroyerFn destroy = &Private::deleter; 8751: 8751: typename Private::DestroyerFn noDestroy = &Private::noDeleter; 8751: QSharedPointer result(Qt::Uninitialized); 8751: result.d = Private::create(&result.value, noDestroy); 8751: 8751: 8751: new (result.data()) T(std::forward(arguments)...); 8751: result.d->destroyer = destroy; 8751: result.d->setQObjectShared(result.value, true); 8751: 8751: 8751: 8751: result.enableSharedFromThis(result.data()); 8751: return result; 8751: } 8751: 8751: private: 8751: explicit QSharedPointer(Qt::Initialization) {} 8751: 8751: void deref() noexcept 8751: { deref(d); } 8751: static void deref(Data *dd) noexcept 8751: { 8751: if (!dd) return; 8751: if (!dd->strongref.deref()) { 8751: dd->destroy(); 8751: } 8751: if (!dd->weakref.deref()) 8751: delete dd; 8751: } 8751: 8751: template 8751: inline void enableSharedFromThis(const QEnableSharedFromThis *ptr) 8751: { 8751: ptr->initializeFromSharedPointer(constCast::type>()); 8751: } 8751: 8751: inline void enableSharedFromThis(...) {} 8751: 8751: template 8751: inline void internalConstruct(X *ptr, Deleter deleter) 8751: { 8751: if (!ptr) { 8751: d = nullptr; 8751: return; 8751: } 8751: 8751: typedef QtSharedPointer::ExternalRefCountWithCustomDeleter Private; 8751: 8751: 8751: 8751: typename Private::DestroyerFn actualDeleter = &Private::deleter; 8751: 8751: d = Private::create(ptr, deleter, actualDeleter); 8751: 8751: 8751: 8751: 8751: d->setQObjectShared(ptr, true); 8751: enableSharedFromThis(ptr); 8751: } 8751: 8751: void internalSwap(QSharedPointer &other) noexcept 8751: { 8751: qSwap(d, other.d); 8751: qSwap(this->value, other.value); 8751: } 8751: 8751: 8751: 8751: 8751: template friend class QSharedPointer; 8751: template friend class QWeakPointer; 8751: template friend QSharedPointer QtSharedPointer::copyAndSetPointer(X * ptr, const QSharedPointer &src); 8751: 8751: void ref() const noexcept { d->weakref.ref(); d->strongref.ref(); } 8751: 8751: inline void internalSet(Data *o, T *actual) 8751: { 8751: if (o) { 8751: 8751: 8751: int tmp = o->strongref.load(); 8751: while (tmp > 0) { 8751: 8751: if (o->strongref.testAndSetRelaxed(tmp, tmp + 1)) 8751: break; 8751: tmp = o->strongref.load(); 8751: } 8751: 8751: if (tmp > 0) { 8751: o->weakref.ref(); 8751: } else { 8751: o->checkQObjectShared(actual); 8751: o = nullptr; 8751: } 8751: } 8751: 8751: qSwap(d, o); 8751: qSwap(this->value, actual); 8751: if (!d || d->strongref.load() == 0) 8751: this->value = nullptr; 8751: 8751: 8751: deref(o); 8751: } 8751: 8751: Type *value; 8751: Data *d; 8751: }; 8751: 8751: template 8751: class QWeakPointer 8751: { 8751: typedef T *QWeakPointer:: *RestrictedBool; 8751: typedef QtSharedPointer::ExternalRefCountData Data; 8751: 8751: public: 8751: typedef T element_type; 8751: typedef T value_type; 8751: typedef value_type *pointer; 8751: typedef const value_type *const_pointer; 8751: typedef value_type &reference; 8751: typedef const value_type &const_reference; 8751: typedef qptrdiff difference_type; 8751: 8751: bool isNull() const noexcept { return d == nullptr || d->strongref.load() == 0 || value == nullptr; } 8751: operator RestrictedBool() const noexcept { return isNull() ? nullptr : &QWeakPointer::value; } 8751: bool operator !() const noexcept { return isNull(); } 8751: T *data() const noexcept { return d == nullptr || d->strongref.load() == 0 ? nullptr : value; } 8751: 8751: inline QWeakPointer() noexcept : d(nullptr), value(nullptr) { } 8751: inline ~QWeakPointer() { if (d && !d->weakref.deref()) delete d; } 8751: # 585 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer_impl.h" 3 4 8751: QWeakPointer(const QWeakPointer &other) noexcept : d(other.d), value(other.value) 8751: { if (d) d->weakref.ref(); } 8751: 8751: QWeakPointer(QWeakPointer &&other) noexcept 8751: : d(other.d), value(other.value) 8751: { 8751: other.d = nullptr; 8751: other.value = nullptr; 8751: } 8751: QWeakPointer &operator=(QWeakPointer &&other) noexcept 8751: { QWeakPointer moved(std::move(other)); swap(moved); return *this; } 8751: 8751: QWeakPointer &operator=(const QWeakPointer &other) noexcept 8751: { 8751: QWeakPointer copy(other); 8751: swap(copy); 8751: return *this; 8751: } 8751: 8751: void swap(QWeakPointer &other) noexcept 8751: { 8751: qSwap(this->d, other.d); 8751: qSwap(this->value, other.value); 8751: } 8751: 8751: inline QWeakPointer(const QSharedPointer &o) : d(o.d), value(o.data()) 8751: { if (d) d->weakref.ref();} 8751: inline QWeakPointer &operator=(const QSharedPointer &o) 8751: { 8751: internalSet(o.d, o.value); 8751: return *this; 8751: } 8751: 8751: template 8751: inline QWeakPointer(const QWeakPointer &o) : d(nullptr), value(nullptr) 8751: { *this = o; } 8751: 8751: template 8751: inline QWeakPointer &operator=(const QWeakPointer &o) 8751: { 8751: 8751: 8751: *this = o.toStrongRef(); 8751: return *this; 8751: } 8751: 8751: template 8751: bool operator==(const QWeakPointer &o) const noexcept 8751: { return d == o.d && value == static_cast(o.value); } 8751: 8751: template 8751: bool operator!=(const QWeakPointer &o) const noexcept 8751: { return !(*this == o); } 8751: 8751: template 8751: inline QWeakPointer(const QSharedPointer &o) : d(nullptr), value(nullptr) 8751: { *this = o; } 8751: 8751: template 8751: inline QWeakPointer &operator=(const QSharedPointer &o) 8751: { 8751: qt_noop(); 8751: internalSet(o.d, o.data()); 8751: return *this; 8751: } 8751: 8751: template 8751: bool operator==(const QSharedPointer &o) const noexcept 8751: { return d == o.d; } 8751: 8751: template 8751: bool operator!=(const QSharedPointer &o) const noexcept 8751: { return !(*this == o); } 8751: 8751: inline void clear() { *this = QWeakPointer(); } 8751: 8751: inline QSharedPointer toStrongRef() const { return QSharedPointer(*this); } 8751: 8751: inline QSharedPointer lock() const { return toStrongRef(); } 8751: 8751: 8751: 8751: 8751: 8751: private: 8751: 8751: 8751: 8751: 8751: template friend class QSharedPointer; 8751: template friend class QPointer; 8751: 8751: 8751: template 8751: inline QWeakPointer &assign(X *ptr) 8751: { return *this = QWeakPointer(ptr, true); } 8751: 8751: 8751: template 8751: inline QWeakPointer(X *ptr, bool) : d(ptr ? Data::getAndRef(ptr) : nullptr), value(ptr) 8751: { } 8751: 8751: 8751: inline void internalSet(Data *o, T *actual) 8751: { 8751: if (d == o) return; 8751: if (o) 8751: o->weakref.ref(); 8751: if (d && !d->weakref.deref()) 8751: delete d; 8751: d = o; 8751: value = actual; 8751: } 8751: 8751: Data *d; 8751: T *value; 8751: }; 8751: 8751: template 8751: class QEnableSharedFromThis 8751: { 8751: protected: 8751: 8751: QEnableSharedFromThis() = default; 8751: 8751: 8751: 8751: QEnableSharedFromThis(const QEnableSharedFromThis &) {} 8751: QEnableSharedFromThis &operator=(const QEnableSharedFromThis &) { return *this; } 8751: 8751: public: 8751: inline QSharedPointer sharedFromThis() { return QSharedPointer(weakPointer); } 8751: inline QSharedPointer sharedFromThis() const { return QSharedPointer(weakPointer); } 8751: 8751: 8751: private: 8751: template friend class QSharedPointer; 8751: 8751: 8751: 8751: template 8751: inline void initializeFromSharedPointer(const QSharedPointer &ptr) const 8751: { 8751: weakPointer = ptr; 8751: } 8751: 8751: mutable QWeakPointer weakPointer; 8751: }; 8751: 8751: 8751: 8751: 8751: template 8751: bool operator==(const QSharedPointer &ptr1, const QSharedPointer &ptr2) noexcept 8751: { 8751: return ptr1.data() == ptr2.data(); 8751: } 8751: template 8751: bool operator!=(const QSharedPointer &ptr1, const QSharedPointer &ptr2) noexcept 8751: { 8751: return ptr1.data() != ptr2.data(); 8751: } 8751: 8751: template 8751: bool operator==(const QSharedPointer &ptr1, const X *ptr2) noexcept 8751: { 8751: return ptr1.data() == ptr2; 8751: } 8751: template 8751: bool operator==(const T *ptr1, const QSharedPointer &ptr2) noexcept 8751: { 8751: return ptr1 == ptr2.data(); 8751: } 8751: template 8751: bool operator!=(const QSharedPointer &ptr1, const X *ptr2) noexcept 8751: { 8751: return !(ptr1 == ptr2); 8751: } 8751: template 8751: bool operator!=(const T *ptr1, const QSharedPointer &ptr2) noexcept 8751: { 8751: return !(ptr2 == ptr1); 8751: } 8751: 8751: template 8751: bool operator==(const QSharedPointer &ptr1, const QWeakPointer &ptr2) noexcept 8751: { 8751: return ptr2 == ptr1; 8751: } 8751: template 8751: bool operator!=(const QSharedPointer &ptr1, const QWeakPointer &ptr2) noexcept 8751: { 8751: return ptr2 != ptr1; 8751: } 8751: 8751: template 8751: inline bool operator==(const QSharedPointer &lhs, std::nullptr_t) noexcept 8751: { 8751: return lhs.isNull(); 8751: } 8751: 8751: template 8751: inline bool operator!=(const QSharedPointer &lhs, std::nullptr_t) noexcept 8751: { 8751: return !lhs.isNull(); 8751: } 8751: 8751: template 8751: inline bool operator==(std::nullptr_t, const QSharedPointer &rhs) noexcept 8751: { 8751: return rhs.isNull(); 8751: } 8751: 8751: template 8751: inline bool operator!=(std::nullptr_t, const QSharedPointer &rhs) noexcept 8751: { 8751: return !rhs.isNull(); 8751: } 8751: 8751: template 8751: inline bool operator==(const QWeakPointer &lhs, std::nullptr_t) noexcept 8751: { 8751: return lhs.isNull(); 8751: } 8751: 8751: template 8751: inline bool operator!=(const QWeakPointer &lhs, std::nullptr_t) noexcept 8751: { 8751: return !lhs.isNull(); 8751: } 8751: 8751: template 8751: inline bool operator==(std::nullptr_t, const QWeakPointer &rhs) noexcept 8751: { 8751: return rhs.isNull(); 8751: } 8751: 8751: template 8751: inline bool operator!=(std::nullptr_t, const QWeakPointer &rhs) noexcept 8751: { 8751: return !rhs.isNull(); 8751: } 8751: 8751: 8751: 8751: 8751: template 8751: inline typename QSharedPointer::difference_type operator-(const QSharedPointer &ptr1, const QSharedPointer &ptr2) 8751: { 8751: return ptr1.data() - ptr2.data(); 8751: } 8751: template 8751: inline typename QSharedPointer::difference_type operator-(const QSharedPointer &ptr1, X *ptr2) 8751: { 8751: return ptr1.data() - ptr2; 8751: } 8751: template 8751: inline typename QSharedPointer::difference_type operator-(T *ptr1, const QSharedPointer &ptr2) 8751: { 8751: return ptr1 - ptr2.data(); 8751: } 8751: 8751: 8751: 8751: 8751: template 8751: inline bool operator<(const QSharedPointer &ptr1, const QSharedPointer &ptr2) 8751: { 8751: using CT = typename std::common_type::type; 8751: return std::less()(ptr1.data(), ptr2.data()); 8751: } 8751: template 8751: inline bool operator<(const QSharedPointer &ptr1, X *ptr2) 8751: { 8751: using CT = typename std::common_type::type; 8751: return std::less()(ptr1.data(), ptr2); 8751: } 8751: template 8751: inline bool operator<(T *ptr1, const QSharedPointer &ptr2) 8751: { 8751: using CT = typename std::common_type::type; 8751: return std::less()(ptr1, ptr2.data()); 8751: } 8751: 8751: 8751: 8751: 8751: template 8751: inline uint qHash(const QSharedPointer &ptr, uint seed = 0) 8751: { 8751: return ::qHash(ptr.data(), seed); 8751: } 8751: 8751: 8751: template 8751: inline QWeakPointer QSharedPointer::toWeakRef() const 8751: { 8751: return QWeakPointer(*this); 8751: } 8751: 8751: template 8751: inline void qSwap(QSharedPointer &p1, QSharedPointer &p2) 8751: { 8751: p1.swap(p2); 8751: } 8751: 8751: 8751: namespace std { 8751: template 8751: inline void swap(::QSharedPointer &p1, ::QSharedPointer &p2) 8751: { p1.swap(p2); } 8751: } 8751: 8751: 8751: namespace QtSharedPointer { 8751: 8751: template 8751: inline QSharedPointer copyAndSetPointer(X *ptr, const QSharedPointer &src) 8751: { 8751: QSharedPointer result; 8751: result.internalSet(src.d, ptr); 8751: return result; 8751: } 8751: } 8751: 8751: 8751: template 8751: inline QSharedPointer qSharedPointerCast(const QSharedPointer &src) 8751: { 8751: X *ptr = static_cast(src.data()); 8751: return QtSharedPointer::copyAndSetPointer(ptr, src); 8751: } 8751: template 8751: inline QSharedPointer qSharedPointerCast(const QWeakPointer &src) 8751: { 8751: return qSharedPointerCast(src.toStrongRef()); 8751: } 8751: 8751: template 8751: inline QSharedPointer qSharedPointerDynamicCast(const QSharedPointer &src) 8751: { 8751: X *ptr = dynamic_cast(src.data()); 8751: if (!ptr) 8751: return QSharedPointer(); 8751: return QtSharedPointer::copyAndSetPointer(ptr, src); 8751: } 8751: template 8751: inline QSharedPointer qSharedPointerDynamicCast(const QWeakPointer &src) 8751: { 8751: return qSharedPointerDynamicCast(src.toStrongRef()); 8751: } 8751: 8751: template 8751: inline QSharedPointer qSharedPointerConstCast(const QSharedPointer &src) 8751: { 8751: X *ptr = const_cast(src.data()); 8751: return QtSharedPointer::copyAndSetPointer(ptr, src); 8751: } 8751: template 8751: inline QSharedPointer qSharedPointerConstCast(const QWeakPointer &src) 8751: { 8751: return qSharedPointerConstCast(src.toStrongRef()); 8751: } 8751: 8751: template 8751: inline 8751: QWeakPointer qWeakPointerCast(const QSharedPointer &src) 8751: { 8751: return qSharedPointerCast(src).toWeakRef(); 8751: } 8751: 8751: 8751: template 8751: inline QSharedPointer qSharedPointerObjectCast(const QSharedPointer &src) 8751: { 8751: X *ptr = qobject_cast(src.data()); 8751: return QtSharedPointer::copyAndSetPointer(ptr, src); 8751: } 8751: template 8751: inline QSharedPointer qSharedPointerObjectCast(const QWeakPointer &src) 8751: { 8751: return qSharedPointerObjectCast(src.toStrongRef()); 8751: } 8751: 8751: template 8751: inline QSharedPointer::Type> 8751: qobject_cast(const QSharedPointer &src) 8751: { 8751: return qSharedPointerObjectCast::Type, T>(src); 8751: } 8751: template 8751: inline QSharedPointer::Type> 8751: qobject_cast(const QWeakPointer &src) 8751: { 8751: return qSharedPointerObjectCast::Type, T>(src); 8751: } 8751: 8751: template 8751: QWeakPointer::Value, T>::type> 8751: qWeakPointerFromVariant(const QVariant &variant) 8751: { 8751: return QWeakPointer(qobject_cast(QtSharedPointer::weakPointerFromVariant_internal(variant).data())); 8751: } 8751: template 8751: QSharedPointer::Value, T>::type> 8751: qSharedPointerFromVariant(const QVariant &variant) 8751: { 8751: return qSharedPointerObjectCast(QtSharedPointer::sharedPointerFromVariant_internal(variant)); 8751: } 8751: 8751: 8751: 8751: template class QTypeInfo > { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QWeakPointer)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QWeakPointer >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QWeakPointer) }; static inline const char *name() { return "QWeakPointer"; } }; 8751: template class QTypeInfo > { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QSharedPointer)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QSharedPointer >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QSharedPointer) }; static inline const char *name() { return "QSharedPointer"; } }; 8751: 8751: 8751: 8751: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QSharedPointer" 2 3 4 8751: # 28 "/<>/templates/lib/abstractlocalizer.h" 2 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVariantList" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvariant.h" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVariantList" 2 3 4 8751: # 29 "/<>/templates/lib/abstractlocalizer.h" 2 8751: 8751: 8751: # 30 "/<>/templates/lib/abstractlocalizer.h" 8751: class QDateTime; 8751: 8751: namespace Grantlee 8751: { 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: class __attribute__((visibility("default"))) AbstractLocalizer 8751: { 8751: public: 8751: 8751: 8751: 8751: AbstractLocalizer(); 8751: 8751: 8751: 8751: 8751: virtual ~AbstractLocalizer(); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: virtual QString localize(const QVariant &variant) const; 8751: 8751: 8751: 8751: 8751: virtual QString currentLocale() const = 0; 8751: 8751: 8751: 8751: 8751: virtual void pushLocale(const QString &localeName) = 0; 8751: 8751: 8751: 8751: 8751: virtual void popLocale() = 0; 8751: 8751: 8751: 8751: 8751: virtual void loadCatalog(const QString &path, const QString &catalog) = 0; 8751: 8751: 8751: 8751: 8751: virtual void unloadCatalog(const QString &catalog) = 0; 8751: 8751: 8751: 8751: 8751: virtual QString localizeNumber(int number) const = 0; 8751: 8751: 8751: 8751: 8751: virtual QString localizeNumber(qreal number) const = 0; 8751: 8751: 8751: 8751: 8751: 8751: virtual QString localizeMonetaryValue(qreal value, const QString ¤cyCode 8751: = QString()) const = 0; 8751: 8751: 8751: 8751: 8751: virtual QString localizeDate(const QDate &date, 8751: QLocale::FormatType formatType 8751: = QLocale::ShortFormat) const = 0; 8751: 8751: 8751: 8751: 8751: virtual QString localizeTime(const QTime &time, 8751: QLocale::FormatType formatType 8751: = QLocale::ShortFormat) const = 0; 8751: 8751: 8751: 8751: 8751: virtual QString localizeDateTime(const QDateTime &dateTime, 8751: QLocale::FormatType formatType 8751: = QLocale::ShortFormat) const = 0; 8751: 8751: 8751: 8751: 8751: virtual QString localizeString(const QString &string, 8751: const QVariantList &arguments 8751: = QVariantList()) const = 0; 8751: 8751: 8751: 8751: 8751: 8751: virtual QString localizeContextString(const QString &string, 8751: const QString &context, 8751: const QVariantList &arguments 8751: = QVariantList()) const = 0; 8751: 8751: 8751: 8751: 8751: 8751: 8751: virtual QString localizePluralString(const QString &string, 8751: const QString &pluralForm, 8751: const QVariantList &arguments 8751: = QVariantList()) const = 0; 8751: 8751: 8751: 8751: 8751: 8751: virtual QString localizePluralContextString(const QString &string, 8751: const QString &pluralForm, 8751: const QString &context, 8751: const QVariantList &arguments 8751: = QVariantList()) const = 0; 8751: 8751: private: 8751: AbstractLocalizer 8751: # 162 "/<>/templates/lib/abstractlocalizer.h" 3 4 8751: (const 8751: # 162 "/<>/templates/lib/abstractlocalizer.h" 8751: AbstractLocalizer 8751: # 162 "/<>/templates/lib/abstractlocalizer.h" 3 4 8751: &) = delete; 8751: # 162 "/<>/templates/lib/abstractlocalizer.h" 8751: AbstractLocalizer 8751: # 162 "/<>/templates/lib/abstractlocalizer.h" 3 4 8751: &operator=(const 8751: # 162 "/<>/templates/lib/abstractlocalizer.h" 8751: AbstractLocalizer 8751: # 162 "/<>/templates/lib/abstractlocalizer.h" 3 4 8751: &) = delete; 8751: 8751: # 163 "/<>/templates/lib/abstractlocalizer.h" 8751: }; 8751: } 8751: # 25 "/<>/templates/lib/context.h" 2 8751: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8751: # 26 "/<>/templates/lib/context.h" 2 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVariantHash" 1 3 4 8751: # 28 "/<>/templates/lib/context.h" 2 8751: 8751: namespace Grantlee 8751: { 8751: 8751: class RenderContext; 8751: 8751: class ContextPrivate; 8751: # 117 "/<>/templates/lib/context.h" 8751: class __attribute__((visibility("default"))) Context 8751: { 8751: public: 8751: 8751: 8751: 8751: Context(); 8751: 8751: 8751: 8751: 8751: explicit Context(const QVariantHash &hash); 8751: 8751: 8751: 8751: 8751: Context(const Context &other); 8751: 8751: 8751: 8751: 8751: Context &operator=(const Context &other); 8751: # 147 "/<>/templates/lib/context.h" 8751: bool autoEscape() const; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: void setAutoEscape(bool autoescape); 8751: 8751: 8751: 8751: 8751: ~Context(); 8751: 8751: 8751: 8751: 8751: QVariant lookup(const QString &str) const; 8751: 8751: 8751: 8751: 8751: 8751: void insert(const QString &name, QObject *object); 8751: 8751: 8751: 8751: 8751: 8751: void insert(const QString &name, const QVariant &variant); 8751: 8751: 8751: 8751: 8751: 8751: void push(); 8751: 8751: 8751: 8751: 8751: 8751: void pop(); 8751: 8751: 8751: 8751: 8751: 8751: QVariantHash stackHash(int depth) const; 8751: 8751: 8751: 8751: 8751: 8751: bool isMutating() const; 8751: 8751: 8751: 8751: 8751: 8751: void setMutating(bool mutating); 8751: 8751: 8751: 8751: 8751: void addExternalMedia(const QString &absolutePart, 8751: const QString &relativePart); 8751: 8751: 8751: 8751: 8751: void clearExternalMedia(); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: void setLocalizer(QSharedPointer localizer); 8751: 8751: 8751: 8751: 8751: QSharedPointer localizer() const; 8751: 8751: 8751: 8751: 8751: QList> externalMedia() const; 8751: 8751: 8751: 8751: 8751: enum UrlType { 8751: AbsoluteUrls, 8751: RelativeUrls 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: void setUrlType(UrlType type); 8751: 8751: 8751: 8751: 8751: UrlType urlType() const; 8751: 8751: 8751: 8751: 8751: 8751: 8751: void setRelativeMediaPath(const QString &relativePath); 8751: 8751: 8751: 8751: 8751: QString relativeMediaPath() const; 8751: # 276 "/<>/templates/lib/context.h" 8751: RenderContext *renderContext() const; 8751: 8751: private: 8751: 8751: # 279 "/<>/templates/lib/context.h" 3 4 8751: inline 8751: # 279 "/<>/templates/lib/context.h" 8751: ContextPrivate 8751: # 279 "/<>/templates/lib/context.h" 3 4 8751: * d_func() { return reinterpret_cast< 8751: # 279 "/<>/templates/lib/context.h" 8751: ContextPrivate 8751: # 279 "/<>/templates/lib/context.h" 3 4 8751: *>(qGetPtrHelper(d_ptr)); } inline const 8751: # 279 "/<>/templates/lib/context.h" 8751: ContextPrivate 8751: # 279 "/<>/templates/lib/context.h" 3 4 8751: * d_func() const { return reinterpret_cast>/templates/lib/context.h" 8751: ContextPrivate 8751: # 279 "/<>/templates/lib/context.h" 3 4 8751: *>(qGetPtrHelper(d_ptr)); } friend class 8751: # 279 "/<>/templates/lib/context.h" 8751: ContextPrivate 8751: # 279 "/<>/templates/lib/context.h" 3 4 8751: ; 8751: 8751: # 280 "/<>/templates/lib/context.h" 8751: ContextPrivate *const d_ptr; 8751: }; 8751: } 8751: # 27 "/<>/templates/lib/node.h" 2 8751: # 1 "/<>/templates/lib/filterexpression.h" 1 8751: # 24 "/<>/templates/lib/filterexpression.h" 8751: # 1 "/<>/templates/lib/variable.h" 1 8751: # 24 "/<>/templates/lib/variable.h" 8751: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8751: # 25 "/<>/templates/lib/variable.h" 2 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVariant" 1 3 4 8751: # 27 "/<>/templates/lib/variable.h" 2 8751: 8751: namespace Grantlee 8751: { 8751: class Context; 8751: 8751: class VariablePrivate; 8751: # 53 "/<>/templates/lib/variable.h" 8751: class __attribute__((visibility("default"))) Variable 8751: { 8751: public: 8751: 8751: 8751: 8751: Variable(); 8751: 8751: 8751: 8751: 8751: explicit Variable(const QString &var); 8751: 8751: 8751: 8751: 8751: Variable(const Variable &other); 8751: 8751: 8751: 8751: 8751: ~Variable(); 8751: 8751: 8751: 8751: 8751: Variable &operator=(const Variable &other); 8751: 8751: 8751: 8751: 8751: bool isValid() const; 8751: 8751: 8751: 8751: 8751: bool isTrue(Context *c) const; 8751: 8751: 8751: 8751: 8751: QVariant resolve(Context *c) const; 8751: # 105 "/<>/templates/lib/variable.h" 8751: bool isConstant() const; 8751: 8751: 8751: 8751: 8751: 8751: bool isLocalized() const; 8751: 8751: 8751: 8751: 8751: 8751: QVariant literal() const; 8751: 8751: 8751: 8751: 8751: QStringList lookups() const; 8751: 8751: private: 8751: 8751: # 125 "/<>/templates/lib/variable.h" 3 4 8751: inline 8751: # 125 "/<>/templates/lib/variable.h" 8751: VariablePrivate 8751: # 125 "/<>/templates/lib/variable.h" 3 4 8751: * d_func() { return reinterpret_cast< 8751: # 125 "/<>/templates/lib/variable.h" 8751: VariablePrivate 8751: # 125 "/<>/templates/lib/variable.h" 3 4 8751: *>(qGetPtrHelper(d_ptr)); } inline const 8751: # 125 "/<>/templates/lib/variable.h" 8751: VariablePrivate 8751: # 125 "/<>/templates/lib/variable.h" 3 4 8751: * d_func() const { return reinterpret_cast>/templates/lib/variable.h" 8751: VariablePrivate 8751: # 125 "/<>/templates/lib/variable.h" 3 4 8751: *>(qGetPtrHelper(d_ptr)); } friend class 8751: # 125 "/<>/templates/lib/variable.h" 8751: VariablePrivate 8751: # 125 "/<>/templates/lib/variable.h" 3 4 8751: ; 8751: 8751: # 126 "/<>/templates/lib/variable.h" 8751: VariablePrivate *const d_ptr; 8751: }; 8751: } 8751: # 25 "/<>/templates/lib/filterexpression.h" 2 8751: 8751: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8751: # 27 "/<>/templates/lib/filterexpression.h" 2 8751: 8751: namespace Grantlee 8751: { 8751: class Filter; 8751: class OutputStream; 8751: class Parser; 8751: struct Token; 8751: 8751: class FilterExpressionPrivate; 8751: # 118 "/<>/templates/lib/filterexpression.h" 8751: class __attribute__((visibility("default"))) FilterExpression 8751: { 8751: public: 8751: 8751: 8751: 8751: FilterExpression(); 8751: 8751: 8751: 8751: 8751: 8751: FilterExpression(const QString &varString, Grantlee::Parser *parser); 8751: 8751: 8751: 8751: 8751: FilterExpression(const FilterExpression &other); 8751: 8751: 8751: 8751: 8751: ~FilterExpression(); 8751: 8751: 8751: 8751: 8751: FilterExpression &operator=(const FilterExpression &other); 8751: 8751: 8751: 8751: 8751: Variable variable() const; 8751: 8751: 8751: 8751: 8751: 8751: QVariant resolve(OutputStream *stream, Context *c) const; 8751: 8751: 8751: 8751: 8751: QVariant resolve(Context *c) const; 8751: 8751: 8751: 8751: 8751: 8751: bool isTrue(Context *c) const; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: QVariantList toList(Context *c) const; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: bool isValid() const; 8751: 8751: 8751: 8751: 8751: 8751: 8751: QStringList filters() const; 8751: 8751: 8751: private: 8751: 8751: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8751: inline 8751: # 194 "/<>/templates/lib/filterexpression.h" 8751: FilterExpressionPrivate 8751: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8751: * d_func() { return reinterpret_cast< 8751: # 194 "/<>/templates/lib/filterexpression.h" 8751: FilterExpressionPrivate 8751: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8751: *>(qGetPtrHelper(d_ptr)); } inline const 8751: # 194 "/<>/templates/lib/filterexpression.h" 8751: FilterExpressionPrivate 8751: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8751: * d_func() const { return reinterpret_cast>/templates/lib/filterexpression.h" 8751: FilterExpressionPrivate 8751: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8751: *>(qGetPtrHelper(d_ptr)); } friend class 8751: # 194 "/<>/templates/lib/filterexpression.h" 8751: FilterExpressionPrivate 8751: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8751: ; 8751: 8751: # 195 "/<>/templates/lib/filterexpression.h" 8751: FilterExpressionPrivate *const d_ptr; 8751: }; 8751: } 8751: # 28 "/<>/templates/lib/node.h" 2 8751: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8751: # 29 "/<>/templates/lib/node.h" 2 8751: # 1 "/<>/templates/lib/outputstream.h" 1 8751: # 24 "/<>/templates/lib/outputstream.h" 8751: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8751: # 25 "/<>/templates/lib/outputstream.h" 2 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QSharedPointer" 1 3 4 8751: # 27 "/<>/templates/lib/outputstream.h" 2 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QTextStream" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtextstream.h" 1 3 4 8751: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtextstream.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 1 3 4 8751: # 56 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8751: 8751: 8751: 8751: 8751: # 59 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8751: class QByteArray; 8751: class QIODevicePrivate; 8751: 8751: class __attribute__((visibility("default"))) QIODevice 8751: 8751: : public QObject 8751: 8751: { 8751: 8751: public: 8751: # 68 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8751: #pragma GCC diagnostic push 8751: # 68 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8751: 8751: # 68 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8751: #pragma GCC diagnostic ignored "-Wsuggest-override" 8751: # 68 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8751: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8751: # 68 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8751: #pragma GCC diagnostic ignored "-Wattributes" 8751: # 68 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8751: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8751: # 68 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8751: #pragma GCC diagnostic pop 8751: # 68 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qiodevice.h" 3 4 8751: struct QPrivateSignal {}; 8751: 8751: public: 8751: enum OpenModeFlag { 8751: NotOpen = 0x0000, 8751: ReadOnly = 0x0001, 8751: WriteOnly = 0x0002, 8751: ReadWrite = ReadOnly | WriteOnly, 8751: Append = 0x0004, 8751: Truncate = 0x0008, 8751: Text = 0x0010, 8751: Unbuffered = 0x0020 8751: }; 8751: typedef QFlags OpenMode; 8751: 8751: QIODevice(); 8751: 8751: explicit QIODevice(QObject *parent); 8751: 8751: virtual ~QIODevice(); 8751: 8751: OpenMode openMode() const; 8751: 8751: void setTextModeEnabled(bool enabled); 8751: bool isTextModeEnabled() const; 8751: 8751: bool isOpen() const; 8751: bool isReadable() const; 8751: bool isWritable() const; 8751: virtual bool isSequential() const; 8751: 8751: int readChannelCount() const; 8751: int writeChannelCount() const; 8751: int currentReadChannel() const; 8751: void setCurrentReadChannel(int channel); 8751: int currentWriteChannel() const; 8751: void setCurrentWriteChannel(int channel); 8751: 8751: virtual bool open(OpenMode mode); 8751: virtual void close(); 8751: 8751: 8751: 8751: virtual qint64 pos() const; 8751: virtual qint64 size() const; 8751: virtual bool seek(qint64 pos); 8751: virtual bool atEnd() const; 8751: virtual bool reset(); 8751: 8751: virtual qint64 bytesAvailable() const; 8751: virtual qint64 bytesToWrite() const; 8751: 8751: qint64 read(char *data, qint64 maxlen); 8751: QByteArray read(qint64 maxlen); 8751: QByteArray readAll(); 8751: qint64 readLine(char *data, qint64 maxlen); 8751: QByteArray readLine(qint64 maxlen = 0); 8751: virtual bool canReadLine() const; 8751: 8751: void startTransaction(); 8751: void commitTransaction(); 8751: void rollbackTransaction(); 8751: bool isTransactionStarted() const; 8751: 8751: qint64 write(const char *data, qint64 len); 8751: qint64 write(const char *data); 8751: inline qint64 write(const QByteArray &data) 8751: { return write(data.constData(), data.size()); } 8751: 8751: qint64 peek(char *data, qint64 maxlen); 8751: QByteArray peek(qint64 maxlen); 8751: 8751: virtual bool waitForReadyRead(int msecs); 8751: virtual bool waitForBytesWritten(int msecs); 8751: 8751: void ungetChar(char c); 8751: bool putChar(char c); 8751: bool getChar(char *c); 8751: 8751: QString errorString() const; 8751: 8751: 8751: public : 8751: void readyRead(); 8751: void channelReadyRead(int channel); 8751: void bytesWritten(qint64 bytes); 8751: void channelBytesWritten(int channel, qint64 bytes); 8751: void aboutToClose(); 8751: void readChannelFinished(); 8751: 8751: 8751: protected: 8751: 8751: 8751: 8751: QIODevice(QIODevicePrivate &dd, QObject *parent = nullptr); 8751: 8751: virtual qint64 readData(char *data, qint64 maxlen) = 0; 8751: virtual qint64 readLineData(char *data, qint64 maxlen); 8751: virtual qint64 writeData(const char *data, qint64 len) = 0; 8751: 8751: void setOpenMode(OpenMode openMode); 8751: 8751: void setErrorString(const QString &errorString); 8751: 8751: 8751: 8751: 8751: 8751: private: 8751: inline QIODevicePrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QIODevicePrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QIODevicePrivate; 8751: QIODevice(const QIODevice &) = delete; QIODevice &operator=(const QIODevice &) = delete; 8751: }; 8751: 8751: constexpr inline QFlags operator|(QIODevice::OpenMode::enum_type f1, QIODevice::OpenMode::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QIODevice::OpenMode::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QIODevice::OpenMode::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: 8751: 8751: class QDebug; 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug debug, QIODevice::OpenMode modes); 8751: 8751: 8751: 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtextstream.h" 2 3 4 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlocale.h" 1 3 4 8751: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtextstream.h" 2 3 4 8751: # 55 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtextstream.h" 3 4 8751: 8751: 8751: 8751: class QTextCodec; 8751: class QTextDecoder; 8751: 8751: class QTextStreamPrivate; 8751: class __attribute__((visibility("default"))) QTextStream 8751: { 8751: inline QTextStreamPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QTextStreamPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QTextStreamPrivate; 8751: 8751: public: 8751: enum RealNumberNotation { 8751: SmartNotation, 8751: FixedNotation, 8751: ScientificNotation 8751: }; 8751: enum FieldAlignment { 8751: AlignLeft, 8751: AlignRight, 8751: AlignCenter, 8751: AlignAccountingStyle 8751: }; 8751: enum Status { 8751: Ok, 8751: ReadPastEnd, 8751: ReadCorruptData, 8751: WriteFailed 8751: }; 8751: enum NumberFlag { 8751: ShowBase = 0x1, 8751: ForcePoint = 0x2, 8751: ForceSign = 0x4, 8751: UppercaseBase = 0x8, 8751: UppercaseDigits = 0x10 8751: }; 8751: typedef QFlags NumberFlags; 8751: 8751: QTextStream(); 8751: explicit QTextStream(QIODevice *device); 8751: explicit QTextStream(FILE *fileHandle, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8751: explicit QTextStream(QString *string, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8751: explicit QTextStream(QByteArray *array, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8751: explicit QTextStream(const QByteArray &array, QIODevice::OpenMode openMode = QIODevice::ReadOnly); 8751: virtual ~QTextStream(); 8751: 8751: 8751: void setCodec(QTextCodec *codec); 8751: void setCodec(const char *codecName); 8751: QTextCodec *codec() const; 8751: void setAutoDetectUnicode(bool enabled); 8751: bool autoDetectUnicode() const; 8751: void setGenerateByteOrderMark(bool generate); 8751: bool generateByteOrderMark() const; 8751: 8751: 8751: void setLocale(const QLocale &locale); 8751: QLocale locale() const; 8751: 8751: void setDevice(QIODevice *device); 8751: QIODevice *device() const; 8751: 8751: void setString(QString *string, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8751: QString *string() const; 8751: 8751: Status status() const; 8751: void setStatus(Status status); 8751: void resetStatus(); 8751: 8751: bool atEnd() const; 8751: void reset(); 8751: void flush(); 8751: bool seek(qint64 pos); 8751: qint64 pos() const; 8751: 8751: void skipWhiteSpace(); 8751: 8751: QString readLine(qint64 maxlen = 0); 8751: bool readLineInto(QString *line, qint64 maxlen = 0); 8751: QString readAll(); 8751: QString read(qint64 maxlen); 8751: 8751: void setFieldAlignment(FieldAlignment alignment); 8751: FieldAlignment fieldAlignment() const; 8751: 8751: void setPadChar(QChar ch); 8751: QChar padChar() const; 8751: 8751: void setFieldWidth(int width); 8751: int fieldWidth() const; 8751: 8751: void setNumberFlags(NumberFlags flags); 8751: NumberFlags numberFlags() const; 8751: 8751: void setIntegerBase(int base); 8751: int integerBase() const; 8751: 8751: void setRealNumberNotation(RealNumberNotation notation); 8751: RealNumberNotation realNumberNotation() const; 8751: 8751: void setRealNumberPrecision(int precision); 8751: int realNumberPrecision() const; 8751: 8751: QTextStream &operator>>(QChar &ch); 8751: QTextStream &operator>>(char &ch); 8751: QTextStream &operator>>(signed short &i); 8751: QTextStream &operator>>(unsigned short &i); 8751: QTextStream &operator>>(signed int &i); 8751: QTextStream &operator>>(unsigned int &i); 8751: QTextStream &operator>>(signed long &i); 8751: QTextStream &operator>>(unsigned long &i); 8751: QTextStream &operator>>(qlonglong &i); 8751: QTextStream &operator>>(qulonglong &i); 8751: QTextStream &operator>>(float &f); 8751: QTextStream &operator>>(double &f); 8751: QTextStream &operator>>(QString &s); 8751: QTextStream &operator>>(QByteArray &array); 8751: QTextStream &operator>>(char *c); 8751: 8751: QTextStream &operator<<(QChar ch); 8751: QTextStream &operator<<(char ch); 8751: QTextStream &operator<<(signed short i); 8751: QTextStream &operator<<(unsigned short i); 8751: QTextStream &operator<<(signed int i); 8751: QTextStream &operator<<(unsigned int i); 8751: QTextStream &operator<<(signed long i); 8751: QTextStream &operator<<(unsigned long i); 8751: QTextStream &operator<<(qlonglong i); 8751: QTextStream &operator<<(qulonglong i); 8751: QTextStream &operator<<(float f); 8751: QTextStream &operator<<(double f); 8751: QTextStream &operator<<(const QString &s); 8751: QTextStream &operator<<(QLatin1String s); 8751: QTextStream &operator<<(const QStringRef &s); 8751: QTextStream &operator<<(const QByteArray &array); 8751: QTextStream &operator<<(const char *c); 8751: QTextStream &operator<<(const void *ptr); 8751: 8751: private: 8751: QTextStream(const QTextStream &) = delete; QTextStream &operator=(const QTextStream &) = delete; 8751: friend class QDebugStateSaverPrivate; 8751: friend class QDebug; 8751: 8751: QScopedPointer d_ptr; 8751: }; 8751: 8751: constexpr inline QFlags operator|(QTextStream::NumberFlags::enum_type f1, QTextStream::NumberFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QTextStream::NumberFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QTextStream::NumberFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: 8751: 8751: 8751: 8751: 8751: typedef QTextStream & (*QTextStreamFunction)(QTextStream &); 8751: typedef void (QTextStream::*QTSMFI)(int); 8751: typedef void (QTextStream::*QTSMFC)(QChar); 8751: 8751: 8751: class __attribute__((visibility("default"))) QTextStreamManipulator 8751: { 8751: public: 8751: constexpr QTextStreamManipulator(QTSMFI m, int a) noexcept : mf(m), mc(nullptr), arg(a), ch() {} 8751: constexpr QTextStreamManipulator(QTSMFC m, QChar c) noexcept : mf(nullptr), mc(m), arg(-1), ch(c) {} 8751: void exec(QTextStream &s) { if (mf) { (s.*mf)(arg); } else { (s.*mc)(ch); } } 8751: 8751: private: 8751: QTSMFI mf; 8751: QTSMFC mc; 8751: int arg; 8751: QChar ch; 8751: }; 8751: 8751: inline QTextStream &operator>>(QTextStream &s, QTextStreamFunction f) 8751: { return (*f)(s); } 8751: 8751: inline QTextStream &operator<<(QTextStream &s, QTextStreamFunction f) 8751: { return (*f)(s); } 8751: 8751: inline QTextStream &operator<<(QTextStream &s, QTextStreamManipulator m) 8751: { m.exec(s); return s; } 8751: 8751: __attribute__((visibility("default"))) QTextStream &bin(QTextStream &s); 8751: __attribute__((visibility("default"))) QTextStream &oct(QTextStream &s); 8751: __attribute__((visibility("default"))) QTextStream &dec(QTextStream &s); 8751: __attribute__((visibility("default"))) QTextStream &hex(QTextStream &s); 8751: 8751: __attribute__((visibility("default"))) QTextStream &showbase(QTextStream &s); 8751: __attribute__((visibility("default"))) QTextStream &forcesign(QTextStream &s); 8751: __attribute__((visibility("default"))) QTextStream &forcepoint(QTextStream &s); 8751: __attribute__((visibility("default"))) QTextStream &noshowbase(QTextStream &s); 8751: __attribute__((visibility("default"))) QTextStream &noforcesign(QTextStream &s); 8751: __attribute__((visibility("default"))) QTextStream &noforcepoint(QTextStream &s); 8751: 8751: __attribute__((visibility("default"))) QTextStream &uppercasebase(QTextStream &s); 8751: __attribute__((visibility("default"))) QTextStream &uppercasedigits(QTextStream &s); 8751: __attribute__((visibility("default"))) QTextStream &lowercasebase(QTextStream &s); 8751: __attribute__((visibility("default"))) QTextStream &lowercasedigits(QTextStream &s); 8751: 8751: __attribute__((visibility("default"))) QTextStream &fixed(QTextStream &s); 8751: __attribute__((visibility("default"))) QTextStream &scientific(QTextStream &s); 8751: 8751: __attribute__((visibility("default"))) QTextStream &left(QTextStream &s); 8751: __attribute__((visibility("default"))) QTextStream &right(QTextStream &s); 8751: __attribute__((visibility("default"))) QTextStream ¢er(QTextStream &s); 8751: 8751: __attribute__((visibility("default"))) QTextStream &endl(QTextStream &s); 8751: __attribute__((visibility("default"))) QTextStream &flush(QTextStream &s); 8751: __attribute__((visibility("default"))) QTextStream &reset(QTextStream &s); 8751: 8751: __attribute__((visibility("default"))) QTextStream &bom(QTextStream &s); 8751: 8751: __attribute__((visibility("default"))) QTextStream &ws(QTextStream &s); 8751: 8751: inline QTextStreamManipulator qSetFieldWidth(int width) 8751: { 8751: QTSMFI func = &QTextStream::setFieldWidth; 8751: return QTextStreamManipulator(func,width); 8751: } 8751: 8751: inline QTextStreamManipulator qSetPadChar(QChar ch) 8751: { 8751: QTSMFC func = &QTextStream::setPadChar; 8751: return QTextStreamManipulator(func, ch); 8751: } 8751: 8751: inline QTextStreamManipulator qSetRealNumberPrecision(int precision) 8751: { 8751: QTSMFI func = &QTextStream::setRealNumberPrecision; 8751: return QTextStreamManipulator(func, precision); 8751: } 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QTextStream" 2 3 4 8751: # 28 "/<>/templates/lib/outputstream.h" 2 8751: 8751: 8751: # 29 "/<>/templates/lib/outputstream.h" 8751: namespace Grantlee 8751: { 8751: 8751: class SafeString; 8751: # 82 "/<>/templates/lib/outputstream.h" 8751: class __attribute__((visibility("default"))) OutputStream 8751: { 8751: public: 8751: 8751: 8751: 8751: 8751: OutputStream(); 8751: 8751: 8751: 8751: 8751: 8751: explicit OutputStream(QTextStream *stream); 8751: 8751: 8751: 8751: 8751: virtual ~OutputStream(); 8751: 8751: 8751: 8751: 8751: 8751: virtual QString escape(const QString &input) const; 8751: 8751: 8751: 8751: 8751: 8751: QString escape(const SafeString &input) const; 8751: 8751: 8751: 8751: 8751: virtual QSharedPointer clone(QTextStream *stream) const; 8751: 8751: 8751: 8751: 8751: 8751: QString conditionalEscape(const Grantlee::SafeString &input) const; 8751: 8751: 8751: 8751: 8751: OutputStream &operator<<(const QString &input); 8751: 8751: 8751: 8751: 8751: OutputStream &operator<<(const SafeString &input); 8751: 8751: 8751: 8751: 8751: 8751: OutputStream &operator<<(QTextStream *stream); 8751: 8751: private: 8751: QTextStream *m_stream; 8751: OutputStream 8751: # 143 "/<>/templates/lib/outputstream.h" 3 4 8751: (const 8751: # 143 "/<>/templates/lib/outputstream.h" 8751: OutputStream 8751: # 143 "/<>/templates/lib/outputstream.h" 3 4 8751: &) = delete; 8751: # 143 "/<>/templates/lib/outputstream.h" 8751: OutputStream 8751: # 143 "/<>/templates/lib/outputstream.h" 3 4 8751: &operator=(const 8751: # 143 "/<>/templates/lib/outputstream.h" 8751: OutputStream 8751: # 143 "/<>/templates/lib/outputstream.h" 3 4 8751: &) = delete; 8751: 8751: # 144 "/<>/templates/lib/outputstream.h" 8751: }; 8751: } 8751: # 30 "/<>/templates/lib/node.h" 2 8751: # 1 "/<>/templates/lib/safestring.h" 1 8751: # 24 "/<>/templates/lib/safestring.h" 8751: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8751: # 25 "/<>/templates/lib/safestring.h" 2 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QString" 1 3 4 8751: # 27 "/<>/templates/lib/safestring.h" 2 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVariant" 1 3 4 8751: # 28 "/<>/templates/lib/safestring.h" 2 8751: 8751: namespace Grantlee 8751: { 8751: # 92 "/<>/templates/lib/safestring.h" 8751: class __attribute__((visibility("default"))) SafeString 8751: { 8751: public: 8751: 8751: 8751: 8751: enum Safety { 8751: IsSafe, 8751: IsNotSafe 8751: 8751: 8751: }; 8751: 8751: 8751: 8751: 8751: SafeString(); 8751: 8751: 8751: 8751: 8751: SafeString(const SafeString &safeString); 8751: 8751: 8751: 8751: 8751: 8751: 8751: SafeString(const QString &str, bool safe); 8751: 8751: 8751: 8751: 8751: 8751: 8751: SafeString(const QString &str, 8751: Safety safety 8751: = IsNotSafe); 8751: 8751: 8751: 8751: 8751: ~SafeString(); 8751: 8751: 8751: 8751: 8751: 8751: void setNeedsEscape(bool needsEscape); 8751: 8751: 8751: 8751: 8751: 8751: bool needsEscape() const; 8751: 8751: 8751: 8751: 8751: bool isSafe() const; 8751: 8751: 8751: 8751: 8751: 8751: void setSafety(Safety safety); 8751: # 167 "/<>/templates/lib/safestring.h" 8751: class __attribute__((visibility("default"))) NestedString : public QString 8751: { 8751: 8751: friend class SafeString; 8751: SafeString *m_safeString; 8751: 8751: public: 8751: NestedString(SafeString *safeString); 8751: NestedString(const QString &content, SafeString *safeString); 8751: 8751: SafeString &append(const SafeString &str); 8751: SafeString &append(const QString &str); 8751: SafeString &append(const QStringRef &reference); 8751: SafeString &append(const QLatin1String &str); 8751: # 196 "/<>/templates/lib/safestring.h" 8751: SafeString &append(const QChar ch); 8751: 8751: SafeString &fill(QChar ch, int size = -1); 8751: 8751: SafeString &insert(int position, const SafeString &str); 8751: SafeString &insert(int position, const QString &str); 8751: SafeString &insert(int position, const QLatin1String &str); 8751: SafeString &insert(int position, const QChar *unicode, int size); 8751: SafeString &insert(int position, QChar ch); 8751: 8751: SafeString left(int n) const; 8751: SafeString leftJustified(int width, QChar fill = QLatin1Char(' '), 8751: bool truncate = false) const; 8751: SafeString mid(int position, int n = -1) const; 8751: 8751: SafeString normalized(NormalizationForm mode) const; 8751: SafeString normalized(NormalizationForm mode, 8751: QChar::UnicodeVersion version) const; 8751: 8751: SafeString &prepend(const SafeString &str); 8751: SafeString &prepend(const QString &str); 8751: SafeString &prepend(const QLatin1String &str); 8751: # 233 "/<>/templates/lib/safestring.h" 8751: SafeString &prepend(QChar ch); 8751: 8751: void push_back(const SafeString &other); 8751: void push_front(const SafeString &other); 8751: 8751: SafeString &remove(int position, int n); 8751: SafeString &remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: SafeString &remove(const SafeString &str, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: SafeString &remove(const QString &str, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: SafeString &remove(const QRegularExpression &rx); 8751: SafeString repeated(int times) const; 8751: SafeString &replace(int position, int n, const SafeString &after); 8751: SafeString &replace(int position, int n, const QString &after); 8751: SafeString &replace(int position, int n, const QChar *unicode, int size); 8751: SafeString &replace(int position, int n, QChar after); 8751: SafeString &replace(const SafeString &before, const SafeString &after, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: SafeString &replace(const QString &before, const SafeString &after, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: SafeString &replace(const SafeString &before, const QString &after, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: SafeString &replace(const QString &before, const QString &after, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: SafeString &replace(const QChar *before, int blen, const QChar *after, 8751: int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: SafeString &replace(QChar ch, const SafeString &after, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: SafeString &replace(QChar ch, const QString &after, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: SafeString &replace(QChar before, QChar after, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: SafeString &replace(const QLatin1String &before, const QLatin1String &after, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: SafeString &replace(const QLatin1String &before, const SafeString &after, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: SafeString &replace(const QLatin1String &before, const QString &after, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: SafeString &replace(const SafeString &before, const QLatin1String &after, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: SafeString &replace(const QString &before, const QLatin1String &after, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: SafeString &replace(QChar c, const QLatin1String &after, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8751: SafeString &replace(const QRegularExpression &rx, const SafeString &after); 8751: SafeString &replace(const QRegularExpression &rx, const QString &after); 8751: 8751: SafeString right(int n) const; 8751: SafeString rightJustified(int width, QChar fill = QLatin1Char(' '), 8751: bool truncate = false) const; 8751: 8751: SafeString section(QChar sep, int start, int end = -1, 8751: SectionFlags flags = SectionDefault) const; 8751: SafeString section(const SafeString &sep, int start, int end = -1, 8751: SectionFlags flags = SectionDefault) const; 8751: SafeString section(const QString &sep, int start, int end = -1, 8751: SectionFlags flags = SectionDefault) const; 8751: SafeString section(const QRegularExpression ®, int start, int end = -1, 8751: SectionFlags flags = SectionDefault) const; 8751: SafeString &setNum(int n, int base = 10); 8751: SafeString &setNum(uint n, int base = 10); 8751: SafeString &setNum(long n, int base = 10); 8751: SafeString &setNum(ulong n, int base = 10); 8751: SafeString &setNum(qlonglong n, int base = 10); 8751: SafeString &setNum(qulonglong n, int base = 10); 8751: SafeString &setNum(short n, int base = 10); 8751: SafeString &setNum(ushort n, int base = 10); 8751: SafeString &setNum(double n, char format = 'g', int precision = 6); 8751: SafeString &setNum(float n, char format = 'g', int precision = 6); 8751: SafeString &setUnicode(const QChar *unicode, int size); 8751: SafeString &setUtf16(const ushort *unicode, int size); 8751: SafeString simplified() const; 8751: 8751: QStringList split(const SafeString &sep, 8751: SplitBehavior behavior = KeepEmptyParts, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: QStringList split(const QString &sep, 8751: SplitBehavior behavior = KeepEmptyParts, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: QStringList split(const QChar &sep, SplitBehavior behavior = KeepEmptyParts, 8751: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8751: QStringList split(const QRegularExpression &rx, 8751: SplitBehavior behavior = KeepEmptyParts) const; 8751: 8751: SafeString toLower() const; 8751: SafeString toUpper() const; 8751: SafeString trimmed() const; 8751: 8751: void chop(int n); 8751: 8751: }; 8751: 8751: 8751: 8751: 8751: const NestedString &get() const { return m_nestedString; } 8751: 8751: 8751: 8751: 8751: NestedString &get() { return m_nestedString; } 8751: 8751: 8751: 8751: 8751: operator QString() const { return m_nestedString; } 8751: 8751: 8751: 8751: 8751: SafeString &operator=(const SafeString &str); 8751: 8751: 8751: 8751: 8751: 8751: 8751: SafeString operator+(const QString &str); 8751: 8751: 8751: 8751: 8751: 8751: 8751: SafeString operator+(const SafeString &str); 8751: 8751: 8751: 8751: 8751: 8751: 8751: SafeString &operator+=(const QString &str); 8751: 8751: 8751: 8751: 8751: 8751: 8751: SafeString &operator+=(const SafeString &str); 8751: 8751: 8751: 8751: 8751: 8751: 8751: bool operator==(const SafeString &other) const; 8751: 8751: 8751: 8751: 8751: 8751: 8751: bool operator==(const QString &other) const; 8751: 8751: 8751: 8751: 8751: operator QVariant() const { return QVariant::fromValue(*this); } 8751: 8751: private: 8751: 8751: NestedString m_nestedString; 8751: 8751: Safety m_safety; 8751: bool m_needsescape; 8751: }; 8751: } 8751: 8751: 8751: # 402 "/<>/templates/lib/safestring.h" 3 4 8751: template <> struct QMetaTypeId< 8751: # 402 "/<>/templates/lib/safestring.h" 8751: Grantlee::SafeString 8751: # 402 "/<>/templates/lib/safestring.h" 3 4 8751: > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< 8751: # 402 "/<>/templates/lib/safestring.h" 8751: Grantlee::SafeString 8751: # 402 "/<>/templates/lib/safestring.h" 3 4 8751: >( 8751: # 402 "/<>/templates/lib/safestring.h" 8751: "Grantlee::SafeString" 8751: # 402 "/<>/templates/lib/safestring.h" 3 4 8751: , reinterpret_cast< 8751: # 402 "/<>/templates/lib/safestring.h" 8751: Grantlee::SafeString 8751: # 402 "/<>/templates/lib/safestring.h" 3 4 8751: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8751: # 31 "/<>/templates/lib/node.h" 2 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QStringList" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringlist.h" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QStringList" 2 3 4 8751: # 33 "/<>/templates/lib/node.h" 2 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QSet" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qset.h" 1 3 4 8751: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qset.h" 3 4 8751: 8751: 8751: 8751: template 8751: class QSet 8751: { 8751: typedef QHash Hash; 8751: 8751: public: 8751: inline QSet() noexcept {} 8751: 8751: inline QSet(std::initializer_list list) 8751: { 8751: reserve(int(list.size())); 8751: for (typename std::initializer_list::const_iterator it = list.begin(); it != list.end(); ++it) 8751: insert(*it); 8751: } 8751: 8751: 8751: 8751: 8751: inline void swap(QSet &other) noexcept { q_hash.swap(other.q_hash); } 8751: 8751: inline bool operator==(const QSet &other) const 8751: { return q_hash == other.q_hash; } 8751: inline bool operator!=(const QSet &other) const 8751: { return q_hash != other.q_hash; } 8751: 8751: inline int size() const { return q_hash.size(); } 8751: 8751: inline bool isEmpty() const { return q_hash.isEmpty(); } 8751: 8751: inline int capacity() const { return q_hash.capacity(); } 8751: inline void reserve(int size); 8751: inline void squeeze() { q_hash.squeeze(); } 8751: 8751: inline void detach() { q_hash.detach(); } 8751: inline bool isDetached() const { return q_hash.isDetached(); } 8751: 8751: inline void setSharable(bool sharable) { q_hash.setSharable(sharable); } 8751: 8751: 8751: inline void clear() { q_hash.clear(); } 8751: 8751: inline bool remove(const T &value) { return q_hash.remove(value) != 0; } 8751: 8751: inline bool contains(const T &value) const { return q_hash.contains(value); } 8751: 8751: bool contains(const QSet &set) const; 8751: 8751: class const_iterator; 8751: 8751: class iterator 8751: { 8751: typedef QHash Hash; 8751: typename Hash::iterator i; 8751: friend class const_iterator; 8751: friend class QSet; 8751: 8751: public: 8751: typedef std::bidirectional_iterator_tag iterator_category; 8751: typedef qptrdiff difference_type; 8751: typedef T value_type; 8751: typedef const T *pointer; 8751: typedef const T &reference; 8751: 8751: inline iterator() {} 8751: inline iterator(typename Hash::iterator o) : i(o) {} 8751: inline iterator(const iterator &o) : i(o.i) {} 8751: inline iterator &operator=(const iterator &o) { i = o.i; return *this; } 8751: inline const T &operator*() const { return i.key(); } 8751: inline const T *operator->() const { return &i.key(); } 8751: inline bool operator==(const iterator &o) const { return i == o.i; } 8751: inline bool operator!=(const iterator &o) const { return i != o.i; } 8751: inline bool operator==(const const_iterator &o) const 8751: { return i == o.i; } 8751: inline bool operator!=(const const_iterator &o) const 8751: { return i != o.i; } 8751: inline iterator &operator++() { ++i; return *this; } 8751: inline iterator operator++(int) { iterator r = *this; ++i; return r; } 8751: inline iterator &operator--() { --i; return *this; } 8751: inline iterator operator--(int) { iterator r = *this; --i; return r; } 8751: inline iterator operator+(int j) const { return i + j; } 8751: inline iterator operator-(int j) const { return i - j; } 8751: inline iterator &operator+=(int j) { i += j; return *this; } 8751: inline iterator &operator-=(int j) { i -= j; return *this; } 8751: }; 8751: 8751: class const_iterator 8751: { 8751: typedef QHash Hash; 8751: typename Hash::const_iterator i; 8751: friend class iterator; 8751: friend class QSet; 8751: 8751: public: 8751: typedef std::bidirectional_iterator_tag iterator_category; 8751: typedef qptrdiff difference_type; 8751: typedef T value_type; 8751: typedef const T *pointer; 8751: typedef const T &reference; 8751: 8751: inline const_iterator() {} 8751: inline const_iterator(typename Hash::const_iterator o) : i(o) {} 8751: inline const_iterator(const const_iterator &o) : i(o.i) {} 8751: inline const_iterator(const iterator &o) 8751: : i(o.i) {} 8751: inline const_iterator &operator=(const const_iterator &o) { i = o.i; return *this; } 8751: inline const T &operator*() const { return i.key(); } 8751: inline const T *operator->() const { return &i.key(); } 8751: inline bool operator==(const const_iterator &o) const { return i == o.i; } 8751: inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8751: inline const_iterator &operator++() { ++i; return *this; } 8751: inline const_iterator operator++(int) { const_iterator r = *this; ++i; return r; } 8751: inline const_iterator &operator--() { --i; return *this; } 8751: inline const_iterator operator--(int) { const_iterator r = *this; --i; return r; } 8751: inline const_iterator operator+(int j) const { return i + j; } 8751: inline const_iterator operator-(int j) const { return i - j; } 8751: inline const_iterator &operator+=(int j) { i += j; return *this; } 8751: inline const_iterator &operator-=(int j) { i -= j; return *this; } 8751: }; 8751: 8751: 8751: typedef std::reverse_iterator reverse_iterator; 8751: typedef std::reverse_iterator const_reverse_iterator; 8751: 8751: inline iterator begin() { return q_hash.begin(); } 8751: inline const_iterator begin() const noexcept { return q_hash.begin(); } 8751: inline const_iterator cbegin() const noexcept { return q_hash.begin(); } 8751: inline const_iterator constBegin() const noexcept { return q_hash.constBegin(); } 8751: inline iterator end() { return q_hash.end(); } 8751: inline const_iterator end() const noexcept { return q_hash.end(); } 8751: inline const_iterator cend() const noexcept { return q_hash.end(); } 8751: inline const_iterator constEnd() const noexcept { return q_hash.constEnd(); } 8751: 8751: reverse_iterator rbegin() { return reverse_iterator(end()); } 8751: reverse_iterator rend() { return reverse_iterator(begin()); } 8751: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8751: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8751: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8751: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8751: 8751: iterator erase(iterator i) 8751: { return erase(m2c(i)); } 8751: iterator erase(const_iterator i) 8751: { 8751: do { } while ((false) && (isValidIterator(i))); 8751: return q_hash.erase(reinterpret_cast(i)); 8751: } 8751: 8751: 8751: typedef iterator Iterator; 8751: typedef const_iterator ConstIterator; 8751: inline int count() const { return q_hash.count(); } 8751: inline iterator insert(const T &value) 8751: { return static_cast(q_hash.insert(value, QHashDummyValue())); } 8751: iterator find(const T &value) { return q_hash.find(value); } 8751: const_iterator find(const T &value) const { return q_hash.find(value); } 8751: inline const_iterator constFind(const T &value) const { return find(value); } 8751: QSet &unite(const QSet &other); 8751: QSet &intersect(const QSet &other); 8751: bool intersects(const QSet &other) const; 8751: QSet &subtract(const QSet &other); 8751: 8751: 8751: typedef T key_type; 8751: typedef T value_type; 8751: typedef value_type *pointer; 8751: typedef const value_type *const_pointer; 8751: typedef value_type &reference; 8751: typedef const value_type &const_reference; 8751: typedef qptrdiff difference_type; 8751: typedef int size_type; 8751: 8751: inline bool empty() const { return isEmpty(); } 8751: 8751: inline QSet &operator<<(const T &value) { insert(value); return *this; } 8751: inline QSet &operator|=(const QSet &other) { unite(other); return *this; } 8751: inline QSet &operator|=(const T &value) { insert(value); return *this; } 8751: inline QSet &operator&=(const QSet &other) { intersect(other); return *this; } 8751: inline QSet &operator&=(const T &value) 8751: { QSet result; if (contains(value)) result.insert(value); return (*this = result); } 8751: inline QSet &operator+=(const QSet &other) { unite(other); return *this; } 8751: inline QSet &operator+=(const T &value) { insert(value); return *this; } 8751: inline QSet &operator-=(const QSet &other) { subtract(other); return *this; } 8751: inline QSet &operator-=(const T &value) { remove(value); return *this; } 8751: inline QSet operator|(const QSet &other) const 8751: { QSet result = *this; result |= other; return result; } 8751: inline QSet operator&(const QSet &other) const 8751: { QSet result = *this; result &= other; return result; } 8751: inline QSet operator+(const QSet &other) const 8751: { QSet result = *this; result += other; return result; } 8751: inline QSet operator-(const QSet &other) const 8751: { QSet result = *this; result -= other; return result; } 8751: 8751: QList toList() const; 8751: inline QList values() const { return toList(); } 8751: 8751: static QSet fromList(const QList &list); 8751: 8751: private: 8751: Hash q_hash; 8751: 8751: static const_iterator m2c(iterator it) noexcept 8751: { return const_iterator(typename Hash::const_iterator(it.i.i)); } 8751: 8751: bool isValidIterator(const iterator &i) const 8751: { 8751: return q_hash.isValidIterator(reinterpret_cast(i)); 8751: } 8751: bool isValidIterator(const const_iterator &i) const noexcept 8751: { 8751: return q_hash.isValidIterator(reinterpret_cast(i)); 8751: } 8751: }; 8751: 8751: template 8751: uint qHash(const QSet &key, uint seed = 0) 8751: noexcept(noexcept(qHashRangeCommutative(key.begin(), key.end(), seed))) 8751: { 8751: return qHashRangeCommutative(key.begin(), key.end(), seed); 8751: } 8751: 8751: 8751: 8751: template 8751: inline void QSet::reserve(int asize) { q_hash.reserve(asize); } 8751: 8751: template 8751: inline QSet &QSet::unite(const QSet &other) 8751: { 8751: QSet copy(other); 8751: typename QSet::const_iterator i = copy.constEnd(); 8751: while (i != copy.constBegin()) { 8751: --i; 8751: insert(*i); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: inline QSet &QSet::intersect(const QSet &other) 8751: { 8751: QSet copy1; 8751: QSet copy2; 8751: if (size() <= other.size()) { 8751: copy1 = *this; 8751: copy2 = other; 8751: } else { 8751: copy1 = other; 8751: copy2 = *this; 8751: *this = copy1; 8751: } 8751: typename QSet::const_iterator i = copy1.constEnd(); 8751: while (i != copy1.constBegin()) { 8751: --i; 8751: if (!copy2.contains(*i)) 8751: remove(*i); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: inline bool QSet::intersects(const QSet &other) const 8751: { 8751: const bool otherIsBigger = other.size() > size(); 8751: const QSet &smallestSet = otherIsBigger ? *this : other; 8751: const QSet &biggestSet = otherIsBigger ? other : *this; 8751: const bool equalSeeds = q_hash.d->seed == other.q_hash.d->seed; 8751: typename QSet::const_iterator i = smallestSet.cbegin(); 8751: typename QSet::const_iterator e = smallestSet.cend(); 8751: 8751: if (__builtin_expect(!!(equalSeeds), true)) { 8751: 8751: while (i != e) { 8751: if (*biggestSet.q_hash.findNode(*i, i.i.i->h) != biggestSet.q_hash.e) 8751: return true; 8751: ++i; 8751: } 8751: } else { 8751: while (i != e) { 8751: if (biggestSet.contains(*i)) 8751: return true; 8751: ++i; 8751: } 8751: } 8751: 8751: return false; 8751: } 8751: 8751: template 8751: inline QSet &QSet::subtract(const QSet &other) 8751: { 8751: if (&other == this) { 8751: clear(); 8751: } else { 8751: auto i = other.constEnd(); 8751: while (i != other.constBegin()) { 8751: --i; 8751: remove(*i); 8751: } 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: inline bool QSet::contains(const QSet &other) const 8751: { 8751: typename QSet::const_iterator i = other.constBegin(); 8751: while (i != other.constEnd()) { 8751: if (!contains(*i)) 8751: return false; 8751: ++i; 8751: } 8751: return true; 8751: } 8751: 8751: template 8751: QList QSet::toList() const 8751: { 8751: QList result; 8751: result.reserve(size()); 8751: typename QSet::const_iterator i = constBegin(); 8751: while (i != constEnd()) { 8751: result.append(*i); 8751: ++i; 8751: } 8751: return result; 8751: } 8751: 8751: template 8751: QSet QList::toSet() const 8751: { 8751: QSet result; 8751: result.reserve(size()); 8751: for (int i = 0; i < size(); ++i) 8751: result.insert(at(i)); 8751: return result; 8751: } 8751: 8751: template 8751: QSet QSet::fromList(const QList &list) 8751: { 8751: return list.toSet(); 8751: } 8751: 8751: template 8751: QList QList::fromSet(const QSet &set) 8751: { 8751: return set.toList(); 8751: } 8751: 8751: template class QSetIterator { typedef typename QSet::const_iterator const_iterator; QSet c; const_iterator i; public: inline QSetIterator(const QSet &container) : c(container), i(c.constBegin()) {} inline QSetIterator &operator=(const QSet &container) { c = container; i = c.constBegin(); return *this; } inline void toFront() { i = c.constBegin(); } inline void toBack() { i = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline const T &next() { return *i++; } inline const T &peekNext() const { return *i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline const T &previous() { return *--i; } inline const T &peekPrevious() const { const_iterator p = i; return *--p; } inline bool findNext(const T &t) { while (i != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(--i) == t) return true; return false; } }; 8751: 8751: template 8751: class QMutableSetIterator 8751: { 8751: typedef typename QSet::iterator iterator; 8751: QSet *c; 8751: iterator i, n; 8751: inline bool item_exists() const { return c->constEnd() != n; } 8751: 8751: public: 8751: inline QMutableSetIterator(QSet &container) 8751: : c(&container) 8751: { i = c->begin(); n = c->end(); } 8751: inline QMutableSetIterator &operator=(QSet &container) 8751: { c = &container; i = c->begin(); n = c->end(); return *this; } 8751: inline void toFront() { i = c->begin(); n = c->end(); } 8751: inline void toBack() { i = c->end(); n = i; } 8751: inline bool hasNext() const { return c->constEnd() != i; } 8751: inline const T &next() { n = i++; return *n; } 8751: inline const T &peekNext() const { return *i; } 8751: inline bool hasPrevious() const { return c->constBegin() != i; } 8751: inline const T &previous() { n = --i; return *n; } 8751: inline const T &peekPrevious() const { iterator p = i; return *--p; } 8751: inline void remove() 8751: { if (c->constEnd() != n) { i = c->erase(n); n = c->end(); } } 8751: inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } 8751: inline bool findNext(const T &t) 8751: { while (c->constEnd() != (n = i)) if (*i++ == t) return true; return false; } 8751: inline bool findPrevious(const T &t) 8751: { while (c->constBegin() != i) if (*(n = --i) == t) return true; 8751: n = c->end(); return false; } 8751: }; 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QSet" 2 3 4 8751: # 37 "/<>/templates/lib/node.h" 2 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVector" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvector.h" 1 3 4 8751: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvector.h" 3 4 8751: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvector.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: class QRegion; 8751: 8751: template 8751: class QVector 8751: { 8751: typedef QTypedArrayData Data; 8751: Data *d; 8751: 8751: public: 8751: inline QVector() noexcept : d(Data::sharedNull()) { } 8751: explicit QVector(int size); 8751: QVector(int size, const T &t); 8751: inline QVector(const QVector &v); 8751: inline ~QVector() { if (!d->ref.deref()) freeData(d); } 8751: QVector &operator=(const QVector &v); 8751: 8751: QVector(QVector &&other) noexcept : d(other.d) { other.d = Data::sharedNull(); } 8751: QVector &operator=(QVector &&other) noexcept 8751: { QVector moved(std::move(other)); swap(moved); return *this; } 8751: 8751: void swap(QVector &other) noexcept { qSwap(d, other.d); } 8751: 8751: inline QVector(std::initializer_list args); 8751: 8751: bool operator==(const QVector &v) const; 8751: inline bool operator!=(const QVector &v) const { return !(*this == v); } 8751: 8751: inline int size() const { return d->size; } 8751: 8751: inline bool isEmpty() const { return d->size == 0; } 8751: 8751: void resize(int size); 8751: 8751: inline int capacity() const { return int(d->alloc); } 8751: void reserve(int size); 8751: inline void squeeze() 8751: { 8751: reallocData(d->size, d->size); 8751: if (d->capacityReserved) { 8751: 8751: 8751: d->capacityReserved = 0; 8751: } 8751: } 8751: 8751: inline void detach(); 8751: inline bool isDetached() const { return !d->ref.isShared(); } 8751: 8751: inline void setSharable(bool sharable) 8751: { 8751: if (sharable == d->ref.isSharable()) 8751: return; 8751: if (!sharable) 8751: detach(); 8751: 8751: if (d == Data::unsharableEmpty()) { 8751: if (sharable) 8751: d = Data::sharedNull(); 8751: } else { 8751: d->ref.setSharable(sharable); 8751: } 8751: do { } while ((false) && (d->ref.isSharable() == sharable)); 8751: } 8751: 8751: 8751: inline bool isSharedWith(const QVector &other) const { return d == other.d; } 8751: 8751: inline T *data() { detach(); return d->begin(); } 8751: inline const T *data() const { return d->begin(); } 8751: inline const T *constData() const { return d->begin(); } 8751: void clear(); 8751: 8751: const T &at(int i) const; 8751: T &operator[](int i); 8751: const T &operator[](int i) const; 8751: void append(const T &t); 8751: 8751: void append(T &&t); 8751: 8751: inline void append(const QVector &l) { *this += l; } 8751: void prepend(const T &t); 8751: void insert(int i, const T &t); 8751: void insert(int i, int n, const T &t); 8751: void replace(int i, const T &t); 8751: void remove(int i); 8751: void remove(int i, int n); 8751: inline void removeFirst() { do { } while ((false) && (!isEmpty())); erase(d->begin()); } 8751: inline void removeLast(); 8751: inline T takeFirst() { do { } while ((false) && (!isEmpty())); T r = first(); removeFirst(); return r; } 8751: inline T takeLast() { do { } while ((false) && (!isEmpty())); T r = last(); removeLast(); return r; } 8751: 8751: QVector &fill(const T &t, int size = -1); 8751: 8751: int indexOf(const T &t, int from = 0) const; 8751: int lastIndexOf(const T &t, int from = -1) const; 8751: bool contains(const T &t) const; 8751: int count(const T &t) const; 8751: 8751: 8751: void removeAt(int i) { remove(i); } 8751: int removeAll(const T &t) 8751: { 8751: const const_iterator ce = this->cend(), cit = std::find(this->cbegin(), ce, t); 8751: if (cit == ce) 8751: return 0; 8751: 8751: const int firstFoundIdx = std::distance(this->cbegin(), cit); 8751: const iterator e = end(), it = std::remove(begin() + firstFoundIdx, e, t); 8751: const int result = std::distance(it, e); 8751: erase(it, e); 8751: return result; 8751: } 8751: bool removeOne(const T &t) 8751: { 8751: const int i = indexOf(t); 8751: if (i < 0) 8751: return false; 8751: remove(i); 8751: return true; 8751: } 8751: int length() const { return size(); } 8751: T takeAt(int i) { T t = at(i); remove(i); return t; } 8751: void move(int from, int to) 8751: { 8751: do { } while ((false) && (from >= 0 && from < size())); 8751: do { } while ((false) && (to >= 0 && to < size())); 8751: if (from == to) 8751: return; 8751: detach(); 8751: T * const b = d->begin(); 8751: if (from < to) 8751: std::rotate(b + from, b + from + 1, b + to + 1); 8751: else 8751: std::rotate(b + to, b + from, b + from + 1); 8751: } 8751: 8751: 8751: typedef typename Data::iterator iterator; 8751: typedef typename Data::const_iterator const_iterator; 8751: typedef std::reverse_iterator reverse_iterator; 8751: typedef std::reverse_iterator const_reverse_iterator; 8751: # 213 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvector.h" 3 4 8751: inline iterator begin(iterator = iterator()) { detach(); return d->begin(); } 8751: inline const_iterator begin(const_iterator = const_iterator()) const noexcept { return d->constBegin(); } 8751: inline const_iterator cbegin(const_iterator = const_iterator()) const noexcept { return d->constBegin(); } 8751: inline const_iterator constBegin(const_iterator = const_iterator()) const noexcept { return d->constBegin(); } 8751: inline iterator end(iterator = iterator()) { detach(); return d->end(); } 8751: inline const_iterator end(const_iterator = const_iterator()) const noexcept { return d->constEnd(); } 8751: inline const_iterator cend(const_iterator = const_iterator()) const noexcept { return d->constEnd(); } 8751: inline const_iterator constEnd(const_iterator = const_iterator()) const noexcept { return d->constEnd(); } 8751: 8751: reverse_iterator rbegin() { return reverse_iterator(end()); } 8751: reverse_iterator rend() { return reverse_iterator(begin()); } 8751: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8751: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8751: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8751: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8751: iterator insert(iterator before, int n, const T &x); 8751: inline iterator insert(iterator before, const T &x) { return insert(before, 1, x); } 8751: iterator erase(iterator begin, iterator end); 8751: inline iterator erase(iterator pos) { return erase(pos, pos+1); } 8751: 8751: 8751: inline int count() const { return d->size; } 8751: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8751: inline const T &first() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8751: inline const T &constFirst() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8751: inline T& last() { do { } while ((false) && (!isEmpty())); return *(end()-1); } 8751: inline const T &last() const { do { } while ((false) && (!isEmpty())); return *(end()-1); } 8751: inline const T &constLast() const { do { } while ((false) && (!isEmpty())); return *(end()-1); } 8751: inline bool startsWith(const T &t) const { return !isEmpty() && first() == t; } 8751: inline bool endsWith(const T &t) const { return !isEmpty() && last() == t; } 8751: QVector mid(int pos, int len = -1) const; 8751: 8751: T value(int i) const; 8751: T value(int i, const T &defaultValue) const; 8751: 8751: 8751: typedef T value_type; 8751: typedef value_type* pointer; 8751: typedef const value_type* const_pointer; 8751: typedef value_type& reference; 8751: typedef const value_type& const_reference; 8751: typedef qptrdiff difference_type; 8751: typedef iterator Iterator; 8751: typedef const_iterator ConstIterator; 8751: typedef int size_type; 8751: inline void push_back(const T &t) { append(t); } 8751: 8751: void push_back(T &&t) { append(std::move(t)); } 8751: 8751: inline void push_front(const T &t) { prepend(t); } 8751: void pop_back() { removeLast(); } 8751: void pop_front() { removeFirst(); } 8751: inline bool empty() const 8751: { return d->size == 0; } 8751: inline T& front() { return first(); } 8751: inline const_reference front() const { return first(); } 8751: inline reference back() { return last(); } 8751: inline const_reference back() const { return last(); } 8751: 8751: 8751: QVector &operator+=(const QVector &l); 8751: inline QVector operator+(const QVector &l) const 8751: { QVector n = *this; n += l; return n; } 8751: inline QVector &operator+=(const T &t) 8751: { append(t); return *this; } 8751: inline QVector &operator<< (const T &t) 8751: { append(t); return *this; } 8751: inline QVector &operator<<(const QVector &l) 8751: { *this += l; return *this; } 8751: 8751: QList toList() const; 8751: 8751: static QVector fromList(const QList &list); 8751: 8751: static inline QVector fromStdVector(const std::vector &vector) 8751: { QVector tmp; tmp.reserve(int(vector.size())); std::copy(vector.begin(), vector.end(), std::back_inserter(tmp)); return tmp; } 8751: inline std::vector toStdVector() const 8751: { return std::vector(d->begin(), d->end()); } 8751: private: 8751: friend class QRegion; 8751: 8751: 8751: void reallocData(const int size, const int alloc, QArrayData::AllocationOptions options = QArrayData::Default); 8751: void reallocData(const int sz) { reallocData(sz, d->alloc); } 8751: void freeData(Data *d); 8751: void defaultConstruct(T *from, T *to); 8751: void copyConstruct(const T *srcFrom, const T *srcTo, T *dstFrom); 8751: void destruct(T *from, T *to); 8751: bool isValidIterator(const iterator &i) const 8751: { 8751: return (i <= d->end()) && (d->begin() <= i); 8751: } 8751: class AlignmentDummy { Data header; T array[1]; }; 8751: }; 8751: # 316 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvector.h" 3 4 8751: template 8751: void QVector::defaultConstruct(T *from, T *to) 8751: { 8751: if (QTypeInfo::isComplex) { 8751: while (from != to) { 8751: new (from++) T(); 8751: } 8751: } else { 8751: ::memset(static_cast(from), 0, (to - from) * sizeof(T)); 8751: } 8751: } 8751: 8751: template 8751: void QVector::copyConstruct(const T *srcFrom, const T *srcTo, T *dstFrom) 8751: { 8751: if (QTypeInfo::isComplex) { 8751: while (srcFrom != srcTo) 8751: new (dstFrom++) T(*srcFrom++); 8751: } else { 8751: ::memcpy(static_cast(dstFrom), static_cast(srcFrom), (srcTo - srcFrom) * sizeof(T)); 8751: } 8751: } 8751: 8751: template 8751: void QVector::destruct(T *from, T *to) 8751: { 8751: if (QTypeInfo::isComplex) { 8751: while (from != to) { 8751: from++->~T(); 8751: } 8751: } 8751: } 8751: 8751: template 8751: inline QVector::QVector(const QVector &v) 8751: { 8751: if (v.d->ref.ref()) { 8751: d = v.d; 8751: } else { 8751: if (v.d->capacityReserved) { 8751: d = Data::allocate(v.d->alloc); 8751: do { if (!(d)) qBadAlloc(); } while (false); 8751: d->capacityReserved = true; 8751: } else { 8751: d = Data::allocate(v.d->size); 8751: do { if (!(d)) qBadAlloc(); } while (false); 8751: } 8751: if (d->alloc) { 8751: copyConstruct(v.d->begin(), v.d->end(), d->begin()); 8751: d->size = v.d->size; 8751: } 8751: } 8751: } 8751: 8751: 8751: 8751: 8751: 8751: template 8751: void QVector::detach() 8751: { 8751: if (!isDetached()) { 8751: 8751: if (!d->alloc) 8751: d = Data::unsharableEmpty(); 8751: else 8751: 8751: reallocData(d->size, int(d->alloc)); 8751: } 8751: do { } while ((false) && (isDetached())); 8751: } 8751: 8751: template 8751: void QVector::reserve(int asize) 8751: { 8751: if (asize > int(d->alloc)) 8751: reallocData(d->size, asize); 8751: if (isDetached() 8751: 8751: && d != Data::unsharableEmpty() 8751: 8751: ) 8751: d->capacityReserved = 1; 8751: do { } while ((false) && (capacity() >= asize)); 8751: } 8751: 8751: template 8751: void QVector::resize(int asize) 8751: { 8751: int newAlloc; 8751: const int oldAlloc = int(d->alloc); 8751: QArrayData::AllocationOptions opt; 8751: 8751: if (asize > oldAlloc) { 8751: newAlloc = asize; 8751: opt = QArrayData::Grow; 8751: } else { 8751: newAlloc = oldAlloc; 8751: } 8751: reallocData(asize, newAlloc, opt); 8751: } 8751: template 8751: inline void QVector::clear() 8751: { resize(0); } 8751: template 8751: inline const T &QVector::at(int i) const 8751: { do { } while ((false) && (i >= 0 && i < d->size)); 8751: return d->begin()[i]; } 8751: template 8751: inline const T &QVector::operator[](int i) const 8751: { do { } while ((false) && (i >= 0 && i < d->size)); 8751: return d->begin()[i]; } 8751: template 8751: inline T &QVector::operator[](int i) 8751: { do { } while ((false) && (i >= 0 && i < d->size)); 8751: return data()[i]; } 8751: template 8751: inline void QVector::insert(int i, const T &t) 8751: { do { } while ((false) && (i >= 0 && i <= d->size)); 8751: insert(begin() + i, 1, t); } 8751: template 8751: inline void QVector::insert(int i, int n, const T &t) 8751: { do { } while ((false) && (i >= 0 && i <= d->size)); 8751: insert(begin() + i, n, t); } 8751: template 8751: inline void QVector::remove(int i, int n) 8751: { do { } while ((false) && (i >= 0 && n >= 0 && i + n <= d->size)); 8751: erase(d->begin() + i, d->begin() + i + n); } 8751: template 8751: inline void QVector::remove(int i) 8751: { do { } while ((false) && (i >= 0 && i < d->size)); 8751: erase(d->begin() + i, d->begin() + i + 1); } 8751: template 8751: inline void QVector::prepend(const T &t) 8751: { insert(begin(), 1, t); } 8751: 8751: template 8751: inline void QVector::replace(int i, const T &t) 8751: { 8751: do { } while ((false) && (i >= 0 && i < d->size)); 8751: const T copy(t); 8751: data()[i] = copy; 8751: } 8751: 8751: template 8751: QVector &QVector::operator=(const QVector &v) 8751: { 8751: if (v.d != d) { 8751: QVector tmp(v); 8751: tmp.swap(*this); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: QVector::QVector(int asize) 8751: { 8751: do { } while ((false) && (asize >= 0)); 8751: if (__builtin_expect(!!(asize > 0), true)) { 8751: d = Data::allocate(asize); 8751: do { if (!(d)) qBadAlloc(); } while (false); 8751: d->size = asize; 8751: defaultConstruct(d->begin(), d->end()); 8751: } else { 8751: d = Data::sharedNull(); 8751: } 8751: } 8751: 8751: template 8751: QVector::QVector(int asize, const T &t) 8751: { 8751: do { } while ((false) && (asize >= 0)); 8751: if (asize > 0) { 8751: d = Data::allocate(asize); 8751: do { if (!(d)) qBadAlloc(); } while (false); 8751: d->size = asize; 8751: T* i = d->end(); 8751: while (i != d->begin()) 8751: new (--i) T(t); 8751: } else { 8751: d = Data::sharedNull(); 8751: } 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: QVector::QVector(std::initializer_list args) 8751: { 8751: if (args.size() > 0) { 8751: d = Data::allocate(args.size()); 8751: do { if (!(d)) qBadAlloc(); } while (false); 8751: 8751: 8751: copyConstruct(args.begin(), args.end(), d->begin()); 8751: d->size = int(args.size()); 8751: } else { 8751: d = Data::sharedNull(); 8751: } 8751: } 8751: 8751: 8751: 8751: 8751: 8751: template 8751: void QVector::freeData(Data *x) 8751: { 8751: destruct(x->begin(), x->end()); 8751: Data::deallocate(x); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: 8751: template 8751: void QVector::reallocData(const int asize, const int aalloc, QArrayData::AllocationOptions options) 8751: { 8751: do { } while ((false) && (asize >= 0 && asize <= aalloc)); 8751: Data *x = d; 8751: 8751: const bool isShared = d->ref.isShared(); 8751: 8751: if (aalloc != 0) { 8751: if (aalloc != int(d->alloc) || isShared) { 8751: try { 8751: 8751: x = Data::allocate(aalloc, options); 8751: do { if (!(x)) qBadAlloc(); } while (false); 8751: 8751: 8751: do { } while ((false) && (x->ref.isSharable() || options.testFlag(QArrayData::Unsharable))); 8751: 8751: do { } while ((false) && (!x->ref.isStatic())); 8751: x->size = asize; 8751: 8751: T *srcBegin = d->begin(); 8751: T *srcEnd = asize > d->size ? d->end() : d->begin() + asize; 8751: T *dst = x->begin(); 8751: 8751: if (!QTypeInfoQuery::isRelocatable || (isShared && QTypeInfo::isComplex)) { 8751: 8751: while (srcBegin != srcEnd) { 8751: new (dst++) T(*srcBegin++); 8751: } 8751: } else { 8751: ::memcpy(static_cast(dst), static_cast(srcBegin), (srcEnd - srcBegin) * sizeof(T)); 8751: dst += srcEnd - srcBegin; 8751: 8751: 8751: if (asize < d->size) 8751: destruct(d->begin() + asize, d->end()); 8751: } 8751: 8751: if (asize > d->size) { 8751: 8751: try { 8751: defaultConstruct(dst, x->end()); 8751: } catch (...) { 8751: 8751: destruct(x->begin(), dst); 8751: throw; 8751: } 8751: } 8751: } catch (...) { 8751: Data::deallocate(x); 8751: throw; 8751: } 8751: x->capacityReserved = d->capacityReserved; 8751: } else { 8751: do { } while ((false) && (int(d->alloc) == aalloc)); 8751: do { } while ((false) && (isDetached())); 8751: do { } while ((false) && (x == d)); 8751: if (asize <= d->size) { 8751: destruct(x->begin() + asize, x->end()); 8751: } else { 8751: defaultConstruct(x->end(), x->begin() + asize); 8751: } 8751: x->size = asize; 8751: } 8751: } else { 8751: x = Data::sharedNull(); 8751: } 8751: if (d != x) { 8751: if (!d->ref.deref()) { 8751: if (!QTypeInfoQuery::isRelocatable || !aalloc || (isShared && QTypeInfo::isComplex)) { 8751: 8751: 8751: freeData(d); 8751: } else { 8751: Data::deallocate(d); 8751: } 8751: } 8751: d = x; 8751: } 8751: 8751: do { } while ((false) && (d->data())); 8751: do { } while ((false) && (uint(d->size) <= d->alloc)); 8751: 8751: do { } while ((false) && (d != Data::unsharableEmpty())); 8751: 8751: do { } while ((false) && (aalloc ? d != Data::sharedNull() : d == Data::sharedNull())); 8751: do { } while ((false) && (d->alloc >= uint(aalloc))); 8751: do { } while ((false) && (d->size == asize)); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: template 8751: T QVector::value(int i) const 8751: { 8751: if (uint(i) >= uint(d->size)) { 8751: return T(); 8751: } 8751: return d->begin()[i]; 8751: } 8751: template 8751: T QVector::value(int i, const T &defaultValue) const 8751: { 8751: return uint(i) >= uint(d->size) ? defaultValue : d->begin()[i]; 8751: } 8751: 8751: template 8751: void QVector::append(const T &t) 8751: { 8751: const bool isTooSmall = uint(d->size + 1) > d->alloc; 8751: if (!isDetached() || isTooSmall) { 8751: T copy(t); 8751: QArrayData::AllocationOptions opt(isTooSmall ? QArrayData::Grow : QArrayData::Default); 8751: reallocData(d->size, isTooSmall ? d->size + 1 : d->alloc, opt); 8751: 8751: if (QTypeInfo::isComplex) 8751: new (d->end()) T(std::move(copy)); 8751: else 8751: *d->end() = std::move(copy); 8751: 8751: } else { 8751: if (QTypeInfo::isComplex) 8751: new (d->end()) T(t); 8751: else 8751: *d->end() = t; 8751: } 8751: ++d->size; 8751: } 8751: 8751: 8751: template 8751: void QVector::append(T &&t) 8751: { 8751: const bool isTooSmall = uint(d->size + 1) > d->alloc; 8751: if (!isDetached() || isTooSmall) { 8751: QArrayData::AllocationOptions opt(isTooSmall ? QArrayData::Grow : QArrayData::Default); 8751: reallocData(d->size, isTooSmall ? d->size + 1 : d->alloc, opt); 8751: } 8751: 8751: new (d->end()) T(std::move(t)); 8751: 8751: ++d->size; 8751: } 8751: 8751: 8751: template 8751: void QVector::removeLast() 8751: { 8751: do { } while ((false) && (!isEmpty())); 8751: do { } while ((false) && (d->alloc)); 8751: 8751: if (!d->ref.isShared()) { 8751: --d->size; 8751: if (QTypeInfo::isComplex) 8751: (d->data() + d->size)->~T(); 8751: } else { 8751: reallocData(d->size - 1); 8751: } 8751: } 8751: 8751: template 8751: typename QVector::iterator QVector::insert(iterator before, size_type n, const T &t) 8751: { 8751: do { } while ((false) && (isValidIterator(before))); 8751: 8751: const auto offset = std::distance(d->begin(), before); 8751: if (n != 0) { 8751: const T copy(t); 8751: if (!isDetached() || d->size + n > int(d->alloc)) 8751: reallocData(d->size, d->size + n, QArrayData::Grow); 8751: if (!QTypeInfoQuery::isRelocatable) { 8751: T *b = d->end(); 8751: T *i = d->end() + n; 8751: while (i != b) 8751: new (--i) T; 8751: i = d->end(); 8751: T *j = i + n; 8751: b = d->begin() + offset; 8751: while (i != b) 8751: *--j = *--i; 8751: i = b+n; 8751: while (i != b) 8751: *--i = copy; 8751: } else { 8751: T *b = d->begin() + offset; 8751: T *i = b + n; 8751: memmove(i, b, (d->size - offset) * sizeof(T)); 8751: while (i != b) 8751: new (--i) T(copy); 8751: } 8751: d->size += n; 8751: } 8751: return d->begin() + offset; 8751: } 8751: 8751: template 8751: typename QVector::iterator QVector::erase(iterator abegin, iterator aend) 8751: { 8751: do { } while ((false) && (isValidIterator(abegin))); 8751: do { } while ((false) && (isValidIterator(aend))); 8751: 8751: const auto itemsToErase = aend - abegin; 8751: 8751: if (!itemsToErase) 8751: return abegin; 8751: 8751: do { } while ((false) && (abegin >= d->begin())); 8751: do { } while ((false) && (aend <= d->end())); 8751: do { } while ((false) && (abegin <= aend)); 8751: 8751: const auto itemsUntouched = abegin - d->begin(); 8751: 8751: 8751: 8751: 8751: if (d->alloc) { 8751: detach(); 8751: abegin = d->begin() + itemsUntouched; 8751: aend = abegin + itemsToErase; 8751: if (!QTypeInfoQuery::isRelocatable) { 8751: iterator moveBegin = abegin + itemsToErase; 8751: iterator moveEnd = d->end(); 8751: while (moveBegin != moveEnd) { 8751: if (QTypeInfo::isComplex) 8751: static_cast(abegin)->~T(); 8751: new (abegin++) T(*moveBegin++); 8751: } 8751: if (abegin < d->end()) { 8751: 8751: destruct(abegin, d->end()); 8751: } 8751: } else { 8751: destruct(abegin, aend); 8751: 8751: 8751: 8751: memmove(static_cast(abegin), static_cast(aend), 8751: (d->size - itemsToErase - itemsUntouched) * sizeof(T)); 8751: } 8751: d->size -= int(itemsToErase); 8751: } 8751: return d->begin() + itemsUntouched; 8751: } 8751: 8751: template 8751: bool QVector::operator==(const QVector &v) const 8751: { 8751: if (d == v.d) 8751: return true; 8751: if (d->size != v.d->size) 8751: return false; 8751: const T *vb = v.d->begin(); 8751: const T *b = d->begin(); 8751: const T *e = d->end(); 8751: return std::equal(b, e, (vb)); 8751: } 8751: 8751: template 8751: QVector &QVector::fill(const T &from, int asize) 8751: { 8751: const T copy(from); 8751: resize(asize < 0 ? d->size : asize); 8751: if (d->size) { 8751: T *i = d->end(); 8751: T *b = d->begin(); 8751: while (i != b) 8751: *--i = copy; 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: QVector &QVector::operator+=(const QVector &l) 8751: { 8751: if (d == Data::sharedNull()) { 8751: *this = l; 8751: } else { 8751: uint newSize = d->size + l.d->size; 8751: const bool isTooSmall = newSize > d->alloc; 8751: if (!isDetached() || isTooSmall) { 8751: QArrayData::AllocationOptions opt(isTooSmall ? QArrayData::Grow : QArrayData::Default); 8751: reallocData(d->size, isTooSmall ? newSize : d->alloc, opt); 8751: } 8751: 8751: if (d->alloc) { 8751: T *w = d->begin() + newSize; 8751: T *i = l.d->end(); 8751: T *b = l.d->begin(); 8751: while (i != b) { 8751: if (QTypeInfo::isComplex) 8751: new (--w) T(*--i); 8751: else 8751: *--w = *--i; 8751: } 8751: d->size = newSize; 8751: } 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: int QVector::indexOf(const T &t, int from) const 8751: { 8751: if (from < 0) 8751: from = qMax(from + d->size, 0); 8751: if (from < d->size) { 8751: T* n = d->begin() + from - 1; 8751: T* e = d->end(); 8751: while (++n != e) 8751: if (*n == t) 8751: return n - d->begin(); 8751: } 8751: return -1; 8751: } 8751: 8751: template 8751: int QVector::lastIndexOf(const T &t, int from) const 8751: { 8751: if (from < 0) 8751: from += d->size; 8751: else if (from >= d->size) 8751: from = d->size-1; 8751: if (from >= 0) { 8751: T* b = d->begin(); 8751: T* n = d->begin() + from + 1; 8751: while (n != b) { 8751: if (*--n == t) 8751: return n - b; 8751: } 8751: } 8751: return -1; 8751: } 8751: 8751: template 8751: bool QVector::contains(const T &t) const 8751: { 8751: const T *b = d->begin(); 8751: const T *e = d->end(); 8751: return std::find(b, e, t) != e; 8751: } 8751: 8751: template 8751: int QVector::count(const T &t) const 8751: { 8751: const T *b = d->begin(); 8751: const T *e = d->end(); 8751: return int(std::count(b, e, t)); 8751: } 8751: 8751: template 8751: QVector QVector::mid(int pos, int len) const 8751: { 8751: using namespace QtPrivate; 8751: switch (QContainerImplHelper::mid(d->size, &pos, &len)) { 8751: case QContainerImplHelper::Null: 8751: case QContainerImplHelper::Empty: 8751: return QVector(); 8751: case QContainerImplHelper::Full: 8751: return *this; 8751: case QContainerImplHelper::Subset: 8751: break; 8751: } 8751: 8751: QVector midResult; 8751: midResult.reallocData(0, len); 8751: T *srcFrom = d->begin() + pos; 8751: T *srcTo = d->begin() + pos + len; 8751: midResult.copyConstruct(srcFrom, srcTo, midResult.data()); 8751: midResult.d->size = len; 8751: return midResult; 8751: } 8751: 8751: template 8751: QList QVector::toList() const 8751: { 8751: QList result; 8751: result.reserve(size()); 8751: for (int i = 0; i < size(); ++i) 8751: result.append(at(i)); 8751: return result; 8751: } 8751: 8751: template 8751: QVector QList::toVector() const 8751: { 8751: QVector result(size()); 8751: for (int i = 0; i < size(); ++i) 8751: result[i] = at(i); 8751: return result; 8751: } 8751: 8751: template 8751: QVector QVector::fromList(const QList &list) 8751: { 8751: return list.toVector(); 8751: } 8751: 8751: template 8751: QList QList::fromVector(const QVector &vector) 8751: { 8751: return vector.toList(); 8751: } 8751: 8751: template class QVectorIterator { typedef typename QVector::const_iterator const_iterator; QVector c; const_iterator i; public: inline QVectorIterator(const QVector &container) : c(container), i(c.constBegin()) {} inline QVectorIterator &operator=(const QVector &container) { c = container; i = c.constBegin(); return *this; } inline void toFront() { i = c.constBegin(); } inline void toBack() { i = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline const T &next() { return *i++; } inline const T &peekNext() const { return *i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline const T &previous() { return *--i; } inline const T &peekPrevious() const { const_iterator p = i; return *--p; } inline bool findNext(const T &t) { while (i != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(--i) == t) return true; return false; } }; 8751: template class QMutableVectorIterator { typedef typename QVector::iterator iterator; typedef typename QVector::const_iterator const_iterator; QVector *c; iterator i, n; inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } public: inline QMutableVectorIterator(QVector &container) : c(&container) { i = c->begin(); n = c->end(); } inline QMutableVectorIterator &operator=(QVector &container) { c = &container; i = c->begin(); n = c->end(); return *this; } inline void toFront() { i = c->begin(); n = c->end(); } inline void toBack() { i = c->end(); n = i; } inline bool hasNext() const { return c->constEnd() != const_iterator(i); } inline T &next() { n = i++; return *n; } inline T &peekNext() const { return *i; } inline bool hasPrevious() const { return c->constBegin() != const_iterator(i); } inline T &previous() { n = --i; return *n; } inline T &peekPrevious() const { iterator p = i; return *--p; } inline void remove() { if (c->constEnd() != const_iterator(n)) { i = c->erase(n); n = c->end(); } } inline void setValue(const T &t) const { if (c->constEnd() != const_iterator(n)) *n = t; } inline T &value() { do { } while ((false) && (item_exists())); return *n; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline void insert(const T &t) { n = i = c->insert(i, t); ++i; } inline bool findNext(const T &t) { while (c->constEnd() != const_iterator(n = i)) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (c->constBegin() != const_iterator(i)) if (*(n = --i) == t) return true; n = c->end(); return false; } }; 8751: 8751: template 8751: uint qHash(const QVector &key, uint seed = 0) 8751: noexcept(noexcept(qHashRange(key.cbegin(), key.cend(), seed))) 8751: { 8751: return qHashRange(key.cbegin(), key.cend(), seed); 8751: } 8751: 8751: template 8751: bool operator<(const QVector &lhs, const QVector &rhs) 8751: noexcept(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()))) 8751: 8751: { 8751: return std::lexicographical_compare(lhs.begin(), lhs.end(), 8751: rhs.begin(), rhs.end()); 8751: } 8751: 8751: template 8751: inline bool operator>(const QVector &lhs, const QVector &rhs) 8751: noexcept(noexcept(lhs < rhs)) 8751: { 8751: return rhs < lhs; 8751: } 8751: 8751: template 8751: inline bool operator<=(const QVector &lhs, const QVector &rhs) 8751: noexcept(noexcept(lhs < rhs)) 8751: { 8751: return !(lhs > rhs); 8751: } 8751: 8751: template 8751: inline bool operator>=(const QVector &lhs, const QVector &rhs) 8751: noexcept(noexcept(lhs < rhs)) 8751: { 8751: return !(lhs < rhs); 8751: } 8751: # 1006 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvector.h" 3 4 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVector" 2 3 4 8751: # 38 "/<>/templates/lib/node.h" 2 8751: 8751: 8751: # 39 "/<>/templates/lib/node.h" 8751: namespace Grantlee 8751: { 8751: 8751: class Engine; 8751: class NodeList; 8751: class TemplateImpl; 8751: 8751: class NodePrivate; 8751: # 82 "/<>/templates/lib/node.h" 8751: class __attribute__((visibility("default"))) Node : public QObject 8751: { 8751: 8751: # 84 "/<>/templates/lib/node.h" 3 4 8751: public: 8751: # 84 "/<>/templates/lib/node.h" 8751: #pragma GCC diagnostic push 8751: # 84 "/<>/templates/lib/node.h" 8751: 8751: # 84 "/<>/templates/lib/node.h" 8751: #pragma GCC diagnostic ignored "-Wsuggest-override" 8751: # 84 "/<>/templates/lib/node.h" 8751: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8751: # 84 "/<>/templates/lib/node.h" 8751: #pragma GCC diagnostic ignored "-Wattributes" 8751: # 84 "/<>/templates/lib/node.h" 8751: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8751: # 84 "/<>/templates/lib/node.h" 8751: #pragma GCC diagnostic pop 8751: # 84 "/<>/templates/lib/node.h" 8751: struct QPrivateSignal {}; 8751: 8751: # 85 "/<>/templates/lib/node.h" 8751: public: 8751: 8751: 8751: 8751: 8751: 8751: explicit Node(QObject *parent = 0); 8751: 8751: 8751: 8751: 8751: ~Node() override; 8751: 8751: 8751: 8751: 8751: 8751: 8751: virtual void render(OutputStream *stream, Context *c) const = 0; 8751: 8751: 8751: 8751: 8751: 8751: virtual bool mustBeFirst() 8751: { 8751: return false; 8751: } 8751: 8751: 8751: protected: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: void streamValueInContext(OutputStream *stream, const QVariant &input, 8751: Grantlee::Context *c) const; 8751: 8751: 8751: 8751: 8751: TemplateImpl *containerTemplate() const; 8751: 8751: private: 8751: 8751: # 132 "/<>/templates/lib/node.h" 3 4 8751: inline 8751: # 132 "/<>/templates/lib/node.h" 8751: NodePrivate 8751: # 132 "/<>/templates/lib/node.h" 3 4 8751: * d_func() { return reinterpret_cast< 8751: # 132 "/<>/templates/lib/node.h" 8751: NodePrivate 8751: # 132 "/<>/templates/lib/node.h" 3 4 8751: *>(qGetPtrHelper(d_ptr)); } inline const 8751: # 132 "/<>/templates/lib/node.h" 8751: NodePrivate 8751: # 132 "/<>/templates/lib/node.h" 3 4 8751: * d_func() const { return reinterpret_cast>/templates/lib/node.h" 8751: NodePrivate 8751: # 132 "/<>/templates/lib/node.h" 3 4 8751: *>(qGetPtrHelper(d_ptr)); } friend class 8751: # 132 "/<>/templates/lib/node.h" 8751: NodePrivate 8751: # 132 "/<>/templates/lib/node.h" 3 4 8751: ; 8751: 8751: # 133 "/<>/templates/lib/node.h" 8751: NodePrivate *const d_ptr; 8751: }; 8751: # 154 "/<>/templates/lib/node.h" 8751: class __attribute__((visibility("default"))) NodeList : public QList 8751: { 8751: public: 8751: 8751: 8751: 8751: NodeList(); 8751: 8751: 8751: 8751: 8751: NodeList(const NodeList &list); 8751: 8751: NodeList &operator=(const NodeList &list); 8751: 8751: 8751: 8751: 8751: NodeList(const QList &list); 8751: 8751: 8751: 8751: 8751: ~NodeList(); 8751: 8751: 8751: 8751: 8751: void append(Grantlee::Node *node); 8751: 8751: 8751: 8751: 8751: void append(QList nodeList); 8751: 8751: 8751: 8751: 8751: bool containsNonText() const; 8751: 8751: 8751: 8751: 8751: template QList findChildren() 8751: { 8751: QList children; 8751: QList::const_iterator it; 8751: const QList::const_iterator first = constBegin(); 8751: const QList::const_iterator last = constEnd(); 8751: for (it = first; it != last; ++it) { 8751: T object = qobject_cast(*it); 8751: if (object) { 8751: children << object; 8751: } 8751: children << (*it)->findChildren(); 8751: } 8751: return children; 8751: } 8751: 8751: 8751: 8751: 8751: void render(OutputStream *stream, Context *c) const; 8751: 8751: private: 8751: bool m_containsNonText; 8751: }; 8751: 8751: class AbstractNodeFactoryPrivate; 8751: # 306 "/<>/templates/lib/node.h" 8751: class __attribute__((visibility("default"))) AbstractNodeFactory : public QObject 8751: { 8751: 8751: # 308 "/<>/templates/lib/node.h" 3 4 8751: public: 8751: # 308 "/<>/templates/lib/node.h" 8751: #pragma GCC diagnostic push 8751: # 308 "/<>/templates/lib/node.h" 8751: 8751: # 308 "/<>/templates/lib/node.h" 8751: #pragma GCC diagnostic ignored "-Wsuggest-override" 8751: # 308 "/<>/templates/lib/node.h" 8751: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8751: # 308 "/<>/templates/lib/node.h" 8751: #pragma GCC diagnostic ignored "-Wattributes" 8751: # 308 "/<>/templates/lib/node.h" 8751: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8751: # 308 "/<>/templates/lib/node.h" 8751: #pragma GCC diagnostic pop 8751: # 308 "/<>/templates/lib/node.h" 8751: struct QPrivateSignal {}; 8751: 8751: # 309 "/<>/templates/lib/node.h" 8751: public: 8751: 8751: 8751: 8751: 8751: 8751: explicit AbstractNodeFactory(QObject *parent = 0); 8751: 8751: 8751: 8751: 8751: ~AbstractNodeFactory() override; 8751: # 337 "/<>/templates/lib/node.h" 8751: virtual Node *getNode(const QString &tagContent, Parser *p) const = 0; 8751: # 346 "/<>/templates/lib/node.h" 8751: virtual void setEngine(Engine *) {} 8751: 8751: 8751: protected: 8751: # 365 "/<>/templates/lib/node.h" 8751: QStringList smartSplit(const QString &str) const; 8751: 8751: protected: 8751: 8751: 8751: 8751: 8751: 8751: 8751: QList getFilterExpressionList(const QStringList &list, 8751: Parser *p) const; 8751: 8751: private: 8751: 8751: # 378 "/<>/templates/lib/node.h" 3 4 8751: inline 8751: # 378 "/<>/templates/lib/node.h" 8751: AbstractNodeFactoryPrivate 8751: # 378 "/<>/templates/lib/node.h" 3 4 8751: * d_func() { return reinterpret_cast< 8751: # 378 "/<>/templates/lib/node.h" 8751: AbstractNodeFactoryPrivate 8751: # 378 "/<>/templates/lib/node.h" 3 4 8751: *>(qGetPtrHelper(d_ptr)); } inline const 8751: # 378 "/<>/templates/lib/node.h" 8751: AbstractNodeFactoryPrivate 8751: # 378 "/<>/templates/lib/node.h" 3 4 8751: * d_func() const { return reinterpret_cast>/templates/lib/node.h" 8751: AbstractNodeFactoryPrivate 8751: # 378 "/<>/templates/lib/node.h" 3 4 8751: *>(qGetPtrHelper(d_ptr)); } friend class 8751: # 378 "/<>/templates/lib/node.h" 8751: AbstractNodeFactoryPrivate 8751: # 378 "/<>/templates/lib/node.h" 3 4 8751: ; 8751: 8751: # 379 "/<>/templates/lib/node.h" 8751: AbstractNodeFactoryPrivate *const d_ptr; 8751: }; 8751: } 8751: # 27 "/<>/templates/lib/template.h" 2 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QSharedPointer" 1 3 4 8751: # 29 "/<>/templates/lib/template.h" 2 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QStringList" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringlist.h" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QStringList" 2 3 4 8751: # 30 "/<>/templates/lib/template.h" 2 8751: 8751: namespace Grantlee 8751: { 8751: class Context; 8751: class Engine; 8751: class TemplateImpl; 8751: class OutputStream; 8751: 8751: 8751: 8751: 8751: typedef QSharedPointer Template; 8751: 8751: 8751: class TemplatePrivate; 8751: # 94 "/<>/templates/lib/template.h" 8751: class __attribute__((visibility("default"))) TemplateImpl : public QObject 8751: { 8751: 8751: # 96 "/<>/templates/lib/template.h" 3 4 8751: public: 8751: # 96 "/<>/templates/lib/template.h" 8751: #pragma GCC diagnostic push 8751: # 96 "/<>/templates/lib/template.h" 8751: 8751: # 96 "/<>/templates/lib/template.h" 8751: #pragma GCC diagnostic ignored "-Wsuggest-override" 8751: # 96 "/<>/templates/lib/template.h" 8751: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8751: # 96 "/<>/templates/lib/template.h" 8751: #pragma GCC diagnostic ignored "-Wattributes" 8751: # 96 "/<>/templates/lib/template.h" 8751: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8751: # 96 "/<>/templates/lib/template.h" 8751: #pragma GCC diagnostic pop 8751: # 96 "/<>/templates/lib/template.h" 8751: struct QPrivateSignal {}; 8751: 8751: # 97 "/<>/templates/lib/template.h" 8751: public: 8751: ~TemplateImpl() override; 8751: 8751: 8751: 8751: 8751: QString render(Context *c) const; 8751: 8751: 8751: 8751: 8751: OutputStream *render(OutputStream *stream, Context *c) const; 8751: 8751: 8751: 8751: 8751: 8751: NodeList nodeList() const; 8751: 8751: 8751: 8751: 8751: void setNodeList(const NodeList &list); 8751: 8751: 8751: 8751: 8751: 8751: Error error() const; 8751: 8751: 8751: 8751: 8751: QString errorString() const; 8751: 8751: 8751: 8751: 8751: Engine const *engine() const; 8751: 8751: 8751: protected: 8751: TemplateImpl(Engine const *engine, QObject *parent = 0); 8751: TemplateImpl(Engine const *engine, bool smartTrim, QObject *parent = 0); 8751: 8751: void setContent(const QString &templateString); 8751: 8751: 8751: private: 8751: 8751: 8751: 8751: using QObject::setParent; 8751: 8751: private: 8751: 8751: # 152 "/<>/templates/lib/template.h" 3 4 8751: inline 8751: # 152 "/<>/templates/lib/template.h" 8751: TemplatePrivate 8751: # 152 "/<>/templates/lib/template.h" 3 4 8751: * d_func() { return reinterpret_cast< 8751: # 152 "/<>/templates/lib/template.h" 8751: TemplatePrivate 8751: # 152 "/<>/templates/lib/template.h" 3 4 8751: *>(qGetPtrHelper(d_ptr)); } inline const 8751: # 152 "/<>/templates/lib/template.h" 8751: TemplatePrivate 8751: # 152 "/<>/templates/lib/template.h" 3 4 8751: * d_func() const { return reinterpret_cast>/templates/lib/template.h" 8751: TemplatePrivate 8751: # 152 "/<>/templates/lib/template.h" 3 4 8751: *>(qGetPtrHelper(d_ptr)); } friend class 8751: # 152 "/<>/templates/lib/template.h" 8751: TemplatePrivate 8751: # 152 "/<>/templates/lib/template.h" 3 4 8751: ; 8751: 8751: # 153 "/<>/templates/lib/template.h" 8751: TemplatePrivate *const d_ptr; 8751: 8751: friend class Engine; 8751: friend class Parser; 8751: 8751: }; 8751: } 8751: # 25 "/<>/templates/lib/engine.h" 2 8751: # 1 "/<>/templates/lib/templateloader.h" 1 8751: # 24 "/<>/templates/lib/templateloader.h" 8751: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8751: # 25 "/<>/templates/lib/templateloader.h" 2 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QSharedPointer" 1 3 4 8751: # 28 "/<>/templates/lib/templateloader.h" 2 8751: 8751: namespace Grantlee 8751: { 8751: 8751: class AbstractLocalizer; 8751: # 49 "/<>/templates/lib/templateloader.h" 8751: class __attribute__((visibility("default"))) AbstractTemplateLoader 8751: { 8751: public: 8751: 8751: 8751: 8751: virtual ~AbstractTemplateLoader(); 8751: 8751: 8751: 8751: 8751: 8751: 8751: virtual Template loadByName(const QString &name, 8751: Engine const *engine) const = 0; 8751: 8751: 8751: 8751: 8751: virtual QPair 8751: getMediaUri(const QString &fileName) const = 0; 8751: 8751: 8751: 8751: 8751: virtual bool canLoadTemplate(const QString &name) const = 0; 8751: }; 8751: 8751: 8751: 8751: class FileSystemTemplateLoaderPrivate; 8751: # 133 "/<>/templates/lib/templateloader.h" 8751: class __attribute__((visibility("default"))) FileSystemTemplateLoader 8751: : public AbstractTemplateLoader 8751: { 8751: public: 8751: 8751: 8751: 8751: FileSystemTemplateLoader(const QSharedPointer localizer 8751: = QSharedPointer()); 8751: 8751: 8751: 8751: 8751: ~FileSystemTemplateLoader() override; 8751: 8751: Template loadByName(const QString &name, Engine const *engine) const override; 8751: 8751: bool canLoadTemplate(const QString &name) const override; 8751: 8751: QPair getMediaUri(const QString &fileName) const override; 8751: 8751: 8751: 8751: 8751: void setTheme(const QString &themeName); 8751: 8751: 8751: 8751: 8751: QString themeName() const; 8751: 8751: 8751: 8751: 8751: void setTemplateDirs(const QStringList &dirs); 8751: 8751: 8751: 8751: 8751: QStringList templateDirs() const; 8751: 8751: private: 8751: 8751: # 175 "/<>/templates/lib/templateloader.h" 3 4 8751: inline 8751: # 175 "/<>/templates/lib/templateloader.h" 8751: FileSystemTemplateLoaderPrivate 8751: # 175 "/<>/templates/lib/templateloader.h" 3 4 8751: * d_func() { return reinterpret_cast< 8751: # 175 "/<>/templates/lib/templateloader.h" 8751: FileSystemTemplateLoaderPrivate 8751: # 175 "/<>/templates/lib/templateloader.h" 3 4 8751: *>(qGetPtrHelper(d_ptr)); } inline const 8751: # 175 "/<>/templates/lib/templateloader.h" 8751: FileSystemTemplateLoaderPrivate 8751: # 175 "/<>/templates/lib/templateloader.h" 3 4 8751: * d_func() const { return reinterpret_cast>/templates/lib/templateloader.h" 8751: FileSystemTemplateLoaderPrivate 8751: # 175 "/<>/templates/lib/templateloader.h" 3 4 8751: *>(qGetPtrHelper(d_ptr)); } friend class 8751: # 175 "/<>/templates/lib/templateloader.h" 8751: FileSystemTemplateLoaderPrivate 8751: # 175 "/<>/templates/lib/templateloader.h" 3 4 8751: ; 8751: 8751: # 176 "/<>/templates/lib/templateloader.h" 8751: FileSystemTemplateLoaderPrivate *const d_ptr; 8751: }; 8751: # 190 "/<>/templates/lib/templateloader.h" 8751: class __attribute__((visibility("default"))) InMemoryTemplateLoader 8751: : public AbstractTemplateLoader 8751: { 8751: public: 8751: InMemoryTemplateLoader(); 8751: ~InMemoryTemplateLoader() override; 8751: 8751: Template loadByName(const QString &name, Engine const *engine) const override; 8751: 8751: bool canLoadTemplate(const QString &name) const override; 8751: 8751: QPair getMediaUri(const QString &fileName) const override; 8751: # 217 "/<>/templates/lib/templateloader.h" 8751: void setTemplate(const QString &name, const QString &content); 8751: 8751: private: 8751: QHash m_namedTemplates; 8751: }; 8751: } 8751: # 26 "/<>/templates/lib/engine.h" 2 8751: 8751: namespace Grantlee 8751: { 8751: class TagLibraryInterface; 8751: 8751: class EnginePrivate; 8751: # 123 "/<>/templates/lib/engine.h" 8751: class __attribute__((visibility("default"))) Engine : public QObject 8751: { 8751: 8751: # 125 "/<>/templates/lib/engine.h" 3 4 8751: public: 8751: # 125 "/<>/templates/lib/engine.h" 8751: #pragma GCC diagnostic push 8751: # 125 "/<>/templates/lib/engine.h" 8751: 8751: # 125 "/<>/templates/lib/engine.h" 8751: #pragma GCC diagnostic ignored "-Wsuggest-override" 8751: # 125 "/<>/templates/lib/engine.h" 8751: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8751: # 125 "/<>/templates/lib/engine.h" 8751: #pragma GCC diagnostic ignored "-Wattributes" 8751: # 125 "/<>/templates/lib/engine.h" 8751: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8751: # 125 "/<>/templates/lib/engine.h" 8751: #pragma GCC diagnostic pop 8751: # 125 "/<>/templates/lib/engine.h" 8751: struct QPrivateSignal {}; 8751: 8751: # 126 "/<>/templates/lib/engine.h" 8751: public: 8751: 8751: 8751: 8751: Engine(QObject *parent = 0); 8751: 8751: 8751: 8751: 8751: ~Engine() override; 8751: 8751: 8751: 8751: 8751: QList> templateLoaders(); 8751: 8751: 8751: 8751: 8751: void addTemplateLoader(QSharedPointer loader); 8751: # 155 "/<>/templates/lib/engine.h" 8751: void setPluginPaths(const QStringList &dirs); 8751: 8751: 8751: 8751: 8751: void addPluginPath(const QString &dir); 8751: 8751: 8751: 8751: 8751: void removePluginPath(const QString &dir); 8751: 8751: 8751: 8751: 8751: QStringList pluginPaths() const; 8751: # 185 "/<>/templates/lib/engine.h" 8751: QPair mediaUri(const QString &fileName) const; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: Template loadByName(const QString &name) const; 8751: # 202 "/<>/templates/lib/engine.h" 8751: Template newTemplate(const QString &content, const QString &name) const; 8751: 8751: 8751: 8751: 8751: QStringList defaultLibraries() const; 8751: 8751: 8751: 8751: 8751: 8751: void addDefaultLibrary(const QString &libName); 8751: 8751: 8751: 8751: 8751: 8751: 8751: void removeDefaultLibrary(const QString &libName); 8751: # 230 "/<>/templates/lib/engine.h" 8751: bool smartTrimEnabled() const; 8751: 8751: 8751: 8751: 8751: 8751: 8751: void setSmartTrimEnabled(bool enabled); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: void loadDefaultLibraries(); 8751: # 255 "/<>/templates/lib/engine.h" 8751: TagLibraryInterface *loadLibrary(const QString &name); 8751: 8751: 8751: private: 8751: 8751: # 259 "/<>/templates/lib/engine.h" 3 4 8751: inline 8751: # 259 "/<>/templates/lib/engine.h" 8751: EnginePrivate 8751: # 259 "/<>/templates/lib/engine.h" 3 4 8751: * d_func() { return reinterpret_cast< 8751: # 259 "/<>/templates/lib/engine.h" 8751: EnginePrivate 8751: # 259 "/<>/templates/lib/engine.h" 3 4 8751: *>(qGetPtrHelper(d_ptr)); } inline const 8751: # 259 "/<>/templates/lib/engine.h" 8751: EnginePrivate 8751: # 259 "/<>/templates/lib/engine.h" 3 4 8751: * d_func() const { return reinterpret_cast>/templates/lib/engine.h" 8751: EnginePrivate 8751: # 259 "/<>/templates/lib/engine.h" 3 4 8751: *>(qGetPtrHelper(d_ptr)); } friend class 8751: # 259 "/<>/templates/lib/engine.h" 8751: EnginePrivate 8751: # 259 "/<>/templates/lib/engine.h" 3 4 8751: ; 8751: 8751: # 260 "/<>/templates/lib/engine.h" 8751: EnginePrivate *const d_ptr; 8751: }; 8751: } 8751: # 24 "/<>/templates/tests/testgenericcontainers.cpp" 2 8751: # 1 "/<>/obj-arm-linux-gnueabihf/templates/tests/grantlee_paths.h" 1 8751: # 25 "/<>/templates/tests/testgenericcontainers.cpp" 2 8751: # 1 "/<>/templates/lib/metatype.h" 1 8751: # 25 "/<>/templates/lib/metatype.h" 8751: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8751: # 26 "/<>/templates/lib/metatype.h" 2 8751: 8751: # 1 "/<>/templates/lib/typeaccessor.h" 1 8751: # 24 "/<>/templates/lib/typeaccessor.h" 8751: # 1 "/<>/obj-arm-linux-gnueabihf/templates/lib/grantlee_templates_export.h" 1 8751: # 25 "/<>/templates/lib/typeaccessor.h" 2 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QObject" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qobject.h" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QObject" 2 3 4 8751: # 27 "/<>/templates/lib/typeaccessor.h" 2 8751: 8751: 8751: 8751: namespace Grantlee 8751: { 8751: 8751: 8751: template struct TypeAccessor { 8751: static QVariant lookUp(const T object, const QString &property); 8751: }; 8751: 8751: template struct TypeAccessor { 8751: static QVariant lookUp(const T *const object, const QString &property); 8751: }; 8751: 8751: template struct TypeAccessor { 8751: static QVariant lookUp(const T &object, const QString &property); 8751: }; 8751: 8751: } 8751: # 28 "/<>/templates/lib/metatype.h" 2 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVariant" 1 3 4 8751: # 30 "/<>/templates/lib/metatype.h" 2 8751: 8751: 8751: 8751: namespace Grantlee 8751: { 8751: # 52 "/<>/templates/lib/metatype.h" 8751: class __attribute__((visibility("default"))) MetaType 8751: { 8751: public: 8751: 8751: 8751: 8751: typedef QVariant (*LookupFunction)(const QVariant &, const QString &); 8751: 8751: 8751: 8751: 8751: static void registerLookUpOperator(int id, LookupFunction f); 8751: 8751: 8751: 8751: 8751: static void internalLock(); 8751: 8751: 8751: 8751: 8751: static void internalUnlock(); 8751: 8751: 8751: 8751: 8751: static QVariant lookup(const QVariant &object, const QString &property); 8751: 8751: 8751: 8751: 8751: static bool lookupAlreadyRegistered(int id); 8751: 8751: private: 8751: MetaType(); 8751: }; 8751: 8751: 8751: namespace 8751: { 8751: 8751: 8751: 8751: 8751: template struct LookupTrait { 8751: static QVariant doLookUp(const QVariant &object, const QString &property) 8751: { 8751: typedef typename Grantlee::TypeAccessor Accessor; 8751: return Accessor::lookUp(object.value(), property); 8751: } 8751: }; 8751: 8751: template 8751: struct LookupTrait { 8751: static QVariant doLookUp(const QVariant &object, const QString &property) 8751: { 8751: typedef typename Grantlee::TypeAccessor Accessor; 8751: return Accessor::lookUp(object.value(), property); 8751: } 8751: }; 8751: 8751: template static int doRegister(int id) 8751: { 8751: if (MetaType::lookupAlreadyRegistered(id)) 8751: return id; 8751: 8751: QVariant (*lf)(const QVariant &, const QString &) 8751: = LookupTrait::doLookUp; 8751: 8751: MetaType::registerLookUpOperator( 8751: id, reinterpret_cast(lf)); 8751: 8751: return id; 8751: } 8751: 8751: 8751: 8751: 8751: template struct InternalRegisterType { 8751: static int doReg() 8751: { 8751: const int id = qMetaTypeId(); 8751: return doRegister(id); 8751: } 8751: }; 8751: 8751: template 8751: struct InternalRegisterType { 8751: static int doReg() 8751: { 8751: const int id = qMetaTypeId(); 8751: return doRegister(id); 8751: } 8751: }; 8751: } 8751: # 184 "/<>/templates/lib/metatype.h" 8751: template int registerMetaType() 8751: { 8751: MetaType::internalLock(); 8751: 8751: const int id = InternalRegisterType::doReg(); 8751: 8751: MetaType::internalUnlock(); 8751: 8751: return id; 8751: } 8751: # 202 "/<>/templates/lib/metatype.h" 8751: template int registerMetaType() 8751: { 8751: return registerMetaType(); 8751: } 8751: 8751: 8751: } 8751: # 26 "/<>/templates/tests/testgenericcontainers.cpp" 2 8751: # 1 "/<>/templates/tests/test_macros.h" 1 8751: # 29 "/<>/templates/tests/test_macros.h" 8751: # 1 "/<>/templates/tests/qtunorderedmap.h" 1 8751: # 24 "/<>/templates/tests/qtunorderedmap.h" 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QHash" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qhash.h" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QHash" 2 3 4 8751: # 25 "/<>/templates/tests/qtunorderedmap.h" 2 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/tr1/unordered_map" 1 3 8751: # 32 "/usr/include/c++/8/tr1/unordered_map" 3 8751: 8751: # 33 "/usr/include/c++/8/tr1/unordered_map" 3 8751: 8751: 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/tr1/type_traits" 1 3 8751: # 32 "/usr/include/c++/8/tr1/type_traits" 3 8751: 8751: # 33 "/usr/include/c++/8/tr1/type_traits" 3 8751: 8751: 8751: 8751: 8751: # 36 "/usr/include/c++/8/tr1/type_traits" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: namespace tr1 8751: { 8751: 8751: 8751: 8751: 8751: 8751: struct __sfinae_types 8751: { 8751: typedef char __one; 8751: typedef struct { char __arr[2]; } __two; 8751: }; 8751: # 70 "/usr/include/c++/8/tr1/type_traits" 3 8751: template 8751: struct integral_constant 8751: { 8751: static const _Tp value = __v; 8751: typedef _Tp value_type; 8751: typedef integral_constant<_Tp, __v> type; 8751: }; 8751: 8751: 8751: typedef integral_constant true_type; 8751: 8751: 8751: typedef integral_constant false_type; 8751: 8751: template 8751: const _Tp integral_constant<_Tp, __v>::value; 8751: 8751: 8751: template 8751: struct remove_cv; 8751: 8751: template 8751: struct __is_void_helper 8751: : public false_type { }; 8751: template<> struct __is_void_helper : public integral_constant { }; 8751: 8751: 8751: 8751: 8751: template 8751: struct is_void 8751: : public integral_constant::type>::value)> 8751: { }; 8751: 8751: template 8751: struct __is_integral_helper 8751: : public false_type { }; 8751: template<> struct __is_integral_helper : public integral_constant { }; 8751: template<> struct __is_integral_helper : public integral_constant { }; 8751: template<> struct __is_integral_helper : public integral_constant { }; 8751: template<> struct __is_integral_helper : public integral_constant { }; 8751: 8751: template<> struct __is_integral_helper : public integral_constant { }; 8751: 8751: template<> struct __is_integral_helper : public integral_constant { }; 8751: template<> struct __is_integral_helper : public integral_constant { }; 8751: template<> struct __is_integral_helper : public integral_constant { }; 8751: template<> struct __is_integral_helper : public integral_constant { }; 8751: template<> struct __is_integral_helper : public integral_constant { }; 8751: template<> struct __is_integral_helper : public integral_constant { }; 8751: template<> struct __is_integral_helper : public integral_constant { }; 8751: template<> struct __is_integral_helper : public integral_constant { }; 8751: 8751: 8751: template 8751: struct is_integral 8751: : public integral_constant::type>::value)> 8751: { }; 8751: 8751: template 8751: struct __is_floating_point_helper 8751: : public false_type { }; 8751: template<> struct __is_floating_point_helper : public integral_constant { }; 8751: template<> struct __is_floating_point_helper : public integral_constant { }; 8751: template<> struct __is_floating_point_helper : public integral_constant { }; 8751: 8751: 8751: template 8751: struct is_floating_point 8751: : public integral_constant::type>::value)> 8751: { }; 8751: 8751: 8751: template 8751: struct is_array 8751: : public false_type { }; 8751: 8751: template 8751: struct is_array<_Tp[_Size]> 8751: : public true_type { }; 8751: 8751: template 8751: struct is_array<_Tp[]> 8751: : public true_type { }; 8751: 8751: template 8751: struct __is_pointer_helper 8751: : public false_type { }; 8751: template struct __is_pointer_helper<_Tp*> : public integral_constant { }; 8751: 8751: 8751: template 8751: struct is_pointer 8751: : public integral_constant::type>::value)> 8751: { }; 8751: 8751: 8751: template 8751: struct is_reference; 8751: 8751: 8751: template 8751: struct is_function; 8751: 8751: template 8751: struct __is_member_object_pointer_helper 8751: : public false_type { }; 8751: template struct __is_member_object_pointer_helper<_Tp _Cp::*> : public integral_constant::value> { }; 8751: 8751: 8751: 8751: template 8751: struct is_member_object_pointer 8751: : public integral_constant::type>::value)> 8751: { }; 8751: 8751: template 8751: struct __is_member_function_pointer_helper 8751: : public false_type { }; 8751: template struct __is_member_function_pointer_helper<_Tp _Cp::*> : public integral_constant::value> { }; 8751: 8751: 8751: 8751: template 8751: struct is_member_function_pointer 8751: : public integral_constant::type>::value)> 8751: { }; 8751: 8751: 8751: template 8751: struct is_enum 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: template 8751: struct is_union 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: template 8751: struct is_class 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: template 8751: struct is_function 8751: : public false_type { }; 8751: template 8751: struct is_function<_Res(_ArgTypes...)> 8751: : public true_type { }; 8751: template 8751: struct is_function<_Res(_ArgTypes......)> 8751: : public true_type { }; 8751: template 8751: struct is_function<_Res(_ArgTypes...) const> 8751: : public true_type { }; 8751: template 8751: struct is_function<_Res(_ArgTypes......) const> 8751: : public true_type { }; 8751: template 8751: struct is_function<_Res(_ArgTypes...) volatile> 8751: : public true_type { }; 8751: template 8751: struct is_function<_Res(_ArgTypes......) volatile> 8751: : public true_type { }; 8751: template 8751: struct is_function<_Res(_ArgTypes...) const volatile> 8751: : public true_type { }; 8751: template 8751: struct is_function<_Res(_ArgTypes......) const volatile> 8751: : public true_type { }; 8751: 8751: 8751: 8751: 8751: template 8751: struct is_arithmetic 8751: : public integral_constant::value 8751: || is_floating_point<_Tp>::value)> 8751: { }; 8751: 8751: 8751: template 8751: struct is_fundamental 8751: : public integral_constant::value 8751: || is_void<_Tp>::value)> 8751: { }; 8751: 8751: 8751: template 8751: struct is_object 8751: : public integral_constant::value 8751: || is_reference<_Tp>::value 8751: || is_void<_Tp>::value)> 8751: { }; 8751: 8751: 8751: template 8751: struct is_member_pointer; 8751: 8751: 8751: template 8751: struct is_scalar 8751: : public integral_constant::value 8751: || is_enum<_Tp>::value 8751: || is_pointer<_Tp>::value 8751: || is_member_pointer<_Tp>::value)> 8751: { }; 8751: 8751: 8751: template 8751: struct is_compound 8751: : public integral_constant::value> { }; 8751: 8751: 8751: template 8751: struct __is_member_pointer_helper 8751: : public false_type { }; 8751: template struct __is_member_pointer_helper<_Tp _Cp::*> : public integral_constant { }; 8751: 8751: template 8751: struct is_member_pointer 8751: : public integral_constant::type>::value)> 8751: { }; 8751: 8751: 8751: 8751: template 8751: struct is_const 8751: : public false_type { }; 8751: 8751: template 8751: struct is_const<_Tp const> 8751: : public true_type { }; 8751: 8751: 8751: template 8751: struct is_volatile 8751: : public false_type { }; 8751: 8751: template 8751: struct is_volatile<_Tp volatile> 8751: : public true_type { }; 8751: 8751: 8751: template 8751: struct is_empty 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: template 8751: struct is_polymorphic 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: template 8751: struct is_abstract 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: template 8751: struct has_virtual_destructor 8751: : public integral_constant 8751: { }; 8751: 8751: 8751: template 8751: struct alignment_of 8751: : public integral_constant { }; 8751: 8751: 8751: template 8751: struct rank 8751: : public integral_constant { }; 8751: 8751: template 8751: struct rank<_Tp[_Size]> 8751: : public integral_constant::value> { }; 8751: 8751: template 8751: struct rank<_Tp[]> 8751: : public integral_constant::value> { }; 8751: 8751: 8751: template 8751: struct extent 8751: : public integral_constant { }; 8751: 8751: template 8751: struct extent<_Tp[_Size], _Uint> 8751: : public integral_constant::value> 8751: { }; 8751: 8751: template 8751: struct extent<_Tp[], _Uint> 8751: : public integral_constant::value> 8751: { }; 8751: 8751: 8751: 8751: 8751: template 8751: struct is_same 8751: : public false_type { }; 8751: 8751: template 8751: struct is_same<_Tp, _Tp> 8751: : public true_type { }; 8751: 8751: 8751: 8751: 8751: template 8751: struct remove_const 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct remove_const<_Tp const> 8751: { typedef _Tp type; }; 8751: 8751: 8751: template 8751: struct remove_volatile 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct remove_volatile<_Tp volatile> 8751: { typedef _Tp type; }; 8751: 8751: 8751: template 8751: struct remove_cv 8751: { 8751: typedef typename 8751: remove_const::type>::type type; 8751: }; 8751: 8751: 8751: template 8751: struct add_const 8751: { typedef _Tp const type; }; 8751: 8751: 8751: template 8751: struct add_volatile 8751: { typedef _Tp volatile type; }; 8751: 8751: 8751: template 8751: struct add_cv 8751: { 8751: typedef typename 8751: add_const::type>::type type; 8751: }; 8751: 8751: 8751: 8751: 8751: template 8751: struct remove_extent 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct remove_extent<_Tp[_Size]> 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct remove_extent<_Tp[]> 8751: { typedef _Tp type; }; 8751: 8751: 8751: template 8751: struct remove_all_extents 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct remove_all_extents<_Tp[_Size]> 8751: { typedef typename remove_all_extents<_Tp>::type type; }; 8751: 8751: template 8751: struct remove_all_extents<_Tp[]> 8751: { typedef typename remove_all_extents<_Tp>::type type; }; 8751: 8751: 8751: 8751: template 8751: struct __remove_pointer_helper 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct __remove_pointer_helper<_Tp, _Up*> 8751: { typedef _Up type; }; 8751: 8751: 8751: template 8751: struct remove_pointer 8751: : public __remove_pointer_helper<_Tp, typename remove_cv<_Tp>::type> 8751: { }; 8751: 8751: template 8751: struct remove_reference; 8751: 8751: 8751: template 8751: struct add_pointer 8751: { typedef typename remove_reference<_Tp>::type* type; }; 8751: 8751: template 8751: struct is_reference 8751: : public false_type { }; 8751: 8751: template 8751: struct is_reference<_Tp&> 8751: : public true_type { }; 8751: 8751: template 8751: struct is_pod 8751: : public integral_constant::value> 8751: { }; 8751: 8751: template 8751: struct has_trivial_constructor 8751: : public integral_constant::value> 8751: { }; 8751: 8751: template 8751: struct has_trivial_copy 8751: : public integral_constant::value> 8751: { }; 8751: 8751: template 8751: struct has_trivial_assign 8751: : public integral_constant::value> 8751: { }; 8751: 8751: template 8751: struct has_trivial_destructor 8751: : public integral_constant::value> 8751: { }; 8751: 8751: template 8751: struct has_nothrow_constructor 8751: : public integral_constant::value> 8751: { }; 8751: 8751: template 8751: struct has_nothrow_copy 8751: : public integral_constant::value> 8751: { }; 8751: 8751: template 8751: struct has_nothrow_assign 8751: : public integral_constant::value> 8751: { }; 8751: 8751: template 8751: struct __is_signed_helper 8751: : public false_type { }; 8751: template<> struct __is_signed_helper : public integral_constant { }; 8751: template<> struct __is_signed_helper : public integral_constant { }; 8751: template<> struct __is_signed_helper : public integral_constant { }; 8751: template<> struct __is_signed_helper : public integral_constant { }; 8751: template<> struct __is_signed_helper : public integral_constant { }; 8751: 8751: template 8751: struct is_signed 8751: : public integral_constant::type>::value)> 8751: { }; 8751: 8751: template 8751: struct __is_unsigned_helper 8751: : public false_type { }; 8751: template<> struct __is_unsigned_helper : public integral_constant { }; 8751: template<> struct __is_unsigned_helper : public integral_constant { }; 8751: template<> struct __is_unsigned_helper : public integral_constant { }; 8751: template<> struct __is_unsigned_helper : public integral_constant { }; 8751: template<> struct __is_unsigned_helper : public integral_constant { }; 8751: 8751: template 8751: struct is_unsigned 8751: : public integral_constant::type>::value)> 8751: { }; 8751: 8751: template 8751: struct __is_base_of_helper 8751: { 8751: typedef typename remove_cv<_Base>::type _NoCv_Base; 8751: typedef typename remove_cv<_Derived>::type _NoCv_Derived; 8751: static const bool __value = (is_same<_Base, _Derived>::value 8751: || (__is_base_of(_Base, _Derived) 8751: && !is_same<_NoCv_Base, 8751: _NoCv_Derived>::value)); 8751: }; 8751: 8751: template 8751: struct is_base_of 8751: : public integral_constant::__value> 8751: { }; 8751: 8751: template 8751: struct __is_convertible_simple 8751: : public __sfinae_types 8751: { 8751: private: 8751: static __one __test(_To); 8751: static __two __test(...); 8751: static _From __makeFrom(); 8751: 8751: public: 8751: static const bool __value = sizeof(__test(__makeFrom())) == 1; 8751: }; 8751: 8751: template 8751: struct add_reference; 8751: 8751: template 8751: struct __is_int_or_cref 8751: { 8751: typedef typename remove_reference<_Tp>::type __rr_Tp; 8751: static const bool __value = (is_integral<_Tp>::value 8751: || (is_integral<__rr_Tp>::value 8751: && is_const<__rr_Tp>::value 8751: && !is_volatile<__rr_Tp>::value)); 8751: }; 8751: 8751: template::value || is_void<_To>::value 8751: || is_function<_To>::value || is_array<_To>::value 8751: 8751: || (is_floating_point::type>::value 8751: && __is_int_or_cref<_To>::__value))> 8751: struct __is_convertible_helper 8751: { 8751: 8751: static const bool __value = (__is_convertible_simple::type, _To>::__value); 8751: }; 8751: 8751: template 8751: struct __is_convertible_helper<_From, _To, true> 8751: { static const bool __value = (is_void<_To>::value 8751: || (__is_int_or_cref<_To>::__value 8751: && !is_void<_From>::value)); }; 8751: 8751: template 8751: struct is_convertible 8751: : public integral_constant::__value> 8751: { }; 8751: 8751: 8751: template 8751: struct remove_reference 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct remove_reference<_Tp&> 8751: { typedef _Tp type; }; 8751: 8751: 8751: template::value 8751: || is_reference<_Tp>::value)> 8751: struct __add_reference_helper 8751: { typedef _Tp& type; }; 8751: 8751: template 8751: struct __add_reference_helper<_Tp, true> 8751: { typedef _Tp type; }; 8751: 8751: template 8751: struct add_reference 8751: : public __add_reference_helper<_Tp> 8751: { }; 8751: 8751: 8751: template 8751: struct aligned_storage 8751: { 8751: union type 8751: { 8751: unsigned char __data[_Len]; 8751: struct __attribute__((__aligned__((_Align)))) { } __align; 8751: }; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: } 8751: 8751: 8751: } 8751: # 40 "/usr/include/c++/8/tr1/unordered_map" 2 3 8751: # 1 "/usr/include/c++/8/tr1/functional_hash.h" 1 3 8751: # 33 "/usr/include/c++/8/tr1/functional_hash.h" 3 8751: 8751: # 34 "/usr/include/c++/8/tr1/functional_hash.h" 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: namespace tr1 8751: { 8751: 8751: 8751: 8751: template 8751: struct hash : public std::unary_function<_Tp, size_t> 8751: { 8751: size_t 8751: operator()(_Tp __val) const; 8751: }; 8751: 8751: 8751: template 8751: struct hash<_Tp*> : public std::unary_function<_Tp*, size_t> 8751: { 8751: size_t 8751: operator()(_Tp* __p) const 8751: { return reinterpret_cast(__p); } 8751: }; 8751: # 67 "/usr/include/c++/8/tr1/functional_hash.h" 3 8751: template<> inline size_t hash::operator()(bool __val) const { return static_cast(__val); }; 8751: template<> inline size_t hash::operator()(char __val) const { return static_cast(__val); }; 8751: template<> inline size_t hash::operator()(signed char __val) const { return static_cast(__val); }; 8751: template<> inline size_t hash::operator()(unsigned char __val) const { return static_cast(__val); }; 8751: template<> inline size_t hash::operator()(wchar_t __val) const { return static_cast(__val); }; 8751: template<> inline size_t hash::operator()(short __val) const { return static_cast(__val); }; 8751: template<> inline size_t hash::operator()(int __val) const { return static_cast(__val); }; 8751: template<> inline size_t hash::operator()(long __val) const { return static_cast(__val); }; 8751: template<> inline size_t hash::operator()(long long __val) const { return static_cast(__val); }; 8751: template<> inline size_t hash::operator()(unsigned short __val) const { return static_cast(__val); }; 8751: template<> inline size_t hash::operator()(unsigned int __val) const { return static_cast(__val); }; 8751: template<> inline size_t hash::operator()(unsigned long __val) const { return static_cast(__val); }; 8751: template<> inline size_t hash::operator()(unsigned long long __val) const { return static_cast(__val); }; 8751: # 91 "/usr/include/c++/8/tr1/functional_hash.h" 3 8751: template 8751: struct _Fnv_hash_base 8751: { 8751: template 8751: static size_t 8751: hash(const _Tp* __ptr, size_t __clength) 8751: { 8751: size_t __result = 0; 8751: const char* __cptr = reinterpret_cast(__ptr); 8751: for (; __clength; --__clength) 8751: __result = (__result * 131) + *__cptr++; 8751: return __result; 8751: } 8751: }; 8751: 8751: template<> 8751: struct _Fnv_hash_base<4> 8751: { 8751: template 8751: static size_t 8751: hash(const _Tp* __ptr, size_t __clength) 8751: { 8751: size_t __result = static_cast(2166136261UL); 8751: const char* __cptr = reinterpret_cast(__ptr); 8751: for (; __clength; --__clength) 8751: { 8751: __result ^= static_cast(*__cptr++); 8751: __result *= static_cast(16777619UL); 8751: } 8751: return __result; 8751: } 8751: }; 8751: 8751: template<> 8751: struct _Fnv_hash_base<8> 8751: { 8751: template 8751: static size_t 8751: hash(const _Tp* __ptr, size_t __clength) 8751: { 8751: size_t __result 8751: = static_cast(14695981039346656037ULL); 8751: const char* __cptr = reinterpret_cast(__ptr); 8751: for (; __clength; --__clength) 8751: { 8751: __result ^= static_cast(*__cptr++); 8751: __result *= static_cast(1099511628211ULL); 8751: } 8751: return __result; 8751: } 8751: }; 8751: 8751: struct _Fnv_hash 8751: : public _Fnv_hash_base 8751: { 8751: using _Fnv_hash_base::hash; 8751: 8751: template 8751: static size_t 8751: hash(const _Tp& __val) 8751: { return hash(&__val, sizeof(__val)); } 8751: }; 8751: 8751: 8751: template<> 8751: inline size_t 8751: hash::operator()(float __val) const 8751: { 8751: 8751: return __val != 0.0f ? std::tr1::_Fnv_hash::hash(__val) : 0; 8751: } 8751: 8751: 8751: template<> 8751: inline size_t 8751: hash::operator()(double __val) const 8751: { 8751: 8751: return __val != 0.0 ? std::tr1::_Fnv_hash::hash(__val) : 0; 8751: } 8751: 8751: 8751: template<> 8751: __attribute__ ((__pure__)) size_t 8751: hash::operator()(long double __val) const; 8751: 8751: 8751: template<> 8751: __attribute__ ((__pure__)) size_t 8751: hash::operator()(string) const; 8751: 8751: template<> 8751: __attribute__ ((__pure__)) size_t 8751: hash::operator()(const string&) const; 8751: 8751: 8751: template<> 8751: __attribute__ ((__pure__)) size_t 8751: hash::operator()(wstring) const; 8751: 8751: template<> 8751: __attribute__ ((__pure__)) size_t 8751: hash::operator()(const wstring&) const; 8751: 8751: } 8751: 8751: 8751: } 8751: # 41 "/usr/include/c++/8/tr1/unordered_map" 2 3 8751: # 1 "/usr/include/c++/8/tr1/hashtable.h" 1 3 8751: # 34 "/usr/include/c++/8/tr1/hashtable.h" 3 8751: 8751: # 35 "/usr/include/c++/8/tr1/hashtable.h" 3 8751: 8751: # 1 "/usr/include/c++/8/tr1/hashtable_policy.h" 1 3 8751: # 31 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: namespace tr1 8751: { 8751: namespace __detail 8751: { 8751: 8751: 8751: template 8751: inline typename std::iterator_traits<_Iterator>::difference_type 8751: __distance_fw(_Iterator __first, _Iterator __last, 8751: std::input_iterator_tag) 8751: { return 0; } 8751: 8751: template 8751: inline typename std::iterator_traits<_Iterator>::difference_type 8751: __distance_fw(_Iterator __first, _Iterator __last, 8751: std::forward_iterator_tag) 8751: { return std::distance(__first, __last); } 8751: 8751: template 8751: inline typename std::iterator_traits<_Iterator>::difference_type 8751: __distance_fw(_Iterator __first, _Iterator __last) 8751: { 8751: typedef typename std::iterator_traits<_Iterator>::iterator_category _Tag; 8751: return __distance_fw(__first, __last, _Tag()); 8751: } 8751: # 68 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8751: template 8751: struct _Hash_node; 8751: 8751: template 8751: struct _Hash_node<_Value, true> 8751: { 8751: _Value _M_v; 8751: std::size_t _M_hash_code; 8751: _Hash_node* _M_next; 8751: }; 8751: 8751: template 8751: struct _Hash_node<_Value, false> 8751: { 8751: _Value _M_v; 8751: _Hash_node* _M_next; 8751: }; 8751: 8751: 8751: 8751: template 8751: struct _Node_iterator_base 8751: { 8751: _Node_iterator_base(_Hash_node<_Value, __cache>* __p) 8751: : _M_cur(__p) { } 8751: 8751: void 8751: _M_incr() 8751: { _M_cur = _M_cur->_M_next; } 8751: 8751: _Hash_node<_Value, __cache>* _M_cur; 8751: }; 8751: 8751: template 8751: inline bool 8751: operator==(const _Node_iterator_base<_Value, __cache>& __x, 8751: const _Node_iterator_base<_Value, __cache>& __y) 8751: { return __x._M_cur == __y._M_cur; } 8751: 8751: template 8751: inline bool 8751: operator!=(const _Node_iterator_base<_Value, __cache>& __x, 8751: const _Node_iterator_base<_Value, __cache>& __y) 8751: { return __x._M_cur != __y._M_cur; } 8751: 8751: template 8751: struct _Node_iterator 8751: : public _Node_iterator_base<_Value, __cache> 8751: { 8751: typedef _Value value_type; 8751: typedef typename 8751: __gnu_cxx::__conditional_type<__constant_iterators, 8751: const _Value*, _Value*>::__type 8751: pointer; 8751: typedef typename 8751: __gnu_cxx::__conditional_type<__constant_iterators, 8751: const _Value&, _Value&>::__type 8751: reference; 8751: typedef std::ptrdiff_t difference_type; 8751: typedef std::forward_iterator_tag iterator_category; 8751: 8751: _Node_iterator() 8751: : _Node_iterator_base<_Value, __cache>(0) { } 8751: 8751: explicit 8751: _Node_iterator(_Hash_node<_Value, __cache>* __p) 8751: : _Node_iterator_base<_Value, __cache>(__p) { } 8751: 8751: reference 8751: operator*() const 8751: { return this->_M_cur->_M_v; } 8751: 8751: pointer 8751: operator->() const 8751: { return std::__addressof(this->_M_cur->_M_v); } 8751: 8751: _Node_iterator& 8751: operator++() 8751: { 8751: this->_M_incr(); 8751: return *this; 8751: } 8751: 8751: _Node_iterator 8751: operator++(int) 8751: { 8751: _Node_iterator __tmp(*this); 8751: this->_M_incr(); 8751: return __tmp; 8751: } 8751: }; 8751: 8751: template 8751: struct _Node_const_iterator 8751: : public _Node_iterator_base<_Value, __cache> 8751: { 8751: typedef _Value value_type; 8751: typedef const _Value* pointer; 8751: typedef const _Value& reference; 8751: typedef std::ptrdiff_t difference_type; 8751: typedef std::forward_iterator_tag iterator_category; 8751: 8751: _Node_const_iterator() 8751: : _Node_iterator_base<_Value, __cache>(0) { } 8751: 8751: explicit 8751: _Node_const_iterator(_Hash_node<_Value, __cache>* __p) 8751: : _Node_iterator_base<_Value, __cache>(__p) { } 8751: 8751: _Node_const_iterator(const _Node_iterator<_Value, __constant_iterators, 8751: __cache>& __x) 8751: : _Node_iterator_base<_Value, __cache>(__x._M_cur) { } 8751: 8751: reference 8751: operator*() const 8751: { return this->_M_cur->_M_v; } 8751: 8751: pointer 8751: operator->() const 8751: { return std::__addressof(this->_M_cur->_M_v); } 8751: 8751: _Node_const_iterator& 8751: operator++() 8751: { 8751: this->_M_incr(); 8751: return *this; 8751: } 8751: 8751: _Node_const_iterator 8751: operator++(int) 8751: { 8751: _Node_const_iterator __tmp(*this); 8751: this->_M_incr(); 8751: return __tmp; 8751: } 8751: }; 8751: 8751: template 8751: struct _Hashtable_iterator_base 8751: { 8751: _Hashtable_iterator_base(_Hash_node<_Value, __cache>* __node, 8751: _Hash_node<_Value, __cache>** __bucket) 8751: : _M_cur_node(__node), _M_cur_bucket(__bucket) { } 8751: 8751: void 8751: _M_incr() 8751: { 8751: _M_cur_node = _M_cur_node->_M_next; 8751: if (!_M_cur_node) 8751: _M_incr_bucket(); 8751: } 8751: 8751: void 8751: _M_incr_bucket(); 8751: 8751: _Hash_node<_Value, __cache>* _M_cur_node; 8751: _Hash_node<_Value, __cache>** _M_cur_bucket; 8751: }; 8751: 8751: 8751: 8751: template 8751: void 8751: _Hashtable_iterator_base<_Value, __cache>:: 8751: _M_incr_bucket() 8751: { 8751: ++_M_cur_bucket; 8751: 8751: 8751: while (!*_M_cur_bucket) 8751: ++_M_cur_bucket; 8751: _M_cur_node = *_M_cur_bucket; 8751: } 8751: 8751: template 8751: inline bool 8751: operator==(const _Hashtable_iterator_base<_Value, __cache>& __x, 8751: const _Hashtable_iterator_base<_Value, __cache>& __y) 8751: { return __x._M_cur_node == __y._M_cur_node; } 8751: 8751: template 8751: inline bool 8751: operator!=(const _Hashtable_iterator_base<_Value, __cache>& __x, 8751: const _Hashtable_iterator_base<_Value, __cache>& __y) 8751: { return __x._M_cur_node != __y._M_cur_node; } 8751: 8751: template 8751: struct _Hashtable_iterator 8751: : public _Hashtable_iterator_base<_Value, __cache> 8751: { 8751: typedef _Value value_type; 8751: typedef typename 8751: __gnu_cxx::__conditional_type<__constant_iterators, 8751: const _Value*, _Value*>::__type 8751: pointer; 8751: typedef typename 8751: __gnu_cxx::__conditional_type<__constant_iterators, 8751: const _Value&, _Value&>::__type 8751: reference; 8751: typedef std::ptrdiff_t difference_type; 8751: typedef std::forward_iterator_tag iterator_category; 8751: 8751: _Hashtable_iterator() 8751: : _Hashtable_iterator_base<_Value, __cache>(0, 0) { } 8751: 8751: _Hashtable_iterator(_Hash_node<_Value, __cache>* __p, 8751: _Hash_node<_Value, __cache>** __b) 8751: : _Hashtable_iterator_base<_Value, __cache>(__p, __b) { } 8751: 8751: explicit 8751: _Hashtable_iterator(_Hash_node<_Value, __cache>** __b) 8751: : _Hashtable_iterator_base<_Value, __cache>(*__b, __b) { } 8751: 8751: reference 8751: operator*() const 8751: { return this->_M_cur_node->_M_v; } 8751: 8751: pointer 8751: operator->() const 8751: { return std::__addressof(this->_M_cur_node->_M_v); } 8751: 8751: _Hashtable_iterator& 8751: operator++() 8751: { 8751: this->_M_incr(); 8751: return *this; 8751: } 8751: 8751: _Hashtable_iterator 8751: operator++(int) 8751: { 8751: _Hashtable_iterator __tmp(*this); 8751: this->_M_incr(); 8751: return __tmp; 8751: } 8751: }; 8751: 8751: template 8751: struct _Hashtable_const_iterator 8751: : public _Hashtable_iterator_base<_Value, __cache> 8751: { 8751: typedef _Value value_type; 8751: typedef const _Value* pointer; 8751: typedef const _Value& reference; 8751: typedef std::ptrdiff_t difference_type; 8751: typedef std::forward_iterator_tag iterator_category; 8751: 8751: _Hashtable_const_iterator() 8751: : _Hashtable_iterator_base<_Value, __cache>(0, 0) { } 8751: 8751: _Hashtable_const_iterator(_Hash_node<_Value, __cache>* __p, 8751: _Hash_node<_Value, __cache>** __b) 8751: : _Hashtable_iterator_base<_Value, __cache>(__p, __b) { } 8751: 8751: explicit 8751: _Hashtable_const_iterator(_Hash_node<_Value, __cache>** __b) 8751: : _Hashtable_iterator_base<_Value, __cache>(*__b, __b) { } 8751: 8751: _Hashtable_const_iterator(const _Hashtable_iterator<_Value, 8751: __constant_iterators, __cache>& __x) 8751: : _Hashtable_iterator_base<_Value, __cache>(__x._M_cur_node, 8751: __x._M_cur_bucket) { } 8751: 8751: reference 8751: operator*() const 8751: { return this->_M_cur_node->_M_v; } 8751: 8751: pointer 8751: operator->() const 8751: { return std::__addressof(this->_M_cur_node->_M_v); } 8751: 8751: _Hashtable_const_iterator& 8751: operator++() 8751: { 8751: this->_M_incr(); 8751: return *this; 8751: } 8751: 8751: _Hashtable_const_iterator 8751: operator++(int) 8751: { 8751: _Hashtable_const_iterator __tmp(*this); 8751: this->_M_incr(); 8751: return __tmp; 8751: } 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: struct _Mod_range_hashing 8751: { 8751: typedef std::size_t first_argument_type; 8751: typedef std::size_t second_argument_type; 8751: typedef std::size_t result_type; 8751: 8751: result_type 8751: operator()(first_argument_type __num, second_argument_type __den) const 8751: { return __num % __den; } 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: struct _Default_ranged_hash { }; 8751: 8751: 8751: 8751: struct _Prime_rehash_policy 8751: { 8751: _Prime_rehash_policy(float __z = 1.0) 8751: : _M_max_load_factor(__z), _M_growth_factor(2.f), _M_next_resize(0) { } 8751: 8751: float 8751: max_load_factor() const 8751: { return _M_max_load_factor; } 8751: 8751: 8751: std::size_t 8751: _M_next_bkt(std::size_t __n) const; 8751: 8751: 8751: std::size_t 8751: _M_bkt_for_elements(std::size_t __n) const; 8751: 8751: 8751: 8751: 8751: 8751: std::pair 8751: _M_need_rehash(std::size_t __n_bkt, std::size_t __n_elt, 8751: std::size_t __n_ins) const; 8751: 8751: enum { _S_n_primes = sizeof(unsigned long) != 8 ? 256 : 256 + 48 }; 8751: 8751: float _M_max_load_factor; 8751: float _M_growth_factor; 8751: mutable std::size_t _M_next_resize; 8751: }; 8751: 8751: extern const unsigned long __prime_list[]; 8751: 8751: 8751: 8751: 8751: 8751: inline std::size_t 8751: _Prime_rehash_policy:: 8751: _M_next_bkt(std::size_t __n) const 8751: { 8751: 8751: 8751: 8751: const unsigned long* __p 8751: = std::lower_bound(__prime_list, __prime_list + _S_n_primes - 1, __n); 8751: _M_next_resize = 8751: static_cast(__builtin_ceil(*__p * _M_max_load_factor)); 8751: return *__p; 8751: } 8751: 8751: 8751: 8751: inline std::size_t 8751: _Prime_rehash_policy:: 8751: _M_bkt_for_elements(std::size_t __n) const 8751: { 8751: const float __min_bkts = __n / _M_max_load_factor; 8751: return _M_next_bkt(__builtin_ceil(__min_bkts)); 8751: } 8751: # 452 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8751: inline std::pair 8751: _Prime_rehash_policy:: 8751: _M_need_rehash(std::size_t __n_bkt, std::size_t __n_elt, 8751: std::size_t __n_ins) const 8751: { 8751: if (__n_elt + __n_ins > _M_next_resize) 8751: { 8751: float __min_bkts = ((float(__n_ins) + float(__n_elt)) 8751: / _M_max_load_factor); 8751: if (__min_bkts > __n_bkt) 8751: { 8751: __min_bkts = std::max(__min_bkts, _M_growth_factor * __n_bkt); 8751: return std::make_pair(true, 8751: _M_next_bkt(__builtin_ceil(__min_bkts))); 8751: } 8751: else 8751: { 8751: _M_next_resize = static_cast 8751: (__builtin_ceil(__n_bkt * _M_max_load_factor)); 8751: return std::make_pair(false, 0); 8751: } 8751: } 8751: else 8751: return std::make_pair(false, 0); 8751: } 8751: # 492 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8751: template 8751: struct _Map_base { }; 8751: 8751: template 8751: struct _Map_base<_Key, _Pair, std::_Select1st<_Pair>, false, _Hashtable> 8751: { 8751: typedef typename _Pair::second_type mapped_type; 8751: }; 8751: 8751: template 8751: struct _Map_base<_Key, _Pair, std::_Select1st<_Pair>, true, _Hashtable> 8751: { 8751: typedef typename _Pair::second_type mapped_type; 8751: 8751: mapped_type& 8751: operator[](const _Key& __k); 8751: }; 8751: 8751: template 8751: typename _Map_base<_Key, _Pair, std::_Select1st<_Pair>, 8751: true, _Hashtable>::mapped_type& 8751: _Map_base<_Key, _Pair, std::_Select1st<_Pair>, true, _Hashtable>:: 8751: operator[](const _Key& __k) 8751: { 8751: _Hashtable* __h = static_cast<_Hashtable*>(this); 8751: typename _Hashtable::_Hash_code_type __code = __h->_M_hash_code(__k); 8751: std::size_t __n = __h->_M_bucket_index(__k, __code, 8751: __h->_M_bucket_count); 8751: 8751: typename _Hashtable::_Node* __p = 8751: __h->_M_find_node(__h->_M_buckets[__n], __k, __code); 8751: if (!__p) 8751: return __h->_M_insert_bucket(std::make_pair(__k, mapped_type()), 8751: __n, __code)->second; 8751: return (__p->_M_v).second; 8751: } 8751: 8751: 8751: 8751: template 8751: struct _Rehash_base { }; 8751: 8751: template 8751: struct _Rehash_base<_Prime_rehash_policy, _Hashtable> 8751: { 8751: float 8751: max_load_factor() const 8751: { 8751: const _Hashtable* __this = static_cast(this); 8751: return __this->__rehash_policy().max_load_factor(); 8751: } 8751: 8751: void 8751: max_load_factor(float __z) 8751: { 8751: _Hashtable* __this = static_cast<_Hashtable*>(this); 8751: __this->__rehash_policy(_Prime_rehash_policy(__z)); 8751: } 8751: }; 8751: # 565 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8751: template 8751: struct _Hash_code_base; 8751: 8751: 8751: 8751: template 8751: struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, 8751: _Hash, false> 8751: { 8751: protected: 8751: _Hash_code_base(const _ExtractKey& __ex, const _Equal& __eq, 8751: const _H1&, const _H2&, const _Hash& __h) 8751: : _M_extract(__ex), _M_eq(__eq), _M_ranged_hash(__h) { } 8751: 8751: typedef void* _Hash_code_type; 8751: 8751: _Hash_code_type 8751: _M_hash_code(const _Key& __key) const 8751: { return 0; } 8751: 8751: std::size_t 8751: _M_bucket_index(const _Key& __k, _Hash_code_type, 8751: std::size_t __n) const 8751: { return _M_ranged_hash(__k, __n); } 8751: 8751: std::size_t 8751: _M_bucket_index(const _Hash_node<_Value, false>* __p, 8751: std::size_t __n) const 8751: { return _M_ranged_hash(_M_extract(__p->_M_v), __n); } 8751: 8751: bool 8751: _M_compare(const _Key& __k, _Hash_code_type, 8751: _Hash_node<_Value, false>* __n) const 8751: { return _M_eq(__k, _M_extract(__n->_M_v)); } 8751: 8751: void 8751: _M_store_code(_Hash_node<_Value, false>*, _Hash_code_type) const 8751: { } 8751: 8751: void 8751: _M_copy_code(_Hash_node<_Value, false>*, 8751: const _Hash_node<_Value, false>*) const 8751: { } 8751: 8751: void 8751: _M_swap(_Hash_code_base& __x) 8751: { 8751: std::swap(_M_extract, __x._M_extract); 8751: std::swap(_M_eq, __x._M_eq); 8751: std::swap(_M_ranged_hash, __x._M_ranged_hash); 8751: } 8751: 8751: protected: 8751: _ExtractKey _M_extract; 8751: _Equal _M_eq; 8751: _Hash _M_ranged_hash; 8751: }; 8751: # 636 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8751: template 8751: struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, 8751: _Hash, true>; 8751: 8751: 8751: 8751: 8751: template 8751: struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, 8751: _Default_ranged_hash, false> 8751: { 8751: typedef _H1 hasher; 8751: 8751: hasher 8751: hash_function() const 8751: { return _M_h1; } 8751: 8751: protected: 8751: _Hash_code_base(const _ExtractKey& __ex, const _Equal& __eq, 8751: const _H1& __h1, const _H2& __h2, 8751: const _Default_ranged_hash&) 8751: : _M_extract(__ex), _M_eq(__eq), _M_h1(__h1), _M_h2(__h2) { } 8751: 8751: typedef std::size_t _Hash_code_type; 8751: 8751: _Hash_code_type 8751: _M_hash_code(const _Key& __k) const 8751: { return _M_h1(__k); } 8751: 8751: std::size_t 8751: _M_bucket_index(const _Key&, _Hash_code_type __c, 8751: std::size_t __n) const 8751: { return _M_h2(__c, __n); } 8751: 8751: std::size_t 8751: _M_bucket_index(const _Hash_node<_Value, false>* __p, 8751: std::size_t __n) const 8751: { return _M_h2(_M_h1(_M_extract(__p->_M_v)), __n); } 8751: 8751: bool 8751: _M_compare(const _Key& __k, _Hash_code_type, 8751: _Hash_node<_Value, false>* __n) const 8751: { return _M_eq(__k, _M_extract(__n->_M_v)); } 8751: 8751: void 8751: _M_store_code(_Hash_node<_Value, false>*, _Hash_code_type) const 8751: { } 8751: 8751: void 8751: _M_copy_code(_Hash_node<_Value, false>*, 8751: const _Hash_node<_Value, false>*) const 8751: { } 8751: 8751: void 8751: _M_swap(_Hash_code_base& __x) 8751: { 8751: std::swap(_M_extract, __x._M_extract); 8751: std::swap(_M_eq, __x._M_eq); 8751: std::swap(_M_h1, __x._M_h1); 8751: std::swap(_M_h2, __x._M_h2); 8751: } 8751: 8751: protected: 8751: _ExtractKey _M_extract; 8751: _Equal _M_eq; 8751: _H1 _M_h1; 8751: _H2 _M_h2; 8751: }; 8751: 8751: 8751: 8751: 8751: template 8751: struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, 8751: _Default_ranged_hash, true> 8751: { 8751: typedef _H1 hasher; 8751: 8751: hasher 8751: hash_function() const 8751: { return _M_h1; } 8751: 8751: protected: 8751: _Hash_code_base(const _ExtractKey& __ex, const _Equal& __eq, 8751: const _H1& __h1, const _H2& __h2, 8751: const _Default_ranged_hash&) 8751: : _M_extract(__ex), _M_eq(__eq), _M_h1(__h1), _M_h2(__h2) { } 8751: 8751: typedef std::size_t _Hash_code_type; 8751: 8751: _Hash_code_type 8751: _M_hash_code(const _Key& __k) const 8751: { return _M_h1(__k); } 8751: 8751: std::size_t 8751: _M_bucket_index(const _Key&, _Hash_code_type __c, 8751: std::size_t __n) const 8751: { return _M_h2(__c, __n); } 8751: 8751: std::size_t 8751: _M_bucket_index(const _Hash_node<_Value, true>* __p, 8751: std::size_t __n) const 8751: { return _M_h2(__p->_M_hash_code, __n); } 8751: 8751: bool 8751: _M_compare(const _Key& __k, _Hash_code_type __c, 8751: _Hash_node<_Value, true>* __n) const 8751: { return __c == __n->_M_hash_code && _M_eq(__k, _M_extract(__n->_M_v)); } 8751: 8751: void 8751: _M_store_code(_Hash_node<_Value, true>* __n, _Hash_code_type __c) const 8751: { __n->_M_hash_code = __c; } 8751: 8751: void 8751: _M_copy_code(_Hash_node<_Value, true>* __to, 8751: const _Hash_node<_Value, true>* __from) const 8751: { __to->_M_hash_code = __from->_M_hash_code; } 8751: 8751: void 8751: _M_swap(_Hash_code_base& __x) 8751: { 8751: std::swap(_M_extract, __x._M_extract); 8751: std::swap(_M_eq, __x._M_eq); 8751: std::swap(_M_h1, __x._M_h1); 8751: std::swap(_M_h2, __x._M_h2); 8751: } 8751: 8751: protected: 8751: _ExtractKey _M_extract; 8751: _Equal _M_eq; 8751: _H1 _M_h1; 8751: _H2 _M_h2; 8751: }; 8751: } 8751: } 8751: 8751: 8751: } 8751: # 37 "/usr/include/c++/8/tr1/hashtable.h" 2 3 8751: 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: namespace tr1 8751: { 8751: # 101 "/usr/include/c++/8/tr1/hashtable.h" 3 8751: template 8751: class _Hashtable 8751: : public __detail::_Rehash_base<_RehashPolicy, 8751: _Hashtable<_Key, _Value, _Allocator, 8751: _ExtractKey, 8751: _Equal, _H1, _H2, _Hash, 8751: _RehashPolicy, 8751: __cache_hash_code, 8751: __constant_iterators, 8751: __unique_keys> >, 8751: public __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, __cache_hash_code>, 8751: public __detail::_Map_base<_Key, _Value, _ExtractKey, __unique_keys, 8751: _Hashtable<_Key, _Value, _Allocator, 8751: _ExtractKey, 8751: _Equal, _H1, _H2, _Hash, 8751: _RehashPolicy, 8751: __cache_hash_code, 8751: __constant_iterators, 8751: __unique_keys> > 8751: { 8751: public: 8751: typedef _Allocator allocator_type; 8751: typedef _Value value_type; 8751: typedef _Key key_type; 8751: typedef _Equal key_equal; 8751: 8751: 8751: typedef typename _Allocator::difference_type difference_type; 8751: typedef typename _Allocator::size_type size_type; 8751: typedef typename _Allocator::pointer pointer; 8751: typedef typename _Allocator::const_pointer const_pointer; 8751: typedef typename _Allocator::reference reference; 8751: typedef typename _Allocator::const_reference const_reference; 8751: 8751: typedef __detail::_Node_iterator 8751: local_iterator; 8751: typedef __detail::_Node_const_iterator 8751: const_local_iterator; 8751: 8751: typedef __detail::_Hashtable_iterator 8751: iterator; 8751: typedef __detail::_Hashtable_const_iterator 8751: const_iterator; 8751: 8751: template 8751: friend struct __detail::_Map_base; 8751: 8751: private: 8751: typedef __detail::_Hash_node<_Value, __cache_hash_code> _Node; 8751: typedef typename _Allocator::template rebind<_Node>::other 8751: _Node_allocator_type; 8751: typedef typename _Allocator::template rebind<_Node*>::other 8751: _Bucket_allocator_type; 8751: 8751: typedef typename _Allocator::template rebind<_Value>::other 8751: _Value_allocator_type; 8751: 8751: _Node_allocator_type _M_node_allocator; 8751: _Node** _M_buckets; 8751: size_type _M_bucket_count; 8751: size_type _M_element_count; 8751: _RehashPolicy _M_rehash_policy; 8751: 8751: _Node* 8751: _M_allocate_node(const value_type& __v); 8751: 8751: void 8751: _M_deallocate_node(_Node* __n); 8751: 8751: void 8751: _M_deallocate_nodes(_Node**, size_type); 8751: 8751: _Node** 8751: _M_allocate_buckets(size_type __n); 8751: 8751: void 8751: _M_deallocate_buckets(_Node**, size_type __n); 8751: 8751: public: 8751: 8751: _Hashtable(size_type __bucket_hint, 8751: const _H1&, const _H2&, const _Hash&, 8751: const _Equal&, const _ExtractKey&, 8751: const allocator_type&); 8751: 8751: template 8751: _Hashtable(_InputIterator __first, _InputIterator __last, 8751: size_type __bucket_hint, 8751: const _H1&, const _H2&, const _Hash&, 8751: const _Equal&, const _ExtractKey&, 8751: const allocator_type&); 8751: 8751: _Hashtable(const _Hashtable&); 8751: 8751: _Hashtable& 8751: operator=(const _Hashtable&); 8751: 8751: ~_Hashtable(); 8751: 8751: void swap(_Hashtable&); 8751: 8751: 8751: iterator 8751: begin() 8751: { 8751: iterator __i(_M_buckets); 8751: if (!__i._M_cur_node) 8751: __i._M_incr_bucket(); 8751: return __i; 8751: } 8751: 8751: const_iterator 8751: begin() const 8751: { 8751: const_iterator __i(_M_buckets); 8751: if (!__i._M_cur_node) 8751: __i._M_incr_bucket(); 8751: return __i; 8751: } 8751: 8751: iterator 8751: end() 8751: { return iterator(_M_buckets + _M_bucket_count); } 8751: 8751: const_iterator 8751: end() const 8751: { return const_iterator(_M_buckets + _M_bucket_count); } 8751: 8751: size_type 8751: size() const 8751: { return _M_element_count; } 8751: 8751: bool 8751: empty() const 8751: { return size() == 0; } 8751: 8751: allocator_type 8751: get_allocator() const 8751: { return allocator_type(_M_node_allocator); } 8751: 8751: _Value_allocator_type 8751: _M_get_Value_allocator() const 8751: { return _Value_allocator_type(_M_node_allocator); } 8751: 8751: size_type 8751: max_size() const 8751: { return _M_node_allocator.max_size(); } 8751: 8751: 8751: key_equal 8751: key_eq() const 8751: { return this->_M_eq; } 8751: 8751: 8751: 8751: 8751: size_type 8751: bucket_count() const 8751: { return _M_bucket_count; } 8751: 8751: size_type 8751: max_bucket_count() const 8751: { return max_size(); } 8751: 8751: size_type 8751: bucket_size(size_type __n) const 8751: { return std::distance(begin(__n), end(__n)); } 8751: 8751: size_type 8751: bucket(const key_type& __k) const 8751: { 8751: return this->_M_bucket_index(__k, this->_M_hash_code(__k), 8751: bucket_count()); 8751: } 8751: 8751: local_iterator 8751: begin(size_type __n) 8751: { return local_iterator(_M_buckets[__n]); } 8751: 8751: local_iterator 8751: end(size_type) 8751: { return local_iterator(0); } 8751: 8751: const_local_iterator 8751: begin(size_type __n) const 8751: { return const_local_iterator(_M_buckets[__n]); } 8751: 8751: const_local_iterator 8751: end(size_type) const 8751: { return const_local_iterator(0); } 8751: 8751: float 8751: load_factor() const 8751: { 8751: return static_cast(size()) / static_cast(bucket_count()); 8751: } 8751: 8751: 8751: 8751: 8751: 8751: const _RehashPolicy& 8751: __rehash_policy() const 8751: { return _M_rehash_policy; } 8751: 8751: void 8751: __rehash_policy(const _RehashPolicy&); 8751: 8751: 8751: iterator 8751: find(const key_type& __k); 8751: 8751: const_iterator 8751: find(const key_type& __k) const; 8751: 8751: size_type 8751: count(const key_type& __k) const; 8751: 8751: std::pair 8751: equal_range(const key_type& __k); 8751: 8751: std::pair 8751: equal_range(const key_type& __k) const; 8751: 8751: private: 8751: 8751: 8751: 8751: 8751: typedef typename __gnu_cxx::__conditional_type<__unique_keys, 8751: std::pair, iterator>::__type 8751: _Insert_Return_Type; 8751: 8751: typedef typename __gnu_cxx::__conditional_type<__unique_keys, 8751: std::_Select1st<_Insert_Return_Type>, 8751: std::_Identity<_Insert_Return_Type> 8751: >::__type 8751: _Insert_Conv_Type; 8751: 8751: _Node* 8751: _M_find_node(_Node*, const key_type&, 8751: typename _Hashtable::_Hash_code_type) const; 8751: 8751: iterator 8751: _M_insert_bucket(const value_type&, size_type, 8751: typename _Hashtable::_Hash_code_type); 8751: 8751: std::pair 8751: _M_insert(const value_type&, std::tr1::true_type); 8751: 8751: iterator 8751: _M_insert(const value_type&, std::tr1::false_type); 8751: 8751: void 8751: _M_erase_node(_Node*, _Node**); 8751: 8751: public: 8751: 8751: _Insert_Return_Type 8751: insert(const value_type& __v) 8751: { return _M_insert(__v, std::tr1::integral_constant()); } 8751: 8751: iterator 8751: insert(iterator, const value_type& __v) 8751: { return iterator(_Insert_Conv_Type()(this->insert(__v))); } 8751: 8751: const_iterator 8751: insert(const_iterator, const value_type& __v) 8751: { return const_iterator(_Insert_Conv_Type()(this->insert(__v))); } 8751: 8751: template 8751: void 8751: insert(_InputIterator __first, _InputIterator __last); 8751: 8751: iterator 8751: erase(iterator); 8751: 8751: const_iterator 8751: erase(const_iterator); 8751: 8751: size_type 8751: erase(const key_type&); 8751: 8751: iterator 8751: erase(iterator, iterator); 8751: 8751: const_iterator 8751: erase(const_iterator, const_iterator); 8751: 8751: void 8751: clear(); 8751: 8751: 8751: void rehash(size_type __n); 8751: 8751: private: 8751: 8751: void _M_rehash(size_type __n); 8751: }; 8751: 8751: 8751: 8751: template 8751: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, 8751: __chc, __cit, __uk>::_Node* 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: _M_allocate_node(const value_type& __v) 8751: { 8751: _Node* __n = _M_node_allocator.allocate(1); 8751: try 8751: { 8751: _M_get_Value_allocator().construct(&__n->_M_v, __v); 8751: __n->_M_next = 0; 8751: return __n; 8751: } 8751: catch(...) 8751: { 8751: _M_node_allocator.deallocate(__n, 1); 8751: throw; 8751: } 8751: } 8751: 8751: template 8751: void 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: _M_deallocate_node(_Node* __n) 8751: { 8751: _M_get_Value_allocator().destroy(&__n->_M_v); 8751: _M_node_allocator.deallocate(__n, 1); 8751: } 8751: 8751: template 8751: void 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: _M_deallocate_nodes(_Node** __array, size_type __n) 8751: { 8751: for (size_type __i = 0; __i < __n; ++__i) 8751: { 8751: _Node* __p = __array[__i]; 8751: while (__p) 8751: { 8751: _Node* __tmp = __p; 8751: __p = __p->_M_next; 8751: _M_deallocate_node(__tmp); 8751: } 8751: __array[__i] = 0; 8751: } 8751: } 8751: 8751: template 8751: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, 8751: __chc, __cit, __uk>::_Node** 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: _M_allocate_buckets(size_type __n) 8751: { 8751: _Bucket_allocator_type __alloc(_M_node_allocator); 8751: 8751: 8751: 8751: _Node** __p = __alloc.allocate(__n + 1); 8751: std::fill(__p, __p + __n, (_Node*) 0); 8751: __p[__n] = reinterpret_cast<_Node*>(0x1000); 8751: return __p; 8751: } 8751: 8751: template 8751: void 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: _M_deallocate_buckets(_Node** __p, size_type __n) 8751: { 8751: _Bucket_allocator_type __alloc(_M_node_allocator); 8751: __alloc.deallocate(__p, __n + 1); 8751: } 8751: 8751: template 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: _Hashtable(size_type __bucket_hint, 8751: const _H1& __h1, const _H2& __h2, const _Hash& __h, 8751: const _Equal& __eq, const _ExtractKey& __exk, 8751: const allocator_type& __a) 8751: : __detail::_Rehash_base<_RehashPolicy, _Hashtable>(), 8751: __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, __chc>(__exk, __eq, 8751: __h1, __h2, __h), 8751: __detail::_Map_base<_Key, _Value, _ExtractKey, __uk, _Hashtable>(), 8751: _M_node_allocator(__a), 8751: _M_bucket_count(0), 8751: _M_element_count(0), 8751: _M_rehash_policy() 8751: { 8751: _M_bucket_count = _M_rehash_policy._M_next_bkt(__bucket_hint); 8751: _M_buckets = _M_allocate_buckets(_M_bucket_count); 8751: } 8751: 8751: template 8751: template 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: _Hashtable(_InputIterator __f, _InputIterator __l, 8751: size_type __bucket_hint, 8751: const _H1& __h1, const _H2& __h2, const _Hash& __h, 8751: const _Equal& __eq, const _ExtractKey& __exk, 8751: const allocator_type& __a) 8751: : __detail::_Rehash_base<_RehashPolicy, _Hashtable>(), 8751: __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, __chc>(__exk, __eq, 8751: __h1, __h2, __h), 8751: __detail::_Map_base<_Key, _Value, _ExtractKey, __uk, _Hashtable>(), 8751: _M_node_allocator(__a), 8751: _M_bucket_count(0), 8751: _M_element_count(0), 8751: _M_rehash_policy() 8751: { 8751: _M_bucket_count = std::max(_M_rehash_policy._M_next_bkt(__bucket_hint), 8751: _M_rehash_policy. 8751: _M_bkt_for_elements(__detail:: 8751: __distance_fw(__f, 8751: __l))); 8751: _M_buckets = _M_allocate_buckets(_M_bucket_count); 8751: try 8751: { 8751: for (; __f != __l; ++__f) 8751: this->insert(*__f); 8751: } 8751: catch(...) 8751: { 8751: clear(); 8751: _M_deallocate_buckets(_M_buckets, _M_bucket_count); 8751: throw; 8751: } 8751: } 8751: 8751: template 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: _Hashtable(const _Hashtable& __ht) 8751: : __detail::_Rehash_base<_RehashPolicy, _Hashtable>(__ht), 8751: __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, __chc>(__ht), 8751: __detail::_Map_base<_Key, _Value, _ExtractKey, __uk, _Hashtable>(__ht), 8751: _M_node_allocator(__ht._M_node_allocator), 8751: _M_bucket_count(__ht._M_bucket_count), 8751: _M_element_count(__ht._M_element_count), 8751: _M_rehash_policy(__ht._M_rehash_policy) 8751: { 8751: _M_buckets = _M_allocate_buckets(_M_bucket_count); 8751: try 8751: { 8751: for (size_type __i = 0; __i < __ht._M_bucket_count; ++__i) 8751: { 8751: _Node* __n = __ht._M_buckets[__i]; 8751: _Node** __tail = _M_buckets + __i; 8751: while (__n) 8751: { 8751: *__tail = _M_allocate_node(__n->_M_v); 8751: this->_M_copy_code(*__tail, __n); 8751: __tail = &((*__tail)->_M_next); 8751: __n = __n->_M_next; 8751: } 8751: } 8751: } 8751: catch(...) 8751: { 8751: clear(); 8751: _M_deallocate_buckets(_M_buckets, _M_bucket_count); 8751: throw; 8751: } 8751: } 8751: 8751: template 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>& 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: operator=(const _Hashtable& __ht) 8751: { 8751: _Hashtable __tmp(__ht); 8751: this->swap(__tmp); 8751: return *this; 8751: } 8751: 8751: template 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: ~_Hashtable() 8751: { 8751: clear(); 8751: _M_deallocate_buckets(_M_buckets, _M_bucket_count); 8751: } 8751: 8751: template 8751: void 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: swap(_Hashtable& __x) 8751: { 8751: 8751: 8751: 8751: __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, __chc>::_M_swap(__x); 8751: 8751: 8751: 8751: std::__alloc_swap<_Node_allocator_type>::_S_do_it(_M_node_allocator, 8751: __x._M_node_allocator); 8751: 8751: std::swap(_M_rehash_policy, __x._M_rehash_policy); 8751: std::swap(_M_buckets, __x._M_buckets); 8751: std::swap(_M_bucket_count, __x._M_bucket_count); 8751: std::swap(_M_element_count, __x._M_element_count); 8751: } 8751: 8751: template 8751: void 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: __rehash_policy(const _RehashPolicy& __pol) 8751: { 8751: _M_rehash_policy = __pol; 8751: size_type __n_bkt = __pol._M_bkt_for_elements(_M_element_count); 8751: if (__n_bkt > _M_bucket_count) 8751: _M_rehash(__n_bkt); 8751: } 8751: 8751: template 8751: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, 8751: __chc, __cit, __uk>::iterator 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: find(const key_type& __k) 8751: { 8751: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8751: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8751: _Node* __p = _M_find_node(_M_buckets[__n], __k, __code); 8751: return __p ? iterator(__p, _M_buckets + __n) : this->end(); 8751: } 8751: 8751: template 8751: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, 8751: __chc, __cit, __uk>::const_iterator 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: find(const key_type& __k) const 8751: { 8751: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8751: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8751: _Node* __p = _M_find_node(_M_buckets[__n], __k, __code); 8751: return __p ? const_iterator(__p, _M_buckets + __n) : this->end(); 8751: } 8751: 8751: template 8751: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, 8751: __chc, __cit, __uk>::size_type 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: count(const key_type& __k) const 8751: { 8751: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8751: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8751: std::size_t __result = 0; 8751: for (_Node* __p = _M_buckets[__n]; __p; __p = __p->_M_next) 8751: if (this->_M_compare(__k, __code, __p)) 8751: ++__result; 8751: return __result; 8751: } 8751: 8751: template 8751: std::pair::iterator, 8751: typename _Hashtable<_Key, _Value, _Allocator, 8751: _ExtractKey, _Equal, _H1, 8751: _H2, _Hash, _RehashPolicy, 8751: __chc, __cit, __uk>::iterator> 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: equal_range(const key_type& __k) 8751: { 8751: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8751: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8751: _Node** __head = _M_buckets + __n; 8751: _Node* __p = _M_find_node(*__head, __k, __code); 8751: 8751: if (__p) 8751: { 8751: _Node* __p1 = __p->_M_next; 8751: for (; __p1; __p1 = __p1->_M_next) 8751: if (!this->_M_compare(__k, __code, __p1)) 8751: break; 8751: 8751: iterator __first(__p, __head); 8751: iterator __last(__p1, __head); 8751: if (!__p1) 8751: __last._M_incr_bucket(); 8751: return std::make_pair(__first, __last); 8751: } 8751: else 8751: return std::make_pair(this->end(), this->end()); 8751: } 8751: 8751: template 8751: std::pair::const_iterator, 8751: typename _Hashtable<_Key, _Value, _Allocator, 8751: _ExtractKey, _Equal, _H1, 8751: _H2, _Hash, _RehashPolicy, 8751: __chc, __cit, __uk>::const_iterator> 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: equal_range(const key_type& __k) const 8751: { 8751: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8751: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8751: _Node** __head = _M_buckets + __n; 8751: _Node* __p = _M_find_node(*__head, __k, __code); 8751: 8751: if (__p) 8751: { 8751: _Node* __p1 = __p->_M_next; 8751: for (; __p1; __p1 = __p1->_M_next) 8751: if (!this->_M_compare(__k, __code, __p1)) 8751: break; 8751: 8751: const_iterator __first(__p, __head); 8751: const_iterator __last(__p1, __head); 8751: if (!__p1) 8751: __last._M_incr_bucket(); 8751: return std::make_pair(__first, __last); 8751: } 8751: else 8751: return std::make_pair(this->end(), this->end()); 8751: } 8751: 8751: 8751: 8751: template 8751: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, 8751: _Equal, _H1, _H2, _Hash, _RehashPolicy, 8751: __chc, __cit, __uk>::_Node* 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: _M_find_node(_Node* __p, const key_type& __k, 8751: typename _Hashtable::_Hash_code_type __code) const 8751: { 8751: for (; __p; __p = __p->_M_next) 8751: if (this->_M_compare(__k, __code, __p)) 8751: return __p; 8751: return 0; 8751: } 8751: 8751: 8751: template 8751: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, 8751: __chc, __cit, __uk>::iterator 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: _M_insert_bucket(const value_type& __v, size_type __n, 8751: typename _Hashtable::_Hash_code_type __code) 8751: { 8751: std::pair __do_rehash 8751: = _M_rehash_policy._M_need_rehash(_M_bucket_count, 8751: _M_element_count, 1); 8751: 8751: 8751: 8751: _Node* __new_node = _M_allocate_node(__v); 8751: 8751: try 8751: { 8751: if (__do_rehash.first) 8751: { 8751: const key_type& __k = this->_M_extract(__v); 8751: __n = this->_M_bucket_index(__k, __code, __do_rehash.second); 8751: _M_rehash(__do_rehash.second); 8751: } 8751: 8751: __new_node->_M_next = _M_buckets[__n]; 8751: this->_M_store_code(__new_node, __code); 8751: _M_buckets[__n] = __new_node; 8751: ++_M_element_count; 8751: return iterator(__new_node, _M_buckets + __n); 8751: } 8751: catch(...) 8751: { 8751: _M_deallocate_node(__new_node); 8751: throw; 8751: } 8751: } 8751: 8751: 8751: template 8751: std::pair::iterator, bool> 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: _M_insert(const value_type& __v, std::tr1::true_type) 8751: { 8751: const key_type& __k = this->_M_extract(__v); 8751: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8751: size_type __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8751: 8751: if (_Node* __p = _M_find_node(_M_buckets[__n], __k, __code)) 8751: return std::make_pair(iterator(__p, _M_buckets + __n), false); 8751: return std::make_pair(_M_insert_bucket(__v, __n, __code), true); 8751: } 8751: 8751: 8751: template 8751: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, 8751: __chc, __cit, __uk>::iterator 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: _M_insert(const value_type& __v, std::tr1::false_type) 8751: { 8751: std::pair __do_rehash 8751: = _M_rehash_policy._M_need_rehash(_M_bucket_count, 8751: _M_element_count, 1); 8751: if (__do_rehash.first) 8751: _M_rehash(__do_rehash.second); 8751: 8751: const key_type& __k = this->_M_extract(__v); 8751: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8751: size_type __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8751: 8751: 8751: _Node* __prev = _M_find_node(_M_buckets[__n], __k, __code); 8751: _Node* __new_node = _M_allocate_node(__v); 8751: 8751: if (__prev) 8751: { 8751: __new_node->_M_next = __prev->_M_next; 8751: __prev->_M_next = __new_node; 8751: } 8751: else 8751: { 8751: __new_node->_M_next = _M_buckets[__n]; 8751: _M_buckets[__n] = __new_node; 8751: } 8751: this->_M_store_code(__new_node, __code); 8751: 8751: ++_M_element_count; 8751: return iterator(__new_node, _M_buckets + __n); 8751: } 8751: 8751: 8751: template 8751: void 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: _M_erase_node(_Node* __p, _Node** __b) 8751: { 8751: _Node* __cur = *__b; 8751: if (__cur == __p) 8751: *__b = __cur->_M_next; 8751: else 8751: { 8751: _Node* __next = __cur->_M_next; 8751: while (__next != __p) 8751: { 8751: __cur = __next; 8751: __next = __cur->_M_next; 8751: } 8751: __cur->_M_next = __next->_M_next; 8751: } 8751: 8751: _M_deallocate_node(__p); 8751: --_M_element_count; 8751: } 8751: 8751: template 8751: template 8751: void 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: insert(_InputIterator __first, _InputIterator __last) 8751: { 8751: size_type __n_elt = __detail::__distance_fw(__first, __last); 8751: std::pair __do_rehash 8751: = _M_rehash_policy._M_need_rehash(_M_bucket_count, 8751: _M_element_count, __n_elt); 8751: if (__do_rehash.first) 8751: _M_rehash(__do_rehash.second); 8751: 8751: for (; __first != __last; ++__first) 8751: this->insert(*__first); 8751: } 8751: 8751: template 8751: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, 8751: __chc, __cit, __uk>::iterator 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: erase(iterator __it) 8751: { 8751: iterator __result = __it; 8751: ++__result; 8751: _M_erase_node(__it._M_cur_node, __it._M_cur_bucket); 8751: return __result; 8751: } 8751: 8751: template 8751: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, 8751: __chc, __cit, __uk>::const_iterator 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: erase(const_iterator __it) 8751: { 8751: const_iterator __result = __it; 8751: ++__result; 8751: _M_erase_node(__it._M_cur_node, __it._M_cur_bucket); 8751: return __result; 8751: } 8751: 8751: template 8751: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, 8751: __chc, __cit, __uk>::size_type 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: erase(const key_type& __k) 8751: { 8751: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8751: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8751: size_type __result = 0; 8751: 8751: _Node** __slot = _M_buckets + __n; 8751: while (*__slot && !this->_M_compare(__k, __code, *__slot)) 8751: __slot = &((*__slot)->_M_next); 8751: 8751: _Node** __saved_slot = 0; 8751: while (*__slot && this->_M_compare(__k, __code, *__slot)) 8751: { 8751: 8751: 8751: 8751: if (&this->_M_extract((*__slot)->_M_v) != &__k) 8751: { 8751: _Node* __p = *__slot; 8751: *__slot = __p->_M_next; 8751: _M_deallocate_node(__p); 8751: --_M_element_count; 8751: ++__result; 8751: } 8751: else 8751: { 8751: __saved_slot = __slot; 8751: __slot = &((*__slot)->_M_next); 8751: } 8751: } 8751: 8751: if (__saved_slot) 8751: { 8751: _Node* __p = *__saved_slot; 8751: *__saved_slot = __p->_M_next; 8751: _M_deallocate_node(__p); 8751: --_M_element_count; 8751: ++__result; 8751: } 8751: 8751: return __result; 8751: } 8751: 8751: 8751: 8751: 8751: template 8751: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, 8751: __chc, __cit, __uk>::iterator 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: erase(iterator __first, iterator __last) 8751: { 8751: while (__first != __last) 8751: __first = this->erase(__first); 8751: return __last; 8751: } 8751: 8751: template 8751: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, 8751: __chc, __cit, __uk>::const_iterator 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: erase(const_iterator __first, const_iterator __last) 8751: { 8751: while (__first != __last) 8751: __first = this->erase(__first); 8751: return __last; 8751: } 8751: 8751: template 8751: void 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: clear() 8751: { 8751: _M_deallocate_nodes(_M_buckets, _M_bucket_count); 8751: _M_element_count = 0; 8751: } 8751: 8751: template 8751: void 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: rehash(size_type __n) 8751: { 8751: _M_rehash(std::max(_M_rehash_policy._M_next_bkt(__n), 8751: _M_rehash_policy._M_bkt_for_elements(_M_element_count 8751: + 1))); 8751: } 8751: 8751: template 8751: void 8751: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8751: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8751: _M_rehash(size_type __n) 8751: { 8751: _Node** __new_array = _M_allocate_buckets(__n); 8751: try 8751: { 8751: for (size_type __i = 0; __i < _M_bucket_count; ++__i) 8751: while (_Node* __p = _M_buckets[__i]) 8751: { 8751: std::size_t __new_index = this->_M_bucket_index(__p, __n); 8751: _M_buckets[__i] = __p->_M_next; 8751: __p->_M_next = __new_array[__new_index]; 8751: __new_array[__new_index] = __p; 8751: } 8751: _M_deallocate_buckets(_M_buckets, _M_bucket_count); 8751: _M_bucket_count = __n; 8751: _M_buckets = __new_array; 8751: } 8751: catch(...) 8751: { 8751: 8751: 8751: 8751: 8751: _M_deallocate_nodes(__new_array, __n); 8751: _M_deallocate_buckets(__new_array, __n); 8751: _M_deallocate_nodes(_M_buckets, _M_bucket_count); 8751: _M_element_count = 0; 8751: throw; 8751: } 8751: } 8751: } 8751: 8751: 8751: } 8751: # 42 "/usr/include/c++/8/tr1/unordered_map" 2 3 8751: # 1 "/usr/include/c++/8/tr1/unordered_map.h" 1 3 8751: # 30 "/usr/include/c++/8/tr1/unordered_map.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: namespace tr1 8751: { 8751: 8751: 8751: template, 8751: class _Pred = std::equal_to<_Key>, 8751: class _Alloc = std::allocator >, 8751: bool __cache_hash_code = false> 8751: class __unordered_map 8751: : public _Hashtable<_Key, std::pair, _Alloc, 8751: std::_Select1st >, _Pred, 8751: _Hash, __detail::_Mod_range_hashing, 8751: __detail::_Default_ranged_hash, 8751: __detail::_Prime_rehash_policy, 8751: __cache_hash_code, false, true> 8751: { 8751: typedef _Hashtable<_Key, std::pair, _Alloc, 8751: std::_Select1st >, _Pred, 8751: _Hash, __detail::_Mod_range_hashing, 8751: __detail::_Default_ranged_hash, 8751: __detail::_Prime_rehash_policy, 8751: __cache_hash_code, false, true> 8751: _Base; 8751: 8751: public: 8751: typedef typename _Base::size_type size_type; 8751: typedef typename _Base::hasher hasher; 8751: typedef typename _Base::key_equal key_equal; 8751: typedef typename _Base::allocator_type allocator_type; 8751: 8751: explicit 8751: __unordered_map(size_type __n = 10, 8751: const hasher& __hf = hasher(), 8751: const key_equal& __eql = key_equal(), 8751: const allocator_type& __a = allocator_type()) 8751: : _Base(__n, __hf, __detail::_Mod_range_hashing(), 8751: __detail::_Default_ranged_hash(), 8751: __eql, std::_Select1st >(), __a) 8751: { } 8751: 8751: template 8751: __unordered_map(_InputIterator __f, _InputIterator __l, 8751: size_type __n = 10, 8751: const hasher& __hf = hasher(), 8751: const key_equal& __eql = key_equal(), 8751: const allocator_type& __a = allocator_type()) 8751: : _Base(__f, __l, __n, __hf, __detail::_Mod_range_hashing(), 8751: __detail::_Default_ranged_hash(), 8751: __eql, std::_Select1st >(), __a) 8751: { } 8751: }; 8751: 8751: template, 8751: class _Pred = std::equal_to<_Key>, 8751: class _Alloc = std::allocator >, 8751: bool __cache_hash_code = false> 8751: class __unordered_multimap 8751: : public _Hashtable<_Key, std::pair, 8751: _Alloc, 8751: std::_Select1st >, _Pred, 8751: _Hash, __detail::_Mod_range_hashing, 8751: __detail::_Default_ranged_hash, 8751: __detail::_Prime_rehash_policy, 8751: __cache_hash_code, false, false> 8751: { 8751: typedef _Hashtable<_Key, std::pair, 8751: _Alloc, 8751: std::_Select1st >, _Pred, 8751: _Hash, __detail::_Mod_range_hashing, 8751: __detail::_Default_ranged_hash, 8751: __detail::_Prime_rehash_policy, 8751: __cache_hash_code, false, false> 8751: _Base; 8751: 8751: public: 8751: typedef typename _Base::size_type size_type; 8751: typedef typename _Base::hasher hasher; 8751: typedef typename _Base::key_equal key_equal; 8751: typedef typename _Base::allocator_type allocator_type; 8751: 8751: explicit 8751: __unordered_multimap(size_type __n = 10, 8751: const hasher& __hf = hasher(), 8751: const key_equal& __eql = key_equal(), 8751: const allocator_type& __a = allocator_type()) 8751: : _Base(__n, __hf, __detail::_Mod_range_hashing(), 8751: __detail::_Default_ranged_hash(), 8751: __eql, std::_Select1st >(), __a) 8751: { } 8751: 8751: 8751: template 8751: __unordered_multimap(_InputIterator __f, _InputIterator __l, 8751: typename _Base::size_type __n = 0, 8751: const hasher& __hf = hasher(), 8751: const key_equal& __eql = key_equal(), 8751: const allocator_type& __a = allocator_type()) 8751: : _Base(__f, __l, __n, __hf, __detail::_Mod_range_hashing(), 8751: __detail::_Default_ranged_hash(), 8751: __eql, std::_Select1st >(), __a) 8751: { } 8751: }; 8751: 8751: template 8751: inline void 8751: swap(__unordered_map<_Key, _Tp, _Hash, _Pred, 8751: _Alloc, __cache_hash_code>& __x, 8751: __unordered_map<_Key, _Tp, _Hash, _Pred, 8751: _Alloc, __cache_hash_code>& __y) 8751: { __x.swap(__y); } 8751: 8751: template 8751: inline void 8751: swap(__unordered_multimap<_Key, _Tp, _Hash, _Pred, 8751: _Alloc, __cache_hash_code>& __x, 8751: __unordered_multimap<_Key, _Tp, _Hash, _Pred, 8751: _Alloc, __cache_hash_code>& __y) 8751: { __x.swap(__y); } 8751: # 176 "/usr/include/c++/8/tr1/unordered_map.h" 3 8751: template, 8751: class _Pred = std::equal_to<_Key>, 8751: class _Alloc = std::allocator > > 8751: class unordered_map 8751: : public __unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc> 8751: { 8751: typedef __unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc> _Base; 8751: 8751: public: 8751: typedef typename _Base::value_type value_type; 8751: typedef typename _Base::size_type size_type; 8751: typedef typename _Base::hasher hasher; 8751: typedef typename _Base::key_equal key_equal; 8751: typedef typename _Base::allocator_type allocator_type; 8751: 8751: explicit 8751: unordered_map(size_type __n = 10, 8751: const hasher& __hf = hasher(), 8751: const key_equal& __eql = key_equal(), 8751: const allocator_type& __a = allocator_type()) 8751: : _Base(__n, __hf, __eql, __a) 8751: { } 8751: 8751: template 8751: unordered_map(_InputIterator __f, _InputIterator __l, 8751: size_type __n = 10, 8751: const hasher& __hf = hasher(), 8751: const key_equal& __eql = key_equal(), 8751: const allocator_type& __a = allocator_type()) 8751: : _Base(__f, __l, __n, __hf, __eql, __a) 8751: { } 8751: }; 8751: # 228 "/usr/include/c++/8/tr1/unordered_map.h" 3 8751: template, 8751: class _Pred = std::equal_to<_Key>, 8751: class _Alloc = std::allocator > > 8751: class unordered_multimap 8751: : public __unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc> 8751: { 8751: typedef __unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc> _Base; 8751: 8751: public: 8751: typedef typename _Base::value_type value_type; 8751: typedef typename _Base::size_type size_type; 8751: typedef typename _Base::hasher hasher; 8751: typedef typename _Base::key_equal key_equal; 8751: typedef typename _Base::allocator_type allocator_type; 8751: 8751: explicit 8751: unordered_multimap(size_type __n = 10, 8751: const hasher& __hf = hasher(), 8751: const key_equal& __eql = key_equal(), 8751: const allocator_type& __a = allocator_type()) 8751: : _Base(__n, __hf, __eql, __a) 8751: { } 8751: 8751: 8751: template 8751: unordered_multimap(_InputIterator __f, _InputIterator __l, 8751: typename _Base::size_type __n = 0, 8751: const hasher& __hf = hasher(), 8751: const key_equal& __eql = key_equal(), 8751: const allocator_type& __a = allocator_type()) 8751: : _Base(__f, __l, __n, __hf, __eql, __a) 8751: { } 8751: 8751: }; 8751: 8751: template 8751: inline void 8751: swap(unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 8751: unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 8751: { __x.swap(__y); } 8751: 8751: template 8751: inline void 8751: swap(unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 8751: unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 8751: { __x.swap(__y); } 8751: } 8751: 8751: 8751: } 8751: # 43 "/usr/include/c++/8/tr1/unordered_map" 2 3 8751: # 30 "/<>/templates/tests/qtunorderedmap.h" 2 8751: 8751: 8751: 8751: # 32 "/<>/templates/tests/qtunorderedmap.h" 8751: template struct QtHasher { 8751: size_t operator()(Key k) const { return qHash(k); } 8751: }; 8751: 8751: template 8751: struct QtUnorderedMap 8751: : public std::tr1::unordered_map> { 8751: }; 8751: # 30 "/<>/templates/tests/test_macros.h" 2 8751: 8751: 8751: 8751: 8751: # 1 "/usr/include/c++/8/tr1/array" 1 3 8751: # 32 "/usr/include/c++/8/tr1/array" 3 8751: 8751: # 33 "/usr/include/c++/8/tr1/array" 3 8751: 8751: 8751: 8751: 8751: # 36 "/usr/include/c++/8/tr1/array" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: namespace tr1 8751: { 8751: # 56 "/usr/include/c++/8/tr1/array" 3 8751: template 8751: struct array 8751: { 8751: typedef _Tp value_type; 8751: typedef value_type& reference; 8751: typedef const value_type& const_reference; 8751: typedef value_type* iterator; 8751: typedef const value_type* const_iterator; 8751: typedef std::size_t size_type; 8751: typedef std::ptrdiff_t difference_type; 8751: typedef std::reverse_iterator reverse_iterator; 8751: typedef std::reverse_iterator const_reverse_iterator; 8751: 8751: 8751: value_type _M_instance[_Nm ? _Nm : 1]; 8751: 8751: 8751: 8751: void 8751: assign(const value_type& __u) 8751: { std::fill_n(begin(), size(), __u); } 8751: 8751: void 8751: swap(array& __other) 8751: { std::swap_ranges(begin(), end(), __other.begin()); } 8751: 8751: 8751: iterator 8751: begin() 8751: { return iterator(std::__addressof(_M_instance[0])); } 8751: 8751: const_iterator 8751: begin() const 8751: { return const_iterator(std::__addressof(_M_instance[0])); } 8751: 8751: iterator 8751: end() 8751: { return iterator(std::__addressof(_M_instance[_Nm])); } 8751: 8751: const_iterator 8751: end() const 8751: { return const_iterator(std::__addressof(_M_instance[_Nm])); } 8751: 8751: reverse_iterator 8751: rbegin() 8751: { return reverse_iterator(end()); } 8751: 8751: const_reverse_iterator 8751: rbegin() const 8751: { return const_reverse_iterator(end()); } 8751: 8751: reverse_iterator 8751: rend() 8751: { return reverse_iterator(begin()); } 8751: 8751: const_reverse_iterator 8751: rend() const 8751: { return const_reverse_iterator(begin()); } 8751: 8751: 8751: size_type 8751: size() const { return _Nm; } 8751: 8751: size_type 8751: max_size() const { return _Nm; } 8751: 8751: bool 8751: empty() const { return size() == 0; } 8751: 8751: 8751: reference 8751: operator[](size_type __n) 8751: { return _M_instance[__n]; } 8751: 8751: const_reference 8751: operator[](size_type __n) const 8751: { return _M_instance[__n]; } 8751: 8751: reference 8751: at(size_type __n) 8751: { 8751: if (__n >= _Nm) 8751: std::__throw_out_of_range(("array::at")); 8751: return _M_instance[__n]; 8751: } 8751: 8751: const_reference 8751: at(size_type __n) const 8751: { 8751: if (__n >= _Nm) 8751: std::__throw_out_of_range(("array::at")); 8751: return _M_instance[__n]; 8751: } 8751: 8751: reference 8751: front() 8751: { return *begin(); } 8751: 8751: const_reference 8751: front() const 8751: { return *begin(); } 8751: 8751: reference 8751: back() 8751: { return _Nm ? *(end() - 1) : *end(); } 8751: 8751: const_reference 8751: back() const 8751: { return _Nm ? *(end() - 1) : *end(); } 8751: 8751: _Tp* 8751: data() 8751: { return std::__addressof(_M_instance[0]); } 8751: 8751: const _Tp* 8751: data() const 8751: { return std::__addressof(_M_instance[0]); } 8751: }; 8751: 8751: 8751: template 8751: inline bool 8751: operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8751: { return std::equal(__one.begin(), __one.end(), __two.begin()); } 8751: 8751: template 8751: inline bool 8751: operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8751: { return !(__one == __two); } 8751: 8751: template 8751: inline bool 8751: operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b) 8751: { 8751: return std::lexicographical_compare(__a.begin(), __a.end(), 8751: __b.begin(), __b.end()); 8751: } 8751: 8751: template 8751: inline bool 8751: operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8751: { return __two < __one; } 8751: 8751: template 8751: inline bool 8751: operator<=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8751: { return !(__one > __two); } 8751: 8751: template 8751: inline bool 8751: operator>=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8751: { return !(__one < __two); } 8751: 8751: 8751: template 8751: inline void 8751: swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two) 8751: { __one.swap(__two); } 8751: 8751: 8751: 8751: 8751: template 8751: class tuple_size; 8751: 8751: 8751: template 8751: class tuple_element; 8751: 8751: template 8751: struct tuple_size > 8751: { static const int value = _Nm; }; 8751: 8751: template 8751: const int 8751: tuple_size >::value; 8751: 8751: template 8751: struct tuple_element<_Int, array<_Tp, _Nm> > 8751: { typedef _Tp type; }; 8751: 8751: template 8751: inline _Tp& 8751: get(array<_Tp, _Nm>& __arr) 8751: { return __arr[_Int]; } 8751: 8751: template 8751: inline const _Tp& 8751: get(const array<_Tp, _Nm>& __arr) 8751: { return __arr[_Int]; } 8751: } 8751: 8751: 8751: } 8751: # 35 "/<>/templates/tests/test_macros.h" 2 8751: 8751: 8751: 8751: # 37 "/<>/templates/tests/test_macros.h" 8751: template struct ThreeArray : public std::tr1::array { 8751: }; 8751: # 27 "/<>/templates/tests/testgenericcontainers.cpp" 2 8751: 8751: # 1 "/<>/templates/tests/coverageobject.h" 1 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QObject" 1 3 4 8751: # 4 "/<>/templates/tests/coverageobject.h" 2 8751: class CoverageObject : public QObject 8751: { 8751: 8751: # 6 "/<>/templates/tests/coverageobject.h" 3 4 8751: public: 8751: # 6 "/<>/templates/tests/coverageobject.h" 8751: #pragma GCC diagnostic push 8751: # 6 "/<>/templates/tests/coverageobject.h" 8751: 8751: # 6 "/<>/templates/tests/coverageobject.h" 8751: #pragma GCC diagnostic ignored "-Wsuggest-override" 8751: # 6 "/<>/templates/tests/coverageobject.h" 8751: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8751: # 6 "/<>/templates/tests/coverageobject.h" 8751: #pragma GCC diagnostic ignored "-Wattributes" 8751: # 6 "/<>/templates/tests/coverageobject.h" 8751: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8751: # 6 "/<>/templates/tests/coverageobject.h" 8751: #pragma GCC diagnostic pop 8751: # 6 "/<>/templates/tests/coverageobject.h" 8751: struct QPrivateSignal {}; 8751: 8751: # 7 "/<>/templates/tests/coverageobject.h" 8751: public: 8751: CoverageObject(QObject *p = 8751: # 8 "/<>/templates/tests/coverageobject.h" 3 4 8751: __null 8751: # 8 "/<>/templates/tests/coverageobject.h" 8751: ) : QObject(p) {} 8751: virtual void initTest() {} 8751: virtual void cleanupTest() {} 8751: protected : 8751: void init(); 8751: void cleanup(); 8751: 8751: private: 8751: void saveCoverageData(); 8751: QString generateTestName() const; 8751: }; 8751: # 29 "/<>/templates/tests/testgenericcontainers.cpp" 2 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QLinkedList" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlinkedlist.h" 1 3 4 8751: # 55 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlinkedlist.h" 3 4 8751: 8751: 8751: 8751: 8751: # 58 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qlinkedlist.h" 3 4 8751: struct __attribute__((visibility("default"))) QLinkedListData 8751: { 8751: QLinkedListData *n, *p; 8751: QtPrivate::RefCount ref; 8751: int size; 8751: uint sharable : 1; 8751: 8751: static const QLinkedListData shared_null; 8751: }; 8751: 8751: template 8751: struct QLinkedListNode 8751: { 8751: inline QLinkedListNode(const T &arg): t(arg) { } 8751: QLinkedListNode *n, *p; 8751: T t; 8751: }; 8751: 8751: template 8751: class QLinkedList 8751: { 8751: typedef QLinkedListNode Node; 8751: union { QLinkedListData *d; QLinkedListNode *e; }; 8751: 8751: public: 8751: inline QLinkedList() noexcept : d(const_cast(&QLinkedListData::shared_null)) { } 8751: inline QLinkedList(const QLinkedList &l) : d(l.d) { d->ref.ref(); if (!d->sharable) detach(); } 8751: 8751: inline QLinkedList(std::initializer_list list) 8751: : d(const_cast(&QLinkedListData::shared_null)) 8751: { 8751: std::copy(list.begin(), list.end(), std::back_inserter(*this)); 8751: } 8751: 8751: ~QLinkedList(); 8751: QLinkedList &operator=(const QLinkedList &); 8751: 8751: QLinkedList(QLinkedList &&other) noexcept 8751: : d(other.d) { other.d = const_cast(&QLinkedListData::shared_null); } 8751: QLinkedList &operator=(QLinkedList &&other) noexcept 8751: { QLinkedList moved(std::move(other)); swap(moved); return *this; } 8751: 8751: inline void swap(QLinkedList &other) noexcept { qSwap(d, other.d); } 8751: bool operator==(const QLinkedList &l) const; 8751: inline bool operator!=(const QLinkedList &l) const { return !(*this == l); } 8751: 8751: inline int size() const { return d->size; } 8751: inline void detach() 8751: { if (d->ref.isShared()) detach_helper2(this->e); } 8751: inline bool isDetached() const { return !d->ref.isShared(); } 8751: 8751: inline void setSharable(bool sharable) { if (!sharable) detach(); if (d != &QLinkedListData::shared_null) d->sharable = sharable; } 8751: 8751: inline bool isSharedWith(const QLinkedList &other) const { return d == other.d; } 8751: 8751: inline bool isEmpty() const { return d->size == 0; } 8751: 8751: void clear(); 8751: 8751: void append(const T &); 8751: void prepend(const T &); 8751: T takeFirst(); 8751: T takeLast(); 8751: int removeAll(const T &t); 8751: bool removeOne(const T &t); 8751: bool contains(const T &t) const; 8751: int count(const T &t) const; 8751: 8751: class const_iterator; 8751: 8751: class iterator 8751: { 8751: public: 8751: typedef std::bidirectional_iterator_tag iterator_category; 8751: typedef qptrdiff difference_type; 8751: typedef T value_type; 8751: typedef T *pointer; 8751: typedef T &reference; 8751: Node *i; 8751: inline iterator() : i(nullptr) {} 8751: inline iterator(Node *n) : i(n) {} 8751: 8751: iterator(const iterator &other) noexcept : i(other.i) {} 8751: iterator &operator=(const iterator &other) noexcept { i = other.i; return *this; } 8751: iterator(iterator &&other) noexcept : i(other.i) {} 8751: iterator &operator=(iterator &&other) noexcept { return *this = other; } 8751: 8751: inline T &operator*() const { return i->t; } 8751: inline T *operator->() const { return &i->t; } 8751: inline bool operator==(const iterator &o) const { return i == o.i; } 8751: inline bool operator!=(const iterator &o) const { return i != o.i; } 8751: inline bool operator==(const const_iterator &o) const 8751: { return i == o.i; } 8751: inline bool operator!=(const const_iterator &o) const 8751: { return i != o.i; } 8751: inline iterator &operator++() { i = i->n; return *this; } 8751: inline iterator operator++(int) { Node *n = i; i = i->n; return n; } 8751: inline iterator &operator--() { i = i->p; return *this; } 8751: inline iterator operator--(int) { Node *n = i; i = i->p; return n; } 8751: inline iterator operator+(int j) const 8751: { Node *n = i; if (j > 0) while (j--) n = n->n; else while (j++) n = n->p; return n; } 8751: inline iterator operator-(int j) const { return operator+(-j); } 8751: inline iterator &operator+=(int j) { return *this = *this + j; } 8751: inline iterator &operator-=(int j) { return *this = *this - j; } 8751: }; 8751: friend class iterator; 8751: 8751: class const_iterator 8751: { 8751: public: 8751: typedef std::bidirectional_iterator_tag iterator_category; 8751: typedef qptrdiff difference_type; 8751: typedef T value_type; 8751: typedef const T *pointer; 8751: typedef const T &reference; 8751: Node *i; 8751: inline const_iterator() : i(nullptr) {} 8751: inline const_iterator(Node *n) : i(n) {} 8751: inline const_iterator(iterator ci) : i(ci.i){} 8751: 8751: const_iterator(const const_iterator &other) noexcept : i(other.i) {} 8751: const_iterator &operator=(const const_iterator &other) noexcept { i = other.i; return *this; } 8751: const_iterator(const_iterator &&other) noexcept : i(other.i) {} 8751: const_iterator &operator=(const_iterator &&other) noexcept { return *this = other; } 8751: 8751: inline const T &operator*() const { return i->t; } 8751: inline const T *operator->() const { return &i->t; } 8751: inline bool operator==(const const_iterator &o) const { return i == o.i; } 8751: inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8751: inline const_iterator &operator++() { i = i->n; return *this; } 8751: inline const_iterator operator++(int) { Node *n = i; i = i->n; return n; } 8751: inline const_iterator &operator--() { i = i->p; return *this; } 8751: inline const_iterator operator--(int) { Node *n = i; i = i->p; return n; } 8751: inline const_iterator operator+(int j) const 8751: { Node *n = i; if (j > 0) while (j--) n = n->n; else while (j++) n = n->p; return n; } 8751: inline const_iterator operator-(int j) const { return operator+(-j); } 8751: inline const_iterator &operator+=(int j) { return *this = *this + j; } 8751: inline const_iterator &operator-=(int j) { return *this = *this - j; } 8751: }; 8751: friend class const_iterator; 8751: 8751: 8751: typedef std::reverse_iterator reverse_iterator; 8751: typedef std::reverse_iterator const_reverse_iterator; 8751: 8751: inline iterator begin() { detach(); return e->n; } 8751: inline const_iterator begin() const noexcept { return e->n; } 8751: inline const_iterator cbegin() const noexcept { return e->n; } 8751: inline const_iterator constBegin() const noexcept { return e->n; } 8751: inline iterator end() { detach(); return e; } 8751: inline const_iterator end() const noexcept { return e; } 8751: inline const_iterator cend() const noexcept { return e; } 8751: inline const_iterator constEnd() const noexcept { return e; } 8751: 8751: reverse_iterator rbegin() { return reverse_iterator(end()); } 8751: reverse_iterator rend() { return reverse_iterator(begin()); } 8751: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8751: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8751: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8751: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8751: 8751: iterator insert(iterator before, const T &t); 8751: iterator erase(iterator pos); 8751: iterator erase(iterator first, iterator last); 8751: 8751: 8751: typedef iterator Iterator; 8751: typedef const_iterator ConstIterator; 8751: inline int count() const { return d->size; } 8751: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8751: inline const T& first() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8751: T& last() { do { } while ((false) && (!isEmpty())); return *(--end()); } 8751: const T& last() const { do { } while ((false) && (!isEmpty())); return *(--end()); } 8751: inline void removeFirst() { do { } while ((false) && (!isEmpty())); erase(begin()); } 8751: inline void removeLast() { do { } while ((false) && (!isEmpty())); erase(--end()); } 8751: inline bool startsWith(const T &t) const { return !isEmpty() && first() == t; } 8751: inline bool endsWith(const T &t) const { return !isEmpty() && last() == t; } 8751: 8751: 8751: inline void push_back(const T &t) { append(t); } 8751: inline void push_front(const T &t) { prepend(t); } 8751: inline T& front() { return first(); } 8751: inline const T& front() const { return first(); } 8751: inline T& back() { return last(); } 8751: inline const T& back() const { return last(); } 8751: inline void pop_front() { removeFirst(); } 8751: inline void pop_back() { removeLast(); } 8751: inline bool empty() const { return isEmpty(); } 8751: typedef int size_type; 8751: typedef T value_type; 8751: typedef value_type *pointer; 8751: typedef const value_type *const_pointer; 8751: typedef value_type &reference; 8751: typedef const value_type &const_reference; 8751: typedef qptrdiff difference_type; 8751: 8751: static inline QLinkedList fromStdList(const std::list &list) 8751: { QLinkedList tmp; std::copy(list.begin(), list.end(), std::back_inserter(tmp)); return tmp; } 8751: inline std::list toStdList() const 8751: { std::list tmp; std::copy(constBegin(), constEnd(), std::back_inserter(tmp)); return tmp; } 8751: 8751: 8751: QLinkedList &operator+=(const QLinkedList &l); 8751: QLinkedList operator+(const QLinkedList &l) const; 8751: inline QLinkedList &operator+=(const T &t) { append(t); return *this; } 8751: inline QLinkedList &operator<< (const T &t) { append(t); return *this; } 8751: inline QLinkedList &operator<<(const QLinkedList &l) { *this += l; return *this; } 8751: 8751: private: 8751: void detach_helper(); 8751: iterator detach_helper2(iterator); 8751: void freeData(QLinkedListData*); 8751: }; 8751: 8751: template 8751: inline QLinkedList::~QLinkedList() 8751: { 8751: if (!d->ref.deref()) 8751: freeData(d); 8751: } 8751: 8751: template 8751: void QLinkedList::detach_helper() 8751: { 8751: detach_helper2(this->e); 8751: } 8751: 8751: template 8751: typename QLinkedList::iterator QLinkedList::detach_helper2(iterator orgite) 8751: { 8751: 8751: bool isEndIterator = (orgite.i == this->e); 8751: union { QLinkedListData *d; Node *e; } x; 8751: x.d = new QLinkedListData; 8751: x.d->ref.initializeOwned(); 8751: x.d->size = d->size; 8751: x.d->sharable = true; 8751: Node *original = e->n; 8751: Node *copy = x.e; 8751: Node *org = orgite.i; 8751: 8751: while (original != org) { 8751: try { 8751: copy->n = new Node(original->t); 8751: copy->n->p = copy; 8751: original = original->n; 8751: copy = copy->n; 8751: } catch (...) { 8751: copy->n = x.e; 8751: do { } while ((false) && (!x.d->ref.deref())); 8751: freeData(x.d); 8751: throw; 8751: } 8751: } 8751: iterator r(copy); 8751: while (original != e) { 8751: try { 8751: copy->n = new Node(original->t); 8751: copy->n->p = copy; 8751: original = original->n; 8751: copy = copy->n; 8751: } catch (...) { 8751: copy->n = x.e; 8751: do { } while ((false) && (!x.d->ref.deref())); 8751: freeData(x.d); 8751: throw; 8751: } 8751: } 8751: copy->n = x.e; 8751: x.e->p = copy; 8751: if (!d->ref.deref()) 8751: freeData(d); 8751: d = x.d; 8751: if (!isEndIterator) 8751: ++r; 8751: return r; 8751: } 8751: 8751: template 8751: void QLinkedList::freeData(QLinkedListData *x) 8751: { 8751: Node *y = reinterpret_cast(x); 8751: Node *i = y->n; 8751: do { } while ((false) && (x->ref.atomic.load() == 0)); 8751: while (i != y) { 8751: Node *n = i; 8751: i = i->n; 8751: delete n; 8751: } 8751: delete x; 8751: } 8751: 8751: template 8751: void QLinkedList::clear() 8751: { 8751: *this = QLinkedList(); 8751: } 8751: 8751: template 8751: QLinkedList &QLinkedList::operator=(const QLinkedList &l) 8751: { 8751: if (d != l.d) { 8751: QLinkedListData *o = l.d; 8751: o->ref.ref(); 8751: if (!d->ref.deref()) 8751: freeData(d); 8751: d = o; 8751: if (!d->sharable) 8751: detach_helper(); 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: bool QLinkedList::operator== (const QLinkedList &l) const 8751: { 8751: if (d->size != l.d->size) 8751: return false; 8751: if (e == l.e) 8751: return true; 8751: Node *i = e->n; 8751: Node *il = l.e->n; 8751: while (i != e) { 8751: if (! (i->t == il->t)) 8751: return false; 8751: i = i->n; 8751: il = il->n; 8751: } 8751: return true; 8751: } 8751: 8751: template 8751: void QLinkedList::append(const T &t) 8751: { 8751: detach(); 8751: Node *i = new Node(t); 8751: i->n = e; 8751: i->p = e->p; 8751: i->p->n = i; 8751: e->p = i; 8751: d->size++; 8751: } 8751: 8751: template 8751: void QLinkedList::prepend(const T &t) 8751: { 8751: detach(); 8751: Node *i = new Node(t); 8751: i->n = e->n; 8751: i->p = e; 8751: i->n->p = i; 8751: e->n = i; 8751: d->size++; 8751: } 8751: 8751: template 8751: int QLinkedList::removeAll(const T &_t) 8751: { 8751: detach(); 8751: const T t = _t; 8751: Node *i = e->n; 8751: int c = 0; 8751: while (i != e) { 8751: if (i->t == t) { 8751: Node *n = i; 8751: i->n->p = i->p; 8751: i->p->n = i->n; 8751: i = i->n; 8751: delete n; 8751: c++; 8751: } else { 8751: i = i->n; 8751: } 8751: } 8751: d->size-=c; 8751: return c; 8751: } 8751: 8751: template 8751: bool QLinkedList::removeOne(const T &_t) 8751: { 8751: detach(); 8751: iterator it = std::find(begin(), end(), _t); 8751: if (it != end()) { 8751: erase(it); 8751: return true; 8751: } 8751: return false; 8751: } 8751: 8751: template 8751: inline T QLinkedList::takeFirst() 8751: { 8751: T t = first(); 8751: removeFirst(); 8751: return t; 8751: } 8751: 8751: template 8751: inline T QLinkedList::takeLast() 8751: { 8751: T t = last(); 8751: removeLast(); 8751: return t; 8751: } 8751: 8751: template 8751: bool QLinkedList::contains(const T &t) const 8751: { 8751: Node *i = e; 8751: while ((i = i->n) != e) 8751: if (i->t == t) 8751: return true; 8751: return false; 8751: } 8751: 8751: template 8751: int QLinkedList::count(const T &t) const 8751: { 8751: Node *i = e; 8751: int c = 0; 8751: while ((i = i->n) != e) 8751: if (i->t == t) 8751: c++; 8751: return c; 8751: } 8751: 8751: 8751: template 8751: typename QLinkedList::iterator QLinkedList::insert(iterator before, const T &t) 8751: { 8751: if (d->ref.isShared()) 8751: before = detach_helper2(before); 8751: 8751: Node *i = before.i; 8751: Node *m = new Node(t); 8751: m->n = i; 8751: m->p = i->p; 8751: m->p->n = m; 8751: i->p = m; 8751: d->size++; 8751: return m; 8751: } 8751: 8751: template 8751: typename QLinkedList::iterator QLinkedList::erase(typename QLinkedList::iterator afirst, 8751: typename QLinkedList::iterator alast) 8751: { 8751: while (afirst != alast) 8751: erase(afirst++); 8751: return alast; 8751: } 8751: 8751: 8751: template 8751: typename QLinkedList::iterator QLinkedList::erase(iterator pos) 8751: { 8751: if (d->ref.isShared()) 8751: pos = detach_helper2(pos); 8751: 8751: Node *i = pos.i; 8751: if (i != e) { 8751: Node *n = i; 8751: i->n->p = i->p; 8751: i->p->n = i->n; 8751: i = i->n; 8751: delete n; 8751: d->size--; 8751: } 8751: return i; 8751: } 8751: 8751: template 8751: QLinkedList &QLinkedList::operator+=(const QLinkedList &l) 8751: { 8751: detach(); 8751: int n = l.d->size; 8751: d->size += n; 8751: Node *original = l.e->n; 8751: while (n--) { 8751: try { 8751: Node *copy = new Node(original->t); 8751: original = original->n; 8751: copy->n = e; 8751: copy->p = e->p; 8751: copy->p->n = copy; 8751: e->p = copy; 8751: } catch (...) { 8751: 8751: while (n++size) 8751: removeLast(); 8751: throw; 8751: } 8751: } 8751: return *this; 8751: } 8751: 8751: template 8751: QLinkedList QLinkedList::operator+(const QLinkedList &l) const 8751: { 8751: QLinkedList n = *this; 8751: n += l; 8751: return n; 8751: } 8751: 8751: template class QLinkedListIterator { typedef typename QLinkedList::const_iterator const_iterator; QLinkedList c; const_iterator i; public: inline QLinkedListIterator(const QLinkedList &container) : c(container), i(c.constBegin()) {} inline QLinkedListIterator &operator=(const QLinkedList &container) { c = container; i = c.constBegin(); return *this; } inline void toFront() { i = c.constBegin(); } inline void toBack() { i = c.constEnd(); } inline bool hasNext() const { return i != c.constEnd(); } inline const T &next() { return *i++; } inline const T &peekNext() const { return *i; } inline bool hasPrevious() const { return i != c.constBegin(); } inline const T &previous() { return *--i; } inline const T &peekPrevious() const { const_iterator p = i; return *--p; } inline bool findNext(const T &t) { while (i != c.constEnd()) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (i != c.constBegin()) if (*(--i) == t) return true; return false; } }; 8751: template class QMutableLinkedListIterator { typedef typename QLinkedList::iterator iterator; typedef typename QLinkedList::const_iterator const_iterator; QLinkedList *c; iterator i, n; inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } public: inline QMutableLinkedListIterator(QLinkedList &container) : c(&container) { i = c->begin(); n = c->end(); } inline QMutableLinkedListIterator &operator=(QLinkedList &container) { c = &container; i = c->begin(); n = c->end(); return *this; } inline void toFront() { i = c->begin(); n = c->end(); } inline void toBack() { i = c->end(); n = i; } inline bool hasNext() const { return c->constEnd() != const_iterator(i); } inline T &next() { n = i++; return *n; } inline T &peekNext() const { return *i; } inline bool hasPrevious() const { return c->constBegin() != const_iterator(i); } inline T &previous() { n = --i; return *n; } inline T &peekPrevious() const { iterator p = i; return *--p; } inline void remove() { if (c->constEnd() != const_iterator(n)) { i = c->erase(n); n = c->end(); } } inline void setValue(const T &t) const { if (c->constEnd() != const_iterator(n)) *n = t; } inline T &value() { do { } while ((false) && (item_exists())); return *n; } inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } inline void insert(const T &t) { n = i = c->insert(i, t); ++i; } inline bool findNext(const T &t) { while (c->constEnd() != const_iterator(n = i)) if (*i++ == t) return true; return false; } inline bool findPrevious(const T &t) { while (c->constBegin() != const_iterator(i)) if (*(n = --i) == t) return true; n = c->end(); return false; } }; 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QLinkedList" 2 3 4 8751: # 30 "/<>/templates/tests/testgenericcontainers.cpp" 2 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QQueue" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qqueue.h" 1 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qqueue.h" 3 4 8751: 8751: 8751: 8751: template 8751: class QQueue : public QList 8751: { 8751: public: 8751: 8751: inline void swap(QQueue &other) noexcept { QList::swap(other); } 8751: 8751: 8751: 8751: inline void swap(int i, int j) { QList::swap(i, j); } 8751: 8751: inline void enqueue(const T &t) { QList::append(t); } 8751: inline T dequeue() { return QList::takeFirst(); } 8751: inline T &head() { return QList::first(); } 8751: inline const T &head() const { return QList::first(); } 8751: }; 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QQueue" 2 3 4 8751: # 31 "/<>/templates/tests/testgenericcontainers.cpp" 2 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QStack" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstack.h" 1 3 4 8751: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstack.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qvector.h" 1 3 4 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstack.h" 2 3 4 8751: 8751: 8751: 8751: 8751: template 8751: class QStack : public QVector 8751: { 8751: public: 8751: 8751: inline void swap(QStack &other) noexcept { QVector::swap(other); } 8751: inline void push(const T &t) { QVector::append(t); } 8751: T pop(); 8751: T &top(); 8751: const T &top() const; 8751: }; 8751: 8751: template 8751: inline T QStack::pop() 8751: { do { } while ((false) && (!this->isEmpty())); T t = this->data()[this->size() -1]; 8751: this->resize(this->size()-1); return t; } 8751: 8751: template 8751: inline T &QStack::top() 8751: { do { } while ((false) && (!this->isEmpty())); this->detach(); return this->data()[this->size()-1]; } 8751: 8751: template 8751: inline const T &QStack::top() const 8751: { do { } while ((false) && (!this->isEmpty())); return this->data()[this->size()-1]; } 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QStack" 2 3 4 8751: # 32 "/<>/templates/tests/testgenericcontainers.cpp" 2 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QVariant" 1 3 4 8751: # 33 "/<>/templates/tests/testgenericcontainers.cpp" 2 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/QTest" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 1 3 4 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest_global.h" 1 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest_global.h" 3 4 8751: 8751: # 68 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest_global.h" 3 4 8751: namespace QTest 8751: { 8751: enum TestFailMode { Abort = 1, Continue = 2 }; 8751: } 8751: 8751: 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestcase.h" 1 3 4 8751: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestcase.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetaobject.h" 1 3 4 8751: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmetaobject.h" 3 4 8751: 8751: 8751: 8751: template class QList; 8751: 8751: 8751: 8751: class __attribute__((visibility("default"))) QMetaMethod 8751: { 8751: public: 8751: constexpr inline QMetaMethod() : mobj(nullptr), handle(0) {} 8751: 8751: QByteArray methodSignature() const; 8751: QByteArray name() const; 8751: const char *typeName() const; 8751: int returnType() const; 8751: int parameterCount() const; 8751: int parameterType(int index) const; 8751: void getParameterTypes(int *types) const; 8751: QList parameterTypes() const; 8751: QList parameterNames() const; 8751: const char *tag() const; 8751: enum Access { Private, Protected, Public }; 8751: Access access() const; 8751: enum MethodType { Method, Signal, Slot, Constructor }; 8751: MethodType methodType() const; 8751: enum Attributes { Compatibility = 0x1, Cloned = 0x2, Scriptable = 0x4 }; 8751: int attributes() const; 8751: int methodIndex() const; 8751: int revision() const; 8751: 8751: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8751: 8751: bool invoke(QObject *object, 8751: Qt::ConnectionType connectionType, 8751: QGenericReturnArgument returnValue, 8751: QGenericArgument val0 = QGenericArgument(nullptr), 8751: QGenericArgument val1 = QGenericArgument(), 8751: QGenericArgument val2 = QGenericArgument(), 8751: QGenericArgument val3 = QGenericArgument(), 8751: QGenericArgument val4 = QGenericArgument(), 8751: QGenericArgument val5 = QGenericArgument(), 8751: QGenericArgument val6 = QGenericArgument(), 8751: QGenericArgument val7 = QGenericArgument(), 8751: QGenericArgument val8 = QGenericArgument(), 8751: QGenericArgument val9 = QGenericArgument()) const; 8751: inline bool invoke(QObject *object, 8751: QGenericReturnArgument returnValue, 8751: QGenericArgument val0 = QGenericArgument(nullptr), 8751: QGenericArgument val1 = QGenericArgument(), 8751: QGenericArgument val2 = QGenericArgument(), 8751: QGenericArgument val3 = QGenericArgument(), 8751: QGenericArgument val4 = QGenericArgument(), 8751: QGenericArgument val5 = QGenericArgument(), 8751: QGenericArgument val6 = QGenericArgument(), 8751: QGenericArgument val7 = QGenericArgument(), 8751: QGenericArgument val8 = QGenericArgument(), 8751: QGenericArgument val9 = QGenericArgument()) const 8751: { 8751: return invoke(object, Qt::AutoConnection, returnValue, 8751: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8751: } 8751: inline bool invoke(QObject *object, 8751: Qt::ConnectionType connectionType, 8751: QGenericArgument val0 = QGenericArgument(nullptr), 8751: QGenericArgument val1 = QGenericArgument(), 8751: QGenericArgument val2 = QGenericArgument(), 8751: QGenericArgument val3 = QGenericArgument(), 8751: QGenericArgument val4 = QGenericArgument(), 8751: QGenericArgument val5 = QGenericArgument(), 8751: QGenericArgument val6 = QGenericArgument(), 8751: QGenericArgument val7 = QGenericArgument(), 8751: QGenericArgument val8 = QGenericArgument(), 8751: QGenericArgument val9 = QGenericArgument()) const 8751: { 8751: return invoke(object, connectionType, QGenericReturnArgument(), 8751: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8751: } 8751: inline bool invoke(QObject *object, 8751: QGenericArgument val0 = QGenericArgument(nullptr), 8751: QGenericArgument val1 = QGenericArgument(), 8751: QGenericArgument val2 = QGenericArgument(), 8751: QGenericArgument val3 = QGenericArgument(), 8751: QGenericArgument val4 = QGenericArgument(), 8751: QGenericArgument val5 = QGenericArgument(), 8751: QGenericArgument val6 = QGenericArgument(), 8751: QGenericArgument val7 = QGenericArgument(), 8751: QGenericArgument val8 = QGenericArgument(), 8751: QGenericArgument val9 = QGenericArgument()) const 8751: { 8751: return invoke(object, Qt::AutoConnection, QGenericReturnArgument(), 8751: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8751: } 8751: 8751: bool invokeOnGadget(void *gadget, 8751: QGenericReturnArgument returnValue, 8751: QGenericArgument val0 = QGenericArgument(nullptr), 8751: QGenericArgument val1 = QGenericArgument(), 8751: QGenericArgument val2 = QGenericArgument(), 8751: QGenericArgument val3 = QGenericArgument(), 8751: QGenericArgument val4 = QGenericArgument(), 8751: QGenericArgument val5 = QGenericArgument(), 8751: QGenericArgument val6 = QGenericArgument(), 8751: QGenericArgument val7 = QGenericArgument(), 8751: QGenericArgument val8 = QGenericArgument(), 8751: QGenericArgument val9 = QGenericArgument()) const; 8751: inline bool invokeOnGadget(void *gadget, 8751: QGenericArgument val0 = QGenericArgument(nullptr), 8751: QGenericArgument val1 = QGenericArgument(), 8751: QGenericArgument val2 = QGenericArgument(), 8751: QGenericArgument val3 = QGenericArgument(), 8751: QGenericArgument val4 = QGenericArgument(), 8751: QGenericArgument val5 = QGenericArgument(), 8751: QGenericArgument val6 = QGenericArgument(), 8751: QGenericArgument val7 = QGenericArgument(), 8751: QGenericArgument val8 = QGenericArgument(), 8751: QGenericArgument val9 = QGenericArgument()) const 8751: { 8751: return invokeOnGadget(gadget, QGenericReturnArgument(), 8751: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8751: } 8751: 8751: inline bool isValid() const { return mobj != nullptr; } 8751: 8751: template 8751: static inline QMetaMethod fromSignal(PointerToMemberFunction signal) 8751: { 8751: typedef QtPrivate::FunctionPointer SignalType; 8751: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8751: ; 8751: return fromSignalImpl(&SignalType::Object::staticMetaObject, 8751: reinterpret_cast(&signal)); 8751: } 8751: 8751: private: 8751: 8751: 8751: 8751: 8751: 8751: 8751: static QMetaMethod fromSignalImpl(const QMetaObject *, void **); 8751: 8751: const QMetaObject *mobj; 8751: uint handle; 8751: friend class QMetaMethodPrivate; 8751: friend struct QMetaObject; 8751: friend struct QMetaObjectPrivate; 8751: friend class QObject; 8751: friend bool operator==(const QMetaMethod &m1, const QMetaMethod &m2); 8751: friend bool operator!=(const QMetaMethod &m1, const QMetaMethod &m2); 8751: }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QMetaMethod)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QMetaMethod >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QMetaMethod) }; static inline const char *name() { return "QMetaMethod"; } }; 8751: 8751: inline bool operator==(const QMetaMethod &m1, const QMetaMethod &m2) 8751: { return m1.mobj == m2.mobj && m1.handle == m2.handle; } 8751: inline bool operator!=(const QMetaMethod &m1, const QMetaMethod &m2) 8751: { return !(m1 == m2); } 8751: 8751: class __attribute__((visibility("default"))) QMetaEnum 8751: { 8751: public: 8751: constexpr inline QMetaEnum() : mobj(nullptr), handle(0) {} 8751: 8751: const char *name() const; 8751: bool isFlag() const; 8751: bool isScoped() const; 8751: 8751: int keyCount() const; 8751: const char *key(int index) const; 8751: int value(int index) const; 8751: 8751: const char *scope() const; 8751: 8751: int keyToValue(const char *key, bool *ok = nullptr) const; 8751: const char* valueToKey(int value) const; 8751: int keysToValue(const char * keys, bool *ok = nullptr) const; 8751: QByteArray valueToKeys(int value) const; 8751: 8751: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8751: 8751: inline bool isValid() const { return name() != nullptr; } 8751: 8751: template static QMetaEnum fromType() { 8751: static_assert(bool(QtPrivate::IsQEnumHelper::Value), "QMetaEnum::fromType only works with enums declared as Q_ENUM or Q_FLAG") 8751: ; 8751: const QMetaObject *metaObject = qt_getEnumMetaObject(T()); 8751: const char *name = qt_getEnumName(T()); 8751: return metaObject->enumerator(metaObject->indexOfEnumerator(name)); 8751: } 8751: 8751: private: 8751: const QMetaObject *mobj; 8751: uint handle; 8751: friend struct QMetaObject; 8751: }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QMetaEnum)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QMetaEnum >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QMetaEnum) }; static inline const char *name() { return "QMetaEnum"; } }; 8751: 8751: class __attribute__((visibility("default"))) QMetaProperty 8751: { 8751: public: 8751: QMetaProperty(); 8751: 8751: const char *name() const; 8751: const char *typeName() const; 8751: QVariant::Type type() const; 8751: int userType() const; 8751: int propertyIndex() const; 8751: 8751: bool isReadable() const; 8751: bool isWritable() const; 8751: bool isResettable() const; 8751: bool isDesignable(const QObject *obj = nullptr) const; 8751: bool isScriptable(const QObject *obj = nullptr) const; 8751: bool isStored(const QObject *obj = nullptr) const; 8751: bool isEditable(const QObject *obj = nullptr) const; 8751: bool isUser(const QObject *obj = nullptr) const; 8751: bool isConstant() const; 8751: bool isFinal() const; 8751: 8751: bool isFlagType() const; 8751: bool isEnumType() const; 8751: QMetaEnum enumerator() const; 8751: 8751: bool hasNotifySignal() const; 8751: QMetaMethod notifySignal() const; 8751: int notifySignalIndex() const; 8751: 8751: int revision() const; 8751: 8751: QVariant read(const QObject *obj) const; 8751: bool write(QObject *obj, const QVariant &value) const; 8751: bool reset(QObject *obj) const; 8751: 8751: QVariant readOnGadget(const void *gadget) const; 8751: bool writeOnGadget(void *gadget, const QVariant &value) const; 8751: bool resetOnGadget(void *gadget) const; 8751: 8751: bool hasStdCppSet() const; 8751: inline bool isValid() const { return isReadable(); } 8751: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8751: 8751: private: 8751: int registerPropertyType() const; 8751: 8751: const QMetaObject *mobj; 8751: uint handle; 8751: int idx; 8751: QMetaEnum menum; 8751: friend struct QMetaObject; 8751: friend struct QMetaObjectPrivate; 8751: }; 8751: 8751: class __attribute__((visibility("default"))) QMetaClassInfo 8751: { 8751: public: 8751: constexpr inline QMetaClassInfo() : mobj(nullptr), handle(0) {} 8751: const char *name() const; 8751: const char *value() const; 8751: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8751: private: 8751: const QMetaObject *mobj; 8751: uint handle; 8751: friend struct QMetaObject; 8751: }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QMetaClassInfo)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QMetaClassInfo >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QMetaClassInfo) }; static inline const char *name() { return "QMetaClassInfo"; } }; 8751: 8751: 8751: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestcase.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsharedpointer.h" 1 3 4 8751: # 50 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestcase.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtemporarydir.h" 1 3 4 8751: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtemporarydir.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdir.h" 1 3 4 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdir.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfileinfo.h" 1 3 4 8751: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfileinfo.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 1 3 4 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 1 3 4 8751: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 3 4 8751: 8751: 8751: class QFileDevicePrivate; 8751: 8751: class __attribute__((visibility("default"))) QFileDevice : public QIODevice 8751: { 8751: 8751: public: 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 3 4 8751: #pragma GCC diagnostic push 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 3 4 8751: 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 3 4 8751: #pragma GCC diagnostic ignored "-Wsuggest-override" 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 3 4 8751: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 3 4 8751: #pragma GCC diagnostic ignored "-Wattributes" 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 3 4 8751: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 3 4 8751: #pragma GCC diagnostic pop 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfiledevice.h" 3 4 8751: struct QPrivateSignal {}; 8751: 8751: inline QFileDevicePrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QFileDevicePrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QFileDevicePrivate; 8751: 8751: public: 8751: enum FileError { 8751: NoError = 0, 8751: ReadError = 1, 8751: WriteError = 2, 8751: FatalError = 3, 8751: ResourceError = 4, 8751: OpenError = 5, 8751: AbortError = 6, 8751: TimeOutError = 7, 8751: UnspecifiedError = 8, 8751: RemoveError = 9, 8751: RenameError = 10, 8751: PositionError = 11, 8751: ResizeError = 12, 8751: PermissionsError = 13, 8751: CopyError = 14 8751: }; 8751: 8751: enum Permission { 8751: ReadOwner = 0x4000, WriteOwner = 0x2000, ExeOwner = 0x1000, 8751: ReadUser = 0x0400, WriteUser = 0x0200, ExeUser = 0x0100, 8751: ReadGroup = 0x0040, WriteGroup = 0x0020, ExeGroup = 0x0010, 8751: ReadOther = 0x0004, WriteOther = 0x0002, ExeOther = 0x0001 8751: }; 8751: typedef QFlags Permissions; 8751: 8751: enum FileHandleFlag { 8751: AutoCloseHandle = 0x0001, 8751: DontCloseHandle = 0 8751: }; 8751: typedef QFlags FileHandleFlags; 8751: 8751: ~QFileDevice(); 8751: 8751: FileError error() const; 8751: void unsetError(); 8751: 8751: virtual void close() override; 8751: 8751: bool isSequential() const override; 8751: 8751: int handle() const; 8751: virtual QString fileName() const; 8751: 8751: qint64 pos() const override; 8751: bool seek(qint64 offset) override; 8751: bool atEnd() const override; 8751: bool flush(); 8751: 8751: qint64 size() const override; 8751: 8751: virtual bool resize(qint64 sz); 8751: virtual Permissions permissions() const; 8751: virtual bool setPermissions(Permissions permissionSpec); 8751: 8751: 8751: enum MemoryMapFlags { 8751: NoOptions = 0, 8751: MapPrivateOption = 0x0001 8751: }; 8751: 8751: uchar *map(qint64 offset, qint64 size, MemoryMapFlags flags = NoOptions); 8751: bool unmap(uchar *address); 8751: 8751: protected: 8751: QFileDevice(); 8751: 8751: 8751: 8751: explicit QFileDevice(QObject *parent); 8751: QFileDevice(QFileDevicePrivate &dd, QObject *parent = nullptr); 8751: 8751: 8751: qint64 readData(char *data, qint64 maxlen) override; 8751: qint64 writeData(const char *data, qint64 len) override; 8751: qint64 readLineData(char *data, qint64 maxlen) override; 8751: 8751: private: 8751: QFileDevice(const QFileDevice &) = delete; QFileDevice &operator=(const QFileDevice &) = delete; 8751: }; 8751: 8751: constexpr inline QFlags operator|(QFileDevice::Permissions::enum_type f1, QFileDevice::Permissions::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QFileDevice::Permissions::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QFileDevice::Permissions::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: 8751: 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: class QTemporaryFile; 8751: class QFilePrivate; 8751: 8751: class __attribute__((visibility("default"))) QFile : public QFileDevice 8751: { 8751: 8751: public: 8751: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8751: #pragma GCC diagnostic push 8751: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8751: 8751: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8751: #pragma GCC diagnostic ignored "-Wsuggest-override" 8751: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8751: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8751: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8751: #pragma GCC diagnostic ignored "-Wattributes" 8751: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8751: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8751: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8751: #pragma GCC diagnostic pop 8751: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8751: struct QPrivateSignal {}; 8751: 8751: inline QFilePrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QFilePrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QFilePrivate; 8751: 8751: public: 8751: QFile(); 8751: QFile(const QString &name); 8751: 8751: explicit QFile(QObject *parent); 8751: QFile(const QString &name, QObject *parent); 8751: 8751: ~QFile(); 8751: 8751: QString fileName() const override; 8751: void setFileName(const QString &name); 8751: # 87 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8751: static inline QByteArray encodeName(const QString &fileName) 8751: { 8751: return fileName.toLocal8Bit(); 8751: } 8751: static QString decodeName(const QByteArray &localFileName) 8751: { 8751: return QString::fromLocal8Bit(localFileName); 8751: } 8751: 8751: inline static QString decodeName(const char *localFileName) 8751: { return decodeName(QByteArray(localFileName)); } 8751: # 106 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfile.h" 3 4 8751: bool exists() const; 8751: static bool exists(const QString &fileName); 8751: 8751: QString readLink() const; 8751: static QString readLink(const QString &fileName); 8751: inline QString symLinkTarget() const { return readLink(); } 8751: inline static QString symLinkTarget(const QString &fileName) { return readLink(fileName); } 8751: 8751: bool remove(); 8751: static bool remove(const QString &fileName); 8751: 8751: bool rename(const QString &newName); 8751: static bool rename(const QString &oldName, const QString &newName); 8751: 8751: bool link(const QString &newName); 8751: static bool link(const QString &oldname, const QString &newName); 8751: 8751: bool copy(const QString &newName); 8751: static bool copy(const QString &fileName, const QString &newName); 8751: 8751: bool open(OpenMode flags) override; 8751: bool open(FILE *f, OpenMode ioFlags, FileHandleFlags handleFlags=DontCloseHandle); 8751: bool open(int fd, OpenMode ioFlags, FileHandleFlags handleFlags=DontCloseHandle); 8751: 8751: qint64 size() const override; 8751: 8751: bool resize(qint64 sz) override; 8751: static bool resize(const QString &filename, qint64 sz); 8751: 8751: Permissions permissions() const override; 8751: static Permissions permissions(const QString &filename); 8751: bool setPermissions(Permissions permissionSpec) override; 8751: static bool setPermissions(const QString &filename, Permissions permissionSpec); 8751: 8751: protected: 8751: 8751: 8751: 8751: QFile(QFilePrivate &dd, QObject *parent = nullptr); 8751: 8751: 8751: private: 8751: friend class QTemporaryFile; 8751: QFile(const QFile &) = delete; QFile &operator=(const QFile &) = delete; 8751: }; 8751: 8751: 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qfileinfo.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: class QDir; 8751: class QDirIteratorPrivate; 8751: class QDateTime; 8751: class QFileInfoPrivate; 8751: 8751: class __attribute__((visibility("default"))) QFileInfo 8751: { 8751: friend class QDirIteratorPrivate; 8751: public: 8751: explicit QFileInfo(QFileInfoPrivate *d); 8751: 8751: QFileInfo(); 8751: QFileInfo(const QString &file); 8751: QFileInfo(const QFile &file); 8751: QFileInfo(const QDir &dir, const QString &file); 8751: QFileInfo(const QFileInfo &fileinfo); 8751: ~QFileInfo(); 8751: 8751: QFileInfo &operator=(const QFileInfo &fileinfo); 8751: 8751: QFileInfo &operator=(QFileInfo &&other) noexcept { swap(other); return *this; } 8751: 8751: 8751: void swap(QFileInfo &other) noexcept 8751: { qSwap(d_ptr, other.d_ptr); } 8751: 8751: bool operator==(const QFileInfo &fileinfo) const; 8751: inline bool operator!=(const QFileInfo &fileinfo) const { return !(operator==(fileinfo)); } 8751: 8751: void setFile(const QString &file); 8751: void setFile(const QFile &file); 8751: void setFile(const QDir &dir, const QString &file); 8751: bool exists() const; 8751: static bool exists(const QString &file); 8751: void refresh(); 8751: 8751: QString filePath() const; 8751: QString absoluteFilePath() const; 8751: QString canonicalFilePath() const; 8751: QString fileName() const; 8751: QString baseName() const; 8751: QString completeBaseName() const; 8751: QString suffix() const; 8751: QString bundleName() const; 8751: QString completeSuffix() const; 8751: 8751: QString path() const; 8751: QString absolutePath() const; 8751: QString canonicalPath() const; 8751: QDir dir() const; 8751: QDir absoluteDir() const; 8751: 8751: bool isReadable() const; 8751: bool isWritable() const; 8751: bool isExecutable() const; 8751: bool isHidden() const; 8751: bool isNativePath() const; 8751: 8751: bool isRelative() const; 8751: inline bool isAbsolute() const { return !isRelative(); } 8751: bool makeAbsolute(); 8751: 8751: bool isFile() const; 8751: bool isDir() const; 8751: bool isSymLink() const; 8751: bool isRoot() const; 8751: bool isBundle() const; 8751: 8751: QString readLink() const; 8751: inline QString symLinkTarget() const { return readLink(); } 8751: 8751: QString owner() const; 8751: uint ownerId() const; 8751: QString group() const; 8751: uint groupId() const; 8751: 8751: bool permission(QFile::Permissions permissions) const; 8751: QFile::Permissions permissions() const; 8751: 8751: qint64 size() const; 8751: 8751: QDateTime created() const; 8751: QDateTime lastModified() const; 8751: QDateTime lastRead() const; 8751: 8751: bool caching() const; 8751: void setCaching(bool on); 8751: 8751: protected: 8751: QSharedDataPointer d_ptr; 8751: 8751: private: 8751: QFileInfoPrivate* d_func(); 8751: inline const QFileInfoPrivate* d_func() const 8751: { 8751: return d_ptr.constData(); 8751: } 8751: }; 8751: 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QFileInfo)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QFileInfo >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QFileInfo) }; static inline const char *name() { return "QFileInfo"; } }; inline void swap(QFileInfo &value1, QFileInfo &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8751: 8751: typedef QList QFileInfoList; 8751: 8751: 8751: 8751: template <> struct QMetaTypeId< QFileInfo > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< QFileInfo >("QFileInfo", reinterpret_cast< QFileInfo *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdir.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringlist.h" 1 3 4 8751: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdir.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: class QDirIterator; 8751: class QDirPrivate; 8751: 8751: class __attribute__((visibility("default"))) QDir 8751: { 8751: public: 8751: enum Filter { Dirs = 0x001, 8751: Files = 0x002, 8751: Drives = 0x004, 8751: NoSymLinks = 0x008, 8751: AllEntries = Dirs | Files | Drives, 8751: TypeMask = 0x00f, 8751: 8751: Readable = 0x010, 8751: Writable = 0x020, 8751: Executable = 0x040, 8751: PermissionMask = 0x070, 8751: 8751: Modified = 0x080, 8751: Hidden = 0x100, 8751: System = 0x200, 8751: 8751: AccessMask = 0x3F0, 8751: 8751: AllDirs = 0x400, 8751: CaseSensitive = 0x800, 8751: NoDot = 0x2000, 8751: NoDotDot = 0x4000, 8751: NoDotAndDotDot = NoDot | NoDotDot, 8751: 8751: NoFilter = -1 8751: }; 8751: typedef QFlags Filters; 8751: 8751: enum SortFlag { Name = 0x00, 8751: Time = 0x01, 8751: Size = 0x02, 8751: Unsorted = 0x03, 8751: SortByMask = 0x03, 8751: 8751: DirsFirst = 0x04, 8751: Reversed = 0x08, 8751: IgnoreCase = 0x10, 8751: DirsLast = 0x20, 8751: LocaleAware = 0x40, 8751: Type = 0x80, 8751: NoSort = -1 8751: }; 8751: typedef QFlags SortFlags; 8751: 8751: QDir(const QDir &); 8751: QDir(const QString &path = QString()); 8751: QDir(const QString &path, const QString &nameFilter, 8751: SortFlags sort = SortFlags(Name | IgnoreCase), Filters filter = AllEntries); 8751: ~QDir(); 8751: 8751: QDir &operator=(const QDir &); 8751: QDir &operator=(const QString &path); 8751: 8751: QDir &operator=(QDir &&other) noexcept { swap(other); return *this; } 8751: 8751: 8751: void swap(QDir &other) noexcept 8751: { qSwap(d_ptr, other.d_ptr); } 8751: 8751: void setPath(const QString &path); 8751: QString path() const; 8751: QString absolutePath() const; 8751: QString canonicalPath() const; 8751: 8751: static void addResourceSearchPath(const QString &path); 8751: 8751: static void setSearchPaths(const QString &prefix, const QStringList &searchPaths); 8751: static void addSearchPath(const QString &prefix, const QString &path); 8751: static QStringList searchPaths(const QString &prefix); 8751: 8751: QString dirName() const; 8751: QString filePath(const QString &fileName) const; 8751: QString absoluteFilePath(const QString &fileName) const; 8751: QString relativeFilePath(const QString &fileName) const; 8751: 8751: static QString toNativeSeparators(const QString &pathName); 8751: static QString fromNativeSeparators(const QString &pathName); 8751: 8751: bool cd(const QString &dirName); 8751: bool cdUp(); 8751: 8751: QStringList nameFilters() const; 8751: void setNameFilters(const QStringList &nameFilters); 8751: 8751: Filters filter() const; 8751: void setFilter(Filters filter); 8751: SortFlags sorting() const; 8751: void setSorting(SortFlags sort); 8751: 8751: uint count() const; 8751: bool isEmpty(Filters filters = Filters(AllEntries | NoDotAndDotDot)) const; 8751: 8751: QString operator[](int) const; 8751: 8751: static QStringList nameFiltersFromString(const QString &nameFilter); 8751: 8751: QStringList entryList(Filters filters = NoFilter, SortFlags sort = NoSort) const; 8751: QStringList entryList(const QStringList &nameFilters, Filters filters = NoFilter, 8751: SortFlags sort = NoSort) const; 8751: 8751: QFileInfoList entryInfoList(Filters filters = NoFilter, SortFlags sort = NoSort) const; 8751: QFileInfoList entryInfoList(const QStringList &nameFilters, Filters filters = NoFilter, 8751: SortFlags sort = NoSort) const; 8751: 8751: bool mkdir(const QString &dirName) const; 8751: bool rmdir(const QString &dirName) const; 8751: bool mkpath(const QString &dirPath) const; 8751: bool rmpath(const QString &dirPath) const; 8751: 8751: bool removeRecursively(); 8751: 8751: bool isReadable() const; 8751: bool exists() const; 8751: bool isRoot() const; 8751: 8751: static bool isRelativePath(const QString &path); 8751: inline static bool isAbsolutePath(const QString &path) { return !isRelativePath(path); } 8751: bool isRelative() const; 8751: inline bool isAbsolute() const { return !isRelative(); } 8751: bool makeAbsolute(); 8751: 8751: bool operator==(const QDir &dir) const; 8751: inline bool operator!=(const QDir &dir) const { return !operator==(dir); } 8751: 8751: bool remove(const QString &fileName); 8751: bool rename(const QString &oldName, const QString &newName); 8751: bool exists(const QString &name) const; 8751: 8751: static QFileInfoList drives(); 8751: 8751: constexpr static inline QChar listSeparator() noexcept 8751: { 8751: 8751: 8751: 8751: return QLatin1Char(':'); 8751: 8751: } 8751: 8751: static QChar separator(); 8751: 8751: static bool setCurrent(const QString &path); 8751: static inline QDir current() { return QDir(currentPath()); } 8751: static QString currentPath(); 8751: 8751: static inline QDir home() { return QDir(homePath()); } 8751: static QString homePath(); 8751: static inline QDir root() { return QDir(rootPath()); } 8751: static QString rootPath(); 8751: static inline QDir temp() { return QDir(tempPath()); } 8751: static QString tempPath(); 8751: 8751: 8751: static bool match(const QStringList &filters, const QString &fileName); 8751: static bool match(const QString &filter, const QString &fileName); 8751: 8751: 8751: static QString cleanPath(const QString &path); 8751: void refresh() const; 8751: 8751: protected: 8751: explicit QDir(QDirPrivate &d); 8751: 8751: QSharedDataPointer d_ptr; 8751: 8751: private: 8751: friend class QDirIterator; 8751: 8751: QDirPrivate* d_func(); 8751: inline const QDirPrivate* d_func() const 8751: { 8751: return d_ptr.constData(); 8751: } 8751: 8751: }; 8751: 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QDir)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QDir >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QDir) }; static inline const char *name() { return "QDir"; } }; inline void swap(QDir &value1, QDir &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8751: constexpr inline QFlags operator|(QDir::Filters::enum_type f1, QDir::Filters::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QDir::Filters::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QDir::Filters::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: constexpr inline QFlags operator|(QDir::SortFlags::enum_type f1, QDir::SortFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QDir::SortFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QDir::SortFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: 8751: 8751: class QDebug; 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug debug, QDir::Filters filters); 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug debug, const QDir &dir); 8751: 8751: 8751: 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtemporarydir.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QScopedPointer" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qscopedpointer.h" 1 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/QScopedPointer" 2 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qtemporarydir.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: class QTemporaryDirPrivate; 8751: 8751: class __attribute__((visibility("default"))) QTemporaryDir 8751: { 8751: public: 8751: QTemporaryDir(); 8751: explicit QTemporaryDir(const QString &templateName); 8751: ~QTemporaryDir(); 8751: 8751: bool isValid() const; 8751: QString errorString() const; 8751: 8751: bool autoRemove() const; 8751: void setAutoRemove(bool b); 8751: bool remove(); 8751: 8751: QString path() const; 8751: QString filePath(const QString &fileName) const; 8751: 8751: private: 8751: QScopedPointer d_ptr; 8751: 8751: QTemporaryDir(const QTemporaryDir &) = delete; QTemporaryDir &operator=(const QTemporaryDir &) = delete; 8751: }; 8751: 8751: 8751: 8751: 8751: # 51 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestcase.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: class QRegularExpression; 8751: # 231 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestcase.h" 3 4 8751: class QObject; 8751: class QTestData; 8751: 8751: 8751: 8751: 8751: namespace QTest 8751: { 8751: namespace Internal { 8751: 8751: template 8751: inline typename std::enable_if::Value, char*>::type toString(T e) 8751: { 8751: QMetaEnum me = QMetaEnum::fromType(); 8751: return qstrdup(me.valueToKey(int(e))); 8751: } 8751: 8751: template 8751: inline typename std::enable_if::Value, char*>::type toString(const T &) 8751: { 8751: return nullptr; 8751: } 8751: 8751: } 8751: 8751: template 8751: inline char *toString(const T &t) 8751: { 8751: return Internal::toString(t); 8751: } 8751: 8751: __attribute__((visibility("default"))) char *toHexRepresentation(const char *ba, int length); 8751: __attribute__((visibility("default"))) char *toPrettyCString(const char *unicode, int length); 8751: __attribute__((visibility("default"))) char *toPrettyUnicode(const ushort *unicode, int length); 8751: __attribute__((visibility("default"))) char *toString(const char *); 8751: __attribute__((visibility("default"))) char *toString(const void *); 8751: 8751: __attribute__((visibility("default"))) int qExec(QObject *testObject, int argc = 0, char **argv = nullptr); 8751: __attribute__((visibility("default"))) int qExec(QObject *testObject, const QStringList &arguments); 8751: 8751: __attribute__((visibility("default"))) void setMainSourcePath(const char *file, const char *builddir = nullptr); 8751: 8751: __attribute__((visibility("default"))) bool qVerify(bool statement, const char *statementStr, const char *description, 8751: const char *file, int line); 8751: __attribute__((visibility("default"))) void qFail(const char *statementStr, const char *file, int line); 8751: __attribute__((visibility("default"))) void qSkip(const char *message, const char *file, int line); 8751: __attribute__((visibility("default"))) bool qExpectFail(const char *dataIndex, const char *comment, TestFailMode mode, 8751: const char *file, int line); 8751: __attribute__((visibility("default"))) void qWarn(const char *message, const char *file = nullptr, int line = 0); 8751: __attribute__((visibility("default"))) void ignoreMessage(QtMsgType type, const char *message); 8751: 8751: __attribute__((visibility("default"))) void ignoreMessage(QtMsgType type, const QRegularExpression &messagePattern); 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) QSharedPointer qExtractTestData(const QString &dirName); 8751: 8751: __attribute__((visibility("default"))) QString qFindTestData(const char* basepath, const char* file = nullptr, int line = 0, const char* builddir = nullptr); 8751: __attribute__((visibility("default"))) QString qFindTestData(const QString& basepath, const char* file = nullptr, int line = 0, const char* builddir = nullptr); 8751: 8751: __attribute__((visibility("default"))) void *qData(const char *tagName, int typeId); 8751: __attribute__((visibility("default"))) void *qGlobalData(const char *tagName, int typeId); 8751: __attribute__((visibility("default"))) void *qElementData(const char *elementName, int metaTypeId); 8751: __attribute__((visibility("default"))) QObject *testObject(); 8751: 8751: __attribute__((visibility("default"))) const char *currentAppName(); 8751: 8751: __attribute__((visibility("default"))) const char *currentTestFunction(); 8751: __attribute__((visibility("default"))) const char *currentDataTag(); 8751: __attribute__((visibility("default"))) bool currentTestFailed(); 8751: 8751: __attribute__((visibility("default"))) Qt::Key asciiToKey(char ascii); 8751: __attribute__((visibility("default"))) char keyToAscii(Qt::Key key); 8751: 8751: __attribute__((visibility("default"))) bool compare_helper(bool success, const char *failureMsg, 8751: char *val1, char *val2, 8751: const char *actual, const char *expected, 8751: const char *file, int line); 8751: __attribute__((visibility("default"))) void qSleep(int ms); 8751: __attribute__((visibility("default"))) void addColumnInternal(int id, const char *name); 8751: 8751: template 8751: inline void addColumn(const char *name, T * = nullptr) 8751: { 8751: typedef std::is_same QIsSameTConstChar; 8751: static_assert(bool(!QIsSameTConstChar::value), "const char* is not allowed as a test data format."); 8751: addColumnInternal(qMetaTypeId(), name); 8751: } 8751: __attribute__((visibility("default"))) QTestData &newRow(const char *dataTag); 8751: __attribute__((visibility("default"))) QTestData &addRow(const char *format, ...) __attribute__((format(printf, (1), (2)))); 8751: 8751: template 8751: inline bool qCompare(T const &t1, T const &t2, const char *actual, const char *expected, 8751: const char *file, int line) 8751: { 8751: return compare_helper(t1 == t2, "Compared values are not the same", 8751: toString(t1), toString(t2), actual, expected, file, line); 8751: } 8751: 8751: __attribute__((visibility("default"))) bool qCompare(float const &t1, float const &t2, 8751: const char *actual, const char *expected, const char *file, int line); 8751: 8751: __attribute__((visibility("default"))) bool qCompare(double const &t1, double const &t2, 8751: const char *actual, const char *expected, const char *file, int line); 8751: 8751: inline bool compare_ptr_helper(const volatile void *t1, const volatile void *t2, const char *actual, 8751: const char *expected, const char *file, int line) 8751: { 8751: return compare_helper(t1 == t2, "Compared pointers are not the same", 8751: toString(t1), toString(t2), actual, expected, file, line); 8751: } 8751: 8751: inline bool compare_ptr_helper(const volatile void *t1, std::nullptr_t, const char *actual, 8751: const char *expected, const char *file, int line) 8751: { 8751: return compare_helper(t1 == nullptr, "Compared pointers are not the same", 8751: toString(t1), toString(nullptr), actual, expected, file, line); 8751: } 8751: 8751: inline bool compare_ptr_helper(std::nullptr_t, const volatile void *t2, const char *actual, 8751: const char *expected, const char *file, int line) 8751: { 8751: return compare_helper(nullptr == t2, "Compared pointers are not the same", 8751: toString(nullptr), toString(t2), actual, expected, file, line); 8751: } 8751: 8751: __attribute__((visibility("default"))) bool compare_string_helper(const char *t1, const char *t2, const char *actual, 8751: const char *expected, const char *file, int line); 8751: 8751: 8751: template<> __attribute__((visibility("default"))) char *toString(const short &); 8751: template<> __attribute__((visibility("default"))) char *toString(const ushort &); 8751: template<> __attribute__((visibility("default"))) char *toString(const int &); 8751: template<> __attribute__((visibility("default"))) char *toString(const uint &); 8751: template<> __attribute__((visibility("default"))) char *toString(const long &); 8751: template<> __attribute__((visibility("default"))) char *toString(const ulong &); 8751: template<> __attribute__((visibility("default"))) char *toString(const qint64 &); 8751: template<> __attribute__((visibility("default"))) char *toString(const quint64 &); 8751: 8751: template<> __attribute__((visibility("default"))) char *toString(const float &); 8751: template<> __attribute__((visibility("default"))) char *toString(const double &); 8751: template<> __attribute__((visibility("default"))) char *toString(const char &); 8751: template<> __attribute__((visibility("default"))) char *toString(const signed char &); 8751: template<> __attribute__((visibility("default"))) char *toString(const unsigned char &); 8751: template<> __attribute__((visibility("default"))) char *toString(const bool &); 8751: 8751: 8751: template 8751: bool qCompare(T1 const &, T2 const &, const char *, const char *, const char *, int); 8751: 8751: inline bool qCompare(double const &t1, float const &t2, const char *actual, 8751: const char *expected, const char *file, int line) 8751: { 8751: return qCompare(qreal(t1), qreal(t2), actual, expected, file, line); 8751: } 8751: 8751: inline bool qCompare(float const &t1, double const &t2, const char *actual, 8751: const char *expected, const char *file, int line) 8751: { 8751: return qCompare(qreal(t1), qreal(t2), actual, expected, file, line); 8751: } 8751: 8751: template 8751: inline bool qCompare(const T *t1, const T *t2, const char *actual, const char *expected, 8751: const char *file, int line) 8751: { 8751: return compare_ptr_helper(t1, t2, actual, expected, file, line); 8751: } 8751: template 8751: inline bool qCompare(T *t1, T *t2, const char *actual, const char *expected, 8751: const char *file, int line) 8751: { 8751: return compare_ptr_helper(t1, t2, actual, expected, file, line); 8751: } 8751: 8751: template 8751: inline bool qCompare(T *t1, std::nullptr_t, const char *actual, const char *expected, 8751: const char *file, int line) 8751: { 8751: return compare_ptr_helper(t1, nullptr, actual, expected, file, line); 8751: } 8751: template 8751: inline bool qCompare(std::nullptr_t, T *t2, const char *actual, const char *expected, 8751: const char *file, int line) 8751: { 8751: return compare_ptr_helper(nullptr, t2, actual, expected, file, line); 8751: } 8751: 8751: template 8751: inline bool qCompare(const T1 *t1, const T2 *t2, const char *actual, const char *expected, 8751: const char *file, int line) 8751: { 8751: return compare_ptr_helper(t1, static_cast(t2), actual, expected, file, line); 8751: } 8751: template 8751: inline bool qCompare(T1 *t1, T2 *t2, const char *actual, const char *expected, 8751: const char *file, int line) 8751: { 8751: return compare_ptr_helper(const_cast(t1), 8751: static_cast(const_cast(t2)), actual, expected, file, line); 8751: } 8751: inline bool qCompare(const char *t1, const char *t2, const char *actual, 8751: const char *expected, const char *file, int line) 8751: { 8751: return compare_string_helper(t1, t2, actual, expected, file, line); 8751: } 8751: inline bool qCompare(char *t1, char *t2, const char *actual, const char *expected, 8751: const char *file, int line) 8751: { 8751: return compare_string_helper(t1, t2, actual, expected, file, line); 8751: } 8751: 8751: 8751: 8751: 8751: inline bool qCompare(char *t1, const char *t2, const char *actual, 8751: const char *expected, const char *file, int line) 8751: { 8751: return compare_string_helper(t1, t2, actual, expected, file, line); 8751: } 8751: inline bool qCompare(const char *t1, char *t2, const char *actual, 8751: const char *expected, const char *file, int line) 8751: { 8751: return compare_string_helper(t1, t2, actual, expected, file, line); 8751: } 8751: 8751: template 8751: inline bool qTest(const T& actual, const char *elementName, const char *actualStr, 8751: const char *expected, const char *file, int line) 8751: { 8751: return qCompare(actual, *static_cast(QTest::qElementData(elementName, 8751: qMetaTypeId())), actualStr, expected, file, line); 8751: } 8751: } 8751: 8751: 8751: 8751: 8751: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestdata.h" 1 3 4 8751: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestdata.h" 3 4 8751: 8751: 8751: 8751: class QTestTable; 8751: class QTestDataPrivate; 8751: 8751: class __attribute__((visibility("default"))) QTestData 8751: { 8751: public: 8751: ~QTestData(); 8751: 8751: void append(int type, const void *data); 8751: void *data(int index) const; 8751: const char *dataTag() const; 8751: QTestTable *parent() const; 8751: int dataCount() const; 8751: 8751: private: 8751: friend class QTestTable; 8751: QTestData(const char *tag, QTestTable *parent); 8751: 8751: QTestData(const QTestData &) = delete; QTestData &operator=(const QTestData &) = delete; 8751: 8751: QTestDataPrivate *d; 8751: }; 8751: 8751: template 8751: QTestData &operator<<(QTestData &data, const T &value) 8751: { 8751: data.append(qMetaTypeId(), &value); 8751: return data; 8751: } 8751: 8751: inline QTestData &operator<<(QTestData &data, const char * value) 8751: { 8751: QString str = QString::fromUtf8(value); 8751: data.append(QMetaType::QString, &str); 8751: return data; 8751: } 8751: 8751: 8751: template 8751: inline QTestData &operator<<(QTestData &data, const QStringBuilder &value) 8751: { 8751: return data << typename QConcatenable >::ConvertTo(value); 8751: } 8751: 8751: 8751: 8751: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qbenchmark.h" 1 3 4 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qbenchmark.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qbenchmarkmetric.h" 1 3 4 8751: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qbenchmarkmetric.h" 3 4 8751: 8751: 8751: 8751: namespace QTest { 8751: 8751: enum QBenchmarkMetric { 8751: FramesPerSecond, 8751: BitsPerSecond, 8751: BytesPerSecond, 8751: WalltimeMilliseconds, 8751: CPUTicks, 8751: InstructionReads, 8751: Events, 8751: WalltimeNanoseconds, 8751: BytesAllocated, 8751: CPUMigrations, 8751: CPUCycles, 8751: BusCycles, 8751: StalledCycles, 8751: Instructions, 8751: BranchInstructions, 8751: BranchMisses, 8751: CacheReferences, 8751: CacheReads, 8751: CacheWrites, 8751: CachePrefetches, 8751: CacheMisses, 8751: CacheReadMisses, 8751: CacheWriteMisses, 8751: CachePrefetchMisses, 8751: ContextSwitches, 8751: PageFaults, 8751: MinorPageFaults, 8751: MajorPageFaults, 8751: AlignmentFaults, 8751: EmulationFaults, 8751: RefCPUCycles, 8751: }; 8751: 8751: } 8751: 8751: 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qbenchmark.h" 2 3 4 8751: 8751: 8751: 8751: 8751: namespace QTest 8751: { 8751: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qbenchmark.h" 3 4 8751: class __attribute__((visibility("default"))) QBenchmarkIterationController 8751: { 8751: public: 8751: enum RunMode { RepeatUntilValidMeasurement, RunOnce }; 8751: QBenchmarkIterationController(); 8751: QBenchmarkIterationController(RunMode runMode); 8751: ~QBenchmarkIterationController(); 8751: bool isDone(); 8751: void next(); 8751: int i; 8751: }; 8751: 8751: } 8751: # 84 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qbenchmark.h" 3 4 8751: namespace QTest 8751: { 8751: void __attribute__((visibility("default"))) setBenchmarkResult(qreal result, QBenchmarkMetric metric); 8751: } 8751: 8751: 8751: 8751: 8751: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8751: 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qstringlist.h" 1 3 4 8751: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdatetime.h" 1 3 4 8751: # 55 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdatetime.h" 3 4 8751: 8751: 8751: class QTimeZone; 8751: 8751: class __attribute__((visibility("default"))) QDate 8751: { 8751: public: 8751: enum MonthNameType { 8751: DateFormat = 0, 8751: StandaloneFormat 8751: }; 8751: private: 8751: explicit constexpr QDate(qint64 julianDay) : jd(julianDay) {} 8751: public: 8751: constexpr QDate() : jd(nullJd()) {} 8751: QDate(int y, int m, int d); 8751: 8751: constexpr bool isNull() const { return !isValid(); } 8751: constexpr bool isValid() const { return jd >= minJd() && jd <= maxJd(); } 8751: 8751: int year() const; 8751: int month() const; 8751: int day() const; 8751: int dayOfWeek() const; 8751: int dayOfYear() const; 8751: int daysInMonth() const; 8751: int daysInYear() const; 8751: int weekNumber(int *yearNum = nullptr) const; 8751: 8751: 8751: static QString shortMonthName(int month, MonthNameType type = DateFormat); 8751: static QString shortDayName(int weekday, MonthNameType type = DateFormat); 8751: static QString longMonthName(int month, MonthNameType type = DateFormat); 8751: static QString longDayName(int weekday, MonthNameType type = DateFormat); 8751: 8751: 8751: QString toString(Qt::DateFormat f = Qt::TextDate) const; 8751: QString toString(const QString &format) const; 8751: 8751: 8751: 8751: 8751: 8751: 8751: bool setDate(int year, int month, int day); 8751: 8751: 8751: void getDate(int *year, int *month, int *day); 8751: 8751: void getDate(int *year, int *month, int *day) const; 8751: 8751: [[nodiscard]] QDate addDays(qint64 days) const; 8751: [[nodiscard]] QDate addMonths(int months) const; 8751: [[nodiscard]] QDate addYears(int years) const; 8751: qint64 daysTo(const QDate &) const; 8751: 8751: constexpr bool operator==(const QDate &other) const { return jd == other.jd; } 8751: constexpr bool operator!=(const QDate &other) const { return jd != other.jd; } 8751: constexpr bool operator< (const QDate &other) const { return jd < other.jd; } 8751: constexpr bool operator<=(const QDate &other) const { return jd <= other.jd; } 8751: constexpr bool operator> (const QDate &other) const { return jd > other.jd; } 8751: constexpr bool operator>=(const QDate &other) const { return jd >= other.jd; } 8751: 8751: static QDate currentDate(); 8751: 8751: static QDate fromString(const QString &s, Qt::DateFormat f = Qt::TextDate); 8751: static QDate fromString(const QString &s, const QString &format); 8751: 8751: static bool isValid(int y, int m, int d); 8751: static bool isLeapYear(int year); 8751: 8751: static constexpr inline QDate fromJulianDay(qint64 jd_) 8751: { return jd_ >= minJd() && jd_ <= maxJd() ? QDate(jd_) : QDate() ; } 8751: constexpr inline qint64 toJulianDay() const { return jd; } 8751: 8751: private: 8751: 8751: static constexpr inline qint64 nullJd() { return (std::numeric_limits::min)(); } 8751: static constexpr inline qint64 minJd() { return static_cast(-784350574879LL); } 8751: static constexpr inline qint64 maxJd() { return static_cast(784354017364LL); } 8751: 8751: qint64 jd; 8751: 8751: friend class QDateTime; 8751: friend class QDateTimePrivate; 8751: 8751: friend __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QDate &); 8751: friend __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QDate &); 8751: 8751: }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QDate)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QDate >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QDate) }; static inline const char *name() { return "QDate"; } }; 8751: 8751: class __attribute__((visibility("default"))) QTime 8751: { 8751: explicit constexpr QTime(int ms) : mds(ms) 8751: {} 8751: public: 8751: constexpr QTime(): mds(NullTime) 8751: {} 8751: QTime(int h, int m, int s = 0, int ms = 0); 8751: 8751: constexpr bool isNull() const { return mds == NullTime; } 8751: bool isValid() const; 8751: 8751: int hour() const; 8751: int minute() const; 8751: int second() const; 8751: int msec() const; 8751: 8751: QString toString(Qt::DateFormat f = Qt::TextDate) const; 8751: QString toString(const QString &format) const; 8751: 8751: bool setHMS(int h, int m, int s, int ms = 0); 8751: 8751: [[nodiscard]] QTime addSecs(int secs) const; 8751: int secsTo(const QTime &) const; 8751: [[nodiscard]] QTime addMSecs(int ms) const; 8751: int msecsTo(const QTime &) const; 8751: 8751: constexpr bool operator==(const QTime &other) const { return mds == other.mds; } 8751: constexpr bool operator!=(const QTime &other) const { return mds != other.mds; } 8751: constexpr bool operator< (const QTime &other) const { return mds < other.mds; } 8751: constexpr bool operator<=(const QTime &other) const { return mds <= other.mds; } 8751: constexpr bool operator> (const QTime &other) const { return mds > other.mds; } 8751: constexpr bool operator>=(const QTime &other) const { return mds >= other.mds; } 8751: 8751: static constexpr inline QTime fromMSecsSinceStartOfDay(int msecs) { return QTime(msecs); } 8751: constexpr inline int msecsSinceStartOfDay() const { return mds == NullTime ? 0 : mds; } 8751: 8751: static QTime currentTime(); 8751: 8751: static QTime fromString(const QString &s, Qt::DateFormat f = Qt::TextDate); 8751: static QTime fromString(const QString &s, const QString &format); 8751: 8751: static bool isValid(int h, int m, int s, int ms = 0); 8751: 8751: void start(); 8751: int restart(); 8751: int elapsed() const; 8751: private: 8751: enum TimeFlag { NullTime = -1 }; 8751: constexpr inline int ds() const { return mds == -1 ? 0 : mds; } 8751: int mds; 8751: 8751: friend class QDateTime; 8751: friend class QDateTimePrivate; 8751: 8751: friend __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QTime &); 8751: friend __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QTime &); 8751: 8751: }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QTime)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QTime >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QTime) }; static inline const char *name() { return "QTime"; } }; 8751: 8751: class QDateTimePrivate; 8751: 8751: class __attribute__((visibility("default"))) QDateTime 8751: { 8751: 8751: struct ShortData { 8751: 8751: quintptr status : 8; 8751: 8751: 8751: qintptr msecs : sizeof(void *) * 8 - 8; 8751: 8751: 8751: 8751: 8751: }; 8751: 8751: union Data { 8751: enum { 8751: 8751: 8751: 8751: CanBeSmall = sizeof(ShortData) * 8 > 50 8751: }; 8751: 8751: Data(); 8751: Data(Qt::TimeSpec); 8751: Data(const Data &other); 8751: Data(Data &&other); 8751: Data &operator=(const Data &other); 8751: ~Data(); 8751: 8751: bool isShort() const; 8751: void detach(); 8751: 8751: const QDateTimePrivate *operator->() const; 8751: QDateTimePrivate *operator->(); 8751: 8751: QDateTimePrivate *d; 8751: ShortData data; 8751: }; 8751: 8751: public: 8751: QDateTime() noexcept(Data::CanBeSmall); 8751: explicit QDateTime(const QDate &); 8751: QDateTime(const QDate &, const QTime &, Qt::TimeSpec spec = Qt::LocalTime); 8751: 8751: QDateTime(const QDate &date, const QTime &time, Qt::TimeSpec spec, int offsetSeconds); 8751: 8751: QDateTime(const QDate &date, const QTime &time, const QTimeZone &timeZone); 8751: 8751: QDateTime(const QDateTime &other) noexcept; 8751: QDateTime(QDateTime &&other) noexcept; 8751: ~QDateTime(); 8751: 8751: 8751: QDateTime &operator=(QDateTime &&other) noexcept { swap(other); return *this; } 8751: 8751: QDateTime &operator=(const QDateTime &other) noexcept; 8751: 8751: void swap(QDateTime &other) noexcept { qSwap(d.d, other.d.d); } 8751: 8751: bool isNull() const; 8751: bool isValid() const; 8751: 8751: QDate date() const; 8751: QTime time() const; 8751: Qt::TimeSpec timeSpec() const; 8751: int offsetFromUtc() const; 8751: 8751: QTimeZone timeZone() const; 8751: 8751: QString timeZoneAbbreviation() const; 8751: bool isDaylightTime() const; 8751: 8751: qint64 toMSecsSinceEpoch() const; 8751: qint64 toSecsSinceEpoch() const; 8751: 8751: void setDate(const QDate &date); 8751: void setTime(const QTime &time); 8751: void setTimeSpec(Qt::TimeSpec spec); 8751: void setOffsetFromUtc(int offsetSeconds); 8751: 8751: void setTimeZone(const QTimeZone &toZone); 8751: 8751: void setMSecsSinceEpoch(qint64 msecs); 8751: void setSecsSinceEpoch(qint64 secs); 8751: 8751: 8751: QString toString(Qt::DateFormat f = Qt::TextDate) const; 8751: QString toString(const QString &format) const; 8751: 8751: [[nodiscard]] QDateTime addDays(qint64 days) const; 8751: [[nodiscard]] QDateTime addMonths(int months) const; 8751: [[nodiscard]] QDateTime addYears(int years) const; 8751: [[nodiscard]] QDateTime addSecs(qint64 secs) const; 8751: [[nodiscard]] QDateTime addMSecs(qint64 msecs) const; 8751: 8751: QDateTime toTimeSpec(Qt::TimeSpec spec) const; 8751: inline QDateTime toLocalTime() const { return toTimeSpec(Qt::LocalTime); } 8751: inline QDateTime toUTC() const { return toTimeSpec(Qt::UTC); } 8751: QDateTime toOffsetFromUtc(int offsetSeconds) const; 8751: 8751: QDateTime toTimeZone(const QTimeZone &toZone) const; 8751: 8751: 8751: qint64 daysTo(const QDateTime &) const; 8751: qint64 secsTo(const QDateTime &) const; 8751: qint64 msecsTo(const QDateTime &) const; 8751: 8751: bool operator==(const QDateTime &other) const; 8751: inline bool operator!=(const QDateTime &other) const { return !(*this == other); } 8751: bool operator<(const QDateTime &other) const; 8751: inline bool operator<=(const QDateTime &other) const { return !(other < *this); } 8751: inline bool operator>(const QDateTime &other) const { return other < *this; } 8751: inline bool operator>=(const QDateTime &other) const { return !(*this < other); } 8751: 8751: 8751: void setUtcOffset(int seconds); 8751: int utcOffset() const; 8751: 8751: 8751: static QDateTime currentDateTime(); 8751: static QDateTime currentDateTimeUtc(); 8751: 8751: static QDateTime fromString(const QString &s, Qt::DateFormat f = Qt::TextDate); 8751: static QDateTime fromString(const QString &s, const QString &format); 8751: 8751: 8751: 8751: uint toTime_t() const; 8751: void setTime_t(uint secsSince1Jan1970UTC); 8751: static QDateTime fromTime_t(uint secsSince1Jan1970UTC); 8751: static QDateTime fromTime_t(uint secsSince1Jan1970UTC, Qt::TimeSpec spec, 8751: int offsetFromUtc = 0); 8751: static QDateTime fromTime_t(uint secsSince1Jan1970UTC, const QTimeZone &timeZone); 8751: 8751: 8751: static QDateTime fromMSecsSinceEpoch(qint64 msecs); 8751: 8751: static QDateTime fromMSecsSinceEpoch(qint64 msecs, Qt::TimeSpec spec, int offsetFromUtc = 0); 8751: static QDateTime fromSecsSinceEpoch(qint64 secs, Qt::TimeSpec spe = Qt::LocalTime, int offsetFromUtc = 0); 8751: 8751: 8751: static QDateTime fromMSecsSinceEpoch(qint64 msecs, const QTimeZone &timeZone); 8751: static QDateTime fromSecsSinceEpoch(qint64 secs, const QTimeZone &timeZone); 8751: 8751: 8751: static qint64 currentMSecsSinceEpoch() noexcept; 8751: static qint64 currentSecsSinceEpoch() noexcept; 8751: # 366 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdatetime.h" 3 4 8751: private: 8751: friend class QDateTimePrivate; 8751: 8751: Data d; 8751: 8751: 8751: friend __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QDateTime &); 8751: friend __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QDateTime &); 8751: 8751: 8751: 8751: friend __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QDateTime &); 8751: 8751: }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QDateTime)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QDateTime >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QDateTime) }; static inline const char *name() { return "QDateTime"; } }; inline void swap(QDateTime &value1, QDateTime &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8751: 8751: 8751: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QDate &); 8751: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QDate &); 8751: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QTime &); 8751: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QTime &); 8751: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QDateTime &); 8751: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QDateTime &); 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QDate &); 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QTime &); 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QDateTime &); 8751: 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) uint qHash(const QDateTime &key, uint seed = 0); 8751: __attribute__((visibility("default"))) uint qHash(const QDate &key, uint seed = 0) noexcept; 8751: __attribute__((visibility("default"))) uint qHash(const QTime &key, uint seed = 0) noexcept; 8751: 8751: 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8751: 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qurl.h" 1 3 4 8751: # 56 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qurl.h" 3 4 8751: 8751: 8751: 8751: class QUrlQuery; 8751: class QUrlPrivate; 8751: class QDataStream; 8751: 8751: template 8751: class QUrlTwoFlags 8751: { 8751: int i; 8751: typedef int QUrlTwoFlags:: *Zero; 8751: public: 8751: constexpr inline QUrlTwoFlags(E1 f) : i(f) {} 8751: constexpr inline QUrlTwoFlags(E2 f) : i(f) {} 8751: constexpr inline QUrlTwoFlags(QFlag f) : i(f) {} 8751: constexpr inline QUrlTwoFlags(QFlags f) : i(f.operator typename QFlags::Int()) {} 8751: constexpr inline QUrlTwoFlags(QFlags f) : i(f.operator typename QFlags::Int()) {} 8751: constexpr inline QUrlTwoFlags(Zero = 0) : i(0) {} 8751: 8751: inline QUrlTwoFlags &operator&=(int mask) { i &= mask; return *this; } 8751: inline QUrlTwoFlags &operator&=(uint mask) { i &= mask; return *this; } 8751: inline QUrlTwoFlags &operator|=(QUrlTwoFlags f) { i |= f.i; return *this; } 8751: inline QUrlTwoFlags &operator|=(E1 f) { i |= f; return *this; } 8751: inline QUrlTwoFlags &operator|=(E2 f) { i |= f; return *this; } 8751: inline QUrlTwoFlags &operator^=(QUrlTwoFlags f) { i ^= f.i; return *this; } 8751: inline QUrlTwoFlags &operator^=(E1 f) { i ^= f; return *this; } 8751: inline QUrlTwoFlags &operator^=(E2 f) { i ^= f; return *this; } 8751: 8751: constexpr inline operator QFlags() const { return QFlag(i); } 8751: constexpr inline operator QFlags() const { return QFlag(i); } 8751: constexpr inline operator int() const { return i; } 8751: constexpr inline bool operator!() const { return !i; } 8751: 8751: constexpr inline QUrlTwoFlags operator|(QUrlTwoFlags f) const 8751: { return QUrlTwoFlags(QFlag(i | f.i)); } 8751: constexpr inline QUrlTwoFlags operator|(E1 f) const 8751: { return QUrlTwoFlags(QFlag(i | f)); } 8751: constexpr inline QUrlTwoFlags operator|(E2 f) const 8751: { return QUrlTwoFlags(QFlag(i | f)); } 8751: constexpr inline QUrlTwoFlags operator^(QUrlTwoFlags f) const 8751: { return QUrlTwoFlags(QFlag(i ^ f.i)); } 8751: constexpr inline QUrlTwoFlags operator^(E1 f) const 8751: { return QUrlTwoFlags(QFlag(i ^ f)); } 8751: constexpr inline QUrlTwoFlags operator^(E2 f) const 8751: { return QUrlTwoFlags(QFlag(i ^ f)); } 8751: constexpr inline QUrlTwoFlags operator&(int mask) const 8751: { return QUrlTwoFlags(QFlag(i & mask)); } 8751: constexpr inline QUrlTwoFlags operator&(uint mask) const 8751: { return QUrlTwoFlags(QFlag(i & mask)); } 8751: constexpr inline QUrlTwoFlags operator&(E1 f) const 8751: { return QUrlTwoFlags(QFlag(i & f)); } 8751: constexpr inline QUrlTwoFlags operator&(E2 f) const 8751: { return QUrlTwoFlags(QFlag(i & f)); } 8751: constexpr inline QUrlTwoFlags operator~() const 8751: { return QUrlTwoFlags(QFlag(~i)); } 8751: 8751: constexpr inline bool testFlag(E1 f) const { return (i & f) == f && (f != 0 || i == int(f)); } 8751: constexpr inline bool testFlag(E2 f) const { return (i & f) == f && (f != 0 || i == int(f)); } 8751: }; 8751: 8751: template 8751: class QTypeInfo > : public QTypeInfoMerger, E1, E2> {}; 8751: 8751: class QUrl; 8751: 8751: __attribute__((visibility("default"))) uint qHash(const QUrl &url, uint seed = 0) noexcept; 8751: 8751: class __attribute__((visibility("default"))) QUrl 8751: { 8751: public: 8751: enum ParsingMode { 8751: TolerantMode, 8751: StrictMode, 8751: DecodedMode 8751: }; 8751: 8751: 8751: enum UrlFormattingOption { 8751: None = 0x0, 8751: RemoveScheme = 0x1, 8751: RemovePassword = 0x2, 8751: RemoveUserInfo = RemovePassword | 0x4, 8751: RemovePort = 0x8, 8751: RemoveAuthority = RemoveUserInfo | RemovePort | 0x10, 8751: RemovePath = 0x20, 8751: RemoveQuery = 0x40, 8751: RemoveFragment = 0x80, 8751: 8751: PreferLocalFile = 0x200, 8751: StripTrailingSlash = 0x400, 8751: RemoveFilename = 0x800, 8751: NormalizePathSegments = 0x1000 8751: }; 8751: 8751: enum ComponentFormattingOption { 8751: PrettyDecoded = 0x000000, 8751: EncodeSpaces = 0x100000, 8751: EncodeUnicode = 0x200000, 8751: EncodeDelimiters = 0x400000 | 0x800000, 8751: EncodeReserved = 0x1000000, 8751: DecodeReserved = 0x2000000, 8751: 8751: 8751: FullyEncoded = EncodeSpaces | EncodeUnicode | EncodeDelimiters | EncodeReserved, 8751: FullyDecoded = FullyEncoded | DecodeReserved | 0x4000000 8751: }; 8751: typedef QFlags ComponentFormattingOptions; 8751: # 173 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qurl.h" 3 4 8751: typedef QUrlTwoFlags FormattingOptions; 8751: 8751: 8751: QUrl(); 8751: QUrl(const QUrl ©); 8751: QUrl &operator =(const QUrl ©); 8751: 8751: explicit QUrl(const QString &url, ParsingMode mode = TolerantMode); 8751: 8751: 8751: 8751: 8751: 8751: QUrl(QUrl &&other) noexcept : d(other.d) 8751: { other.d = nullptr; } 8751: inline QUrl &operator=(QUrl &&other) noexcept 8751: { qSwap(d, other.d); return *this; } 8751: 8751: ~QUrl(); 8751: 8751: inline void swap(QUrl &other) noexcept { qSwap(d, other.d); } 8751: 8751: void setUrl(const QString &url, ParsingMode mode = TolerantMode); 8751: QString url(FormattingOptions options = FormattingOptions(PrettyDecoded)) const; 8751: QString toString(FormattingOptions options = FormattingOptions(PrettyDecoded)) const; 8751: QString toDisplayString(FormattingOptions options = FormattingOptions(PrettyDecoded)) const; 8751: [[nodiscard]] QUrl adjusted(FormattingOptions options) const; 8751: 8751: QByteArray toEncoded(FormattingOptions options = FullyEncoded) const; 8751: static QUrl fromEncoded(const QByteArray &url, ParsingMode mode = TolerantMode); 8751: 8751: enum UserInputResolutionOption { 8751: DefaultResolution, 8751: AssumeLocalFile 8751: }; 8751: typedef QFlags UserInputResolutionOptions; 8751: 8751: static QUrl fromUserInput(const QString &userInput); 8751: 8751: static QUrl fromUserInput(const QString &userInput, const QString &workingDirectory, 8751: UserInputResolutionOptions options = DefaultResolution); 8751: 8751: bool isValid() const; 8751: QString errorString() const; 8751: 8751: bool isEmpty() const; 8751: void clear(); 8751: 8751: void setScheme(const QString &scheme); 8751: QString scheme() const; 8751: 8751: void setAuthority(const QString &authority, ParsingMode mode = TolerantMode); 8751: QString authority(ComponentFormattingOptions options = PrettyDecoded) const; 8751: 8751: void setUserInfo(const QString &userInfo, ParsingMode mode = TolerantMode); 8751: QString userInfo(ComponentFormattingOptions options = PrettyDecoded) const; 8751: 8751: void setUserName(const QString &userName, ParsingMode mode = DecodedMode); 8751: QString userName(ComponentFormattingOptions options = FullyDecoded) const; 8751: 8751: void setPassword(const QString &password, ParsingMode mode = DecodedMode); 8751: QString password(ComponentFormattingOptions = FullyDecoded) const; 8751: 8751: void setHost(const QString &host, ParsingMode mode = DecodedMode); 8751: QString host(ComponentFormattingOptions = FullyDecoded) const; 8751: 8751: QString topLevelDomain(ComponentFormattingOptions options = FullyDecoded) const; 8751: 8751: 8751: void setPort(int port); 8751: int port(int defaultPort = -1) const; 8751: 8751: void setPath(const QString &path, ParsingMode mode = DecodedMode); 8751: QString path(ComponentFormattingOptions options = FullyDecoded) const; 8751: QString fileName(ComponentFormattingOptions options = FullyDecoded) const; 8751: 8751: bool hasQuery() const; 8751: void setQuery(const QString &query, ParsingMode mode = TolerantMode); 8751: void setQuery(const QUrlQuery &query); 8751: QString query(ComponentFormattingOptions = PrettyDecoded) const; 8751: 8751: bool hasFragment() const; 8751: QString fragment(ComponentFormattingOptions options = PrettyDecoded) const; 8751: void setFragment(const QString &fragment, ParsingMode mode = TolerantMode); 8751: 8751: [[nodiscard]] QUrl resolved(const QUrl &relative) const; 8751: 8751: bool isRelative() const; 8751: bool isParentOf(const QUrl &url) const; 8751: 8751: bool isLocalFile() const; 8751: static QUrl fromLocalFile(const QString &localfile); 8751: QString toLocalFile() const; 8751: 8751: void detach(); 8751: bool isDetached() const; 8751: 8751: bool operator <(const QUrl &url) const; 8751: bool operator ==(const QUrl &url) const; 8751: bool operator !=(const QUrl &url) const; 8751: 8751: bool matches(const QUrl &url, FormattingOptions options) const; 8751: 8751: static QString fromPercentEncoding(const QByteArray &); 8751: static QByteArray toPercentEncoding(const QString &, 8751: const QByteArray &exclude = QByteArray(), 8751: const QByteArray &include = QByteArray()); 8751: # 353 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qurl.h" 3 4 8751: private: 8751: static QString fromEncodedComponent_helper(const QByteArray &ba); 8751: 8751: public: 8751: static QString fromAce(const QByteArray &); 8751: static QByteArray toAce(const QString &); 8751: static QStringList idnWhitelist(); 8751: static QStringList toStringList(const QList &uris, FormattingOptions options = FormattingOptions(PrettyDecoded)); 8751: static QList fromStringList(const QStringList &uris, ParsingMode mode = TolerantMode); 8751: 8751: static void setIdnWhitelist(const QStringList &); 8751: friend __attribute__((visibility("default"))) uint qHash(const QUrl &url, uint seed) noexcept; 8751: 8751: private: 8751: QUrlPrivate *d; 8751: friend class QUrlQuery; 8751: 8751: public: 8751: typedef QUrlPrivate * DataPtr; 8751: inline DataPtr &data_ptr() { return d; } 8751: }; 8751: 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QUrl)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QUrl >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QUrl) }; static inline const char *name() { return "QUrl"; } }; inline void swap(QUrl &value1, QUrl &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8751: constexpr inline QFlags operator|(QUrl::ComponentFormattingOptions::enum_type f1, QUrl::ComponentFormattingOptions::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QUrl::ComponentFormattingOptions::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QUrl::ComponentFormattingOptions::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: 8751: 8751: 8751: constexpr inline QUrl::FormattingOptions operator|(QUrl::UrlFormattingOption f1, QUrl::UrlFormattingOption f2) 8751: { return QUrl::FormattingOptions(f1) | f2; } 8751: constexpr inline QUrl::FormattingOptions operator|(QUrl::UrlFormattingOption f1, QUrl::FormattingOptions f2) 8751: { return f2 | f1; } 8751: constexpr inline QIncompatibleFlag operator|(QUrl::UrlFormattingOption f1, int f2) 8751: { return QIncompatibleFlag(int(f1) | f2); } 8751: 8751: 8751: inline QUrl::FormattingOptions &operator|=(QUrl::FormattingOptions &i, QUrl::ComponentFormattingOptions f) 8751: { i |= QUrl::UrlFormattingOption(int(f)); return i; } 8751: constexpr inline QUrl::FormattingOptions operator|(QUrl::UrlFormattingOption i, QUrl::ComponentFormattingOption f) 8751: { return i | QUrl::UrlFormattingOption(int(f)); } 8751: constexpr inline QUrl::FormattingOptions operator|(QUrl::UrlFormattingOption i, QUrl::ComponentFormattingOptions f) 8751: { return i | QUrl::UrlFormattingOption(int(f)); } 8751: constexpr inline QUrl::FormattingOptions operator|(QUrl::ComponentFormattingOption f, QUrl::UrlFormattingOption i) 8751: { return i | QUrl::UrlFormattingOption(int(f)); } 8751: constexpr inline QUrl::FormattingOptions operator|(QUrl::ComponentFormattingOptions f, QUrl::UrlFormattingOption i) 8751: { return i | QUrl::UrlFormattingOption(int(f)); } 8751: constexpr inline QUrl::FormattingOptions operator|(QUrl::FormattingOptions i, QUrl::ComponentFormattingOptions f) 8751: { return i | QUrl::UrlFormattingOption(int(f)); } 8751: constexpr inline QUrl::FormattingOptions operator|(QUrl::ComponentFormattingOption f, QUrl::FormattingOptions i) 8751: { return i | QUrl::UrlFormattingOption(int(f)); } 8751: constexpr inline QUrl::FormattingOptions operator|(QUrl::ComponentFormattingOptions f, QUrl::FormattingOptions i) 8751: { return i | QUrl::UrlFormattingOption(int(f)); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QUrl &); 8751: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QUrl &); 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QUrl &); 8751: 8751: 8751: 8751: # 56 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/quuid.h" 1 3 4 8751: # 63 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/quuid.h" 3 4 8751: 8751: 8751: 8751: class __attribute__((visibility("default"))) QUuid 8751: { 8751: public: 8751: enum Variant { 8751: VarUnknown =-1, 8751: NCS = 0, 8751: DCE = 2, 8751: Microsoft = 6, 8751: Reserved = 7 8751: }; 8751: 8751: enum Version { 8751: VerUnknown =-1, 8751: Time = 1, 8751: EmbeddedPOSIX = 2, 8751: Md5 = 3, 8751: Name = Md5, 8751: Random = 4, 8751: Sha1 = 5 8751: }; 8751: 8751: 8751: constexpr QUuid() noexcept : data1(0), data2(0), data3(0), data4{0,0,0,0,0,0,0,0} {} 8751: 8751: constexpr QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, 8751: uchar b4, uchar b5, uchar b6, uchar b7, uchar b8) noexcept 8751: : data1(l), data2(w1), data3(w2), data4{b1, b2, b3, b4, b5, b6, b7, b8} {} 8751: # 118 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/quuid.h" 3 4 8751: QUuid(const QString &); 8751: QUuid(const char *); 8751: QString toString() const; 8751: QUuid(const QByteArray &); 8751: QByteArray toByteArray() const; 8751: QByteArray toRfc4122() const; 8751: static QUuid fromRfc4122(const QByteArray &); 8751: bool isNull() const noexcept; 8751: 8751: bool operator==(const QUuid &orig) const noexcept 8751: { 8751: if (data1 != orig.data1 || data2 != orig.data2 || 8751: data3 != orig.data3) 8751: return false; 8751: 8751: for (uint i = 0; i < 8; i++) 8751: if (data4[i] != orig.data4[i]) 8751: return false; 8751: 8751: return true; 8751: } 8751: 8751: bool operator!=(const QUuid &orig) const noexcept 8751: { 8751: return !(*this == orig); 8751: } 8751: 8751: bool operator<(const QUuid &other) const noexcept; 8751: bool operator>(const QUuid &other) const noexcept; 8751: # 189 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/quuid.h" 3 4 8751: static QUuid createUuid(); 8751: 8751: static QUuid createUuidV3(const QUuid &ns, const QByteArray &baseData); 8751: static QUuid createUuidV5(const QUuid &ns, const QByteArray &baseData); 8751: static inline QUuid createUuidV3(const QUuid &ns, const QString &baseData) 8751: { 8751: return QUuid::createUuidV3(ns, baseData.toUtf8()); 8751: } 8751: 8751: static inline QUuid createUuidV5(const QUuid &ns, const QString &baseData) 8751: { 8751: return QUuid::createUuidV5(ns, baseData.toUtf8()); 8751: } 8751: 8751: 8751: 8751: QUuid::Variant variant() const noexcept; 8751: QUuid::Version version() const noexcept; 8751: # 215 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/quuid.h" 3 4 8751: uint data1; 8751: ushort data2; 8751: ushort data3; 8751: uchar data4[8]; 8751: }; 8751: 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QUuid)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QUuid >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QUuid) }; static inline const char *name() { return "QUuid"; } }; 8751: 8751: 8751: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QUuid &); 8751: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QUuid &); 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QUuid &); 8751: 8751: 8751: __attribute__((visibility("default"))) uint qHash(const QUuid &uuid, uint seed = 0) noexcept; 8751: 8751: inline bool operator<=(const QUuid &lhs, const QUuid &rhs) noexcept 8751: { return !(rhs < lhs); } 8751: inline bool operator>=(const QUuid &lhs, const QUuid &rhs) noexcept 8751: { return !(lhs < rhs); } 8751: 8751: 8751: # 57 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8751: 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qpoint.h" 1 3 4 8751: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qpoint.h" 3 4 8751: 8751: 8751: 8751: class __attribute__((visibility("default"))) QPoint 8751: { 8751: public: 8751: constexpr QPoint(); 8751: constexpr QPoint(int xpos, int ypos); 8751: 8751: constexpr inline bool isNull() const; 8751: 8751: constexpr inline int x() const; 8751: constexpr inline int y() const; 8751: inline void setX(int x); 8751: inline void setY(int y); 8751: 8751: constexpr inline int manhattanLength() const; 8751: 8751: inline int &rx(); 8751: inline int &ry(); 8751: 8751: inline QPoint &operator+=(const QPoint &p); 8751: inline QPoint &operator-=(const QPoint &p); 8751: 8751: inline QPoint &operator*=(float factor); 8751: inline QPoint &operator*=(double factor); 8751: inline QPoint &operator*=(int factor); 8751: 8751: inline QPoint &operator/=(qreal divisor); 8751: 8751: constexpr static inline int dotProduct(const QPoint &p1, const QPoint &p2) 8751: { return p1.xp * p2.xp + p1.yp * p2.yp; } 8751: 8751: friend constexpr inline bool operator==(const QPoint &, const QPoint &); 8751: friend constexpr inline bool operator!=(const QPoint &, const QPoint &); 8751: friend constexpr inline const QPoint operator+(const QPoint &, const QPoint &); 8751: friend constexpr inline const QPoint operator-(const QPoint &, const QPoint &); 8751: friend constexpr inline const QPoint operator*(const QPoint &, float); 8751: friend constexpr inline const QPoint operator*(float, const QPoint &); 8751: friend constexpr inline const QPoint operator*(const QPoint &, double); 8751: friend constexpr inline const QPoint operator*(double, const QPoint &); 8751: friend constexpr inline const QPoint operator*(const QPoint &, int); 8751: friend constexpr inline const QPoint operator*(int, const QPoint &); 8751: friend constexpr inline const QPoint operator+(const QPoint &); 8751: friend constexpr inline const QPoint operator-(const QPoint &); 8751: friend constexpr inline const QPoint operator/(const QPoint &, qreal); 8751: 8751: 8751: 8751: 8751: 8751: private: 8751: friend class QTransform; 8751: int xp; 8751: int yp; 8751: }; 8751: 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QPoint)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QPoint >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QPoint) }; static inline const char *name() { return "QPoint"; } }; 8751: 8751: 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QPoint &); 8751: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QPoint &); 8751: 8751: 8751: 8751: 8751: 8751: 8751: constexpr inline QPoint::QPoint() : xp(0), yp(0) {} 8751: 8751: constexpr inline QPoint::QPoint(int xpos, int ypos) : xp(xpos), yp(ypos) {} 8751: 8751: constexpr inline bool QPoint::isNull() const 8751: { return xp == 0 && yp == 0; } 8751: 8751: constexpr inline int QPoint::x() const 8751: { return xp; } 8751: 8751: constexpr inline int QPoint::y() const 8751: { return yp; } 8751: 8751: inline void QPoint::setX(int xpos) 8751: { xp = xpos; } 8751: 8751: inline void QPoint::setY(int ypos) 8751: { yp = ypos; } 8751: 8751: inline int constexpr QPoint::manhattanLength() const 8751: { return qAbs(x())+qAbs(y()); } 8751: 8751: inline int &QPoint::rx() 8751: { return xp; } 8751: 8751: inline int &QPoint::ry() 8751: { return yp; } 8751: 8751: inline QPoint &QPoint::operator+=(const QPoint &p) 8751: { xp+=p.xp; yp+=p.yp; return *this; } 8751: 8751: inline QPoint &QPoint::operator-=(const QPoint &p) 8751: { xp-=p.xp; yp-=p.yp; return *this; } 8751: 8751: inline QPoint &QPoint::operator*=(float factor) 8751: { xp = qRound(xp*factor); yp = qRound(yp*factor); return *this; } 8751: 8751: inline QPoint &QPoint::operator*=(double factor) 8751: { xp = qRound(xp*factor); yp = qRound(yp*factor); return *this; } 8751: 8751: inline QPoint &QPoint::operator*=(int factor) 8751: { xp = xp*factor; yp = yp*factor; return *this; } 8751: 8751: constexpr inline bool operator==(const QPoint &p1, const QPoint &p2) 8751: { return p1.xp == p2.xp && p1.yp == p2.yp; } 8751: 8751: constexpr inline bool operator!=(const QPoint &p1, const QPoint &p2) 8751: { return p1.xp != p2.xp || p1.yp != p2.yp; } 8751: 8751: constexpr inline const QPoint operator+(const QPoint &p1, const QPoint &p2) 8751: { return QPoint(p1.xp+p2.xp, p1.yp+p2.yp); } 8751: 8751: constexpr inline const QPoint operator-(const QPoint &p1, const QPoint &p2) 8751: { return QPoint(p1.xp-p2.xp, p1.yp-p2.yp); } 8751: 8751: constexpr inline const QPoint operator*(const QPoint &p, float factor) 8751: { return QPoint(qRound(p.xp*factor), qRound(p.yp*factor)); } 8751: 8751: constexpr inline const QPoint operator*(const QPoint &p, double factor) 8751: { return QPoint(qRound(p.xp*factor), qRound(p.yp*factor)); } 8751: 8751: constexpr inline const QPoint operator*(const QPoint &p, int factor) 8751: { return QPoint(p.xp*factor, p.yp*factor); } 8751: 8751: constexpr inline const QPoint operator*(float factor, const QPoint &p) 8751: { return QPoint(qRound(p.xp*factor), qRound(p.yp*factor)); } 8751: 8751: constexpr inline const QPoint operator*(double factor, const QPoint &p) 8751: { return QPoint(qRound(p.xp*factor), qRound(p.yp*factor)); } 8751: 8751: constexpr inline const QPoint operator*(int factor, const QPoint &p) 8751: { return QPoint(p.xp*factor, p.yp*factor); } 8751: 8751: constexpr inline const QPoint operator+(const QPoint &p) 8751: { return p; } 8751: 8751: constexpr inline const QPoint operator-(const QPoint &p) 8751: { return QPoint(-p.xp, -p.yp); } 8751: 8751: inline QPoint &QPoint::operator/=(qreal c) 8751: { 8751: xp = qRound(xp/c); 8751: yp = qRound(yp/c); 8751: return *this; 8751: } 8751: 8751: constexpr inline const QPoint operator/(const QPoint &p, qreal c) 8751: { 8751: return QPoint(qRound(p.xp/c), qRound(p.yp/c)); 8751: } 8751: 8751: 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QPoint &); 8751: 8751: 8751: 8751: 8751: 8751: 8751: class __attribute__((visibility("default"))) QPointF 8751: { 8751: public: 8751: constexpr QPointF(); 8751: constexpr QPointF(const QPoint &p); 8751: constexpr QPointF(qreal xpos, qreal ypos); 8751: 8751: constexpr inline qreal manhattanLength() const; 8751: 8751: inline bool isNull() const; 8751: 8751: constexpr inline qreal x() const; 8751: constexpr inline qreal y() const; 8751: inline void setX(qreal x); 8751: inline void setY(qreal y); 8751: 8751: inline qreal &rx(); 8751: inline qreal &ry(); 8751: 8751: inline QPointF &operator+=(const QPointF &p); 8751: inline QPointF &operator-=(const QPointF &p); 8751: inline QPointF &operator*=(qreal c); 8751: inline QPointF &operator/=(qreal c); 8751: 8751: constexpr static inline qreal dotProduct(const QPointF &p1, const QPointF &p2) 8751: { return p1.xp * p2.xp + p1.yp * p2.yp; } 8751: 8751: friend constexpr inline bool operator==(const QPointF &, const QPointF &); 8751: friend constexpr inline bool operator!=(const QPointF &, const QPointF &); 8751: friend constexpr inline const QPointF operator+(const QPointF &, const QPointF &); 8751: friend constexpr inline const QPointF operator-(const QPointF &, const QPointF &); 8751: friend constexpr inline const QPointF operator*(qreal, const QPointF &); 8751: friend constexpr inline const QPointF operator*(const QPointF &, qreal); 8751: friend constexpr inline const QPointF operator+(const QPointF &); 8751: friend constexpr inline const QPointF operator-(const QPointF &); 8751: friend constexpr inline const QPointF operator/(const QPointF &, qreal); 8751: 8751: constexpr QPoint toPoint() const; 8751: 8751: 8751: 8751: 8751: 8751: 8751: private: 8751: friend class QMatrix; 8751: friend class QTransform; 8751: 8751: qreal xp; 8751: qreal yp; 8751: }; 8751: 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QPointF)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QPointF >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QPointF) }; static inline const char *name() { return "QPointF"; } }; 8751: 8751: 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QPointF &); 8751: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QPointF &); 8751: 8751: 8751: 8751: 8751: 8751: 8751: constexpr inline QPointF::QPointF() : xp(0), yp(0) { } 8751: 8751: constexpr inline QPointF::QPointF(qreal xpos, qreal ypos) : xp(xpos), yp(ypos) { } 8751: 8751: constexpr inline QPointF::QPointF(const QPoint &p) : xp(p.x()), yp(p.y()) { } 8751: 8751: constexpr inline qreal QPointF::manhattanLength() const 8751: { 8751: return qAbs(x())+qAbs(y()); 8751: } 8751: 8751: inline bool QPointF::isNull() const 8751: { 8751: return qIsNull(xp) && qIsNull(yp); 8751: } 8751: 8751: constexpr inline qreal QPointF::x() const 8751: { 8751: return xp; 8751: } 8751: 8751: constexpr inline qreal QPointF::y() const 8751: { 8751: return yp; 8751: } 8751: 8751: inline void QPointF::setX(qreal xpos) 8751: { 8751: xp = xpos; 8751: } 8751: 8751: inline void QPointF::setY(qreal ypos) 8751: { 8751: yp = ypos; 8751: } 8751: 8751: inline qreal &QPointF::rx() 8751: { 8751: return xp; 8751: } 8751: 8751: inline qreal &QPointF::ry() 8751: { 8751: return yp; 8751: } 8751: 8751: inline QPointF &QPointF::operator+=(const QPointF &p) 8751: { 8751: xp+=p.xp; 8751: yp+=p.yp; 8751: return *this; 8751: } 8751: 8751: inline QPointF &QPointF::operator-=(const QPointF &p) 8751: { 8751: xp-=p.xp; yp-=p.yp; return *this; 8751: } 8751: 8751: inline QPointF &QPointF::operator*=(qreal c) 8751: { 8751: xp*=c; yp*=c; return *this; 8751: } 8751: 8751: constexpr inline bool operator==(const QPointF &p1, const QPointF &p2) 8751: { 8751: return qFuzzyIsNull(p1.xp - p2.xp) && qFuzzyIsNull(p1.yp - p2.yp); 8751: } 8751: 8751: constexpr inline bool operator!=(const QPointF &p1, const QPointF &p2) 8751: { 8751: return !qFuzzyIsNull(p1.xp - p2.xp) || !qFuzzyIsNull(p1.yp - p2.yp); 8751: } 8751: 8751: constexpr inline const QPointF operator+(const QPointF &p1, const QPointF &p2) 8751: { 8751: return QPointF(p1.xp+p2.xp, p1.yp+p2.yp); 8751: } 8751: 8751: constexpr inline const QPointF operator-(const QPointF &p1, const QPointF &p2) 8751: { 8751: return QPointF(p1.xp-p2.xp, p1.yp-p2.yp); 8751: } 8751: 8751: constexpr inline const QPointF operator*(const QPointF &p, qreal c) 8751: { 8751: return QPointF(p.xp*c, p.yp*c); 8751: } 8751: 8751: constexpr inline const QPointF operator*(qreal c, const QPointF &p) 8751: { 8751: return QPointF(p.xp*c, p.yp*c); 8751: } 8751: 8751: constexpr inline const QPointF operator+(const QPointF &p) 8751: { 8751: return p; 8751: } 8751: 8751: constexpr inline const QPointF operator-(const QPointF &p) 8751: { 8751: return QPointF(-p.xp, -p.yp); 8751: } 8751: 8751: inline QPointF &QPointF::operator/=(qreal divisor) 8751: { 8751: xp/=divisor; 8751: yp/=divisor; 8751: return *this; 8751: } 8751: 8751: constexpr inline const QPointF operator/(const QPointF &p, qreal divisor) 8751: { 8751: return QPointF(p.xp/divisor, p.yp/divisor); 8751: } 8751: 8751: constexpr inline QPoint QPointF::toPoint() const 8751: { 8751: return QPoint(qRound(xp), qRound(yp)); 8751: } 8751: 8751: 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug d, const QPointF &p); 8751: 8751: 8751: 8751: # 59 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsize.h" 1 3 4 8751: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qsize.h" 3 4 8751: 8751: 8751: 8751: class __attribute__((visibility("default"))) QSize 8751: { 8751: public: 8751: constexpr QSize() noexcept; 8751: constexpr QSize(int w, int h) noexcept; 8751: 8751: constexpr inline bool isNull() const noexcept; 8751: constexpr inline bool isEmpty() const noexcept; 8751: constexpr inline bool isValid() const noexcept; 8751: 8751: constexpr inline int width() const noexcept; 8751: constexpr inline int height() const noexcept; 8751: inline void setWidth(int w) noexcept; 8751: inline void setHeight(int h) noexcept; 8751: void transpose() noexcept; 8751: [[nodiscard]] constexpr inline QSize transposed() const noexcept; 8751: 8751: inline void scale(int w, int h, Qt::AspectRatioMode mode) noexcept; 8751: inline void scale(const QSize &s, Qt::AspectRatioMode mode) noexcept; 8751: [[nodiscard]] QSize scaled(int w, int h, Qt::AspectRatioMode mode) const noexcept; 8751: [[nodiscard]] QSize scaled(const QSize &s, Qt::AspectRatioMode mode) const noexcept; 8751: 8751: [[nodiscard]] constexpr inline QSize expandedTo(const QSize &) const noexcept; 8751: [[nodiscard]] constexpr inline QSize boundedTo(const QSize &) const noexcept; 8751: 8751: inline int &rwidth() noexcept; 8751: inline int &rheight() noexcept; 8751: 8751: inline QSize &operator+=(const QSize &) noexcept; 8751: inline QSize &operator-=(const QSize &) noexcept; 8751: inline QSize &operator*=(qreal c) noexcept; 8751: inline QSize &operator/=(qreal c); 8751: 8751: friend inline constexpr bool operator==(const QSize &, const QSize &) noexcept; 8751: friend inline constexpr bool operator!=(const QSize &, const QSize &) noexcept; 8751: friend inline constexpr const QSize operator+(const QSize &, const QSize &) noexcept; 8751: friend inline constexpr const QSize operator-(const QSize &, const QSize &) noexcept; 8751: friend inline constexpr const QSize operator*(const QSize &, qreal) noexcept; 8751: friend inline constexpr const QSize operator*(qreal, const QSize &) noexcept; 8751: friend inline const QSize operator/(const QSize &, qreal); 8751: 8751: 8751: 8751: 8751: 8751: private: 8751: int wd; 8751: int ht; 8751: }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QSize)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QSize >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QSize) }; static inline const char *name() { return "QSize"; } }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QSize &); 8751: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QSize &); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: constexpr inline QSize::QSize() noexcept : wd(-1), ht(-1) {} 8751: 8751: constexpr inline QSize::QSize(int w, int h) noexcept : wd(w), ht(h) {} 8751: 8751: constexpr inline bool QSize::isNull() const noexcept 8751: { return wd==0 && ht==0; } 8751: 8751: constexpr inline bool QSize::isEmpty() const noexcept 8751: { return wd<1 || ht<1; } 8751: 8751: constexpr inline bool QSize::isValid() const noexcept 8751: { return wd>=0 && ht>=0; } 8751: 8751: constexpr inline int QSize::width() const noexcept 8751: { return wd; } 8751: 8751: constexpr inline int QSize::height() const noexcept 8751: { return ht; } 8751: 8751: inline void QSize::setWidth(int w) noexcept 8751: { wd = w; } 8751: 8751: inline void QSize::setHeight(int h) noexcept 8751: { ht = h; } 8751: 8751: constexpr inline QSize QSize::transposed() const noexcept 8751: { return QSize(ht, wd); } 8751: 8751: inline void QSize::scale(int w, int h, Qt::AspectRatioMode mode) noexcept 8751: { scale(QSize(w, h), mode); } 8751: 8751: inline void QSize::scale(const QSize &s, Qt::AspectRatioMode mode) noexcept 8751: { *this = scaled(s, mode); } 8751: 8751: inline QSize QSize::scaled(int w, int h, Qt::AspectRatioMode mode) const noexcept 8751: { return scaled(QSize(w, h), mode); } 8751: 8751: inline int &QSize::rwidth() noexcept 8751: { return wd; } 8751: 8751: inline int &QSize::rheight() noexcept 8751: { return ht; } 8751: 8751: inline QSize &QSize::operator+=(const QSize &s) noexcept 8751: { wd+=s.wd; ht+=s.ht; return *this; } 8751: 8751: inline QSize &QSize::operator-=(const QSize &s) noexcept 8751: { wd-=s.wd; ht-=s.ht; return *this; } 8751: 8751: inline QSize &QSize::operator*=(qreal c) noexcept 8751: { wd = qRound(wd*c); ht = qRound(ht*c); return *this; } 8751: 8751: constexpr inline bool operator==(const QSize &s1, const QSize &s2) noexcept 8751: { return s1.wd == s2.wd && s1.ht == s2.ht; } 8751: 8751: constexpr inline bool operator!=(const QSize &s1, const QSize &s2) noexcept 8751: { return s1.wd != s2.wd || s1.ht != s2.ht; } 8751: 8751: constexpr inline const QSize operator+(const QSize & s1, const QSize & s2) noexcept 8751: { return QSize(s1.wd+s2.wd, s1.ht+s2.ht); } 8751: 8751: constexpr inline const QSize operator-(const QSize &s1, const QSize &s2) noexcept 8751: { return QSize(s1.wd-s2.wd, s1.ht-s2.ht); } 8751: 8751: constexpr inline const QSize operator*(const QSize &s, qreal c) noexcept 8751: { return QSize(qRound(s.wd*c), qRound(s.ht*c)); } 8751: 8751: constexpr inline const QSize operator*(qreal c, const QSize &s) noexcept 8751: { return QSize(qRound(s.wd*c), qRound(s.ht*c)); } 8751: 8751: inline QSize &QSize::operator/=(qreal c) 8751: { 8751: do { } while ((false) && (!qFuzzyIsNull(c))); 8751: wd = qRound(wd/c); ht = qRound(ht/c); 8751: return *this; 8751: } 8751: 8751: inline const QSize operator/(const QSize &s, qreal c) 8751: { 8751: do { } while ((false) && (!qFuzzyIsNull(c))); 8751: return QSize(qRound(s.wd/c), qRound(s.ht/c)); 8751: } 8751: 8751: constexpr inline QSize QSize::expandedTo(const QSize & otherSize) const noexcept 8751: { 8751: return QSize(qMax(wd,otherSize.wd), qMax(ht,otherSize.ht)); 8751: } 8751: 8751: constexpr inline QSize QSize::boundedTo(const QSize & otherSize) const noexcept 8751: { 8751: return QSize(qMin(wd,otherSize.wd), qMin(ht,otherSize.ht)); 8751: } 8751: 8751: 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QSize &); 8751: 8751: 8751: 8751: class __attribute__((visibility("default"))) QSizeF 8751: { 8751: public: 8751: constexpr QSizeF() noexcept; 8751: constexpr QSizeF(const QSize &sz) noexcept; 8751: constexpr QSizeF(qreal w, qreal h) noexcept; 8751: 8751: inline bool isNull() const noexcept; 8751: constexpr inline bool isEmpty() const noexcept; 8751: constexpr inline bool isValid() const noexcept; 8751: 8751: constexpr inline qreal width() const noexcept; 8751: constexpr inline qreal height() const noexcept; 8751: inline void setWidth(qreal w) noexcept; 8751: inline void setHeight(qreal h) noexcept; 8751: void transpose() noexcept; 8751: [[nodiscard]] constexpr inline QSizeF transposed() const noexcept; 8751: 8751: inline void scale(qreal w, qreal h, Qt::AspectRatioMode mode) noexcept; 8751: inline void scale(const QSizeF &s, Qt::AspectRatioMode mode) noexcept; 8751: [[nodiscard]] QSizeF scaled(qreal w, qreal h, Qt::AspectRatioMode mode) const noexcept; 8751: [[nodiscard]] QSizeF scaled(const QSizeF &s, Qt::AspectRatioMode mode) const noexcept; 8751: 8751: [[nodiscard]] constexpr inline QSizeF expandedTo(const QSizeF &) const noexcept; 8751: [[nodiscard]] constexpr inline QSizeF boundedTo(const QSizeF &) const noexcept; 8751: 8751: inline qreal &rwidth() noexcept; 8751: inline qreal &rheight() noexcept; 8751: 8751: inline QSizeF &operator+=(const QSizeF &) noexcept; 8751: inline QSizeF &operator-=(const QSizeF &) noexcept; 8751: inline QSizeF &operator*=(qreal c) noexcept; 8751: inline QSizeF &operator/=(qreal c); 8751: 8751: friend constexpr inline bool operator==(const QSizeF &, const QSizeF &) noexcept; 8751: friend constexpr inline bool operator!=(const QSizeF &, const QSizeF &) noexcept; 8751: friend constexpr inline const QSizeF operator+(const QSizeF &, const QSizeF &) noexcept; 8751: friend constexpr inline const QSizeF operator-(const QSizeF &, const QSizeF &) noexcept; 8751: friend constexpr inline const QSizeF operator*(const QSizeF &, qreal) noexcept; 8751: friend constexpr inline const QSizeF operator*(qreal, const QSizeF &) noexcept; 8751: friend inline const QSizeF operator/(const QSizeF &, qreal); 8751: 8751: constexpr inline QSize toSize() const noexcept; 8751: 8751: 8751: 8751: 8751: 8751: 8751: private: 8751: qreal wd; 8751: qreal ht; 8751: }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QSizeF)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QSizeF >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QSizeF) }; static inline const char *name() { return "QSizeF"; } }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QSizeF &); 8751: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QSizeF &); 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: constexpr inline QSizeF::QSizeF() noexcept : wd(-1.), ht(-1.) {} 8751: 8751: constexpr inline QSizeF::QSizeF(const QSize &sz) noexcept : wd(sz.width()), ht(sz.height()) {} 8751: 8751: constexpr inline QSizeF::QSizeF(qreal w, qreal h) noexcept : wd(w), ht(h) {} 8751: 8751: inline bool QSizeF::isNull() const noexcept 8751: { return qIsNull(wd) && qIsNull(ht); } 8751: 8751: constexpr inline bool QSizeF::isEmpty() const noexcept 8751: { return wd <= 0. || ht <= 0.; } 8751: 8751: constexpr inline bool QSizeF::isValid() const noexcept 8751: { return wd >= 0. && ht >= 0.; } 8751: 8751: constexpr inline qreal QSizeF::width() const noexcept 8751: { return wd; } 8751: 8751: constexpr inline qreal QSizeF::height() const noexcept 8751: { return ht; } 8751: 8751: inline void QSizeF::setWidth(qreal w) noexcept 8751: { wd = w; } 8751: 8751: inline void QSizeF::setHeight(qreal h) noexcept 8751: { ht = h; } 8751: 8751: constexpr inline QSizeF QSizeF::transposed() const noexcept 8751: { return QSizeF(ht, wd); } 8751: 8751: inline void QSizeF::scale(qreal w, qreal h, Qt::AspectRatioMode mode) noexcept 8751: { scale(QSizeF(w, h), mode); } 8751: 8751: inline void QSizeF::scale(const QSizeF &s, Qt::AspectRatioMode mode) noexcept 8751: { *this = scaled(s, mode); } 8751: 8751: inline QSizeF QSizeF::scaled(qreal w, qreal h, Qt::AspectRatioMode mode) const noexcept 8751: { return scaled(QSizeF(w, h), mode); } 8751: 8751: inline qreal &QSizeF::rwidth() noexcept 8751: { return wd; } 8751: 8751: inline qreal &QSizeF::rheight() noexcept 8751: { return ht; } 8751: 8751: inline QSizeF &QSizeF::operator+=(const QSizeF &s) noexcept 8751: { wd += s.wd; ht += s.ht; return *this; } 8751: 8751: inline QSizeF &QSizeF::operator-=(const QSizeF &s) noexcept 8751: { wd -= s.wd; ht -= s.ht; return *this; } 8751: 8751: inline QSizeF &QSizeF::operator*=(qreal c) noexcept 8751: { wd *= c; ht *= c; return *this; } 8751: 8751: constexpr inline bool operator==(const QSizeF &s1, const QSizeF &s2) noexcept 8751: { return qFuzzyCompare(s1.wd, s2.wd) && qFuzzyCompare(s1.ht, s2.ht); } 8751: 8751: constexpr inline bool operator!=(const QSizeF &s1, const QSizeF &s2) noexcept 8751: { return !qFuzzyCompare(s1.wd, s2.wd) || !qFuzzyCompare(s1.ht, s2.ht); } 8751: 8751: constexpr inline const QSizeF operator+(const QSizeF & s1, const QSizeF & s2) noexcept 8751: { return QSizeF(s1.wd+s2.wd, s1.ht+s2.ht); } 8751: 8751: constexpr inline const QSizeF operator-(const QSizeF &s1, const QSizeF &s2) noexcept 8751: { return QSizeF(s1.wd-s2.wd, s1.ht-s2.ht); } 8751: 8751: constexpr inline const QSizeF operator*(const QSizeF &s, qreal c) noexcept 8751: { return QSizeF(s.wd*c, s.ht*c); } 8751: 8751: constexpr inline const QSizeF operator*(qreal c, const QSizeF &s) noexcept 8751: { return QSizeF(s.wd*c, s.ht*c); } 8751: 8751: inline QSizeF &QSizeF::operator/=(qreal c) 8751: { 8751: do { } while ((false) && (!qFuzzyIsNull(c))); 8751: wd = wd/c; ht = ht/c; 8751: return *this; 8751: } 8751: 8751: inline const QSizeF operator/(const QSizeF &s, qreal c) 8751: { 8751: do { } while ((false) && (!qFuzzyIsNull(c))); 8751: return QSizeF(s.wd/c, s.ht/c); 8751: } 8751: 8751: constexpr inline QSizeF QSizeF::expandedTo(const QSizeF & otherSize) const noexcept 8751: { 8751: return QSizeF(qMax(wd,otherSize.wd), qMax(ht,otherSize.ht)); 8751: } 8751: 8751: constexpr inline QSizeF QSizeF::boundedTo(const QSizeF & otherSize) const noexcept 8751: { 8751: return QSizeF(qMin(wd,otherSize.wd), qMin(ht,otherSize.ht)); 8751: } 8751: 8751: constexpr inline QSize QSizeF::toSize() const noexcept 8751: { 8751: return QSize(qRound(wd), qRound(ht)); 8751: } 8751: 8751: 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QSizeF &); 8751: 8751: 8751: 8751: # 60 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 1 3 4 8751: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmargins.h" 1 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qmargins.h" 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: class QMargins 8751: { 8751: public: 8751: constexpr QMargins() noexcept; 8751: constexpr QMargins(int left, int top, int right, int bottom) noexcept; 8751: 8751: constexpr bool isNull() const noexcept; 8751: 8751: constexpr int left() const noexcept; 8751: constexpr int top() const noexcept; 8751: constexpr int right() const noexcept; 8751: constexpr int bottom() const noexcept; 8751: 8751: void setLeft(int left) noexcept; 8751: void setTop(int top) noexcept; 8751: void setRight(int right) noexcept; 8751: void setBottom(int bottom) noexcept; 8751: 8751: QMargins &operator+=(const QMargins &margins) noexcept; 8751: QMargins &operator-=(const QMargins &margins) noexcept; 8751: QMargins &operator+=(int) noexcept; 8751: QMargins &operator-=(int) noexcept; 8751: QMargins &operator*=(int) noexcept; 8751: QMargins &operator/=(int); 8751: QMargins &operator*=(qreal) noexcept; 8751: QMargins &operator/=(qreal); 8751: 8751: private: 8751: int m_left; 8751: int m_top; 8751: int m_right; 8751: int m_bottom; 8751: 8751: friend constexpr inline bool operator==(const QMargins &, const QMargins &) noexcept; 8751: friend constexpr inline bool operator!=(const QMargins &, const QMargins &) noexcept; 8751: }; 8751: 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QMargins)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QMargins >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QMargins) }; static inline const char *name() { return "QMargins"; } }; 8751: 8751: 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QMargins &); 8751: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QMargins &); 8751: 8751: 8751: 8751: 8751: 8751: 8751: constexpr inline QMargins::QMargins() noexcept : m_left(0), m_top(0), m_right(0), m_bottom(0) {} 8751: 8751: constexpr inline QMargins::QMargins(int aleft, int atop, int aright, int abottom) noexcept 8751: : m_left(aleft), m_top(atop), m_right(aright), m_bottom(abottom) {} 8751: 8751: constexpr inline bool QMargins::isNull() const noexcept 8751: { return m_left==0 && m_top==0 && m_right==0 && m_bottom==0; } 8751: 8751: constexpr inline int QMargins::left() const noexcept 8751: { return m_left; } 8751: 8751: constexpr inline int QMargins::top() const noexcept 8751: { return m_top; } 8751: 8751: constexpr inline int QMargins::right() const noexcept 8751: { return m_right; } 8751: 8751: constexpr inline int QMargins::bottom() const noexcept 8751: { return m_bottom; } 8751: 8751: 8751: inline void QMargins::setLeft(int aleft) noexcept 8751: { m_left = aleft; } 8751: 8751: inline void QMargins::setTop(int atop) noexcept 8751: { m_top = atop; } 8751: 8751: inline void QMargins::setRight(int aright) noexcept 8751: { m_right = aright; } 8751: 8751: inline void QMargins::setBottom(int abottom) noexcept 8751: { m_bottom = abottom; } 8751: 8751: constexpr inline bool operator==(const QMargins &m1, const QMargins &m2) noexcept 8751: { 8751: return 8751: m1.m_left == m2.m_left && 8751: m1.m_top == m2.m_top && 8751: m1.m_right == m2.m_right && 8751: m1.m_bottom == m2.m_bottom; 8751: } 8751: 8751: constexpr inline bool operator!=(const QMargins &m1, const QMargins &m2) noexcept 8751: { 8751: return 8751: m1.m_left != m2.m_left || 8751: m1.m_top != m2.m_top || 8751: m1.m_right != m2.m_right || 8751: m1.m_bottom != m2.m_bottom; 8751: } 8751: 8751: constexpr inline QMargins operator+(const QMargins &m1, const QMargins &m2) noexcept 8751: { 8751: return QMargins(m1.left() + m2.left(), m1.top() + m2.top(), 8751: m1.right() + m2.right(), m1.bottom() + m2.bottom()); 8751: } 8751: 8751: constexpr inline QMargins operator-(const QMargins &m1, const QMargins &m2) noexcept 8751: { 8751: return QMargins(m1.left() - m2.left(), m1.top() - m2.top(), 8751: m1.right() - m2.right(), m1.bottom() - m2.bottom()); 8751: } 8751: 8751: constexpr inline QMargins operator+(const QMargins &lhs, int rhs) noexcept 8751: { 8751: return QMargins(lhs.left() + rhs, lhs.top() + rhs, 8751: lhs.right() + rhs, lhs.bottom() + rhs); 8751: } 8751: 8751: constexpr inline QMargins operator+(int lhs, const QMargins &rhs) noexcept 8751: { 8751: return QMargins(rhs.left() + lhs, rhs.top() + lhs, 8751: rhs.right() + lhs, rhs.bottom() + lhs); 8751: } 8751: 8751: constexpr inline QMargins operator-(const QMargins &lhs, int rhs) noexcept 8751: { 8751: return QMargins(lhs.left() - rhs, lhs.top() - rhs, 8751: lhs.right() - rhs, lhs.bottom() - rhs); 8751: } 8751: 8751: constexpr inline QMargins operator*(const QMargins &margins, int factor) noexcept 8751: { 8751: return QMargins(margins.left() * factor, margins.top() * factor, 8751: margins.right() * factor, margins.bottom() * factor); 8751: } 8751: 8751: constexpr inline QMargins operator*(int factor, const QMargins &margins) noexcept 8751: { 8751: return QMargins(margins.left() * factor, margins.top() * factor, 8751: margins.right() * factor, margins.bottom() * factor); 8751: } 8751: 8751: constexpr inline QMargins operator*(const QMargins &margins, qreal factor) noexcept 8751: { 8751: return QMargins(qRound(margins.left() * factor), qRound(margins.top() * factor), 8751: qRound(margins.right() * factor), qRound(margins.bottom() * factor)); 8751: } 8751: 8751: constexpr inline QMargins operator*(qreal factor, const QMargins &margins) noexcept 8751: { 8751: return QMargins(qRound(margins.left() * factor), qRound(margins.top() * factor), 8751: qRound(margins.right() * factor), qRound(margins.bottom() * factor)); 8751: } 8751: 8751: constexpr inline QMargins operator/(const QMargins &margins, int divisor) 8751: { 8751: return QMargins(margins.left() / divisor, margins.top() / divisor, 8751: margins.right() / divisor, margins.bottom() / divisor); 8751: } 8751: 8751: constexpr inline QMargins operator/(const QMargins &margins, qreal divisor) 8751: { 8751: return QMargins(qRound(margins.left() / divisor), qRound(margins.top() / divisor), 8751: qRound(margins.right() / divisor), qRound(margins.bottom() / divisor)); 8751: } 8751: 8751: inline QMargins &QMargins::operator+=(const QMargins &margins) noexcept 8751: { 8751: return *this = *this + margins; 8751: } 8751: 8751: inline QMargins &QMargins::operator-=(const QMargins &margins) noexcept 8751: { 8751: return *this = *this - margins; 8751: } 8751: 8751: inline QMargins &QMargins::operator+=(int margin) noexcept 8751: { 8751: m_left += margin; 8751: m_top += margin; 8751: m_right += margin; 8751: m_bottom += margin; 8751: return *this; 8751: } 8751: 8751: inline QMargins &QMargins::operator-=(int margin) noexcept 8751: { 8751: m_left -= margin; 8751: m_top -= margin; 8751: m_right -= margin; 8751: m_bottom -= margin; 8751: return *this; 8751: } 8751: 8751: inline QMargins &QMargins::operator*=(int factor) noexcept 8751: { 8751: return *this = *this * factor; 8751: } 8751: 8751: inline QMargins &QMargins::operator/=(int divisor) 8751: { 8751: return *this = *this / divisor; 8751: } 8751: 8751: inline QMargins &QMargins::operator*=(qreal factor) noexcept 8751: { 8751: return *this = *this * factor; 8751: } 8751: 8751: inline QMargins &QMargins::operator/=(qreal divisor) 8751: { 8751: return *this = *this / divisor; 8751: } 8751: 8751: constexpr inline QMargins operator+(const QMargins &margins) noexcept 8751: { 8751: return margins; 8751: } 8751: 8751: constexpr inline QMargins operator-(const QMargins &margins) noexcept 8751: { 8751: return QMargins(-margins.left(), -margins.top(), -margins.right(), -margins.bottom()); 8751: } 8751: 8751: 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QMargins &); 8751: 8751: 8751: 8751: 8751: 8751: 8751: class QMarginsF 8751: { 8751: public: 8751: constexpr QMarginsF() noexcept; 8751: constexpr QMarginsF(qreal left, qreal top, qreal right, qreal bottom) noexcept; 8751: constexpr QMarginsF(const QMargins &margins) noexcept; 8751: 8751: constexpr bool isNull() const noexcept; 8751: 8751: constexpr qreal left() const noexcept; 8751: constexpr qreal top() const noexcept; 8751: constexpr qreal right() const noexcept; 8751: constexpr qreal bottom() const noexcept; 8751: 8751: void setLeft(qreal left) noexcept; 8751: void setTop(qreal top) noexcept; 8751: void setRight(qreal right) noexcept; 8751: void setBottom(qreal bottom) noexcept; 8751: 8751: QMarginsF &operator+=(const QMarginsF &margins) noexcept; 8751: QMarginsF &operator-=(const QMarginsF &margins) noexcept; 8751: QMarginsF &operator+=(qreal addend) noexcept; 8751: QMarginsF &operator-=(qreal subtrahend) noexcept; 8751: QMarginsF &operator*=(qreal factor) noexcept; 8751: QMarginsF &operator/=(qreal divisor); 8751: 8751: constexpr inline QMargins toMargins() const noexcept; 8751: 8751: private: 8751: qreal m_left; 8751: qreal m_top; 8751: qreal m_right; 8751: qreal m_bottom; 8751: }; 8751: 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QMarginsF)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QMarginsF >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QMarginsF) }; static inline const char *name() { return "QMarginsF"; } }; 8751: 8751: 8751: 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QMarginsF &); 8751: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QMarginsF &); 8751: 8751: 8751: 8751: 8751: 8751: 8751: constexpr inline QMarginsF::QMarginsF() noexcept 8751: : m_left(0), m_top(0), m_right(0), m_bottom(0) {} 8751: 8751: constexpr inline QMarginsF::QMarginsF(qreal aleft, qreal atop, qreal aright, qreal abottom) noexcept 8751: : m_left(aleft), m_top(atop), m_right(aright), m_bottom(abottom) {} 8751: 8751: constexpr inline QMarginsF::QMarginsF(const QMargins &margins) noexcept 8751: : m_left(margins.left()), m_top(margins.top()), m_right(margins.right()), m_bottom(margins.bottom()) {} 8751: 8751: constexpr inline bool QMarginsF::isNull() const noexcept 8751: { return qFuzzyIsNull(m_left) && qFuzzyIsNull(m_top) && qFuzzyIsNull(m_right) && qFuzzyIsNull(m_bottom); } 8751: 8751: constexpr inline qreal QMarginsF::left() const noexcept 8751: { return m_left; } 8751: 8751: constexpr inline qreal QMarginsF::top() const noexcept 8751: { return m_top; } 8751: 8751: constexpr inline qreal QMarginsF::right() const noexcept 8751: { return m_right; } 8751: 8751: constexpr inline qreal QMarginsF::bottom() const noexcept 8751: { return m_bottom; } 8751: 8751: 8751: inline void QMarginsF::setLeft(qreal aleft) noexcept 8751: { m_left = aleft; } 8751: 8751: inline void QMarginsF::setTop(qreal atop) noexcept 8751: { m_top = atop; } 8751: 8751: inline void QMarginsF::setRight(qreal aright) noexcept 8751: { m_right = aright; } 8751: 8751: inline void QMarginsF::setBottom(qreal abottom) noexcept 8751: { m_bottom = abottom; } 8751: 8751: constexpr inline bool operator==(const QMarginsF &lhs, const QMarginsF &rhs) noexcept 8751: { 8751: return qFuzzyCompare(lhs.left(), rhs.left()) 8751: && qFuzzyCompare(lhs.top(), rhs.top()) 8751: && qFuzzyCompare(lhs.right(), rhs.right()) 8751: && qFuzzyCompare(lhs.bottom(), rhs.bottom()); 8751: } 8751: 8751: constexpr inline bool operator!=(const QMarginsF &lhs, const QMarginsF &rhs) noexcept 8751: { 8751: return !operator==(lhs, rhs); 8751: } 8751: 8751: constexpr inline QMarginsF operator+(const QMarginsF &lhs, const QMarginsF &rhs) noexcept 8751: { 8751: return QMarginsF(lhs.left() + rhs.left(), lhs.top() + rhs.top(), 8751: lhs.right() + rhs.right(), lhs.bottom() + rhs.bottom()); 8751: } 8751: 8751: constexpr inline QMarginsF operator-(const QMarginsF &lhs, const QMarginsF &rhs) noexcept 8751: { 8751: return QMarginsF(lhs.left() - rhs.left(), lhs.top() - rhs.top(), 8751: lhs.right() - rhs.right(), lhs.bottom() - rhs.bottom()); 8751: } 8751: 8751: constexpr inline QMarginsF operator+(const QMarginsF &lhs, qreal rhs) noexcept 8751: { 8751: return QMarginsF(lhs.left() + rhs, lhs.top() + rhs, 8751: lhs.right() + rhs, lhs.bottom() + rhs); 8751: } 8751: 8751: constexpr inline QMarginsF operator+(qreal lhs, const QMarginsF &rhs) noexcept 8751: { 8751: return QMarginsF(rhs.left() + lhs, rhs.top() + lhs, 8751: rhs.right() + lhs, rhs.bottom() + lhs); 8751: } 8751: 8751: constexpr inline QMarginsF operator-(const QMarginsF &lhs, qreal rhs) noexcept 8751: { 8751: return QMarginsF(lhs.left() - rhs, lhs.top() - rhs, 8751: lhs.right() - rhs, lhs.bottom() - rhs); 8751: } 8751: 8751: constexpr inline QMarginsF operator*(const QMarginsF &lhs, qreal rhs) noexcept 8751: { 8751: return QMarginsF(lhs.left() * rhs, lhs.top() * rhs, 8751: lhs.right() * rhs, lhs.bottom() * rhs); 8751: } 8751: 8751: constexpr inline QMarginsF operator*(qreal lhs, const QMarginsF &rhs) noexcept 8751: { 8751: return QMarginsF(rhs.left() * lhs, rhs.top() * lhs, 8751: rhs.right() * lhs, rhs.bottom() * lhs); 8751: } 8751: 8751: constexpr inline QMarginsF operator/(const QMarginsF &lhs, qreal divisor) 8751: { 8751: return QMarginsF(lhs.left() / divisor, lhs.top() / divisor, 8751: lhs.right() / divisor, lhs.bottom() / divisor); 8751: } 8751: 8751: inline QMarginsF &QMarginsF::operator+=(const QMarginsF &margins) noexcept 8751: { 8751: return *this = *this + margins; 8751: } 8751: 8751: inline QMarginsF &QMarginsF::operator-=(const QMarginsF &margins) noexcept 8751: { 8751: return *this = *this - margins; 8751: } 8751: 8751: inline QMarginsF &QMarginsF::operator+=(qreal addend) noexcept 8751: { 8751: m_left += addend; 8751: m_top += addend; 8751: m_right += addend; 8751: m_bottom += addend; 8751: return *this; 8751: } 8751: 8751: inline QMarginsF &QMarginsF::operator-=(qreal subtrahend) noexcept 8751: { 8751: m_left -= subtrahend; 8751: m_top -= subtrahend; 8751: m_right -= subtrahend; 8751: m_bottom -= subtrahend; 8751: return *this; 8751: } 8751: 8751: inline QMarginsF &QMarginsF::operator*=(qreal factor) noexcept 8751: { 8751: return *this = *this * factor; 8751: } 8751: 8751: inline QMarginsF &QMarginsF::operator/=(qreal divisor) 8751: { 8751: return *this = *this / divisor; 8751: } 8751: 8751: constexpr inline QMarginsF operator+(const QMarginsF &margins) noexcept 8751: { 8751: return margins; 8751: } 8751: 8751: constexpr inline QMarginsF operator-(const QMarginsF &margins) noexcept 8751: { 8751: return QMarginsF(-margins.left(), -margins.top(), -margins.right(), -margins.bottom()); 8751: } 8751: 8751: constexpr inline QMargins QMarginsF::toMargins() const noexcept 8751: { 8751: return QMargins(qRound(m_left), qRound(m_top), qRound(m_right), qRound(m_bottom)); 8751: } 8751: 8751: 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QMarginsF &); 8751: 8751: 8751: 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 2 3 4 8751: # 55 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 3 4 8751: 8751: 8751: class __attribute__((visibility("default"))) QRect 8751: { 8751: public: 8751: constexpr QRect() noexcept : x1(0), y1(0), x2(-1), y2(-1) {} 8751: constexpr QRect(const QPoint &topleft, const QPoint &bottomright) noexcept; 8751: constexpr QRect(const QPoint &topleft, const QSize &size) noexcept; 8751: constexpr QRect(int left, int top, int width, int height) noexcept; 8751: 8751: constexpr inline bool isNull() const noexcept; 8751: constexpr inline bool isEmpty() const noexcept; 8751: constexpr inline bool isValid() const noexcept; 8751: 8751: constexpr inline int left() const noexcept; 8751: constexpr inline int top() const noexcept; 8751: constexpr inline int right() const noexcept; 8751: constexpr inline int bottom() const noexcept; 8751: [[nodiscard]] QRect normalized() const noexcept; 8751: 8751: constexpr inline int x() const noexcept; 8751: constexpr inline int y() const noexcept; 8751: inline void setLeft(int pos) noexcept; 8751: inline void setTop(int pos) noexcept; 8751: inline void setRight(int pos) noexcept; 8751: inline void setBottom(int pos) noexcept; 8751: inline void setX(int x) noexcept; 8751: inline void setY(int y) noexcept; 8751: 8751: inline void setTopLeft(const QPoint &p) noexcept; 8751: inline void setBottomRight(const QPoint &p) noexcept; 8751: inline void setTopRight(const QPoint &p) noexcept; 8751: inline void setBottomLeft(const QPoint &p) noexcept; 8751: 8751: constexpr inline QPoint topLeft() const noexcept; 8751: constexpr inline QPoint bottomRight() const noexcept; 8751: constexpr inline QPoint topRight() const noexcept; 8751: constexpr inline QPoint bottomLeft() const noexcept; 8751: constexpr inline QPoint center() const noexcept; 8751: 8751: inline void moveLeft(int pos) noexcept; 8751: inline void moveTop(int pos) noexcept; 8751: inline void moveRight(int pos) noexcept; 8751: inline void moveBottom(int pos) noexcept; 8751: inline void moveTopLeft(const QPoint &p) noexcept; 8751: inline void moveBottomRight(const QPoint &p) noexcept; 8751: inline void moveTopRight(const QPoint &p) noexcept; 8751: inline void moveBottomLeft(const QPoint &p) noexcept; 8751: inline void moveCenter(const QPoint &p) noexcept; 8751: 8751: inline void translate(int dx, int dy) noexcept; 8751: inline void translate(const QPoint &p) noexcept; 8751: [[nodiscard]] constexpr inline QRect translated(int dx, int dy) const noexcept; 8751: [[nodiscard]] constexpr inline QRect translated(const QPoint &p) const noexcept; 8751: [[nodiscard]] constexpr inline QRect transposed() const noexcept; 8751: 8751: inline void moveTo(int x, int t) noexcept; 8751: inline void moveTo(const QPoint &p) noexcept; 8751: 8751: inline void setRect(int x, int y, int w, int h) noexcept; 8751: inline void getRect(int *x, int *y, int *w, int *h) const; 8751: 8751: inline void setCoords(int x1, int y1, int x2, int y2) noexcept; 8751: inline void getCoords(int *x1, int *y1, int *x2, int *y2) const; 8751: 8751: inline void adjust(int x1, int y1, int x2, int y2) noexcept; 8751: [[nodiscard]] constexpr inline QRect adjusted(int x1, int y1, int x2, int y2) const noexcept; 8751: 8751: constexpr inline QSize size() const noexcept; 8751: constexpr inline int width() const noexcept; 8751: constexpr inline int height() const noexcept; 8751: inline void setWidth(int w) noexcept; 8751: inline void setHeight(int h) noexcept; 8751: inline void setSize(const QSize &s) noexcept; 8751: 8751: QRect operator|(const QRect &r) const noexcept; 8751: QRect operator&(const QRect &r) const noexcept; 8751: inline QRect& operator|=(const QRect &r) noexcept; 8751: inline QRect& operator&=(const QRect &r) noexcept; 8751: 8751: bool contains(const QRect &r, bool proper = false) const noexcept; 8751: bool contains(const QPoint &p, bool proper=false) const noexcept; 8751: inline bool contains(int x, int y) const noexcept; 8751: inline bool contains(int x, int y, bool proper) const noexcept; 8751: [[nodiscard]] inline QRect united(const QRect &other) const noexcept; 8751: [[nodiscard]] inline QRect intersected(const QRect &other) const noexcept; 8751: bool intersects(const QRect &r) const noexcept; 8751: 8751: constexpr inline QRect marginsAdded(const QMargins &margins) const noexcept; 8751: constexpr inline QRect marginsRemoved(const QMargins &margins) const noexcept; 8751: inline QRect &operator+=(const QMargins &margins) noexcept; 8751: inline QRect &operator-=(const QMargins &margins) noexcept; 8751: 8751: 8751: 8751: 8751: 8751: 8751: friend constexpr inline bool operator==(const QRect &, const QRect &) noexcept; 8751: friend constexpr inline bool operator!=(const QRect &, const QRect &) noexcept; 8751: 8751: 8751: 8751: 8751: 8751: private: 8751: int x1; 8751: int y1; 8751: int x2; 8751: int y2; 8751: }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QRect)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QRect >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QRect) }; static inline const char *name() { return "QRect"; } }; 8751: 8751: constexpr inline bool operator==(const QRect &, const QRect &) noexcept; 8751: constexpr inline bool operator!=(const QRect &, const QRect &) noexcept; 8751: 8751: 8751: 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QRect &); 8751: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QRect &); 8751: 8751: 8751: 8751: 8751: 8751: 8751: constexpr inline QRect::QRect(int aleft, int atop, int awidth, int aheight) noexcept 8751: : x1(aleft), y1(atop), x2(aleft + awidth - 1), y2(atop + aheight - 1) {} 8751: 8751: constexpr inline QRect::QRect(const QPoint &atopLeft, const QPoint &abottomRight) noexcept 8751: : x1(atopLeft.x()), y1(atopLeft.y()), x2(abottomRight.x()), y2(abottomRight.y()) {} 8751: 8751: constexpr inline QRect::QRect(const QPoint &atopLeft, const QSize &asize) noexcept 8751: : x1(atopLeft.x()), y1(atopLeft.y()), x2(atopLeft.x()+asize.width() - 1), y2(atopLeft.y()+asize.height() - 1) {} 8751: 8751: constexpr inline bool QRect::isNull() const noexcept 8751: { return x2 == x1 - 1 && y2 == y1 - 1; } 8751: 8751: constexpr inline bool QRect::isEmpty() const noexcept 8751: { return x1 > x2 || y1 > y2; } 8751: 8751: constexpr inline bool QRect::isValid() const noexcept 8751: { return x1 <= x2 && y1 <= y2; } 8751: 8751: constexpr inline int QRect::left() const noexcept 8751: { return x1; } 8751: 8751: constexpr inline int QRect::top() const noexcept 8751: { return y1; } 8751: 8751: constexpr inline int QRect::right() const noexcept 8751: { return x2; } 8751: 8751: constexpr inline int QRect::bottom() const noexcept 8751: { return y2; } 8751: 8751: constexpr inline int QRect::x() const noexcept 8751: { return x1; } 8751: 8751: constexpr inline int QRect::y() const noexcept 8751: { return y1; } 8751: 8751: inline void QRect::setLeft(int pos) noexcept 8751: { x1 = pos; } 8751: 8751: inline void QRect::setTop(int pos) noexcept 8751: { y1 = pos; } 8751: 8751: inline void QRect::setRight(int pos) noexcept 8751: { x2 = pos; } 8751: 8751: inline void QRect::setBottom(int pos) noexcept 8751: { y2 = pos; } 8751: 8751: inline void QRect::setTopLeft(const QPoint &p) noexcept 8751: { x1 = p.x(); y1 = p.y(); } 8751: 8751: inline void QRect::setBottomRight(const QPoint &p) noexcept 8751: { x2 = p.x(); y2 = p.y(); } 8751: 8751: inline void QRect::setTopRight(const QPoint &p) noexcept 8751: { x2 = p.x(); y1 = p.y(); } 8751: 8751: inline void QRect::setBottomLeft(const QPoint &p) noexcept 8751: { x1 = p.x(); y2 = p.y(); } 8751: 8751: inline void QRect::setX(int ax) noexcept 8751: { x1 = ax; } 8751: 8751: inline void QRect::setY(int ay) noexcept 8751: { y1 = ay; } 8751: 8751: constexpr inline QPoint QRect::topLeft() const noexcept 8751: { return QPoint(x1, y1); } 8751: 8751: constexpr inline QPoint QRect::bottomRight() const noexcept 8751: { return QPoint(x2, y2); } 8751: 8751: constexpr inline QPoint QRect::topRight() const noexcept 8751: { return QPoint(x2, y1); } 8751: 8751: constexpr inline QPoint QRect::bottomLeft() const noexcept 8751: { return QPoint(x1, y2); } 8751: 8751: constexpr inline QPoint QRect::center() const noexcept 8751: { return QPoint(int((qint64(x1)+x2)/2), int((qint64(y1)+y2)/2)); } 8751: 8751: constexpr inline int QRect::width() const noexcept 8751: { return x2 - x1 + 1; } 8751: 8751: constexpr inline int QRect::height() const noexcept 8751: { return y2 - y1 + 1; } 8751: 8751: constexpr inline QSize QRect::size() const noexcept 8751: { return QSize(width(), height()); } 8751: 8751: inline void QRect::translate(int dx, int dy) noexcept 8751: { 8751: x1 += dx; 8751: y1 += dy; 8751: x2 += dx; 8751: y2 += dy; 8751: } 8751: 8751: inline void QRect::translate(const QPoint &p) noexcept 8751: { 8751: x1 += p.x(); 8751: y1 += p.y(); 8751: x2 += p.x(); 8751: y2 += p.y(); 8751: } 8751: 8751: constexpr inline QRect QRect::translated(int dx, int dy) const noexcept 8751: { return QRect(QPoint(x1 + dx, y1 + dy), QPoint(x2 + dx, y2 + dy)); } 8751: 8751: constexpr inline QRect QRect::translated(const QPoint &p) const noexcept 8751: { return QRect(QPoint(x1 + p.x(), y1 + p.y()), QPoint(x2 + p.x(), y2 + p.y())); } 8751: 8751: constexpr inline QRect QRect::transposed() const noexcept 8751: { return QRect(topLeft(), size().transposed()); } 8751: 8751: inline void QRect::moveTo(int ax, int ay) noexcept 8751: { 8751: x2 += ax - x1; 8751: y2 += ay - y1; 8751: x1 = ax; 8751: y1 = ay; 8751: } 8751: 8751: inline void QRect::moveTo(const QPoint &p) noexcept 8751: { 8751: x2 += p.x() - x1; 8751: y2 += p.y() - y1; 8751: x1 = p.x(); 8751: y1 = p.y(); 8751: } 8751: 8751: inline void QRect::moveLeft(int pos) noexcept 8751: { x2 += (pos - x1); x1 = pos; } 8751: 8751: inline void QRect::moveTop(int pos) noexcept 8751: { y2 += (pos - y1); y1 = pos; } 8751: 8751: inline void QRect::moveRight(int pos) noexcept 8751: { 8751: x1 += (pos - x2); 8751: x2 = pos; 8751: } 8751: 8751: inline void QRect::moveBottom(int pos) noexcept 8751: { 8751: y1 += (pos - y2); 8751: y2 = pos; 8751: } 8751: 8751: inline void QRect::moveTopLeft(const QPoint &p) noexcept 8751: { 8751: moveLeft(p.x()); 8751: moveTop(p.y()); 8751: } 8751: 8751: inline void QRect::moveBottomRight(const QPoint &p) noexcept 8751: { 8751: moveRight(p.x()); 8751: moveBottom(p.y()); 8751: } 8751: 8751: inline void QRect::moveTopRight(const QPoint &p) noexcept 8751: { 8751: moveRight(p.x()); 8751: moveTop(p.y()); 8751: } 8751: 8751: inline void QRect::moveBottomLeft(const QPoint &p) noexcept 8751: { 8751: moveLeft(p.x()); 8751: moveBottom(p.y()); 8751: } 8751: 8751: inline void QRect::moveCenter(const QPoint &p) noexcept 8751: { 8751: int w = x2 - x1; 8751: int h = y2 - y1; 8751: x1 = p.x() - w/2; 8751: y1 = p.y() - h/2; 8751: x2 = x1 + w; 8751: y2 = y1 + h; 8751: } 8751: 8751: inline void QRect::getRect(int *ax, int *ay, int *aw, int *ah) const 8751: { 8751: *ax = x1; 8751: *ay = y1; 8751: *aw = x2 - x1 + 1; 8751: *ah = y2 - y1 + 1; 8751: } 8751: 8751: inline void QRect::setRect(int ax, int ay, int aw, int ah) noexcept 8751: { 8751: x1 = ax; 8751: y1 = ay; 8751: x2 = (ax + aw - 1); 8751: y2 = (ay + ah - 1); 8751: } 8751: 8751: inline void QRect::getCoords(int *xp1, int *yp1, int *xp2, int *yp2) const 8751: { 8751: *xp1 = x1; 8751: *yp1 = y1; 8751: *xp2 = x2; 8751: *yp2 = y2; 8751: } 8751: 8751: inline void QRect::setCoords(int xp1, int yp1, int xp2, int yp2) noexcept 8751: { 8751: x1 = xp1; 8751: y1 = yp1; 8751: x2 = xp2; 8751: y2 = yp2; 8751: } 8751: 8751: constexpr inline QRect QRect::adjusted(int xp1, int yp1, int xp2, int yp2) const noexcept 8751: { return QRect(QPoint(x1 + xp1, y1 + yp1), QPoint(x2 + xp2, y2 + yp2)); } 8751: 8751: inline void QRect::adjust(int dx1, int dy1, int dx2, int dy2) noexcept 8751: { 8751: x1 += dx1; 8751: y1 += dy1; 8751: x2 += dx2; 8751: y2 += dy2; 8751: } 8751: 8751: inline void QRect::setWidth(int w) noexcept 8751: { x2 = (x1 + w - 1); } 8751: 8751: inline void QRect::setHeight(int h) noexcept 8751: { y2 = (y1 + h - 1); } 8751: 8751: inline void QRect::setSize(const QSize &s) noexcept 8751: { 8751: x2 = (s.width() + x1 - 1); 8751: y2 = (s.height() + y1 - 1); 8751: } 8751: 8751: inline bool QRect::contains(int ax, int ay, bool aproper) const noexcept 8751: { 8751: return contains(QPoint(ax, ay), aproper); 8751: } 8751: 8751: inline bool QRect::contains(int ax, int ay) const noexcept 8751: { 8751: return contains(QPoint(ax, ay), false); 8751: } 8751: 8751: inline QRect& QRect::operator|=(const QRect &r) noexcept 8751: { 8751: *this = *this | r; 8751: return *this; 8751: } 8751: 8751: inline QRect& QRect::operator&=(const QRect &r) noexcept 8751: { 8751: *this = *this & r; 8751: return *this; 8751: } 8751: 8751: inline QRect QRect::intersected(const QRect &other) const noexcept 8751: { 8751: return *this & other; 8751: } 8751: 8751: inline QRect QRect::united(const QRect &r) const noexcept 8751: { 8751: return *this | r; 8751: } 8751: 8751: constexpr inline bool operator==(const QRect &r1, const QRect &r2) noexcept 8751: { 8751: return r1.x1==r2.x1 && r1.x2==r2.x2 && r1.y1==r2.y1 && r1.y2==r2.y2; 8751: } 8751: 8751: constexpr inline bool operator!=(const QRect &r1, const QRect &r2) noexcept 8751: { 8751: return r1.x1!=r2.x1 || r1.x2!=r2.x2 || r1.y1!=r2.y1 || r1.y2!=r2.y2; 8751: } 8751: 8751: constexpr inline QRect operator+(const QRect &rectangle, const QMargins &margins) noexcept 8751: { 8751: return QRect(QPoint(rectangle.left() - margins.left(), rectangle.top() - margins.top()), 8751: QPoint(rectangle.right() + margins.right(), rectangle.bottom() + margins.bottom())); 8751: } 8751: 8751: constexpr inline QRect operator+(const QMargins &margins, const QRect &rectangle) noexcept 8751: { 8751: return QRect(QPoint(rectangle.left() - margins.left(), rectangle.top() - margins.top()), 8751: QPoint(rectangle.right() + margins.right(), rectangle.bottom() + margins.bottom())); 8751: } 8751: 8751: constexpr inline QRect operator-(const QRect &lhs, const QMargins &rhs) noexcept 8751: { 8751: return QRect(QPoint(lhs.left() + rhs.left(), lhs.top() + rhs.top()), 8751: QPoint(lhs.right() - rhs.right(), lhs.bottom() - rhs.bottom())); 8751: } 8751: 8751: constexpr inline QRect QRect::marginsAdded(const QMargins &margins) const noexcept 8751: { 8751: return QRect(QPoint(x1 - margins.left(), y1 - margins.top()), 8751: QPoint(x2 + margins.right(), y2 + margins.bottom())); 8751: } 8751: 8751: constexpr inline QRect QRect::marginsRemoved(const QMargins &margins) const noexcept 8751: { 8751: return QRect(QPoint(x1 + margins.left(), y1 + margins.top()), 8751: QPoint(x2 - margins.right(), y2 - margins.bottom())); 8751: } 8751: 8751: inline QRect &QRect::operator+=(const QMargins &margins) noexcept 8751: { 8751: *this = marginsAdded(margins); 8751: return *this; 8751: } 8751: 8751: inline QRect &QRect::operator-=(const QMargins &margins) noexcept 8751: { 8751: *this = marginsRemoved(margins); 8751: return *this; 8751: } 8751: 8751: 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QRect &); 8751: 8751: 8751: 8751: class __attribute__((visibility("default"))) QRectF 8751: { 8751: public: 8751: constexpr QRectF() noexcept : xp(0.), yp(0.), w(0.), h(0.) {} 8751: constexpr QRectF(const QPointF &topleft, const QSizeF &size) noexcept; 8751: constexpr QRectF(const QPointF &topleft, const QPointF &bottomRight) noexcept; 8751: constexpr QRectF(qreal left, qreal top, qreal width, qreal height) noexcept; 8751: constexpr QRectF(const QRect &rect) noexcept; 8751: 8751: constexpr inline bool isNull() const noexcept; 8751: constexpr inline bool isEmpty() const noexcept; 8751: constexpr inline bool isValid() const noexcept; 8751: [[nodiscard]] QRectF normalized() const noexcept; 8751: 8751: constexpr inline qreal left() const noexcept { return xp; } 8751: constexpr inline qreal top() const noexcept { return yp; } 8751: constexpr inline qreal right() const noexcept { return xp + w; } 8751: constexpr inline qreal bottom() const noexcept { return yp + h; } 8751: 8751: constexpr inline qreal x() const noexcept; 8751: constexpr inline qreal y() const noexcept; 8751: inline void setLeft(qreal pos) noexcept; 8751: inline void setTop(qreal pos) noexcept; 8751: inline void setRight(qreal pos) noexcept; 8751: inline void setBottom(qreal pos) noexcept; 8751: inline void setX(qreal pos) noexcept { setLeft(pos); } 8751: inline void setY(qreal pos) noexcept { setTop(pos); } 8751: 8751: constexpr inline QPointF topLeft() const noexcept { return QPointF(xp, yp); } 8751: constexpr inline QPointF bottomRight() const noexcept { return QPointF(xp+w, yp+h); } 8751: constexpr inline QPointF topRight() const noexcept { return QPointF(xp+w, yp); } 8751: constexpr inline QPointF bottomLeft() const noexcept { return QPointF(xp, yp+h); } 8751: constexpr inline QPointF center() const noexcept; 8751: 8751: inline void setTopLeft(const QPointF &p) noexcept; 8751: inline void setBottomRight(const QPointF &p) noexcept; 8751: inline void setTopRight(const QPointF &p) noexcept; 8751: inline void setBottomLeft(const QPointF &p) noexcept; 8751: 8751: inline void moveLeft(qreal pos) noexcept; 8751: inline void moveTop(qreal pos) noexcept; 8751: inline void moveRight(qreal pos) noexcept; 8751: inline void moveBottom(qreal pos) noexcept; 8751: inline void moveTopLeft(const QPointF &p) noexcept; 8751: inline void moveBottomRight(const QPointF &p) noexcept; 8751: inline void moveTopRight(const QPointF &p) noexcept; 8751: inline void moveBottomLeft(const QPointF &p) noexcept; 8751: inline void moveCenter(const QPointF &p) noexcept; 8751: 8751: inline void translate(qreal dx, qreal dy) noexcept; 8751: inline void translate(const QPointF &p) noexcept; 8751: 8751: [[nodiscard]] constexpr inline QRectF translated(qreal dx, qreal dy) const noexcept; 8751: [[nodiscard]] constexpr inline QRectF translated(const QPointF &p) const noexcept; 8751: 8751: [[nodiscard]] constexpr inline QRectF transposed() const noexcept; 8751: 8751: inline void moveTo(qreal x, qreal y) noexcept; 8751: inline void moveTo(const QPointF &p) noexcept; 8751: 8751: inline void setRect(qreal x, qreal y, qreal w, qreal h) noexcept; 8751: inline void getRect(qreal *x, qreal *y, qreal *w, qreal *h) const; 8751: 8751: inline void setCoords(qreal x1, qreal y1, qreal x2, qreal y2) noexcept; 8751: inline void getCoords(qreal *x1, qreal *y1, qreal *x2, qreal *y2) const; 8751: 8751: inline void adjust(qreal x1, qreal y1, qreal x2, qreal y2) noexcept; 8751: [[nodiscard]] constexpr inline QRectF adjusted(qreal x1, qreal y1, qreal x2, qreal y2) const noexcept; 8751: 8751: constexpr inline QSizeF size() const noexcept; 8751: constexpr inline qreal width() const noexcept; 8751: constexpr inline qreal height() const noexcept; 8751: inline void setWidth(qreal w) noexcept; 8751: inline void setHeight(qreal h) noexcept; 8751: inline void setSize(const QSizeF &s) noexcept; 8751: 8751: QRectF operator|(const QRectF &r) const noexcept; 8751: QRectF operator&(const QRectF &r) const noexcept; 8751: inline QRectF& operator|=(const QRectF &r) noexcept; 8751: inline QRectF& operator&=(const QRectF &r) noexcept; 8751: 8751: bool contains(const QRectF &r) const noexcept; 8751: bool contains(const QPointF &p) const noexcept; 8751: inline bool contains(qreal x, qreal y) const noexcept; 8751: [[nodiscard]] inline QRectF united(const QRectF &other) const noexcept; 8751: [[nodiscard]] inline QRectF intersected(const QRectF &other) const noexcept; 8751: bool intersects(const QRectF &r) const noexcept; 8751: 8751: constexpr inline QRectF marginsAdded(const QMarginsF &margins) const noexcept; 8751: constexpr inline QRectF marginsRemoved(const QMarginsF &margins) const noexcept; 8751: inline QRectF &operator+=(const QMarginsF &margins) noexcept; 8751: inline QRectF &operator-=(const QMarginsF &margins) noexcept; 8751: 8751: 8751: 8751: 8751: 8751: 8751: friend constexpr inline bool operator==(const QRectF &, const QRectF &) noexcept; 8751: friend constexpr inline bool operator!=(const QRectF &, const QRectF &) noexcept; 8751: 8751: [[nodiscard]] constexpr inline QRect toRect() const noexcept; 8751: [[nodiscard]] QRect toAlignedRect() const noexcept; 8751: 8751: 8751: 8751: 8751: 8751: 8751: private: 8751: qreal xp; 8751: qreal yp; 8751: qreal w; 8751: qreal h; 8751: }; 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QRectF)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QRectF >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QRectF) }; static inline const char *name() { return "QRectF"; } }; 8751: 8751: constexpr inline bool operator==(const QRectF &, const QRectF &) noexcept; 8751: constexpr inline bool operator!=(const QRectF &, const QRectF &) noexcept; 8751: 8751: 8751: 8751: 8751: 8751: 8751: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QRectF &); 8751: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QRectF &); 8751: 8751: 8751: 8751: 8751: 8751: 8751: constexpr inline QRectF::QRectF(qreal aleft, qreal atop, qreal awidth, qreal aheight) noexcept 8751: : xp(aleft), yp(atop), w(awidth), h(aheight) 8751: { 8751: } 8751: 8751: constexpr inline QRectF::QRectF(const QPointF &atopLeft, const QSizeF &asize) noexcept 8751: : xp(atopLeft.x()), yp(atopLeft.y()), w(asize.width()), h(asize.height()) 8751: { 8751: } 8751: 8751: 8751: constexpr inline QRectF::QRectF(const QPointF &atopLeft, const QPointF &abottomRight) noexcept 8751: : xp(atopLeft.x()), yp(atopLeft.y()), w(abottomRight.x() - atopLeft.x()), h(abottomRight.y() - atopLeft.y()) 8751: { 8751: } 8751: 8751: constexpr inline QRectF::QRectF(const QRect &r) noexcept 8751: : xp(r.x()), yp(r.y()), w(r.width()), h(r.height()) 8751: { 8751: } 8751: 8751: 8751: # 665 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 3 4 8751: #pragma GCC diagnostic push 8751: # 665 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 3 4 8751: 8751: 8751: 8751: # 667 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 3 4 8751: #pragma GCC diagnostic ignored "-Wfloat-equal" 8751: # 667 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 3 4 8751: 8751: 8751: constexpr inline bool QRectF::isNull() const noexcept 8751: { return w == 0. && h == 0.; } 8751: 8751: constexpr inline bool QRectF::isEmpty() const noexcept 8751: { return w <= 0. || h <= 0.; } 8751: 8751: 8751: # 675 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 3 4 8751: #pragma GCC diagnostic pop 8751: # 675 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qrect.h" 3 4 8751: 8751: 8751: constexpr inline bool QRectF::isValid() const noexcept 8751: { return w > 0. && h > 0.; } 8751: 8751: constexpr inline qreal QRectF::x() const noexcept 8751: { return xp; } 8751: 8751: constexpr inline qreal QRectF::y() const noexcept 8751: { return yp; } 8751: 8751: inline void QRectF::setLeft(qreal pos) noexcept 8751: { qreal diff = pos - xp; xp += diff; w -= diff; } 8751: 8751: inline void QRectF::setRight(qreal pos) noexcept 8751: { w = pos - xp; } 8751: 8751: inline void QRectF::setTop(qreal pos) noexcept 8751: { qreal diff = pos - yp; yp += diff; h -= diff; } 8751: 8751: inline void QRectF::setBottom(qreal pos) noexcept 8751: { h = pos - yp; } 8751: 8751: inline void QRectF::setTopLeft(const QPointF &p) noexcept 8751: { setLeft(p.x()); setTop(p.y()); } 8751: 8751: inline void QRectF::setTopRight(const QPointF &p) noexcept 8751: { setRight(p.x()); setTop(p.y()); } 8751: 8751: inline void QRectF::setBottomLeft(const QPointF &p) noexcept 8751: { setLeft(p.x()); setBottom(p.y()); } 8751: 8751: inline void QRectF::setBottomRight(const QPointF &p) noexcept 8751: { setRight(p.x()); setBottom(p.y()); } 8751: 8751: constexpr inline QPointF QRectF::center() const noexcept 8751: { return QPointF(xp + w/2, yp + h/2); } 8751: 8751: inline void QRectF::moveLeft(qreal pos) noexcept 8751: { xp = pos; } 8751: 8751: inline void QRectF::moveTop(qreal pos) noexcept 8751: { yp = pos; } 8751: 8751: inline void QRectF::moveRight(qreal pos) noexcept 8751: { xp = pos - w; } 8751: 8751: inline void QRectF::moveBottom(qreal pos) noexcept 8751: { yp = pos - h; } 8751: 8751: inline void QRectF::moveTopLeft(const QPointF &p) noexcept 8751: { moveLeft(p.x()); moveTop(p.y()); } 8751: 8751: inline void QRectF::moveTopRight(const QPointF &p) noexcept 8751: { moveRight(p.x()); moveTop(p.y()); } 8751: 8751: inline void QRectF::moveBottomLeft(const QPointF &p) noexcept 8751: { moveLeft(p.x()); moveBottom(p.y()); } 8751: 8751: inline void QRectF::moveBottomRight(const QPointF &p) noexcept 8751: { moveRight(p.x()); moveBottom(p.y()); } 8751: 8751: inline void QRectF::moveCenter(const QPointF &p) noexcept 8751: { xp = p.x() - w/2; yp = p.y() - h/2; } 8751: 8751: constexpr inline qreal QRectF::width() const noexcept 8751: { return w; } 8751: 8751: constexpr inline qreal QRectF::height() const noexcept 8751: { return h; } 8751: 8751: constexpr inline QSizeF QRectF::size() const noexcept 8751: { return QSizeF(w, h); } 8751: 8751: inline void QRectF::translate(qreal dx, qreal dy) noexcept 8751: { 8751: xp += dx; 8751: yp += dy; 8751: } 8751: 8751: inline void QRectF::translate(const QPointF &p) noexcept 8751: { 8751: xp += p.x(); 8751: yp += p.y(); 8751: } 8751: 8751: inline void QRectF::moveTo(qreal ax, qreal ay) noexcept 8751: { 8751: xp = ax; 8751: yp = ay; 8751: } 8751: 8751: inline void QRectF::moveTo(const QPointF &p) noexcept 8751: { 8751: xp = p.x(); 8751: yp = p.y(); 8751: } 8751: 8751: constexpr inline QRectF QRectF::translated(qreal dx, qreal dy) const noexcept 8751: { return QRectF(xp + dx, yp + dy, w, h); } 8751: 8751: constexpr inline QRectF QRectF::translated(const QPointF &p) const noexcept 8751: { return QRectF(xp + p.x(), yp + p.y(), w, h); } 8751: 8751: constexpr inline QRectF QRectF::transposed() const noexcept 8751: { return QRectF(topLeft(), size().transposed()); } 8751: 8751: inline void QRectF::getRect(qreal *ax, qreal *ay, qreal *aaw, qreal *aah) const 8751: { 8751: *ax = this->xp; 8751: *ay = this->yp; 8751: *aaw = this->w; 8751: *aah = this->h; 8751: } 8751: 8751: inline void QRectF::setRect(qreal ax, qreal ay, qreal aaw, qreal aah) noexcept 8751: { 8751: this->xp = ax; 8751: this->yp = ay; 8751: this->w = aaw; 8751: this->h = aah; 8751: } 8751: 8751: inline void QRectF::getCoords(qreal *xp1, qreal *yp1, qreal *xp2, qreal *yp2) const 8751: { 8751: *xp1 = xp; 8751: *yp1 = yp; 8751: *xp2 = xp + w; 8751: *yp2 = yp + h; 8751: } 8751: 8751: inline void QRectF::setCoords(qreal xp1, qreal yp1, qreal xp2, qreal yp2) noexcept 8751: { 8751: xp = xp1; 8751: yp = yp1; 8751: w = xp2 - xp1; 8751: h = yp2 - yp1; 8751: } 8751: 8751: inline void QRectF::adjust(qreal xp1, qreal yp1, qreal xp2, qreal yp2) noexcept 8751: { xp += xp1; yp += yp1; w += xp2 - xp1; h += yp2 - yp1; } 8751: 8751: constexpr inline QRectF QRectF::adjusted(qreal xp1, qreal yp1, qreal xp2, qreal yp2) const noexcept 8751: { return QRectF(xp + xp1, yp + yp1, w + xp2 - xp1, h + yp2 - yp1); } 8751: 8751: inline void QRectF::setWidth(qreal aw) noexcept 8751: { this->w = aw; } 8751: 8751: inline void QRectF::setHeight(qreal ah) noexcept 8751: { this->h = ah; } 8751: 8751: inline void QRectF::setSize(const QSizeF &s) noexcept 8751: { 8751: w = s.width(); 8751: h = s.height(); 8751: } 8751: 8751: inline bool QRectF::contains(qreal ax, qreal ay) const noexcept 8751: { 8751: return contains(QPointF(ax, ay)); 8751: } 8751: 8751: inline QRectF& QRectF::operator|=(const QRectF &r) noexcept 8751: { 8751: *this = *this | r; 8751: return *this; 8751: } 8751: 8751: inline QRectF& QRectF::operator&=(const QRectF &r) noexcept 8751: { 8751: *this = *this & r; 8751: return *this; 8751: } 8751: 8751: inline QRectF QRectF::intersected(const QRectF &r) const noexcept 8751: { 8751: return *this & r; 8751: } 8751: 8751: inline QRectF QRectF::united(const QRectF &r) const noexcept 8751: { 8751: return *this | r; 8751: } 8751: 8751: constexpr inline bool operator==(const QRectF &r1, const QRectF &r2) noexcept 8751: { 8751: return qFuzzyCompare(r1.xp, r2.xp) && qFuzzyCompare(r1.yp, r2.yp) 8751: && qFuzzyCompare(r1.w, r2.w) && qFuzzyCompare(r1.h, r2.h); 8751: } 8751: 8751: constexpr inline bool operator!=(const QRectF &r1, const QRectF &r2) noexcept 8751: { 8751: return !qFuzzyCompare(r1.xp, r2.xp) || !qFuzzyCompare(r1.yp, r2.yp) 8751: || !qFuzzyCompare(r1.w, r2.w) || !qFuzzyCompare(r1.h, r2.h); 8751: } 8751: 8751: constexpr inline QRect QRectF::toRect() const noexcept 8751: { 8751: return QRect(qRound(xp), qRound(yp), qRound(w), qRound(h)); 8751: } 8751: 8751: constexpr inline QRectF operator+(const QRectF &lhs, const QMarginsF &rhs) noexcept 8751: { 8751: return QRectF(QPointF(lhs.left() - rhs.left(), lhs.top() - rhs.top()), 8751: QSizeF(lhs.width() + rhs.left() + rhs.right(), lhs.height() + rhs.top() + rhs.bottom())); 8751: } 8751: 8751: constexpr inline QRectF operator+(const QMarginsF &lhs, const QRectF &rhs) noexcept 8751: { 8751: return QRectF(QPointF(rhs.left() - lhs.left(), rhs.top() - lhs.top()), 8751: QSizeF(rhs.width() + lhs.left() + lhs.right(), rhs.height() + lhs.top() + lhs.bottom())); 8751: } 8751: 8751: constexpr inline QRectF operator-(const QRectF &lhs, const QMarginsF &rhs) noexcept 8751: { 8751: return QRectF(QPointF(lhs.left() + rhs.left(), lhs.top() + rhs.top()), 8751: QSizeF(lhs.width() - rhs.left() - rhs.right(), lhs.height() - rhs.top() - rhs.bottom())); 8751: } 8751: 8751: constexpr inline QRectF QRectF::marginsAdded(const QMarginsF &margins) const noexcept 8751: { 8751: return QRectF(QPointF(xp - margins.left(), yp - margins.top()), 8751: QSizeF(w + margins.left() + margins.right(), h + margins.top() + margins.bottom())); 8751: } 8751: 8751: constexpr inline QRectF QRectF::marginsRemoved(const QMarginsF &margins) const noexcept 8751: { 8751: return QRectF(QPointF(xp + margins.left(), yp + margins.top()), 8751: QSizeF(w - margins.left() - margins.right(), h - margins.top() - margins.bottom())); 8751: } 8751: 8751: inline QRectF &QRectF::operator+=(const QMarginsF &margins) noexcept 8751: { 8751: *this = marginsAdded(margins); 8751: return *this; 8751: } 8751: 8751: inline QRectF &QRectF::operator-=(const QMarginsF &margins) noexcept 8751: { 8751: *this = marginsRemoved(margins); 8751: return *this; 8751: } 8751: 8751: 8751: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QRectF &); 8751: 8751: 8751: 8751: # 61 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8751: 8751: 8751: 8751: 8751: namespace QTest 8751: { 8751: 8751: template<> inline char *toString(const QString &str) 8751: { 8751: return QTest::toPrettyUnicode(reinterpret_cast(str.constData()), str.length()); 8751: } 8751: 8751: template<> inline char *toString(const QLatin1String &str) 8751: { 8751: return toString(QString(str)); 8751: } 8751: 8751: template<> inline char *toString(const QByteArray &ba) 8751: { 8751: return QTest::toPrettyCString(ba.constData(), ba.length()); 8751: } 8751: 8751: 8751: template<> inline char *toString(const QTime &time) 8751: { 8751: return time.isValid() 8751: ? qstrdup(QString(time.toString(QLatin1String("hh:mm:ss.zzz"))).toLocal8Bit().constData()) 8751: : qstrdup("Invalid QTime"); 8751: } 8751: 8751: template<> inline char *toString(const QDate &date) 8751: { 8751: return date.isValid() 8751: ? qstrdup(QString(date.toString(QLatin1String("yyyy/MM/dd"))).toLocal8Bit().constData()) 8751: : qstrdup("Invalid QDate"); 8751: } 8751: 8751: template<> inline char *toString(const QDateTime &dateTime) 8751: { 8751: return dateTime.isValid() 8751: ? qstrdup(QString(dateTime.toString(QLatin1String("yyyy/MM/dd hh:mm:ss.zzz[t]"))).toLocal8Bit().constData()) 8751: : qstrdup("Invalid QDateTime"); 8751: } 8751: 8751: 8751: template<> inline char *toString(const QChar &c) 8751: { 8751: const ushort uc = c.unicode(); 8751: if (uc < 128) { 8751: char msg[32] = {'\0'}; 8751: qsnprintf(msg, sizeof(msg), "QChar: '%c' (0x%x)", char(uc), unsigned(uc)); 8751: return qstrdup(msg); 8751: } 8751: return qstrdup(QString(QString::fromLatin1("QChar: '%1' (0x%2)").arg(c).arg(QString::number(static_cast(c.unicode()), 16))).toLocal8Bit().constData()); 8751: } 8751: 8751: template<> inline char *toString(const QPoint &p) 8751: { 8751: char msg[128] = {'\0'}; 8751: qsnprintf(msg, sizeof(msg), "QPoint(%d,%d)", p.x(), p.y()); 8751: return qstrdup(msg); 8751: } 8751: 8751: template<> inline char *toString(const QSize &s) 8751: { 8751: char msg[128] = {'\0'}; 8751: qsnprintf(msg, sizeof(msg), "QSize(%dx%d)", s.width(), s.height()); 8751: return qstrdup(msg); 8751: } 8751: 8751: template<> inline char *toString(const QRect &s) 8751: { 8751: char msg[256] = {'\0'}; 8751: qsnprintf(msg, sizeof(msg), "QRect(%d,%d %dx%d) (bottomright %d,%d)", 8751: s.left(), s.top(), s.width(), s.height(), s.right(), s.bottom()); 8751: return qstrdup(msg); 8751: } 8751: 8751: template<> inline char *toString(const QPointF &p) 8751: { 8751: char msg[64] = {'\0'}; 8751: qsnprintf(msg, sizeof(msg), "QPointF(%g,%g)", p.x(), p.y()); 8751: return qstrdup(msg); 8751: } 8751: 8751: template<> inline char *toString(const QSizeF &s) 8751: { 8751: char msg[64] = {'\0'}; 8751: qsnprintf(msg, sizeof(msg), "QSizeF(%gx%g)", s.width(), s.height()); 8751: return qstrdup(msg); 8751: } 8751: 8751: template<> inline char *toString(const QRectF &s) 8751: { 8751: char msg[256] = {'\0'}; 8751: qsnprintf(msg, sizeof(msg), "QRectF(%g,%g %gx%g) (bottomright %g,%g)", 8751: s.left(), s.top(), s.width(), s.height(), s.right(), s.bottom()); 8751: return qstrdup(msg); 8751: } 8751: 8751: template<> inline char *toString(const QUrl &uri) 8751: { 8751: if (!uri.isValid()) 8751: return qstrdup(QString(QLatin1String("Invalid URL: ") + uri.errorString()).toLocal8Bit().constData()); 8751: return qstrdup(uri.toEncoded().constData()); 8751: } 8751: 8751: template <> inline char *toString(const QUuid &uuid) 8751: { 8751: return qstrdup(uuid.toByteArray().constData()); 8751: } 8751: 8751: template<> inline char *toString(const QVariant &v) 8751: { 8751: QByteArray vstring("QVariant("); 8751: if (v.isValid()) { 8751: QByteArray type(v.typeName()); 8751: if (type.isEmpty()) { 8751: type = QByteArray::number(v.userType()); 8751: } 8751: vstring.append(type); 8751: if (!v.isNull()) { 8751: vstring.append(','); 8751: if (v.canConvert(QVariant::String)) { 8751: vstring.append(v.toString().toLocal8Bit()); 8751: } 8751: else { 8751: vstring.append(""); 8751: } 8751: } 8751: } 8751: vstring.append(')'); 8751: 8751: return qstrdup(vstring.constData()); 8751: } 8751: 8751: inline char *toString(std::nullptr_t) 8751: { 8751: return toString(QLatin1String("nullptr")); 8751: } 8751: 8751: template<> 8751: inline bool qCompare(QString const &t1, QLatin1String const &t2, const char *actual, 8751: const char *expected, const char *file, int line) 8751: { 8751: return qCompare(t1, QString(t2), actual, expected, file, line); 8751: } 8751: template<> 8751: inline bool qCompare(QLatin1String const &t1, QString const &t2, const char *actual, 8751: const char *expected, const char *file, int line) 8751: { 8751: return qCompare(QString(t1), t2, actual, expected, file, line); 8751: } 8751: 8751: template 8751: inline bool qCompare(QList const &t1, QList const &t2, const char *actual, const char *expected, 8751: const char *file, int line) 8751: { 8751: char msg[1024]; 8751: msg[0] = '\0'; 8751: bool isOk = true; 8751: const int actualSize = t1.count(); 8751: const int expectedSize = t2.count(); 8751: if (actualSize != expectedSize) { 8751: qsnprintf(msg, sizeof(msg), "Compared lists have different sizes.\n" 8751: " Actual (%s) size: %d\n" 8751: " Expected (%s) size: %d", actual, actualSize, expected, expectedSize); 8751: isOk = false; 8751: } 8751: for (int i = 0; isOk && i < actualSize; ++i) { 8751: if (!(t1.at(i) == t2.at(i))) { 8751: char *val1 = toString(t1.at(i)); 8751: char *val2 = toString(t2.at(i)); 8751: 8751: qsnprintf(msg, sizeof(msg), "Compared lists differ at index %d.\n" 8751: " Actual (%s): %s\n" 8751: " Expected (%s): %s", i, actual, val1 ? val1 : "", 8751: expected, val2 ? val2 : ""); 8751: isOk = false; 8751: 8751: delete [] val1; 8751: delete [] val2; 8751: } 8751: } 8751: return compare_helper(isOk, msg, nullptr, nullptr, actual, expected, file, line); 8751: } 8751: 8751: template <> 8751: inline bool qCompare(QStringList const &t1, QStringList const &t2, const char *actual, const char *expected, 8751: const char *file, int line) 8751: { 8751: return qCompare(t1, t2, actual, expected, file, line); 8751: } 8751: 8751: template 8751: inline bool qCompare(QFlags const &t1, T const &t2, const char *actual, const char *expected, 8751: const char *file, int line) 8751: { 8751: return qCompare(int(t1), int(t2), actual, expected, file, line); 8751: } 8751: 8751: template 8751: inline bool qCompare(QFlags const &t1, int const &t2, const char *actual, const char *expected, 8751: const char *file, int line) 8751: { 8751: return qCompare(int(t1), t2, actual, expected, file, line); 8751: } 8751: 8751: template<> 8751: inline bool qCompare(qint64 const &t1, qint32 const &t2, const char *actual, 8751: const char *expected, const char *file, int line) 8751: { 8751: return qCompare(t1, static_cast(t2), actual, expected, file, line); 8751: } 8751: 8751: template<> 8751: inline bool qCompare(qint64 const &t1, quint32 const &t2, const char *actual, 8751: const char *expected, const char *file, int line) 8751: { 8751: return qCompare(t1, static_cast(t2), actual, expected, file, line); 8751: } 8751: 8751: template<> 8751: inline bool qCompare(quint64 const &t1, quint32 const &t2, const char *actual, 8751: const char *expected, const char *file, int line) 8751: { 8751: return qCompare(t1, static_cast(t2), actual, expected, file, line); 8751: } 8751: 8751: template<> 8751: inline bool qCompare(qint32 const &t1, qint64 const &t2, const char *actual, 8751: const char *expected, const char *file, int line) 8751: { 8751: return qCompare(static_cast(t1), t2, actual, expected, file, line); 8751: } 8751: 8751: template<> 8751: inline bool qCompare(quint32 const &t1, qint64 const &t2, const char *actual, 8751: const char *expected, const char *file, int line) 8751: { 8751: return qCompare(static_cast(t1), t2, actual, expected, file, line); 8751: } 8751: 8751: template<> 8751: inline bool qCompare(quint32 const &t1, quint64 const &t2, const char *actual, 8751: const char *expected, const char *file, int line) 8751: { 8751: return qCompare(static_cast(t1), t2, actual, expected, file, line); 8751: } 8751: 8751: } 8751: 8751: # 328 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestsystem.h" 1 3 4 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestsystem.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 1 3 4 8751: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreevent.h" 1 3 4 8751: # 47 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreevent.h" 3 4 8751: 8751: 8751: 8751: class QEventPrivate; 8751: class __attribute__((visibility("default"))) QEvent 8751: { 8751: public: static const QMetaObject staticMetaObject; void qt_check_for_QGADGET_macro(); typedef void QtGadgetHelper; private: 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreevent.h" 3 4 8751: #pragma GCC diagnostic push 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreevent.h" 3 4 8751: 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreevent.h" 3 4 8751: #pragma GCC diagnostic ignored "-Wattributes" 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreevent.h" 3 4 8751: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreevent.h" 3 4 8751: #pragma GCC diagnostic pop 8751: # 53 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreevent.h" 3 4 8751: 8751: 8751: public: 8751: enum Type { 8751: 8751: 8751: 8751: 8751: 8751: 8751: None = 0, 8751: Timer = 1, 8751: MouseButtonPress = 2, 8751: MouseButtonRelease = 3, 8751: MouseButtonDblClick = 4, 8751: MouseMove = 5, 8751: KeyPress = 6, 8751: KeyRelease = 7, 8751: FocusIn = 8, 8751: FocusOut = 9, 8751: FocusAboutToChange = 23, 8751: Enter = 10, 8751: Leave = 11, 8751: Paint = 12, 8751: Move = 13, 8751: Resize = 14, 8751: Create = 15, 8751: Destroy = 16, 8751: Show = 17, 8751: Hide = 18, 8751: Close = 19, 8751: Quit = 20, 8751: ParentChange = 21, 8751: ParentAboutToChange = 131, 8751: ThreadChange = 22, 8751: WindowActivate = 24, 8751: WindowDeactivate = 25, 8751: ShowToParent = 26, 8751: HideToParent = 27, 8751: Wheel = 31, 8751: WindowTitleChange = 33, 8751: WindowIconChange = 34, 8751: ApplicationWindowIconChange = 35, 8751: ApplicationFontChange = 36, 8751: ApplicationLayoutDirectionChange = 37, 8751: ApplicationPaletteChange = 38, 8751: PaletteChange = 39, 8751: Clipboard = 40, 8751: Speech = 42, 8751: MetaCall = 43, 8751: SockAct = 50, 8751: WinEventAct = 132, 8751: DeferredDelete = 52, 8751: DragEnter = 60, 8751: DragMove = 61, 8751: DragLeave = 62, 8751: Drop = 63, 8751: DragResponse = 64, 8751: ChildAdded = 68, 8751: ChildPolished = 69, 8751: ChildRemoved = 71, 8751: ShowWindowRequest = 73, 8751: PolishRequest = 74, 8751: Polish = 75, 8751: LayoutRequest = 76, 8751: UpdateRequest = 77, 8751: UpdateLater = 78, 8751: 8751: EmbeddingControl = 79, 8751: ActivateControl = 80, 8751: DeactivateControl = 81, 8751: ContextMenu = 82, 8751: InputMethod = 83, 8751: TabletMove = 87, 8751: LocaleChange = 88, 8751: LanguageChange = 89, 8751: LayoutDirectionChange = 90, 8751: Style = 91, 8751: TabletPress = 92, 8751: TabletRelease = 93, 8751: OkRequest = 94, 8751: HelpRequest = 95, 8751: 8751: IconDrag = 96, 8751: 8751: FontChange = 97, 8751: EnabledChange = 98, 8751: ActivationChange = 99, 8751: StyleChange = 100, 8751: IconTextChange = 101, 8751: ModifiedChange = 102, 8751: MouseTrackingChange = 109, 8751: 8751: WindowBlocked = 103, 8751: WindowUnblocked = 104, 8751: WindowStateChange = 105, 8751: 8751: ReadOnlyChange = 106, 8751: 8751: ToolTip = 110, 8751: WhatsThis = 111, 8751: StatusTip = 112, 8751: 8751: ActionChanged = 113, 8751: ActionAdded = 114, 8751: ActionRemoved = 115, 8751: 8751: FileOpen = 116, 8751: 8751: Shortcut = 117, 8751: ShortcutOverride = 51, 8751: 8751: WhatsThisClicked = 118, 8751: 8751: ToolBarChange = 120, 8751: 8751: ApplicationActivate = 121, 8751: ApplicationActivated = ApplicationActivate, 8751: ApplicationDeactivate = 122, 8751: ApplicationDeactivated = ApplicationDeactivate, 8751: 8751: QueryWhatsThis = 123, 8751: EnterWhatsThisMode = 124, 8751: LeaveWhatsThisMode = 125, 8751: 8751: ZOrderChange = 126, 8751: 8751: HoverEnter = 127, 8751: HoverLeave = 128, 8751: HoverMove = 129, 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: AcceptDropsChange = 152, 8751: 8751: ZeroTimerEvent = 154, 8751: 8751: GraphicsSceneMouseMove = 155, 8751: GraphicsSceneMousePress = 156, 8751: GraphicsSceneMouseRelease = 157, 8751: GraphicsSceneMouseDoubleClick = 158, 8751: GraphicsSceneContextMenu = 159, 8751: GraphicsSceneHoverEnter = 160, 8751: GraphicsSceneHoverMove = 161, 8751: GraphicsSceneHoverLeave = 162, 8751: GraphicsSceneHelp = 163, 8751: GraphicsSceneDragEnter = 164, 8751: GraphicsSceneDragMove = 165, 8751: GraphicsSceneDragLeave = 166, 8751: GraphicsSceneDrop = 167, 8751: GraphicsSceneWheel = 168, 8751: 8751: KeyboardLayoutChange = 169, 8751: 8751: DynamicPropertyChange = 170, 8751: 8751: TabletEnterProximity = 171, 8751: TabletLeaveProximity = 172, 8751: 8751: NonClientAreaMouseMove = 173, 8751: NonClientAreaMouseButtonPress = 174, 8751: NonClientAreaMouseButtonRelease = 175, 8751: NonClientAreaMouseButtonDblClick = 176, 8751: 8751: MacSizeChange = 177, 8751: 8751: ContentsRectChange = 178, 8751: 8751: MacGLWindowChange = 179, 8751: 8751: FutureCallOut = 180, 8751: 8751: GraphicsSceneResize = 181, 8751: GraphicsSceneMove = 182, 8751: 8751: CursorChange = 183, 8751: ToolTipChange = 184, 8751: 8751: NetworkReplyUpdated = 185, 8751: 8751: GrabMouse = 186, 8751: UngrabMouse = 187, 8751: GrabKeyboard = 188, 8751: UngrabKeyboard = 189, 8751: MacGLClearDrawable = 191, 8751: 8751: StateMachineSignal = 192, 8751: StateMachineWrapped = 193, 8751: 8751: TouchBegin = 194, 8751: TouchUpdate = 195, 8751: TouchEnd = 196, 8751: 8751: 8751: NativeGesture = 197, 8751: 8751: RequestSoftwareInputPanel = 199, 8751: CloseSoftwareInputPanel = 200, 8751: 8751: WinIdChange = 203, 8751: 8751: Gesture = 198, 8751: GestureOverride = 202, 8751: 8751: ScrollPrepare = 204, 8751: Scroll = 205, 8751: 8751: Expose = 206, 8751: 8751: InputMethodQuery = 207, 8751: OrientationChange = 208, 8751: 8751: TouchCancel = 209, 8751: 8751: ThemeChange = 210, 8751: 8751: SockClose = 211, 8751: 8751: PlatformPanel = 212, 8751: 8751: StyleAnimationUpdate = 213, 8751: ApplicationStateChange = 214, 8751: 8751: WindowChangeInternal = 215, 8751: ScreenChangeInternal = 216, 8751: 8751: PlatformSurface = 217, 8751: 8751: Pointer = 218, 8751: 8751: TabletTrackingChange = 219, 8751: 8751: 8751: 8751: 8751: User = 1000, 8751: MaxUser = 65535 8751: }; 8751: friend constexpr const QMetaObject *qt_getEnumMetaObject(Type) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Type) noexcept { return "Type"; } 8751: 8751: explicit QEvent(Type type); 8751: QEvent(const QEvent &other); 8751: virtual ~QEvent(); 8751: QEvent &operator=(const QEvent &other); 8751: inline Type type() const { return static_cast(t); } 8751: inline bool spontaneous() const { return spont; } 8751: 8751: inline void setAccepted(bool accepted) { m_accept = accepted; } 8751: inline bool isAccepted() const { return m_accept; } 8751: 8751: inline void accept() { m_accept = true; } 8751: inline void ignore() { m_accept = false; } 8751: 8751: static int registerEventType(int hint = -1) noexcept; 8751: 8751: protected: 8751: QEventPrivate *d; 8751: ushort t; 8751: 8751: private: 8751: ushort posted : 1; 8751: ushort spont : 1; 8751: ushort m_accept : 1; 8751: ushort reserved : 13; 8751: 8751: friend class QCoreApplication; 8751: friend class QCoreApplicationPrivate; 8751: friend class QThreadData; 8751: friend class QApplication; 8751: friend class QShortcutMap; 8751: friend class QGraphicsView; 8751: friend class QGraphicsScene; 8751: friend class QGraphicsScenePrivate; 8751: 8751: friend class QSpontaneKeyEvent; 8751: 8751: inline __attribute__((always_inline)) 8751: void setSpontaneous() { spont = true; } 8751: }; 8751: 8751: class __attribute__((visibility("default"))) QTimerEvent : public QEvent 8751: { 8751: public: 8751: explicit QTimerEvent( int timerId ); 8751: ~QTimerEvent(); 8751: int timerId() const { return id; } 8751: protected: 8751: int id; 8751: }; 8751: 8751: class QObject; 8751: 8751: class __attribute__((visibility("default"))) QChildEvent : public QEvent 8751: { 8751: public: 8751: QChildEvent( Type type, QObject *child ); 8751: ~QChildEvent(); 8751: QObject *child() const { return c; } 8751: bool added() const { return type() == ChildAdded; } 8751: bool polished() const { return type() == ChildPolished; } 8751: bool removed() const { return type() == ChildRemoved; } 8751: protected: 8751: QObject *c; 8751: }; 8751: 8751: class __attribute__((visibility("default"))) QDynamicPropertyChangeEvent : public QEvent 8751: { 8751: public: 8751: explicit QDynamicPropertyChangeEvent(const QByteArray &name); 8751: ~QDynamicPropertyChangeEvent(); 8751: 8751: inline QByteArray propertyName() const { return n; } 8751: 8751: private: 8751: QByteArray n; 8751: }; 8751: 8751: class __attribute__((visibility("default"))) QDeferredDeleteEvent : public QEvent 8751: { 8751: public: 8751: explicit QDeferredDeleteEvent(); 8751: ~QDeferredDeleteEvent(); 8751: int loopLevel() const { return level; } 8751: private: 8751: int level; 8751: friend class QCoreApplication; 8751: }; 8751: 8751: 8751: # 48 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 1 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 3 4 8751: 8751: 8751: 8751: class QEventLoopPrivate; 8751: 8751: class __attribute__((visibility("default"))) QEventLoop : public QObject 8751: { 8751: public: 8751: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 3 4 8751: #pragma GCC diagnostic push 8751: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 3 4 8751: 8751: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 3 4 8751: #pragma GCC diagnostic ignored "-Wsuggest-override" 8751: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 3 4 8751: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8751: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 3 4 8751: #pragma GCC diagnostic ignored "-Wattributes" 8751: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 3 4 8751: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8751: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 3 4 8751: #pragma GCC diagnostic pop 8751: # 52 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qeventloop.h" 3 4 8751: struct QPrivateSignal {}; 8751: inline QEventLoopPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QEventLoopPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QEventLoopPrivate; 8751: 8751: public: 8751: explicit QEventLoop(QObject *parent = nullptr); 8751: ~QEventLoop(); 8751: 8751: enum ProcessEventsFlag { 8751: AllEvents = 0x00, 8751: ExcludeUserInputEvents = 0x01, 8751: ExcludeSocketNotifiers = 0x02, 8751: WaitForMoreEvents = 0x04, 8751: X11ExcludeTimers = 0x08, 8751: EventLoopExec = 0x20, 8751: DialogExec = 0x40 8751: }; 8751: typedef QFlags ProcessEventsFlags; 8751: 8751: bool processEvents(ProcessEventsFlags flags = AllEvents); 8751: void processEvents(ProcessEventsFlags flags, int maximumTime); 8751: 8751: int exec(ProcessEventsFlags flags = AllEvents); 8751: void exit(int returnCode = 0); 8751: bool isRunning() const; 8751: 8751: void wakeUp(); 8751: 8751: bool event(QEvent *event) override; 8751: 8751: public : 8751: void quit(); 8751: }; 8751: 8751: constexpr inline QFlags operator|(QEventLoop::ProcessEventsFlags::enum_type f1, QEventLoop::ProcessEventsFlags::enum_type f2) noexcept { return QFlags(f1) | f2; } constexpr inline QFlags operator|(QEventLoop::ProcessEventsFlags::enum_type f1, QFlags f2) noexcept { return f2 | f1; } constexpr inline QIncompatibleFlag operator|(QEventLoop::ProcessEventsFlags::enum_type f1, int f2) noexcept { return QIncompatibleFlag(int(f1) | f2); } 8751: 8751: 8751: class QEventLoopLockerPrivate; 8751: 8751: class __attribute__((visibility("default"))) QEventLoopLocker 8751: { 8751: public: 8751: QEventLoopLocker(); 8751: explicit QEventLoopLocker(QEventLoop *loop); 8751: explicit QEventLoopLocker(QThread *thread); 8751: ~QEventLoopLocker(); 8751: 8751: private: 8751: QEventLoopLocker(const QEventLoopLocker &) = delete; QEventLoopLocker &operator=(const QEventLoopLocker &) = delete; 8751: QEventLoopLockerPrivate *d_ptr; 8751: }; 8751: 8751: 8751: # 49 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 2 3 4 8751: # 59 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8751: 8751: 8751: 8751: class QCoreApplicationPrivate; 8751: class QTextCodec; 8751: class QTranslator; 8751: class QPostEventList; 8751: class QStringList; 8751: class QAbstractEventDispatcher; 8751: class QAbstractNativeEventFilter; 8751: 8751: 8751: 8751: class __attribute__((visibility("default"))) QCoreApplication 8751: 8751: : public QObject 8751: 8751: { 8751: 8751: public: 8751: # 78 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8751: #pragma GCC diagnostic push 8751: # 78 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8751: 8751: # 78 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8751: #pragma GCC diagnostic ignored "-Wsuggest-override" 8751: # 78 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8751: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8751: # 78 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8751: #pragma GCC diagnostic ignored "-Wattributes" 8751: # 78 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8751: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8751: # 78 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8751: #pragma GCC diagnostic pop 8751: # 78 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8751: struct QPrivateSignal {}; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: inline QCoreApplicationPrivate* d_func() { return reinterpret_cast(qGetPtrHelper(d_ptr)); } inline const QCoreApplicationPrivate* d_func() const { return reinterpret_cast(qGetPtrHelper(d_ptr)); } friend class QCoreApplicationPrivate; 8751: public: 8751: enum { ApplicationFlags = ((5<<16)|(9<<8)|(3)) 8751: }; 8751: 8751: QCoreApplication(int &argc, char **argv 8751: 8751: , int = ApplicationFlags 8751: 8751: ); 8751: 8751: ~QCoreApplication(); 8751: 8751: static QStringList arguments(); 8751: 8751: static void setAttribute(Qt::ApplicationAttribute attribute, bool on = true); 8751: static bool testAttribute(Qt::ApplicationAttribute attribute); 8751: 8751: static void setOrganizationDomain(const QString &orgDomain); 8751: static QString organizationDomain(); 8751: static void setOrganizationName(const QString &orgName); 8751: static QString organizationName(); 8751: static void setApplicationName(const QString &application); 8751: static QString applicationName(); 8751: static void setApplicationVersion(const QString &version); 8751: static QString applicationVersion(); 8751: 8751: static void setSetuidAllowed(bool allow); 8751: static bool isSetuidAllowed(); 8751: 8751: static QCoreApplication *instance() { return self; } 8751: 8751: 8751: static int exec(); 8751: static void processEvents(QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents); 8751: static void processEvents(QEventLoop::ProcessEventsFlags flags, int maxtime); 8751: static void exit(int retcode=0); 8751: 8751: static bool sendEvent(QObject *receiver, QEvent *event); 8751: static void postEvent(QObject *receiver, QEvent *event, int priority = Qt::NormalEventPriority); 8751: static void sendPostedEvents(QObject *receiver = nullptr, int event_type = 0); 8751: static void removePostedEvents(QObject *receiver, int eventType = 0); 8751: 8751: static bool hasPendingEvents(); 8751: 8751: static QAbstractEventDispatcher *eventDispatcher(); 8751: static void setEventDispatcher(QAbstractEventDispatcher *eventDispatcher); 8751: 8751: virtual bool notify(QObject *, QEvent *); 8751: 8751: static bool startingUp(); 8751: static bool closingDown(); 8751: 8751: 8751: static QString applicationDirPath(); 8751: static QString applicationFilePath(); 8751: static qint64 applicationPid(); 8751: 8751: 8751: static void setLibraryPaths(const QStringList &); 8751: static QStringList libraryPaths(); 8751: static void addLibraryPath(const QString &); 8751: static void removeLibraryPath(const QString &); 8751: 8751: 8751: 8751: static bool installTranslator(QTranslator * messageFile); 8751: static bool removeTranslator(QTranslator * messageFile); 8751: 8751: 8751: static QString translate(const char * context, 8751: const char * key, 8751: const char * disambiguation = nullptr, 8751: int n = -1); 8751: # 169 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8751: static void flush(); 8751: 8751: 8751: void installNativeEventFilter(QAbstractNativeEventFilter *filterObj); 8751: void removeNativeEventFilter(QAbstractNativeEventFilter *filterObj); 8751: 8751: static bool isQuitLockEnabled(); 8751: static void setQuitLockEnabled(bool enabled); 8751: 8751: public : 8751: static void quit(); 8751: 8751: public : 8751: void aboutToQuit(QPrivateSignal); 8751: 8751: void organizationNameChanged(); 8751: void organizationDomainChanged(); 8751: void applicationNameChanged(); 8751: void applicationVersionChanged(); 8751: 8751: protected: 8751: bool event(QEvent *) override; 8751: 8751: virtual bool compressEvent(QEvent *, QObject *receiver, QPostEventList *); 8751: 8751: 8751: protected: 8751: QCoreApplication(QCoreApplicationPrivate &p); 8751: 8751: 8751: 8751: 8751: 8751: private: 8751: 8751: static bool sendSpontaneousEvent(QObject *receiver, QEvent *event); 8751: 8751: bool notifyInternal(QObject *receiver, QEvent *event); 8751: 8751: static bool notifyInternal2(QObject *receiver, QEvent *); 8751: 8751: 8751: static QCoreApplication *self; 8751: 8751: QCoreApplication(const QCoreApplication &) = delete; QCoreApplication &operator=(const QCoreApplication &) = delete; 8751: 8751: friend class QApplication; 8751: friend class QApplicationPrivate; 8751: friend class QGuiApplication; 8751: friend class QGuiApplicationPrivate; 8751: friend class QWidget; 8751: friend class QWidgetWindow; 8751: friend class QWidgetPrivate; 8751: 8751: friend class QEventDispatcherUNIXPrivate; 8751: friend class QCocoaEventDispatcherPrivate; 8751: friend bool qt_sendSpontaneousEvent(QObject*, QEvent*); 8751: 8751: friend __attribute__((visibility("default"))) QString qAppName(); 8751: friend class QClassFactory; 8751: }; 8751: 8751: 8751: inline bool QCoreApplication::sendEvent(QObject *receiver, QEvent *event) 8751: { if (event) event->spont = false; return notifyInternal2(receiver, event); } 8751: 8751: inline bool QCoreApplication::sendSpontaneousEvent(QObject *receiver, QEvent *event) 8751: { if (event) event->spont = true; return notifyInternal2(receiver, event); } 8751: # 254 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8751: typedef void (*QtStartUpFunction)(); 8751: typedef void (*QtCleanUpFunction)(); 8751: 8751: __attribute__((visibility("default"))) void qAddPreRoutine(QtStartUpFunction); 8751: __attribute__((visibility("default"))) void qAddPostRoutine(QtCleanUpFunction); 8751: __attribute__((visibility("default"))) void qRemovePostRoutine(QtCleanUpFunction); 8751: __attribute__((visibility("default"))) QString qAppName(); 8751: # 275 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qcoreapplication.h" 3 4 8751: 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestsystem.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdeadlinetimer.h" 1 3 4 8751: # 43 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdeadlinetimer.h" 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qelapsedtimer.h" 1 3 4 8751: # 45 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qelapsedtimer.h" 3 4 8751: 8751: 8751: 8751: class __attribute__((visibility("default"))) QElapsedTimer 8751: { 8751: public: 8751: enum ClockType { 8751: SystemTime, 8751: MonotonicClock, 8751: TickCounter, 8751: MachAbsoluteTime, 8751: PerformanceCounter 8751: }; 8751: 8751: constexpr QElapsedTimer() 8751: : t1(static_cast(0x8000000000000000LL)), 8751: t2(static_cast(0x8000000000000000LL)) 8751: { 8751: } 8751: 8751: static ClockType clockType() noexcept; 8751: static bool isMonotonic() noexcept; 8751: 8751: void start() noexcept; 8751: qint64 restart() noexcept; 8751: void invalidate() noexcept; 8751: bool isValid() const noexcept; 8751: 8751: qint64 nsecsElapsed() const noexcept; 8751: qint64 elapsed() const noexcept; 8751: bool hasExpired(qint64 timeout) const noexcept; 8751: 8751: qint64 msecsSinceReference() const noexcept; 8751: qint64 msecsTo(const QElapsedTimer &other) const noexcept; 8751: qint64 secsTo(const QElapsedTimer &other) const noexcept; 8751: 8751: bool operator==(const QElapsedTimer &other) const noexcept 8751: { return t1 == other.t1 && t2 == other.t2; } 8751: bool operator!=(const QElapsedTimer &other) const noexcept 8751: { return !(*this == other); } 8751: 8751: friend bool __attribute__((visibility("default"))) operator<(const QElapsedTimer &v1, const QElapsedTimer &v2) noexcept; 8751: 8751: private: 8751: qint64 t1; 8751: qint64 t2; 8751: }; 8751: 8751: 8751: # 44 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdeadlinetimer.h" 2 3 4 8751: # 58 "/usr/include/arm-linux-gnueabihf/qt5/QtCore/qdeadlinetimer.h" 3 4 8751: 8751: 8751: class __attribute__((visibility("default"))) QDeadlineTimer 8751: { 8751: public: 8751: enum ForeverConstant { Forever }; 8751: 8751: constexpr QDeadlineTimer(Qt::TimerType type_ = Qt::CoarseTimer) noexcept 8751: : t1(0), t2(0), type(type_) {} 8751: constexpr QDeadlineTimer(ForeverConstant, Qt::TimerType type_ = Qt::CoarseTimer) noexcept 8751: : t1(std::numeric_limits::max()), t2(0), type(type_) {} 8751: explicit QDeadlineTimer(qint64 msecs, Qt::TimerType type = Qt::CoarseTimer) noexcept; 8751: 8751: void swap(QDeadlineTimer &other) noexcept 8751: { qSwap(t1, other.t1); qSwap(t2, other.t2); qSwap(type, other.type); } 8751: 8751: constexpr bool isForever() const noexcept 8751: { return t1 == (std::numeric_limits::max)(); } 8751: bool hasExpired() const noexcept; 8751: 8751: Qt::TimerType timerType() const noexcept 8751: { return Qt::TimerType(type & 0xff); } 8751: void setTimerType(Qt::TimerType type); 8751: 8751: qint64 remainingTime() const noexcept; 8751: qint64 remainingTimeNSecs() const noexcept; 8751: void setRemainingTime(qint64 msecs, Qt::TimerType type = Qt::CoarseTimer) noexcept; 8751: void setPreciseRemainingTime(qint64 secs, qint64 nsecs = 0, 8751: Qt::TimerType type = Qt::CoarseTimer) noexcept; 8751: 8751: qint64 deadline() const noexcept __attribute__((pure)); 8751: qint64 deadlineNSecs() const noexcept __attribute__((pure)); 8751: void setDeadline(qint64 msecs, Qt::TimerType timerType = Qt::CoarseTimer) noexcept; 8751: void setPreciseDeadline(qint64 secs, qint64 nsecs = 0, 8751: Qt::TimerType type = Qt::CoarseTimer) noexcept; 8751: 8751: static QDeadlineTimer addNSecs(QDeadlineTimer dt, qint64 nsecs) noexcept __attribute__((pure)); 8751: static QDeadlineTimer current(Qt::TimerType timerType = Qt::CoarseTimer) noexcept; 8751: 8751: friend bool operator==(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8751: { return d1.t1 == d2.t1 && d1.t2 == d2.t2; } 8751: friend bool operator!=(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8751: { return !(d1 == d2); } 8751: friend bool operator<(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8751: { return d1.t1 < d2.t1 || (d1.t1 == d2.t1 && d1.t2 < d2.t2); } 8751: friend bool operator<=(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8751: { return d1 == d2 || d1 < d2; } 8751: friend bool operator>(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8751: { return d2 < d1; } 8751: friend bool operator>=(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8751: { return !(d1 < d2); } 8751: 8751: friend QDeadlineTimer operator+(QDeadlineTimer dt, qint64 msecs) 8751: { return QDeadlineTimer::addNSecs(dt, msecs * 1000 * 1000); } 8751: friend QDeadlineTimer operator+(qint64 msecs, QDeadlineTimer dt) 8751: { return dt + msecs; } 8751: friend QDeadlineTimer operator-(QDeadlineTimer dt, qint64 msecs) 8751: { return dt + (-msecs); } 8751: friend qint64 operator-(QDeadlineTimer dt1, QDeadlineTimer dt2) 8751: { return (dt1.deadlineNSecs() - dt2.deadlineNSecs()) / (1000 * 1000); } 8751: QDeadlineTimer &operator+=(qint64 msecs) 8751: { *this = *this + msecs; return *this; } 8751: QDeadlineTimer &operator-=(qint64 msecs) 8751: { *this = *this + (-msecs); return *this; } 8751: 8751: 8751: template 8751: QDeadlineTimer(std::chrono::time_point deadline_, 8751: Qt::TimerType type_ = Qt::CoarseTimer) : t2(0) 8751: { setDeadline(deadline_, type_); } 8751: template 8751: QDeadlineTimer &operator=(std::chrono::time_point deadline_) 8751: { setDeadline(deadline_); return *this; } 8751: 8751: template 8751: void setDeadline(std::chrono::time_point deadline_, 8751: Qt::TimerType type_ = Qt::CoarseTimer) 8751: { setRemainingTime(deadline_ == deadline_.max() ? Duration::max() : deadline_ - Clock::now(), type_); } 8751: 8751: template 8751: std::chrono::time_point deadline() const 8751: { 8751: auto val = std::chrono::nanoseconds(rawRemainingTimeNSecs()) + Clock::now(); 8751: return std::chrono::time_point_cast(val); 8751: } 8751: 8751: template 8751: QDeadlineTimer(std::chrono::duration remaining, Qt::TimerType type_ = Qt::CoarseTimer) 8751: : t2(0) 8751: { setRemainingTime(remaining, type_); } 8751: 8751: template 8751: QDeadlineTimer &operator=(std::chrono::duration remaining) 8751: { setRemainingTime(remaining); return *this; } 8751: 8751: template 8751: void setRemainingTime(std::chrono::duration remaining, Qt::TimerType type_ = Qt::CoarseTimer) 8751: { 8751: if (remaining == remaining.max()) 8751: *this = QDeadlineTimer(Forever, type_); 8751: else 8751: setPreciseRemainingTime(0, std::chrono::nanoseconds(remaining).count(), type_); 8751: } 8751: 8751: std::chrono::nanoseconds remainingTimeAsDuration() const noexcept 8751: { 8751: if (isForever()) 8751: return std::chrono::nanoseconds::max(); 8751: qint64 nsecs = rawRemainingTimeNSecs(); 8751: if (nsecs <= 0) 8751: return std::chrono::nanoseconds::zero(); 8751: return std::chrono::nanoseconds(nsecs); 8751: } 8751: 8751: template 8751: friend QDeadlineTimer operator+(QDeadlineTimer dt, std::chrono::duration value) 8751: { return QDeadlineTimer::addNSecs(dt, std::chrono::duration_cast(value).count()); } 8751: template 8751: friend QDeadlineTimer operator+(std::chrono::duration value, QDeadlineTimer dt) 8751: { return dt + value; } 8751: template 8751: friend QDeadlineTimer operator+=(QDeadlineTimer &dt, std::chrono::duration value) 8751: { return dt = dt + value; } 8751: 8751: 8751: private: 8751: qint64 t1; 8751: unsigned t2; 8751: unsigned type; 8751: 8751: qint64 rawRemainingTimeNSecs() const noexcept; 8751: }; 8751: 8751: template<> class QTypeInfo { public: enum { isSpecialized = true, isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_MOVABLE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QDeadlineTimer)>sizeof(void*)), isPointer = false, isIntegral = std::is_integral< QDeadlineTimer >::value, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QDeadlineTimer) }; static inline const char *name() { return "QDeadlineTimer"; } }; inline void swap(QDeadlineTimer &value1, QDeadlineTimer &value2) noexcept(noexcept(value1.swap(value2))) { value1.swap(value2); } 8751: 8751: 8751: 8751: template <> struct QMetaTypeId< QDeadlineTimer > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< QDeadlineTimer >("QDeadlineTimer", reinterpret_cast< QDeadlineTimer *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8751: # 46 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestsystem.h" 2 3 4 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: namespace QTest 8751: { 8751: __attribute__((__unused__)) inline static void qWait(int ms) 8751: { 8751: do { } while ((false) && (QCoreApplication::instance())); 8751: 8751: QDeadlineTimer timer(ms, Qt::PreciseTimer); 8751: int remaining = ms; 8751: do { 8751: QCoreApplication::processEvents(QEventLoop::AllEvents, remaining); 8751: QCoreApplication::sendPostedEvents(nullptr, QEvent::DeferredDelete); 8751: remaining = timer.remainingTime(); 8751: if (remaining <= 0) 8751: break; 8751: QTest::qSleep(qMin(10, remaining)); 8751: remaining = timer.remainingTime(); 8751: } while (remaining > 0); 8751: } 8751: # 140 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtestsystem.h" 3 4 8751: } 8751: 8751: 8751: # 329 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8751: # 1 "/usr/include/c++/8/set" 1 3 4 8751: # 58 "/usr/include/c++/8/set" 3 4 8751: 8751: # 59 "/usr/include/c++/8/set" 3 8751: 8751: 8751: # 1 "/usr/include/c++/8/bits/stl_set.h" 1 3 8751: # 64 "/usr/include/c++/8/bits/stl_set.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: template 8751: class multiset; 8751: # 92 "/usr/include/c++/8/bits/stl_set.h" 3 8751: template, 8751: typename _Alloc = std::allocator<_Key> > 8751: class set 8751: { 8751: # 108 "/usr/include/c++/8/bits/stl_set.h" 3 8751: static_assert(is_same::type, _Key>::value, 8751: "std::set must have a non-const, non-volatile value_type"); 8751: 8751: 8751: 8751: 8751: 8751: 8751: public: 8751: 8751: 8751: 8751: typedef _Key key_type; 8751: typedef _Key value_type; 8751: typedef _Compare key_compare; 8751: typedef _Compare value_compare; 8751: typedef _Alloc allocator_type; 8751: 8751: 8751: private: 8751: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8751: rebind<_Key>::other _Key_alloc_type; 8751: 8751: typedef _Rb_tree, 8751: key_compare, _Key_alloc_type> _Rep_type; 8751: _Rep_type _M_t; 8751: 8751: typedef __gnu_cxx::__alloc_traits<_Key_alloc_type> _Alloc_traits; 8751: 8751: public: 8751: 8751: 8751: typedef typename _Alloc_traits::pointer pointer; 8751: typedef typename _Alloc_traits::const_pointer const_pointer; 8751: typedef typename _Alloc_traits::reference reference; 8751: typedef typename _Alloc_traits::const_reference const_reference; 8751: 8751: 8751: 8751: typedef typename _Rep_type::const_iterator iterator; 8751: typedef typename _Rep_type::const_iterator const_iterator; 8751: typedef typename _Rep_type::const_reverse_iterator reverse_iterator; 8751: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 8751: typedef typename _Rep_type::size_type size_type; 8751: typedef typename _Rep_type::difference_type difference_type; 8751: # 167 "/usr/include/c++/8/bits/stl_set.h" 3 8751: set() = default; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: explicit 8751: set(const _Compare& __comp, 8751: const allocator_type& __a = allocator_type()) 8751: : _M_t(__comp, _Key_alloc_type(__a)) { } 8751: # 190 "/usr/include/c++/8/bits/stl_set.h" 3 8751: template 8751: set(_InputIterator __first, _InputIterator __last) 8751: : _M_t() 8751: { _M_t._M_insert_unique(__first, __last); } 8751: # 207 "/usr/include/c++/8/bits/stl_set.h" 3 8751: template 8751: set(_InputIterator __first, _InputIterator __last, 8751: const _Compare& __comp, 8751: const allocator_type& __a = allocator_type()) 8751: : _M_t(__comp, _Key_alloc_type(__a)) 8751: { _M_t._M_insert_unique(__first, __last); } 8751: # 223 "/usr/include/c++/8/bits/stl_set.h" 3 8751: set(const set&) = default; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: set(set&&) = default; 8751: # 243 "/usr/include/c++/8/bits/stl_set.h" 3 8751: set(initializer_list __l, 8751: const _Compare& __comp = _Compare(), 8751: const allocator_type& __a = allocator_type()) 8751: : _M_t(__comp, _Key_alloc_type(__a)) 8751: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 8751: 8751: 8751: explicit 8751: set(const allocator_type& __a) 8751: : _M_t(_Compare(), _Key_alloc_type(__a)) { } 8751: 8751: 8751: set(const set& __x, const allocator_type& __a) 8751: : _M_t(__x._M_t, _Key_alloc_type(__a)) { } 8751: 8751: 8751: set(set&& __x, const allocator_type& __a) 8751: noexcept(is_nothrow_copy_constructible<_Compare>::value 8751: && _Alloc_traits::_S_always_equal()) 8751: : _M_t(std::move(__x._M_t), _Key_alloc_type(__a)) { } 8751: 8751: 8751: set(initializer_list __l, const allocator_type& __a) 8751: : _M_t(_Compare(), _Key_alloc_type(__a)) 8751: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 8751: 8751: 8751: template 8751: set(_InputIterator __first, _InputIterator __last, 8751: const allocator_type& __a) 8751: : _M_t(_Compare(), _Key_alloc_type(__a)) 8751: { _M_t._M_insert_unique(__first, __last); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: ~set() = default; 8751: # 297 "/usr/include/c++/8/bits/stl_set.h" 3 8751: set& 8751: operator=(const set&) = default; 8751: 8751: 8751: set& 8751: operator=(set&&) = default; 8751: # 315 "/usr/include/c++/8/bits/stl_set.h" 3 8751: set& 8751: operator=(initializer_list __l) 8751: { 8751: _M_t._M_assign_unique(__l.begin(), __l.end()); 8751: return *this; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: key_compare 8751: key_comp() const 8751: { return _M_t.key_comp(); } 8751: 8751: value_compare 8751: value_comp() const 8751: { return _M_t.key_comp(); } 8751: 8751: allocator_type 8751: get_allocator() const noexcept 8751: { return allocator_type(_M_t.get_allocator()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: iterator 8751: begin() const noexcept 8751: { return _M_t.begin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: iterator 8751: end() const noexcept 8751: { return _M_t.end(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: rbegin() const noexcept 8751: { return _M_t.rbegin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: rend() const noexcept 8751: { return _M_t.rend(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: iterator 8751: cbegin() const noexcept 8751: { return _M_t.begin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: iterator 8751: cend() const noexcept 8751: { return _M_t.end(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: crbegin() const noexcept 8751: { return _M_t.rbegin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: crend() const noexcept 8751: { return _M_t.rend(); } 8751: 8751: 8751: 8751: bool 8751: empty() const noexcept 8751: { return _M_t.empty(); } 8751: 8751: 8751: size_type 8751: size() const noexcept 8751: { return _M_t.size(); } 8751: 8751: 8751: size_type 8751: max_size() const noexcept 8751: { return _M_t.max_size(); } 8751: # 440 "/usr/include/c++/8/bits/stl_set.h" 3 8751: void 8751: swap(set& __x) 8751: noexcept(__is_nothrow_swappable<_Compare>::value) 8751: { _M_t.swap(__x._M_t); } 8751: # 460 "/usr/include/c++/8/bits/stl_set.h" 3 8751: template 8751: std::pair 8751: emplace(_Args&&... __args) 8751: { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); } 8751: # 486 "/usr/include/c++/8/bits/stl_set.h" 3 8751: template 8751: iterator 8751: emplace_hint(const_iterator __pos, _Args&&... __args) 8751: { 8751: return _M_t._M_emplace_hint_unique(__pos, 8751: std::forward<_Args>(__args)...); 8751: } 8751: # 508 "/usr/include/c++/8/bits/stl_set.h" 3 8751: std::pair 8751: insert(const value_type& __x) 8751: { 8751: std::pair __p = 8751: _M_t._M_insert_unique(__x); 8751: return std::pair(__p.first, __p.second); 8751: } 8751: 8751: 8751: std::pair 8751: insert(value_type&& __x) 8751: { 8751: std::pair __p = 8751: _M_t._M_insert_unique(std::move(__x)); 8751: return std::pair(__p.first, __p.second); 8751: } 8751: # 545 "/usr/include/c++/8/bits/stl_set.h" 3 8751: iterator 8751: insert(const_iterator __position, const value_type& __x) 8751: { return _M_t._M_insert_unique_(__position, __x); } 8751: 8751: 8751: iterator 8751: insert(const_iterator __position, value_type&& __x) 8751: { return _M_t._M_insert_unique_(__position, std::move(__x)); } 8751: # 564 "/usr/include/c++/8/bits/stl_set.h" 3 8751: template 8751: void 8751: insert(_InputIterator __first, _InputIterator __last) 8751: { _M_t._M_insert_unique(__first, __last); } 8751: # 577 "/usr/include/c++/8/bits/stl_set.h" 3 8751: void 8751: insert(initializer_list __l) 8751: { this->insert(__l.begin(), __l.end()); } 8751: # 652 "/usr/include/c++/8/bits/stl_set.h" 3 8751: __attribute ((__abi_tag__ ("cxx11"))) 8751: iterator 8751: erase(const_iterator __position) 8751: { return _M_t.erase(__position); } 8751: # 683 "/usr/include/c++/8/bits/stl_set.h" 3 8751: size_type 8751: erase(const key_type& __x) 8751: { return _M_t.erase(__x); } 8751: # 704 "/usr/include/c++/8/bits/stl_set.h" 3 8751: __attribute ((__abi_tag__ ("cxx11"))) 8751: iterator 8751: erase(const_iterator __first, const_iterator __last) 8751: { return _M_t.erase(__first, __last); } 8751: # 732 "/usr/include/c++/8/bits/stl_set.h" 3 8751: void 8751: clear() noexcept 8751: { _M_t.clear(); } 8751: # 747 "/usr/include/c++/8/bits/stl_set.h" 3 8751: size_type 8751: count(const key_type& __x) const 8751: { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } 8751: # 774 "/usr/include/c++/8/bits/stl_set.h" 3 8751: iterator 8751: find(const key_type& __x) 8751: { return _M_t.find(__x); } 8751: 8751: const_iterator 8751: find(const key_type& __x) const 8751: { return _M_t.find(__x); } 8751: # 809 "/usr/include/c++/8/bits/stl_set.h" 3 8751: iterator 8751: lower_bound(const key_type& __x) 8751: { return _M_t.lower_bound(__x); } 8751: 8751: const_iterator 8751: lower_bound(const key_type& __x) const 8751: { return _M_t.lower_bound(__x); } 8751: # 839 "/usr/include/c++/8/bits/stl_set.h" 3 8751: iterator 8751: upper_bound(const key_type& __x) 8751: { return _M_t.upper_bound(__x); } 8751: 8751: const_iterator 8751: upper_bound(const key_type& __x) const 8751: { return _M_t.upper_bound(__x); } 8751: # 878 "/usr/include/c++/8/bits/stl_set.h" 3 8751: std::pair 8751: equal_range(const key_type& __x) 8751: { return _M_t.equal_range(__x); } 8751: 8751: std::pair 8751: equal_range(const key_type& __x) const 8751: { return _M_t.equal_range(__x); } 8751: # 901 "/usr/include/c++/8/bits/stl_set.h" 3 8751: template 8751: friend bool 8751: operator==(const set<_K1, _C1, _A1>&, const set<_K1, _C1, _A1>&); 8751: 8751: template 8751: friend bool 8751: operator<(const set<_K1, _C1, _A1>&, const set<_K1, _C1, _A1>&); 8751: }; 8751: # 956 "/usr/include/c++/8/bits/stl_set.h" 3 8751: template 8751: inline bool 8751: operator==(const set<_Key, _Compare, _Alloc>& __x, 8751: const set<_Key, _Compare, _Alloc>& __y) 8751: { return __x._M_t == __y._M_t; } 8751: # 973 "/usr/include/c++/8/bits/stl_set.h" 3 8751: template 8751: inline bool 8751: operator<(const set<_Key, _Compare, _Alloc>& __x, 8751: const set<_Key, _Compare, _Alloc>& __y) 8751: { return __x._M_t < __y._M_t; } 8751: 8751: 8751: template 8751: inline bool 8751: operator!=(const set<_Key, _Compare, _Alloc>& __x, 8751: const set<_Key, _Compare, _Alloc>& __y) 8751: { return !(__x == __y); } 8751: 8751: 8751: template 8751: inline bool 8751: operator>(const set<_Key, _Compare, _Alloc>& __x, 8751: const set<_Key, _Compare, _Alloc>& __y) 8751: { return __y < __x; } 8751: 8751: 8751: template 8751: inline bool 8751: operator<=(const set<_Key, _Compare, _Alloc>& __x, 8751: const set<_Key, _Compare, _Alloc>& __y) 8751: { return !(__y < __x); } 8751: 8751: 8751: template 8751: inline bool 8751: operator>=(const set<_Key, _Compare, _Alloc>& __x, 8751: const set<_Key, _Compare, _Alloc>& __y) 8751: { return !(__x < __y); } 8751: 8751: 8751: template 8751: inline void 8751: swap(set<_Key, _Compare, _Alloc>& __x, set<_Key, _Compare, _Alloc>& __y) 8751: noexcept(noexcept(__x.swap(__y))) 8751: { __x.swap(__y); } 8751: 8751: 8751: # 1035 "/usr/include/c++/8/bits/stl_set.h" 3 8751: 8751: } 8751: # 62 "/usr/include/c++/8/set" 2 3 8751: # 1 "/usr/include/c++/8/bits/stl_multiset.h" 1 3 8751: # 64 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: namespace std __attribute__ ((__visibility__ ("default"))) 8751: { 8751: 8751: 8751: 8751: template 8751: class set; 8751: # 94 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: template , 8751: typename _Alloc = std::allocator<_Key> > 8751: class multiset 8751: { 8751: # 110 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: static_assert(is_same::type, _Key>::value, 8751: "std::multiset must have a non-const, non-volatile value_type"); 8751: 8751: 8751: 8751: 8751: 8751: 8751: public: 8751: 8751: typedef _Key key_type; 8751: typedef _Key value_type; 8751: typedef _Compare key_compare; 8751: typedef _Compare value_compare; 8751: typedef _Alloc allocator_type; 8751: 8751: private: 8751: 8751: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8751: rebind<_Key>::other _Key_alloc_type; 8751: 8751: typedef _Rb_tree, 8751: key_compare, _Key_alloc_type> _Rep_type; 8751: 8751: _Rep_type _M_t; 8751: 8751: typedef __gnu_cxx::__alloc_traits<_Key_alloc_type> _Alloc_traits; 8751: 8751: public: 8751: typedef typename _Alloc_traits::pointer pointer; 8751: typedef typename _Alloc_traits::const_pointer const_pointer; 8751: typedef typename _Alloc_traits::reference reference; 8751: typedef typename _Alloc_traits::const_reference const_reference; 8751: 8751: 8751: 8751: typedef typename _Rep_type::const_iterator iterator; 8751: typedef typename _Rep_type::const_iterator const_iterator; 8751: typedef typename _Rep_type::const_reverse_iterator reverse_iterator; 8751: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 8751: typedef typename _Rep_type::size_type size_type; 8751: typedef typename _Rep_type::difference_type difference_type; 8751: # 164 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: multiset() = default; 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: explicit 8751: multiset(const _Compare& __comp, 8751: const allocator_type& __a = allocator_type()) 8751: : _M_t(__comp, _Key_alloc_type(__a)) { } 8751: # 186 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: template 8751: multiset(_InputIterator __first, _InputIterator __last) 8751: : _M_t() 8751: { _M_t._M_insert_equal(__first, __last); } 8751: # 202 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: template 8751: multiset(_InputIterator __first, _InputIterator __last, 8751: const _Compare& __comp, 8751: const allocator_type& __a = allocator_type()) 8751: : _M_t(__comp, _Key_alloc_type(__a)) 8751: { _M_t._M_insert_equal(__first, __last); } 8751: # 218 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: multiset(const multiset&) = default; 8751: # 227 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: multiset(multiset&&) = default; 8751: # 239 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: multiset(initializer_list __l, 8751: const _Compare& __comp = _Compare(), 8751: const allocator_type& __a = allocator_type()) 8751: : _M_t(__comp, _Key_alloc_type(__a)) 8751: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 8751: 8751: 8751: explicit 8751: multiset(const allocator_type& __a) 8751: : _M_t(_Compare(), _Key_alloc_type(__a)) { } 8751: 8751: 8751: multiset(const multiset& __m, const allocator_type& __a) 8751: : _M_t(__m._M_t, _Key_alloc_type(__a)) { } 8751: 8751: 8751: multiset(multiset&& __m, const allocator_type& __a) 8751: noexcept(is_nothrow_copy_constructible<_Compare>::value 8751: && _Alloc_traits::_S_always_equal()) 8751: : _M_t(std::move(__m._M_t), _Key_alloc_type(__a)) { } 8751: 8751: 8751: multiset(initializer_list __l, const allocator_type& __a) 8751: : _M_t(_Compare(), _Key_alloc_type(__a)) 8751: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 8751: 8751: 8751: template 8751: multiset(_InputIterator __first, _InputIterator __last, 8751: const allocator_type& __a) 8751: : _M_t(_Compare(), _Key_alloc_type(__a)) 8751: { _M_t._M_insert_equal(__first, __last); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: ~multiset() = default; 8751: # 293 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: multiset& 8751: operator=(const multiset&) = default; 8751: 8751: 8751: multiset& 8751: operator=(multiset&&) = default; 8751: # 311 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: multiset& 8751: operator=(initializer_list __l) 8751: { 8751: _M_t._M_assign_equal(__l.begin(), __l.end()); 8751: return *this; 8751: } 8751: 8751: 8751: 8751: 8751: 8751: key_compare 8751: key_comp() const 8751: { return _M_t.key_comp(); } 8751: 8751: value_compare 8751: value_comp() const 8751: { return _M_t.key_comp(); } 8751: 8751: allocator_type 8751: get_allocator() const noexcept 8751: { return allocator_type(_M_t.get_allocator()); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: iterator 8751: begin() const noexcept 8751: { return _M_t.begin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: iterator 8751: end() const noexcept 8751: { return _M_t.end(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: rbegin() const noexcept 8751: { return _M_t.rbegin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: rend() const noexcept 8751: { return _M_t.rend(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: 8751: iterator 8751: cbegin() const noexcept 8751: { return _M_t.begin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: iterator 8751: cend() const noexcept 8751: { return _M_t.end(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: crbegin() const noexcept 8751: { return _M_t.rbegin(); } 8751: 8751: 8751: 8751: 8751: 8751: 8751: reverse_iterator 8751: crend() const noexcept 8751: { return _M_t.rend(); } 8751: 8751: 8751: 8751: bool 8751: empty() const noexcept 8751: { return _M_t.empty(); } 8751: 8751: 8751: size_type 8751: size() const noexcept 8751: { return _M_t.size(); } 8751: 8751: 8751: size_type 8751: max_size() const noexcept 8751: { return _M_t.max_size(); } 8751: # 436 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: void 8751: swap(multiset& __x) 8751: noexcept(__is_nothrow_swappable<_Compare>::value) 8751: { _M_t.swap(__x._M_t); } 8751: # 455 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: template 8751: iterator 8751: emplace(_Args&&... __args) 8751: { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); } 8751: # 481 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: template 8751: iterator 8751: emplace_hint(const_iterator __pos, _Args&&... __args) 8751: { 8751: return _M_t._M_emplace_hint_equal(__pos, 8751: std::forward<_Args>(__args)...); 8751: } 8751: # 501 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: iterator 8751: insert(const value_type& __x) 8751: { return _M_t._M_insert_equal(__x); } 8751: 8751: 8751: iterator 8751: insert(value_type&& __x) 8751: { return _M_t._M_insert_equal(std::move(__x)); } 8751: # 531 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: iterator 8751: insert(const_iterator __position, const value_type& __x) 8751: { return _M_t._M_insert_equal_(__position, __x); } 8751: 8751: 8751: iterator 8751: insert(const_iterator __position, value_type&& __x) 8751: { return _M_t._M_insert_equal_(__position, std::move(__x)); } 8751: # 549 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: template 8751: void 8751: insert(_InputIterator __first, _InputIterator __last) 8751: { _M_t._M_insert_equal(__first, __last); } 8751: # 562 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: void 8751: insert(initializer_list __l) 8751: { this->insert(__l.begin(), __l.end()); } 8751: # 637 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: __attribute ((__abi_tag__ ("cxx11"))) 8751: iterator 8751: erase(const_iterator __position) 8751: { return _M_t.erase(__position); } 8751: # 668 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: size_type 8751: erase(const key_type& __x) 8751: { return _M_t.erase(__x); } 8751: # 689 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: __attribute ((__abi_tag__ ("cxx11"))) 8751: iterator 8751: erase(const_iterator __first, const_iterator __last) 8751: { return _M_t.erase(__first, __last); } 8751: # 717 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: void 8751: clear() noexcept 8751: { _M_t.clear(); } 8751: # 729 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: size_type 8751: count(const key_type& __x) const 8751: { return _M_t.count(__x); } 8751: # 755 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: iterator 8751: find(const key_type& __x) 8751: { return _M_t.find(__x); } 8751: 8751: const_iterator 8751: find(const key_type& __x) const 8751: { return _M_t.find(__x); } 8751: # 790 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: iterator 8751: lower_bound(const key_type& __x) 8751: { return _M_t.lower_bound(__x); } 8751: 8751: const_iterator 8751: lower_bound(const key_type& __x) const 8751: { return _M_t.lower_bound(__x); } 8751: # 820 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: iterator 8751: upper_bound(const key_type& __x) 8751: { return _M_t.upper_bound(__x); } 8751: 8751: const_iterator 8751: upper_bound(const key_type& __x) const 8751: { return _M_t.upper_bound(__x); } 8751: # 859 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: std::pair 8751: equal_range(const key_type& __x) 8751: { return _M_t.equal_range(__x); } 8751: 8751: std::pair 8751: equal_range(const key_type& __x) const 8751: { return _M_t.equal_range(__x); } 8751: # 882 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: template 8751: friend bool 8751: operator==(const multiset<_K1, _C1, _A1>&, 8751: const multiset<_K1, _C1, _A1>&); 8751: 8751: template 8751: friend bool 8751: operator< (const multiset<_K1, _C1, _A1>&, 8751: const multiset<_K1, _C1, _A1>&); 8751: }; 8751: # 941 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: template 8751: inline bool 8751: operator==(const multiset<_Key, _Compare, _Alloc>& __x, 8751: const multiset<_Key, _Compare, _Alloc>& __y) 8751: { return __x._M_t == __y._M_t; } 8751: # 958 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: template 8751: inline bool 8751: operator<(const multiset<_Key, _Compare, _Alloc>& __x, 8751: const multiset<_Key, _Compare, _Alloc>& __y) 8751: { return __x._M_t < __y._M_t; } 8751: 8751: 8751: template 8751: inline bool 8751: operator!=(const multiset<_Key, _Compare, _Alloc>& __x, 8751: const multiset<_Key, _Compare, _Alloc>& __y) 8751: { return !(__x == __y); } 8751: 8751: 8751: template 8751: inline bool 8751: operator>(const multiset<_Key,_Compare,_Alloc>& __x, 8751: const multiset<_Key,_Compare,_Alloc>& __y) 8751: { return __y < __x; } 8751: 8751: 8751: template 8751: inline bool 8751: operator<=(const multiset<_Key, _Compare, _Alloc>& __x, 8751: const multiset<_Key, _Compare, _Alloc>& __y) 8751: { return !(__y < __x); } 8751: 8751: 8751: template 8751: inline bool 8751: operator>=(const multiset<_Key, _Compare, _Alloc>& __x, 8751: const multiset<_Key, _Compare, _Alloc>& __y) 8751: { return !(__x < __y); } 8751: 8751: 8751: template 8751: inline void 8751: swap(multiset<_Key, _Compare, _Alloc>& __x, 8751: multiset<_Key, _Compare, _Alloc>& __y) 8751: noexcept(noexcept(__x.swap(__y))) 8751: { __x.swap(__y); } 8751: 8751: 8751: # 1023 "/usr/include/c++/8/bits/stl_multiset.h" 3 8751: 8751: } 8751: # 63 "/usr/include/c++/8/set" 2 3 8751: # 330 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/qtest.h" 2 3 4 8751: # 1 "/usr/include/arm-linux-gnueabihf/qt5/QtTest/QTest" 2 3 4 8751: # 34 "/<>/templates/tests/testgenericcontainers.cpp" 2 8751: 8751: 8751: # 35 "/<>/templates/tests/testgenericcontainers.cpp" 8751: class TestGenericContainers : public CoverageObject 8751: { 8751: 8751: # 37 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: public: 8751: # 37 "/<>/templates/tests/testgenericcontainers.cpp" 8751: #pragma GCC diagnostic push 8751: # 37 "/<>/templates/tests/testgenericcontainers.cpp" 8751: 8751: # 37 "/<>/templates/tests/testgenericcontainers.cpp" 8751: #pragma GCC diagnostic ignored "-Wsuggest-override" 8751: # 37 "/<>/templates/tests/testgenericcontainers.cpp" 8751: static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: 8751: # 37 "/<>/templates/tests/testgenericcontainers.cpp" 8751: #pragma GCC diagnostic ignored "-Wattributes" 8751: # 37 "/<>/templates/tests/testgenericcontainers.cpp" 8751: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8751: # 37 "/<>/templates/tests/testgenericcontainers.cpp" 8751: #pragma GCC diagnostic pop 8751: # 37 "/<>/templates/tests/testgenericcontainers.cpp" 8751: struct QPrivateSignal {}; 8751: 8751: # 38 "/<>/templates/tests/testgenericcontainers.cpp" 8751: public: 8751: explicit TestGenericContainers(QObject *parent = 0); 8751: 8751: private : 8751: void testContainer_Builtins(); 8751: }; 8751: 8751: TestGenericContainers::TestGenericContainers(QObject *parent) 8751: : CoverageObject(parent) 8751: { 8751: } 8751: 8751: template QVector getItems() 8751: { 8751: QVector items; 8751: items.push_back(9); 8751: items.push_back(7); 8751: items.push_back(5); 8751: return items; 8751: } 8751: 8751: template <> QVector getItems() 8751: { 8751: QVector items; 8751: 8751: # 62 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8751: # 62 "/<>/templates/tests/testgenericcontainers.cpp" 8751: getItems() 8751: # 62 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8751: # 62 "/<>/templates/tests/testgenericcontainers.cpp" 8751: const int item 8751: # 62 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: = *_container_.i; _container_.control; _container_.control = 0) 8751: 8751: # 63 "/<>/templates/tests/testgenericcontainers.cpp" 8751: items.push_back(QString::number(item)); 8751: return items; 8751: } 8751: 8751: template <> QVector getItems() 8751: { 8751: QVector items; 8751: 8751: # 70 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8751: # 70 "/<>/templates/tests/testgenericcontainers.cpp" 8751: getItems() 8751: # 70 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8751: # 70 "/<>/templates/tests/testgenericcontainers.cpp" 8751: const int item 8751: # 70 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: = *_container_.i; _container_.control; _container_.control = 0) 8751: 8751: # 71 "/<>/templates/tests/testgenericcontainers.cpp" 8751: items.push_back(item); 8751: return items; 8751: } 8751: 8751: template <> QVector getItems() 8751: { 8751: QVector items; 8751: items.reserve(3); 8751: for (auto i = 0; i < 3; ++i) { 8751: QDateTime d; 8751: d.setTime_t(0); 8751: d = d.addDays(i); 8751: items.push_back(d); 8751: } 8751: return items; 8751: } 8751: 8751: template <> QVector getItems() 8751: { 8751: QVector items; 8751: items.reserve(3); 8751: for (auto i = 9; i > 4; i -= 2) { 8751: auto obj = new QObject; 8751: 8751: obj->setObjectName(QString::number(i)); 8751: items.push_back(obj); 8751: } 8751: return items; 8751: } 8751: 8751: template struct ContainerPopulator { 8751: static void populateSequential(Container &container) 8751: { 8751: 8751: # 104 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8751: # 104 "/<>/templates/tests/testgenericcontainers.cpp" 8751: getItems() 8751: # 104 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8751: # 104 "/<>/templates/tests/testgenericcontainers.cpp" 8751: const typename Container::value_type item 8751: # 104 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: = *_container_.i; _container_.control; _container_.control = 0) 8751: 8751: 8751: # 106 "/<>/templates/tests/testgenericcontainers.cpp" 8751: container.push_back(item); 8751: } 8751: static void populateAssociative(Container &container) 8751: { 8751: auto i = 0; 8751: 8751: # 111 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8751: # 111 "/<>/templates/tests/testgenericcontainers.cpp" 8751: getItems() 8751: # 111 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8751: # 111 "/<>/templates/tests/testgenericcontainers.cpp" 8751: const typename Container::mapped_type item 8751: # 111 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: = *_container_.i; _container_.control; _container_.control = 0) 8751: 8751: 8751: # 113 "/<>/templates/tests/testgenericcontainers.cpp" 8751: container[i++] = item; 8751: } 8751: }; 8751: 8751: template struct ContainerPopulator> { 8751: static void populateSequential(QSet &container) 8751: { 8751: 8751: # 120 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8751: # 120 "/<>/templates/tests/testgenericcontainers.cpp" 8751: getItems() 8751: # 120 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8751: # 120 "/<>/templates/tests/testgenericcontainers.cpp" 8751: const T item 8751: # 120 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: = *_container_.i; _container_.control; _container_.control = 0) 8751: 8751: # 121 "/<>/templates/tests/testgenericcontainers.cpp" 8751: container.insert(item); 8751: } 8751: }; 8751: 8751: template struct ContainerPopulator> { 8751: static void populateAssociative(QMap &container) 8751: { 8751: auto i = 0; 8751: 8751: # 129 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8751: # 129 "/<>/templates/tests/testgenericcontainers.cpp" 8751: getItems() 8751: # 129 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8751: # 129 "/<>/templates/tests/testgenericcontainers.cpp" 8751: const T item 8751: # 129 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: = *_container_.i; _container_.control; _container_.control = 0) 8751: 8751: # 130 "/<>/templates/tests/testgenericcontainers.cpp" 8751: container.insert(QString::number(i++), item); 8751: } 8751: }; 8751: 8751: template struct ContainerPopulator> { 8751: static void populateAssociative(QHash &container) 8751: { 8751: auto i = 0; 8751: 8751: # 138 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8751: # 138 "/<>/templates/tests/testgenericcontainers.cpp" 8751: getItems() 8751: # 138 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8751: # 138 "/<>/templates/tests/testgenericcontainers.cpp" 8751: const T item 8751: # 138 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: = *_container_.i; _container_.control; _container_.control = 0) 8751: 8751: # 139 "/<>/templates/tests/testgenericcontainers.cpp" 8751: container.insert(QString::number(i++), item); 8751: } 8751: }; 8751: 8751: template struct ContainerPopulator> { 8751: static void populateAssociative(std::map &container) 8751: { 8751: auto i = 0; 8751: 8751: # 147 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8751: # 147 "/<>/templates/tests/testgenericcontainers.cpp" 8751: getItems() 8751: # 147 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8751: # 147 "/<>/templates/tests/testgenericcontainers.cpp" 8751: const T item 8751: # 147 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: = *_container_.i; _container_.control; _container_.control = 0) 8751: 8751: # 148 "/<>/templates/tests/testgenericcontainers.cpp" 8751: container[QString::number(i++)] = item; 8751: } 8751: }; 8751: 8751: template QString getTemplate() 8751: { 8751: return 8751: # 154 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 154 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "{{ container.size }};{{ container.count }};{% for item in container %}{{ item }},{% endfor %}" 8751: # 154 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 154 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "{{ container.size }};{{ container.count }};{% for item in container %}{{ item }},{% endfor %}" 8751: # 154 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: # 154 "/<>/templates/tests/testgenericcontainers.cpp" 8751: ; 8751: } 8751: 8751: template <> QString getTemplate() 8751: { 8751: return 8751: # 159 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 159 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "{{ container.size }};{{ container.count }};{% for item in container %}{{ item|date }},{% endfor %}" 8751: # 159 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 159 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "{{ container.size }};{{ container.count }};{% for item in container %}{{ item|date }},{% endfor %}" 8751: # 159 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: # 159 "/<>/templates/tests/testgenericcontainers.cpp" 8751: ; 8751: } 8751: 8751: template <> QString getTemplate() 8751: { 8751: return 8751: # 164 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 164 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "{{ container.size }};{{ container.count }};{% for item in container %}{{ item.objectName }},{% endfor %}" 8751: # 164 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 164 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "{{ container.size }};{{ container.count }};{% for item in container %}{{ item.objectName }},{% endfor %}" 8751: # 164 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: # 164 "/<>/templates/tests/testgenericcontainers.cpp" 8751: ; 8751: } 8751: 8751: template QString getAssociativeTemplate() 8751: { 8751: return 8751: # 169 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 169 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "{{ container.size }};{{ container.count }};{% for item in container.values %}{{ item }},{% endfor %}" 8751: # 169 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 169 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "{{ container.size }};{{ container.count }};{% for item in container.values %}{{ item }},{% endfor %}" 8751: # 169 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: # 169 "/<>/templates/tests/testgenericcontainers.cpp" 8751: ; 8751: } 8751: 8751: template <> QString getAssociativeTemplate() 8751: { 8751: return 8751: # 174 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 174 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "{{ container.size }};{{ container.count }};{% for item in container.values %}{{ item|date }},{% endfor %}" 8751: # 174 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 174 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "{{ container.size }};{{ container.count }};{% for item in container.values %}{{ item|date }},{% endfor %}" 8751: # 174 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: # 174 "/<>/templates/tests/testgenericcontainers.cpp" 8751: ; 8751: } 8751: 8751: template <> QString getAssociativeTemplate() 8751: { 8751: return 8751: # 179 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 179 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "{{ container.size }};{{ container.count }};{% for item in container.values %}{{ item.objectName }},{% endfor %}" 8751: # 179 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 179 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "{{ container.size }};{{ container.count }};{% for item in container.values %}{{ item.objectName }},{% endfor %}" 8751: # 179 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: # 179 "/<>/templates/tests/testgenericcontainers.cpp" 8751: ; 8751: } 8751: 8751: template QStringList getResults() 8751: { 8751: return QStringList() << 8751: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "3;3;" 8751: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "3;3;" 8751: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 8751: << 8751: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "9," 8751: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "9," 8751: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: 8751: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 8751: << 8751: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "7," 8751: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "7," 8751: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 8751: << 8751: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "5," 8751: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "5," 8751: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 8751: ; 8751: } 8751: 8751: template <> QStringList getResults() 8751: { 8751: return QStringList() << 8751: # 190 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 190 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "3;3;" 8751: # 190 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 190 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "3;3;" 8751: # 190 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: 8751: # 191 "/<>/templates/tests/testgenericcontainers.cpp" 8751: << 8751: # 191 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 191 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "Jan. 1, 1970," 8751: # 191 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 191 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "Jan. 1, 1970," 8751: # 191 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: 8751: # 192 "/<>/templates/tests/testgenericcontainers.cpp" 8751: << 8751: # 192 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 192 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "Jan. 2, 1970," 8751: # 192 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 192 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "Jan. 2, 1970," 8751: # 192 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: 8751: # 193 "/<>/templates/tests/testgenericcontainers.cpp" 8751: << 8751: # 193 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 193 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "Jan. 3, 1970," 8751: # 193 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 193 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "Jan. 3, 1970," 8751: # 193 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: # 193 "/<>/templates/tests/testgenericcontainers.cpp" 8751: ; 8751: } 8751: 8751: template 8751: struct CleanupSequentialContainer { 8751: static void clean(Container &) {} 8751: }; 8751: 8751: template 8751: struct CleanupAssociativeContainer { 8751: static void clean(Container &) {} 8751: }; 8751: 8751: template 8751: struct CleanupSequentialContainer { 8751: static void clean(Container &c) { qDeleteAll(c); } 8751: }; 8751: 8751: template 8751: struct CleanupAssociativeContainer { 8751: static void clean(Container &c) { qDeleteAll(c); } 8751: }; 8751: 8751: template 8751: struct CleanupAssociativeContainer, QObject *> { 8751: static void clean(std::map &c) 8751: { 8751: typename std::map::iterator it = c.begin(); 8751: const typename std::map::iterator end = c.end(); 8751: for (; it != end; ++it) { 8751: delete it->second; 8751: it->second = 0; 8751: } 8751: } 8751: }; 8751: 8751: template void cleanupSequential(Container c) 8751: { 8751: CleanupSequentialContainer::clean(c); 8751: } 8751: 8751: template void cleanupAssociative(Container c) 8751: { 8751: CleanupAssociativeContainer::clean(c); 8751: } 8751: 8751: void testContainer(const QString &stringTemplate, 8751: const QVariant &containerVariant, 8751: const QStringList &expectedResults, bool unordered) 8751: { 8751: Grantlee::Engine engine; 8751: 8751: engine.setPluginPaths(QStringList() << 8751: # 245 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 245 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "/<>/obj-arm-linux-gnueabihf/" 8751: # 245 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 245 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "/<>/obj-arm-linux-gnueabihf/" 8751: # 245 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: # 245 "/<>/templates/tests/testgenericcontainers.cpp" 8751: ); 8751: 8751: Grantlee::Context c; 8751: c.insert( 8751: # 248 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 248 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "container" 8751: # 248 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 248 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "container" 8751: # 248 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: # 248 "/<>/templates/tests/testgenericcontainers.cpp" 8751: , containerVariant); 8751: 8751: auto t1 = engine.newTemplate(stringTemplate, 8751: # 250 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 250 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "template1" 8751: # 250 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 250 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "template1" 8751: # 250 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: # 250 "/<>/templates/tests/testgenericcontainers.cpp" 8751: ); 8751: 8751: auto result = t1->render(&c); 8751: if (!unordered) 8751: 8751: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: do { if (!QTest::qCompare( 8751: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 8751: result 8751: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: , 8751: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 8751: expectedResults.join(QString()) 8751: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: , 8751: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "result" 8751: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: , 8751: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "expectedResults.join(QString())" 8751: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: , "/<>/templates/tests/testgenericcontainers.cpp", 254)) return;} while (false) 8751: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 8751: ; 8751: else { 8751: 8751: # 256 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: do { if (!QTest::qVerify(static_cast( 8751: # 256 "/<>/templates/tests/testgenericcontainers.cpp" 8751: result.size() == expectedResults.join(QString()).size() 8751: # 256 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ), 8751: # 256 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "result.size() == expectedResults.join(QString()).size()" 8751: # 256 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: , "", "/<>/templates/tests/testgenericcontainers.cpp", 256)) return;} while (false) 8751: # 256 "/<>/templates/tests/testgenericcontainers.cpp" 8751: ; 8751: 8751: # 257 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8751: # 257 "/<>/templates/tests/testgenericcontainers.cpp" 8751: expectedResults 8751: # 257 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8751: # 257 "/<>/templates/tests/testgenericcontainers.cpp" 8751: const QString &expectedResult 8751: # 257 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: = *_container_.i; _container_.control; _container_.control = 0) 8751: do { if (!QTest::qVerify(static_cast( 8751: # 258 "/<>/templates/tests/testgenericcontainers.cpp" 8751: result.contains(expectedResult) 8751: # 258 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ), 8751: # 258 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "result.contains(expectedResult)" 8751: # 258 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: , "", "/<>/templates/tests/testgenericcontainers.cpp", 258)) return;} while (false) 8751: # 258 "/<>/templates/tests/testgenericcontainers.cpp" 8751: ; 8751: } 8751: 8751: auto t2 = engine.newTemplate( 8751: # 261 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 261 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "-{{ container.doesnotexist }}-" 8751: # 261 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 261 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "-{{ container.doesnotexist }}-" 8751: # 261 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: # 261 "/<>/templates/tests/testgenericcontainers.cpp" 8751: , 8751: 8751: # 262 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 262 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "template2" 8751: # 262 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 262 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "template2" 8751: # 262 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8751: # 262 "/<>/templates/tests/testgenericcontainers.cpp" 8751: ); 8751: 8751: auto result2 = t2->render(&c); 8751: 8751: 8751: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: do { if (!QTest::qCompare( 8751: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 8751: result2 8751: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8751: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "--" 8751: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8751: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "--" 8751: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8751: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "result2" 8751: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: , 8751: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "QStringLiteral(\"--\")" 8751: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: , "/<>/templates/tests/testgenericcontainers.cpp", 266)) return;} while (false) 8751: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 8751: ; 8751: } 8751: 8751: template 8751: void doTestSequentialContainer(bool unordered = false) 8751: { 8751: Container container; 8751: ContainerPopulator::populateSequential(container); 8751: 8751: testContainer(getTemplate(), 8751: QVariant::fromValue(container), 8751: getResults(), unordered); 8751: cleanupSequential(container); 8751: } 8751: 8751: template 8751: void doTestAssociativeContainer(bool unordered = false) 8751: { 8751: Container container; 8751: ContainerPopulator::populateAssociative(container); 8751: 8751: testContainer(getAssociativeTemplate(), 8751: QVariant::fromValue(container), 8751: getResults(), unordered); 8751: cleanupAssociative(container); 8751: } 8751: 8751: template void doTestNonHashableContainers() 8751: { 8751: doTestSequentialContainer>(); 8751: doTestSequentialContainer>(); 8751: doTestSequentialContainer>(); 8751: doTestSequentialContainer>(); 8751: doTestSequentialContainer>(); 8751: doTestSequentialContainer>(); 8751: doTestAssociativeContainer>(); 8751: doTestAssociativeContainer>(); 8751: doTestAssociativeContainer>(true); 8751: # 324 "/<>/templates/tests/testgenericcontainers.cpp" 8751: } 8751: 8751: template void doTestContainers() 8751: { 8751: doTestNonHashableContainers(); 8751: doTestSequentialContainer>(true); 8751: } 8751: 8751: void TestGenericContainers::testContainer_Builtins() 8751: { 8751: doTestContainers(); 8751: # 348 "/<>/templates/tests/testgenericcontainers.cpp" 8751: } 8751: 8751: 8751: # 350 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); app.setAttribute(Qt::AA_Use96Dpi, true); 8751: # 350 "/<>/templates/tests/testgenericcontainers.cpp" 8751: TestGenericContainers 8751: # 350 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: tc; QTest::setMainSourcePath("/<>/templates/tests/testgenericcontainers.cpp", 8751: # 350 "/<>/templates/tests/testgenericcontainers.cpp" 8751: "/<>/obj-arm-linux-gnueabihf" 8751: # 350 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8751: ); return QTest::qExec(&tc, argc, argv); } 8751: # 1 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 1 8751: # 19 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: 8751: 8751: # 20 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: #pragma GCC diagnostic push 8751: # 20 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: 8751: 8751: # 21 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8751: # 21 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: 8751: 8751: # 22 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: struct qt_meta_stringdata_TestGenericContainers_t { 8751: QByteArrayData data[3]; 8751: char stringdata0[46]; 8751: }; 8751: 8751: 8751: 8751: 8751: 8751: static const qt_meta_stringdata_TestGenericContainers_t qt_meta_stringdata_TestGenericContainers = { 8751: { 8751: 8751: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: { { { -1 } }, 8751: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: 21 8751: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: , 0, 0, 8751: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: qptrdiff( 8751: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: __builtin_offsetof ( 8751: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: qt_meta_stringdata_TestGenericContainers_t 8751: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: , 8751: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: stringdata0 8751: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: ) 8751: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: + 0 - 0 * sizeof(QByteArrayData)) 8751: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: } 8751: # 33 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: , 8751: 8751: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: { { { -1 } }, 8751: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: 22 8751: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: , 0, 0, 8751: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: qptrdiff( 8751: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: __builtin_offsetof ( 8751: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: qt_meta_stringdata_TestGenericContainers_t 8751: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: , 8751: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: stringdata0 8751: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: ) 8751: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: + 22 - 1 * sizeof(QByteArrayData)) 8751: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: } 8751: # 34 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: , 8751: 8751: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: { { { -1 } }, 8751: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: 0 8751: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: , 0, 0, 8751: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: qptrdiff( 8751: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: __builtin_offsetof ( 8751: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: qt_meta_stringdata_TestGenericContainers_t 8751: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: , 8751: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: stringdata0 8751: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: ) 8751: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: + 45 - 2 * sizeof(QByteArrayData)) 8751: # 35 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: } 8751: 8751: 8751: # 37 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: }, 8751: "TestGenericContainers\0testContainer_Builtins\0" 8751: "" 8751: }; 8751: 8751: 8751: static const uint qt_meta_data_TestGenericContainers[] = { 8751: 8751: 8751: 7, 8751: 0, 8751: 0, 0, 8751: 1, 14, 8751: 0, 0, 8751: 0, 0, 8751: 0, 0, 8751: 0, 8751: 0, 8751: 8751: 8751: 1, 0, 19, 2, 0x08 , 8751: 8751: 8751: QMetaType::Void, 8751: 8751: 0 8751: }; 8751: 8751: void TestGenericContainers::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) 8751: { 8751: if (_c == QMetaObject::InvokeMetaMethod) { 8751: TestGenericContainers *_t = static_cast(_o); 8751: 8751: # 69 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: (void) 8751: # 69 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: _t 8751: # 69 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: ; 8751: 8751: # 70 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: switch (_id) { 8751: case 0: _t->testContainer_Builtins(); break; 8751: default: ; 8751: } 8751: } 8751: 8751: # 75 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: (void) 8751: # 75 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: _a 8751: # 75 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8751: ; 8751: # 75 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: ; 8751: } 8751: 8751: const QMetaObject TestGenericContainers::staticMetaObject = { 8751: { &CoverageObject::staticMetaObject, qt_meta_stringdata_TestGenericContainers.data, 8751: qt_meta_data_TestGenericContainers, qt_static_metacall, nullptr, nullptr} 8751: }; 8751: 8751: 8751: const QMetaObject *TestGenericContainers::metaObject() const 8751: { 8751: return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; 8751: } 8751: 8751: void *TestGenericContainers::qt_metacast(const char *_clname) 8751: { 8751: if (!_clname) return nullptr; 8751: if (!strcmp(_clname, qt_meta_stringdata_TestGenericContainers.stringdata0)) 8751: return static_cast(this); 8751: return CoverageObject::qt_metacast(_clname); 8751: } 8751: 8751: int TestGenericContainers::qt_metacall(QMetaObject::Call _c, int _id, void **_a) 8751: { 8751: _id = CoverageObject::qt_metacall(_c, _id, _a); 8751: if (_id < 0) 8751: return _id; 8751: if (_c == QMetaObject::InvokeMetaMethod) { 8751: if (_id < 1) 8751: qt_static_metacall(this, _c, _id, _a); 8751: _id -= 1; 8751: } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { 8751: if (_id < 1) 8751: *reinterpret_cast(_a[0]) = -1; 8751: _id -= 1; 8751: } 8751: return _id; 8751: } 8751: 8751: # 113 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: #pragma GCC diagnostic pop 8751: # 113 "/<>/obj-arm-linux-gnueabihf/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8751: 8751: 8751: # 351 "/<>/templates/tests/testgenericcontainers.cpp" 2 === END GCC DUMP === templates/tests/CMakeFiles/testgenericcontainers_exec.dir/build.make:65: recipe for target 'templates/tests/CMakeFiles/testgenericcontainers_exec.dir/testgenericcontainers.cpp.o' failed make[3]: *** [templates/tests/CMakeFiles/testgenericcontainers_exec.dir/testgenericcontainers.cpp.o] Error 1 make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' CMakeFiles/Makefile2:961: recipe for target 'templates/tests/CMakeFiles/testgenericcontainers_exec.dir/all' failed make[2]: *** [templates/tests/CMakeFiles/testgenericcontainers_exec.dir/all] Error 2 [ 98%] Linking CXX executable testbuiltins_exec cd /<>/obj-arm-linux-gnueabihf/templates/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/testbuiltins_exec.dir/link.txt --verbose=1 /usr/bin/c++ -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -pedantic-errors -Wl,-Bsymbolic-functions -Wl,-z,relro -rdynamic CMakeFiles/testbuiltins_exec.dir/testbuiltins.cpp.o CMakeFiles/testbuiltins_exec.dir/testbuiltins_exec_autogen/mocs_compilation.cpp.o -o testbuiltins_exec -Wl,-rpath,/<>/obj-arm-linux-gnueabihf/templates/lib ../lib/libGrantlee_Templates.so.5.1.0 libtemplate_test_builtins.a /usr/lib/arm-linux-gnueabihf/libQt5Test.so.5.9.3 /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-arm-linux-gnueabihf' [ 98%] Built target testbuiltins_exec make[2]: Leaving directory '/<>/obj-arm-linux-gnueabihf' Makefile:165: recipe for target 'all' failed make[1]: *** [all] Error 2 make[1]: Leaving directory '/<>/obj-arm-linux-gnueabihf' dh_auto_build: cd obj-arm-linux-gnueabihf && make -j4 returned exit code 2 debian/rules:12: recipe for target 'build-arch' failed make: *** [build-arch] Error 2 dpkg-buildpackage: error: debian/rules build-arch subprocess returned exit status 2 -------------------------------------------------------------------------------- Build finished at 20180115-1028 Finished -------- E: Build failure (dpkg-buildpackage died) +------------------------------------------------------------------------------+ | Cleanup | +------------------------------------------------------------------------------+ Purging /<> Not removing build depends: as requested +------------------------------------------------------------------------------+ | Summary | +------------------------------------------------------------------------------+ Build Architecture: armhf Build-Space: 113168 Build-Time: 197 Distribution: bionic Fail-Stage: build Host Architecture: armhf Install-Time: 66 Job: grantlee5_5.1.0-2.dsc Machine Architecture: arm64 Package: grantlee5 Package-Time: 265 Source-Version: 5.1.0-2 Space: 113168 Status: attempted Version: 5.1.0-2 -------------------------------------------------------------------------------- Finished at 20180115-1028 Build needed 00:04:25, 113168k disc space RUN: /usr/share/launchpad-buildd/slavebin/in-target scan-for-processes --backend=chroot --series=bionic --arch=armhf PACKAGEBUILD-14100384 Scanning for processes to kill in build PACKAGEBUILD-14100384 RUN: /usr/share/launchpad-buildd/slavebin/in-target umount-chroot --backend=chroot --series=bionic --arch=armhf PACKAGEBUILD-14100384 Stopping target for build PACKAGEBUILD-14100384 RUN: /usr/share/launchpad-buildd/slavebin/in-target remove-build --backend=chroot --series=bionic --arch=armhf PACKAGEBUILD-14100384 Removing build PACKAGEBUILD-14100384